diff --git a/src/examples/example4.py b/src/examples/example4.py new file mode 100644 index 0000000..3adbe98 --- /dev/null +++ b/src/examples/example4.py @@ -0,0 +1,9 @@ +from openmisp.datasets import Taxonomies + +pap_tag = Taxonomies.PAP.RED.tag +confidence_tag = Taxonomies.MISP.CONFIDENCE_LEVEL.USUALLY_CONFIDENT.tag + +print(pap_tag) +print(confidence_tag) + +pass \ No newline at end of file diff --git a/src/openmisp/__init__.py b/src/openmisp/__init__.py index 743357d..bab6250 100644 --- a/src/openmisp/__init__.py +++ b/src/openmisp/__init__.py @@ -23,6 +23,7 @@ from .sharing_groups import SharingGroupCriteria from .sightings import SightingCriteria, SightingType from .tags import TagCriteria +from . import datasets __all__ = [ "MISP", @@ -53,5 +54,6 @@ "SightingCriteria", "SightingType", "TagCriteria", + "datasets", "ThreatLevel", ] diff --git a/src/openmisp/datasets/__init__.py b/src/openmisp/datasets/__init__.py new file mode 100644 index 0000000..a119382 --- /dev/null +++ b/src/openmisp/datasets/__init__.py @@ -0,0 +1,3 @@ +from .taxonomies import Taxonomies + +__all__ = ["Taxonomies"] diff --git a/src/openmisp/datasets/taxonomies/__init__.py b/src/openmisp/datasets/taxonomies/__init__.py new file mode 100644 index 0000000..85e591c --- /dev/null +++ b/src/openmisp/datasets/taxonomies/__init__.py @@ -0,0 +1,7 @@ +import pathlib + +from .loader import Loader + +Taxonomies = Loader(pathlib.Path(__file__).parent / "data" / "misp-taxonomies") + +__all__ = ["Taxonomies"] diff --git a/src/openmisp/datasets/taxonomies/loader.py b/src/openmisp/datasets/taxonomies/loader.py new file mode 100644 index 0000000..7b3e62f --- /dev/null +++ b/src/openmisp/datasets/taxonomies/loader.py @@ -0,0 +1,98 @@ +import json +from typing import Optional + +from .models import Category, Entry, MachineTag, Taxonomy + +FILENAME = "machinetag.json" + + +def normalize_key(key: str) -> str: + return key.replace("-", "_").replace(":", "_").upper() + + +class Loader: + def __init__(self, base_path: str): + self._taxonomies = {} + self._load(base_path) + + def _load(self, base_path: str): + for path in base_path.iterdir(): + file = path / FILENAME + + if not file.is_file(): + continue + + with open(file, "r") as fp: + data = json.load(fp) + data = MachineTag(**data) + + taxonomy = self._load_taxonomy(data) + codename = normalize_key(taxonomy.namespace) + self._taxonomies[codename] = taxonomy + + def _load_taxonomy(self, data: dict) -> Taxonomy: + categories = self._load_categories(data) + + entries = self._load_entries( + data, + namespace=data.namespace, + lookup="predicates", + ) + + return Taxonomy( + namespace=data.namespace, + description=data.description, + uuid=data.uuid, + version=data.version, + categories=categories, + entries=entries, + ) + + def _load_categories(self, data: dict) -> dict[str, Category]: + categories = {} + + for item in data.values: + entries = self._load_entries( + item, + namespace=data.namespace, + category=item.predicate, + lookup="entry", + ) + + for predicate in data.predicates: + if predicate.value != item.predicate: + continue + + codename = normalize_key(item.predicate) + + categories[codename] = Category( + name=predicate.value, + exclusive=predicate.exclusive, + entries=entries, + ) + + return categories + + def _load_entries( + self, + data: dict, + namespace: str, + category: Optional[str] = None, + lookup: str = "entry", + ) -> dict[str, Entry]: + return { + normalize_key(item.value): Entry( + namespace=namespace, + category=category, + **item.dict(), + ) + for item in getattr(data, lookup, []) + } + + def __getattr__(self, item: str) -> Taxonomy: + if item in self._taxonomies: + return self._taxonomies[item] + raise AttributeError(f"No taxonomy named '{item}'") + + def __dir__(self): + return list(self._taxonomies.keys()) + super().__dir__() diff --git a/src/openmisp/datasets/taxonomies/models/__init__.py b/src/openmisp/datasets/taxonomies/models/__init__.py new file mode 100644 index 0000000..38d352b --- /dev/null +++ b/src/openmisp/datasets/taxonomies/models/__init__.py @@ -0,0 +1,4 @@ +from .machinetag import MachineTag +from .taxonomy import Category, Entry, Taxonomy + +__all__ = ["Category", "Entry", "MachineTag", "Taxonomy"] diff --git a/src/openmisp/datasets/taxonomies/models/machinetag.py b/src/openmisp/datasets/taxonomies/models/machinetag.py new file mode 100644 index 0000000..d46d2dd --- /dev/null +++ b/src/openmisp/datasets/taxonomies/models/machinetag.py @@ -0,0 +1,30 @@ +from typing import Optional + +from pydantic import BaseModel, Field + + +class Predicate(BaseModel): + uuid: str + value: str + expanded: Optional[str] = None + exclusive: Optional[bool] = False + + +class Entry(BaseModel): + uuid: str + value: str + expanded: Optional[str] = None + + +class Value(BaseModel): + predicate: str + entry: list[Entry] + + +class MachineTag(BaseModel): + uuid: str + namespace: str + description: str + version: int + predicates: list[Predicate] + values: Optional[list[Value]] = Field(default_factory=list) diff --git a/src/openmisp/datasets/taxonomies/models/taxonomy.py b/src/openmisp/datasets/taxonomies/models/taxonomy.py new file mode 100644 index 0000000..dbfee73 --- /dev/null +++ b/src/openmisp/datasets/taxonomies/models/taxonomy.py @@ -0,0 +1,67 @@ +from typing import Dict, Optional + +from pydantic import BaseModel, Field + + +class Entry(BaseModel): + uuid: str + value: str + namespace: str + category: Optional[str] = None + expanded: Optional[str] = None + description: Optional[str] = None + numerical_value: Optional[float] = None + + def __str__(self): + return self.value + + @property + def tag(self) -> str: + if self.category: + return f"{self.namespace}:{self.category}:{self.value}" + return f"{self.namespace}:{self.value}" + + +class _Base(BaseModel): + entries: Dict[str, Entry] + + def __getattr__(self, item: str) -> Entry: + if item in self.entries: + return self.entries[item] + raise AttributeError(f"{item} not found") + + def __dir__(self): + return list(self.entries.keys()) + super().__dir__() + + def __iter__(self): + return iter(self.entries.values()) + + def keys(self): + return self.entries.keys() + + def values(self): + return self.entries.values() + + def items(self): + return self.entries.items() + + +class Category(_Base): + name: str + exclusive: Optional[bool] = False + + +class Taxonomy(_Base): + namespace: str + description: Optional[str] = "" + uuid: str + version: int + categories: Optional[Dict[str, Category]] = Field(default_factory=dict) + + def __getattr__(self, item: str) -> Category | Entry: + if item in self.categories: + return self.categories[item] + return super().__getattr__(item) + + def __dir__(self): + return super().__dir__() + list(self.categories.keys()) diff --git a/src/openmisp/models/taxonomies/README.md b/src/openmisp/models/taxonomies/README.md deleted file mode 100644 index d67dc8b..0000000 --- a/src/openmisp/models/taxonomies/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# MISP Taxonomy Models - -This directory contains Python models for MISP taxonomies. These models are automatically generated from the MISP taxonomies repository. - -## Structure - -Each taxonomy is represented by two classes: -1. A `Taxonomy` class that contains metadata about the taxonomy -2. A `TaxonomyPredicate` enum that contains the possible predicates for the taxonomy - -## Usage - -### Importing a specific taxonomy - -```python -from openmisp.models.taxonomies.tlp import TlpTaxonomy, TlpTaxonomyPredicate - -# Get the namespace -namespace = TlpTaxonomy.namespace # "tlp" - -# Get the description -description = TlpTaxonomy.description - -# Get all predicates -predicates = [p.value for p in TlpTaxonomyPredicate] # ["red", "amber", "amber+strict", "green", "white", "clear", "ex:chr", "unclear"] - -# Create a tag -tag = TlpTaxonomy.get_tag(TlpTaxonomyPredicate.RED) # "tlp:red" -``` - -### Using the utility functions - -```python -from openmisp.models.taxonomies.utils import ( - get_all_taxonomies, - get_taxonomy_by_namespace, - get_taxonomy_from_tag, - is_valid_tag, - parse_tag, -) - -# Get all taxonomies -taxonomies = get_all_taxonomies() - -# Get a taxonomy by namespace -tlp_taxonomy = get_taxonomy_by_namespace("tlp") - -# Get a taxonomy from a tag -taxonomy = get_taxonomy_from_tag("tlp:red") - -# Check if a tag is valid -is_valid = is_valid_tag("tlp:red") # True -is_valid = is_valid_tag("tlp:invalid") # False - -# Parse a tag -parsed = parse_tag("tlp:red") # {"namespace": "tlp", "predicate": "red"} -``` - -## Regenerating the models - -The taxonomy models are generated from the MISP taxonomies repository. To regenerate the models, run: - -```bash -python scripts/generate_taxonomy_models.py -``` - -This will read the taxonomies from the `misp-taxonomies` directory and generate the models in this directory. \ No newline at end of file diff --git a/src/openmisp/models/taxonomies/__init__.py b/src/openmisp/models/taxonomies/__init__.py deleted file mode 100644 index b3d4e46..0000000 --- a/src/openmisp/models/taxonomies/__init__.py +++ /dev/null @@ -1,1252 +0,0 @@ -"""Taxonomies models for the OpenMISP SDK. - -This package contains the models for the taxonomies used in MISP. -The models are dynamically generated from the MISP taxonomies repository. -""" - -# Import all taxonomy models -from .access_method import AccessMethodTaxonomy, AccessMethodTaxonomyPredicate -from .accessnow import AccessnowTaxonomy, AccessnowTaxonomyPredicate -from .acs_marking import ( - AcsMarkingTaxonomy, - AcsMarkingTaxonomyCaveatEntry, - AcsMarkingTaxonomyClassificationEntry, - AcsMarkingTaxonomyEntityEntry, - AcsMarkingTaxonomyFormalDeterminationEntry, - AcsMarkingTaxonomyPredicate, - AcsMarkingTaxonomyPrivilegeActionEntry, - AcsMarkingTaxonomySensitivityEntry, - AcsMarkingTaxonomyShareabilityEntry, -) -from .action_taken import ActionTakenTaxonomy, ActionTakenTaxonomyPredicate -from .admiralty_scale import ( - AdmiraltyScaleTaxonomy, - AdmiraltyScaleTaxonomyInformationCredibilityEntry, - AdmiraltyScaleTaxonomyPredicate, - AdmiraltyScaleTaxonomySourceReliabilityEntry, -) -from .adversary import ( - AdversaryTaxonomy, - AdversaryTaxonomyInfrastructureActionEntry, - AdversaryTaxonomyInfrastructureStateEntry, - AdversaryTaxonomyInfrastructureStatusEntry, - AdversaryTaxonomyInfrastructureTypeEntry, - AdversaryTaxonomyPredicate, -) -from .ais_marking import ( - AisMarkingTaxonomy, - AisMarkingTaxonomyAisconsentEntry, - AisMarkingTaxonomyAismarkingEntry, - AisMarkingTaxonomyCisaProprietaryEntry, - AisMarkingTaxonomyPredicate, - AisMarkingTaxonomyTlpmarkingEntry, -) -from .analyst_assessment import ( - AnalystAssessmentTaxonomy, - AnalystAssessmentTaxonomyBinaryReversingArchEntry, - AnalystAssessmentTaxonomyBinaryReversingExperienceEntry, - AnalystAssessmentTaxonomyCryptoExperienceEntry, - AnalystAssessmentTaxonomyExperienceEntry, - AnalystAssessmentTaxonomyOsEntry, - AnalystAssessmentTaxonomyPredicate, - AnalystAssessmentTaxonomyWebEntry, - AnalystAssessmentTaxonomyWebExperienceEntry, -) -from .approved_category_of_action import ApprovedCategoryOfActionTaxonomy, ApprovedCategoryOfActionTaxonomyPredicate -from .artificial_satellites import ( - ArtificialSatellitesTaxonomy, - ArtificialSatellitesTaxonomyDisasterMonitoringEntry, - ArtificialSatellitesTaxonomyEarthRessourcesEntry, - ArtificialSatellitesTaxonomyEducationEntry, - ArtificialSatellitesTaxonomyEngineeringEntry, - ArtificialSatellitesTaxonomyGeoEntry, - ArtificialSatellitesTaxonomyGeodeticEntry, - ArtificialSatellitesTaxonomyGnssEntry, - ArtificialSatellitesTaxonomyIndianSpaceResearchEntry, - ArtificialSatellitesTaxonomyMeteorologicalAndEarthObservationEntry, - ArtificialSatellitesTaxonomyPredicate, - ArtificialSatellitesTaxonomySearchRescueEntry, - ArtificialSatellitesTaxonomySpaceEarthScienceEntry, - ArtificialSatellitesTaxonomyTrackingEntry, -) -from .aviation import ( - AviationTaxonomy, - AviationTaxonomyCertaintyEntry, - AviationTaxonomyCriticalityEntry, - AviationTaxonomyImpactEntry, - AviationTaxonomyLikelihoodEntry, - AviationTaxonomyPredicate, - AviationTaxonomyTargetEntry, - AviationTaxonomyTargetSubSystemsEntry, - AviationTaxonomyTargetSystemsEntry, -) -from .binary_class import BinaryClassTaxonomy, BinaryClassTaxonomyPredicate, BinaryClassTaxonomyTypeEntry -from .cccs import ( - CccsTaxonomy, - CccsTaxonomyDisclosureTypeEntry, - CccsTaxonomyDomainCategoryEntry, - CccsTaxonomyEmailTypeEntry, - CccsTaxonomyEventEntry, - CccsTaxonomyExploitationTechniqueEntry, - CccsTaxonomyIpCategoryEntry, - CccsTaxonomyMaliciousnessEntry, - CccsTaxonomyMalwareCategoryEntry, - CccsTaxonomyMisusageTypeEntry, - CccsTaxonomyMitigationTypeEntry, - CccsTaxonomyOriginEntry, - CccsTaxonomyOriginatingOrganizationEntry, - CccsTaxonomyPredicate, - CccsTaxonomyScanTypeEntry, - CccsTaxonomySeverityEntry, - CccsTaxonomyThreatVectorEntry, -) -from .cert_xlm import ( - CertXlmTaxonomy, - CertXlmTaxonomyAbusiveContentEntry, - CertXlmTaxonomyAvailabilityEntry, - CertXlmTaxonomyConformityEntry, - CertXlmTaxonomyFraudEntry, - CertXlmTaxonomyInformationContentSecurityEntry, - CertXlmTaxonomyInformationGatheringEntry, - CertXlmTaxonomyIntrusionAttemptsEntry, - CertXlmTaxonomyIntrusionEntry, - CertXlmTaxonomyMaliciousCodeEntry, - CertXlmTaxonomyOtherEntry, - CertXlmTaxonomyPredicate, - CertXlmTaxonomyVulnerableEntry, -) -from .circl import ( - CirclTaxonomy, - CirclTaxonomyIncidentClassificationEntry, - CirclTaxonomyPredicate, - CirclTaxonomyTopicEntry, -) -from .cnsd import ( - CnsdTaxonomy, - CnsdTaxonomyContenidoAbusivoEntry, - CnsdTaxonomyDisponibilidadEntry, - CnsdTaxonomyFraudeEntry, - CnsdTaxonomyFugaDeInformaciNEntry, - CnsdTaxonomyIntentosDeIntrusiNEntry, - CnsdTaxonomyIntrusiNEntry, - CnsdTaxonomyMalwareEntry, - CnsdTaxonomyOtrosEntry, - CnsdTaxonomyPredicate, - CnsdTaxonomyRecopilaciNDeInformaciNEntry, -) -from .coa import ( - CoaTaxonomy, - CoaTaxonomyDeceiveEntry, - CoaTaxonomyDegradeEntry, - CoaTaxonomyDenyEntry, - CoaTaxonomyDestroyEntry, - CoaTaxonomyDetectEntry, - CoaTaxonomyDiscoverEntry, - CoaTaxonomyDisruptEntry, - CoaTaxonomyPredicate, -) -from .collaborative_intelligence import ( - CollaborativeIntelligenceTaxonomy, - CollaborativeIntelligenceTaxonomyPredicate, - CollaborativeIntelligenceTaxonomyRequestEntry, -) -from .common_taxonomy import ( - CommonTaxonomyTaxonomy, - CommonTaxonomyTaxonomyAbusiveContentEntry, - CommonTaxonomyTaxonomyAvailabilityEntry, - CommonTaxonomyTaxonomyFraudEntry, - CommonTaxonomyTaxonomyInformationGatheringEntry, - CommonTaxonomyTaxonomyInformationSecurityEntry, - CommonTaxonomyTaxonomyIntrusionAttemptEntry, - CommonTaxonomyTaxonomyIntrusionEntry, - CommonTaxonomyTaxonomyMalwareEntry, - CommonTaxonomyTaxonomyOtherEntry, - CommonTaxonomyTaxonomyPredicate, -) -from .copine_scale import CopineScaleTaxonomy, CopineScaleTaxonomyPredicate -from .course_of_action import ( - CourseOfActionTaxonomy, - CourseOfActionTaxonomyActiveEntry, - CourseOfActionTaxonomyPassiveEntry, - CourseOfActionTaxonomyPredicate, -) -from .crowdsec import ( - CrowdsecTaxonomy, - CrowdsecTaxonomyBehaviorEntry, - CrowdsecTaxonomyClassificationEntry, - CrowdsecTaxonomyFalsePositiveEntry, - CrowdsecTaxonomyPredicate, -) -from .cryptocurrency_threat import CryptocurrencyThreatTaxonomy, CryptocurrencyThreatTaxonomyPredicate -from .csirt_americas import CsirtAmericasTaxonomy, CsirtAmericasTaxonomyPredicate -from .csirt_case_classification import ( - CsirtCaseClassificationTaxonomy, - CsirtCaseClassificationTaxonomyCriticalityClassificationEntry, - CsirtCaseClassificationTaxonomyIncidentCategoryEntry, - CsirtCaseClassificationTaxonomyPredicate, - CsirtCaseClassificationTaxonomySensitivityClassificationEntry, -) -from .cssa import ( - CssaTaxonomy, - CssaTaxonomyOriginEntry, - CssaTaxonomyPredicate, - CssaTaxonomyReportEntry, - CssaTaxonomySharingClassEntry, -) -from .cti import CtiTaxonomy, CtiTaxonomyPredicate -from .current_event import ( - CurrentEventTaxonomy, - CurrentEventTaxonomyElectionEntry, - CurrentEventTaxonomyPandemicEntry, - CurrentEventTaxonomyPredicate, -) -from .cyber_threat_framework import ( - CyberThreatFrameworkTaxonomy, - CyberThreatFrameworkTaxonomyEffectConsequenceEntry, - CyberThreatFrameworkTaxonomyEngagementEntry, - CyberThreatFrameworkTaxonomyPredicate, - CyberThreatFrameworkTaxonomyPreparationEntry, - CyberThreatFrameworkTaxonomyPresenceEntry, -) -from .cycat import CycatTaxonomy, CycatTaxonomyPredicate, CycatTaxonomyScopeEntry, CycatTaxonomyTypeEntry -from .cytomic_orion import CytomicOrionTaxonomy, CytomicOrionTaxonomyActionEntry, CytomicOrionTaxonomyPredicate -from .dark_web import ( - DarkWebTaxonomy, - DarkWebTaxonomyContentEntry, - DarkWebTaxonomyMotivationEntry, - DarkWebTaxonomyPredicate, - DarkWebTaxonomyServiceEntry, - DarkWebTaxonomyStructureEntry, - DarkWebTaxonomyTopicEntry, -) -from .data_classification import DataClassificationTaxonomy, DataClassificationTaxonomyPredicate -from .dcso_sharing import DcsoSharingTaxonomy, DcsoSharingTaxonomyEventTypeEntry, DcsoSharingTaxonomyPredicate -from .ddos import DdosTaxonomy, DdosTaxonomyPredicate, DdosTaxonomyTypeEntry -from .de_vs import DeVsTaxonomy, DeVsTaxonomyEinstufungEntry, DeVsTaxonomyPredicate, DeVsTaxonomySchutzwortEntry -from .death_possibilities import ( - DeathPossibilitiesTaxonomy, - DeathPossibilitiesTaxonomyPredicate, - DeathPossibilitiesTaxonomyT001009IntestinalInfectiousDiseasesEntry, - DeathPossibilitiesTaxonomyT010018TuberculosisEntry, - DeathPossibilitiesTaxonomyT020027ZoonoticBacterialDiseasesEntry, - DeathPossibilitiesTaxonomyT030041OtherBacterialDiseasesEntry, - DeathPossibilitiesTaxonomyT042042HumanImmunodeficiencyVirusHivInfectionEntry, - DeathPossibilitiesTaxonomyT045049PoliomyelitisAndOtherNonArthropodBorneViralDiseasesOfCentralNervousSystemEntry, - DeathPossibilitiesTaxonomyT050057ViralDiseasesAccompaniedByExanthemEntry, - DeathPossibilitiesTaxonomyT060066ArthropodBorneViralDiseasesEntry, - DeathPossibilitiesTaxonomyT070079OtherDiseasesDueToVirusesAndChlamydiaeEntry, - DeathPossibilitiesTaxonomyT080088RickettsiosesAndOtherArthropodBorneDiseasesEntry, - DeathPossibilitiesTaxonomyT090099SyphilisAndOtherVenerealDiseasesEntry, - DeathPossibilitiesTaxonomyT100104OtherSpirochaetalDiseasesEntry, - DeathPossibilitiesTaxonomyT110118MycosesEntry, - DeathPossibilitiesTaxonomyT120129HelminthiasesEntry, - DeathPossibilitiesTaxonomyT130136OtherInfectiousAndParasiticDiseasesEntry, - DeathPossibilitiesTaxonomyT137139LateEffectsOfInfectiousAndParasiticDiseasesEntry, - DeathPossibilitiesTaxonomyT140149MalignantNeoplasmOfLipOralCavityAndPharynxEntry, - DeathPossibilitiesTaxonomyT150159MalignantNeoplasmOfDigestiveOrgansAndPeritoneumEntry, - DeathPossibilitiesTaxonomyT160165MalignantNeoplasmOfRespiratoryAndIntrathoracicOrgansEntry, - DeathPossibilitiesTaxonomyT170176MalignantNeoplasmOfBoneConnectiveTissueSkinAndBreastEntry, - DeathPossibilitiesTaxonomyT179189MalignantNeoplasmOfGenitoUrinaryOrgansEntry, - DeathPossibilitiesTaxonomyT190199MalignantNeoplasmOfOtherAndUnspecifiedSitesEntry, - DeathPossibilitiesTaxonomyT200208MalignantNeoplasmOfLymphaticAndHaematopoieticTissueEntry, - DeathPossibilitiesTaxonomyT210229BenignNeoplasmsEntry, - DeathPossibilitiesTaxonomyT230234CarcinomaInSituEntry, - DeathPossibilitiesTaxonomyT235238NeoplasmsOfUncertainBehaviourEntry, - DeathPossibilitiesTaxonomyT239239NeoplasmsOfUnspecifiedNatureEntry, - DeathPossibilitiesTaxonomyT240246DisordersOfThyroidGlandEntry, - DeathPossibilitiesTaxonomyT250259DiseasesOfOtherEndocrineGlandsEntry, - DeathPossibilitiesTaxonomyT260269NutritionalDeficienciesEntry, - DeathPossibilitiesTaxonomyT270279OtherMetabolicDisordersAndImmunityDisordersEntry, - DeathPossibilitiesTaxonomyT280289DiseasesOfBloodAndBloodFormingOrgansEntry, - DeathPossibilitiesTaxonomyT290294OrganicPsychoticConditionsEntry, - DeathPossibilitiesTaxonomyT295299OtherPsychosesEntry, - DeathPossibilitiesTaxonomyT300316NeuroticDisordersPersonalityDisordersAndOtherNonpsychoticMentalDisordersEntry, - DeathPossibilitiesTaxonomyT317319MentalRetardationEntry, - DeathPossibilitiesTaxonomyT320326InflammatoryDiseasesOfTheCentralNervousSystemEntry, - DeathPossibilitiesTaxonomyT330337HereditaryAndDegenerativeDiseasesOfTheCentralNervousSystemEntry, - DeathPossibilitiesTaxonomyT340349OtherDisordersOfTheCentralNervousSystemEntry, - DeathPossibilitiesTaxonomyT350359DisordersOfThePeripheralNervousSystemEntry, - DeathPossibilitiesTaxonomyT360379DisordersOfTheEyeAndAdnexaEntry, - DeathPossibilitiesTaxonomyT380389DiseasesOfTheEarAndMastoidProcessEntry, - DeathPossibilitiesTaxonomyT390392AcuteRheumaticFeverEntry, - DeathPossibilitiesTaxonomyT393398ChronicRheumaticHeartDiseaseEntry, - DeathPossibilitiesTaxonomyT401405HypertensiveDiseaseEntry, - DeathPossibilitiesTaxonomyT410414IschaemicHeartDiseaseEntry, - DeathPossibilitiesTaxonomyT415417DiseasesOfPulmonaryCirculationEntry, - DeathPossibilitiesTaxonomyT420429OtherFormsOfHeartDiseaseEntry, - DeathPossibilitiesTaxonomyT430438CerebrovascularDiseaseEntry, - DeathPossibilitiesTaxonomyT440448DiseasesOfArteriesArteriolesAndCapillariesEntry, - DeathPossibilitiesTaxonomyT451459DiseasesOfVeinsAndLymphaticsAndOtherDiseasesOfCirculatorySystemEntry, - DeathPossibilitiesTaxonomyT460466AcuteRespiratoryInfectionsEntry, - DeathPossibilitiesTaxonomyT470478OtherDiseasesOfUpperRespiratoryTractEntry, - DeathPossibilitiesTaxonomyT480487PneumoniaAndInfluenzaEntry, - DeathPossibilitiesTaxonomyT490496ChronicObstructivePulmonaryDiseaseAndAlliedConditionsEntry, - DeathPossibilitiesTaxonomyT500508PneumoconiosesAndOtherLungDiseasesDueToExternalAgentsEntry, - DeathPossibilitiesTaxonomyT510519OtherDiseasesOfRespiratorySystemEntry, - DeathPossibilitiesTaxonomyT520529DiseasesOfOralCavitySalivaryGlandsAndJawsEntry, - DeathPossibilitiesTaxonomyT530537DiseasesOfOesophagusStomachAndDuodenumEntry, - DeathPossibilitiesTaxonomyT540543AppendicitisEntry, - DeathPossibilitiesTaxonomyT550553HerniaOfAbdominalCavityEntry, - DeathPossibilitiesTaxonomyT555558NonInfectiveEnteritisAndColitisEntry, - DeathPossibilitiesTaxonomyT560569OtherDiseasesOfIntestinesAndPeritoneumEntry, - DeathPossibilitiesTaxonomyT570579OtherDiseasesOfDigestiveSystemEntry, - DeathPossibilitiesTaxonomyT580589NephritisNephroticSyndromeAndNephrosisEntry, - DeathPossibilitiesTaxonomyT590599OtherDiseasesOfUrinarySystemEntry, - DeathPossibilitiesTaxonomyT600608DiseasesOfMaleGenitalOrgansEntry, - DeathPossibilitiesTaxonomyT610611DisordersOfBreastEntry, - DeathPossibilitiesTaxonomyT614616InflammatoryDiseaseOfFemalePelvicOrgansEntry, - DeathPossibilitiesTaxonomyT617629OtherDisordersOfFemaleGenitalTractEntry, - DeathPossibilitiesTaxonomyT630633EctopicAndMolarPregnancyEntry, - DeathPossibilitiesTaxonomyT634639OtherPregnancyWithAbortiveOutcomeEntry, - DeathPossibilitiesTaxonomyT640648ComplicationsMainlyRelatedToPregnancyEntry, - DeathPossibilitiesTaxonomyT650659NormalDeliveryAndOtherIndicationsForCareInPregnancyLabourAndDeliveryEntry, - DeathPossibilitiesTaxonomyT660669ComplicationsOccurringMainlyInTheCourseOfLabourAndDeliveryEntry, - DeathPossibilitiesTaxonomyT670677ComplicationsOfThePuerperiumEntry, - DeathPossibilitiesTaxonomyT680686InfectionsOfSkinAndSubcutaneousTissueEntry, - DeathPossibilitiesTaxonomyT690698OtherInflammatoryConditionsOfSkinAndSubcutaneousTissueEntry, - DeathPossibilitiesTaxonomyT700709OtherDiseasesOfSkinAndSubcutaneousTissueEntry, - DeathPossibilitiesTaxonomyT710719ArthropathiesAndRelatedDisordersEntry, - DeathPossibilitiesTaxonomyT720724DorsopathiesEntry, - DeathPossibilitiesTaxonomyT725729RheumatismExcludingTheBackEntry, - DeathPossibilitiesTaxonomyT730739OsteopathiesChondropathiesAndAcquiredMusculoskeletalDeformitiesEntry, - DeathPossibilitiesTaxonomyT740759CongenitalAnomaliesEntry, - DeathPossibilitiesTaxonomyT760763MaternalCausesOfPerinatalMorbidityAndMortalityEntry, - DeathPossibilitiesTaxonomyT764779OtherConditionsOriginatingInThePerinatalPeriodEntry, - DeathPossibilitiesTaxonomyT780789SymptomsEntry, - DeathPossibilitiesTaxonomyT790796NonspecificAbnormalFindingsEntry, - DeathPossibilitiesTaxonomyT797799IllDefinedAndUnknownCausesOfMorbidityAndMortalityEntry, - DeathPossibilitiesTaxonomyT800804FractureOfSkullEntry, - DeathPossibilitiesTaxonomyT805809FractureOfNeckAndTrunkEntry, - DeathPossibilitiesTaxonomyT810819FractureOfUpperLimbEntry, - DeathPossibilitiesTaxonomyT820829FractureOfLowerLimbEntry, - DeathPossibilitiesTaxonomyT830839DislocationEntry, - DeathPossibilitiesTaxonomyT840848SprainsAndStrainsOfJointsAndAdjacentMusclesEntry, - DeathPossibilitiesTaxonomyT850854IntracranialInjuryExcludingThoseWithSkullFractureEntry, - DeathPossibilitiesTaxonomyT860869InternalInjuryOfChestAbdomenAndPelvisEntry, - DeathPossibilitiesTaxonomyT870879OpenWoundOfHeadNeckAndTrunkEntry, - DeathPossibilitiesTaxonomyT880887OpenWoundOfUpperLimbEntry, - DeathPossibilitiesTaxonomyT890897OpenWoundOfLowerLimbEntry, - DeathPossibilitiesTaxonomyT900904InjuryToBloodVesselsEntry, - DeathPossibilitiesTaxonomyT905909LateEffectsOfInjuriesPoisoningsToxicEffectsAndOtherExternalCausesEntry, - DeathPossibilitiesTaxonomyT910919SuperficialInjuryEntry, - DeathPossibilitiesTaxonomyT920924ContusionWithIntactSkinSurfaceEntry, - DeathPossibilitiesTaxonomyT925929CrushingInjuryEntry, - DeathPossibilitiesTaxonomyT930939EffectsOfForeignBodyEnteringThroughOrificeEntry, - DeathPossibilitiesTaxonomyT940949BurnsEntry, - DeathPossibilitiesTaxonomyT950957InjuryToNervesAndSpinalCordEntry, - DeathPossibilitiesTaxonomyT958959CertainTraumaticComplicationsAndUnspecifiedInjuriesEntry, - DeathPossibilitiesTaxonomyT960979PoisoningByDrugsMedicamentsAndBiologicalSubstancesEntry, - DeathPossibilitiesTaxonomyT980989ToxicEffectsOfSubstancesChieflyNonmedicinalAsToSourceEntry, - DeathPossibilitiesTaxonomyT990995OtherAndUnspecifiedEffectsOfExternalCausesEntry, - DeathPossibilitiesTaxonomyT996999ComplicationsOfSurgicalAndMedicalCareNotElsewhereClassifiedEntry, - DeathPossibilitiesTaxonomyTE800E807RailwayAccidentsEntry, - DeathPossibilitiesTaxonomyTE810E819MotorVehicleTrafficAccidentsEntry, - DeathPossibilitiesTaxonomyTE820E825MotorVehicleNontrafficAccidentsEntry, - DeathPossibilitiesTaxonomyTE826E829OtherRoadVehicleAccidentsEntry, - DeathPossibilitiesTaxonomyTE830E838WaterTransportAccidentsEntry, - DeathPossibilitiesTaxonomyTE840E845AirAndSpaceTransportAccidentsEntry, - DeathPossibilitiesTaxonomyTE846E848VehicleAccidentsNotElsewhereClassifiableEntry, - DeathPossibilitiesTaxonomyTE849E858AccidentalPoisoningByDrugsMedicamentsAndBiologicalsEntry, - DeathPossibilitiesTaxonomyTE860E869AccidentalPoisoningByOtherSolidAndLiquidSubstancesGasesAndVapoursEntry, - DeathPossibilitiesTaxonomyTE870E876MisadventuresToPatientsDuringSurgicalAndMedicalCareEntry, - DeathPossibilitiesTaxonomyTE878E879SurgicalAndMedicalProceduresAsTheCauseOfAbnormalReactionOfPatientOrLaterComplicationWithoutMentionOfMisadventureAtTheTimeOfProcedureEntry, - DeathPossibilitiesTaxonomyTE880E888AccidentalFallsEntry, - DeathPossibilitiesTaxonomyTE890E899AccidentsCausedByFireAndFlamesEntry, - DeathPossibilitiesTaxonomyTE900E909AccidentsDueToNaturalAndEnvironmentalFactorsEntry, - DeathPossibilitiesTaxonomyTE910E915AccidentsCausedBySubmersionSuffocationAndForeignBodiesEntry, - DeathPossibilitiesTaxonomyTE916E928OtherAccidentsEntry, - DeathPossibilitiesTaxonomyTE929E929LateEffectsOfAccidentalInjuryEntry, - DeathPossibilitiesTaxonomyTE930E949DrugsMedicamentsAndBiologicalSubstancesCausingAdverseEffectsInTherapeuticUseEntry, - DeathPossibilitiesTaxonomyTE950E959SuicideAndSelfInflictedInjuryEntry, - DeathPossibilitiesTaxonomyTE960E969HomicideAndInjuryPurposelyInflictedByOtherPersonsEntry, -) -from .deception import ( - DeceptionTaxonomy, - DeceptionTaxonomyCausalityEntry, - DeceptionTaxonomyEssenceEntry, - DeceptionTaxonomyParticipantEntry, - DeceptionTaxonomyPredicate, - DeceptionTaxonomyQualityEntry, - DeceptionTaxonomySpaceEntry, - DeceptionTaxonomySpeechActTheoryEntry, - DeceptionTaxonomyTimeEntry, -) -from .detection_engineering import ( - DetectionEngineeringTaxonomy, - DetectionEngineeringTaxonomyPatternMatchingEntry, - DetectionEngineeringTaxonomyPredicate, -) -from .dfrlab_dichotomies_of_disinformation import ( - DfrlabDichotomiesOfDisinformationTaxonomy, - DfrlabDichotomiesOfDisinformationTaxonomyContentLanguageEntry, - DfrlabDichotomiesOfDisinformationTaxonomyContentTopicEntry, - DfrlabDichotomiesOfDisinformationTaxonomyDisinformantCategoryEntry, - DfrlabDichotomiesOfDisinformationTaxonomyDisinformantConcurrentEventsEntry, - DfrlabDichotomiesOfDisinformationTaxonomyDisinformantIntentEntry, - DfrlabDichotomiesOfDisinformationTaxonomyMethodsNarrativeTechniquesEntry, - DfrlabDichotomiesOfDisinformationTaxonomyMethodsTacticsEntry, - DfrlabDichotomiesOfDisinformationTaxonomyPlatformsEntry, - DfrlabDichotomiesOfDisinformationTaxonomyPlatformsMessagingEntry, - DfrlabDichotomiesOfDisinformationTaxonomyPlatformsOpenWebEntry, - DfrlabDichotomiesOfDisinformationTaxonomyPlatformsSocialMediaEntry, - DfrlabDichotomiesOfDisinformationTaxonomyPredicate, - DfrlabDichotomiesOfDisinformationTaxonomyPrimaryDisinformantEntry, - DfrlabDichotomiesOfDisinformationTaxonomyPrimaryTargetEntry, - DfrlabDichotomiesOfDisinformationTaxonomyTargetCategoryEntry, - DfrlabDichotomiesOfDisinformationTaxonomyTargetConcurrentEventsEntry, -) -from .dga import DgaTaxonomy, DgaTaxonomyGenerationSchemeEntry, DgaTaxonomyPredicate, DgaTaxonomySeedingEntry -from .dhs_ciip_sectors import ( - DhsCiipSectorsTaxonomy, - DhsCiipSectorsTaxonomyDhsCriticalSectorsEntry, - DhsCiipSectorsTaxonomyPredicate, -) -from .diamond_model import DiamondModelTaxonomy, DiamondModelTaxonomyPredicate -from .diamond_model_for_influence_operations import ( - DiamondModelForInfluenceOperationsTaxonomy, - DiamondModelForInfluenceOperationsTaxonomyPredicate, -) -from .dml import DmlTaxonomy, DmlTaxonomyPredicate -from .dni_ism import ( - DniIsmTaxonomy, - DniIsmTaxonomyAtomicenergymarkingsEntry, - DniIsmTaxonomyClassificationAllEntry, - DniIsmTaxonomyClassificationUsEntry, - DniIsmTaxonomyCompliesWithEntry, - DniIsmTaxonomyDissemEntry, - DniIsmTaxonomyNonicEntry, - DniIsmTaxonomyNonuscontrolsEntry, - DniIsmTaxonomyNoticeEntry, - DniIsmTaxonomyPredicate, - DniIsmTaxonomyScicontrolsEntry, -) -from .domain_abuse import ( - DomainAbuseTaxonomy, - DomainAbuseTaxonomyDomainAccessMethodEntry, - DomainAbuseTaxonomyDomainStatusEntry, - DomainAbuseTaxonomyPredicate, -) -from .doping_substances import ( - DopingSubstancesTaxonomy, - DopingSubstancesTaxonomyAnabolicAgentsEntry, - DopingSubstancesTaxonomyBeta2AgonistsEntry, - DopingSubstancesTaxonomyBetaBlockersEntry, - DopingSubstancesTaxonomyCannabinoidsEntry, - DopingSubstancesTaxonomyDiureticsAndMaskingAgentsEntry, - DopingSubstancesTaxonomyGlucocorticoidsEntry, - DopingSubstancesTaxonomyHormoneAndMetabolicModulatorsEntry, - DopingSubstancesTaxonomyNarcoticsEntry, - DopingSubstancesTaxonomyPeptideHormonesGrowthFactorsRelatedSubstancesAndMimeticsEntry, - DopingSubstancesTaxonomyPredicate, - DopingSubstancesTaxonomyStimulantsEntry, -) -from .drugs import ( - DrugsTaxonomy, - DrugsTaxonomyAlkaloidsAndDerivativesEntry, - DrugsTaxonomyBenzenoidsEntry, - DrugsTaxonomyHomogeneousMetalCompoundsEntry, - DrugsTaxonomyHomogeneousNonMetalCompoundsEntry, - DrugsTaxonomyHydrocarbonDerivativesEntry, - DrugsTaxonomyHydrocarbonsEntry, - DrugsTaxonomyLignansNeolignansAndRelatedCompoundsEntry, - DrugsTaxonomyLipidsAndLipidLikeMoleculesEntry, - DrugsTaxonomyMixedMetalNonMetalCompoundsEntry, - DrugsTaxonomyNucleosidesNucleotidesAndAnaloguesEntry, - DrugsTaxonomyOrganic13DipolarCompoundsEntry, - DrugsTaxonomyOrganicAcidsAndDerivativesEntry, - DrugsTaxonomyOrganicAcidsEntry, - DrugsTaxonomyOrganicNitrogenCompoundsEntry, - DrugsTaxonomyOrganicOxygenCompoundsEntry, - DrugsTaxonomyOrganicPolymersEntry, - DrugsTaxonomyOrganicSaltsEntry, - DrugsTaxonomyOrganohalogenCompoundsEntry, - DrugsTaxonomyOrganoheterocyclicCompoundsEntry, - DrugsTaxonomyOrganometallicCompoundsEntry, - DrugsTaxonomyOrganophosphorusCompoundsEntry, - DrugsTaxonomyOrganosulfurCompoundsEntry, - DrugsTaxonomyPhenylpropanoidsAndPolyketidesEntry, - DrugsTaxonomyPredicate, -) -from .economical_impact import ( - EconomicalImpactTaxonomy, - EconomicalImpactTaxonomyGainEntry, - EconomicalImpactTaxonomyLossEntry, - EconomicalImpactTaxonomyPredicate, -) -from .ecsirt import ( - EcsirtTaxonomy, - EcsirtTaxonomyAbusiveContentEntry, - EcsirtTaxonomyAvailabilityEntry, - EcsirtTaxonomyFraudEntry, - EcsirtTaxonomyInformationContentSecurityEntry, - EcsirtTaxonomyInformationGatheringEntry, - EcsirtTaxonomyIntrusionAttemptsEntry, - EcsirtTaxonomyIntrusionsEntry, - EcsirtTaxonomyMaliciousCodeEntry, - EcsirtTaxonomyOtherEntry, - EcsirtTaxonomyPredicate, - EcsirtTaxonomyTestEntry, - EcsirtTaxonomyVulnerableEntry, -) -from .enisa import ( - EnisaTaxonomy, - EnisaTaxonomyDisasterEntry, - EnisaTaxonomyEavesdroppingInterceptionHijackingEntry, - EnisaTaxonomyFailuresMalfunctionEntry, - EnisaTaxonomyLegalEntry, - EnisaTaxonomyNefariousActivityAbuseEntry, - EnisaTaxonomyOutagesEntry, - EnisaTaxonomyPhysicalAttackEntry, - EnisaTaxonomyPredicate, - EnisaTaxonomyUnintentionalDamageEntry, -) -from .estimative_language import ( - EstimativeLanguageTaxonomy, - EstimativeLanguageTaxonomyConfidenceInAnalyticJudgmentEntry, - EstimativeLanguageTaxonomyLikelihoodProbabilityEntry, - EstimativeLanguageTaxonomyPredicate, -) -from .eu_marketop_and_publicadmin import ( - EuMarketopAndPublicadminTaxonomy, - EuMarketopAndPublicadminTaxonomyCriticalInfraOperatorsEntry, - EuMarketopAndPublicadminTaxonomyInfoServicesEntry, - EuMarketopAndPublicadminTaxonomyPredicate, - EuMarketopAndPublicadminTaxonomyPublicAdminEntry, -) -from .eu_nis_sector_and_subsectors import ( - EuNisSectorAndSubsectorsTaxonomy, - EuNisSectorAndSubsectorsTaxonomyEuNisDspEntry, - EuNisSectorAndSubsectorsTaxonomyEuNisOesEnergyEntry, - EuNisSectorAndSubsectorsTaxonomyEuNisOesEntry, - EuNisSectorAndSubsectorsTaxonomyEuNisOesTransportEntry, - EuNisSectorAndSubsectorsTaxonomyPredicate, -) -from .euci import EuciTaxonomy, EuciTaxonomyPredicate -from .europol_event import EuropolEventTaxonomy, EuropolEventTaxonomyPredicate -from .europol_incident import ( - EuropolIncidentTaxonomy, - EuropolIncidentTaxonomyAbusiveContentEntry, - EuropolIncidentTaxonomyAvailabilityEntry, - EuropolIncidentTaxonomyFraudEntry, - EuropolIncidentTaxonomyInformationGatheringEntry, - EuropolIncidentTaxonomyInformationSecurityEntry, - EuropolIncidentTaxonomyIntrusionAttemptEntry, - EuropolIncidentTaxonomyIntrusionEntry, - EuropolIncidentTaxonomyMalwareEntry, - EuropolIncidentTaxonomyOtherEntry, - EuropolIncidentTaxonomyPredicate, -) -from .event_assessment import ( - EventAssessmentTaxonomy, - EventAssessmentTaxonomyAlternativePointsOfViewProcessEntry, - EventAssessmentTaxonomyPredicate, -) -from .event_classification import ( - EventClassificationTaxonomy, - EventClassificationTaxonomyEventClassEntry, - EventClassificationTaxonomyPredicate, -) -from .exercise import ( - ExerciseTaxonomy, - ExerciseTaxonomyCyberCoalitionEntry, - ExerciseTaxonomyCyberEuropeEntry, - ExerciseTaxonomyCyberSopexEntry, - ExerciseTaxonomyCyberStormEntry, - ExerciseTaxonomyGenericEntry, - ExerciseTaxonomyLockedShieldsEntry, - ExerciseTaxonomyLukexEntry, - ExerciseTaxonomyPaceEntry, - ExerciseTaxonomyPredicate, -) -from .extended_event import ( - ExtendedEventTaxonomy, - ExtendedEventTaxonomyChunkedEventEntry, - ExtendedEventTaxonomyCompetitiveAnalysisEntry, - ExtendedEventTaxonomyExtendedAnalysisEntry, - ExtendedEventTaxonomyPredicate, -) -from .failure_mode_in_machine_learning import ( - FailureModeInMachineLearningTaxonomy, - FailureModeInMachineLearningTaxonomyIntentionallyMotivatedFailuresSummaryEntry, - FailureModeInMachineLearningTaxonomyPredicate, - FailureModeInMachineLearningTaxonomyUnintendedFailuresSummaryEntry, -) -from .false_positive import ( - FalsePositiveTaxonomy, - FalsePositiveTaxonomyConfirmedEntry, - FalsePositiveTaxonomyPredicate, - FalsePositiveTaxonomyRiskEntry, -) -from .file_type import FileTypeTaxonomy, FileTypeTaxonomyPredicate, FileTypeTaxonomyTypeEntry -from .financial import ( - FinancialTaxonomy, - FinancialTaxonomyCategoriesAndTypesOfServicesEntry, - FinancialTaxonomyGeographicalFootprintEntry, - FinancialTaxonomyOnlineExpositionEntry, - FinancialTaxonomyPhysicalPresenceEntry, - FinancialTaxonomyPredicate, - FinancialTaxonomyServicesEntry, -) -from .flesch_reading_ease import ( - FleschReadingEaseTaxonomy, - FleschReadingEaseTaxonomyPredicate, - FleschReadingEaseTaxonomyScoreEntry, -) -from .fpf import ( - FpfTaxonomy, - FpfTaxonomyAnonymousDataEntry, - FpfTaxonomyDeIdentifiedDataEntry, - FpfTaxonomyDegreesOfIdentifiabilityEntry, - FpfTaxonomyPredicate, - FpfTaxonomyPseudonymousDataEntry, -) -from .fr_classif import ( - FrClassifTaxonomy, - FrClassifTaxonomyClassifieesEntry, - FrClassifTaxonomyNonClassifieesEntry, - FrClassifTaxonomyPredicate, - FrClassifTaxonomySpecialFranceEntry, -) -from .gdpr import GdprTaxonomy, GdprTaxonomyPredicate, GdprTaxonomySpecialCategoriesEntry -from .gea_nz_activities import ( - GeaNzActivitiesTaxonomy, - GeaNzActivitiesTaxonomyCasesClaimEntry, - GeaNzActivitiesTaxonomyCasesComplianceEntry, - GeaNzActivitiesTaxonomyCasesEpisodeEntry, - GeaNzActivitiesTaxonomyCasesProceedingEntry, - GeaNzActivitiesTaxonomyCasesRequestEntry, - GeaNzActivitiesTaxonomyEventsBusinessEntry, - GeaNzActivitiesTaxonomyEventsCrisisEntry, - GeaNzActivitiesTaxonomyEventsEnvironmentalEntry, - GeaNzActivitiesTaxonomyEventsInteractionEntry, - GeaNzActivitiesTaxonomyEventsPersonalEntry, - GeaNzActivitiesTaxonomyEventsSocialEntry, - GeaNzActivitiesTaxonomyEventsTradeEntry, - GeaNzActivitiesTaxonomyEventsTravelEntry, - GeaNzActivitiesTaxonomyEventsUncontrolledEntry, - GeaNzActivitiesTaxonomyPredicate, - GeaNzActivitiesTaxonomyServicesCivicInfrastructureEntry, - GeaNzActivitiesTaxonomyServicesFranceSocietyEntry, - GeaNzActivitiesTaxonomyServicesGovernmentAdministrationEntry, - GeaNzActivitiesTaxonomyServicesInvidualsCommunitiesEntry, - GeaNzActivitiesTaxonomyServicesServicesFromBusinessEntry, - GeaNzActivitiesTaxonomyServicesServicesToBusinessEntry, -) -from .gea_nz_entities import ( - GeaNzEntitiesTaxonomy, - GeaNzEntitiesTaxonomyItemsApplicationIctServicesEntry, - GeaNzEntitiesTaxonomyItemsFinancialEntry, - GeaNzEntitiesTaxonomyItemsGoodsEntry, - GeaNzEntitiesTaxonomyItemsIctInfrastructureEntry, - GeaNzEntitiesTaxonomyItemsItemUsageEntry, - GeaNzEntitiesTaxonomyItemsNaturalEntry, - GeaNzEntitiesTaxonomyItemsRegulatoryEntry, - GeaNzEntitiesTaxonomyItemsUrbanInfrastructureEntry, - GeaNzEntitiesTaxonomyPartiesPartyEntry, - GeaNzEntitiesTaxonomyPartiesPartyRelationshipEntry, - GeaNzEntitiesTaxonomyPartiesQualificationEntry, - GeaNzEntitiesTaxonomyPartiesRoleEntry, - GeaNzEntitiesTaxonomyPlacesAddressEntry, - GeaNzEntitiesTaxonomyPlacesAddressTypeEntry, - GeaNzEntitiesTaxonomyPlacesLocationTypeEntry, - GeaNzEntitiesTaxonomyPlacesPurposeOfLocationEntry, - GeaNzEntitiesTaxonomyPredicate, -) -from .gea_nz_motivators import ( - GeaNzMotivatorsTaxonomy, - GeaNzMotivatorsTaxonomyContractsArrangementEntry, - GeaNzMotivatorsTaxonomyContractsJurisdictionEntry, - GeaNzMotivatorsTaxonomyContractsObligationEntry, - GeaNzMotivatorsTaxonomyContractsRightsEntry, - GeaNzMotivatorsTaxonomyControlsFinanceEntry, - GeaNzMotivatorsTaxonomyControlsIndustryEntry, - GeaNzMotivatorsTaxonomyControlsLawEntry, - GeaNzMotivatorsTaxonomyControlsOperationalEntry, - GeaNzMotivatorsTaxonomyControlsPersonalEntry, - GeaNzMotivatorsTaxonomyControlsRiskGovernanceEntry, - GeaNzMotivatorsTaxonomyControlsTechnologicalEntry, - GeaNzMotivatorsTaxonomyPlansBudgetEntry, - GeaNzMotivatorsTaxonomyPlansEffortEntry, - GeaNzMotivatorsTaxonomyPlansMeasureEntry, - GeaNzMotivatorsTaxonomyPlansRiskEntry, - GeaNzMotivatorsTaxonomyPlansSpecificationEntry, - GeaNzMotivatorsTaxonomyPlansStrategyEntry, - GeaNzMotivatorsTaxonomyPredicate, -) -from .gray_zone import ( - GrayZoneTaxonomy, - GrayZoneTaxonomyAdversaryEmulationEntry, - GrayZoneTaxonomyAdversaryTakedownsEntry, - GrayZoneTaxonomyBeaconsEntry, - GrayZoneTaxonomyDeceptionEntry, - GrayZoneTaxonomyDeterrenceEntry, - GrayZoneTaxonomyIntelligenceAndCounterintelligenceEntry, - GrayZoneTaxonomyPredicate, - GrayZoneTaxonomyRansomwareEntry, - GrayZoneTaxonomyRescueMissionsEntry, - GrayZoneTaxonomySanctionsIndictmentsTradeRemediesEntry, - GrayZoneTaxonomyTarpitsSandboxesAndHoneypotsEntry, -) -from .gsma_attack_category import GsmaAttackCategoryTaxonomy, GsmaAttackCategoryTaxonomyPredicate -from .gsma_fraud import ( - GsmaFraudTaxonomy, - GsmaFraudTaxonomyBusinessEntry, - GsmaFraudTaxonomyDistributionEntry, - GsmaFraudTaxonomyPredicate, - GsmaFraudTaxonomyPrepaidEntry, - GsmaFraudTaxonomySubscriptionEntry, - GsmaFraudTaxonomyTechnicalEntry, -) -from .gsma_network_technology import ( - GsmaNetworkTechnologyTaxonomy, - GsmaNetworkTechnologyTaxonomyEndDevicesAndComponentsEntry, - GsmaNetworkTechnologyTaxonomyPredicate, -) -from .honeypot_basic import ( - HoneypotBasicTaxonomy, - HoneypotBasicTaxonomyCommunicationInterfaceEntry, - HoneypotBasicTaxonomyContainmentEntry, - HoneypotBasicTaxonomyDataCaptureEntry, - HoneypotBasicTaxonomyDistributionAppearanceEntry, - HoneypotBasicTaxonomyInteractionLevelEntry, - HoneypotBasicTaxonomyPredicate, - HoneypotBasicTaxonomyRoleEntry, -) -from .ics import ( - IcsTaxonomy, - IcsTaxonomyOtCommunicationInterfaceEntry, - IcsTaxonomyOtComponentsCategoryEntry, - IcsTaxonomyOtNetworkDataTransmissionProtocolsAutomaticAutomobileVehicleAviationEntry, - IcsTaxonomyOtNetworkDataTransmissionProtocolsAutomaticMeterReadingEntry, - IcsTaxonomyOtNetworkDataTransmissionProtocolsBuildingAutomationEntry, - IcsTaxonomyOtNetworkDataTransmissionProtocolsIndustrialControlSystemEntry, - IcsTaxonomyOtNetworkDataTransmissionProtocolsPowerSystemAutomationEntry, - IcsTaxonomyOtNetworkDataTransmissionProtocolsProcessAutomationEntry, - IcsTaxonomyOtOperatingSystemsEntry, - IcsTaxonomyOtSecurityIssuesEntry, - IcsTaxonomyPredicate, -) -from .iep import ( - IepTaxonomy, - IepTaxonomyAffectedPartyNotificationsEntry, - IepTaxonomyCommercialUseEntry, - IepTaxonomyEncryptAtRestEntry, - IepTaxonomyEncryptInTransitEntry, - IepTaxonomyEndDateEntry, - IepTaxonomyExternalReferenceEntry, - IepTaxonomyIdEntry, - IepTaxonomyNameEntry, - IepTaxonomyObfuscateAffectedPartiesEntry, - IepTaxonomyPermittedActionsEntry, - IepTaxonomyPredicate, - IepTaxonomyProviderAttributionEntry, - IepTaxonomyReferenceEntry, - IepTaxonomyStartDateEntry, - IepTaxonomyTrafficLightProtocolEntry, - IepTaxonomyUnmodifiedResaleEntry, - IepTaxonomyVersionEntry, -) -from .iep2_policy import ( - Iep2PolicyTaxonomy, - Iep2PolicyTaxonomyAffectedPartyNotificationsEntry, - Iep2PolicyTaxonomyAttributionEntry, - Iep2PolicyTaxonomyDescriptionEntry, - Iep2PolicyTaxonomyEncryptInTransitEntry, - Iep2PolicyTaxonomyEndDateEntry, - Iep2PolicyTaxonomyExternalReferenceEntry, - Iep2PolicyTaxonomyIdEntry, - Iep2PolicyTaxonomyIepVersionEntry, - Iep2PolicyTaxonomyNameEntry, - Iep2PolicyTaxonomyPermittedActionsEntry, - Iep2PolicyTaxonomyPredicate, - Iep2PolicyTaxonomyStartDateEntry, - Iep2PolicyTaxonomyTlpEntry, - Iep2PolicyTaxonomyUnmodifiedResaleEntry, -) -from .iep2_reference import ( - Iep2ReferenceTaxonomy, - Iep2ReferenceTaxonomyIdRefEntry, - Iep2ReferenceTaxonomyIepVersionEntry, - Iep2ReferenceTaxonomyPredicate, - Iep2ReferenceTaxonomyUrlEntry, -) -from .ifx_vetting import ( - IfxVettingTaxonomy, - IfxVettingTaxonomyPredicate, - IfxVettingTaxonomyScoreEntry, - IfxVettingTaxonomyVettedEntry, -) -from .incident_disposition import ( - IncidentDispositionTaxonomy, - IncidentDispositionTaxonomyDuplicateEntry, - IncidentDispositionTaxonomyIncidentEntry, - IncidentDispositionTaxonomyNotAnIncidentEntry, - IncidentDispositionTaxonomyPredicate, -) -from .infoleak import ( - InfoleakTaxonomy, - InfoleakTaxonomyAnalystDetectionEntry, - InfoleakTaxonomyAutomaticDetectionEntry, - InfoleakTaxonomyCertaintyEntry, - InfoleakTaxonomyConfirmedEntry, - InfoleakTaxonomyOutputFormatEntry, - InfoleakTaxonomyPredicate, - InfoleakTaxonomySourceEntry, - InfoleakTaxonomySubmissionEntry, -) -from .information_origin import InformationOriginTaxonomy, InformationOriginTaxonomyPredicate -from .information_security_data_source import ( - InformationSecurityDataSourceTaxonomy, - InformationSecurityDataSourceTaxonomyIntegrabilityFormatEntry, - InformationSecurityDataSourceTaxonomyIntegrabilityInterfaceEntry, - InformationSecurityDataSourceTaxonomyOriginalityEntry, - InformationSecurityDataSourceTaxonomyPredicate, - InformationSecurityDataSourceTaxonomyTimelinessSharingBehaviorEntry, - InformationSecurityDataSourceTaxonomyTrustworthinessCreditabililyEntry, - InformationSecurityDataSourceTaxonomyTrustworthinessFeedbackMechanismEntry, - InformationSecurityDataSourceTaxonomyTrustworthinessTraceabilityEntry, - InformationSecurityDataSourceTaxonomyTypeOfInformationEntry, - InformationSecurityDataSourceTaxonomyTypeOfSourceEntry, -) -from .information_security_indicators import ( - InformationSecurityIndicatorsTaxonomy, - InformationSecurityIndicatorsTaxonomyIdbEntry, - InformationSecurityIndicatorsTaxonomyIexEntry, - InformationSecurityIndicatorsTaxonomyImfEntry, - InformationSecurityIndicatorsTaxonomyImpEntry, - InformationSecurityIndicatorsTaxonomyIwhEntry, - InformationSecurityIndicatorsTaxonomyPredicate, - InformationSecurityIndicatorsTaxonomyVbhEntry, - InformationSecurityIndicatorsTaxonomyVcfEntry, - InformationSecurityIndicatorsTaxonomyVorEntry, - InformationSecurityIndicatorsTaxonomyVswEntry, - InformationSecurityIndicatorsTaxonomyVtcEntry, -) -from .interactive_cyber_training_audience import ( - InteractiveCyberTrainingAudienceTaxonomy, - InteractiveCyberTrainingAudienceTaxonomyPredicate, - InteractiveCyberTrainingAudienceTaxonomyProficiencyLevelEntry, - InteractiveCyberTrainingAudienceTaxonomyPurposeEntry, - InteractiveCyberTrainingAudienceTaxonomySectorEntry, - InteractiveCyberTrainingAudienceTaxonomyTargetAudienceEntry, -) -from .interactive_cyber_training_technical_setup import ( - InteractiveCyberTrainingTechnicalSetupTaxonomy, - InteractiveCyberTrainingTechnicalSetupTaxonomyDeploymentEntry, - InteractiveCyberTrainingTechnicalSetupTaxonomyEnvironmentStructureEntry, - InteractiveCyberTrainingTechnicalSetupTaxonomyOrchestrationEntry, - InteractiveCyberTrainingTechnicalSetupTaxonomyPredicate, -) -from .interactive_cyber_training_training_environment import ( - InteractiveCyberTrainingTrainingEnvironmentTaxonomy, - InteractiveCyberTrainingTrainingEnvironmentTaxonomyPredicate, - InteractiveCyberTrainingTrainingEnvironmentTaxonomyScenarioEntry, - InteractiveCyberTrainingTrainingEnvironmentTaxonomyTrainingTypeEntry, -) -from .interactive_cyber_training_training_setup import ( - InteractiveCyberTrainingTrainingSetupTaxonomy, - InteractiveCyberTrainingTrainingSetupTaxonomyCustomizationLevelEntry, - InteractiveCyberTrainingTrainingSetupTaxonomyPredicate, - InteractiveCyberTrainingTrainingSetupTaxonomyRolesEntry, - InteractiveCyberTrainingTrainingSetupTaxonomyScoringEntry, - InteractiveCyberTrainingTrainingSetupTaxonomyTrainingModeEntry, -) -from .interception_method import InterceptionMethodTaxonomy, InterceptionMethodTaxonomyPredicate -from .ioc import IocTaxonomy, IocTaxonomyArtifactStateEntry, IocTaxonomyPredicate -from .iot import IotTaxonomy, IotTaxonomyDslEntry, IotTaxonomyPredicate, IotTaxonomySslEntry, IotTaxonomyTcomEntry -from .kill_chain import KillChainTaxonomy, KillChainTaxonomyPredicate -from .maec_delivery_vectors import ( - MaecDeliveryVectorsTaxonomy, - MaecDeliveryVectorsTaxonomyMaecDeliveryVectorEntry, - MaecDeliveryVectorsTaxonomyPredicate, -) -from .maec_malware_behavior import ( - MaecMalwareBehaviorTaxonomy, - MaecMalwareBehaviorTaxonomyMaecMalwareBehaviorEntry, - MaecMalwareBehaviorTaxonomyPredicate, -) -from .maec_malware_capabilities import ( - MaecMalwareCapabilitiesTaxonomy, - MaecMalwareCapabilitiesTaxonomyMaecMalwareCapabilityEntry, - MaecMalwareCapabilitiesTaxonomyPredicate, -) -from .maec_malware_obfuscation_methods import ( - MaecMalwareObfuscationMethodsTaxonomy, - MaecMalwareObfuscationMethodsTaxonomyMaecObfuscationMethodsEntry, - MaecMalwareObfuscationMethodsTaxonomyPredicate, -) -from .malware_classification import ( - MalwareClassificationTaxonomy, - MalwareClassificationTaxonomyMalwareCategoryEntry, - MalwareClassificationTaxonomyMemoryClassificationEntry, - MalwareClassificationTaxonomyObfuscationTechniqueEntry, - MalwareClassificationTaxonomyPayloadClassificationEntry, - MalwareClassificationTaxonomyPredicate, -) -from .misinformation_website_label import ( - MisinformationWebsiteLabelTaxonomy, - MisinformationWebsiteLabelTaxonomyExtremeBiasEntry, - MisinformationWebsiteLabelTaxonomyHateNewsEntry, - MisinformationWebsiteLabelTaxonomyPredicate, - MisinformationWebsiteLabelTaxonomyRumorEntry, - MisinformationWebsiteLabelTaxonomySatireEntry, -) -from .misp import ( - MispTaxonomy, - MispTaxonomyApiEntry, - MispTaxonomyAutomationLevelEntry, - MispTaxonomyConfidenceLevelEntry, - MispTaxonomyContributorEntry, - MispTaxonomyEventTypeEntry, - MispTaxonomyExpansionEntry, - MispTaxonomyIdsEntry, - MispTaxonomyMisp2yaraEntry, - MispTaxonomyPredicate, - MispTaxonomyThreatLevelEntry, - MispTaxonomyToolEntry, - MispTaxonomyUiEntry, -) -from .misp_workflow import ( - MispWorkflowTaxonomy, - MispWorkflowTaxonomyActionTakenEntry, - MispWorkflowTaxonomyAnalysisEntry, - MispWorkflowTaxonomyMutabilityEntry, - MispWorkflowTaxonomyPredicate, - MispWorkflowTaxonomyRunEntry, -) -from .monarc_threat import ( - MonarcThreatTaxonomy, - MonarcThreatTaxonomyCompromiseOfFunctionsEntry, - MonarcThreatTaxonomyCompromiseOfInformationEntry, - MonarcThreatTaxonomyLossOfEssentialServicesEntry, - MonarcThreatTaxonomyPhysicalDamageEntry, - MonarcThreatTaxonomyPredicate, - MonarcThreatTaxonomyTechnicalFailuresEntry, - MonarcThreatTaxonomyUnauthorisedActionsEntry, -) -from .ms_caro_malware import ( - MsCaroMalwareTaxonomy, - MsCaroMalwareTaxonomyMalwarePlatformEntry, - MsCaroMalwareTaxonomyMalwareTypeEntry, - MsCaroMalwareTaxonomyPredicate, -) -from .ms_caro_malware_full import ( - MsCaroMalwareFullTaxonomy, - MsCaroMalwareFullTaxonomyMalwareFamilyEntry, - MsCaroMalwareFullTaxonomyMalwarePlatformEntry, - MsCaroMalwareFullTaxonomyMalwareTypeEntry, - MsCaroMalwareFullTaxonomyPredicate, -) -from .mwdb import MwdbTaxonomy, MwdbTaxonomyFamilyEntry, MwdbTaxonomyLocationTypeEntry, MwdbTaxonomyPredicate -from .nato import NatoTaxonomy, NatoTaxonomyClassificationEntry, NatoTaxonomyPredicate -from .nis import ( - NisTaxonomy, - NisTaxonomyImpactOutlookEntry, - NisTaxonomyImpactSectorsImpactedEntry, - NisTaxonomyImpactSeverityEntry, - NisTaxonomyNatureRootCauseEntry, - NisTaxonomyNatureSeverityEntry, - NisTaxonomyPredicate, - NisTaxonomyTestEntry, -) -from .nis2 import ( - Nis2Taxonomy, - Nis2TaxonomyImpactOutlookEntry, - Nis2TaxonomyImpactSectorsImpactedEntry, - Nis2TaxonomyImpactSeverityEntry, - Nis2TaxonomyImpactSubsectorsImpactedEntry, - Nis2TaxonomyImpactSubsectorsImportantEntitiesEntry, - Nis2TaxonomyImportantEntitiesEntry, - Nis2TaxonomyNatureRootCauseEntry, - Nis2TaxonomyNatureSeverityEntry, - Nis2TaxonomyPredicate, - Nis2TaxonomyTestEntry, -) -from .open_threat import ( - OpenThreatTaxonomy, - OpenThreatTaxonomyPredicate, - OpenThreatTaxonomyThreatCategoryEntry, - OpenThreatTaxonomyThreatNameEntry, -) -from .organizational_cyber_harm import ( - OrganizationalCyberHarmTaxonomy, - OrganizationalCyberHarmTaxonomyEconomicEntry, - OrganizationalCyberHarmTaxonomyPhysicalDigitalEntry, - OrganizationalCyberHarmTaxonomyPredicate, - OrganizationalCyberHarmTaxonomyPsychologicalEntry, - OrganizationalCyberHarmTaxonomyReputationalEntry, - OrganizationalCyberHarmTaxonomySocialSocietalEntry, -) -from .osint import ( - OsintTaxonomy, - OsintTaxonomyCertaintyEntry, - OsintTaxonomyLifetimeEntry, - OsintTaxonomyPredicate, - OsintTaxonomySourceTypeEntry, -) -from .pandemic import PandemicTaxonomy, PandemicTaxonomyCovid19Entry, PandemicTaxonomyPredicate -from .pap import PapTaxonomy, PapTaxonomyPredicate -from .passivetotal import ( - PassivetotalTaxonomy, - PassivetotalTaxonomyClassEntry, - PassivetotalTaxonomyDynamicDnsEntry, - PassivetotalTaxonomyEverCompromisedEntry, - PassivetotalTaxonomyPredicate, - PassivetotalTaxonomySinkholedEntry, -) -from .pentest import ( - PentestTaxonomy, - PentestTaxonomyApproachEntry, - PentestTaxonomyExploitEntry, - PentestTaxonomyNetworkEntry, - PentestTaxonomyPostExploitationEntry, - PentestTaxonomyPredicate, - PentestTaxonomyScanEntry, - PentestTaxonomySocialEngineeringEntry, - PentestTaxonomyVulnerabilityEntry, - PentestTaxonomyWebEntry, -) -from .pfc import PfcTaxonomy, PfcTaxonomyPredicate -from .phishing import ( - PhishingTaxonomy, - PhishingTaxonomyActionEntry, - PhishingTaxonomyDistributionEntry, - PhishingTaxonomyPredicate, - PhishingTaxonomyPrincipleOfPersuasionEntry, - PhishingTaxonomyPsychologicalAcceptabilityEntry, - PhishingTaxonomyReportOriginEntry, - PhishingTaxonomyReportTypeEntry, - PhishingTaxonomyStateEntry, - PhishingTaxonomyTechniquesEntry, -) -from .poison_taxonomy import ( - PoisonTaxonomyTaxonomy, - PoisonTaxonomyTaxonomyPoisonousFungusEntry, - PoisonTaxonomyTaxonomyPredicate, -) -from .political_spectrum import ( - PoliticalSpectrumTaxonomy, - PoliticalSpectrumTaxonomyIdeologyEntry, - PoliticalSpectrumTaxonomyLeftRightSpectrumEntry, - PoliticalSpectrumTaxonomyPredicate, -) -from .priority_level import PriorityLevelTaxonomy, PriorityLevelTaxonomyPredicate -from .pyoti import ( - PyotiTaxonomy, - PyotiTaxonomyAbuseipdbEntry, - PyotiTaxonomyCheckdmarcEntry, - PyotiTaxonomyCirclHashlookupEntry, - PyotiTaxonomyEmailrepioEntry, - PyotiTaxonomyGooglesafebrowsingEntry, - PyotiTaxonomyGreynoiseRiotEntry, - PyotiTaxonomyIrisInvestigateEntry, - PyotiTaxonomyPredicate, - PyotiTaxonomyReputationBlockListEntry, - PyotiTaxonomyVirustotalEntry, -) -from .ransomware import ( - RansomwareTaxonomy, - RansomwareTaxonomyCommunicationEntry, - RansomwareTaxonomyComplexityLevelEntry, - RansomwareTaxonomyElementEntry, - RansomwareTaxonomyInfectionEntry, - RansomwareTaxonomyMaliciousActionEntry, - RansomwareTaxonomyPredicate, - RansomwareTaxonomyPurposeEntry, - RansomwareTaxonomyTargetEntry, - RansomwareTaxonomyTypeEntry, -) -from .ransomware_roles import RansomwareRolesTaxonomy, RansomwareRolesTaxonomyPredicate -from .retention import RetentionTaxonomy, RetentionTaxonomyPredicate -from .rsit import ( - RsitTaxonomy, - RsitTaxonomyAbusiveContentEntry, - RsitTaxonomyAvailabilityEntry, - RsitTaxonomyFraudEntry, - RsitTaxonomyInformationContentSecurityEntry, - RsitTaxonomyInformationGatheringEntry, - RsitTaxonomyIntrusionAttemptsEntry, - RsitTaxonomyIntrusionsEntry, - RsitTaxonomyMaliciousCodeEntry, - RsitTaxonomyOtherEntry, - RsitTaxonomyPredicate, - RsitTaxonomyTestEntry, - RsitTaxonomyVulnerableEntry, -) -from .rt_event_status import ( - RtEventStatusTaxonomy, - RtEventStatusTaxonomyEventStatusEntry, - RtEventStatusTaxonomyPredicate, -) -from .runtime_packer import ( - RuntimePackerTaxonomy, - RuntimePackerTaxonomyDexEntry, - RuntimePackerTaxonomyElfEntry, - RuntimePackerTaxonomyMachoEntry, - RuntimePackerTaxonomyPeEntry, - RuntimePackerTaxonomyPredicate, -) -from .scrippsco2_fgc import Scrippsco2FgcTaxonomy, Scrippsco2FgcTaxonomyPredicate -from .scrippsco2_fgi import Scrippsco2FgiTaxonomy, Scrippsco2FgiTaxonomyPredicate -from .scrippsco2_sampling_stations import ( - Scrippsco2SamplingStationsTaxonomy, - Scrippsco2SamplingStationsTaxonomyPredicate, -) -from .sentinel_threattype import SentinelThreattypeTaxonomy, SentinelThreattypeTaxonomyPredicate -from .smart_airports_threats import ( - SmartAirportsThreatsTaxonomy, - SmartAirportsThreatsTaxonomyHumanErrorsEntry, - SmartAirportsThreatsTaxonomyMaliciousActionsEntry, - SmartAirportsThreatsTaxonomyNaturalAndSocialPhenomenaEntry, - SmartAirportsThreatsTaxonomyPredicate, - SmartAirportsThreatsTaxonomySystemFailuresEntry, - SmartAirportsThreatsTaxonomyThirdPartyFailuresEntry, -) -from .social_engineering_attack_vectors import ( - SocialEngineeringAttackVectorsTaxonomy, - SocialEngineeringAttackVectorsTaxonomyNonTechnicalEntry, - SocialEngineeringAttackVectorsTaxonomyPredicate, - SocialEngineeringAttackVectorsTaxonomyTechnicalEntry, -) -from .srbcert import ( - SrbcertTaxonomy, - SrbcertTaxonomyIncidentCriticalityLevelEntry, - SrbcertTaxonomyIncidentTypeEntry, - SrbcertTaxonomyPredicate, -) -from .state_responsibility import StateResponsibilityTaxonomy, StateResponsibilityTaxonomyPredicate -from .stealth_malware import StealthMalwareTaxonomy, StealthMalwareTaxonomyPredicate, StealthMalwareTaxonomyTypeEntry -from .stix_ttp import StixTtpTaxonomy, StixTtpTaxonomyPredicate, StixTtpTaxonomyVictimTargetingEntry -from .targeted_threat_index import ( - TargetedThreatIndexTaxonomy, - TargetedThreatIndexTaxonomyPredicate, - TargetedThreatIndexTaxonomyTargetingSophisticationBaseValueEntry, - TargetedThreatIndexTaxonomyTechnicalSophisticationMultiplierEntry, -) -from .thales_group import ( - ThalesGroupTaxonomy, - ThalesGroupTaxonomyDistributionEntry, - ThalesGroupTaxonomyIocConfidenceEntry, - ThalesGroupTaxonomyPredicate, -) -from .threatmatch import ( - ThreatmatchTaxonomy, - ThreatmatchTaxonomyAlertTypeEntry, - ThreatmatchTaxonomyIncidentTypeEntry, - ThreatmatchTaxonomyMalwareTypeEntry, - ThreatmatchTaxonomyPredicate, - ThreatmatchTaxonomySectorEntry, -) -from .threats_to_dns import ( - ThreatsToDnsTaxonomy, - ThreatsToDnsTaxonomyDnsAbuseOrMisuseEntry, - ThreatsToDnsTaxonomyDnsProtocolAttacksEntry, - ThreatsToDnsTaxonomyDnsServerAttacksEntry, - ThreatsToDnsTaxonomyPredicate, -) -from .tlp import TlpTaxonomy, TlpTaxonomyPredicate -from .tor import TorTaxonomy, TorTaxonomyPredicate, TorTaxonomyTorRelayTypeEntry -from .trust import ( - TrustTaxonomy, - TrustTaxonomyFrequencyEntry, - TrustTaxonomyPredicate, - TrustTaxonomyTrustEntry, - TrustTaxonomyValidEntry, -) -from .type import TypeTaxonomy, TypeTaxonomyPredicate -from .unified_kill_chain import ( - UnifiedKillChainTaxonomy, - UnifiedKillChainTaxonomyActionOnObjectivesEntry, - UnifiedKillChainTaxonomyInitialFootholdEntry, - UnifiedKillChainTaxonomyNetworkPropagationEntry, - UnifiedKillChainTaxonomyPredicate, -) -from .unified_ransomware_kill_chain import ( - UnifiedRansomwareKillChainTaxonomy, - UnifiedRansomwareKillChainTaxonomyPredicate, -) -from .use_case_applicability import UseCaseApplicabilityTaxonomy, UseCaseApplicabilityTaxonomyPredicate -from .veris import ( - VerisTaxonomy, - VerisTaxonomyActionEnvironmentalVarietyEntry, - VerisTaxonomyActionErrorVarietyEntry, - VerisTaxonomyActionErrorVectorEntry, - VerisTaxonomyActionHackingResultEntry, - VerisTaxonomyActionHackingVarietyEntry, - VerisTaxonomyActionHackingVectorEntry, - VerisTaxonomyActionMalwareResultEntry, - VerisTaxonomyActionMalwareVarietyEntry, - VerisTaxonomyActionMalwareVectorEntry, - VerisTaxonomyActionMisuseResultEntry, - VerisTaxonomyActionMisuseVarietyEntry, - VerisTaxonomyActionMisuseVectorEntry, - VerisTaxonomyActionPhysicalResultEntry, - VerisTaxonomyActionPhysicalVarietyEntry, - VerisTaxonomyActionPhysicalVectorEntry, - VerisTaxonomyActionSocialResultEntry, - VerisTaxonomyActionSocialTargetEntry, - VerisTaxonomyActionSocialVarietyEntry, - VerisTaxonomyActionSocialVectorEntry, - VerisTaxonomyActionUnknownResultEntry, - VerisTaxonomyActorExternalCountryEntry, - VerisTaxonomyActorExternalMotiveEntry, - VerisTaxonomyActorExternalVarietyEntry, - VerisTaxonomyActorInternalJobChangeEntry, - VerisTaxonomyActorInternalMotiveEntry, - VerisTaxonomyActorInternalVarietyEntry, - VerisTaxonomyActorPartnerCountryEntry, - VerisTaxonomyActorPartnerMotiveEntry, - VerisTaxonomyAssetAccessibilityEntry, - VerisTaxonomyAssetAssetsVarietyEntry, - VerisTaxonomyAssetCloudEntry, - VerisTaxonomyAssetCountryEntry, - VerisTaxonomyAssetGovernanceEntry, - VerisTaxonomyAssetHostingEntry, - VerisTaxonomyAssetManagementEntry, - VerisTaxonomyAssetOwnershipEntry, - VerisTaxonomyAttributeAvailabilityDurationUnitEntry, - VerisTaxonomyAttributeAvailabilityVarietyEntry, - VerisTaxonomyAttributeConfidentialityDataDisclosureEntry, - VerisTaxonomyAttributeConfidentialityDataVarietyEntry, - VerisTaxonomyAttributeConfidentialityDataVictimEntry, - VerisTaxonomyAttributeConfidentialityStateEntry, - VerisTaxonomyAttributeIntegrityVarietyEntry, - VerisTaxonomyConfidenceEntry, - VerisTaxonomyCostCorrectiveActionEntry, - VerisTaxonomyDiscoveryMethodEntry, - VerisTaxonomyImpactIsoCurrencyCodeEntry, - VerisTaxonomyImpactLossRatingEntry, - VerisTaxonomyImpactLossVarietyEntry, - VerisTaxonomyImpactOverallRatingEntry, - VerisTaxonomyPredicate, - VerisTaxonomySecurityIncidentEntry, - VerisTaxonomyTargetedEntry, - VerisTaxonomyTimelineCompromiseUnitEntry, - VerisTaxonomyTimelineContainmentUnitEntry, - VerisTaxonomyTimelineDiscoveryUnitEntry, - VerisTaxonomyTimelineExfiltrationUnitEntry, - VerisTaxonomyVictimCountryEntry, - VerisTaxonomyVictimEmployeeCountEntry, - VerisTaxonomyVictimRevenueIsoCurrencyCodeEntry, -) -from .vmray import ( - VmrayTaxonomy, - VmrayTaxonomyArtifactEntry, - VmrayTaxonomyPredicate, - VmrayTaxonomyVerdictEntry, - VmrayTaxonomyVtiAnalysisScoreEntry, -) -from .vocabulaire_des_probabilites_estimatives import ( - VocabulaireDesProbabilitesEstimativesTaxonomy, - VocabulaireDesProbabilitesEstimativesTaxonomyDegrDeProbabilitEntry, - VocabulaireDesProbabilitesEstimativesTaxonomyPredicate, -) -from .vulnerability import ( - VulnerabilityTaxonomy, - VulnerabilityTaxonomyExploitabilityEntry, - VulnerabilityTaxonomyInformationEntry, - VulnerabilityTaxonomyPredicate, - VulnerabilityTaxonomySightingEntry, -) -from .workflow import WorkflowTaxonomy, WorkflowTaxonomyPredicate, WorkflowTaxonomyStateEntry, WorkflowTaxonomyTodoEntry -# This will be populated by the taxonomy generator diff --git a/src/openmisp/models/taxonomies/access_method.py b/src/openmisp/models/taxonomies/access_method.py deleted file mode 100644 index 50d3b1c..0000000 --- a/src/openmisp/models/taxonomies/access_method.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Taxonomy model for Access method.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class AccessMethodTaxonomyPredicate(str, Enum): - BRUTE_FORCE = "brute-force" - PASSWORD_GUESSING = "password-guessing" - REMOTE_DESKTOP_APPLICATION = "remote-desktop-application" - STOLEN_CREDENTIALS = "stolen-credentials" - PASS_THE_HASH = "pass-the-hash" - DEFAULT_CREDENTIALS = "default-credentials" - SHELL = "shell" - OTHER = "other" - - -class AccessMethodTaxonomy(BaseModel): - """Model for the Access method taxonomy.""" - - namespace: str = "access-method" - description: str = """The access method used to remotely access a system.""" - version: int = 1 - exclusive: bool = False - predicates: List[AccessMethodTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/accessnow.py b/src/openmisp/models/taxonomies/accessnow.py deleted file mode 100644 index dce7481..0000000 --- a/src/openmisp/models/taxonomies/accessnow.py +++ /dev/null @@ -1,50 +0,0 @@ -"""Taxonomy model for accessnow.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class AccessnowTaxonomyPredicate(str, Enum): - ANTI_CORRUPTION_TRANSPARENCY = "anti-corruption-transparency" - ANTI_WAR_VIOLENCE = "anti-war-violence" - CULTURE = "culture" - ECONOMIC_CHANGE = "economic-change" - EDUCATION = "education" - ELECTION_MONITORING = "election-monitoring" - ENVIRONMENT = "environment" - FREEDOM_EXPRESSION = "freedom-expression" - FREEDOM_TOOL_DEVELOPMENT = "freedom-tool-development" - FUNDING = "funding" - HEALTH = "health" - HUMAN_RIGHTS = "human-rights" - INTERNET_TELECOM = "internet-telecom" - LGBT_GENDER_SEXUALITY = "lgbt-gender-sexuality" - POLICY = "policy" - POLITICS = "politics" - PRIVACY = "privacy" - RAPID_RESPONSE = "rapid-response" - REFUGEES = "refugees" - SECURITY = "security" - WOMENS_RIGHT = "womens-right" - YOUTH_RIGHTS = "youth-rights" - - -class AccessnowTaxonomy(BaseModel): - """Model for the accessnow taxonomy.""" - - namespace: str = "accessnow" - description: str = ( - """Access Now classification to classify an issue (such as security, human rights, youth rights).""" - ) - version: int = 3 - exclusive: bool = False - predicates: List[AccessnowTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/acs_marking.py b/src/openmisp/models/taxonomies/acs_marking.py deleted file mode 100644 index 5e27487..0000000 --- a/src/openmisp/models/taxonomies/acs_marking.py +++ /dev/null @@ -1,104 +0,0 @@ -"""Taxonomy model for acs-marking.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class AcsMarkingTaxonomyPredicate(str, Enum): - PRIVILEGE_ACTION = "privilege_action" - CLASSIFICATION = "classification" - FORMAL_DETERMINATION = "formal_determination" - CAVEAT = "caveat" - SENSITIVITY = "sensitivity" - SHAREABILITY = "shareability" - ENTITY = "entity" - - -class AcsMarkingTaxonomyPrivilegeActionEntry(str, Enum): - DSPLY = "DSPLY" - IDSRC = "IDSRC" - TENOT = "TENOT" - NETDEF = "NETDEF" - LEGAL = "LEGAL" - INTEL = "INTEL" - TEARLINE = "TEARLINE" - OPACTION = "OPACTION" - REQUEST = "REQUEST" - ANONYMOUSACCESS = "ANONYMOUSACCESS" - CISAUSES = "CISAUSES" - - -class AcsMarkingTaxonomyClassificationEntry(str, Enum): - U = "U" - C = "C" - S = "S" - TS = "TS" - - -class AcsMarkingTaxonomyFormalDeterminationEntry(str, Enum): - AIS = "AIS" - FOUO = "FOUO" - NF = "NF" - PII_NECESSARY_TO_UNDERSTAND_THREAT = "PII-NECESSARY-TO-UNDERSTAND-THREAT" - NO_PII_PRESENT = "NO-PII-PRESENT" - PUBREL = "PUBREL" - INFORMATION_DIRECTLY_RELATED_TO_CYBERSECURITY_THREAT = "INFORMATION-DIRECTLY-RELATED-TO-CYBERSECURITY-THREAT" - - -class AcsMarkingTaxonomyCaveatEntry(str, Enum): - FISA = "FISA" - POSSIBLEPII = "POSSIBLEPII" - CISAPROPRIETARY = "CISAPROPRIETARY" - - -class AcsMarkingTaxonomySensitivityEntry(str, Enum): - NTOC_DHS_ECYBER_SVC_SHARE_NSA_NSA = "NTOC_DHS_ECYBER_SVC_SHARE.NSA.NSA" - PCII = "PCII" - LES = "LES" - INT = "INT" - PII = "PII" - PR = "PR" - TEI = "TEI" - - -class AcsMarkingTaxonomyShareabilityEntry(str, Enum): - NCC = "NCC" - EM = "EM" - LE = "LE" - IC = "IC" - - -class AcsMarkingTaxonomyEntityEntry(str, Enum): - MIL = "MIL" - GOV = "GOV" - CTR = "CTR" - SVR = "SVR" - SVC = "SVC" - DEV = "DEV" - NET = "NET" - - -class AcsMarkingTaxonomy(BaseModel): - """Model for the acs-marking taxonomy.""" - - namespace: str = "acs-marking" - description: str = """The Access Control Specification (ACS) marking type defines the object types required to implement automated access control systems based on the relevant policies governing sharing between participants.""" - version: int = 1 - exclusive: bool = False - predicates: List[AcsMarkingTaxonomyPredicate] = [] - privilege_action_entries: List[AcsMarkingTaxonomyPrivilegeActionEntry] = [] - classification_entries: List[AcsMarkingTaxonomyClassificationEntry] = [] - formal_determination_entries: List[AcsMarkingTaxonomyFormalDeterminationEntry] = [] - caveat_entries: List[AcsMarkingTaxonomyCaveatEntry] = [] - sensitivity_entries: List[AcsMarkingTaxonomySensitivityEntry] = [] - shareability_entries: List[AcsMarkingTaxonomyShareabilityEntry] = [] - entity_entries: List[AcsMarkingTaxonomyEntityEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/action_taken.py b/src/openmisp/models/taxonomies/action_taken.py deleted file mode 100644 index 12b5976..0000000 --- a/src/openmisp/models/taxonomies/action_taken.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Taxonomy model for action-taken.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class ActionTakenTaxonomyPredicate(str, Enum): - INFORMED_ISP_HOSTING_SERVICE_PROVIDER = "informed ISP/Hosting Service Provider" - INFORMED_REGISTRAR = "informed Registrar" - INFORMED_REGISTRANT = "informed Registrant" - INFORMED_ABUSE_CONTACT__DOMAIN_ = "informed abuse-contact (domain)" - INFORMED_ABUSE_CONTACT__IP_ = "informed abuse-contact (IP)" - INFORMED_LEGAL_DEPARTMENT = "informed legal department" - - -class ActionTakenTaxonomy(BaseModel): - """Model for the action-taken taxonomy.""" - - namespace: str = "action-taken" - description: str = """Action taken in the case of a security incident (CSIRT perspective).""" - version: int = 2 - exclusive: bool = False - predicates: List[ActionTakenTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/admiralty_scale.py b/src/openmisp/models/taxonomies/admiralty_scale.py deleted file mode 100644 index 7a8e01d..0000000 --- a/src/openmisp/models/taxonomies/admiralty_scale.py +++ /dev/null @@ -1,49 +0,0 @@ -"""Taxonomy model for admiralty-scale.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class AdmiraltyScaleTaxonomyPredicate(str, Enum): - SOURCE_RELIABILITY = "source-reliability" - INFORMATION_CREDIBILITY = "information-credibility" - - -class AdmiraltyScaleTaxonomySourceReliabilityEntry(str, Enum): - A = "a" - B = "b" - C = "c" - D = "d" - E = "e" - F = "f" - G = "g" - - -class AdmiraltyScaleTaxonomyInformationCredibilityEntry(str, Enum): - T_1 = "1" - T_2 = "2" - T_3 = "3" - T_4 = "4" - T_5 = "5" - T_6 = "6" - - -class AdmiraltyScaleTaxonomy(BaseModel): - """Model for the admiralty-scale taxonomy.""" - - namespace: str = "admiralty-scale" - description: str = """The Admiralty Scale or Ranking (also called the NATO System) is used to rank the reliability of a source and the credibility of an information. Reference based on FM 2-22.3 (FM 34-52) HUMAN INTELLIGENCE COLLECTOR OPERATIONS and NATO documents.""" - version: int = 5 - exclusive: bool = False - predicates: List[AdmiraltyScaleTaxonomyPredicate] = [] - source_reliability_entries: List[AdmiraltyScaleTaxonomySourceReliabilityEntry] = [] - information_credibility_entries: List[AdmiraltyScaleTaxonomyInformationCredibilityEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/adversary.py b/src/openmisp/models/taxonomies/adversary.py deleted file mode 100644 index 7178ac1..0000000 --- a/src/openmisp/models/taxonomies/adversary.py +++ /dev/null @@ -1,65 +0,0 @@ -"""Taxonomy model for adversary.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class AdversaryTaxonomyPredicate(str, Enum): - INFRASTRUCTURE_STATUS = "infrastructure-status" - INFRASTRUCTURE_ACTION = "infrastructure-action" - INFRASTRUCTURE_STATE = "infrastructure-state" - INFRASTRUCTURE_TYPE = "infrastructure-type" - - -class AdversaryTaxonomyInfrastructureStatusEntry(str, Enum): - UNKNOWN = "unknown" - COMPROMISED = "compromised" - OWN_AND_OPERATED = "own-and-operated" - - -class AdversaryTaxonomyInfrastructureActionEntry(str, Enum): - PASSIVE_ONLY = "passive-only" - TAKE_DOWN = "take-down" - MONITORING_ACTIVE = "monitoring-active" - PENDING_LAW_ENFORCEMENT_REQUEST = "pending-law-enforcement-request" - SINKHOLED = "sinkholed" - - -class AdversaryTaxonomyInfrastructureStateEntry(str, Enum): - UNKNOWN = "unknown" - ACTIVE = "active" - DOWN = "down" - - -class AdversaryTaxonomyInfrastructureTypeEntry(str, Enum): - UNKNOWN = "unknown" - PROXY = "proxy" - DROP_ZONE = "drop-zone" - EXPLOIT_DISTRIBUTION_POINT = "exploit-distribution-point" - VPN = "vpn" - PANEL = "panel" - TDS = "tds" - C2 = "c2" - - -class AdversaryTaxonomy(BaseModel): - """Model for the adversary taxonomy.""" - - namespace: str = "adversary" - description: str = """An overview and description of the adversary infrastructure""" - version: int = 6 - exclusive: bool = False - predicates: List[AdversaryTaxonomyPredicate] = [] - infrastructure_status_entries: List[AdversaryTaxonomyInfrastructureStatusEntry] = [] - infrastructure_action_entries: List[AdversaryTaxonomyInfrastructureActionEntry] = [] - infrastructure_state_entries: List[AdversaryTaxonomyInfrastructureStateEntry] = [] - infrastructure_type_entries: List[AdversaryTaxonomyInfrastructureTypeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ais_marking.py b/src/openmisp/models/taxonomies/ais_marking.py deleted file mode 100644 index 5e0ffee..0000000 --- a/src/openmisp/models/taxonomies/ais_marking.py +++ /dev/null @@ -1,56 +0,0 @@ -"""Taxonomy model for ais-marking.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class AisMarkingTaxonomyPredicate(str, Enum): - TLPMARKING = "TLPMarking" - AISCONSENT = "AISConsent" - CISA_PROPRIETARY = "CISA_Proprietary" - AISMARKING = "AISMarking" - - -class AisMarkingTaxonomyTlpmarkingEntry(str, Enum): - WHITE = "WHITE" - GREEN = "GREEN" - AMBER = "AMBER" - - -class AisMarkingTaxonomyAisconsentEntry(str, Enum): - EVERYONE = "EVERYONE" - USG = "USG" - NONE = "NONE" - - -class AisMarkingTaxonomyCisaProprietaryEntry(str, Enum): - TRUE = "true" - FALSE = "false" - - -class AisMarkingTaxonomyAismarkingEntry(str, Enum): - IS_PROPRIETARY = "Is_Proprietary" - NOT_PROPRIETARY = "Not_Proprietary" - - -class AisMarkingTaxonomy(BaseModel): - """Model for the ais-marking taxonomy.""" - - namespace: str = "ais-marking" - description: str = """The AIS Marking Schema implementation is maintained by the National Cybersecurity and Communication Integration Center (NCCIC) of the U.S. Department of Homeland Security (DHS)""" - version: int = 2 - exclusive: bool = False - predicates: List[AisMarkingTaxonomyPredicate] = [] - tlpmarking_entries: List[AisMarkingTaxonomyTlpmarkingEntry] = [] - aisconsent_entries: List[AisMarkingTaxonomyAisconsentEntry] = [] - cisa_proprietary_entries: List[AisMarkingTaxonomyCisaProprietaryEntry] = [] - aismarking_entries: List[AisMarkingTaxonomyAismarkingEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/analyst_assessment.py b/src/openmisp/models/taxonomies/analyst_assessment.py deleted file mode 100644 index f12e9b1..0000000 --- a/src/openmisp/models/taxonomies/analyst_assessment.py +++ /dev/null @@ -1,94 +0,0 @@ -"""Taxonomy model for Analyst (Self) Assessment.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class AnalystAssessmentTaxonomyPredicate(str, Enum): - EXPERIENCE = "experience" - BINARY_REVERSING_ARCH = "binary-reversing-arch" - BINARY_REVERSING_EXPERIENCE = "binary-reversing-experience" - OS = "os" - WEB = "web" - WEB_EXPERIENCE = "web-experience" - CRYPTO_EXPERIENCE = "crypto-experience" - - -class AnalystAssessmentTaxonomyExperienceEntry(str, Enum): - LESS_THAN_1_YEAR = "less-than-1-year" - BETWEEN_1_AND_5_YEARS = "between-1-and-5-years" - BETWEEN_5_AND_10_YEARS = "between-5-and-10-years" - BETWEEN_10_AND_20_YEARS = "between-10-and-20-years" - MORE_THAN_20_YEARS = "more-than-20-years" - - -class AnalystAssessmentTaxonomyBinaryReversingArchEntry(str, Enum): - X86 = "x86" - ARM = "arm" - MIPS = "mips" - POWERPC = "powerpc" - - -class AnalystAssessmentTaxonomyBinaryReversingExperienceEntry(str, Enum): - LESS_THAN_1_YEAR = "less-than-1-year" - BETWEEN_1_AND_5_YEARS = "between-1-and-5-years" - BETWEEN_5_AND_10_YEARS = "between-5-and-10-years" - BETWEEN_10_AND_20_YEARS = "between-10-and-20-years" - MORE_THAN_20_YEARS = "more-than-20-years" - - -class AnalystAssessmentTaxonomyOsEntry(str, Enum): - WINDOWS = "windows" - LINUX = "linux" - IOS = "ios" - MACOS = "macos" - ANDROID = "android" - BSD = "bsd" - - -class AnalystAssessmentTaxonomyWebEntry(str, Enum): - IPEX = "ipex" - COMMON = "common" - JS_DESOBFUSCATION = "js-desobfuscation" - - -class AnalystAssessmentTaxonomyWebExperienceEntry(str, Enum): - LESS_THAN_1_YEAR = "less-than-1-year" - BETWEEN_1_AND_5_YEARS = "between-1-and-5-years" - BETWEEN_5_AND_10_YEARS = "between-5-and-10-years" - BETWEEN_10_AND_20_YEARS = "between-10-and-20-years" - MORE_THAN_20_YEARS = "more-than-20-years" - - -class AnalystAssessmentTaxonomyCryptoExperienceEntry(str, Enum): - LESS_THAN_1_YEAR = "less-than-1-year" - BETWEEN_1_AND_5_YEARS = "between-1-and-5-years" - BETWEEN_5_AND_10_YEARS = "between-5-and-10-years" - BETWEEN_10_AND_20_YEARS = "between-10-and-20-years" - MORE_THAN_20_YEARS = "more-than-20-years" - - -class AnalystAssessmentTaxonomy(BaseModel): - """Model for the Analyst (Self) Assessment taxonomy.""" - - namespace: str = "analyst-assessment" - description: str = """A series of assessment predicates describing the analyst capabilities to perform analysis. These assessment can be assigned by the analyst him/herself or by another party evaluating the analyst.""" - version: int = 4 - exclusive: bool = False - predicates: List[AnalystAssessmentTaxonomyPredicate] = [] - experience_entries: List[AnalystAssessmentTaxonomyExperienceEntry] = [] - binary_reversing_arch_entries: List[AnalystAssessmentTaxonomyBinaryReversingArchEntry] = [] - binary_reversing_experience_entries: List[AnalystAssessmentTaxonomyBinaryReversingExperienceEntry] = [] - os_entries: List[AnalystAssessmentTaxonomyOsEntry] = [] - web_entries: List[AnalystAssessmentTaxonomyWebEntry] = [] - web_experience_entries: List[AnalystAssessmentTaxonomyWebExperienceEntry] = [] - crypto_experience_entries: List[AnalystAssessmentTaxonomyCryptoExperienceEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/approved_category_of_action.py b/src/openmisp/models/taxonomies/approved_category_of_action.py deleted file mode 100644 index a017d39..0000000 --- a/src/openmisp/models/taxonomies/approved_category_of_action.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Taxonomy model for Approved category of action.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class ApprovedCategoryOfActionTaxonomyPredicate(str, Enum): - CAT1 = "cat1" - CAT2 = "cat2" - CAT3 = "cat3" - CAT4 = "cat4" - CAT5 = "cat5" - CAT6 = "cat6" - - -class ApprovedCategoryOfActionTaxonomy(BaseModel): - """Model for the Approved category of action taxonomy.""" - - namespace: str = "approved-category-of-action" - description: str = """A pre-approved category of action for indicators being shared with partners (MIMIC).""" - version: int = 1 - exclusive: bool = False - predicates: List[ApprovedCategoryOfActionTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/artificial_satellites.py b/src/openmisp/models/taxonomies/artificial_satellites.py deleted file mode 100644 index c5ae91a..0000000 --- a/src/openmisp/models/taxonomies/artificial_satellites.py +++ /dev/null @@ -1,2129 +0,0 @@ -"""Taxonomy model for Artificial satellites taxonomy.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class ArtificialSatellitesTaxonomyPredicate(str, Enum): - METEOROLOGICAL_AND_EARTH_OBSERVATION = "Meteorological and Earth observation" - INDIAN_SPACE_RESEARCH = "Indian Space Research" - GEO = "GEO" - TRACKING = "Tracking" - SEARCH___RESCUE = "Search & Rescue" - EARTH_RESSOURCES = "Earth Ressources" - DISASTER_MONITORING = "Disaster Monitoring" - GNSS = "GNSS" - SPACE___EARTH_SCIENCE = "Space & Earth Science" - GEODETIC = "Geodetic" - ENGINEERING = "Engineering" - EDUCATION = "Education" - - -class ArtificialSatellitesTaxonomyMeteorologicalAndEarthObservationEntry(str, Enum): - T_3_D_WINDS = "3D-Winds" - ACE = "ACE" - ACE__AER_CLO_ECO__ = "ACE (Aer.Clo.Eco.)" - ACRIMSAT = "ACRIMSat" - ADEOS = "ADEOS" - ADEOS_2 = "ADEOS-2" - ADITYA_1 = "Aditya-1" - AEOLUS = "Aeolus" - ALOS = "ALOS" - ALOS_2 = "ALOS-2" - ALOS_3 = "ALOS-3" - ALOS_4 = "ALOS-4" - AL_SAT_1 = "AlSat-1" - AL_SAT_1_B = "AlSat-1B" - AL_SAT_2 = "AlSat-2" - AL_SAT_2_B = "AlSat-2B" - ALTIUS = "ALTIUS" - AMAZ_NIA_1 = "Amazônia-1" - AMAZ_NIA_1_B = "Amazônia-1B" - AMAZ_NIA_2 = "Amazônia-2" - AQUA = "Aqua" - ARCTICA_M_N1 = "Arctica-M N1" - ARCTICA_M_N2 = "Arctica-M N2" - ARCTICA_M_N3 = "Arctica-M N3" - ARCTICA_M_N4 = "Arctica-M N4" - ARCTICA_M_N5 = "Arctica-M N5" - ARTEMIS_P1 = "ARTEMIS-P1" - ARTEMIS_P2 = "ARTEMIS-P2" - ASCENDS = "ASCENDS" - ASNARO_1 = "ASNARO-1" - ASNARO_2 = "ASNARO-2" - ATS_1 = "ATS-1" - ATS_3 = "ATS-3" - ATS_6 = "ATS-6" - AURA = "Aura" - AWS = "AWS" - BEIJING_1 = "Beijing-1" - BILSAT = "BILSat" - BIOMASS = "BIOMASS" - BIRD = "BIRD" - BLACK_SKY_1 = "BlackSky-1" - BLACK_SKY_10 = "BlackSky-10" - BLACK_SKY_11 = "BlackSky-11" - BLACK_SKY_12 = "BlackSky-12" - BLACK_SKY_13 = "BlackSky-13" - BLACK_SKY_14 = "BlackSky-14" - BLACK_SKY_15 = "BlackSky-15" - BLACK_SKY_16 = "BlackSky-16" - BLACK_SKY_17 = "BlackSky-17" - BLACK_SKY_2 = "BlackSky-2" - BLACK_SKY_3 = "BlackSky-3" - BLACK_SKY_4 = "BlackSky-4" - BLACK_SKY_5 = "BlackSky-5" - BLACK_SKY_6 = "BlackSky-6" - BLACK_SKY_7 = "BlackSky-7" - BLACK_SKY_8 = "BlackSky-8" - BLACK_SKY_9 = "BlackSky-9" - C_NOFS = "C/NOFS" - CALIPSO = "CALIPSO" - CAPELLA = "Capella" - CARBON_SAT = "CarbonSat" - CARTO_SAT_1__IRS_P5_ = "CartoSat-1 (IRS-P5)" - CARTO_SAT_2 = "CartoSat-2" - CARTO_SAT_2_A = "CartoSat-2A" - CARTO_SAT_2_B = "CartoSat-2B" - CARTO_SAT_2_C = "CartoSat-2C" - CARTO_SAT_2_D = "CartoSat-2D" - CARTO_SAT_2_E = "CartoSat-2E" - CARTO_SAT_2_F = "CartoSat-2F" - CARTO_SAT_3 = "CartoSat-3" - CAS_500_1 = "CAS 500-1" - CAS_500_2 = "CAS 500-2" - CASSIOPE = "CASSIOPE" - CBERS_1 = "CBERS-1" - CBERS_2 = "CBERS-2" - CBERS_2_B = "CBERS-2B" - CBERS_3 = "CBERS-3" - CBERS_4 = "CBERS-4" - CBERS_4_A = "CBERS-4A" - CFOSAT = "CFOSAT" - CFOSAT_FOLLOW_ON = "CFOSAT follow-on" - CHAMP = "CHAMP" - CHIME = "CHIME" - CICERO = "CICERO" - CIMR = "CIMR" - CLARREO_1_A = "CLARREO-1A" - CLARREO_1_B = "CLARREO-1B" - CLARREO_2_A = "CLARREO-2A" - CLARREO_2_B = "CLARREO-2B" - CLOUD_SAT = "CloudSat" - CLUSTER_A = "CLUSTER-A" - CLUSTER_B = "CLUSTER-B" - CLUSTER_C = "CLUSTER-C" - CLUSTER_D = "CLUSTER-D" - CO2_M = "CO2M" - COMPIRA = "COMPIRA" - COMS = "COMS" - CORIOLIS = "Coriolis" - CORONAS_F = "Coronas-F" - CORONAS_I = "Coronas-I" - CORONAS_PHOTON = "Coronas-Photon" - COSMIC_1 = "COSMIC-1" - COSMIC_2 = "COSMIC-2" - COSMIC_2B = "COSMIC-2b" - CRISTAL = "CRISTAL" - CRRES = "CRRES" - CRYO_SAT = "CryoSat" - CRYO_SAT_2 = "CryoSat-2" - CSG_1 = "CSG-1" - CSG_2 = "CSG-2" - CSIM = "CSIM" - CSK_1 = "CSK-1" - CSK_2 = "CSK-2" - CSK_3 = "CSK-3" - CSK_4 = "CSK-4" - CYGNSS__8_SATS_ = "CYGNSS (8 sats)" - DEIMOS_1 = "Deimos-1" - DEIMOS_2 = "Deimos-2" - DESDYN_I = "DESDynI" - DIAD_ME_1 = "Diadéme-1" - DIAD_ME_2 = "Diadéme-2" - DMSP_F01 = "DMSP-F01" - DMSP_F02 = "DMSP-F02" - DMSP_F03 = "DMSP-F03" - DMSP_F04 = "DMSP-F04" - DMSP_F05 = "DMSP-F05" - DMSP_F06 = "DMSP-F06" - DMSP_F07 = "DMSP-F07" - DMSP_F08 = "DMSP-F08" - DMSP_F09 = "DMSP-F09" - DMSP_F10 = "DMSP-F10" - DMSP_F11 = "DMSP-F11" - DMSP_F12 = "DMSP-F12" - DMSP_F13 = "DMSP-F13" - DMSP_F14 = "DMSP-F14" - DMSP_F15 = "DMSP-F15" - DMSP_F16 = "DMSP-F16" - DMSP_F17 = "DMSP-F17" - DMSP_F18 = "DMSP-F18" - DMSP_F19 = "DMSP-F19" - DSCOVR = "DSCOVR" - DUBAI_SAT_1 = "DubaiSat-1" - DUBAI_SAT_2 = "DubaiSat-2" - DUBAI_SAT_3 = "DubaiSat-3" - EARTH_CARE = "EarthCARE" - EGYPT_SAT_1 = "EgyptSat-1" - EGYPT_SAT_2 = "EgyptSat-2" - EGYPT_SAT_A = "EgyptSat-A" - ELECTRO_GOMS = "Electro-GOMS" - ELECTRO_L_N1 = "Electro-L N1" - ELECTRO_L_N2 = "Electro-L N2" - ELECTRO_L_N3 = "Electro-L N3" - ELECTRO_L_N4 = "Electro-L N4" - ELECTRO_L_N5 = "Electro-L N5" - ELECTRO_M_N1 = "Electro-M N1" - ELECTRO_M_N2 = "Electro-M N2" - ELECTRO_M_N3 = "Electro-M N3" - EN_MAP = "EnMAP" - ENVISAT = "Envisat" - EOS_03 = "EOS 03" - EOS_01 = "EOS-01" - EOS_04 = "EOS-04" - ERBS = "ERBS" - ERG = "ERG" - ERS_1 = "ERS-1" - ERS_2 = "ERS-2" - ESSA_1 = "ESSA-1" - ESSA_2 = "ESSA-2" - ESSA_3 = "ESSA-3" - ESSA_4 = "ESSA-4" - ESSA_5 = "ESSA-5" - ESSA_6 = "ESSA-6" - ESSA_7 = "ESSA-7" - ESSA_8 = "ESSA-8" - ESSA_9 = "ESSA-9" - EXPLORER_VII = "Explorer-VII" - FALCON_EYE_1 = "Falcon-Eye 1" - FALCON_EYE_2 = "Falcon-Eye 2" - FLEX = "FLEX" - FLOCK = "FLOCK" - FORMOSAT_1 = "FORMOSAT-1" - FORMOSAT_2 = "FORMOSAT-2" - FORMOSAT_5 = "FORMOSAT-5" - FORUM = "FORUM" - FY_1_A = "FY-1A" - FY_1_B = "FY-1B" - FY_1_C = "FY-1C" - FY_1_D = "FY-1D" - FY_2_A = "FY-2A" - FY_2_B = "FY-2B" - FY_2_C = "FY-2C" - FY_2_D = "FY-2D" - FY_2_E = "FY-2E" - FY_2_F = "FY-2F" - FY_2_G = "FY-2G" - FY_2_H = "FY-2H" - FY_3_A = "FY-3A" - FY_3_B = "FY-3B" - FY_3_C = "FY-3C" - FY_3_D = "FY-3D" - FY_3_E = "FY-3E" - FY_3_F = "FY-3F" - FY_3_G = "FY-3G" - FY_3_H = "FY-3H" - FY_3_I = "FY-3I" - FY_3_J = "FY-3J" - FY_4_MW = "FY-4 MW" - FY_4_A = "FY-4A" - FY_4_B = "FY-4B" - FY_4_C = "FY-4C" - FY_4_D = "FY-4D" - FY_4_E = "FY-4E" - FY_4_F = "FY-4F" - FY_4_G = "FY-4G" - GACM = "GACM" - GALILEO = "Galileo" - GCOM_C = "GCOM-C" - GCOM_W = "GCOM-W" - GEO_CAPE = "GEO-CAPE" - GEO_KOMPSAT_2_A = "GEO-KOMPSAT-2A" - GEO_KOMPSAT_2_B = "GEO-KOMPSAT-2B" - GEO_CARB = "GeoCarb" - GEO_EYE_1 = "GeoEye-1" - GEOSAT = "GEOSat" - GEOTAIL = "GEOTAIL" - GF_1 = "GF-1" - GF_1_02 = "GF-1-02" - GF_1_03 = "GF-1-03" - GF_1_04 = "GF-1-04" - GF_10 = "GF-10" - GF_11 = "GF-11" - GF_11_02 = "GF-11-02" - GF_11_03 = "GF-11-03" - GF_12 = "GF-12" - GF_12_02 = "GF-12-02" - GF_13 = "GF-13" - GF_14 = "GF-14" - GF_2 = "GF-2" - GF_3 = "GF-3" - GF_3_02 = "GF-3-02" - GF_4 = "GF-4" - GF_5 = "GF-5" - GF_5_02 = "GF-5-02" - GF_6 = "GF-6" - GF_7 = "GF-7" - GF_8 = "GF-8" - GF_9 = "GF-9" - GF_9_02 = "GF-9-02" - GF_9_03 = "GF-9-03" - GF_9_04 = "GF-9-04" - GF_9_05 = "GF-9-05" - GFO = "GFO" - GFZ_1 = "GFZ-1" - GISAT_2 = "GISAT-2" - GLORY = "Glory" - GNOMES = "GNOMES" - GOCE = "GOCE" - GOES_1 = "GOES-1" - GOES_10 = "GOES-10" - GOES_10__S_AMERICA_ = "GOES-10 (S-America)" - GOES_11 = "GOES-11" - GOES_12 = "GOES-12" - GOES_12__S_AMERICA_ = "GOES-12 (S-America)" - GOES_13 = "GOES-13" - GOES_14 = "GOES-14" - GOES_15 = "GOES-15" - GOES_16 = "GOES-16" - GOES_17 = "GOES-17" - GOES_2 = "GOES-2" - GOES_3 = "GOES-3" - GOES_4 = "GOES-4" - GOES_5 = "GOES-5" - GOES_6 = "GOES-6" - GOES_7 = "GOES-7" - GOES_8 = "GOES-8" - GOES_9 = "GOES-9" - GOES_9__GMS_BACKUP_ = "GOES-9 (GMS backup)" - GOES_T = "GOES-T" - GOES_U = "GOES-U" - G_KT_RK_1_A = "Göktürk-1A" - G_KT_RK_2 = "Göktürk-2" - GOSAT = "GOSAT" - GOSAT_2 = "GOSAT-2" - GOSAT_GW = "GOSAT-GW" - GPM_CORE_OBSERVATORY = "GPM Core Observatory" - GRACE__2_SATS_ = "GRACE (2 sats)" - GRACE_FO__2_SATS_ = "GRACE-FO (2 sats)" - HCMM = "HCMM" - HIMAWARI_1__GMS_1_ = "Himawari-1 (GMS-1)" - HIMAWARI_2__GMS_2_ = "Himawari-2 (GMS-2)" - HIMAWARI_3__GMS_3_ = "Himawari-3 (GMS-3)" - HIMAWARI_4__GMS_4_ = "Himawari-4 (GMS-4)" - HIMAWARI_5__GMS_5_ = "Himawari-5 (GMS-5)" - HIMAWARI_6__MTSAT_1_R_ = "Himawari-6 (MTSAT-1R)" - HIMAWARI_7__MTSAT_2_ = "Himawari-7 (MTSAT-2)" - HIMAWARI_8 = "Himawari-8" - HIMAWARI_9 = "Himawari-9" - HJ_1_A = "HJ-1A" - HJ_1_B = "HJ-1B" - HJ_1_C = "HJ-1C" - HJ_2_A = "HJ-2A" - HJ_2_B = "HJ-2B" - HRSAT_1_A = "HRSAT-1A" - HRSAT_1_B = "HRSAT-1B" - HRSAT_1_C = "HRSAT-1C" - HRWS_SAR = "HRWS-SAR" - HY_1_A = "HY-1A" - HY_1_B = "HY-1B" - HY_1_C = "HY-1C" - HY_1_D = "HY-1D" - HY_1_E = "HY-1E" - HY_1_F = "HY-1F" - HY_2_A = "HY-2A" - HY_2_B = "HY-2B" - HY_2_C = "HY-2C" - HY_2_D = "HY-2D" - HY_2_E = "HY-2E" - HY_2_F = "HY-2F" - HY_2_G = "HY-2G" - HY_2_H = "HY-2H" - HY_3_A = "HY-3A" - HY_3_B = "HY-3B" - HY_3_C = "HY-3C" - HY_3_D = "HY-3D" - HY_SIS = "HySIS" - HYSP_IRI = "HyspIRI" - IBEX = "IBEX" - ICESAT = "ICESat" - ICESAT_2 = "ICESat-2" - ICEYE = "ICEYE" - ICON = "ICON" - IKONOS = "Ikonos" - IMAGE = "IMAGE" - IMS_1 = "IMS-1" - INSAT_1_A = "INSAT-1A" - INSAT_1_B = "INSAT-1B" - INSAT_1_C = "INSAT-1C" - INSAT_1_D = "INSAT-1D" - INSAT_2_A = "INSAT-2A" - INSAT_2_B = "INSAT-2B" - INSAT_2_C = "INSAT-2C" - INSAT_2_D = "INSAT-2D" - INSAT_2_E = "INSAT-2E" - INSAT_3_A = "INSAT-3A" - INSAT_3_B = "INSAT-3B" - INSAT_3_C = "INSAT-3C" - INSAT_3_D = "INSAT-3D" - INSAT_3_DR = "INSAT-3DR" - INSAT_3_DS = "INSAT-3DS" - IONOSPHERA_M_N1___N2 = "Ionosphera-M N1 & N2" - IONOSPHERA_M_N3___N4 = "Ionosphera-M N3 & N4" - IRIS = "IRIS" - IRS_1_A = "IRS-1A" - IRS_1_B = "IRS-1B" - IRS_1_C = "IRS-1C" - IRS_1_D = "IRS-1D" - IRS_1_E__IRS_P1_ = "IRS-1E (IRS-P1)" - IRS_P2 = "IRS-P2" - IRS_P3 = "IRS-P3" - ISS_ASIM = "ISS ASIM" - ISS_CATS = "ISS CATS" - ISS_CLARREO_PF = "ISS CLARREO-PF" - ISS_COWVR = "ISS COWVR" - ISS_DESIS = "ISS DESIS" - ISS_ECOSTRESS = "ISS ECOSTRESS" - ISS_EMIT = "ISS EMIT" - ISS_GARI = "ISS GARI" - ISS_GEDI = "ISS GEDI" - ISS_HICO = "ISS HICO" - ISS_HISUI = "ISS HISUI" - ISS_LIS = "ISS LIS" - ISS_MOLI = "ISS MOLI" - ISS_OCO_3 = "ISS OCO-3" - ISS_RAIN_CUBE = "ISS RainCube" - ISS_RAPID_SCAT = "ISS RapidScat" - ISS_SAGE_III = "ISS SAGE-III" - ISS_TEMPEST_1 = "ISS TEMPEST-1" - ISS_TEMPEST_D = "ISS TEMPEST-D" - ISS_TSIS_1 = "ISS TSIS-1" - ISS_TSIS_2 = "ISS TSIS-2" - ITOS_1__TIROS_M_ = "ITOS-1 (TIROS-M)" - JASON_1 = "JASON-1" - JASON_2 = "JASON-2" - JASON_3 = "JASON-3" - JERS = "JERS" - JILIN_1 = "Jilin-1" - JPSS_2 = "JPSS-2" - JPSS_3 = "JPSS-3" - JPSS_4 = "JPSS-4" - KALPANA_1 = "Kalpana-1" - KANOPUS_V_IK_1 = "KANOPUS-V-IK-1" - KANOPUS_V1 = "KANOPUS-V1" - KANOPUS_V3 = "KANOPUS-V3" - KANOPUS_V4 = "KANOPUS-V4" - KANOPUS_V5 = "KANOPUS-V5" - KANOPUS_V6 = "KANOPUS-V6" - KAZ_EOSAT_1 = "KazEOSat-1" - KAZ_EOSAT_2 = "KazEOSat-2" - KOMPSAT_1 = "KOMPSAT-1" - KOMPSAT_2 = "KOMPSAT-2" - KOMPSAT_3 = "KOMPSAT-3" - KOMPSAT_3_A = "KOMPSAT-3A" - KOMPSAT_5 = "KOMPSAT-5" - KOMPSAT_6 = "KOMPSAT-6" - KOMPSAT_7 = "KOMPSAT-7" - KONDOR_E = "Kondor-E" - KONDOR_E1 = "Kondor-E1" - LAGEOS_1 = "LAGEOS-1" - LAGEOS_2 = "LAGEOS-2" - LANDSAT_1__ERTS_ = "Landsat-1 (ERTS)" - LANDSAT_2 = "Landsat-2" - LANDSAT_3 = "Landsat-3" - LANDSAT_4 = "Landsat-4" - LANDSAT_5 = "Landsat-5" - LANDSAT_6 = "Landsat-6" - LANDSAT_7 = "Landsat-7" - LANDSAT_8 = "Landsat-8" - LANDSAT_9 = "Landsat-9" - LARES_1 = "LARES-1" - LARES_2 = "LARES-2" - LEMUR_2 = "Lemur-2" - LIST = "LIST" - LSTM = "LSTM" - MAIA = "MAIA" - MATS = "MATS" - MEGHA_TROPIQUES = "Megha-Tropiques" - MERLIN = "MERLIN" - METEOR_1_1 = "Meteor-1-1" - METEOR_1_10 = "Meteor-1-10" - METEOR_1_11 = "Meteor-1-11" - METEOR_1_12 = "Meteor-1-12" - METEOR_1_13 = "Meteor-1-13" - METEOR_1_14 = "Meteor-1-14" - METEOR_1_15 = "Meteor-1-15" - METEOR_1_16 = "Meteor-1-16" - METEOR_1_17 = "Meteor-1-17" - METEOR_1_19 = "Meteor-1-19" - METEOR_1_2 = "Meteor-1-2" - METEOR_1_20 = "Meteor-1-20" - METEOR_1_21 = "Meteor-1-21" - METEOR_1_22 = "Meteor-1-22" - METEOR_1_23 = "Meteor-1-23" - METEOR_1_24 = "Meteor-1-24" - METEOR_1_26 = "Meteor-1-26" - METEOR_1_27 = "Meteor-1-27" - METEOR_1_3 = "Meteor-1-3" - METEOR_1_4 = "Meteor-1-4" - METEOR_1_5 = "Meteor-1-5" - METEOR_1_6 = "Meteor-1-6" - METEOR_1_7 = "Meteor-1-7" - METEOR_1_8 = "Meteor-1-8" - METEOR_1_9 = "Meteor-1-9" - METEOR_2_1 = "Meteor-2-1" - METEOR_2_10 = "Meteor-2-10" - METEOR_2_11 = "Meteor-2-11" - METEOR_2_12 = "Meteor-2-12" - METEOR_2_13 = "Meteor-2-13" - METEOR_2_14 = "Meteor-2-14" - METEOR_2_15 = "Meteor-2-15" - METEOR_2_16 = "Meteor-2-16" - METEOR_2_17 = "Meteor-2-17" - METEOR_2_18 = "Meteor-2-18" - METEOR_2_19 = "Meteor-2-19" - METEOR_2_2 = "Meteor-2-2" - METEOR_2_20 = "Meteor-2-20" - METEOR_2_21 = "Meteor-2-21" - METEOR_2_3 = "Meteor-2-3" - METEOR_2_4 = "Meteor-2-4" - METEOR_2_5 = "Meteor-2-5" - METEOR_2_6 = "Meteor-2-6" - METEOR_2_7 = "Meteor-2-7" - METEOR_2_8 = "Meteor-2-8" - METEOR_2_9 = "Meteor-2-9" - METEOR_3_1 = "Meteor-3-1" - METEOR_3_2 = "Meteor-3-2" - METEOR_3_3 = "Meteor-3-3" - METEOR_3_4 = "Meteor-3-4" - METEOR_3_5 = "Meteor-3-5" - METEOR_3_6 = "Meteor-3-6" - METEOR_3_M = "Meteor-3M" - METEOR_M_N1 = "Meteor-M N1" - METEOR_M_N2 = "Meteor-M N2" - METEOR_M_N2_1 = "Meteor-M N2-1" - METEOR_M_N2_2 = "Meteor-M N2-2" - METEOR_M_N2_3 = "Meteor-M N2-3" - METEOR_M_N2_4 = "Meteor-M N2-4" - METEOR_M_N2_5 = "Meteor-M N2-5" - METEOR_M_N2_6 = "Meteor-M N2-6" - METEOR_MP_N1 = "Meteor-MP N1" - METEOR_MP_N2 = "Meteor-MP N2" - METEOR_P1 = "Meteor-P1" - METEOR_P2 = "Meteor-P2" - METEOR_P3 = "Meteor-P3" - METEOR_P4 = "Meteor-P4" - METEOR_P5 = "Meteor-P5" - METEOR_P6 = "Meteor-P6" - METEOSAT_1 = "Meteosat-1" - METEOSAT_10 = "Meteosat-10" - METEOSAT_11 = "Meteosat-11" - METEOSAT_2 = "Meteosat-2" - METEOSAT_3 = "Meteosat-3" - METEOSAT_3__ADC_ = "Meteosat-3 (ADC)" - METEOSAT_3__X_ADC_ = "Meteosat-3 (X-ADC)" - METEOSAT_4 = "Meteosat-4" - METEOSAT_5 = "Meteosat-5" - METEOSAT_5__IODC_ = "Meteosat-5 (IODC)" - METEOSAT_6 = "Meteosat-6" - METEOSAT_6__IODC_ = "Meteosat-6 (IODC)" - METEOSAT_7 = "Meteosat-7" - METEOSAT_7__IODC_ = "Meteosat-7 (IODC)" - METEOSAT_8 = "Meteosat-8" - METEOSAT_8__IODC_ = "Meteosat-8 (IODC)" - METEOSAT_9 = "Meteosat-9" - METEOSAT_9__IODC_ = "Meteosat-9 (IODC)" - METOP_A = "Metop-A" - METOP_B = "Metop-B" - METOP_C = "Metop-C" - METOP_SG_A1 = "Metop-SG-A1" - METOP_SG_A2 = "Metop-SG-A2" - METOP_SG_A3 = "Metop-SG-A3" - METOP_SG_B1 = "Metop-SG-B1" - METOP_SG_B2 = "Metop-SG-B2" - METOP_SG_B3 = "Metop-SG-B3" - MICRO_CARB = "MicroCarb" - MISTI_C_WINDS = "MISTiC Winds" - MMS_A = "MMS-A" - MMS_B = "MMS-B" - MMS_C = "MMS-C" - MMS_D = "MMS-D" - MOHAMMED_VI_A = "Mohammed VI-A" - MOHAMMED_VI_B = "Mohammed VI-B" - MONITOR_E = "Monitor-E" - MOS_1 = "MOS-1" - MOS_1_B = "MOS-1B" - MTG_I1 = "MTG-I1" - MTG_I2 = "MTG-I2" - MTG_I3 = "MTG-I3" - MTG_I4 = "MTG-I4" - MTG_S1 = "MTG-S1" - MTG_S2 = "MTG-S2" - NEMO_AM = "NEMO-AM" - NI_SAR = "NI-SAR" - NIGERIA_SAT_1 = "NigeriaSat-1" - NIGERIA_SAT_2 = "NigeriaSat-2" - NIGERIA_SAT_X = "NigeriaSat-X" - NIMBUS_1 = "Nimbus-1" - NIMBUS_2 = "Nimbus-2" - NIMBUS_3 = "Nimbus-3" - NIMBUS_4 = "Nimbus-4" - NIMBUS_5 = "Nimbus-5" - NIMBUS_6 = "Nimbus-6" - NIMBUS_7 = "Nimbus-7" - NMP_EO_1 = "NMP-EO-1" - NOAA_1 = "NOAA-1" - NOAA_10 = "NOAA-10" - NOAA_11 = "NOAA-11" - NOAA_12 = "NOAA-12" - NOAA_13 = "NOAA-13" - NOAA_14 = "NOAA-14" - NOAA_15 = "NOAA-15" - NOAA_16 = "NOAA-16" - NOAA_17 = "NOAA-17" - NOAA_18 = "NOAA-18" - NOAA_19 = "NOAA-19" - NOAA_2 = "NOAA-2" - NOAA_20 = "NOAA-20" - NOAA_3 = "NOAA-3" - NOAA_4 = "NOAA-4" - NOAA_5 = "NOAA-5" - NOAA_6 = "NOAA-6" - NOAA_7 = "NOAA-7" - NOAA_8 = "NOAA-8" - NOAA_9 = "NOAA-9" - NOVA_SAR_S = "NovaSAR-S" - OBZOR_O_N1 = "Obzor-O N1" - OBZOR_O_N2 = "Obzor-O N2" - OBZOR_O_N3 = "Obzor-O N3" - OBZOR_O_N4 = "Obzor-O N4" - OBZOR_R_N1 = "Obzor-R N1" - OBZOR_R_N2 = "Obzor-R N2" - OBZOR_R_N3 = "Obzor-R N3" - OBZOR_R_N4 = "Obzor-R N4" - OCEAN_SAT_1__IRS_P4_ = "OceanSat-1 (IRS-P4)" - OCEAN_SAT_2 = "OceanSat-2" - OCEAN_SAT_3 = "OceanSat-3" - OCEAN_SAT_3_A = "OceanSat-3A" - OCO = "OCO" - OCO_2 = "OCO-2" - ODIN = "Odin" - OKEAN_O_1 = "Okean-O-1" - OKEAN_O1_1 = "Okean-O1-1" - OKEAN_O1_2 = "Okean-O1-2" - OKEAN_O1_3 = "Okean-O1-3" - OKEAN_O1_4 = "Okean-O1-4" - OKEAN_O1_5 = "Okean-O1-5" - OKEAN_O1_6 = "Okean-O1-6" - OKEAN_O1_7 = "Okean-O1-7" - ORB_VIEW_1_MICRO_LAB = "OrbView-1/MicroLab" - ORB_VIEW_2_SEA_STAR = "OrbView-2/SeaStar" - ORB_VIEW_3 = "OrbView-3" - ORB_VIEW_4 = "OrbView-4" - T__RSTED = "Ørsted" - PACE = "PACE" - PARASOL = "PARASOL" - PARKER_SOLAR_PROBE = "Parker Solar Probe" - PATH = "PATH" - PCW_1 = "PCW-1" - PCW_2 = "PCW-2" - PERU_SAT_1 = "PeruSat-1" - PICARD = "Picard" - PL_IADES_1_A = "Pléiades-1A" - PL_IADES_1_B = "Pléiades-1B" - PL_IADES_NEO_3 = "Pléiades-Neo 3" - PL_IADES_NEO_4 = "Pléiades-Neo 4" - PL_IADES_NEO_C = "Pléiades-Neo C" - PL_IADES_NEO_D = "Pléiades-Neo D" - POLAR = "Polar" - PREFIRE = "PREFIRE" - PRISMA = "PRISMA" - PROBA_1 = "PROBA-1" - PROBA_2 = "PROBA-2" - PROBA_V = "PROBA-V" - PUNCH = "PUNCH" - QUICK_BIRD = "QuickBird" - QUIK_SCAT = "QuikSCAT" - RADAR_SAT_1 = "RadarSat-1" - RADAR_SAT_2 = "RadarSat-2" - RAPID_EYE__5_SATS_ = "RapidEye (5 sats)" - RASAT = "RASAT" - RCM_1 = "RCM-1" - RCM_2 = "RCM-2" - RCM_3 = "RCM-3" - RESOURCE_SAT_1__IRS_P6_ = "ResourceSat-1 (IRS-P6)" - RESOURCE_SAT_2 = "ResourceSat-2" - RESOURCE_SAT_2_A = "ResourceSat-2A" - RESOURCE_SAT_3 = "ResourceSat-3" - RESOURCE_SAT_3_A = "ResourceSat-3A" - RESOURCE_SAT_3_S = "ResourceSat-3S" - RESOURCE_SAT_3_SA = "ResourceSat-3SA" - RESURS_DK = "Resurs-DK" - RESURS_O1_1 = "Resurs-O1-1" - RESURS_O1_2 = "Resurs-O1-2" - RESURS_O1_3 = "Resurs-O1-3" - RESURS_O1_4 = "Resurs-O1-4" - RESURS_P1 = "Resurs-P1" - RESURS_P2 = "Resurs-P2" - RESURS_P3 = "Resurs-P3" - RESURS_P4 = "Resurs-P4" - RESURS_P5 = "Resurs-P5" - RHESSI = "RHESSI" - RISAT_1 = "RISAT-1" - RISAT_2 = "RISAT-2" - RISAT_2_B = "RISAT-2B" - RISAT_2_BR1 = "RISAT-2BR1" - ROSE_L = "ROSE-L" - SAC_A = "SAC-A" - SAC_B = "SAC-B" - SAC_C = "SAC-C" - SAC_D = "SAC-D" - SAC_E_SABIA_MAR_A = "SAC-E/SABIA-MAR A" - SAC_E_SABIA_MAR_B = "SAC-E/SABIA-MAR B" - SAMPEX = "SAMPEX" - SAOCOM_1_A = "SAOCOM-1A" - SAOCOM_1_B = "SAOCOM-1B" - SAOCOM_2_A = "SAOCOM-2A" - SAOCOM_2_B = "SAOCOM-2B" - SARAL = "SARAL" - SCAT_SAT_1 = "ScatSat-1" - SCD_1 = "SCD-1" - SCD_2 = "SCD-2" - SCISAT_1 = "SCISAT-1" - SCLP = "SCLP" - SDO = "SDO" - SEA_SAT = "SeaSat" - SENTINEL_1_A = "Sentinel-1A" - SENTINEL_1_B = "Sentinel-1B" - SENTINEL_1_C = "Sentinel-1C" - SENTINEL_1_D = "Sentinel-1D" - SENTINEL_2_A = "Sentinel-2A" - SENTINEL_2_B = "Sentinel-2B" - SENTINEL_2_C = "Sentinel-2C" - SENTINEL_2_D = "Sentinel-2D" - SENTINEL_3_A = "Sentinel-3A" - SENTINEL_3_B = "Sentinel-3B" - SENTINEL_3_C = "Sentinel-3C" - SENTINEL_3_D = "Sentinel-3D" - SENTINEL_5_P = "Sentinel-5P" - SENTINEL_6_A = "Sentinel-6A" - SENTINEL_6_B = "Sentinel-6B" - SEOSAR_PAZ = "SEOSAR/Paz" - SEOSAT_INGENIO = "SEOSat/Ingenio" - SES_14 = "SES-14" - SICH_1 = "SICH-1" - SICH_1_M = "SICH-1M" - SICH_2 = "SICH-2" - SICH_2_30 = "SICH-2-30" - SJ_9_A = "SJ-9A" - SJ_9_B = "SJ-9B" - SKY_SAT_1 = "SkySat-1" - SKY_SAT_10 = "SkySat-10" - SKY_SAT_11 = "SkySat-11" - SKY_SAT_12 = "SkySat-12" - SKY_SAT_13 = "SkySat-13" - SKY_SAT_14 = "SkySat-14" - SKY_SAT_15 = "SkySat-15" - SKY_SAT_16 = "SkySat-16" - SKY_SAT_17 = "SkySat-17" - SKY_SAT_18 = "SkySat-18" - SKY_SAT_19 = "SkySat-19" - SKY_SAT_2 = "SkySat-2" - SKY_SAT_20 = "SkySat-20" - SKY_SAT_21 = "SkySat-21" - SKY_SAT_4 = "SkySat-4" - SKY_SAT_5 = "SkySat-5" - SKY_SAT_6 = "SkySat-6" - SKY_SAT_7 = "SkySat-7" - SKY_SAT_8 = "SkySat-8" - SKY_SAT_9 = "SkySat-9" - SKY_SAT_C1 = "SkySat-C1" - SMAP = "SMAP" - SMM = "SMM" - SMOS = "SMOS" - SMS_1 = "SMS-1" - SMS_2 = "SMS-2" - SNPP = "SNPP" - SOHO = "SOHO" - SOLAR_ORBITER = "Solar Orbiter" - SOLAR_A__YOHKOH_ = "Solar-A (Yohkoh)" - SOLAR_B__HINODE_ = "Solar-B (Hinode)" - SORCE = "SORCE" - SPOT_1 = "SPOT-1" - SPOT_2 = "SPOT-2" - SPOT_3 = "SPOT-3" - SPOT_4 = "SPOT-4" - SPOT_5 = "SPOT-5" - SPOT_6 = "SPOT-6" - SPOT_7 = "SPOT-7" - SSOT = "SSOT" - SSTL_S1_1 = "SSTL-S1 1" - SSTL_S1_2 = "SSTL-S1 2" - SSTL_S1_3 = "SSTL-S1 3" - SSTL_S1_4 = "SSTL-S1 4" - STARLETTE = "STARLETTE" - STELLA = "STELLA" - STEREO_A = "STEREO-A" - STEREO_B = "STEREO-B" - STPSAT_1 = "STPSat-1" - STPSAT_2 = "STPSat-2" - STPSAT_3 = "STPSat-3" - STSAT_1 = "STSat-1" - STSAT_2 = "STSat-2" - STSAT_2_C = "STSat-2C" - STSAT_3 = "STSat-3" - SUMBANDILA_SAT = "SumbandilaSat" - SUPER_VIEW_1 = "SuperView-1" - SUPER_VIEW_2 = "SuperView-2" - SUPER_VIEW_3 = "SuperView-3" - SUPER_VIEW_4 = "SuperView-4" - SWARM_A = "SWARM-A" - SWARM_B = "SWARM-B" - SWARM_C = "SWARM-C" - SWFO_L1 = "SWFO-L1" - SWOT = "SWOT" - TAC_SAT_2 = "TacSat-2" - TANDEM_L = "Tandem-L" - TAN_DEM_X = "TanDEM-X" - TANSAT = "TANSAT" - TEMPO = "TEMPO" - TERRA = "Terra" - TERRA_SAR_X = "TerraSAR-X" - TH_1_A = "TH-1A" - TH_1_B = "TH-1B" - TH_1_C = "TH-1C" - THEMIS_A = "THEMIS-A" - THEMIS_D = "THEMIS-D" - THEMIS_E = "THEMIS-E" - THEOS_1 = "THEOS-1" - THEOS_2_MAIN = "THEOS-2 Main" - THEOS_2_SMALL = "THEOS-2 Small" - TIMED = "TIMED" - TIROS_1 = "TIROS-1" - TIROS_10 = "TIROS-10" - TIROS_2 = "TIROS-2" - TIROS_3 = "TIROS-3" - TIROS_4 = "TIROS-4" - TIROS_5 = "TIROS-5" - TIROS_6 = "TIROS-6" - TIROS_7 = "TIROS-7" - TIROS_8 = "TIROS-8" - TIROS_9 = "TIROS-9" - TIROS_N = "TIROS-N" - TOMS_EARTH_PROBE = "TOMS Earth Probe" - TOPEX_POSEIDON = "TOPEX-Poseidon" - TOP_SAT = "TopSat" - TRACE = "TRACE" - TRISHNA = "TRISHNA" - TRMM = "TRMM" - TROPICS_01 = "TROPICS-01" - TROPICS_02 = "TROPICS-02" - TROPICS_03 = "TROPICS-03" - TROPICS_04 = "TROPICS-04" - TROPICS_05 = "TROPICS-05" - TROPICS_06 = "TROPICS-06" - TROPICS_07 = "TROPICS-07" - TRUTHS = "TRUTHS" - TWINS__2_SATS_ = "TWINS (2 sats)" - UARS = "UARS" - UK_DMC_1 = "UK-DMC-1" - UK_DMC_2 = "UK-DMC-2" - VAP__2_SAT_ = "VAP (2 sat)" - VEN_S = "VENµS" - VNREDSAT_1 = "VNREDSat-1" - VRSS_1 = "VRSS-1" - VRSS_2 = "VRSS-2" - WIND = "WIND" - WORLD_VIEW_1 = "WorldView-1" - WORLD_VIEW_2 = "WorldView-2" - WORLD_VIEW_3 = "WorldView-3" - WORLD_VIEW_4 = "WorldView-4" - X_SAT = "X-Sat" - XMM_NEWTON = "XMM-Newton" - XOVWM = "XOVWM" - ZOND_M = "Zond-M" - ZY_1_2_C = "ZY-1-2C" - ZY_1_2_D = "ZY-1-2D" - ZY_3_01 = "ZY-3-01" - ZY_3_02 = "ZY-3-02" - ZY_3_03 = "ZY-3-03" - - -class ArtificialSatellitesTaxonomyIndianSpaceResearchEntry(str, Enum): - INS_2_TD = "INS-2TD" - EOS_04 = "EOS-04" - EOS_03 = "EOS-03" - CMS_01 = "CMS-01" - EOS_01 = "EOS-01" - GSAT_30 = "GSAT-30" - RISAT_2_BR1 = "RISAT-2BR1" - CARTOSAT_3 = "Cartosat-3" - CHANDRAYAAN2 = "Chandrayaan2" - RISAT_2_B = "RISAT-2B" - EMISAT = "EMISAT" - GSAT_31 = "GSAT-31" - MICROSAT_R = "Microsat-R" - GSAT_7_A = "GSAT-7A" - GSAT_11_MISSION = "GSAT-11 Mission" - HYS_IS = "HysIS" - GSAT_29 = "GSAT-29" - IRNSS_1_I = "IRNSS-1I" - GSAT_6_A = "GSAT-6A" - MICROSAT = "Microsat" - CARTOSAT_2_SERIES_SATELLITE__2_ = "Cartosat-2 Series Satellite (2)" - INS_1_C = "INS-1C" - IRNSS_1_H = "IRNSS-1H" - GSAT_17 = "GSAT-17" - CARTOSAT_2_SERIES_SATELLITE = "Cartosat-2 Series Satellite" - GSAT_19 = "GSAT-19" - GSAT_9 = "GSAT-9" - INS_1_B = "INS-1B" - CARTOSAT__2_SERIES_SATELLITE = "Cartosat -2 Series Satellite" - INS_1_A = "INS-1A" - RESOURCESAT_2_A = "RESOURCESAT-2A" - GSAT_18 = "GSAT-18" - SCATSAT_1 = "SCATSAT-1" - INSAT_3_DR = "INSAT-3DR" - CARTOSAT_2_SERIES_SATELLITE = "CARTOSAT-2 Series Satellite" - IRNSS_1_G = "IRNSS-1G" - IRNSS_1_F = "IRNSS-1F" - IRNSS_1_E = "IRNSS-1E" - GSAT_15 = "GSAT-15" - ASTROSAT = "Astrosat" - GSAT_6 = "GSAT-6" - IRNSS_1_D = "IRNSS-1D" - CREW_MODULE_ATMOSPHERIC_RE_ENTRY_EXPERIMENT__CARE_ = "Crew module Atmospheric Re-entry Experiment (CARE)" - GSAT_16 = "GSAT-16" - IRNSS_1_C = "IRNSS-1C" - IRNSS_1_B = "IRNSS-1B" - GSAT_14 = "GSAT-14" - MARS_ORBITER_MISSION_SPACECRAFT = "Mars Orbiter Mission Spacecraft" - GSAT_7 = "GSAT-7" - INSAT_3_D = "INSAT-3D" - IRNSS_1_A = "IRNSS-1A" - SARAL = "SARAL" - GSAT_10 = "GSAT-10" - RISAT_1 = "RISAT-1" - MEGHA_TROPIQUES = "Megha-Tropiques" - GSAT_12 = "GSAT-12" - GSAT_8 = "GSAT-8" - RESOURCESAT_2 = "RESOURCESAT-2" - YOUTHSAT = "YOUTHSAT" - GSAT_5_P = "GSAT-5P" - CARTOSAT_2_B = "CARTOSAT-2B" - GSAT_4 = "GSAT-4" - OCEANSAT_2 = "Oceansat-2" - RISAT_2 = "RISAT-2" - CHANDRAYAAN_1 = "Chandrayaan-1" - CARTOSAT___2_A = "CARTOSAT – 2A" - IMS_1 = "IMS-1" - INSAT_4_CR = "INSAT-4CR" - INSAT_4_B = "INSAT-4B" - CARTOSAT_2 = "CARTOSAT-2" - SRE_1 = "SRE-1" - INSAT_4_C = "INSAT-4C" - INSAT_4_A = "INSAT-4A" - HAMSAT = "HAMSAT" - CARTOSAT_1 = "CARTOSAT-1" - EDUSAT = "EDUSAT" - IRS_P6___RESOURCESAT_1 = "IRS-P6 / RESOURCESAT-1" - INSAT_3_E = "INSAT-3E" - GSAT_2 = "GSAT-2" - INSAT_3_A = "INSAT-3A" - KALPANA_1 = "KALPANA-1" - INSAT_3_C = "INSAT-3C" - THE_TECHNOLOGY_EXPERIMENT_SATELLITE__TES_ = "The Technology Experiment Satellite (TES)" - GSAT_1 = "GSAT-1" - INSAT_3_B = "INSAT-3B" - OCEANSAT_IRS_P4_ = "Oceansat(IRS-P4)" - INSAT_2_E = "INSAT-2E" - IRS_1_D = "IRS-1D" - INSAT_2_D = "INSAT-2D" - IRS_P3 = "IRS-P3" - IRS_1_C = "IRS-1C" - INSAT_2_C = "INSAT-2C" - IRS_P2 = "IRS-P2" - SROSS_C2 = "SROSS-C2" - IRS_1_E = "IRS-1E" - INSAT_2_B = "INSAT-2B" - INSAT_2_A = "INSAT-2A" - SROSS_C = "SROSS-C" - IRS_1_B = "IRS-1B" - INSAT_1_D = "INSAT-1D" - INSAT_1_C = "INSAT-1C" - SROSS_2 = "SROSS-2" - IRS_1_A = "IRS-1A" - SROSS_1 = "SROSS-1" - INSAT_1_B = "INSAT-1B" - ROHINI_SATELLITE_RS_D2 = "Rohini Satellite RS-D2" - INSAT_1_A = "INSAT-1A" - BHASKARA_II = "Bhaskara-II" - APPLE = "APPLE" - ROHINI_SATELLITE_RS_D1 = "Rohini Satellite RS-D1" - ROHINI_SATELLITE_RS_1 = "Rohini Satellite RS-1" - ROHINI_TECHNOLOGY_PAYLOAD__RTP_ = "Rohini Technology Payload (RTP)" - BHASKARA_I = "Bhaskara-I" - ARYABHATA = "Aryabhata" - - -class ArtificialSatellitesTaxonomyGeoEntry(str, Enum): - TDRS_3 = "TDRS 3" - FLTSATCOM_8__USA_46_ = "FLTSATCOM 8 (USA 46)" - SKYNET_4_C = "SKYNET 4C" - TDRS_5 = "TDRS 5" - TDRS_6 = "TDRS 6" - UFO_2__USA_95_ = "UFO 2 (USA 95)" - USA_99__MILSTAR_1_1_ = "USA 99 (MILSTAR-1 1)" - USA_107__DSP_17_ = "USA 107 (DSP 17)" - UFO_4__USA_108_ = "UFO 4 (USA 108)" - AMSC_1 = "AMSC 1" - TDRS_7 = "TDRS 7" - USA_113 = "USA 113" - USA_115__MILSTAR_1_2_ = "USA 115 (MILSTAR-1 2)" - INMARSAT_3_F1 = "INMARSAT 3-F1" - INMARSAT_3_F2 = "INMARSAT 3-F2" - AMC_1__GE_1_ = "AMC-1 (GE-1)" - INMARSAT_3_F3 = "INMARSAT 3-F3" - GALAXY_25__G_25_ = "GALAXY 25 (G-25)" - INTELSAT_5__IS_5_ = "INTELSAT 5 (IS-5)" - AMC_3__GE_3_ = "AMC-3 (GE-3)" - USA_134 = "USA 134" - ASTRA_1_G = "ASTRA 1G" - INMARSAT_3_F5 = "INMARSAT 3-F5" - UFO_8__USA_138_ = "UFO 8 (USA 138)" - ASTRA_2_A = "ASTRA 2A" - JCSAT_4_A = "JCSAT-4A" - SKYNET_4_E = "SKYNET 4E" - ABS_7 = "ABS-7" - ABS_6 = "ABS-6" - AMC_4__GE_4_ = "AMC-4 (GE-4)" - UFO_10__USA_146_ = "UFO 10 (USA 146)" - GALAXY_11__G_11_ = "GALAXY 11 (G-11)" - USA_148 = "USA 148" - ASIASTAR = "ASIASTAR" - USA_149__DSP_20_ = "USA 149 (DSP 20)" - TDRS_8 = "TDRS 8" - INTELSAT_9__IS_9_ = "INTELSAT 9 (IS-9)" - NSS_11__AAP_1_ = "NSS-11 (AAP-1)" - USA_153 = "USA 153" - AMC_6__GE_6_ = "AMC-6 (GE-6)" - INTELSAT_1_R__IS_1_R_ = "INTELSAT 1R (IS-1R)" - ANIK_F1 = "ANIK F1" - ASTRA_2_D = "ASTRA 2D" - AMC_8__GE_8_ = "AMC-8 (GE-8)" - USA_157__MILSTAR_2_2_ = "USA 157 (MILSTAR-2 2)" - EUTELSAT_133_WEST_A = "EUTELSAT 133 WEST A" - INTELSAT_10__IS_10_ = "INTELSAT 10 (IS-10)" - INTELSAT_901__IS_901_ = "INTELSAT 901 (IS-901)" - ASTRA_2_C = "ASTRA 2C" - USA_159__DSP_21_ = "USA 159 (DSP 21)" - INTELSAT_902__IS_902_ = "INTELSAT 902 (IS-902)" - USA_164__MILSTAR_2_3_ = "USA 164 (MILSTAR-2 3)" - ECHOSTAR_7 = "ECHOSTAR 7" - INTELSAT_904__IS_904_ = "INTELSAT 904 (IS-904)" - TDRS_9 = "TDRS 9" - ASTRA_3_A = "ASTRA 3A" - NSS_7 = "NSS-7" - DIRECTV_5__TEMPO_1_ = "DIRECTV 5 (TEMPO 1)" - INTELSAT_905__IS_905_ = "INTELSAT 905 (IS-905)" - GALAXY_3_C__G_3_C_ = "GALAXY 3C (G-3C)" - EUTELSAT_5_WEST_A = "EUTELSAT 5 WEST A" - METEOSAT_8__MSG_1_ = "METEOSAT-8 (MSG-1)" - INTELSAT_906__IS_906_ = "INTELSAT 906 (IS-906)" - HISPASAT_30_W_4 = "HISPASAT 30W-4" - TDRS_10 = "TDRS 10" - NSS_6 = "NSS-6" - NIMIQ_2 = "NIMIQ 2" - USA_167 = "USA 167" - USA_169__MILSTAR_2_4_ = "USA 169 (MILSTAR-2 4)" - GALAXY_12__G_12_ = "GALAXY 12 (G-12)" - ASIASAT_4 = "ASIASAT 4" - HELLAS_SAT_2 = "HELLAS-SAT 2" - THURAYA_2 = "THURAYA-2" - OPTUS_C1 = "OPTUS C1" - GALAXY_23__G_23_ = "GALAXY 23 (G-23)" - USA_170 = "USA 170" - GALAXY_13__HORIZONS_1_ = "GALAXY 13 (HORIZONS 1)" - YAMAL_202 = "YAMAL 202" - UFO_11__USA_174_ = "UFO 11 (USA 174)" - USA_176__DSP_22_ = "USA 176 (DSP 22)" - ABS_4__MOBISAT_1_ = "ABS-4 (MOBISAT-1)" - EUTELSAT_7_A = "EUTELSAT 7A" - AMC_11__GE_11_ = "AMC-11 (GE-11)" - INTELSAT_10_02 = "INTELSAT 10-02" - ANIK_F2 = "ANIK F2" - AMC_15 = "AMC-15" - NSS_10__AMC_12_ = "NSS-10 (AMC-12)" - XTAR_EUR = "XTAR-EUR" - XM_3__RHYTHM_ = "XM-3 (RHYTHM)" - INMARSAT_4_F1 = "INMARSAT 4-F1" - DIRECTV_8 = "DIRECTV 8" - GALAXY_28__G_28_ = "GALAXY 28 (G-28)" - EXPRESS_AM3 = "EXPRESS-AM3" - THAICOM_4 = "THAICOM 4" - GALAXY_14__G_14_ = "GALAXY 14 (G-14)" - ANIK_F1_R = "ANIK F1R" - GALAXY_15__G_15_ = "GALAXY 15 (G-15)" - SYRACUSE_3_A = "SYRACUSE 3A" - INMARSAT_4_F2 = "INMARSAT 4-F2" - SPACEWAY_2 = "SPACEWAY 2" - METEOSAT_9__MSG_2_ = "METEOSAT-9 (MSG-2)" - EUTELSAT_174_A = "EUTELSAT 174A" - ECHOSTAR_10 = "ECHOSTAR 10" - SPAINSAT = "SPAINSAT" - EUTELSAT_HOTBIRD_13_E = "EUTELSAT HOTBIRD 13E" - JCSAT_5_A = "JCSAT-5A" - ASTRA_1_KR = "ASTRA 1KR" - EWS_G1__GOES_13_ = "EWS-G1 (GOES 13)" - EUTELSAT_113_WEST_A = "EUTELSAT 113 WEST A" - GALAXY_16__G_16_ = "GALAXY 16 (G-16)" - EUTELSAT_HOTBIRD_13_B = "EUTELSAT HOTBIRD 13B" - JCSAT_3_A = "JCSAT-3A" - SYRACUSE_3_B = "SYRACUSE 3B" - KOREASAT_5__MUGUNGWHA_5_ = "KOREASAT 5 (MUGUNGWHA 5)" - DIRECTV_9_S = "DIRECTV 9S" - OPTUS_D1 = "OPTUS D1" - XM_4__BLUES_ = "XM-4 (BLUES)" - BADR_4 = "BADR-4" - WILDBLUE_1 = "WILDBLUE-1" - AMC_18 = "AMC-18" - INSAT_4_B = "INSAT-4B" - SKYNET_5_A = "SKYNET 5A" - ANIK_F3 = "ANIK F3" - ASTRA_1_L = "ASTRA 1L" - GALAXY_17__G_17_ = "GALAXY 17 (G-17)" - ZHONGXING_6_B = "ZHONGXING-6B" - DIRECTV_10 = "DIRECTV 10" - SPACEWAY_3 = "SPACEWAY 3" - BSAT_3_A = "BSAT-3A" - OPTUS_D2 = "OPTUS D2" - INTELSAT_11__IS_11_ = "INTELSAT 11 (IS-11)" - WGS_F1__USA_195_ = "WGS F1 (USA 195)" - STAR_ONE_C1 = "STAR ONE C1" - SKYNET_5_B = "SKYNET 5B" - ASTRA_4_A__SIRIUS_4_ = "ASTRA 4A (SIRIUS 4)" - HORIZONS_2 = "HORIZONS 2" - THURAYA_3 = "THURAYA-3" - EXPRESS_AM33 = "EXPRESS-AM33" - THOR_5 = "THOR 5" - AMC_14 = "AMC-14" - DIRECTV_11 = "DIRECTV 11" - ICO_G1 = "ICO G1" - VINASAT_1 = "VINASAT-1" - STAR_ONE_C2 = "STAR ONE C2" - TIANLIAN_1_01 = "TIANLIAN 1-01" - AMOS_3 = "AMOS-3" - GALAXY_18__G_18_ = "GALAXY 18 (G-18)" - CHINASAT_9__ZX_9_ = "CHINASAT 9 (ZX 9)" - SKYNET_5_C = "SKYNET 5C" - TURKSAT_3_A = "TURKSAT 3A" - INTELSAT_25__IS_25_ = "INTELSAT 25 (IS-25)" - BADR_6 = "BADR-6" - ECHOSTAR_11 = "ECHOSTAR 11" - SUPERBIRD_C2 = "SUPERBIRD-C2" - AMC_21 = "AMC-21" - INMARSAT_4_F3 = "INMARSAT 4-F3" - NIMIQ_4 = "NIMIQ 4" - GALAXY_19__G_19_ = "GALAXY 19 (G-19)" - ASTRA_1_M = "ASTRA 1M" - CIEL_2 = "CIEL-2" - EUTELSAT_HOTBIRD_13_C = "EUTELSAT HOTBIRD 13C" - EUTELSAT_48_D = "EUTELSAT 48D" - FENGYUN_2_E = "FENGYUN 2E" - EXPRESS_AM44 = "EXPRESS-AM44" - NSS_9 = "NSS-9" - EUTELSAT_33_E = "EUTELSAT 33E" - TELSTAR_11_N = "TELSTAR 11N" - EUTELSAT_10_A = "EUTELSAT 10A" - WGS_F2__USA_204_ = "WGS F2 (USA 204)" - SES_7__PROTOSTAR_2_ = "SES-7 (PROTOSTAR 2)" - MEASAT_3_A = "MEASAT-3A" - GOES_14 = "GOES 14" - FM_5 = "FM-5" - TERRESTAR_1 = "TERRESTAR-1" - ASIASAT_5 = "ASIASAT 5" - JCSAT_RA__JCSAT_12_ = "JCSAT-RA (JCSAT-12)" - OPTUS_D3 = "OPTUS D3" - NIMIQ_5 = "NIMIQ 5" - AMAZONAS_2 = "AMAZONAS 2" - COMSATBW_1 = "COMSATBW-1" - NSS_12 = "NSS-12" - THOR_6 = "THOR 6" - INTELSAT_14__IS_14_ = "INTELSAT 14 (IS-14)" - EUTELSAT_36_B = "EUTELSAT 36B" - INTELSAT_15__IS_15_ = "INTELSAT 15 (IS-15)" - WGS_F3__USA_211_ = "WGS F3 (USA 211)" - DIRECTV_12 = "DIRECTV 12" - BEIDOU_3 = "BEIDOU 3" - RADUGA_1_M_2 = "RADUGA-1M 2" - SDO = "SDO" - INTELSAT_16__IS_16_ = "INTELSAT 16 (IS-16)" - GOES_15 = "GOES 15" - ECHOSTAR_14 = "ECHOSTAR 14" - SES_1 = "SES-1" - ASTRA_3_B = "ASTRA 3B" - COMSATBW_2 = "COMSATBW-2" - BADR_5 = "BADR-5" - COMS_1 = "COMS 1" - ARABSAT_5_A = "ARABSAT-5A" - ECHOSTAR_15 = "ECHOSTAR 15" - BEIDOU_5 = "BEIDOU 5" - NILESAT_201 = "NILESAT 201" - RASCOM_QAF_1_R = "RASCOM-QAF 1R" - AEHF_1__USA_214_ = "AEHF-1 (USA 214)" - CHINASAT_6_A__ZX_6_A_ = "CHINASAT 6A (ZX 6A)" - QZS_1__MICHIBIKI_1_ = "QZS-1 (MICHIBIKI-1)" - XM_5 = "XM-5" - BSAT_3_B = "BSAT-3B" - BEIDOU_6 = "BEIDOU 6" - SKYTERRA_1 = "SKYTERRA 1" - ZHONGXING_20_A = "ZHONGXING-20A" - HYLAS_1 = "HYLAS 1" - INTELSAT_17__IS_17_ = "INTELSAT 17 (IS-17)" - BEIDOU_7 = "BEIDOU 7" - EUTELSAT_KA_SAT_9_A = "EUTELSAT KA-SAT 9A" - HISPASAT_30_W_5 = "HISPASAT 30W-5" - KOREASAT_6 = "KOREASAT 6" - BEIDOU_8 = "BEIDOU 8" - INTELSAT_NEW_DAWN = "INTELSAT NEW DAWN" - YAHSAT_1_A = "YAHSAT 1A" - SBIRS_GEO_1__USA_230_ = "SBIRS GEO-1 (USA 230)" - TELSTAR_14_R = "TELSTAR 14R" - GSAT_8 = "GSAT-8" - ST_2 = "ST-2" - CHINASAT_10__ZX_10_ = "CHINASAT 10 (ZX 10)" - TIANLIAN_1_02 = "TIANLIAN 1-02" - GSAT_12 = "GSAT-12" - SES_3 = "SES-3" - KAZSAT_2 = "KAZSAT-2" - BEIDOU_9 = "BEIDOU 9" - ASTRA_1_N = "ASTRA 1N" - BSAT_3_C__JCSAT_110_R_ = "BSAT-3C (JCSAT-110R)" - PAKSAT_1_R = "PAKSAT-1R" - CHINASAT_1_A__ZX_1_A_ = "CHINASAT 1A (ZX 1A)" - SES_2 = "SES-2" - ARABSAT_5_C = "ARABSAT-5C" - EUTELSAT_7_WEST_A = "EUTELSAT 7 WEST A" - QUETZSAT_1 = "QUETZSAT 1" - INTELSAT_18__IS_18_ = "INTELSAT 18 (IS-18)" - EUTELSAT_16_A = "EUTELSAT 16A" - VIASAT_1 = "VIASAT-1" - ASIASAT_7 = "ASIASAT 7" - BEIDOU_10 = "BEIDOU 10" - LUCH_5_A = "LUCH 5A" - NIGCOMSAT_1_R = "NIGCOMSAT 1R" - FENGYUN_2_F = "FENGYUN 2F" - WGS_F4__USA_233_ = "WGS F4 (USA 233)" - SES_4 = "SES-4" - BEIDOU_11 = "BEIDOU 11" - MUOS_1 = "MUOS-1" - INTELSAT_22__IS_22_ = "INTELSAT 22 (IS-22)" - APSTAR_7 = "APSTAR 7" - YAHSAT_1_B = "YAHSAT 1B" - AEHF_2__USA_235_ = "AEHF-2 (USA 235)" - JCSAT_13 = "JCSAT-13" - VINASAT_2 = "VINASAT-2" - NIMIQ_6 = "NIMIQ 6" - CHINASAT_2_A__ZX_2_A_ = "CHINASAT 2A (ZX 2A)" - INTELSAT_19__IS_19_ = "INTELSAT 19 (IS-19)" - ECHOSTAR_17 = "ECHOSTAR 17" - METEOSAT_10__MSG_3_ = "METEOSAT-10 (MSG-3)" - SES_5 = "SES-5" - TIANLIAN_1_03 = "TIANLIAN 1-03" - INTELSAT_20__IS_20_ = "INTELSAT 20 (IS-20)" - HYLAS_2 = "HYLAS 2" - INTELSAT_21__IS_21_ = "INTELSAT 21 (IS-21)" - ASTRA_2_F = "ASTRA 2F" - GSAT_10 = "GSAT-10" - INTELSAT_23__IS_23_ = "INTELSAT 23 (IS-23)" - BEIDOU_16 = "BEIDOU 16" - LUCH_5_B = "LUCH 5B" - YAMAL_300_K = "YAMAL 300K" - STAR_ONE_C3 = "STAR ONE C3" - EUTELSAT_21_B = "EUTELSAT 21B" - ECHOSTAR_16 = "ECHOSTAR 16" - CHINASAT_12__ZX_12_ = "CHINASAT 12 (ZX 12)" - EUTELSAT_70_B = "EUTELSAT 70B" - YAMAL_402 = "YAMAL 402" - SKYNET_5_D = "SKYNET 5D" - MEXSAT_3 = "MEXSAT 3" - TDRS_11 = "TDRS 11" - AMAZONAS_3 = "AMAZONAS 3" - AZERSPACE_1 = "AZERSPACE 1" - SBIRS_GEO_2__USA_241_ = "SBIRS GEO-2 (USA 241)" - EUTELSAT_117_WEST_A = "EUTELSAT 117 WEST A" - ANIK_G1 = "ANIK G1" - CHINASAT_11__ZX_11_ = "CHINASAT 11 (ZX 11)" - EUTELSAT_7_B = "EUTELSAT 7B" - WGS_F5__USA_243_ = "WGS F5 (USA 243)" - SES_6 = "SES-6" - IRNSS_1_A = "IRNSS-1A" - MUOS_2 = "MUOS-2" - ALPHASAT = "ALPHASAT" - INSAT_3_D = "INSAT-3D" - WGS_F6__USA_244_ = "WGS F6 (USA 244)" - ES_HAIL_1 = "ES'HAIL 1" - GSAT_7 = "GSAT-7" - AMOS_4 = "AMOS-4" - AEHF_3__USA_246_ = "AEHF-3 (USA 246)" - ASTRA_2_E = "ASTRA 2E" - FM_6 = "FM-6" - RADUGA_1_M_3 = "RADUGA-1M 3" - SES_8 = "SES-8" - INMARSAT_5_F1 = "INMARSAT 5-F1" - TKSAT_1__TUPAC_KATARI_ = "TKSAT-1 (TUPAC KATARI)" - EXPRESS_AM5 = "EXPRESS-AM5" - GSAT_14 = "GSAT-14" - THAICOM_6 = "THAICOM 6" - TDRS_12 = "TDRS 12" - ABS_2 = "ABS-2" - ATHENA_FIDUS = "ATHENA-FIDUS" - TURKSAT_4_A = "TURKSAT 4A" - EXPRESS_AT1 = "EXPRESS-AT1" - EXPRESS_AT2 = "EXPRESS-AT2" - AMAZONAS_4_A = "AMAZONAS 4A" - ASTRA_5_B = "ASTRA 5B" - IRNSS_1_B = "IRNSS-1B" - LUCH_5_V = "LUCH 5V" - KAZSAT_3 = "KAZSAT-3" - EUTELSAT_3_B = "EUTELSAT 3B" - ASIASAT_8__AMOS_7_ = "ASIASAT 8 (AMOS-7)" - ASIASAT_6 = "ASIASAT 6" - OPTUS_10 = "OPTUS 10" - MEASAT_3_B = "MEASAT-3B" - LUCH__OLYMP_ = "LUCH (OLYMP)" - HIMAWARI_8 = "HIMAWARI-8" - IRNSS_1_C = "IRNSS-1C" - INTELSAT_30__IS_30_ = "INTELSAT 30 (IS-30)" - ARSAT_1 = "ARSAT 1" - EXPRESS_AM6 = "EXPRESS-AM6" - GSAT_16 = "GSAT-16" - DIRECTV_14 = "DIRECTV 14" - YAMAL_401 = "YAMAL 401" - ASTRA_2_G = "ASTRA 2G" - FENGYUN_2_G = "FENGYUN 2G" - MUOS_3 = "MUOS-3" - INMARSAT_5_F2 = "INMARSAT 5-F2" - ABS_3_A = "ABS-3A" - EUTELSAT_115_WEST_B = "EUTELSAT 115 WEST B" - EXPRESS_AM7 = "EXPRESS-AM7" - IRNSS_1_D = "IRNSS-1D" - BEIDOU_17 = "BEIDOU 17" - THOR_7 = "THOR 7" - TURKMENALEM52_E_MONACOSAT = "TURKMENALEM52E/MONACOSAT" - DIRECTV_15 = "DIRECTV 15" - SKY_MEXICO_1 = "SKY MEXICO-1" - METEOSAT_11__MSG_4_ = "METEOSAT-11 (MSG-4)" - STAR_ONE_C4 = "STAR ONE C4" - WGS_F7__USA_263_ = "WGS F7 (USA 263)" - INTELSAT_34__IS_34_ = "INTELSAT 34 (IS-34)" - EUTELSAT_8_WEST_B = "EUTELSAT 8 WEST B" - GSAT_6 = "GSAT-6" - INMARSAT_5_F3 = "INMARSAT 5-F3" - MUOS_4 = "MUOS-4" - TJS_1 = "TJS-1" - EXPRESS_AM8 = "EXPRESS-AM8" - BEIDOU_20 = "BEIDOU 20" - SKY_MUSTER_1__NBN1_A_ = "SKY MUSTER 1 (NBN1A)" - ARSAT_2 = "ARSAT 2" - MORELOS_3 = "MORELOS 3" - APSTAR_9 = "APSTAR 9" - TURKSAT_4_B = "TURKSAT 4B" - CHINASAT_2_C__ZX_2_C_ = "CHINASAT 2C (ZX 2C)" - GSAT_15 = "GSAT-15" - BADR_7__ARABSAT_6_B_ = "BADR-7 (ARABSAT-6B)" - LAOSAT_1 = "LAOSAT 1" - TELSTAR_12_V = "TELSTAR 12V" - CHINASAT_1_C__ZX_1_C_ = "CHINASAT 1C (ZX 1C)" - ELEKTRO_L_2 = "ELEKTRO-L 2" - COSMOS_2513 = "COSMOS 2513" - EXPRESS_AMU1 = "EXPRESS-AMU1" - GAOFEN_4 = "GAOFEN 4" - BELINTERSAT_1 = "BELINTERSAT-1" - IRNSS_1_E = "IRNSS-1E" - EUTELSAT_9_B = "EUTELSAT 9B" - SES_9 = "SES-9" - EUTELSAT_65_WEST_A = "EUTELSAT 65 WEST A" - IRNSS_1_F = "IRNSS-1F" - BEIDOU_IGSO_6 = "BEIDOU IGSO-6" - IRNSS_1_G = "IRNSS-1G" - JCSAT_2_B = "JCSAT-2B" - THAICOM_8 = "THAICOM 8" - INTELSAT_31__IS_31_ = "INTELSAT 31 (IS-31)" - BEIDOU_2_G7 = "BEIDOU-2 G7" - ABS_2_A__MONGOLSAT_1_ = "ABS-2A (MONGOLSAT-1)" - EUTELSAT_117_WEST_B = "EUTELSAT 117 WEST B" - BRISAT = "BRISAT" - ECHOSTAR_18 = "ECHOSTAR 18" - MUOS_5 = "MUOS-5" - TIANTONG_1_1 = "TIANTONG-1 1" - JCSAT_16 = "JCSAT-16" - USA_270 = "USA 270" - USA_271 = "USA 271" - INTELSAT_36__IS_36_ = "INTELSAT 36 (IS-36)" - INTELSAT_33_E__IS_33_E_ = "INTELSAT 33E (IS-33E)" - INSAT_3_DR = "INSAT-3DR" - GSAT_18 = "GSAT-18" - SKY_MUSTER_2__NBN1_B_ = "SKY MUSTER 2 (NBN1B)" - HIMAWARI_9 = "HIMAWARI-9" - SHIJIAN_17__SJ_17_ = "SHIJIAN-17 (SJ-17)" - GOES_16 = "GOES 16" - TIANLIAN_1_04 = "TIANLIAN 1-04" - WGS_F8__USA_272_ = "WGS F8 (USA 272)" - FENGYUN_4_A = "FENGYUN 4A" - ECHOSTAR_19 = "ECHOSTAR 19" - JCSAT_15 = "JCSAT-15" - STAR_ONE_D1 = "STAR ONE D1" - TJS_2 = "TJS-2" - SBIRS_GEO_4__USA_273_ = "SBIRS GEO-4 (USA 273)" - HISPASAT_36_W_1 = "HISPASAT 36W-1" - TELKOM_3_S = "TELKOM 3S" - INTELSAT_32_E__IS_32_E_ = "INTELSAT 32E (IS-32E)" - ECHOSTAR_23 = "ECHOSTAR 23" - WGS_F9__USA_275_ = "WGS F9 (USA 275)" - SES_10 = "SES-10" - CHINASAT_16__SJ_13_ = "CHINASAT 16 (SJ-13)" - KOREASAT_7 = "KOREASAT 7" - SGDC = "SGDC" - GSAT_9 = "GSAT-9" - INMARSAT_5_F4 = "INMARSAT 5-F4" - SES_15 = "SES-15" - QZS_2__MICHIBIKI_2_ = "QZS-2 (MICHIBIKI-2)" - VIASAT_2 = "VIASAT-2" - EUTELSAT_172_B = "EUTELSAT 172B" - GSAT_19 = "GSAT-19" - ECHOSTAR_21 = "ECHOSTAR 21" - BULGARIASAT_1 = "BULGARIASAT-1" - HELLAS_SAT_3 = "HELLAS-SAT 3" - GSAT_17 = "GSAT-17" - INTELSAT_35_E__IS_35_E_ = "INTELSAT 35E (IS-35E)" - COSMOS_2520 = "COSMOS 2520" - TDRS_13 = "TDRS 13" - QZS_3__MICHIBIKI_3_ = "QZS-3 (MICHIBIKI-3)" - AMAZONAS_5 = "AMAZONAS 5" - ASIASAT_9 = "ASIASAT 9" - INTELSAT_37_E__IS_37_E_ = "INTELSAT 37E (IS-37E)" - BSAT_4_A = "BSAT-4A" - QZS_4__MICHIBIKI_4_ = "QZS-4 (MICHIBIKI-4)" - SES_11__ECHOSTAR_105_ = "SES-11 (ECHOSTAR 105)" - KOREASAT_5_A = "KOREASAT 5A" - ALCOMSAT_1 = "ALCOMSAT 1" - SBIRS_GEO_3__USA_282_ = "SBIRS GEO-3 (USA 282)" - AL_YAH_3 = "AL YAH 3" - SES_14 = "SES-14" - GOES_17 = "GOES 17" - HISPASAT_30_W_6 = "HISPASAT 30W-6" - SUPERBIRD_8 = "SUPERBIRD 8" - HYLAS_4 = "HYLAS 4" - IRNSS_1_I = "IRNSS-1I" - USA_283 = "USA 283" - COSMOS_2526 = "COSMOS 2526" - APSTAR_6_C = "APSTAR 6C" - BANGABANDHUSAT_1 = "BANGABANDHUSAT-1" - SES_12 = "SES-12" - FENGYUN_2_H = "FENGYUN 2H" - BEIDOU_IGSO_7 = "BEIDOU IGSO-7" - TELSTAR_19_V = "TELSTAR 19V" - TELKOM_4__MERAH_PUTIH_ = "TELKOM 4 (MERAH PUTIH)" - TELSTAR_18_V__APSTAR_5_C_ = "TELSTAR 18V (APSTAR 5C)" - AZERSPACE_2__IS_38_ = "AZERSPACE 2 (IS-38)" - HORIZONS_3_E = "HORIZONS 3E" - AEHF_4__USA_288_ = "AEHF-4 (USA 288)" - BEIDOU_3_G1 = "BEIDOU-3 G1" - GSAT_29 = "GSAT-29" - ES_HAIL_2 = "ES'HAIL 2" - GEO_KOMPSAT_2_A = "GEO-KOMPSAT-2A" - GSAT_11 = "GSAT-11" - GSAT_7_A = "GSAT-7A" - COSMOS_2533 = "COSMOS 2533" - TJS_3 = "TJS-3" - CHINASAT_2_D__ZX_2_D_ = "CHINASAT 2D (ZX 2D)" - HELLAS_SAT_4___SGS_1 = "HELLAS-SAT 4 & SGS-1" - GSAT_31 = "GSAT-31" - NUSANTARA_SATU = "NUSANTARA SATU" - CHINASAT_6_C__ZX_6_C_ = "CHINASAT 6C (ZX 6C)" - WGS_10__USA_291_ = "WGS 10 (USA 291)" - TIANLIAN_2_01 = "TIANLIAN 2-01" - ARABSAT_6_A = "ARABSAT-6A" - BEIDOU_3_IGSO_1 = "BEIDOU-3 IGSO-1" - BEIDOU_2_G8 = "BEIDOU-2 G8" - YAMAL_601 = "YAMAL 601" - AT_T_T_16 = "AT&T T-16" - EUTELSAT_7_C = "EUTELSAT 7C" - BEIDOU_3_IGSO_2 = "BEIDOU-3 IGSO-2" - COSMOS_2539 = "COSMOS 2539" - EDRS_C = "EDRS-C" - INTELSAT_39__IS_39_ = "INTELSAT 39 (IS-39)" - AMOS_17 = "AMOS-17" - AEHF_5__USA_292_ = "AEHF-5 (USA 292)" - EUTELSAT_5_WEST_B = "EUTELSAT 5 WEST B" - MEV_1 = "MEV-1" - TJS_4 = "TJS-4" - BEIDOU_3_IGSO_3 = "BEIDOU-3 IGSO-3" - TIBA_1 = "TIBA-1" - INMARSAT_GX5 = "INMARSAT GX5" - JCSAT_18__KACIFIC_1_ = "JCSAT-18 (KACIFIC 1)" - ELEKTRO_L_3 = "ELEKTRO-L 3" - SHIJIAN_20__SJ_20_ = "SHIJIAN-20 (SJ-20)" - TJS_5 = "TJS-5" - GSAT_30 = "GSAT-30" - EUTELSAT_KONNECT = "EUTELSAT KONNECT" - JCSAT_17 = "JCSAT-17" - GEO_KOMPSAT_2_B = "GEO-KOMPSAT-2B" - BEIDOU_3_G2 = "BEIDOU-3 G2" - AEHF_6__USA_298_ = "AEHF-6 (USA 298)" - BEIDOU_3_G3 = "BEIDOU-3 G3" - APSTAR_6_D = "APSTAR 6D" - KOREASAT_116 = "KOREASAT 116" - EXPRESS_103 = "EXPRESS 103" - EXPRESS_80 = "EXPRESS 80" - BSAT_4_B = "BSAT-4B" - MEV_2 = "MEV-2" - GALAXY_30__G_30_ = "GALAXY 30 (G-30)" - GAOFEN_13 = "GAOFEN 13" - TIANTONG_1_2 = "TIANTONG-1 2" - LUCAS__JDRS_1_ = "LUCAS (JDRS-1)" - SXM_7 = "SXM-7" - CMS_01 = "CMS-01" - TURKSAT_5_A = "TURKSAT 5A" - TIANTONG_1_3 = "TIANTONG-1 3" - TJS_6 = "TJS-6" - SBIRS_GEO_5__USA_315_ = "SBIRS GEO-5 (USA 315)" - FENGYUN_4_B = "FENGYUN 4B" - SXM_8 = "SXM-8" - TIANLIAN_1_05 = "TIANLIAN 1-05" - STAR_ONE_D2 = "STAR ONE D2" - EUTELSAT_QUANTUM = "EUTELSAT QUANTUM" - CHINASAT_2_E__ZX_2_E_ = "CHINASAT 2E (ZX 2E)" - TJS_7 = "TJS-7" - CHINASAT_9_B = "CHINASAT 9B" - SHIJIAN_21__SJ_21_ = "SHIJIAN-21 (SJ-21)" - QZS_1_R = "QZS-1R" - CHINASAT_1_D__ZX_1_D_ = "CHINASAT 1D (ZX 1D)" - STPSAT_6 = "STPSAT-6" - LDPE_1 = "LDPE-1" - T_2021_123_A = "2021-123A" - T_2021_123_B = "2021-123B" - TIANLIAN_2_02 = "TIANLIAN 2-02" - SHIYAN_12_01__SY_12_01_ = "SHIYAN 12 01 (SY-12 01)" - SHIYAN_12_02__SY_12_02_ = "SHIYAN 12 02 (SY-12 02)" - TJS_9 = "TJS-9" - - -class ArtificialSatellitesTaxonomyTrackingEntry(str, Enum): - TDRS_3 = "TDRS 3" - HST = "HST" - TDRS_5 = "TDRS 5" - TDRS_6 = "TDRS 6" - TDRS_7 = "TDRS 7" - ISS__ZARYA_ = "ISS (ZARYA)" - LANDSAT_7 = "LANDSAT 7" - TERRA = "TERRA" - TDRS_8 = "TDRS 8" - TIMED = "TIMED" - TDRS_9 = "TDRS 9" - AQUA = "AQUA" - TDRS_10 = "TDRS 10" - SORCE = "SORCE" - AURA = "AURA" - SWIFT = "SWIFT" - THEMIS_A = "THEMIS A" - THEMIS_D = "THEMIS D" - THEMIS_E = "THEMIS E" - AIM = "AIM" - FGRST__GLAST_ = "FGRST (GLAST)" - WISE = "WISE" - TDRS_11 = "TDRS 11" - TDRS_12 = "TDRS 12" - GPM_CORE = "GPM-CORE" - MMS_1 = "MMS 1" - MMS_2 = "MMS 2" - MMS_3 = "MMS 3" - MMS_4 = "MMS 4" - TDRS_13 = "TDRS 13" - JPSS_1 = "JPSS-1" - - -class ArtificialSatellitesTaxonomySearchRescueEntry(str, Enum): - SARSAT_7__NOAA_15_ = "SARSAT 7 (NOAA 15)" - METEOSAT_8__MSG_1_ = "METEOSAT-8 (MSG-1)" - GPS_BIIR_08 = "GPS BIIR-08" - GPS_BIIR_11 = "GPS BIIR-11" - GPS_BIIR_13 = "GPS BIIR-13" - SARSAT_10__NOAA_18_ = "SARSAT 10 (NOAA 18)" - GPS_BIIR_14_M = "GPS BIIR-14M" - METEOSAT_9__MSG_2_ = "METEOSAT-9 (MSG-2)" - GOES_13 = "GOES 13" - GPS_BIIR_16_M = "GPS BIIR-16M" - GPS_BIIR_17_M = "GPS BIIR-17M" - GPS_BIIR_18_M = "GPS BIIR-18M" - SARSAT_12__NOAA_19_ = "SARSAT 12 (NOAA 19)" - GOES_14 = "GOES 14" - GOES_15 = "GOES 15" - GPS_BIIF_2 = "GPS BIIF-2" - GSAT0101__GALILEO_PFM_ = "GSAT0101 (GALILEO-PFM)" - GSAT0102__GALILEO_FM2_ = "GSAT0102 (GALILEO-FM2)" - LUCH_5_A = "LUCH 5A" - METEOSAT_10__MSG_3_ = "METEOSAT-10 (MSG-3)" - SARSAT_13__METOP_B_ = "SARSAT 13 (METOP-B)" - GPS_BIIF_3 = "GPS BIIF-3" - GSAT0103__GALILEO_FM3_ = "GSAT0103 (GALILEO-FM3)" - GSAT0104__GALILEO_FM4_ = "GSAT0104 (GALILEO-FM4)" - GPS_BIIF_4 = "GPS BIIF-4" - INSAT_3_D = "INSAT-3D" - GPS_BIIF_5 = "GPS BIIF-5" - LUCH_5_V = "LUCH 5V" - GPS_BIIF_6 = "GPS BIIF-6" - GPS_BIIF_7 = "GPS BIIF-7" - GSAT0201__GALILEO_5_ = "GSAT0201 (GALILEO 5)" - GSAT0202__GALILEO_6_ = "GSAT0202 (GALILEO 6)" - GPS_BIIF_8 = "GPS BIIF-8" - GLONASS_K_2 = "GLONASS-K 2" - GPS_BIIF_9 = "GPS BIIF-9" - GSAT0203__GALILEO_7_ = "GSAT0203 (GALILEO 7)" - GSAT0204__GALILEO_8_ = "GSAT0204 (GALILEO 8)" - GPS_BIIF_10 = "GPS BIIF-10" - METEOSAT_11__MSG_4_ = "METEOSAT-11 (MSG-4)" - GSAT0205__GALILEO_9_ = "GSAT0205 (GALILEO 9)" - GSAT0206__GALILEO_10_ = "GSAT0206 (GALILEO 10)" - GPS_BIIF_11 = "GPS BIIF-11" - ELEKTRO_L_2 = "ELEKTRO-L 2" - GSAT0209__GALILEO_12_ = "GSAT0209 (GALILEO 12)" - GSAT0208__GALILEO_11_ = "GSAT0208 (GALILEO 11)" - GPS_BIIF_12 = "GPS BIIF-12" - GSAT0211__GALILEO_14_ = "GSAT0211 (GALILEO 14)" - GSAT0210__GALILEO_13_ = "GSAT0210 (GALILEO 13)" - INSAT_3_DR = "INSAT-3DR" - GSAT0207__GALILEO_15_ = "GSAT0207 (GALILEO 15)" - GSAT0212__GALILEO_16_ = "GSAT0212 (GALILEO 16)" - GSAT0213__GALILEO_17_ = "GSAT0213 (GALILEO 17)" - GSAT0214__GALILEO_18_ = "GSAT0214 (GALILEO 18)" - GOES_16 = "GOES 16" - GSAT_17 = "GSAT-17" - GSAT0215__GALILEO_19_ = "GSAT0215 (GALILEO 19)" - GSAT0216__GALILEO_20_ = "GSAT0216 (GALILEO 20)" - GSAT0217__GALILEO_21_ = "GSAT0217 (GALILEO 21)" - GSAT0218__GALILEO_22_ = "GSAT0218 (GALILEO 22)" - GOES_17 = "GOES 17" - GSAT0221__GALILEO_25_ = "GSAT0221 (GALILEO 25)" - GSAT0222__GALILEO_26_ = "GSAT0222 (GALILEO 26)" - GSAT0219__GALILEO_23_ = "GSAT0219 (GALILEO 23)" - GSAT0220__GALILEO_24_ = "GSAT0220 (GALILEO 24)" - BEIDOU_3_M13 = "BEIDOU-3 M13" - BEIDOU_3_M14 = "BEIDOU-3 M14" - GPS_BIII_1 = "GPS BIII-1" - METEOR_M2_2 = "METEOR-M2 2" - GPS_BIII_2 = "GPS BIII-2" - BEIDOU_3_M23 = "BEIDOU-3 M23" - BEIDOU_3_M24 = "BEIDOU-3 M24" - BEIDOU_3_M21 = "BEIDOU-3 M21" - BEIDOU_3_M22 = "BEIDOU-3 M22" - ELEKTRO_L_3 = "ELEKTRO-L 3" - GPS_BIII_3 = "GPS BIII-3" - GPS_BIII_4 = "GPS BIII-4" - GSAT0223__GALILEO_27_ = "GSAT0223 (GALILEO 27)" - GSAT0224__GALILEO_28_ = "GSAT0224 (GALILEO 28)" - - -class ArtificialSatellitesTaxonomyEarthRessourcesEntry(str, Enum): - SCD_1 = "SCD 1" - TECHSAT_1_B__GO_32_ = "TECHSAT 1B (GO-32)" - SCD_2 = "SCD 2" - LANDSAT_7 = "LANDSAT 7" - DLR_TUBSAT = "DLR-TUBSAT" - TERRA = "TERRA" - MAROC_TUBSAT = "MAROC-TUBSAT" - AQUA = "AQUA" - IRS_P6__RESOURCESAT_1_ = "IRS-P6 (RESOURCESAT-1)" - SHIYAN_1__SY_1_ = "SHIYAN 1 (SY-1)" - AURA = "AURA" - IRS_P5__CARTOSAT_1_ = "IRS-P5 (CARTOSAT-1)" - SINAH_1 = "SINAH 1" - EROS_B = "EROS B" - RESURS_DK_1 = "RESURS-DK 1" - ARIRANG_2__KOMPSAT_2_ = "ARIRANG-2 (KOMPSAT-2)" - LAPAN_TUBSAT = "LAPAN-TUBSAT" - CARTOSAT_2__IRS_P7_ = "CARTOSAT-2 (IRS-P7)" - HAIYANG_1_B = "HAIYANG-1B" - COSMO_SKYMED_1 = "COSMO-SKYMED 1" - TERRASAR_X = "TERRASAR-X" - WORLDVIEW_1__WV_1_ = "WORLDVIEW-1 (WV-1)" - YAOGAN_3 = "YAOGAN 3" - COSMO_SKYMED_2 = "COSMO-SKYMED 2" - RADARSAT_2 = "RADARSAT-2" - CARTOSAT_2_A = "CARTOSAT-2A" - HUANJING_1_A__HJ_1_A_ = "HUANJING 1A (HJ-1A)" - HUANJING_1_B__HJ_1_B_ = "HUANJING 1B (HJ-1B)" - GEOEYE_1 = "GEOEYE 1" - THEOS = "THEOS" - COSMO_SKYMED_3 = "COSMO-SKYMED 3" - YAOGAN_4 = "YAOGAN 4" - GOSAT__IBUKI_ = "GOSAT (IBUKI)" - YAOGAN_6 = "YAOGAN 6" - DEIMOS_1 = "DEIMOS-1" - DUBAISAT_1 = "DUBAISAT-1" - OCEANSAT_2 = "OCEANSAT-2" - WORLDVIEW_2__WV_2_ = "WORLDVIEW-2 (WV-2)" - SMOS = "SMOS" - YAOGAN_7 = "YAOGAN 7" - TANDEM_X = "TANDEM-X" - CARTOSAT_2_B = "CARTOSAT-2B" - YAOGAN_10 = "YAOGAN 10" - COSMO_SKYMED_4 = "COSMO-SKYMED 4" - RESOURCESAT_2 = "RESOURCESAT-2" - HAIYANG_2_A = "HAIYANG-2A" - RASAT = "RASAT" - MEGHA_TROPIQUES = "MEGHA-TROPIQUES" - SRMSAT = "SRMSAT" - YAOGAN_13 = "YAOGAN 13" - PLEIADES_1_A = "PLEIADES 1A" - ZIYUAN_1_02_C__ZY_1_02_C_ = "ZIYUAN 1-02C (ZY 1-02C)" - ZIYUAN_3_1__ZY_3_1_ = "ZIYUAN 3-1 (ZY 3-1)" - ARIRANG_3__KOMPSAT_3_ = "ARIRANG-3 (KOMPSAT-3)" - KANOPUS_V_1 = "KANOPUS-V 1" - EXACTVIEW_1__ADS_1_B_ = "EXACTVIEW-1 (ADS-1B)" - SPOT_6 = "SPOT 6" - PLEIADES_1_B = "PLEIADES 1B" - GOKTURK_2 = "GOKTURK 2" - LANDSAT_8 = "LANDSAT 8" - SARAL = "SARAL" - GAOFEN_1 = "GAOFEN 1" - VNREDSAT_1 = "VNREDSAT 1" - ARIRANG_5__KOMPSAT_5_ = "ARIRANG-5 (KOMPSAT-5)" - SKYSAT_A = "SKYSAT-A" - DUBAISAT_2 = "DUBAISAT-2" - GPM_CORE = "GPM-CORE" - SENTINEL_1_A = "SENTINEL-1A" - KAZEOSAT_1 = "KAZEOSAT 1" - ALOS_2 = "ALOS-2" - KAZEOSAT_2 = "KAZEOSAT 2" - HODOYOSHI_4 = "HODOYOSHI-4" - DEIMOS_2 = "DEIMOS-2" - HODOYOSHI_3 = "HODOYOSHI-3" - SPOT_7 = "SPOT 7" - SKYSAT_B = "SKYSAT-B" - WORLDVIEW_3__WV_3_ = "WORLDVIEW-3 (WV-3)" - GAOFEN_2 = "GAOFEN 2" - YAOGAN_21 = "YAOGAN 21" - YAOGAN_22 = "YAOGAN 22" - ASNARO = "ASNARO" - HODOYOSHI_1 = "HODOYOSHI-1" - QSAT_EOS = "QSAT-EOS" - YAOGAN_23 = "YAOGAN 23" - YAOGAN_24 = "YAOGAN 24" - CBERS_4 = "CBERS 4" - RESURS_P2 = "RESURS P2" - YAOGAN_26 = "YAOGAN 26" - SMAP = "SMAP" - KOMPSAT_3_A = "KOMPSAT-3A" - SENTINEL_2_A = "SENTINEL-2A" - GAOFEN_8 = "GAOFEN 8" - CARBONITE_1__CBNT_1_ = "CARBONITE 1 (CBNT-1)" - YAOGAN_27 = "YAOGAN 27" - GAOFEN_9_01 = "GAOFEN 9-01" - LAPAN_A2 = "LAPAN-A2" - YAOGAN_28 = "YAOGAN 28" - YAOGAN_29 = "YAOGAN 29" - KENT_RIDGE_1 = "KENT RIDGE 1" - TELEOS_1 = "TELEOS 1" - GAOFEN_4 = "GAOFEN 4" - JASON_3 = "JASON-3" - SENTINEL_3_A = "SENTINEL-3A" - SENTINEL_1_B = "SENTINEL-1B" - ZIYUAN_3_2__ZY_3_2_ = "ZIYUAN 3-2 (ZY 3-2)" - NUSAT_1__FRESCO_ = "NUSAT-1 (FRESCO)" - NUSAT_2__BATATA_ = "NUSAT-2 (BATATA)" - CARTOSAT_2_C = "CARTOSAT-2C" - SKYSAT_C1 = "SKYSAT-C1" - LAPAN_A3 = "LAPAN-A3" - BIROS = "BIROS" - GAOFEN_3 = "GAOFEN 3" - SKYSAT_C4 = "SKYSAT-C4" - SKYSAT_C5 = "SKYSAT-C5" - SKYSAT_C2 = "SKYSAT-C2" - SKYSAT_C3 = "SKYSAT-C3" - ALSAT_1_B = "ALSAT 1B" - PATHFINDER_1 = "PATHFINDER 1" - SCATSAT_1 = "SCATSAT 1" - GOKTURK_1_A = "GOKTURK 1A" - RESOURCESAT_2_A = "RESOURCESAT-2A" - CARTOSAT_2_D = "CARTOSAT-2D" - SENTINEL_2_B = "SENTINEL-2B" - ZHUHAI_1_02__CAS_4_B_ = "ZHUHAI-1 02 (CAS-4B)" - NUSAT_3__MILANESAT_ = "NUSAT-3 (MILANESAT)" - ZHUHAI_1_01__CAS_4_A_ = "ZHUHAI-1 01 (CAS-4A)" - CARTOSAT_2_E = "CARTOSAT-2E" - FORMOSAT_5 = "FORMOSAT-5" - SENTINEL_5_P = "SENTINEL-5P" - SKYSAT_C11 = "SKYSAT-C11" - SKYSAT_C10 = "SKYSAT-C10" - SKYSAT_C9 = "SKYSAT-C9" - SKYSAT_C8 = "SKYSAT-C8" - SKYSAT_C7 = "SKYSAT-C7" - SKYSAT_C6 = "SKYSAT-C6" - CARTOSAT_2_F = "CARTOSAT-2F" - NUSAT_4__ADA_ = "NUSAT-4 (ADA)" - NUSAT_5__MARYAM_ = "NUSAT-5 (MARYAM)" - GAOFEN_1_02 = "GAOFEN 1-02" - GAOFEN_1_03 = "GAOFEN 1-03" - GAOFEN_1_04 = "GAOFEN 1-04" - SENTINEL_3_B = "SENTINEL-3B" - GAOFEN_5_01 = "GAOFEN 5-01" - GAOFEN_6 = "GAOFEN 6" - GAOFEN_11_1 = "GAOFEN 11-1" - AEOLUS = "AEOLUS" - ICESAT_2 = "ICESAT-2" - HYSIS = "HYSIS" - KAZSTSAT = "KAZSTSAT" - SAUDISAT_5_A = "SAUDISAT 5A" - SAUDISAT_5_B = "SAUDISAT 5B" - GAOFEN_10_R = "GAOFEN 10R" - CARTOSAT_3 = "CARTOSAT-3" - GAOFEN_12_1 = "GAOFEN 12-1" - CSG_1 = "CSG-1" - NUSAT_7__SOPHIE_ = "NUSAT-7 (SOPHIE)" - NUSAT_8__MARIE_ = "NUSAT-8 (MARIE)" - NUSAT_6__HYPATIA_ = "NUSAT-6 (HYPATIA)" - NEMO_HD = "NEMO-HD" - NUSAT_12__DOROTHY_ = "NUSAT-12 (DOROTHY)" - NUSAT_9__ALICE_ = "NUSAT-9 (ALICE)" - NUSAT_11__CORA_ = "NUSAT-11 (CORA)" - NUSAT_15__KATHERINE_ = "NUSAT-15 (KATHERINE)" - NUSAT_14__HEDY_ = "NUSAT-14 (HEDY)" - NUSAT_10__CAROLINE_ = "NUSAT-10 (CAROLINE)" - NUSAT_13__EMMY_ = "NUSAT-13 (EMMY)" - NUSAT_17__MARY_ = "NUSAT-17 (MARY)" - NUSAT_18__VERA_ = "NUSAT-18 (VERA)" - NUSAT_16__LISE_ = "NUSAT-16 (LISE)" - SENTINEL_6 = "SENTINEL-6" - GAOFEN_12_2 = "GAOFEN 12-2" - PLEIADES_NEO_3 = "PLEIADES NEO 3" - NUSAT_19__ROSALIND_ = "NUSAT-19 (ROSALIND)" - NUSAT_22__SOFYA_ = "NUSAT-22 (SOFYA)" - NUSAT_21__ELISA_ = "NUSAT-21 (ELISA)" - NUSAT_20__GRACE_ = "NUSAT-20 (GRACE)" - PLEIADES_NEO_4 = "PLEIADES NEO 4" - LANDSAT_9 = "LANDSAT 9" - CSG_2 = "CSG-2" - - -class ArtificialSatellitesTaxonomyDisasterMonitoringEntry(str, Enum): - BEIJING_1 = "BEIJING 1" - HJ_1_A = "HJ-1A" - HJ_1_B = "HJ-1B" - YAOGAN_4 = "YAOGAN 4" - DEIMOS_1 = "DEIMOS-1" - UK_DMC_2 = "UK-DMC 2" - RISAT_1 = "RISAT 1" - DMC3_FM1 = "DMC3-FM1" - DMC3_FM2 = "DMC3-FM2" - DMC3_FM3 = "DMC3-FM3" - - -class ArtificialSatellitesTaxonomyGnssEntry(str, Enum): - GPS_BIIR_2___PRN_13_ = "GPS BIIR-2 (PRN 13)" - GPS_BIIR_4___PRN_20_ = "GPS BIIR-4 (PRN 20)" - GPS_BIIR_5___PRN_28_ = "GPS BIIR-5 (PRN 28)" - GPS_BIIR_8___PRN_16_ = "GPS BIIR-8 (PRN 16)" - GPS_BIIR_9___PRN_21_ = "GPS BIIR-9 (PRN 21)" - GPS_BIIR_10__PRN_22_ = "GPS BIIR-10 (PRN 22)" - GPS_BIIR_11__PRN_19_ = "GPS BIIR-11 (PRN 19)" - GPS_BIIR_13__PRN_02_ = "GPS BIIR-13 (PRN 02)" - CRE__WAAS_PRN_138_ = "CRE (WAAS/PRN 138)" - GPS_BIIRM_1__PRN_17_ = "GPS BIIRM-1 (PRN 17)" - IOR_W__EGNOS_PRN_126_ = "IOR-W (EGNOS/PRN 126)" - GPS_BIIRM_2__PRN_31_ = "GPS BIIRM-2 (PRN 31)" - GPS_BIIRM_3__PRN_12_ = "GPS BIIRM-3 (PRN 12)" - COSMOS_2425__716_ = "COSMOS 2425 (716)" - GPS_BIIRM_4__PRN_15_ = "GPS BIIRM-4 (PRN 15)" - COSMOS_2433__720_ = "COSMOS 2433 (720)" - COSMOS_2432__719_ = "COSMOS 2432 (719)" - GPS_BIIRM_5__PRN_29_ = "GPS BIIRM-5 (PRN 29)" - COSMOS_2434__721_ = "COSMOS 2434 (721)" - COSMOS_2436__723_ = "COSMOS 2436 (723)" - GPS_BIIRM_6__PRN_07_ = "GPS BIIRM-6 (PRN 07)" - GPS_BIIRM_8__PRN_05_ = "GPS BIIRM-8 (PRN 05)" - COSMOS_2456__730_ = "COSMOS 2456 (730)" - COSMOS_2457__733_ = "COSMOS 2457 (733)" - BEIDOU_3__C01_ = "BEIDOU 3 (C01)" - COSMOS_2459__731_ = "COSMOS 2459 (731)" - COSMOS_2461__735_ = "COSMOS 2461 (735)" - COSMOS_2460__732_ = "COSMOS 2460 (732)" - GPS_BIIF_1___PRN_25_ = "GPS BIIF-1 (PRN 25)" - BEIDOU_5__C06_ = "BEIDOU 5 (C06)" - COSMOS_2464__736_ = "COSMOS 2464 (736)" - QZS_1__QZSS_PRN_183_ = "QZS-1 (QZSS/PRN 183)" - BEIDOU_6__C04_ = "BEIDOU 6 (C04)" - BEIDOU_7__C07_ = "BEIDOU 7 (C07)" - COSMOS_2471__701_K_ = "COSMOS 2471 (701K)" - BEIDOU_8__C08_ = "BEIDOU 8 (C08)" - GSAT_8__GAGAN_PRN_127_ = "GSAT-8 (GAGAN/PRN 127)" - GPS_BIIF_2___PRN_01_ = "GPS BIIF-2 (PRN 01)" - BEIDOU_9__C09_ = "BEIDOU 9 (C09)" - GSAT0101__PRN_E11_ = "GSAT0101 (PRN E11)" - GSAT0102__PRN_E12_ = "GSAT0102 (PRN E12)" - COSMOS_2476__744_ = "COSMOS 2476 (744)" - COSMOS_2477__745_ = "COSMOS 2477 (745)" - COSMOS_2475__743_ = "COSMOS 2475 (743)" - BEIDOU_10__C10_ = "BEIDOU 10 (C10)" - LUCH_5_A__SDCM_PRN_140_ = "LUCH 5A (SDCM/PRN 140)" - BEIDOU_11__C05_ = "BEIDOU 11 (C05)" - BEIDOU_12__C11_ = "BEIDOU 12 (C11)" - BEIDOU_13__C12_ = "BEIDOU 13 (C12)" - SES_5__EGNOS_PRN_136_ = "SES-5 (EGNOS/PRN 136)" - BEIDOU_15__C14_ = "BEIDOU 15 (C14)" - GSAT_10__GAGAN_PRN_128_ = "GSAT-10 (GAGAN/PRN 128)" - GPS_BIIF_3___PRN_24_ = "GPS BIIF-3 (PRN 24)" - GSAT0103__PRN_E19_ = "GSAT0103 (PRN E19)" - GSAT0104__PRN_E20_ = "GSAT0104 (PRN E20)" - BEIDOU_16__C02_ = "BEIDOU 16 (C02)" - LUCH_5_B__SDCM_PRN_125_ = "LUCH 5B (SDCM/PRN 125)" - COSMOS_2485__747_ = "COSMOS 2485 (747)" - GPS_BIIF_4___PRN_27_ = "GPS BIIF-4 (PRN 27)" - IRNSS_1_A = "IRNSS-1A" - GPS_BIIF_5___PRN_30_ = "GPS BIIF-5 (PRN 30)" - ASTRA_5_B__EGNOS_PRN_123_ = "ASTRA 5B (EGNOS/PRN 123)" - COSMOS_2492__754_ = "COSMOS 2492 (754)" - IRNSS_1_B = "IRNSS-1B" - LUCH_5_V__SDCM_PRN_141_ = "LUCH 5V (SDCM/PRN 141)" - GPS_BIIF_6___PRN_06_ = "GPS BIIF-6 (PRN 06)" - COSMOS_2500__755_ = "COSMOS 2500 (755)" - GPS_BIIF_7___PRN_09_ = "GPS BIIF-7 (PRN 09)" - GSAT0201__PRN_E18_ = "GSAT0201 (PRN E18)" - GSAT0202__PRN_E14_ = "GSAT0202 (PRN E14)" - IRNSS_1_C = "IRNSS-1C" - GPS_BIIF_8___PRN_03_ = "GPS BIIF-8 (PRN 03)" - COSMOS_2501__702_K_ = "COSMOS 2501 (702K)" - GPS_BIIF_9___PRN_26_ = "GPS BIIF-9 (PRN 26)" - GSAT0203__PRN_E26_ = "GSAT0203 (PRN E26)" - GSAT0204__PRN_E22_ = "GSAT0204 (PRN E22)" - IRNSS_1_D = "IRNSS-1D" - BEIDOU_17__C31_ = "BEIDOU 17 (C31)" - GPS_BIIF_10__PRN_08_ = "GPS BIIF-10 (PRN 08)" - BEIDOU_18__C57_ = "BEIDOU 18 (C57)" - BEIDOU_19__C58_ = "BEIDOU 19 (C58)" - GSAT0205__PRN_E24_ = "GSAT0205 (PRN E24)" - GSAT0206__PRN_E30_ = "GSAT0206 (PRN E30)" - BEIDOU_20__C18_ = "BEIDOU 20 (C18)" - GPS_BIIF_11__PRN_10_ = "GPS BIIF-11 (PRN 10)" - GSAT_15__GAGAN_PRN_139_ = "GSAT-15 (GAGAN/PRN 139)" - GSAT0209__PRN_E09_ = "GSAT0209 (PRN E09)" - GSAT0208__PRN_E08_ = "GSAT0208 (PRN E08)" - IRNSS_1_E = "IRNSS-1E" - GPS_BIIF_12__PRN_32_ = "GPS BIIF-12 (PRN 32)" - COSMOS_2514__751_ = "COSMOS 2514 (751)" - IRNSS_1_F = "IRNSS-1F" - BEIDOU_IGSO_6__C13_ = "BEIDOU IGSO-6 (C13)" - IRNSS_1_G = "IRNSS-1G" - GSAT0211__PRN_E02_ = "GSAT0211 (PRN E02)" - GSAT0210__PRN_E01_ = "GSAT0210 (PRN E01)" - COSMOS_2516__753_ = "COSMOS 2516 (753)" - BEIDOU_2_G7__C03_ = "BEIDOU-2 G7 (C03)" - E_117_W_B__WAAS_PRN_131_ = "E 117 W B (WAAS/PRN 131)" - GSAT0207__PRN_E07_ = "GSAT0207 (PRN E07)" - GSAT0212__PRN_E03_ = "GSAT0212 (PRN E03)" - GSAT0213__PRN_E04_ = "GSAT0213 (PRN E04)" - GSAT0214__PRN_E05_ = "GSAT0214 (PRN E05)" - SES_15__WAAS_PRN_133_ = "SES-15 (WAAS/PRN 133)" - QZS_2__QZSS_PRN_184_ = "QZS-2 (QZSS/PRN 184)" - QZS_3__QZSS_PRN_189_ = "QZS-3 (QZSS/PRN 189)" - COSMOS_2522__752_ = "COSMOS 2522 (752)" - QZS_4__QZSS_PRN_185_ = "QZS-4 (QZSS/PRN 185)" - BEIDOU_3_M1__C19_ = "BEIDOU-3 M1 (C19)" - BEIDOU_3_M2__C20_ = "BEIDOU-3 M2 (C20)" - GSAT0215__PRN_E21_ = "GSAT0215 (PRN E21)" - GSAT0216__PRN_E25_ = "GSAT0216 (PRN E25)" - GSAT0217__PRN_E27_ = "GSAT0217 (PRN E27)" - GSAT0218__PRN_E31_ = "GSAT0218 (PRN E31)" - BEIDOU_3_M3__C27_ = "BEIDOU-3 M3 (C27)" - BEIDOU_3_M4__C28_ = "BEIDOU-3 M4 (C28)" - BEIDOU_3_M5__C21_ = "BEIDOU-3 M5 (C21)" - BEIDOU_3_M6__C22_ = "BEIDOU-3 M6 (C22)" - BEIDOU_3_M7__C29_ = "BEIDOU-3 M7 (C29)" - BEIDOU_3_M8__C30_ = "BEIDOU-3 M8 (C30)" - IRNSS_1_I = "IRNSS-1I" - COSMOS_2527__756_ = "COSMOS 2527 (756)" - BEIDOU_IGSO_7__C16_ = "BEIDOU IGSO-7 (C16)" - GSAT0221__PRN_E15_ = "GSAT0221 (PRN E15)" - GSAT0222__PRN_E33_ = "GSAT0222 (PRN E33)" - GSAT0219__PRN_E36_ = "GSAT0219 (PRN E36)" - GSAT0220__PRN_E13_ = "GSAT0220 (PRN E13)" - BEIDOU_3_M9__C23_ = "BEIDOU-3 M9 (C23)" - BEIDOU_3_M10__C24_ = "BEIDOU-3 M10 (C24)" - BEIDOU_3_M11__C25_ = "BEIDOU-3 M11 (C25)" - BEIDOU_3_M12__C26_ = "BEIDOU-3 M12 (C26)" - BEIDOU_3_M13__C32_ = "BEIDOU-3 M13 (C32)" - BEIDOU_3_M14__C33_ = "BEIDOU-3 M14 (C33)" - BEIDOU_3_M15__C34_ = "BEIDOU-3 M15 (C34)" - BEIDOU_3_M16__C35_ = "BEIDOU-3 M16 (C35)" - BEIDOU_3_G1__C59_ = "BEIDOU-3 G1 (C59)" - COSMOS_2529__757_ = "COSMOS 2529 (757)" - BEIDOU_3_M17__C36_ = "BEIDOU-3 M17 (C36)" - BEIDOU_3_M18__C37_ = "BEIDOU-3 M18 (C37)" - GPS_BIII_1___PRN_04_ = "GPS BIII-1 (PRN 04)" - BEIDOU_3_IGSO_1__C38_ = "BEIDOU-3 IGSO-1 (C38)" - BEIDOU_2_G8 = "BEIDOU-2 G8" - COSMOS_2534__758_ = "COSMOS 2534 (758)" - BEIDOU_3_IGSO_2__C39_ = "BEIDOU-3 IGSO-2 (C39)" - GPS_BIII_2___PRN_18_ = "GPS BIII-2 (PRN 18)" - BEIDOU_3_M23__C45_ = "BEIDOU-3 M23 (C45)" - BEIDOU_3_M24__C46_ = "BEIDOU-3 M24 (C46)" - BEIDOU_3_IGSO_3 = "BEIDOU-3 IGSO-3" - BEIDOU_3_M21 = "BEIDOU-3 M21" - BEIDOU_3_M22 = "BEIDOU-3 M22" - COSMOS_2544__759_ = "COSMOS 2544 (759)" - BEIDOU_3_M19 = "BEIDOU-3 M19" - BEIDOU_3_M20 = "BEIDOU-3 M20" - BEIDOU_3_G2 = "BEIDOU-3 G2" - COSMOS_2545__760_ = "COSMOS 2545 (760)" - BEIDOU_3_G3 = "BEIDOU-3 G3" - GPS_BIII_3___PRN_23_ = "GPS BIII-3 (PRN 23)" - GPS_BIII_4___PRN_14_ = "GPS BIII-4 (PRN 14)" - - -class ArtificialSatellitesTaxonomySpaceEarthScienceEntry(str, Enum): - HST = "HST" - POLAR = "POLAR" - SWAS = "SWAS" - CXO = "CXO" - XMM_NEWTON = "XMM-NEWTON" - TERRA = "TERRA" - CLUSTER_II_FM7__SAMBA_ = "CLUSTER II-FM7 (SAMBA)" - CLUSTER_II_FM6__SALSA_ = "CLUSTER II-FM6 (SALSA)" - CLUSTER_II_FM5__RUMBA_ = "CLUSTER II-FM5 (RUMBA)" - CLUSTER_II_FM8__TANGO_ = "CLUSTER II-FM8 (TANGO)" - ODIN = "ODIN" - TIMED = "TIMED" - RHESSI = "RHESSI" - INTEGRAL = "INTEGRAL" - CORIOLIS = "CORIOLIS" - SORCE = "SORCE" - MOST = "MOST" - SCISAT_1 = "SCISAT 1" - SWIFT = "SWIFT" - CLOUDSAT = "CLOUDSAT" - CALIPSO = "CALIPSO" - HINODE__SOLAR_B_ = "HINODE (SOLAR-B)" - SJ_6_C = "SJ-6C" - SJ_6_D = "SJ-6D" - AGILE = "AGILE" - AIM = "AIM" - FGRST__GLAST_ = "FGRST (GLAST)" - WISE = "WISE" - SDO = "SDO" - CRYOSAT_2 = "CRYOSAT 2" - X_SAT = "X-SAT" - GCOM_W1__SHIZUKU_ = "GCOM-W1 (SHIZUKU)" - NUSTAR = "NUSTAR" - NEOSSAT = "NEOSSAT" - BRITE_AUSTRIA = "BRITE-AUSTRIA" - IRIS = "IRIS" - HISAKI__SPRINT_A_ = "HISAKI (SPRINT-A)" - CASSIOPE = "CASSIOPE" - STSAT_3 = "STSAT-3" - SWARM_B = "SWARM B" - SWARM_A = "SWARM A" - SWARM_C = "SWARM C" - BRITE_CA1__TORONTO_ = "BRITE-CA1 (TORONTO)" - OCO_2 = "OCO 2" - BRITE_PL2__HEWELIUSZ_ = "BRITE-PL2 (HEWELIUSZ)" - RESURS_P2 = "RESURS P2" - MMS_1 = "MMS 1" - MMS_2 = "MMS 2" - MMS_3 = "MMS 3" - MMS_4 = "MMS 4" - ASTROSAT = "ASTROSAT" - DAMPE = "DAMPE" - PISAT = "PISAT" - HXMT__HUIYAN_ = "HXMT (HUIYAN)" - FLYING_LAPTOP = "FLYING LAPTOP" - PICSAT = "PICSAT" - ZHANGZHENG_1__CSES_ = "ZHANGZHENG-1 (CSES)" - ICON = "ICON" - SALSAT = "SALSAT" - IXPE = "IXPE" - - -class ArtificialSatellitesTaxonomyGeodeticEntry(str, Enum): - STARLETTE = "STARLETTE" - LAGEOS_1 = "LAGEOS 1" - AJISAI__EGS_ = "AJISAI (EGS)" - COSMOS_1989__ETALON_1_ = "COSMOS 1989 (ETALON 1)" - COSMOS_2024__ETALON_2_ = "COSMOS 2024 (ETALON 2)" - LAGEOS_2 = "LAGEOS 2" - STELLA = "STELLA" - LARES = "LARES" - - -class ArtificialSatellitesTaxonomyEngineeringEntry(str, Enum): - PROBA_1 = "PROBA-1" - BIRD_2 = "BIRD 2" - CUTE_1__CO_55_ = "CUTE-1 (CO-55)" - CUBESAT_XI_IV__CO_57_ = "CUBESAT XI-IV (CO-57)" - GENESIS_1 = "GENESIS 1" - FALCONSAT_3 = "FALCONSAT-3" - GENESIS_2 = "GENESIS 2" - APRIZESAT_4 = "APRIZESAT 4" - APRIZESAT_3 = "APRIZESAT 3" - PROBA_2 = "PROBA-2" - APRIZESAT_5 = "APRIZESAT 5" - APRIZESAT_6 = "APRIZESAT 6" - TET_1 = "TET-1" - PROBA_V = "PROBA-V" - STPSAT_3 = "STPSAT-3" - APRIZESAT_7 = "APRIZESAT 7" - APRIZESAT_8 = "APRIZESAT 8" - BUGSAT_1__TITA_ = "BUGSAT-1 (TITA)" - SAUDISAT_4 = "SAUDISAT 4" - APRIZESAT_9 = "APRIZESAT 9" - APRIZESAT_10 = "APRIZESAT 10" - TDS_1 = "TDS 1" - TIANTUO_2 = "TIANTUO 2" - TECHNOSAT = "TECHNOSAT" - FLYING_LAPTOP = "FLYING LAPTOP" - HAWK_A = "HAWK-A" - HAWK_B = "HAWK-B" - HAWK_C = "HAWK-C" - - -class ArtificialSatellitesTaxonomyEducationEntry(str, Enum): - SALSAT = "SALSAT" - SAUDISAT_1_C = "SAUDISAT 1C" - SAUDISAT_2 = "SAUDISAT 2" - SAUDISAT_3 = "SAUDISAT 3" - PISAT = "PISAT" - FLYING_LAPTOP = "FLYING LAPTOP" - - -class ArtificialSatellitesTaxonomy(BaseModel): - """Model for the Artificial satellites taxonomy taxonomy.""" - - namespace: str = "artificial-satellites" - description: str = """This taxonomy was designed to describe artificial satellites""" - version: int = 1 - exclusive: bool = False - predicates: List[ArtificialSatellitesTaxonomyPredicate] = [] - meteorological_and_earth_observation_entries: List[ - ArtificialSatellitesTaxonomyMeteorologicalAndEarthObservationEntry - ] = [] - indian_space_research_entries: List[ArtificialSatellitesTaxonomyIndianSpaceResearchEntry] = [] - geo_entries: List[ArtificialSatellitesTaxonomyGeoEntry] = [] - tracking_entries: List[ArtificialSatellitesTaxonomyTrackingEntry] = [] - search___rescue_entries: List[ArtificialSatellitesTaxonomySearchRescueEntry] = [] - earth_ressources_entries: List[ArtificialSatellitesTaxonomyEarthRessourcesEntry] = [] - disaster_monitoring_entries: List[ArtificialSatellitesTaxonomyDisasterMonitoringEntry] = [] - gnss_entries: List[ArtificialSatellitesTaxonomyGnssEntry] = [] - space___earth_science_entries: List[ArtificialSatellitesTaxonomySpaceEarthScienceEntry] = [] - geodetic_entries: List[ArtificialSatellitesTaxonomyGeodeticEntry] = [] - engineering_entries: List[ArtificialSatellitesTaxonomyEngineeringEntry] = [] - education_entries: List[ArtificialSatellitesTaxonomyEducationEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/aviation.py b/src/openmisp/models/taxonomies/aviation.py deleted file mode 100644 index 622e77f..0000000 --- a/src/openmisp/models/taxonomies/aviation.py +++ /dev/null @@ -1,125 +0,0 @@ -"""Taxonomy model for aviation.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class AviationTaxonomyPredicate(str, Enum): - TARGET = "target" - TARGET_SYSTEMS = "target-systems" - TARGET_SUB_SYSTEMS = "target-sub-systems" - IMPACT = "impact" - LIKELIHOOD = "likelihood" - CRITICALITY = "criticality" - CERTAINTY = "certainty" - - -class AviationTaxonomyTargetEntry(str, Enum): - AIRLINE = "airline" - AIRSPACE_USERS = "airspace users" - AIRPORT = "airport" - ANSP = "ansp" - INTERNATIONAL_ASSOCIATION = "international-association" - CAA = "caa" - MANUFACTURER = "manufacturer" - SERVICE_PROVIDER = "service-provider" - NETWORK_MANAGER = "network-manager" - MILITARY = "military" - - -class AviationTaxonomyTargetSystemsEntry(str, Enum): - ATM = "ATM" - AIS = "AIS" - MET = "MET" - SAR = "SAR" - CNS = "CNS" - AIRPORT_MANAGEMENT_SYSTEMS = "airport-management-systems" - AIRPORT_ONLINE_SERVICES = "airport-online-services" - AIRPORT_FIDS_SYSTEMS = "airport-fids-systems" - AIRLINE_MANAGEMENT_SYSTEMS = "airline-management-systems" - AIRLINE_ONLINE_SERVICES = "airline-online-services" - - -class AviationTaxonomyTargetSubSystemsEntry(str, Enum): - ATM_NEW_PENS = "ATM:NewPENS" - ATM_SWIM = "ATM:SWIM" - ATM_ATS_ATC = "ATM:ATS:ATC" - ATM_ATS_FIS = "ATM:ATS:FIS" - ATM_ATS_ALRS = "ATM:ATS:ALRS" - ATM_ATS_ATFM = "ATM:ATS:ATFM" - ATM_ATS_ASM = "ATM:ATS:ASM" - CNS_COM_GROUND_GROUND = "CNS:COM:Ground-Ground" - CNS_COM_GROUND_AIR = "CNS:COM:Ground-Air" - CNS_COM_AIR_AIR = "CNS:COM:Air-Air" - CNS_COM_ASTERIX = "CNS:COM:Asterix" - CNS_COM_VDL = "CNS:COM:VDL" - CNS_SUR_ADS_B = "CNS:SUR:ADS-B" - CNS_SUR_ADS_C = "CNS:SUR:ADS-C" - CNS_SUR_RADAR = "CNS:SUR:Radar" - CNS_SUR_PR = "CNS:SUR:PR" - CNS_SUR_SSR = "CNS:SUR:SSR" - CNS_NAV_GNSS = "CNS:Nav:GNSS" - CNS_NAV_GPS = "CNS:Nav:GPS" - CNS_NAV_GLONASS = "CNS:Nav:GLONASS" - CNS_NAV_ILS = "CNS:Nav:ILS" - CNS_NAV_GLS = "CNS:Nav:GLS" - - -class AviationTaxonomyImpactEntry(str, Enum): - TRIVIAL = "trivial" - MINOR = "minor" - MODERATE = "moderate" - MAJOR = "major" - EXTREME = "extreme" - - -class AviationTaxonomyLikelihoodEntry(str, Enum): - ALMOST_NO_CHANCE = "almost-no-chance" - VERY_UNLIKELY = "very-unlikely" - UNLIKELY = "unlikely" - ROUGHLY_EVEN_CHANCE = "roughly-even-chance" - LIKELY = "likely" - VERY_LIKELY = "very-likely" - ALMOST_CERTAIN = "almost-certain" - - -class AviationTaxonomyCriticalityEntry(str, Enum): - SAFETY_CRITICAL = "safety-critical" - MISSION_CRITICAL = "mission-critical" - BUSINESS_CRITICAL = "business-critical" - - -class AviationTaxonomyCertaintyEntry(str, Enum): - T_100 = "100" - T_93 = "93" - T_75 = "75" - T_50 = "50" - T_30 = "30" - T_7 = "7" - T_0 = "0" - - -class AviationTaxonomy(BaseModel): - """Model for the aviation taxonomy.""" - - namespace: str = "aviation" - description: str = """A taxonomy describing security threats or incidents against the aviation sector.""" - version: int = 1 - exclusive: bool = False - predicates: List[AviationTaxonomyPredicate] = [] - target_entries: List[AviationTaxonomyTargetEntry] = [] - target_systems_entries: List[AviationTaxonomyTargetSystemsEntry] = [] - target_sub_systems_entries: List[AviationTaxonomyTargetSubSystemsEntry] = [] - impact_entries: List[AviationTaxonomyImpactEntry] = [] - likelihood_entries: List[AviationTaxonomyLikelihoodEntry] = [] - criticality_entries: List[AviationTaxonomyCriticalityEntry] = [] - certainty_entries: List[AviationTaxonomyCertaintyEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/binary_class.py b/src/openmisp/models/taxonomies/binary_class.py deleted file mode 100644 index ae7308e..0000000 --- a/src/openmisp/models/taxonomies/binary_class.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Taxonomy model for binary-class.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class BinaryClassTaxonomyPredicate(str, Enum): - TYPE = "type" - - -class BinaryClassTaxonomyTypeEntry(str, Enum): - GOOD = "good" - MALICIOUS = "malicious" - UNKNOWN = "unknown" - - -class BinaryClassTaxonomy(BaseModel): - """Model for the binary-class taxonomy.""" - - namespace: str = "binary-class" - description: str = """Custom taxonomy for types of binary file.""" - version: int = 2 - exclusive: bool = True - predicates: List[BinaryClassTaxonomyPredicate] = [] - type_entries: List[BinaryClassTaxonomyTypeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cccs.py b/src/openmisp/models/taxonomies/cccs.py deleted file mode 100644 index bfe475e..0000000 --- a/src/openmisp/models/taxonomies/cccs.py +++ /dev/null @@ -1,230 +0,0 @@ -"""Taxonomy model for CCCS.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CccsTaxonomyPredicate(str, Enum): - EVENT = "event" - DISCLOSURE_TYPE = "disclosure-type" - DOMAIN_CATEGORY = "domain-category" - EMAIL_TYPE = "email-type" - EXPLOITATION_TECHNIQUE = "exploitation-technique" - IP_CATEGORY = "ip-category" - MALICIOUSNESS = "maliciousness" - MALWARE_CATEGORY = "malware-category" - MISUSAGE_TYPE = "misusage-type" - MITIGATION_TYPE = "mitigation-type" - ORIGIN = "origin" - ORIGINATING_ORGANIZATION = "originating-organization" - SCAN_TYPE = "scan-type" - SEVERITY = "severity" - THREAT_VECTOR = "threat-vector" - - -class CccsTaxonomyEventEntry(str, Enum): - BEACON = "beacon" - BROWSER_BASED_EXPLOITATION = "browser-based-exploitation" - DOS = "dos" - EMAIL = "email" - EXFILTRATION = "exfiltration" - GENERIC_EVENT = "generic-event" - IMPROPER_USAGE = "improper-usage" - MALWARE_ARTIFACTS = "malware-artifacts" - MALWARE_DOWNLOAD = "malware-download" - PHISHING = "phishing" - REMOTE_ACCESS = "remote-access" - REMOTE_EXPLOITATION = "remote-exploitation" - SCAN = "scan" - SCRAPING = "scraping" - TRAFFIC_INTERCEPTION = "traffic-interception" - - -class CccsTaxonomyDisclosureTypeEntry(str, Enum): - GOC_CREDENTIAL_DISCLOSURE = "goc-credential-disclosure" - PERSONAL_CREDENTIAL_DISCLOSURE = "personal-credential-disclosure" - PERSONAL_INFORMATION_DISCLOSURE = "personal-information-disclosure" - NONE = "none" - OTHER = "other" - - -class CccsTaxonomyDomainCategoryEntry(str, Enum): - C2 = "c2" - PROXY = "proxy" - SEEDED = "seeded" - WATERINGHOLE = "wateringhole" - CLOUD_INFRASTRUCTURE = "cloud-infrastructure" - NAME_SERVER = "name-server" - SINKHOLED = "sinkholed" - - -class CccsTaxonomyEmailTypeEntry(str, Enum): - SPAM = "spam" - CONTENT__DELIVERY__ATTACK = r"content\-delivery\-attack" - PHISHING = "phishing" - BAITING = "baiting" - UNKNOWN = "unknown" - - -class CccsTaxonomyExploitationTechniqueEntry(str, Enum): - SQL_INJECTION = "sql-injection" - DIRECTORY_TRAVERSAL = "directory-traversal" - REMOTE_FILE_INCLUSION = "remote-file-inclusion" - CODE_INJECTION = "code-injection" - OTHER = "other" - - -class CccsTaxonomyIpCategoryEntry(str, Enum): - C2 = "c2" - PROXY = "proxy" - SEEDED = "seeded" - WATERINGHOLE = "wateringhole" - CLOUD_INFRASTRUCTURE = "cloud-infrastructure" - NETWORK_GATEWAY = "network-gateway" - SERVER = "server" - DNS_SERVER = "dns-server" - SMTP_SERVER = "smtp-server" - WEB_SERVER = "web-server" - FILE_SERVER = "file-server" - DATABASE_SERVER = "database-server" - SECURITY_APPLIANCE = "security-appliance" - TOR_NODE = "tor-node" - SINKHOLE = "sinkhole" - ROUTER = "router" - - -class CccsTaxonomyMaliciousnessEntry(str, Enum): - NON_MALICIOUS = "non-malicious" - SUSPICIOUS = "suspicious" - MALICIOUS = "malicious" - - -class CccsTaxonomyMalwareCategoryEntry(str, Enum): - EXPLOIT_KIT = "exploit-kit" - FIRST_STAGE = "first-stage" - SECOND_STAGE = "second-stage" - SCANNER = "scanner" - DOWNLOADER = "downloader" - PROXY = "proxy" - REVERSE_PROXY = "reverse-proxy" - WEBSHELL = "webshell" - RANSOMWARE = "ransomware" - ADWARE = "adware" - SPYWARE = "spyware" - VIRUS = "virus" - WORM = "worm" - TROJAN = "trojan" - ROOTKIT = "rootkit" - KEYLOGGER = "keylogger" - BROWSER_HIJACKER = "browser-hijacker" - - -class CccsTaxonomyMisusageTypeEntry(str, Enum): - UNAUTHORIZED_USAGE = "unauthorized-usage" - MISCONFIGURATION = "misconfiguration" - LACK_OF_ENCRYPTION = "lack-of-encryption" - VULNERABLE_SOFTWARE = "vulnerable-software" - PRIVILEGE_ESCALATION = "privilege-escalation" - OTHER = "other" - - -class CccsTaxonomyMitigationTypeEntry(str, Enum): - ANTI_VIRUS = "anti-virus" - CONTENT_FILTERING_SYSTEM = "content-filtering-system" - DYNAMIC_DEFENSE = "dynamic-defense" - INSUFFICIENT_PRIVILEGES = "insufficient-privileges" - IDS = "ids" - SINK_HOLE___TAKE_DOWN_BY_THIRD_PARTY = "sink-hole-/-take-down-by-third-party" - ISP = "isp" - INVALID_CREDENTIALS = "invalid-credentials" - NOT_VULNERABLE = "not-vulnerable" - OTHER = "other" - UNKNOWN = "unknown" - USER = "user" - - -class CccsTaxonomyOriginEntry(str, Enum): - SUBSCRIBER = "subscriber" - INTERNET = "internet" - - -class CccsTaxonomyOriginatingOrganizationEntry(str, Enum): - CSE = "cse" - NSA = "nsa" - GCHQ = "gchq" - ASD = "asd" - GCSB = "gcsb" - OPEN_SOURCE = "open-source" - T_3RD_PARTY = "3rd-party" - OTHER = "other" - - -class CccsTaxonomyScanTypeEntry(str, Enum): - OPEN_PORT = "open-port" - ICMP = "icmp" - OS_FINGERPRINTING = "os-fingerprinting" - WEB = "web" - OTHER = "other" - - -class CccsTaxonomySeverityEntry(str, Enum): - RECONNAISSANCE = "reconnaissance" - ATTEMPTED_COMPROMISE = "attempted-compromise" - EXPLOITED = "exploited" - - -class CccsTaxonomyThreatVectorEntry(str, Enum): - APPLICATION_CMS = "application:cms" - APPLICATION_BASH = "application:bash" - APPLICATION_ACROBAT_READER = "application:acrobat-reader" - APPLICATION_MS_EXCEL = "application:ms-excel" - APPLICATION_OTHER = "application:other" - LANGUAGE_SQL = "language:sql" - LANGUAGE_PHP = "language:php" - LANGUAGE_JAVASCRIPT = "language:javascript" - LANGUAGE_OTHER = "language:other" - PROTOCOL_DNS = "protocol:dns" - PROTOCOL_FTP = "protocol:ftp" - PROTOCOL_HTTP = "protocol:http" - PROTOCOL_ICMP = "protocol:icmp" - PROTOCOL_NTP = "protocol:ntp" - PROTOCOL_RDP = "protocol:rdp" - PROTOCOL_SMB = "protocol:smb" - PROTOCOL_SNMP = "protocol:snmp" - PROTOCOL_SSL = "protocol:ssl" - PROTOCOL_TELNET = "protocol:telnet" - PROTOCOL_SIP = "protocol:sip" - - -class CccsTaxonomy(BaseModel): - """Model for the CCCS taxonomy.""" - - namespace: str = "cccs" - description: str = """Internal taxonomy for CCCS.""" - version: int = 2 - exclusive: bool = False - predicates: List[CccsTaxonomyPredicate] = [] - event_entries: List[CccsTaxonomyEventEntry] = [] - disclosure_type_entries: List[CccsTaxonomyDisclosureTypeEntry] = [] - domain_category_entries: List[CccsTaxonomyDomainCategoryEntry] = [] - email_type_entries: List[CccsTaxonomyEmailTypeEntry] = [] - exploitation_technique_entries: List[CccsTaxonomyExploitationTechniqueEntry] = [] - ip_category_entries: List[CccsTaxonomyIpCategoryEntry] = [] - maliciousness_entries: List[CccsTaxonomyMaliciousnessEntry] = [] - malware_category_entries: List[CccsTaxonomyMalwareCategoryEntry] = [] - misusage_type_entries: List[CccsTaxonomyMisusageTypeEntry] = [] - mitigation_type_entries: List[CccsTaxonomyMitigationTypeEntry] = [] - origin_entries: List[CccsTaxonomyOriginEntry] = [] - originating_organization_entries: List[CccsTaxonomyOriginatingOrganizationEntry] = [] - scan_type_entries: List[CccsTaxonomyScanTypeEntry] = [] - severity_entries: List[CccsTaxonomySeverityEntry] = [] - threat_vector_entries: List[CccsTaxonomyThreatVectorEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cert_xlm.py b/src/openmisp/models/taxonomies/cert_xlm.py deleted file mode 100644 index 7c57285..0000000 --- a/src/openmisp/models/taxonomies/cert_xlm.py +++ /dev/null @@ -1,118 +0,0 @@ -"""Taxonomy model for CERT-XLM.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CertXlmTaxonomyPredicate(str, Enum): - ABUSIVE_CONTENT = "abusive-content" - MALICIOUS_CODE = "malicious-code" - INFORMATION_GATHERING = "information-gathering" - INTRUSION_ATTEMPTS = "intrusion-attempts" - INTRUSION = "intrusion" - AVAILABILITY = "availability" - INFORMATION_CONTENT_SECURITY = "information-content-security" - FRAUD = "fraud" - VULNERABLE = "vulnerable" - CONFORMITY = "conformity" - OTHER = "other" - TEST = "test" - - -class CertXlmTaxonomyAbusiveContentEntry(str, Enum): - SPAM = "spam" - HARMFUL_SPEECH = "harmful-speech" - VIOLENCE = "violence" - - -class CertXlmTaxonomyMaliciousCodeEntry(str, Enum): - VIRUS = "virus" - WORM = "worm" - RANSOMWARE = "ransomware" - TROJAN_MALWARE = "trojan-malware" - SPYWARE_RAT = "spyware-rat" - DIALER = "dialer" - ROOTKIT = "rootkit" - - -class CertXlmTaxonomyInformationGatheringEntry(str, Enum): - SCANNER = "scanner" - SNIFFING = "sniffing" - SOCIAL_ENGINEERING = "social-engineering" - - -class CertXlmTaxonomyIntrusionAttemptsEntry(str, Enum): - EXPLOIT_KNOWN_VULN = "exploit-known-vuln" - LOGIN_ATTEMPTS = "login-attempts" - NEW_ATTACK_SIGNATURE = "new-attack-signature" - - -class CertXlmTaxonomyIntrusionEntry(str, Enum): - PRIVILEGED_ACCOUNT_COMPROMISE = "privileged-account-compromise" - UNPRIVILEGED_ACCOUNT_COMPROMISE = "unprivileged-account-compromise" - BOTNET_MEMBER = "botnet-member" - DOMAIN_COMPROMISE = "domain-compromise" - APPLICATION_COMPROMISE = "application-compromise" - - -class CertXlmTaxonomyAvailabilityEntry(str, Enum): - DOS = "dos" - DDOS = "ddos" - SABOTAGE = "sabotage" - OUTAGE = "outage" - - -class CertXlmTaxonomyInformationContentSecurityEntry(str, Enum): - UNAUTHORISED_INFORMATION_ACCESS = "Unauthorised-information-access" - UNAUTHORISED_INFORMATION_MODIFICATION = "Unauthorised-information-modification" - - -class CertXlmTaxonomyFraudEntry(str, Enum): - COPYRIGHT = "copyright" - MASQUERADE = "masquerade" - PHISHING = "phishing" - - -class CertXlmTaxonomyVulnerableEntry(str, Enum): - VULNERABLE_SERVICE = "vulnerable-service" - - -class CertXlmTaxonomyConformityEntry(str, Enum): - REGULATOR = "regulator" - STANDARD = "standard" - SECURITY_POLICY = "security-policy" - OTHER_CONFORMITY = "other-conformity" - - -class CertXlmTaxonomyOtherEntry(str, Enum): - OTHER = "other" - - -class CertXlmTaxonomy(BaseModel): - """Model for the CERT-XLM taxonomy.""" - - namespace: str = "CERT-XLM" - description: str = """CERT-XLM Security Incident Classification.""" - version: int = 2 - exclusive: bool = False - predicates: List[CertXlmTaxonomyPredicate] = [] - abusive_content_entries: List[CertXlmTaxonomyAbusiveContentEntry] = [] - malicious_code_entries: List[CertXlmTaxonomyMaliciousCodeEntry] = [] - information_gathering_entries: List[CertXlmTaxonomyInformationGatheringEntry] = [] - intrusion_attempts_entries: List[CertXlmTaxonomyIntrusionAttemptsEntry] = [] - intrusion_entries: List[CertXlmTaxonomyIntrusionEntry] = [] - availability_entries: List[CertXlmTaxonomyAvailabilityEntry] = [] - information_content_security_entries: List[CertXlmTaxonomyInformationContentSecurityEntry] = [] - fraud_entries: List[CertXlmTaxonomyFraudEntry] = [] - vulnerable_entries: List[CertXlmTaxonomyVulnerableEntry] = [] - conformity_entries: List[CertXlmTaxonomyConformityEntry] = [] - other_entries: List[CertXlmTaxonomyOtherEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/circl.py b/src/openmisp/models/taxonomies/circl.py deleted file mode 100644 index c898f24..0000000 --- a/src/openmisp/models/taxonomies/circl.py +++ /dev/null @@ -1,71 +0,0 @@ -"""Taxonomy model for circl.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CirclTaxonomyPredicate(str, Enum): - INCIDENT_CLASSIFICATION = "incident-classification" - TOPIC = "topic" - SIGNIFICANT = "significant" - - -class CirclTaxonomyIncidentClassificationEntry(str, Enum): - SPAM = "spam" - SYSTEM_COMPROMISE = "system-compromise" - SABOTAGE = "sabotage" - PRIVACY_VIOLATION = "privacy-violation" - SCAN = "scan" - DENIAL_OF_SERVICE = "denial-of-service" - COPYRIGHT_ISSUE = "copyright-issue" - PHISHING = "phishing" - WHALING = "whaling" - SMISHING = "smishing" - MALWARE = "malware" - XSS = "XSS" - VULNERABILITY = "vulnerability" - FASTFLUX = "fastflux" - DOMAIN_FRONTING = "domain-fronting" - SQL_INJECTION = "sql-injection" - INFORMATION_LEAK = "information-leak" - SCAM = "scam" - CRYPTOJACKING = "cryptojacking" - LOCKER = "locker" - SCREENLOCKER = "screenlocker" - WIPER = "wiper" - RANSOMWARE = "ransomware" - SEXTORTION = "sextortion" - SOCIAL_ENGINEERING = "social-engineering" - GDPR_VIOLATION = "gdpr-violation" - COVID_19 = "covid-19" - - -class CirclTaxonomyTopicEntry(str, Enum): - FINANCE = "finance" - ICT = "ict" - INDIVIDUAL = "individual" - INDUSTRY = "industry" - MEDICAL = "medical" - SERVICES = "services" - UNDEFINED = "undefined" - - -class CirclTaxonomy(BaseModel): - """Model for the circl taxonomy.""" - - namespace: str = "circl" - description: str = """CIRCL Taxonomy - Schemes of Classification in Incident Response and Detection.""" - version: int = 6 - exclusive: bool = False - predicates: List[CirclTaxonomyPredicate] = [] - incident_classification_entries: List[CirclTaxonomyIncidentClassificationEntry] = [] - topic_entries: List[CirclTaxonomyTopicEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cnsd.py b/src/openmisp/models/taxonomies/cnsd.py deleted file mode 100644 index 437b075..0000000 --- a/src/openmisp/models/taxonomies/cnsd.py +++ /dev/null @@ -1,97 +0,0 @@ -"""Taxonomy model for CNSD Taxonomia de Incidentes de Seguridad Digital.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CnsdTaxonomyPredicate(str, Enum): - CONTENIDO_ABUSIVO = "Contenido abusivo" - DISPONIBILIDAD = "Disponibilidad" - FRAUDE = "Fraude" - FUGA_DE_INFORMACI_N = "Fuga de información" - INTENTOS_DE_INTRUSI_N = "Intentos de intrusión" - INTRUSI_N = "Intrusión" - MALWARE = "Malware" - RECOPILACI_N_DE_INFORMACI_N = "Recopilación de información" - OTROS = "Otros" - - -class CnsdTaxonomyContenidoAbusivoEntry(str, Enum): - SPAM = "spam" - COPYRIGHT = "copyright" - EXPLOTACION_SEXUAL_INFANTIL = "explotacion sexual infantil" - - -class CnsdTaxonomyDisponibilidadEntry(str, Enum): - DO_S_DDO_S = "DoS/DDoS" - SABOTAJE = "sabotaje" - - -class CnsdTaxonomyFraudeEntry(str, Enum): - MAL_USO = "mal-uso" - REPRES_FALSA = "repres-falsa" - - -class CnsdTaxonomyFugaDeInformaciNEntry(str, Enum): - ACC_NO_AUTORIZADO = "acc-no-autorizado" - MODI_ELIM_NO_AUTORIZADA = "modi-elim-no-autorizada" - - -class CnsdTaxonomyIntentosDeIntrusiNEntry(str, Enum): - EXPLOT_VULNERAB = "explot-vulnerab" - INTENTO_INICIO_SESI_N = "intento-inicio-sesión" - - -class CnsdTaxonomyIntrusiNEntry(str, Enum): - EXPLOT_EXTRA_VULNERAB = "explot-extra-vulnerab" - COMPROMETER_CUENTA = "comprometer-cuenta" - - -class CnsdTaxonomyMalwareEntry(str, Enum): - INFECCI_N = "infección" - DISTRIBUCI_N = "distribución" - C_C = "c&c" - CONEXI_N_MALICIOSA = "conexión-maliciosa" - INDETERMINADO = "indeterminado" - - -class CnsdTaxonomyRecopilaciNDeInformaciNEntry(str, Enum): - SCANNING = "scanning" - SNIFFING = "sniffing" - PHISHING = "phishing" - - -class CnsdTaxonomyOtrosEntry(str, Enum): - INC_NO_LISTADO = "inc-no-listado" - INC_INDETER = "inc-indeter" - APT = "APT" - CIBERTERRORISMO = "ciberterrorismo" - DANOS_EN_ACTIVOS = "danos-en-activos" - - -class CnsdTaxonomy(BaseModel): - """Model for the CNSD Taxonomia de Incidentes de Seguridad Digital taxonomy.""" - - namespace: str = "cnsd" - description: str = """La presente taxonomia es la primera versión disponible para el Centro Nacional de Seguridad Digital del Perú.""" - version: int = 20220513 - exclusive: bool = False - predicates: List[CnsdTaxonomyPredicate] = [] - contenido_abusivo_entries: List[CnsdTaxonomyContenidoAbusivoEntry] = [] - disponibilidad_entries: List[CnsdTaxonomyDisponibilidadEntry] = [] - fraude_entries: List[CnsdTaxonomyFraudeEntry] = [] - fuga_de_informaci_n_entries: List[CnsdTaxonomyFugaDeInformaciNEntry] = [] - intentos_de_intrusi_n_entries: List[CnsdTaxonomyIntentosDeIntrusiNEntry] = [] - intrusi_n_entries: List[CnsdTaxonomyIntrusiNEntry] = [] - malware_entries: List[CnsdTaxonomyMalwareEntry] = [] - recopilaci_n_de_informaci_n_entries: List[CnsdTaxonomyRecopilaciNDeInformaciNEntry] = [] - otros_entries: List[CnsdTaxonomyOtrosEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/coa.py b/src/openmisp/models/taxonomies/coa.py deleted file mode 100644 index 459034e..0000000 --- a/src/openmisp/models/taxonomies/coa.py +++ /dev/null @@ -1,122 +0,0 @@ -"""Taxonomy model for coa.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CoaTaxonomyPredicate(str, Enum): - DISCOVER = "discover" - DETECT = "detect" - DENY = "deny" - DISRUPT = "disrupt" - DEGRADE = "degrade" - DECEIVE = "deceive" - DESTROY = "destroy" - - -class CoaTaxonomyDiscoverEntry(str, Enum): - PROXY = "proxy" - IDS = "ids" - FIREWALL = "firewall" - PCAP = "pcap" - REMOTE_ACCESS = "remote-access" - AUTHENTICATION = "authentication" - HONEYPOT = "honeypot" - SYSLOG = "syslog" - WEB = "web" - DATABASE = "database" - MAIL = "mail" - ANTIVIRUS = "antivirus" - MALWARE_COLLECTION = "malware-collection" - OTHER = "other" - UNSPECIFIED = "unspecified" - - -class CoaTaxonomyDetectEntry(str, Enum): - PROXY = "proxy" - NIDS = "nids" - HIDS = "hids" - OTHER = "other" - SYSLOG = "syslog" - FIREWALL = "firewall" - EMAIL = "email" - WEB = "web" - DATABASE = "database" - REMOTE_ACCESS = "remote-access" - MALWARE_COLLECTION = "malware-collection" - ANTIVIRUS = "antivirus" - UNSPECIFIED = "unspecified" - - -class CoaTaxonomyDenyEntry(str, Enum): - PROXY = "proxy" - FIREWALL = "firewall" - WAF = "waf" - EMAIL = "email" - CHROOT = "chroot" - REMOTE_ACCESS = "remote-access" - OTHER = "other" - UNSPECIFIED = "unspecified" - - -class CoaTaxonomyDisruptEntry(str, Enum): - NIPS = "nips" - HIPS = "hips" - OTHER = "other" - EMAIL = "email" - MEMORY_PROTECTION = "memory-protection" - SANDBOXING = "sandboxing" - ANTIVIRUS = "antivirus" - UNSPECIFIED = "unspecified" - - -class CoaTaxonomyDegradeEntry(str, Enum): - BANDWIDTH = "bandwidth" - TARPIT = "tarpit" - OTHER = "other" - EMAIL = "email" - UNSPECIFIED = "unspecified" - - -class CoaTaxonomyDeceiveEntry(str, Enum): - HONEYPOT = "honeypot" - DNS = "DNS" - OTHER = "other" - EMAIL = "email" - UNSPECIFIED = "unspecified" - - -class CoaTaxonomyDestroyEntry(str, Enum): - ARREST = "arrest" - SEIZE = "seize" - PHYSICAL = "physical" - DOS = "dos" - HACK_BACK = "hack-back" - OTHER = "other" - UNSPECIFIED = "unspecified" - - -class CoaTaxonomy(BaseModel): - """Model for the coa taxonomy.""" - - namespace: str = "coa" - description: str = """Course of action taken within organization to discover, detect, deny, disrupt, degrade, deceive and/or destroy an attack.""" - version: int = 2 - exclusive: bool = False - predicates: List[CoaTaxonomyPredicate] = [] - discover_entries: List[CoaTaxonomyDiscoverEntry] = [] - detect_entries: List[CoaTaxonomyDetectEntry] = [] - deny_entries: List[CoaTaxonomyDenyEntry] = [] - disrupt_entries: List[CoaTaxonomyDisruptEntry] = [] - degrade_entries: List[CoaTaxonomyDegradeEntry] = [] - deceive_entries: List[CoaTaxonomyDeceiveEntry] = [] - destroy_entries: List[CoaTaxonomyDestroyEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/collaborative_intelligence.py b/src/openmisp/models/taxonomies/collaborative_intelligence.py deleted file mode 100644 index b1ba9b6..0000000 --- a/src/openmisp/models/taxonomies/collaborative_intelligence.py +++ /dev/null @@ -1,45 +0,0 @@ -"""Taxonomy model for collaborative intelligence support language.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CollaborativeIntelligenceTaxonomyPredicate(str, Enum): - REQUEST = "request" - - -class CollaborativeIntelligenceTaxonomyRequestEntry(str, Enum): - SAMPLE = "sample" - EXTRACTED_MALWARE_CONFIG = "extracted-malware-config" - DEOBFUSCATED_SAMPLE = "deobfuscated-sample" - MORE_SAMPLES = "more-samples" - RELATED_SAMPLES = "related-samples" - STATIC_ANALYSIS = "static-analysis" - DETECTION_SIGNATURE = "detection-signature" - CONTEXT = "context" - ABUSE_CONTACT = "abuse-contact" - HISTORICAL_INFORMATION = "historical-information" - COMPLEMENTARY_VALIDATION = "complementary-validation" - TARGET_INFORMATION = "target-information" - REQUEST_ANALYSIS = "request-analysis" - MORE_INFORMATION = "more-information" - - -class CollaborativeIntelligenceTaxonomy(BaseModel): - """Model for the collaborative intelligence support language taxonomy.""" - - namespace: str = "collaborative-intelligence" - description: str = """Collaborative intelligence support language is a common language to support analysts to perform their analysis to get crowdsourced support when using threat intelligence sharing platform like MISP. The objective of this language is to advance collaborative analysis and to share earlier than later.""" - version: int = 3 - exclusive: bool = False - predicates: List[CollaborativeIntelligenceTaxonomyPredicate] = [] - request_entries: List[CollaborativeIntelligenceTaxonomyRequestEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/common_taxonomy.py b/src/openmisp/models/taxonomies/common_taxonomy.py deleted file mode 100644 index b91fe6d..0000000 --- a/src/openmisp/models/taxonomies/common_taxonomy.py +++ /dev/null @@ -1,93 +0,0 @@ -"""Taxonomy model for common-taxonomy.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CommonTaxonomyTaxonomyPredicate(str, Enum): - MALWARE = "malware" - AVAILABILITY = "availability" - INFORMATION_GATHERING = "information-gathering" - INTRUSION_ATTEMPT = "intrusion-attempt" - INTRUSION = "intrusion" - INFORMATION_SECURITY = "information-security" - FRAUD = "fraud" - ABUSIVE_CONTENT = "abusive-content" - OTHER = "other" - - -class CommonTaxonomyTaxonomyMalwareEntry(str, Enum): - INFECTION = "infection" - DISTRIBUTION = "distribution" - COMMAND_AND_CONTROL = "command-and-control" - MALICIOUS_CONNECTION = "malicious-connection" - - -class CommonTaxonomyTaxonomyAvailabilityEntry(str, Enum): - DOS_DDOS = "dos-ddos" - SABOTAGE = "sabotage" - - -class CommonTaxonomyTaxonomyInformationGatheringEntry(str, Enum): - SCANNING = "scanning" - SNIFFING = "sniffing" - PHISHING = "phishing" - - -class CommonTaxonomyTaxonomyIntrusionAttemptEntry(str, Enum): - VULNERABILITY_EXPLOITATION_ATTEMPT = "vulnerability-exploitation-attempt" - LOGIN_ATTEMPT = "login-attempt" - - -class CommonTaxonomyTaxonomyIntrusionEntry(str, Enum): - VULNERABILITY_EXPLOITATION = "vulnerability-exploitation" - ACCOUNT_COMPROMISE = "account-compromise" - - -class CommonTaxonomyTaxonomyInformationSecurityEntry(str, Enum): - UNAUTHORISED_ACCESS = "unauthorised-access" - UNAUTHORISED_MODIFICATION_OR_DELETION = "unauthorised-modification-or-deletion" - - -class CommonTaxonomyTaxonomyFraudEntry(str, Enum): - RESOURCES_MISUSE = "resources-misuse" - FALSE_REPRESENTATION = "false-representation" - - -class CommonTaxonomyTaxonomyAbusiveContentEntry(str, Enum): - SPAM = "spam" - COPYRIGHT = "copyright" - CSE_RACISM_VIOLENCE_INCITEMENT = "cse-racism-violence-incitement" - - -class CommonTaxonomyTaxonomyOtherEntry(str, Enum): - UNCLASSIFIED_INCIDENT = "unclassified-incident" - UNDETERMINED_INCIDENT = "undetermined-incident" - - -class CommonTaxonomyTaxonomy(BaseModel): - """Model for the common-taxonomy taxonomy.""" - - namespace: str = "common-taxonomy" - description: str = """Common Taxonomy for Law enforcement and CSIRTs""" - version: int = 3 - exclusive: bool = False - predicates: List[CommonTaxonomyTaxonomyPredicate] = [] - malware_entries: List[CommonTaxonomyTaxonomyMalwareEntry] = [] - availability_entries: List[CommonTaxonomyTaxonomyAvailabilityEntry] = [] - information_gathering_entries: List[CommonTaxonomyTaxonomyInformationGatheringEntry] = [] - intrusion_attempt_entries: List[CommonTaxonomyTaxonomyIntrusionAttemptEntry] = [] - intrusion_entries: List[CommonTaxonomyTaxonomyIntrusionEntry] = [] - information_security_entries: List[CommonTaxonomyTaxonomyInformationSecurityEntry] = [] - fraud_entries: List[CommonTaxonomyTaxonomyFraudEntry] = [] - abusive_content_entries: List[CommonTaxonomyTaxonomyAbusiveContentEntry] = [] - other_entries: List[CommonTaxonomyTaxonomyOtherEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/copine_scale.py b/src/openmisp/models/taxonomies/copine_scale.py deleted file mode 100644 index ef6b2c7..0000000 --- a/src/openmisp/models/taxonomies/copine_scale.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Taxonomy model for COPINE Scale.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CopineScaleTaxonomyPredicate(str, Enum): - LEVEL_10 = "level-10" - LEVEL_9 = "level-9" - LEVEL_8 = "level-8" - LEVEL_7 = "level-7" - LEVEL_6 = "level-6" - LEVEL_5 = "level-5" - LEVEL_4 = "level-4" - LEVEL_3 = "level-3" - LEVEL_2 = "level-2" - LEVEL_1 = "level-1" - - -class CopineScaleTaxonomy(BaseModel): - """Model for the COPINE Scale taxonomy.""" - - namespace: str = "copine-scale" - description: str = """The COPINE Scale is a rating system created in Ireland and used in the United Kingdom to categorise the severity of images of child sex abuse. The scale was developed by staff at the COPINE (Combating Paedophile Information Networks in Europe) project. The COPINE Project was founded in 1997, and is based in the Department of Applied Psychology, University College Cork, Ireland.""" - version: int = 3 - exclusive: bool = True - predicates: List[CopineScaleTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/course_of_action.py b/src/openmisp/models/taxonomies/course_of_action.py deleted file mode 100644 index 42100cb..0000000 --- a/src/openmisp/models/taxonomies/course_of_action.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Taxonomy model for Courses of Action.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CourseOfActionTaxonomyPredicate(str, Enum): - PASSIVE = "passive" - ACTIVE = "active" - - -class CourseOfActionTaxonomyPassiveEntry(str, Enum): - DISCOVER = "discover" - NODISCOVER = "nodiscover" - DETECT = "detect" - - -class CourseOfActionTaxonomyActiveEntry(str, Enum): - DENY = "deny" - DISRUPT = "disrupt" - DEGRADE = "degrade" - DECEIVE = "deceive" - DESTROY = "destroy" - - -class CourseOfActionTaxonomy(BaseModel): - """Model for the Courses of Action taxonomy.""" - - namespace: str = "course-of-action" - description: str = """A Course Of Action analysis considers six potential courses of action for the development of a cyber security capability.""" - version: int = 3 - exclusive: bool = False - predicates: List[CourseOfActionTaxonomyPredicate] = [] - passive_entries: List[CourseOfActionTaxonomyPassiveEntry] = [] - active_entries: List[CourseOfActionTaxonomyActiveEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/crowdsec.py b/src/openmisp/models/taxonomies/crowdsec.py deleted file mode 100644 index 3e1064a..0000000 --- a/src/openmisp/models/taxonomies/crowdsec.py +++ /dev/null @@ -1,95 +0,0 @@ -"""Taxonomy model for crowdsec.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CrowdsecTaxonomyPredicate(str, Enum): - BEHAVIOR = "behavior" - FALSE_POSITIVE = "false-positive" - CLASSIFICATION = "classification" - - -class CrowdsecTaxonomyBehaviorEntry(str, Enum): - DATABASE_BRUTEFORCE = "database-bruteforce" - FTP_BRUTEFORCE = "ftp-bruteforce" - GENERIC_EXPLOIT = "generic-exploit" - HTTP_BRUTEFORCE = "http-bruteforce" - HTTP_CRAWL = "http-crawl" - HTTP_EXPLOIT = "http-exploit" - HTTP_SCAN = "http-scan" - HTTP_SPAM = "http-spam" - IOT_BRUTEFORCE = "iot-bruteforce" - LDAP_BRUTEFORCE = "ldap-bruteforce" - POP3_IMAP_BRUTEFORCE = "pop3/imap-bruteforce" - SIP_BRUTEFORCE = "sip-bruteforce" - SMB_BRUTEFORCE = "smb-bruteforce" - SMTP_SPAM = "smtp-spam" - SSH_BRUTEFORCE = "ssh-bruteforce" - TCP_SCAN = "tcp-scan" - TELNET_BRUTEFORCE = "telnet-bruteforce" - VM_MANAGEMENT_BRUTEFORCE = "vm-management-bruteforce" - WINDOWS_BRUTEFORCE = "windows-bruteforce" - - -class CrowdsecTaxonomyFalsePositiveEntry(str, Enum): - CDN_CLOUDFLARE_EXIT_NODE = "cdn-cloudflare_exit_node" - CDN_EXIT_NODE = "cdn-exit_node" - IP_PRIVATE_RANGE = "ip-private_range" - MSP_SCANNER = "msp-scanner" - SEO_CRAWLER = "seo-crawler" - SEO_DUCKDUCKBOT = "seo-duckduckbot" - SEO_PINTEREST = "seo-pinterest" - - -class CrowdsecTaxonomyClassificationEntry(str, Enum): - COMMUNITY_BLOCKLIST = "community-blocklist" - PROFILE_INSECURE_SERVICES = "profile-insecure_services" - PROFILE_MANY_SERVICES = "profile-many_services" - PROXY_TOR = "proxy-tor" - PROXY_VPN = "proxy-vpn" - RANGE_DATA_CENTER = "range-data_center" - SCANNER_ALPHASTRIKE = "scanner-alphastrike" - SCANNER_BINARYEDGE = "scanner-binaryedge" - SCANNER_CENSYS = "scanner-censys" - SCANNER_CERT_SSI_GOUV_FR = "scanner-cert.ssi.gouv.fr" - SCANNER_CISA_DHS_GOV = "scanner-cisa.dhs.gov" - SCANNER_INTERNET_CENSUS = "scanner-internet-census" - SCANNER_LEAKIX = "scanner-leakix" - SCANNER_LEGIT = "scanner-legit" - SCANNER_SHADOWSERVER_ORG = "scanner-shadowserver.org" - SCANNER_SHODAN = "scanner-shodan" - SCANNER_STRETCHOID = "scanner-stretchoid" - PROFILE_FAKE_RDNS = "profile-fake_rdns" - PROFILE_NXDOMAIN = "profile-nxdomain" - PROFILE_ROUTER = "profile-router" - PROFILE_PROXY = "profile-proxy" - PROFILE_JUPITER_VPN = "profile-jupiter-vpn" - DEVICE_CYBEROAM = "device-cyberoam" - DEVICE_MICROTIK = "device-microtik" - DEVICE_ASUSWRT = "device-asuswrt" - DEVICE_HIKVISION = "device-hikvision" - DEVICE_IPCAM = "device-ipcam" - PROFILE_LIKELY_BOTNET = "profile-likely_botnet" - - -class CrowdsecTaxonomy(BaseModel): - """Model for the crowdsec taxonomy.""" - - namespace: str = "crowdsec" - description: str = """Crowdsec IP address classifications and behaviors taxonomy.""" - version: int = 1 - exclusive: bool = False - predicates: List[CrowdsecTaxonomyPredicate] = [] - behavior_entries: List[CrowdsecTaxonomyBehaviorEntry] = [] - false_positive_entries: List[CrowdsecTaxonomyFalsePositiveEntry] = [] - classification_entries: List[CrowdsecTaxonomyClassificationEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cryptocurrency_threat.py b/src/openmisp/models/taxonomies/cryptocurrency_threat.py deleted file mode 100644 index 9fb5e94..0000000 --- a/src/openmisp/models/taxonomies/cryptocurrency_threat.py +++ /dev/null @@ -1,38 +0,0 @@ -"""Taxonomy model for cryptocurrency-threat.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CryptocurrencyThreatTaxonomyPredicate(str, Enum): - SIM_SWAPPING = "SIM Swapping" - CRYPTO_DUSTING = "Crypto Dusting" - SANCTION_EVASION = "Sanction Evasion" - NEXT_GENERATION_CRYPTO_MIXERS = "Next-Generation Crypto Mixers" - SHADOW_MONEY_SERVICE_BUSINESSES = "Shadow Money Service Businesses" - DATACENTER_SCALE_CRYPTO_JACKING__ = "Datacenter-Scale Crypto Jacking: " - LIGHTNING_NETWORK_TRANSACTIONS = "Lightning Network Transactions" - DECENTRALIZED_STABLE_COINS = "Decentralized Stable Coins" - EMAIL_EXTORTION_AND_BOMB_THREATS = "Email Extortion and Bomb Threats" - CRYPTO_ROBBING_RANSOMWARE = "Crypto Robbing Ransomware" - RAG_PULL = "Rag Pull" - PIG_BUTCHERING_SCAM = "Pig Butchering Scam" - - -class CryptocurrencyThreatTaxonomy(BaseModel): - """Model for the cryptocurrency-threat taxonomy.""" - - namespace: str = "cryptocurrency-threat" - description: str = """Threats targeting cryptocurrency, based on CipherTrace report.""" - version: int = 2 - exclusive: bool = False - predicates: List[CryptocurrencyThreatTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/csirt_americas.py b/src/openmisp/models/taxonomies/csirt_americas.py deleted file mode 100644 index b3fa272..0000000 --- a/src/openmisp/models/taxonomies/csirt_americas.py +++ /dev/null @@ -1,40 +0,0 @@ -"""Taxonomy model for csirt-americas.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CsirtAmericasTaxonomyPredicate(str, Enum): - DEFACEMENT = "defacement" - MALWARE = "malware" - DDOS = "ddos" - PHISHING = "phishing" - SPAM = "spam" - BOTNET = "botnet" - FASTFLUX = "fastflux" - CRYPTOJACKING = "cryptojacking" - XSS = "xss" - SQLI = "sqli" - VULNERABILITY = "vulnerability" - INFOLEAK = "infoleak" - COMPROMISE = "compromise" - OTHER = "other" - - -class CsirtAmericasTaxonomy(BaseModel): - """Model for the csirt-americas taxonomy.""" - - namespace: str = "csirt-americas" - description: str = """Taxonomía CSIRT Américas.""" - version: int = 1 - exclusive: bool = False - predicates: List[CsirtAmericasTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/csirt_case_classification.py b/src/openmisp/models/taxonomies/csirt_case_classification.py deleted file mode 100644 index 1e05349..0000000 --- a/src/openmisp/models/taxonomies/csirt_case_classification.py +++ /dev/null @@ -1,58 +0,0 @@ -"""Taxonomy model for csirt_case_classification.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CsirtCaseClassificationTaxonomyPredicate(str, Enum): - INCIDENT_CATEGORY = "incident-category" - CRITICALITY_CLASSIFICATION = "criticality-classification" - SENSITIVITY_CLASSIFICATION = "sensitivity-classification" - - -class CsirtCaseClassificationTaxonomyIncidentCategoryEntry(str, Enum): - DOS = "DOS" - FORENSICS = "forensics" - COMPROMISED_INFORMATION = "compromised-information" - COMPROMISED_ASSET = "compromised-asset" - UNLAWFUL_ACTIVITY = "unlawful-activity" - INTERNAL_HACKING = "internal-hacking" - EXTERNAL_HACKING = "external-hacking" - MALWARE = "malware" - EMAIL = "email" - CONSULTING = "consulting" - POLICY_VIOLATION = "policy-violation" - - -class CsirtCaseClassificationTaxonomyCriticalityClassificationEntry(str, Enum): - T_1 = "1" - T_2 = "2" - T_3 = "3" - - -class CsirtCaseClassificationTaxonomySensitivityClassificationEntry(str, Enum): - T_1 = "1" - T_2 = "2" - T_3 = "3" - - -class CsirtCaseClassificationTaxonomy(BaseModel): - """Model for the csirt_case_classification taxonomy.""" - - namespace: str = "csirt_case_classification" - description: str = """It is critical that the CSIRT provide consistent and timely response to the customer, and that sensitive information is handled appropriately. This document provides the guidelines needed for CSIRT Incident Managers (IM) to classify the case category, criticality level, and sensitivity level for each CSIRT case. This information will be entered into the Incident Tracking System (ITS) when a case is created. Consistent case classification is required for the CSIRT to provide accurate reporting to management on a regular basis. In addition, the classifications will provide CSIRT IM’s with proper case handling procedures and will form the basis of SLA’s between the CSIRT and other Company departments.""" - version: int = 1 - exclusive: bool = False - predicates: List[CsirtCaseClassificationTaxonomyPredicate] = [] - incident_category_entries: List[CsirtCaseClassificationTaxonomyIncidentCategoryEntry] = [] - criticality_classification_entries: List[CsirtCaseClassificationTaxonomyCriticalityClassificationEntry] = [] - sensitivity_classification_entries: List[CsirtCaseClassificationTaxonomySensitivityClassificationEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cssa.py b/src/openmisp/models/taxonomies/cssa.py deleted file mode 100644 index ffe8ee3..0000000 --- a/src/openmisp/models/taxonomies/cssa.py +++ /dev/null @@ -1,56 +0,0 @@ -"""Taxonomy model for cssa.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CssaTaxonomyPredicate(str, Enum): - SHARING_CLASS = "sharing-class" - REPORT = "report" - ORIGIN = "origin" - ANALYSE = "analyse" - - -class CssaTaxonomySharingClassEntry(str, Enum): - HIGH_PROFILE = "high_profile" - VETTED = "vetted" - UNVETTED = "unvetted" - - -class CssaTaxonomyReportEntry(str, Enum): - DETAILS = "details" - LINK = "link" - ATTACHED = "attached" - - -class CssaTaxonomyOriginEntry(str, Enum): - MANUAL_INVESTIGATION = "manual_investigation" - HONEYPOT = "honeypot" - SANDBOX = "sandbox" - EMAIL = "email" - T_3RD_PARTY = "3rd-party" - REPORT = "report" - OTHER = "other" - UNKNOWN = "unknown" - - -class CssaTaxonomy(BaseModel): - """Model for the cssa taxonomy.""" - - namespace: str = "cssa" - description: str = """The CSSA agreed sharing taxonomy.""" - version: int = 8 - exclusive: bool = False - predicates: List[CssaTaxonomyPredicate] = [] - sharing_class_entries: List[CssaTaxonomySharingClassEntry] = [] - report_entries: List[CssaTaxonomyReportEntry] = [] - origin_entries: List[CssaTaxonomyOriginEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cti.py b/src/openmisp/models/taxonomies/cti.py deleted file mode 100644 index 7700ee0..0000000 --- a/src/openmisp/models/taxonomies/cti.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Taxonomy model for cti.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CtiTaxonomyPredicate(str, Enum): - PLANNING = "planning" - COLLECTION = "collection" - PROCESSING_AND_ANALYSIS = "processing-and-analysis" - DISSEMINATION_DONE = "dissemination-done" - FEEDBACK_RECEIVED = "feedback-received" - FEEDBACK_PENDING = "feedback-pending" - - -class CtiTaxonomy(BaseModel): - """Model for the cti taxonomy.""" - - namespace: str = "cti" - description: str = """Cyber Threat Intelligence cycle to control workflow state of your process.""" - version: int = 1 - exclusive: bool = False - predicates: List[CtiTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/current_event.py b/src/openmisp/models/taxonomies/current_event.py deleted file mode 100644 index 8e18721..0000000 --- a/src/openmisp/models/taxonomies/current_event.py +++ /dev/null @@ -1,40 +0,0 @@ -"""Taxonomy model for current-event.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CurrentEventTaxonomyPredicate(str, Enum): - PANDEMIC = "pandemic" - ELECTION = "election" - - -class CurrentEventTaxonomyPandemicEntry(str, Enum): - SARS_COV = "sars-cov" - COVID_19 = "covid-19" - - -class CurrentEventTaxonomyElectionEntry(str, Enum): - EU_PAR_2019 = "eu-par-2019" - US_PRES_2020 = "us-pres-2020" - - -class CurrentEventTaxonomy(BaseModel): - """Model for the current-event taxonomy.""" - - namespace: str = "current-event" - description: str = """Current events - Schemes of Classification in Incident Response and Detection""" - version: int = 1 - exclusive: bool = False - predicates: List[CurrentEventTaxonomyPredicate] = [] - pandemic_entries: List[CurrentEventTaxonomyPandemicEntry] = [] - election_entries: List[CurrentEventTaxonomyElectionEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cyber_threat_framework.py b/src/openmisp/models/taxonomies/cyber_threat_framework.py deleted file mode 100644 index c9f8544..0000000 --- a/src/openmisp/models/taxonomies/cyber_threat_framework.py +++ /dev/null @@ -1,65 +0,0 @@ -"""Taxonomy model for Cyber Threat Framework.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CyberThreatFrameworkTaxonomyPredicate(str, Enum): - PREPARATION = "Preparation" - ENGAGEMENT = "Engagement" - PRESENCE = "Presence" - EFFECT_CONSEQUENCE = "Effect/Consequence" - - -class CyberThreatFrameworkTaxonomyPreparationEntry(str, Enum): - PLAN_ACTIVITY = "plan-activity" - CONDUCT_RESEARCH_AND_ANALYSIS = "conduct-research-and-analysis" - DEVELOP_RESOURCE_AND_CAPABILITIES = "develop-resource-and-capabilities" - ACQUIRE_VICTIM_AND_SPECIFIC_KNOWLEDGE = "acquire-victim-and-specific-knowledge" - COMPLETE_PREPARATIONS = "complete-preparations" - - -class CyberThreatFrameworkTaxonomyEngagementEntry(str, Enum): - DEPLOY_CAPABILITY = "deploy-capability" - INTERACT_WITH_INTENDED_VICTIM = "interact-with-intended-victim" - EXPLOIT_VULNERABILITIES = "exploit-vulnerabilities" - DELIVER_MALICIOUS_CAPABILITIES = "deliver-malicious-capabilities" - - -class CyberThreatFrameworkTaxonomyPresenceEntry(str, Enum): - ESTABLISH_CONTROLLED_ACCESS = "establish-controlled-access" - HIDE = "hide" - EXPAND_PRESENCE = "expand-presence" - REFINE_FOCUS_OF_ACTIVITY = "refine-focus-of-activity" - ESTABLISH_PERSISTENCE = "establish-persistence" - - -class CyberThreatFrameworkTaxonomyEffectConsequenceEntry(str, Enum): - ENABLE_OTHER_OPERATIONS = "enable-other-operations" - DENY_ACCESS = "deny-access" - EXTRACT_DATA = "extract-data" - ALTER_DATA_AND_OR_COMPUTER_NETWORK_OR_SYSTEM_BEHAVIOR = "alter-data-and-or-computer-network-or-system-behavior" - DESTROY_HARDWARE_SOFTWARE_OR_DATA = "destroy-hardware-software-or-data" - - -class CyberThreatFrameworkTaxonomy(BaseModel): - """Model for the Cyber Threat Framework taxonomy.""" - - namespace: str = "cyber-threat-framework" - description: str = """Cyber Threat Framework was developed by the US Government to enable consistent characterization and categorization of cyber threat events, and to identify trends or changes in the activities of cyber adversaries. https://www.dni.gov/index.php/cyber-threat-framework""" - version: int = 2 - exclusive: bool = False - predicates: List[CyberThreatFrameworkTaxonomyPredicate] = [] - preparation_entries: List[CyberThreatFrameworkTaxonomyPreparationEntry] = [] - engagement_entries: List[CyberThreatFrameworkTaxonomyEngagementEntry] = [] - presence_entries: List[CyberThreatFrameworkTaxonomyPresenceEntry] = [] - effect_consequence_entries: List[CyberThreatFrameworkTaxonomyEffectConsequenceEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cycat.py b/src/openmisp/models/taxonomies/cycat.py deleted file mode 100644 index d61d7bf..0000000 --- a/src/openmisp/models/taxonomies/cycat.py +++ /dev/null @@ -1,55 +0,0 @@ -"""Taxonomy model for Universal Cybersecurity Resource Catalogue.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CycatTaxonomyPredicate(str, Enum): - TYPE = "type" - SCOPE = "scope" - - -class CycatTaxonomyTypeEntry(str, Enum): - TOOL = "tool" - PLAYBOOK = "playbook" - TAXONOMY = "taxonomy" - RULE = "rule" - NOTEBOOK = "notebook" - VULNERABILITY = "vulnerability" - PROOF_OF_CONCEPT = "proof-of-concept" - FINGERPRINT = "fingerprint" - MITIGATION = "mitigation" - DATASET = "dataset" - - -class CycatTaxonomyScopeEntry(str, Enum): - IDENTIFY = "identify" - PROTECT = "protect" - DETECT = "detect" - RESPOND = "respond" - RECOVER = "recover" - EXPLOIT = "exploit" - INVESTIGATE = "investigate" - TRAIN = "train" - TEST = "test" - - -class CycatTaxonomy(BaseModel): - """Model for the Universal Cybersecurity Resource Catalogue taxonomy.""" - - namespace: str = "cycat" - description: str = """Taxonomy used by CyCAT, the Universal Cybersecurity Resource Catalogue, to categorize the namespaces it supports and uses.""" - version: int = 1 - exclusive: bool = False - predicates: List[CycatTaxonomyPredicate] = [] - type_entries: List[CycatTaxonomyTypeEntry] = [] - scope_entries: List[CycatTaxonomyScopeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/cytomic_orion.py b/src/openmisp/models/taxonomies/cytomic_orion.py deleted file mode 100644 index 3a4c29a..0000000 --- a/src/openmisp/models/taxonomies/cytomic_orion.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Taxonomy model for cytomic-orion.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class CytomicOrionTaxonomyPredicate(str, Enum): - ACTION = "action" - - -class CytomicOrionTaxonomyActionEntry(str, Enum): - UPLOAD = "upload" - DELETE = "delete" - - -class CytomicOrionTaxonomy(BaseModel): - """Model for the cytomic-orion taxonomy.""" - - namespace: str = "cytomic-orion" - description: str = """Taxonomy to describe desired actions for Cytomic Orion""" - version: int = 1 - exclusive: bool = False - predicates: List[CytomicOrionTaxonomyPredicate] = [] - action_entries: List[CytomicOrionTaxonomyActionEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/dark_web.py b/src/openmisp/models/taxonomies/dark_web.py deleted file mode 100644 index af3c3cb..0000000 --- a/src/openmisp/models/taxonomies/dark_web.py +++ /dev/null @@ -1,143 +0,0 @@ -"""Taxonomy model for Dark Web.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DarkWebTaxonomyPredicate(str, Enum): - TOPIC = "topic" - MOTIVATION = "motivation" - STRUCTURE = "structure" - SERVICE = "service" - CONTENT = "content" - - -class DarkWebTaxonomyTopicEntry(str, Enum): - DRUGS_NARCOTICS = "drugs-narcotics" - ELECTRONICS = "electronics" - FINANCE = "finance" - FINANCE_CRYPTO = "finance-crypto" - CREDIT_CARD = "credit-card" - CASH_IN = "cash-in" - CASH_OUT = "cash-out" - ESCROW = "escrow" - HACKING = "hacking" - IDENTIFICATION_CREDENTIALS = "identification-credentials" - INTELLECTUAL_PROPERTY_COPYRIGHT_MATERIALS = "intellectual-property-copyright-materials" - PORNOGRAPHY_ADULT = "pornography-adult" - PORNOGRAPHY_CHILD_EXPLOITATION = "pornography-child-exploitation" - PORNOGRAPHY_ILLICIT_OR_ILLEGAL = "pornography-illicit-or-illegal" - SEARCH_ENGINE_INDEX = "search-engine-index" - UNCLEAR = "unclear" - EXTREMISM = "extremism" - VIOLENCE = "violence" - WEAPONS = "weapons" - SOFTWARES = "softwares" - COUNTERFEIT_MATERIALS = "counterfeit-materials" - GAMBLING = "gambling" - LIBRARY = "library" - OTHER_NOT_ILLEGAL = "other-not-illegal" - LEGITIMATE = "legitimate" - CHAT = "chat" - MIXER = "mixer" - MYSTERY_BOX = "mystery-box" - ANONYMIZER = "anonymizer" - VPN_PROVIDER = "vpn-provider" - EMAIL_PROVIDER = "email-provider" - PONIES = "ponies" - GAMES = "games" - PARODY = "parody" - WHISTLEBLOWER = "whistleblower" - RANSOMWARE_GROUP = "ransomware-group" - HITMAN = "hitman" - DIRECTORY_PROVIDER = "directory-provider" - - -class DarkWebTaxonomyMotivationEntry(str, Enum): - EDUCATION_TRAINING = "education-training" - WIKI = "wiki" - FORUM = "forum" - FILE_SHARING = "file-sharing" - HOSTING = "hosting" - DDOS_SERVICES = "ddos-services" - GENERAL = "general" - INFORMATION_SHARING_REPORTAGE = "information-sharing-reportage" - SCAM = "scam" - POLITICAL_SPEECH = "political-speech" - CONSPIRATIONIST = "conspirationist" - HATE_SPEECH = "hate-speech" - RELIGIOUS = "religious" - MARKETPLACE_FOR_SALE = "marketplace-for-sale" - SMUGGLING = "smuggling" - RECRUITMENT_ADVOCACY = "recruitment-advocacy" - SYSTEM_PLACEHOLDER = "system-placeholder" - UNCLEAR = "unclear" - - -class DarkWebTaxonomyStructureEntry(str, Enum): - INCOMPLETE = "incomplete" - CAPTCHA = "captcha" - LOGIN_FORMS = "login-forms" - CONTACT_FORMS = "contact-forms" - ENCRYPTION_KEYS = "encryption-keys" - POLICE_NOTICE = "police-notice" - LEGAL_STATEMENT = "legal-statement" - TEST = "test" - VIDEOS = "videos" - RANSOMWARE_POST = "ransomware-post" - UNCLEAR = "unclear" - - -class DarkWebTaxonomyServiceEntry(str, Enum): - URL = "url" - CONTENT_TYPE = "content-type" - PATH = "path" - DETECTION_DATE = "detection-date" - NETWORK_PROTOCOL = "network-protocol" - PORT = "port" - NETWORK = "network" - FOUND_AT = "found-at" - - -class DarkWebTaxonomyContentEntry(str, Enum): - SHA1SUM = "sha1sum" - SHA256SUM = "sha256sum" - SSDEEP = "ssdeep" - LANGUAGE = "language" - HTML = "html" - CSS = "css" - TEXT = "text" - PAGE_TITLE = "page-title" - PHONE_NUMBER = "phone-number" - CREDIT_CARD = "creditCard" - EMAIL = "email" - PGP_PUBLIC_KEY_BLOCK = "pgp-public-key-block" - COUNTRY = "country" - COMPANY_NAME = "company-name" - COMPANY_LINK = "company-link" - VICTIM_ADDRESS = "victim-address" - VICTIM_TLD = "victim-TLD" - - -class DarkWebTaxonomy(BaseModel): - """Model for the Dark Web taxonomy.""" - - namespace: str = "dark-web" - description: str = """Criminal motivation and content detection the dark web: A categorisation model for law enforcement. ref: Janis Dalins, Campbell Wilson, Mark Carman. Taxonomy updated by MISP Project and extended by the JRC (Joint Research Centre) of the European Commission.""" - version: int = 9 - exclusive: bool = False - predicates: List[DarkWebTaxonomyPredicate] = [] - topic_entries: List[DarkWebTaxonomyTopicEntry] = [] - motivation_entries: List[DarkWebTaxonomyMotivationEntry] = [] - structure_entries: List[DarkWebTaxonomyStructureEntry] = [] - service_entries: List[DarkWebTaxonomyServiceEntry] = [] - content_entries: List[DarkWebTaxonomyContentEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/data_classification.py b/src/openmisp/models/taxonomies/data_classification.py deleted file mode 100644 index c0c2ee0..0000000 --- a/src/openmisp/models/taxonomies/data_classification.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Taxonomy model for Data Classification.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DataClassificationTaxonomyPredicate(str, Enum): - REGULATED_DATA = "regulated-data" - COMMERCIALLY_CONFIDENTIAL_INFORMATION = "commercially-confidential-information" - FINANCIALLY_SENSITIVE_INFORMATION = "financially-sensitive-information" - VALUATION_SENSITIVE_INFORMATION = "valuation-sensitive-information" - SENSITIVE_INFORMATION = "sensitive-information" - - -class DataClassificationTaxonomy(BaseModel): - """Model for the Data Classification taxonomy.""" - - namespace: str = "data-classification" - description: str = """Data classification for data potentially at risk of exfiltration based on table 2.1 of Solving Cyber Risk book.""" - version: int = 1 - exclusive: bool = False - predicates: List[DataClassificationTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/dcso_sharing.py b/src/openmisp/models/taxonomies/dcso_sharing.py deleted file mode 100644 index ab51bb6..0000000 --- a/src/openmisp/models/taxonomies/dcso_sharing.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Taxonomy model for dcso-sharing.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DcsoSharingTaxonomyPredicate(str, Enum): - EVENT_TYPE = "event-type" - - -class DcsoSharingTaxonomyEventTypeEntry(str, Enum): - OBSERVATION = "Observation" - INCIDENT = "Incident" - REPORT = "Report" - ANALYSIS = "Analysis" - COLLECTION = "Collection" - - -class DcsoSharingTaxonomy(BaseModel): - """Model for the dcso-sharing taxonomy.""" - - namespace: str = "dcso-sharing" - description: str = """Taxonomy defined in the DCSO MISP Event Guide. It provides guidance for the creation and consumption of MISP events in a way that minimises the extra effort for the sending party, while enhancing the usefulness for receiving parties.""" - version: int = 1 - exclusive: bool = False - predicates: List[DcsoSharingTaxonomyPredicate] = [] - event_type_entries: List[DcsoSharingTaxonomyEventTypeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ddos.py b/src/openmisp/models/taxonomies/ddos.py deleted file mode 100644 index 5f17a08..0000000 --- a/src/openmisp/models/taxonomies/ddos.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Taxonomy model for Distributed Denial of Service.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DdosTaxonomyPredicate(str, Enum): - TYPE = "type" - - -class DdosTaxonomyTypeEntry(str, Enum): - AMPLIFICATION_ATTACK = "amplification-attack" - REFLECTED_SPOOFED_ATTACK = "reflected-spoofed-attack" - SLOW_READ_ATTACK = "slow-read-attack" - FLOODING_ATTACK = "flooding-attack" - POST_ATTACK = "post-attack" - - -class DdosTaxonomy(BaseModel): - """Model for the Distributed Denial of Service taxonomy.""" - - namespace: str = "ddos" - description: str = """Distributed Denial of Service - or short: DDoS - taxonomy supports the description of Denial of Service attacks and especially the types they belong too.""" - version: int = 2 - exclusive: bool = False - predicates: List[DdosTaxonomyPredicate] = [] - type_entries: List[DdosTaxonomyTypeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/de_vs.py b/src/openmisp/models/taxonomies/de_vs.py deleted file mode 100644 index 83c4cd0..0000000 --- a/src/openmisp/models/taxonomies/de_vs.py +++ /dev/null @@ -1,41 +0,0 @@ -"""Taxonomy model for de-vs.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DeVsTaxonomyPredicate(str, Enum): - EINSTUFUNG = "Einstufung" - SCHUTZWORT = "Schutzwort" - - -class DeVsTaxonomyEinstufungEntry(str, Enum): - STRENG_GEHEIM = "STRENG GEHEIM" - GEHEIM = "GEHEIM" - VS_VERTRAULICH = "VS-VERTRAULICH" - VS_NF_D = "VS-NfD" - - -class DeVsTaxonomySchutzwortEntry(str, Enum): - DUMMY = "Dummy" - - -class DeVsTaxonomy(BaseModel): - """Model for the de-vs taxonomy.""" - - namespace: str = "de-vs" - description: str = """German (DE) Government classification markings (VS).""" - version: int = 1 - exclusive: bool = False - predicates: List[DeVsTaxonomyPredicate] = [] - einstufung_entries: List[DeVsTaxonomyEinstufungEntry] = [] - schutzwort_entries: List[DeVsTaxonomySchutzwortEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/death_possibilities.py b/src/openmisp/models/taxonomies/death_possibilities.py deleted file mode 100644 index 9317445..0000000 --- a/src/openmisp/models/taxonomies/death_possibilities.py +++ /dev/null @@ -1,2560 +0,0 @@ -"""Taxonomy model for death-possibilities.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DeathPossibilitiesTaxonomyPredicate(str, Enum): - T__001_009__INTESTINAL_INFECTIOUS_DISEASES = "(001-009) Intestinal infectious diseases" - T__010_018__TUBERCULOSIS = "(010-018) Tuberculosis" - T__020_027__ZOONOTIC_BACTERIAL_DISEASES = "(020-027) Zoonotic bacterial diseases" - T__030_041__OTHER_BACTERIAL_DISEASES = "(030-041) Other bacterial diseases" - T__042_042__HUMAN_IMMUNODEFICIENCY_VIRUS__HIV__INFECTION = "(042-042) Human immunodeficiency virus [HIV] infection" - T__045_049__POLIOMYELITIS_AND_OTHER_NON_ARTHROPOD_BORNE_VIRAL_DISEASES_OF_CENTRAL_NERVOUS_SYSTEM = ( - "(045-049) Poliomyelitis and other non-arthropod-borne viral diseases of central nervous system" - ) - T__050_057__VIRAL_DISEASES_ACCOMPANIED_BY_EXANTHEM = "(050-057) Viral diseases accompanied by exanthem" - T__060_066__ARTHROPOD_BORNE_VIRAL_DISEASES = "(060-066) Arthropod-borne viral diseases" - T__070_079__OTHER_DISEASES_DUE_TO_VIRUSES_AND_CHLAMYDIAE = "(070-079) Other diseases due to viruses and Chlamydiae" - T__080_088__RICKETTSIOSES_AND_OTHER_ARTHROPOD_BORNE_DISEASES = ( - "(080-088) Rickettsioses and other arthropod-borne diseases" - ) - T__090_099__SYPHILIS_AND_OTHER_VENEREAL_DISEASES = "(090-099) Syphilis and other venereal diseases" - T__100_104__OTHER_SPIROCHAETAL_DISEASES = "(100-104) Other spirochaetal diseases" - T__110_118__MYCOSES = "(110-118) Mycoses" - T__120_129__HELMINTHIASES = "(120-129) Helminthiases" - T__130_136__OTHER_INFECTIOUS_AND_PARASITIC_DISEASES = "(130-136) Other infectious and parasitic diseases" - T__137_139__LATE_EFFECTS_OF_INFECTIOUS_AND_PARASITIC_DISEASES = ( - "(137-139) Late effects of infectious and parasitic diseases" - ) - T__140_149__MALIGNANT_NEOPLASM_OF_LIP__ORAL_CAVITY_AND_PHARYNX = ( - "(140-149) Malignant neoplasm of lip, oral cavity and pharynx" - ) - T__150_159__MALIGNANT_NEOPLASM_OF_DIGESTIVE_ORGANS_AND_PERITONEUM = ( - "(150-159) Malignant neoplasm of digestive organs and peritoneum" - ) - T__160_165__MALIGNANT_NEOPLASM_OF_RESPIRATORY_AND_INTRATHORACIC_ORGANS = ( - "(160-165) Malignant neoplasm of respiratory and intrathoracic organs" - ) - T__170_176__MALIGNANT_NEOPLASM_OF_BONE__CONNECTIVE_TISSUE__SKIN_AND_BREAST = ( - "(170-176) Malignant neoplasm of bone, connective tissue, skin and breast" - ) - T__179_189__MALIGNANT_NEOPLASM_OF_GENITO_URINARY_ORGANS = "(179-189) Malignant neoplasm of genito-urinary organs" - T__190_199__MALIGNANT_NEOPLASM_OF_OTHER_AND_UNSPECIFIED_SITES = ( - "(190-199) Malignant neoplasm of other and unspecified sites" - ) - T__200_208__MALIGNANT_NEOPLASM_OF_LYMPHATIC_AND_HAEMATOPOIETIC_TISSUE = ( - "(200-208) Malignant neoplasm of lymphatic and haematopoietic tissue" - ) - T__210_229__BENIGN_NEOPLASMS = "(210-229) Benign neoplasms" - T__230_234__CARCINOMA_IN_SITU = "(230-234) Carcinoma in situ" - T__235_238__NEOPLASMS_OF_UNCERTAIN_BEHAVIOUR = "(235-238) Neoplasms of uncertain behaviour" - T__239_239__NEOPLASMS_OF_UNSPECIFIED_NATURE = "(239-239) Neoplasms of unspecified nature" - T__240_246__DISORDERS_OF_THYROID_GLAND = "(240-246) Disorders of thyroid gland" - T__250_259__DISEASES_OF_OTHER_ENDOCRINE_GLANDS = "(250-259) Diseases of other endocrine glands" - T__260_269__NUTRITIONAL_DEFICIENCIES = "(260-269) Nutritional deficiencies" - T__270_279__OTHER_METABOLIC_DISORDERS_AND_IMMUNITY_DISORDERS = ( - "(270-279) Other metabolic disorders and immunity disorders" - ) - T__280_289__DISEASES_OF_BLOOD_AND_BLOOD_FORMING_ORGANS = "(280-289) Diseases of blood and blood-forming organs" - T__290_294__ORGANIC_PSYCHOTIC_CONDITIONS = "(290-294) Organic psychotic conditions" - T__295_299__OTHER_PSYCHOSES = "(295-299) Other psychoses" - T__300_316__NEUROTIC_DISORDERS__PERSONALITY_DISORDERS_AND_OTHER_NONPSYCHOTIC_MENTAL_DISORDERS = ( - "(300-316) Neurotic disorders, personality disorders and other nonpsychotic mental disorders" - ) - T__317_319__MENTAL_RETARDATION = "(317-319) Mental retardation" - T__320_326__INFLAMMATORY_DISEASES_OF_THE_CENTRAL_NERVOUS_SYSTEM = ( - "(320-326) Inflammatory diseases of the central nervous system" - ) - T__330_337__HEREDITARY_AND_DEGENERATIVE_DISEASES_OF_THE_CENTRAL_NERVOUS_SYSTEM = ( - "(330-337) Hereditary and degenerative diseases of the central nervous system" - ) - T__340_349__OTHER_DISORDERS_OF_THE_CENTRAL_NERVOUS_SYSTEM = ( - "(340-349) Other disorders of the central nervous system" - ) - T__350_359__DISORDERS_OF_THE_PERIPHERAL_NERVOUS_SYSTEM = "(350-359) Disorders of the peripheral nervous system" - T__360_379__DISORDERS_OF_THE_EYE_AND_ADNEXA = "(360-379) Disorders of the eye and adnexa" - T__380_389__DISEASES_OF_THE_EAR_AND_MASTOID_PROCESS = "(380-389) Diseases of the ear and mastoid process" - T__390_392__ACUTE_RHEUMATIC_FEVER = "(390-392) Acute rheumatic fever" - T__393_398__CHRONIC_RHEUMATIC_HEART_DISEASE = "(393-398) Chronic rheumatic heart disease" - T__401_405__HYPERTENSIVE_DISEASE = "(401-405) Hypertensive disease" - T__410_414__ISCHAEMIC_HEART_DISEASE = "(410-414) Ischaemic heart disease" - T__415_417__DISEASES_OF_PULMONARY_CIRCULATION = "(415-417) Diseases of pulmonary circulation" - T__420_429__OTHER_FORMS_OF_HEART_DISEASE = "(420-429) Other forms of heart disease" - T__430_438__CEREBROVASCULAR_DISEASE = "(430-438) Cerebrovascular disease" - T__440_448__DISEASES_OF_ARTERIES__ARTERIOLES_AND_CAPILLARIES = ( - "(440-448) Diseases of arteries, arterioles and capillaries" - ) - T__451_459__DISEASES_OF_VEINS_AND_LYMPHATICS__AND_OTHER_DISEASES_OF_CIRCULATORY_SYSTEM = ( - "(451-459) Diseases of veins and lymphatics, and other diseases of circulatory system" - ) - T__460_466__ACUTE_RESPIRATORY_INFECTIONS = "(460-466) Acute respiratory infections" - T__470_478__OTHER_DISEASES_OF_UPPER_RESPIRATORY_TRACT = "(470-478) Other diseases of upper respiratory tract" - T__480_487__PNEUMONIA_AND_INFLUENZA = "(480-487) Pneumonia and influenza" - T__490_496__CHRONIC_OBSTRUCTIVE_PULMONARY_DISEASE_AND_ALLIED_CONDITIONS = ( - "(490-496) Chronic obstructive pulmonary disease and allied conditions" - ) - T__500_508__PNEUMOCONIOSES_AND_OTHER_LUNG_DISEASES_DUE_TO_EXTERNAL_AGENTS = ( - "(500-508) Pneumoconioses and other lung diseases due to external agents" - ) - T__510_519__OTHER_DISEASES_OF_RESPIRATORY_SYSTEM = "(510-519) Other diseases of respiratory system" - T__520_529__DISEASES_OF_ORAL_CAVITY__SALIVARY_GLANDS_AND_JAWS = ( - "(520-529) Diseases of oral cavity, salivary glands and jaws" - ) - T__530_537__DISEASES_OF_OESOPHAGUS__STOMACH_AND_DUODENUM = "(530-537) Diseases of oesophagus, stomach and duodenum" - T__540_543__APPENDICITIS = "(540-543) Appendicitis" - T__550_553__HERNIA_OF_ABDOMINAL_CAVITY = "(550-553) Hernia of abdominal cavity" - T__555_558__NON_INFECTIVE_ENTERITIS_AND_COLITIS = "(555-558) Non-infective enteritis and colitis" - T__560_569__OTHER_DISEASES_OF_INTESTINES_AND_PERITONEUM = "(560-569) Other diseases of intestines and peritoneum" - T__570_579__OTHER_DISEASES_OF_DIGESTIVE_SYSTEM = "(570-579) Other diseases of digestive system" - T__580_589__NEPHRITIS__NEPHROTIC_SYNDROME_AND_NEPHROSIS = "(580-589) Nephritis, nephrotic syndrome and nephrosis" - T__590_599__OTHER_DISEASES_OF_URINARY_SYSTEM = "(590-599) Other diseases of urinary system" - T__600_608__DISEASES_OF_MALE_GENITAL_ORGANS = "(600-608) Diseases of male genital organs" - T__610_611__DISORDERS_OF_BREAST = "(610-611) Disorders of breast" - T__614_616__INFLAMMATORY_DISEASE_OF_FEMALE_PELVIC_ORGANS = "(614-616) Inflammatory disease of female pelvic organs" - T__617_629__OTHER_DISORDERS_OF_FEMALE_GENITAL_TRACT = "(617-629) Other disorders of female genital tract" - T__630_633__ECTOPIC_AND_MOLAR_PREGNANCY = "(630-633) Ectopic and molar pregnancy" - T__634_639__OTHER_PREGNANCY_WITH_ABORTIVE_OUTCOME = "(634-639) Other pregnancy with abortive outcome" - T__640_648__COMPLICATIONS_MAINLY_RELATED_TO_PREGNANCY = "(640-648) Complications mainly related to pregnancy" - T__650_659__NORMAL_DELIVERY_AND_OTHER_INDICATIONS_FOR_CARE_IN_PREGNANCY__LABOUR_AND_DELIVERY = ( - "(650-659) Normal delivery and other indications for care in pregnancy, labour and delivery" - ) - T__660_669__COMPLICATIONS_OCCURRING_MAINLY_IN_THE_COURSE_OF_LABOUR_AND_DELIVERY = ( - "(660-669) Complications occurring mainly in the course of labour and delivery" - ) - T__670_677__COMPLICATIONS_OF_THE_PUERPERIUM = "(670-677) Complications of the puerperium" - T__680_686__INFECTIONS_OF_SKIN_AND_SUBCUTANEOUS_TISSUE = "(680-686) Infections of skin and subcutaneous tissue" - T__690_698__OTHER_INFLAMMATORY_CONDITIONS_OF_SKIN_AND_SUBCUTANEOUS_TISSUE = ( - "(690-698) Other inflammatory conditions of skin and subcutaneous tissue" - ) - T__700_709__OTHER_DISEASES_OF_SKIN_AND_SUBCUTANEOUS_TISSUE = ( - "(700-709) Other diseases of skin and subcutaneous tissue" - ) - T__710_719__ARTHROPATHIES_AND_RELATED_DISORDERS = "(710-719) Arthropathies and related disorders" - T__720_724__DORSOPATHIES = "(720-724) Dorsopathies" - T__725_729__RHEUMATISM__EXCLUDING_THE_BACK = "(725-729) Rheumatism, excluding the back" - T__730_739__OSTEOPATHIES__CHONDROPATHIES_AND_ACQUIRED_MUSCULOSKELETAL_DEFORMITIES = ( - "(730-739) Osteopathies, chondropathies and acquired musculoskeletal deformities" - ) - T__740_759__CONGENITAL_ANOMALIES = "(740-759) Congenital anomalies" - T__760_763__MATERNAL_CAUSES_OF_PERINATAL_MORBIDITY_AND_MORTALITY = ( - "(760-763) Maternal causes of perinatal morbidity and mortality" - ) - T__764_779__OTHER_CONDITIONS_ORIGINATING_IN_THE_PERINATAL_PERIOD = ( - "(764-779) Other conditions originating in the perinatal period" - ) - T__780_789__SYMPTOMS = "(780-789) Symptoms" - T__790_796__NONSPECIFIC_ABNORMAL_FINDINGS = "(790-796) Nonspecific abnormal findings" - T__797_799__ILL_DEFINED_AND_UNKNOWN_CAUSES_OF_MORBIDITY_AND_MORTALITY = ( - "(797-799) Ill-defined and unknown causes of morbidity and mortality" - ) - T__800_804__FRACTURE_OF_SKULL = "(800-804) Fracture of skull" - T__805_809__FRACTURE_OF_NECK_AND_TRUNK = "(805-809) Fracture of neck and trunk" - T__810_819__FRACTURE_OF_UPPER_LIMB = "(810-819) Fracture of upper limb" - T__820_829__FRACTURE_OF_LOWER_LIMB = "(820-829) Fracture of lower limb" - T__830_839__DISLOCATION = "(830-839) Dislocation" - T__840_848__SPRAINS_AND_STRAINS_OF_JOINTS_AND_ADJACENT_MUSCLES = ( - "(840-848) Sprains and strains of joints and adjacent muscles" - ) - T__850_854__INTRACRANIAL_INJURY__EXCLUDING_THOSE_WITH_SKULL_FRACTURE = ( - "(850-854) Intracranial injury, excluding those with skull fracture" - ) - T__860_869__INTERNAL_INJURY_OF_CHEST__ABDOMEN_AND_PELVIS = "(860-869) Internal injury of chest, abdomen and pelvis" - T__870_879__OPEN_WOUND_OF_HEAD__NECK_AND_TRUNK = "(870-879) Open wound of head, neck and trunk" - T__880_887__OPEN_WOUND_OF_UPPER_LIMB = "(880-887) Open wound of upper limb" - T__890_897__OPEN_WOUND_OF_LOWER_LIMB = "(890-897) Open wound of lower limb" - T__900_904__INJURY_TO_BLOOD_VESSELS = "(900-904) Injury to blood vessels" - T__905_909__LATE_EFFECTS_OF_INJURIES__POISONINGS__TOXIC_EFFECTS_AND_OTHER_EXTERNAL_CAUSES = ( - "(905-909) Late effects of injuries, poisonings, toxic effects and other external causes" - ) - T__910_919__SUPERFICIAL_INJURY = "(910-919) Superficial injury" - T__920_924__CONTUSION_WITH_INTACT_SKIN_SURFACE = "(920-924) Contusion with intact skin surface" - T__925_929__CRUSHING_INJURY = "(925-929) Crushing injury" - T__930_939__EFFECTS_OF_FOREIGN_BODY_ENTERING_THROUGH_ORIFICE = ( - "(930-939) Effects of foreign body entering through orifice" - ) - T__940_949__BURNS = "(940-949) Burns" - T__950_957__INJURY_TO_NERVES_AND_SPINAL_CORD = "(950-957) Injury to nerves and spinal cord" - T__958_959__CERTAIN_TRAUMATIC_COMPLICATIONS_AND_UNSPECIFIED_INJURIES = ( - "(958-959) Certain traumatic complications and unspecified injuries" - ) - T__960_979__POISONING_BY_DRUGS__MEDICAMENTS_AND_BIOLOGICAL_SUBSTANCES = ( - "(960-979) Poisoning by drugs, medicaments and biological substances" - ) - T__980_989__TOXIC_EFFECTS_OF_SUBSTANCES_CHIEFLY_NONMEDICINAL_AS_TO_SOURCE = ( - "(980-989) Toxic effects of substances chiefly nonmedicinal as to source" - ) - T__990_995__OTHER_AND_UNSPECIFIED_EFFECTS_OF_EXTERNAL_CAUSES = ( - "(990-995) Other and unspecified effects of external causes" - ) - T__996_999__COMPLICATIONS_OF_SURGICAL_AND_MEDICAL_CARE__NOT_ELSEWHERE_CLASSIFIED = ( - "(996-999) Complications of surgical and medical care, not elsewhere classified" - ) - T__E800_E807__RAILWAY_ACCIDENTS = "(E800-E807) Railway accidents" - T__E810_E819__MOTOR_VEHICLE_TRAFFIC_ACCIDENTS = "(E810-E819) Motor vehicle traffic accidents" - T__E820_E825__MOTOR_VEHICLE_NONTRAFFIC_ACCIDENTS = "(E820-E825) Motor vehicle nontraffic accidents" - T__E826_E829__OTHER_ROAD_VEHICLE_ACCIDENTS = "(E826-E829) Other road vehicle accidents" - T__E830_E838__WATER_TRANSPORT_ACCIDENTS = "(E830-E838) Water transport accidents" - T__E840_E845__AIR_AND_SPACE_TRANSPORT_ACCIDENTS = "(E840-E845) Air and space transport accidents" - T__E846_E848__VEHICLE_ACCIDENTS_NOT_ELSEWHERE_CLASSIFIABLE = ( - "(E846-E848) Vehicle accidents not elsewhere classifiable" - ) - T__E849_E858__ACCIDENTAL_POISONING_BY_DRUGS__MEDICAMENTS_AND_BIOLOGICALS = ( - "(E849-E858) Accidental poisoning by drugs, medicaments and biologicals" - ) - T__E860_E869__ACCIDENTAL_POISONING_BY_OTHER_SOLID_AND_LIQUID_SUBSTANCES__GASES_AND_VAPOURS = ( - "(E860-E869) Accidental poisoning by other solid and liquid substances, gases and vapours" - ) - T__E870_E876__MISADVENTURES_TO_PATIENTS_DURING_SURGICAL_AND_MEDICAL_CARE = ( - "(E870-E876) Misadventures to patients during surgical and medical care" - ) - T__E878_E879__SURGICAL_AND_MEDICAL_PROCEDURES_AS_THE_CAUSE_OF_ABNORMAL_REACTION_OF_PATIENT_OR_LATER_COMPLICATION__WITHOUT_MENTION_OF_MISADVENTURE_AT_THE_TIME_OF_PROCEDURE = "(E878-E879) Surgical and medical procedures as the cause of abnormal reaction of patient or later complication, without mention of misadventure at the time of procedure" - T__E880_E888__ACCIDENTAL_FALLS = "(E880-E888) Accidental falls" - T__E890_E899__ACCIDENTS_CAUSED_BY_FIRE_AND_FLAMES = "(E890-E899) Accidents caused by fire and flames" - T__E900_E909__ACCIDENTS_DUE_TO_NATURAL_AND_ENVIRONMENTAL_FACTORS = ( - "(E900-E909) Accidents due to natural and environmental factors" - ) - T__E910_E915__ACCIDENTS_CAUSED_BY_SUBMERSION__SUFFOCATION_AND_FOREIGN_BODIES = ( - "(E910-E915) Accidents caused by submersion, suffocation and foreign bodies" - ) - T__E916_E928__OTHER_ACCIDENTS = "(E916-E928) Other accidents" - T__E929_E929__LATE_EFFECTS_OF_ACCIDENTAL_INJURY = "(E929-E929) Late effects of accidental injury" - T__E930_E949__DRUGS__MEDICAMENTS_AND_BIOLOGICAL_SUBSTANCES_CAUSING_ADVERSE_EFFECTS_IN_THERAPEUTIC_USE = ( - "(E930-E949) Drugs, medicaments and biological substances causing adverse effects in therapeutic use" - ) - T__E950_E959__SUICIDE_AND_SELF_INFLICTED_INJURY = "(E950-E959) Suicide and self-inflicted injury" - T__E960_E969__HOMICIDE_AND_INJURY_PURPOSELY_INFLICTED_BY_OTHER_PERSONS = ( - "(E960-E969) Homicide and injury purposely inflicted by other persons" - ) - - -class DeathPossibilitiesTaxonomyT001009IntestinalInfectiousDiseasesEntry(str, Enum): - T_001_CHOLERA = "001 Cholera" - T_002_TYPHOID_AND_PARATYPHOID_FEVERS = "002 Typhoid and paratyphoid fevers" - T_003_OTHER_SALMONELLA_INFECTIONS = "003 Other Salmonella infections" - T_004_SHIGELLOSIS = "004 Shigellosis" - T_005_OTHER_FOOD_POISONING__BACTERIAL_ = "005 Other food poisoning (bacterial)" - T_006_AMOEBIASIS = "006 Amoebiasis" - T_007_OTHER_PROTOZOAL_INTESTINAL_DISEASES = "007 Other protozoal intestinal diseases" - T_008_INTESTINAL_INFECTIONS_DUE_TO_OTHER_ORGANISMS = "008 Intestinal infections due to other organisms" - T_009_ILL_DEFINED_INTESTINAL_INFECTIONS = "009 Ill-defined intestinal infections" - - -class DeathPossibilitiesTaxonomyT010018TuberculosisEntry(str, Enum): - T_010_PRIMARY_TUBERCULOUS_INFECTION = "010 Primary tuberculous infection" - T_011_PULMONARY_TUBERCULOSIS = "011 Pulmonary tuberculosis" - T_012_OTHER_RESPIRATORY_TUBERCULOSIS = "012 Other respiratory tuberculosis" - T_013_TUBERCULOSIS_OF_MENINGES_AND_CENTRAL_NERVOUS_SYSTEM = ( - "013 Tuberculosis of meninges and central nervous system" - ) - T_014_TUBERCULOSIS_OF_INTESTINES__PERITONEUM_AND_MESENTERIC_GLANDS = ( - "014 Tuberculosis of intestines, peritoneum and mesenteric glands" - ) - T_015_TUBERCULOSIS_OF_BONES_AND_JOINTS = "015 Tuberculosis of bones and joints" - T_016_TUBERCULOSIS_OF_GENITO_URINARY_SYSTEM = "016 Tuberculosis of genito-urinary system" - T_017_TUBERCULOSIS_OF_OTHER_ORGANS = "017 Tuberculosis of other organs" - T_018_MILIARY_TUBERCULOSIS = "018 Miliary tuberculosis" - - -class DeathPossibilitiesTaxonomyT020027ZoonoticBacterialDiseasesEntry(str, Enum): - T_020_PLAGUE = "020 Plague" - T_021_TULARAEMIA = "021 Tularaemia" - T_022_ANTHRAX = "022 Anthrax" - T_023_BRUCELLOSIS = "023 Brucellosis" - T_024_GLANDERS = "024 Glanders" - T_025_MELIOIDOSIS = "025 Melioidosis" - T_026_RAT_BITE_FEVER = "026 Rat-bite fever" - T_027_OTHER_ZOONOTIC_BACTERIAL_DISEASES = "027 Other zoonotic bacterial diseases" - - -class DeathPossibilitiesTaxonomyT030041OtherBacterialDiseasesEntry(str, Enum): - T_030_LEPROSY = "030 Leprosy" - T_031_DISEASES_DUE_TO_OTHER_MYCOBACTERIA = "031 Diseases due to other mycobacteria" - T_032_DIPHTHERIA = "032 Diphtheria" - T_033_WHOOPING_COUGH = "033 Whooping cough" - T_034_STREPTOCOCCAL_SORE_THROAT_AND_SCARLATINA = "034 Streptococcal sore throat and scarlatina" - T_035_ERYSIPELAS = "035 Erysipelas" - T_036_MENINGOCOCCAL_INFECTION = "036 Meningococcal infection" - T_037_TETANUS = "037 Tetanus" - T_038_SEPTICAEMIA = "038 Septicaemia" - T_039_ACTINOMYCOTIC_INFECTIONS = "039 Actinomycotic infections" - T_040_OTHER_BACTERIAL_DISEASES = "040 Other bacterial diseases" - T_041_BACTERIAL_INFECTION_IN_CONDITIONS_CLASSIFIED_ELSEWHERE_AND_OF_UNSPECIFIED_SITE = ( - "041 Bacterial infection in conditions classified elsewhere and of unspecified site" - ) - - -class DeathPossibilitiesTaxonomyT042042HumanImmunodeficiencyVirusHivInfectionEntry(str, Enum): - T_042_HUMAN_IMMUNODEFICIENCY_VIRUS__HIV__DISEASE = "042 Human immunodeficiency virus [HIV] disease" - - -class DeathPossibilitiesTaxonomyT045049PoliomyelitisAndOtherNonArthropodBorneViralDiseasesOfCentralNervousSystemEntry( - str, Enum -): - T_045_ACUTE_POLIOMYELITIS = "045 Acute poliomyelitis" - T_046_SLOW_VIRUS_INFECTION_OF_CENTRAL_NERVOUS_SYSTEM = "046 Slow virus infection of central nervous system" - T_047_MENINGITIS_DUE_TO_ENTEROVIRUS = "047 Meningitis due to enterovirus" - T_048_OTHER_ENTEROVIRUS_DISEASES_OF_CENTRAL_NERVOUS_SYSTEM = ( - "048 Other enterovirus diseases of central nervous system" - ) - T_049_OTHER_NON_ARTHROPOD_BORNE_VIRAL_DISEASES_OF_CENTRAL_NERVOUS_SYSTEM = ( - "049 Other non-arthropod-borne viral diseases of central nervous system" - ) - - -class DeathPossibilitiesTaxonomyT050057ViralDiseasesAccompaniedByExanthemEntry(str, Enum): - T_050_SMALLPOX = "050 Smallpox" - T_051_COWPOX_AND_PARAVACCINIA = "051 Cowpox and paravaccinia" - T_052_CHICKENPOX = "052 Chickenpox" - T_053_HERPES_ZOSTER = "053 Herpes zoster" - T_054_HERPES_SIMPLEX = "054 Herpes simplex" - T_055_MEASLES = "055 Measles" - T_056_RUBELLA = "056 Rubella" - T_057_OTHER_VIRAL_EXANTHEMATA = "057 Other viral exanthemata" - - -class DeathPossibilitiesTaxonomyT060066ArthropodBorneViralDiseasesEntry(str, Enum): - T_060_YELLOW_FEVER = "060 Yellow fever" - T_061_DENGUE = "061 Dengue" - T_062_MOSQUITO_BORNE_VIRAL_ENCEPHALITIS = "062 Mosquito-borne viral encephalitis" - T_063_TICK_BORNE_VIRAL_ENCEPHALITIS = "063 Tick-borne viral encephalitis" - T_064_VIRAL_ENCEPHALITIS_TRANSMITTED_BY_OTHER_AND_UNSPECIFIED_ARTHROPODS = ( - "064 Viral encephalitis transmitted by other and unspecified arthropods" - ) - T_065_ARTHROPOD_BORNE_HAEMORRHAGIC_FEVER = "065 Arthropod-borne haemorrhagic fever" - T_066_OTHER_ARTHROPOD_BORNE_VIRAL_DISEASES = "066 Other arthropod-borne viral diseases" - - -class DeathPossibilitiesTaxonomyT070079OtherDiseasesDueToVirusesAndChlamydiaeEntry(str, Enum): - T_070_VIRAL_HEPATITIS = "070 Viral hepatitis" - T_071_RABIES = "071 Rabies" - T_072_MUMPS = "072 Mumps" - T_073_ORNITHOSIS = "073 Ornithosis" - T_074_SPECIFIC_DISEASES_DUE_TO_COXSACKIE_VIRUS = "074 Specific diseases due to Coxsackie virus" - T_075_INFECTIOUS_MONONUCLEOSIS = "075 Infectious mononucleosis" - T_076_TRACHOMA = "076 Trachoma" - T_077_OTHER_DISEASES_OF_CONJUNCTIVA_DUE_TO_VIRUSES_AND_CHLAMYDIAE = ( - "077 Other diseases of conjunctiva due to viruses and Chlamydiae" - ) - T_078_OTHER_DISEASES_DUE_TO_VIRUSES_AND_CHLAMYDIAE = "078 Other diseases due to viruses and Chlamydiae" - T_079_VIRAL_AND_CHLAMYDIAL_INFECTION_IN_CONDITIONS_CLASSIFIED_ELSEWHERE_AND_OF_UNSPECIFIED_SITE = ( - "079 Viral and chlamydial infection in conditions classified elsewhere and of unspecified site" - ) - - -class DeathPossibilitiesTaxonomyT080088RickettsiosesAndOtherArthropodBorneDiseasesEntry(str, Enum): - T_080_LOUSE_BORNE__EPIDEMIC__TYPHUS = "080 Louse-borne [epidemic] typhus" - T_081_OTHER_TYPHUS = "081 Other typhus" - T_082_TICK_BORNE_RICKETTSIOSES = "082 Tick-borne rickettsioses" - T_083_OTHER_RICKETTSIOSES = "083 Other rickettsioses" - T_084_MALARIA = "084 Malaria" - T_085_LEISHMANIASIS = "085 Leishmaniasis" - T_086_TRYPANOSOMIASIS = "086 Trypanosomiasis" - T_087_RELAPSING_FEVER = "087 Relapsing fever" - T_088_OTHER_ARTHROPOD_BORNE_DISEASES = "088 Other arthropod-borne diseases" - - -class DeathPossibilitiesTaxonomyT090099SyphilisAndOtherVenerealDiseasesEntry(str, Enum): - T_090_CONGENITAL_SYPHILIS = "090 Congenital syphilis" - T_091_EARLY_SYPHILIS__SYMPTOMATIC = "091 Early syphilis, symptomatic" - T_092_EARLY_SYPHILIS__LATENT = "092 Early syphilis, latent" - T_093_CARDIOVASCULAR_SYPHILIS = "093 Cardiovascular syphilis" - T_094_NEUROSYPHILIS = "094 Neurosyphilis" - T_095_OTHER_FORMS_OF_LATE_SYPHILIS__WITH_SYMPTOMS = "095 Other forms of late syphilis, with symptoms" - T_096_LATE_SYPHILIS__LATENT = "096 Late syphilis, latent" - T_097_OTHER_AND_UNSPECIFIED_SYPHILIS = "097 Other and unspecified syphilis" - T_098_GONOCOCCAL_INFECTIONS = "098 Gonococcal infections" - T_099_OTHER_VENEREAL_DISEASES = "099 Other venereal diseases" - - -class DeathPossibilitiesTaxonomyT100104OtherSpirochaetalDiseasesEntry(str, Enum): - T_100_LEPTOSPIROSIS = "100 Leptospirosis" - T_101_VINCENT_S_ANGINA = "101 Vincent's angina" - T_102_YAWS = "102 Yaws" - T_103_PINTA = "103 Pinta" - T_104_OTHER_SPIROCHAETAL_INFECTION = "104 Other spirochaetal infection" - - -class DeathPossibilitiesTaxonomyT110118MycosesEntry(str, Enum): - T_110_DERMATOPHYTOSIS = "110 Dermatophytosis" - T_111_DERMATOMYCOSIS__OTHER_AND_UNSPECIFIED = "111 Dermatomycosis, other and unspecified" - T_112_CANDIDIASIS = "112 Candidiasis" - T_113_ACTINOMYCOSIS = "113 Actinomycosis" - T_114_COCCIDIOIDOMYCOSIS = "114 Coccidioidomycosis" - T_115_HISTOPLASMOSIS = "115 Histoplasmosis" - T_116_BLASTOMYCOTIC_INFECTION = "116 Blastomycotic infection" - T_117_OTHER_MYCOSES = "117 Other mycoses" - T_118_OPPORTUNISTIC_MYCOSES = "118 Opportunistic mycoses" - - -class DeathPossibilitiesTaxonomyT120129HelminthiasesEntry(str, Enum): - T_120_SCHISTOSOMIASIS__BILHARZIASIS_ = "120 Schistosomiasis [bilharziasis]" - T_121_OTHER_TREMATODE_INFECTIONS = "121 Other trematode infections" - T_122_ECHINOCOCCOSIS = "122 Echinococcosis" - T_123_OTHER_CESTODE_INFECTION = "123 Other cestode infection" - T_124_TRICHINOSIS = "124 Trichinosis" - T_125_FILARIAL_INFECTION_AND_DRACONTIASIS = "125 Filarial infection and dracontiasis" - T_126_ANKYLOSTOMIASIS_AND_NECATORIASIS = "126 Ankylostomiasis and necatoriasis" - T_127_OTHER_INTESTINAL_HELMINTHIASES = "127 Other intestinal helminthiases" - T_128_OTHER_AND_UNSPECIFIED_HELMINTHIASES = "128 Other and unspecified helminthiases" - T_129_INTESTINAL_PARASITISM__UNSPECIFIED = "129 Intestinal parasitism, unspecified" - - -class DeathPossibilitiesTaxonomyT130136OtherInfectiousAndParasiticDiseasesEntry(str, Enum): - T_130_TOXOPLASMOSIS = "130 Toxoplasmosis" - T_131_TRICHOMONIASIS = "131 Trichomoniasis" - T_132_PEDICULOSIS_AND_PHTHIRUS_INFESTATION = "132 Pediculosis and phthirus infestation" - T_133_ACARIASIS = "133 Acariasis" - T_134_OTHER_INFESTATION = "134 Other infestation" - T_135_SARCOIDOSIS = "135 Sarcoidosis" - T_136_OTHER_AND_UNSPECIFIED_INFECTIOUS_AND_PARASITIC_DISEASES = ( - "136 Other and unspecified infectious and parasitic diseases" - ) - - -class DeathPossibilitiesTaxonomyT137139LateEffectsOfInfectiousAndParasiticDiseasesEntry(str, Enum): - T_137_LATE_EFFECTS_OF_TUBERCULOSIS = "137 Late effects of tuberculosis" - T_138_LATE_EFFECTS_OF_ACUTE_POLIOMYELITIS = "138 Late effects of acute poliomyelitis" - T_139_LATE_EFFECTS_OF_OTHER_INFECTIOUS_AND_PARASITIC_DISEASES = ( - "139 Late effects of other infectious and parasitic diseases" - ) - - -class DeathPossibilitiesTaxonomyT140149MalignantNeoplasmOfLipOralCavityAndPharynxEntry(str, Enum): - T_140_MALIGNANT_NEOPLASM_OF_LIP = "140 Malignant neoplasm of lip" - T_141_MALIGNANT_NEOPLASM_OF_TONGUE = "141 Malignant neoplasm of tongue" - T_142_MALIGNANT_NEOPLASM_OF_MAJOR_SALIVARY_GLANDS = "142 Malignant neoplasm of major salivary glands" - T_143_MALIGNANT_NEOPLASM_OF_GUM = "143 Malignant neoplasm of gum" - T_144_MALIGNANT_NEOPLASM_OF_FLOOR_OF_MOUTH = "144 Malignant neoplasm of floor of mouth" - T_145_MALIGNANT_NEOPLASM_OF_OTHER_AND_UNSPECIFIED_PARTS_OF_MOUTH = ( - "145 Malignant neoplasm of other and unspecified parts of mouth" - ) - T_146_MALIGNANT_NEOPLASM_OF_OROPHARYNX = "146 Malignant neoplasm of oropharynx" - T_147_MALIGNANT_NEOPLASM_OF_NASOPHARYNX = "147 Malignant neoplasm of nasopharynx" - T_148_MALIGNANT_NEOPLASM_OF_HYPOPHARYNX = "148 Malignant neoplasm of hypopharynx" - T_149_MALIGNANT_NEOPLASM_OF_OTHER_AND_ILL_DEFINED_SITES_WITHIN_THE_LIP__ORAL_CAVITY_AND_PHARYNX = ( - "149 Malignant neoplasm of other and ill-defined sites within the lip, oral cavity and pharynx" - ) - - -class DeathPossibilitiesTaxonomyT150159MalignantNeoplasmOfDigestiveOrgansAndPeritoneumEntry(str, Enum): - T_150_MALIGNANT_NEOPLASM_OF_OESOPHAGUS = "150 Malignant neoplasm of oesophagus" - T_151_MALIGNANT_NEOPLASM_OF_STOMACH = "151 Malignant neoplasm of stomach" - T_152_MALIGNANT_NEOPLASM_OF_SMALL_INTESTINE__INCLUDING_DUODENUM = ( - "152 Malignant neoplasm of small intestine, including duodenum" - ) - T_153_MALIGNANT_NEOPLASM_OF_COLON = "153 Malignant neoplasm of colon" - T_154_MALIGNANT_NEOPLASM_OF_RECTUM__RECTOSIGMOID_JUNCTION_AND_ANUS = ( - "154 Malignant neoplasm of rectum, rectosigmoid junction and anus" - ) - T_155_MALIGNANT_NEOPLASM_OF_LIVER_AND_INTRAHEPATIC_BILE_DUCTS = ( - "155 Malignant neoplasm of liver and intrahepatic bile ducts" - ) - T_156_MALIGNANT_NEOPLASM_OF_GALLBLADDER_AND_EXTRAHEPATIC_BILE_DUCTS = ( - "156 Malignant neoplasm of gallbladder and extrahepatic bile ducts" - ) - T_157_MALIGNANT_NEOPLASM_OF_PANCREAS = "157 Malignant neoplasm of pancreas" - T_158_MALIGNANT_NEOPLASM_OF_RETROPERITONEUM_AND_PERITONEUM = ( - "158 Malignant neoplasm of retroperitoneum and peritoneum" - ) - T_159_MALIGNANT_NEOPLASM_OF_OTHER_AND_ILL_DEFINED_SITES_WITHIN_THE_DIGESTIVE_ORGANS_AND_PERITONEUM = ( - "159 Malignant neoplasm of other and ill-defined sites within the digestive organs and peritoneum" - ) - - -class DeathPossibilitiesTaxonomyT160165MalignantNeoplasmOfRespiratoryAndIntrathoracicOrgansEntry(str, Enum): - T_160_MALIGNANT_NEOPLASM_OF_NASAL_CAVITIES__MIDDLE_EAR_AND_ACCESSORY_SINUSES = ( - "160 Malignant neoplasm of nasal cavities, middle ear and accessory sinuses" - ) - T_161_MALIGNANT_NEOPLASM_OF_LARYNX = "161 Malignant neoplasm of larynx" - T_162_MALIGNANT_NEOPLASM_OF_TRACHEA__BRONCHUS_AND_LUNG = "162 Malignant neoplasm of trachea, bronchus and lung" - T_163_MALIGNANT_NEOPLASM_OF_PLEURA = "163 Malignant neoplasm of pleura" - T_164_MALIGNANT_NEOPLASM_OF_THYMUS__HEART_AND_MEDIASTINUM = ( - "164 Malignant neoplasm of thymus, heart and mediastinum" - ) - T_165_MALIGNANT_NEOPLASM_OF_OTHER_AND_ILL_DEFINED_SITES_WITHIN_THE_RESPIRATORY_SYSTEM_AND_INTRATHORACIC_ORGANS = ( - "165 Malignant neoplasm of other and ill-defined sites within the respiratory system and intrathoracic organs" - ) - - -class DeathPossibilitiesTaxonomyT170176MalignantNeoplasmOfBoneConnectiveTissueSkinAndBreastEntry(str, Enum): - T_170_MALIGNANT_NEOPLASM_OF_BONE_AND_ARTICULAR_CARTILAGE = "170 Malignant neoplasm of bone and articular cartilage" - T_171_MALIGNANT_NEOPLASM_OF_CONNECTIVE_AND_OTHER_SOFT_TISSUE = ( - "171 Malignant neoplasm of connective and other soft tissue" - ) - T_172_MALIGNANT_MELANOMA_OF_SKIN = "172 Malignant melanoma of skin" - T_173_OTHER_MALIGNANT_NEOPLASM_OF_SKIN = "173 Other malignant neoplasm of skin" - T_174_MALIGNANT_NEOPLASM_OF_FEMALE_BREAST = "174 Malignant neoplasm of female breast" - T_175_MALIGNANT_NEOPLASM_OF_MALE_BREAST = "175 Malignant neoplasm of male breast" - T_176_KAPOSI_S_SARCOMA = "176 Kaposi's sarcoma" - - -class DeathPossibilitiesTaxonomyT179189MalignantNeoplasmOfGenitoUrinaryOrgansEntry(str, Enum): - T_179_MALIGNANT_NEOPLASM_OF_UTERUS__PART_UNSPECIFIED = "179 Malignant neoplasm of uterus, part unspecified" - T_180_MALIGNANT_NEOPLASM_OF_CERVIX_UTERI = "180 Malignant neoplasm of cervix uteri" - T_181_MALIGNANT_NEOPLASM_OF_PLACENTA = "181 Malignant neoplasm of placenta" - T_182_MALIGNANT_NEOPLASM_OF_BODY_OF_UTERUS = "182 Malignant neoplasm of body of uterus" - T_183_MALIGNANT_NEOPLASM_OF_OVARY_AND_OTHER_UTERINE_ADNEXA = ( - "183 Malignant neoplasm of ovary and other uterine adnexa" - ) - T_184_MALIGNANT_NEOPLASM_OF_OTHER_AND_UNSPECIFIED_FEMALE_GENITAL_ORGANS = ( - "184 Malignant neoplasm of other and unspecified female genital organs" - ) - T_185_MALIGNANT_NEOPLASM_OF_PROSTATE = "185 Malignant neoplasm of prostate" - T_186_MALIGNANT_NEOPLASM_OF_TESTIS = "186 Malignant neoplasm of testis" - T_187_MALIGNANT_NEOPLASM_OF_PENIS_AND_OTHER_MALE_GENITAL_ORGANS = ( - "187 Malignant neoplasm of penis and other male genital organs" - ) - T_188_MALIGNANT_NEOPLASM_OF_BLADDER = "188 Malignant neoplasm of bladder" - T_189_MALIGNANT_NEOPLASM_OF_KIDNEY_AND_OTHER_AND_UNSPECIFIED_URINARY_ORGANS = ( - "189 Malignant neoplasm of kidney and other and unspecified urinary organs" - ) - - -class DeathPossibilitiesTaxonomyT190199MalignantNeoplasmOfOtherAndUnspecifiedSitesEntry(str, Enum): - T_190_MALIGNANT_NEOPLASM_OF_EYE = "190 Malignant neoplasm of eye" - T_191_MALIGNANT_NEOPLASM_OF_BRAIN = "191 Malignant neoplasm of brain" - T_192_MALIGNANT_NEOPLASM_OF_OTHER_AND_UNSPECIFIED_PARTS_OF_NERVOUS_SYSTEM = ( - "192 Malignant neoplasm of other and unspecified parts of nervous system" - ) - T_193_MALIGNANT_NEOPLASM_OF_THYROID_GLAND = "193 Malignant neoplasm of thyroid gland" - T_194_MALIGNANT_NEOPLASM_OF_OTHER_ENDOCRINE_GLANDS_AND_RELATED_STRUCTURES = ( - "194 Malignant neoplasm of other endocrine glands and related structures" - ) - T_195_MALIGNANT_NEOPLASM_OF_OTHER_AND_ILL_DEFINED_SITES = "195 Malignant neoplasm of other and ill-defined sites" - T_196_SECONDARY_AND_UNSPECIFIED_MALIGNANT_NEOPLASM_OF_LYMPH_NODES = ( - "196 Secondary and unspecified malignant neoplasm of lymph nodes" - ) - T_197_SECONDARY_MALIGNANT_NEOPLASM_OF_RESPIRATORY_AND_DIGESTIVE_SYSTEMS = ( - "197 Secondary malignant neoplasm of respiratory and digestive systems" - ) - T_198_SECONDARY_MALIGNANT_NEOPLASM_OF_OTHER_SPECIFIED_SITES = ( - "198 Secondary malignant neoplasm of other specified sites" - ) - T_199_MALIGNANT_NEOPLASM_WITHOUT_SPECIFICATION_OF_SITE = "199 Malignant neoplasm without specification of site" - - -class DeathPossibilitiesTaxonomyT200208MalignantNeoplasmOfLymphaticAndHaematopoieticTissueEntry(str, Enum): - T_200_LYMPHOSARCOMA_AND_RETICULOSARCOMA = "200 Lymphosarcoma and reticulosarcoma" - T_201_HODGKIN_S_DISEASE = "201 Hodgkin's disease" - T_202_OTHER_MALIGNANT_NEOPLASM_OF_LYMPHOID_AND_HISTIOCYTIC_TISSUE = ( - "202 Other malignant neoplasm of lymphoid and histiocytic tissue" - ) - T_203_MULTIPLE_MYELOMA_AND_IMMUNOPROLIFERATIVE_NEOPLASMS = "203 Multiple myeloma and immunoproliferative neoplasms" - T_204_LYMPHOID_LEUKAEMIA = "204 Lymphoid leukaemia" - T_205_MYELOID_LEUKAEMIA = "205 Myeloid leukaemia" - T_206_MONOCYTIC_LEUKAEMIA = "206 Monocytic leukaemia" - T_207_OTHER_SPECIFIED_LEUKAEMIA = "207 Other specified leukaemia" - T_208_LEUKAEMIA_OF_UNSPECIFIED_CELL_TYPE = "208 Leukaemia of unspecified cell type" - - -class DeathPossibilitiesTaxonomyT210229BenignNeoplasmsEntry(str, Enum): - T_210_BENIGN_NEOPLASM_OF_LIP__ORAL_CAVITY_AND_PHARYNX = "210 Benign neoplasm of lip, oral cavity and pharynx" - T_211_BENIGN_NEOPLASM_OF_OTHER_PARTS_OF_DIGESTIVE_SYSTEM = "211 Benign neoplasm of other parts of digestive system" - T_212_BENIGN_NEOPLASM_OF_RESPIRATORY_AND_INTRATHORACIC_ORGANS = ( - "212 Benign neoplasm of respiratory and intrathoracic organs" - ) - T_213_BENIGN_NEOPLASM_OF_BONE_AND_ARTICULAR_CARTILAGE = "213 Benign neoplasm of bone and articular cartilage" - T_214_LIPOMA = "214 Lipoma" - T_215_OTHER_BENIGN_NEOPLASM_OF_CONNECTIVE_AND_OTHER_SOFT_TISSUE = ( - "215 Other benign neoplasm of connective and other soft tissue" - ) - T_216_BENIGN_NEOPLASM_OF_SKIN = "216 Benign neoplasm of skin" - T_217_BENIGN_NEOPLASM_OF_BREAST = "217 Benign neoplasm of breast" - T_218_UTERINE_LEIOMYOMA = "218 Uterine leiomyoma" - T_219_OTHER_BENIGN_NEOPLASM_OF_UTERUS = "219 Other benign neoplasm of uterus" - T_220_BENIGN_NEOPLASM_OF_OVARY = "220 Benign neoplasm of ovary" - T_221_BENIGN_NEOPLASM_OF_OTHER_FEMALE_GENITAL_ORGANS = "221 Benign neoplasm of other female genital organs" - T_222_BENIGN_NEOPLASM_OF_MALE_GENITAL_ORGANS = "222 Benign neoplasm of male genital organs" - T_223_BENIGN_NEOPLASM_OF_KIDNEY_AND_OTHER_URINARY_ORGANS = "223 Benign neoplasm of kidney and other urinary organs" - T_224_BENIGN_NEOPLASM_OF_EYE = "224 Benign neoplasm of eye" - T_225_BENIGN_NEOPLASM_OF_BRAIN_AND_OTHER_PARTS_OF_NERVOUS_SYSTEM = ( - "225 Benign neoplasm of brain and other parts of nervous system" - ) - T_226_BENIGN_NEOPLASM_OF_THYROID_GLAND = "226 Benign neoplasm of thyroid gland" - T_227_BENIGN_NEOPLASM_OF_OTHER_ENDOCRINE_GLANDS_AND_RELATED_STRUCTURES = ( - "227 Benign neoplasm of other endocrine glands and related structures" - ) - T_228_HAEMANGIOMA_AND_LYMPHANGIOMA__ANY_SITE = "228 Haemangioma and lymphangioma, any site" - T_229_BENIGN_NEOPLASM_OF_OTHER_AND_UNSPECIFIED_SITES = "229 Benign neoplasm of other and unspecified sites" - - -class DeathPossibilitiesTaxonomyT230234CarcinomaInSituEntry(str, Enum): - T_230_CARCINOMA_IN_SITU_OF_DIGESTIVE_ORGANS = "230 Carcinoma in situ of digestive organs" - T_231_CARCINOMA_IN_SITU_OF_RESPIRATORY_SYSTEM = "231 Carcinoma in situ of respiratory system" - T_232_CARCINOMA_IN_SITU_OF_SKIN = "232 Carcinoma in situ of skin" - T_233_CARCINOMA_IN_SITU_OF_BREAST_AND_GENITO_URINARY_SYSTEM = ( - "233 Carcinoma in situ of breast and genito-urinary system" - ) - T_234_CARCINOMA_IN_SITU_OF_OTHER_AND_UNSPECIFIED_SITES = "234 Carcinoma in situ of other and unspecified sites" - - -class DeathPossibilitiesTaxonomyT235238NeoplasmsOfUncertainBehaviourEntry(str, Enum): - T_235_NEOPLASM_OF_UNCERTAIN_BEHAVIOUR_OF_DIGESTIVE_AND_RESPIRATORY_SYSTEMS = ( - "235 Neoplasm of uncertain behaviour of digestive and respiratory systems" - ) - T_236_NEOPLASM_OF_UNCERTAIN_BEHAVIOUR_OF_GENITO_URINARY_ORGANS = ( - "236 Neoplasm of uncertain behaviour of genito-urinary organs" - ) - T_237_NEOPLASM_OF_UNCERTAIN_BEHAVIOUR_OF_ENDOCRINE_GLANDS_AND_NERVOUS_SYSTEM = ( - "237 Neoplasm of uncertain behaviour of endocrine glands and nervous system" - ) - T_238_NEOPLASM_OF_UNCERTAIN_BEHAVIOUR_OF_OTHER_AND_UNSPECIFIED_SITES_AND_TISSUES = ( - "238 Neoplasm of uncertain behaviour of other and unspecified sites and tissues" - ) - - -class DeathPossibilitiesTaxonomyT239239NeoplasmsOfUnspecifiedNatureEntry(str, Enum): - T_239_NEOPLASM_OF_UNSPECIFIED_NATURE = "239 Neoplasm of unspecified nature" - - -class DeathPossibilitiesTaxonomyT240246DisordersOfThyroidGlandEntry(str, Enum): - T_240_SIMPLE_AND_UNSPECIFIED_GOITRE = "240 Simple and unspecified goitre" - T_241_NON_TOXIC_NODULAR_GOITRE = "241 Non-toxic nodular goitre" - T_242_THYROTOXICOSIS_WITH_OR_WITHOUT_GOITRE = "242 Thyrotoxicosis with or without goitre" - T_243_CONGENITAL_HYPOTHYROIDISM = "243 Congenital hypothyroidism" - T_244_ACQUIRED_HYPOTHYROIDISM = "244 Acquired hypothyroidism" - T_245_THYROIDITIS = "245 Thyroiditis" - T_246_OTHER_DISORDERS_OF_THYROID = "246 Other disorders of thyroid" - - -class DeathPossibilitiesTaxonomyT250259DiseasesOfOtherEndocrineGlandsEntry(str, Enum): - T_250_DIABETES_MELLITUS = "250 Diabetes mellitus" - T_251_OTHER_DISORDERS_OF_PANCREATIC_INTERNAL_SECRETION = "251 Other disorders of pancreatic internal secretion" - T_252_DISORDERS_OF_PARATHYROID_GLAND = "252 Disorders of parathyroid gland" - T_253_DISORDERS_OF_THE_PITUITARY_GLAND_AND_ITS_HYPOTHALAMIC_CONTROL = ( - "253 Disorders of the pituitary gland and its hypothalamic control" - ) - T_254_DISEASES_OF_THYMUS_GLAND = "254 Diseases of thymus gland" - T_255_DISORDERS_OF_ADRENAL_GLANDS = "255 Disorders of adrenal glands" - T_256_OVARIAN_DYSFUNCTION = "256 Ovarian dysfunction" - T_257_TESTICULAR_DYSFUNCTION = "257 Testicular dysfunction" - T_258_POLYGLANDULAR_DYSFUNCTION_AND_RELATED_DISORDERS = "258 Polyglandular dysfunction and related disorders" - T_259_OTHER_ENDOCRINE_DISORDERS = "259 Other endocrine disorders" - - -class DeathPossibilitiesTaxonomyT260269NutritionalDeficienciesEntry(str, Enum): - T_260_KWASHIORKOR = "260 Kwashiorkor" - T_261_NUTRITIONAL_MARASMUS = "261 Nutritional marasmus" - T_262_OTHER_SEVERE_PROTEIN_CALORIE_MALNUTRITION = "262 Other severe protein-calorie malnutrition" - T_263_OTHER_AND_UNSPECIFIED_PROTEIN_CALORIE_MALNUTRITION = "263 Other and unspecified protein-calorie malnutrition" - T_264_VITAMIN_A_DEFICIENCY = "264 Vitamin A deficiency" - T_265_THIAMINE_AND_NIACIN_DEFICIENCY_STATES = "265 Thiamine and niacin deficiency states" - T_266_DEFICIENCY_OF_B_COMPLEX_COMPONENTS = "266 Deficiency of B-complex components" - T_267_ASCORBIC_ACID_DEFICIENCY = "267 Ascorbic acid deficiency" - T_268_VITAMIN_D_DEFICIENCY = "268 Vitamin D deficiency" - T_269_OTHER_NUTRITIONAL_DEFICIENCIES = "269 Other nutritional deficiencies" - - -class DeathPossibilitiesTaxonomyT270279OtherMetabolicDisordersAndImmunityDisordersEntry(str, Enum): - T_270_DISORDERS_OF_AMINO_ACID_TRANSPORT_AND_METABOLISM = "270 Disorders of amino-acid transport and metabolism" - T_271_DISORDERS_OF_CARBOHYDRATE_TRANSPORT_AND_METABOLISM = "271 Disorders of carbohydrate transport and metabolism" - T_272_DISORDERS_OF_LIPOID_METABOLISM = "272 Disorders of lipoid metabolism" - T_273_DISORDERS_OF_PLASMA_PROTEIN_METABOLISM = "273 Disorders of plasma protein metabolism" - T_274_GOUT = "274 Gout" - T_275_DISORDERS_OF_MINERAL_METABOLISM = "275 Disorders of mineral metabolism" - T_276_DISORDERS_OF_FLUID__ELECTROLYTE_AND_ACID_BASE_BALANCE = ( - "276 Disorders of fluid, electrolyte and acid-base balance" - ) - T_277_OTHER_AND_UNSPECIFIED_DISORDERS_OF_METABOLISM = "277 Other and unspecified disorders of metabolism" - T_278_OBESITY_AND_OTHER_HYPERALIMENTATION = "278 Obesity and other hyperalimentation" - T_279_DISORDERS_INVOLVING_THE_IMMUNE_MECHANISM = "279 Disorders involving the immune mechanism" - - -class DeathPossibilitiesTaxonomyT280289DiseasesOfBloodAndBloodFormingOrgansEntry(str, Enum): - T_280_IRON_DEFICIENCY_ANAEMIAS = "280 Iron deficiency anaemias" - T_281_OTHER_DEFICIENCY_ANAEMIAS = "281 Other deficiency anaemias" - T_282_HEREDITARY_HAEMOLYTIC_ANAEMIAS = "282 Hereditary haemolytic anaemias" - T_283_ACQUIRED_HAEMOLYTIC_ANAEMIAS = "283 Acquired haemolytic anaemias" - T_284_APLASTIC_ANAEMIA = "284 Aplastic anaemia" - T_285_OTHER_AND_UNSPECIFIED_ANAEMIAS = "285 Other and unspecified anaemias" - T_286_COAGULATION_DEFECTS = "286 Coagulation defects" - T_287_PURPURA_AND_OTHER_HAEMORRHAGIC_CONDITIONS = "287 Purpura and other haemorrhagic conditions" - T_288_DISEASES_OF_WHITE_BLOOD_CELLS = "288 Diseases of white blood cells" - T_289_OTHER_DISEASES_OF_BLOOD_AND_BLOOD_FORMING_ORGANS = "289 Other diseases of blood and blood-forming organs" - - -class DeathPossibilitiesTaxonomyT290294OrganicPsychoticConditionsEntry(str, Enum): - T_290_SENILE_AND_PRESENILE_ORGANIC_PSYCHOTIC_CONDITIONS = "290 Senile and presenile organic psychotic conditions" - T_291_ALCOHOLIC_PSYCHOSES = "291 Alcoholic psychoses" - T_292_DRUG_PSYCHOSES = "292 Drug psychoses" - T_293_TRANSIENT_ORGANIC_PSYCHOTIC_CONDITIONS = "293 Transient organic psychotic conditions" - T_294_OTHER_ORGANIC_PSYCHOTIC_CONDITIONS__CHRONIC_ = "294 Other organic psychotic conditions (chronic)" - - -class DeathPossibilitiesTaxonomyT295299OtherPsychosesEntry(str, Enum): - T_295_SCHIZOPHRENIC_PSYCHOSES = "295 Schizophrenic psychoses" - T_296_AFFECTIVE_PSYCHOSES = "296 Affective psychoses" - T_297_PARANOID_STATES = "297 Paranoid states" - T_298_OTHER_NONORGANIC_PSYCHOSES = "298 Other nonorganic psychoses" - T_299_PSYCHOSES_WITH_ORIGIN_SPECIFIC_TO_CHILDHOOD = "299 Psychoses with origin specific to childhood" - - -class DeathPossibilitiesTaxonomyT300316NeuroticDisordersPersonalityDisordersAndOtherNonpsychoticMentalDisordersEntry( - str, Enum -): - T_300_NEUROTIC_DISORDERS = "300 Neurotic disorders" - T_301_PERSONALITY_DISORDERS = "301 Personality disorders" - T_302_SEXUAL_DEVIATIONS_AND_DISORDERS = "302 Sexual deviations and disorders" - T_303_ALCOHOL_DEPENDENCE_SYNDROME = "303 Alcohol dependence syndrome" - T_304_DRUG_DEPENDENCE = "304 Drug dependence" - T_305_NONDEPENDENT_ABUSE_OF_DRUGS = "305 Nondependent abuse of drugs" - T_306_PHYSIOLOGICAL_MALFUNCTION_ARISING_FROM_MENTAL_FACTORS = ( - "306 Physiological malfunction arising from mental factors" - ) - T_307_SPECIAL_SYMPTOMS_OR_SYNDROMES_NOT_ELSEWHERE_CLASSIFIED = ( - "307 Special symptoms or syndromes not elsewhere classified" - ) - T_308_ACUTE_REACTION_TO_STRESS = "308 Acute reaction to stress" - T_309_ADJUSTMENT_REACTION = "309 Adjustment reaction" - T_310_SPECIFIC_NONPSYCHOTIC_MENTAL_DISORDERS_FOLLOWING_ORGANIC_BRAIN_DAMAGE = ( - "310 Specific nonpsychotic mental disorders following organic brain damage" - ) - T_311_DEPRESSIVE_DISORDER__NOT_ELSEWHERE_CLASSIFIED = "311 Depressive disorder, not elsewhere classified" - T_312_DISTURBANCE_OF_CONDUCT_NOT_ELSEWHERE_CLASSIFIED = "312 Disturbance of conduct not elsewhere classified" - T_313_DISTURBANCE_OF_EMOTIONS_SPECIFIC_TO_CHILDHOOD_AND_ADOLESCENCE = ( - "313 Disturbance of emotions specific to childhood and adolescence" - ) - T_314_HYPERKINETIC_SYNDROME_OF_CHILDHOOD = "314 Hyperkinetic syndrome of childhood" - T_315_SPECIFIC_DELAYS_IN_DEVELOPMENT = "315 Specific delays in development" - T_316_PSYCHIC_FACTORS_ASSOCIATED_WITH_DISEASES_CLASSIFIED_ELSEWHERE = ( - "316 Psychic factors associated with diseases classified elsewhere" - ) - - -class DeathPossibilitiesTaxonomyT317319MentalRetardationEntry(str, Enum): - T_317_MILD_MENTAL_RETARDATION = "317 Mild mental retardation" - T_318_OTHER_SPECIFIED_MENTAL_RETARDATION = "318 Other specified mental retardation" - T_319_UNSPECIFIED_MENTAL_RETARDATION = "319 Unspecified mental retardation" - - -class DeathPossibilitiesTaxonomyT320326InflammatoryDiseasesOfTheCentralNervousSystemEntry(str, Enum): - T_320_BACTERIAL_MENINGITIS = "320 Bacterial meningitis" - T_321_MENINGITIS_DUE_TO_OTHER_ORGANISMS = "321 Meningitis due to other organisms" - T_322_MENINGITIS_OF_UNSPECIFIED_CAUSE = "322 Meningitis of unspecified cause" - T_323_ENCEPHALITIS__MYELITIS_AND_ENCEPHALOMYELITIS = "323 Encephalitis, myelitis and encephalomyelitis" - T_324_INTRACRANIAL_AND_INTRASPINAL_ABSCESS = "324 Intracranial and intraspinal abscess" - T_325_PHLEBITIS_AND_THROMBOPHLEBITIS_OF_INTRACRANIAL_VENOUS_SINUSES = ( - "325 Phlebitis and thrombophlebitis of intracranial venous sinuses" - ) - T_326_LATE_EFFECTS_OF_INTRACRANIAL_ABSCESS_OR_PYOGENIC_INFECTION = ( - "326 Late effects of intracranial abscess or pyogenic infection" - ) - - -class DeathPossibilitiesTaxonomyT330337HereditaryAndDegenerativeDiseasesOfTheCentralNervousSystemEntry(str, Enum): - T_330_CEREBRAL_DEGENERATIONS_USUALLY_MANIFEST_IN_CHILDHOOD = ( - "330 Cerebral degenerations usually manifest in childhood" - ) - T_331_OTHER_CEREBRAL_DEGENERATIONS = "331 Other cerebral degenerations" - T_332_PARKINSON_S_DISEASE = "332 Parkinson's disease" - T_333_OTHER_EXTRAPYRAMIDAL_DISEASE_AND_ABNORMAL_MOVEMENT_DISORDERS = ( - "333 Other extrapyramidal disease and abnormal movement disorders" - ) - T_334_SPINOCEREBELLAR_DISEASE = "334 Spinocerebellar disease" - T_335_ANTERIOR_HORN_CELL_DISEASE = "335 Anterior horn cell disease" - T_336_OTHER_DISEASES_OF_SPINAL_CORD = "336 Other diseases of spinal cord" - T_337_DISORDERS_OF_THE_AUTONOMIC_NERVOUS_SYSTEM = "337 Disorders of the autonomic nervous system" - - -class DeathPossibilitiesTaxonomyT340349OtherDisordersOfTheCentralNervousSystemEntry(str, Enum): - T_340_MULTIPLE_SCLEROSIS = "340 Multiple sclerosis" - T_341_OTHER_DEMYELINATING_DISEASES_OF_CENTRAL_NERVOUS_SYSTEM = ( - "341 Other demyelinating diseases of central nervous system" - ) - T_342_HEMIPLEGIA = "342 Hemiplegia" - T_343_INFANTILE_CEREBRAL_PALSY = "343 Infantile cerebral palsy" - T_344_OTHER_PARALYTIC_SYNDROMES = "344 Other paralytic syndromes" - T_345_EPILEPSY = "345 Epilepsy" - T_346_MIGRAINE = "346 Migraine" - T_347_CATAPLEXY_AND_NARCOLEPSY = "347 Cataplexy and narcolepsy" - T_348_OTHER_CONDITIONS_OF_BRAIN = "348 Other conditions of brain" - T_349_OTHER_AND_UNSPECIFIED_DISORDERS_OF_THE_NERVOUS_SYSTEM = ( - "349 Other and unspecified disorders of the nervous system" - ) - - -class DeathPossibilitiesTaxonomyT350359DisordersOfThePeripheralNervousSystemEntry(str, Enum): - T_350_TRIGEMINAL_NERVE_DISORDERS = "350 Trigeminal nerve disorders" - T_351_FACIAL_NERVE_DISORDERS = "351 Facial nerve disorders" - T_352_DISORDERS_OF_OTHER_CRANIAL_NERVES = "352 Disorders of other cranial nerves" - T_353_NERVE_ROOT_AND_PLEXUS_DISORDERS = "353 Nerve root and plexus disorders" - T_354_MONONEURITIS_OF_UPPER_LIMB_AND_MONONEURITIS_MULTIPLEX = ( - "354 Mononeuritis of upper limb and mononeuritis multiplex" - ) - T_355_MONONEURITIS_OF_LOWER_LIMB = "355 Mononeuritis of lower limb" - T_356_HEREDITARY_AND_IDIOPATHIC_PERIPHERAL_NEUROPATHY = "356 Hereditary and idiopathic peripheral neuropathy" - T_357_INFLAMMATORY_AND_TOXIC_NEUROPATHY = "357 Inflammatory and toxic neuropathy" - T_358_MYONEURAL_DISORDERS = "358 Myoneural disorders" - T_359_MUSCULAR_DYSTROPHIES_AND_OTHER_MYOPATHIES = "359 Muscular dystrophies and other myopathies" - - -class DeathPossibilitiesTaxonomyT360379DisordersOfTheEyeAndAdnexaEntry(str, Enum): - T_360_DISORDERS_OF_THE_GLOBE = "360 Disorders of the globe" - T_361_RETINAL_DETACHMENTS_AND_DEFECTS = "361 Retinal detachments and defects" - T_362_OTHER_RETINAL_DISORDERS = "362 Other retinal disorders" - T_363_CHORIORETINAL_INFLAMMATIONS_AND_SCARS_AND_OTHER_DISORDERS_OF_CHOROID = ( - "363 Chorioretinal inflammations and scars and other disorders of choroid" - ) - T_364_DISORDERS_OF_IRIS_AND_CILIARY_BODY = "364 Disorders of iris and ciliary body" - T_365_GLAUCOMA = "365 Glaucoma" - T_366_CATARACT = "366 Cataract" - T_367_DISORDERS_OF_REFRACTION_AND_ACCOMMODATION = "367 Disorders of refraction and accommodation" - T_368_VISUAL_DISTURBANCES = "368 Visual disturbances" - T_369_BLINDNESS_AND_LOW_VISION = "369 Blindness and low vision" - T_370_KERATITIS = "370 Keratitis" - T_371_CORNEAL_OPACITY_AND_OTHER_DISORDERS_OF_CORNEA = "371 Corneal opacity and other disorders of cornea" - T_372_DISORDERS_OF_CONJUNCTIVA = "372 Disorders of conjunctiva" - T_373_INFLAMMATION_OF_EYELIDS = "373 Inflammation of eyelids" - T_374_OTHER_DISORDERS_OF_EYELIDS = "374 Other disorders of eyelids" - T_375_DISORDERS_OF_LACHRYMAL_SYSTEM = "375 Disorders of lachrymal system" - T_376_DISORDERS_OF_THE_ORBIT = "376 Disorders of the orbit" - T_377_DISORDERS_OF_OPTIC_NERVE_AND_VISUAL_PATHWAYS = "377 Disorders of optic nerve and visual pathways" - T_378_STRABISMUS_AND_OTHER_DISORDERS_OF_BINOCULAR_EYE_MOVEMENTS = ( - "378 Strabismus and other disorders of binocular eye movements" - ) - T_379_OTHER_DISORDERS_OF_EYE = "379 Other disorders of eye" - - -class DeathPossibilitiesTaxonomyT380389DiseasesOfTheEarAndMastoidProcessEntry(str, Enum): - T_380_DISORDERS_OF_EXTERNAL_EAR = "380 Disorders of external ear" - T_381_NONSUPPURATIVE_OTITIS_MEDIA_AND_EUSTACHIAN_TUBE_DISORDERS = ( - "381 Nonsuppurative otitis media and Eustachian tube disorders" - ) - T_382_SUPPURATIVE_AND_UNSPECIFIED_OTITIS_MEDIA = "382 Suppurative and unspecified otitis media" - T_383_MASTOIDITIS_AND_RELATED_CONDITIONS = "383 Mastoiditis and related conditions" - T_384_OTHER_DISORDERS_OF_TYMPANIC_MEMBRANE = "384 Other disorders of tympanic membrane" - T_385_OTHER_DISORDERS_OF_MIDDLE_EAR_AND_MASTOID = "385 Other disorders of middle ear and mastoid" - T_386_VERTIGINOUS_SYNDROMES_AND_OTHER_DISORDERS_OF_VESTIBULAR_SYSTEM = ( - "386 Vertiginous syndromes and other disorders of vestibular system" - ) - T_387_OTOSCLEROSIS = "387 Otosclerosis" - T_388_OTHER_DISORDERS_OF_EAR = "388 Other disorders of ear" - T_389_DEAFNESS = "389 Deafness" - - -class DeathPossibilitiesTaxonomyT390392AcuteRheumaticFeverEntry(str, Enum): - T_390_RHEUMATIC_FEVER_WITHOUT_MENTION_OF_HEART_INVOLVEMENT = ( - "390 Rheumatic fever without mention of heart involvement" - ) - T_391_RHEUMATIC_FEVER_WITH_HEART_INVOLVEMENT = "391 Rheumatic fever with heart involvement" - T_392_RHEUMATIC_CHOREA = "392 Rheumatic chorea" - - -class DeathPossibilitiesTaxonomyT393398ChronicRheumaticHeartDiseaseEntry(str, Enum): - T_393_CHRONIC_RHEUMATIC_PERICARDITIS = "393 Chronic rheumatic pericarditis" - T_394_DISEASES_OF_MITRAL_VALVE = "394 Diseases of mitral valve" - T_395_DISEASES_OF_AORTIC_VALVE = "395 Diseases of aortic valve" - T_396_DISEASES_OF_MITRAL_AND_AORTIC_VALVES = "396 Diseases of mitral and aortic valves" - T_397_DISEASES_OF_OTHER_ENDOCARDIAL_STRUCTURES = "397 Diseases of other endocardial structures" - T_398_OTHER_RHEUMATIC_HEART_DISEASE = "398 Other rheumatic heart disease" - - -class DeathPossibilitiesTaxonomyT401405HypertensiveDiseaseEntry(str, Enum): - T_401_ESSENTIAL_HYPERTENSION = "401 Essential hypertension" - T_402_HYPERTENSIVE_HEART_DISEASE = "402 Hypertensive heart disease" - T_403_HYPERTENSIVE_RENAL_DISEASE = "403 Hypertensive renal disease" - T_404_HYPERTENSIVE_HEART_AND_RENAL_DISEASE = "404 Hypertensive heart and renal disease" - T_405_SECONDARY_HYPERTENSION = "405 Secondary hypertension" - - -class DeathPossibilitiesTaxonomyT410414IschaemicHeartDiseaseEntry(str, Enum): - T_410_ACUTE_MYOCARDIAL_INFARCTION = "410 Acute myocardial infarction" - T_411_OTHER_ACUTE_AND_SUBACUTE_FORMS_OF_ISCHAEMIC_HEART_DISEASE = ( - "411 Other acute and subacute forms of ischaemic heart disease" - ) - T_412_OLD_MYOCARDIAL_INFARCTION = "412 Old myocardial infarction" - T_413_ANGINA_PECTORIS = "413 Angina pectoris" - T_414_OTHER_FORMS_OF_CHRONIC_ISCHAEMIC_HEART_DISEASE = "414 Other forms of chronic ischaemic heart disease" - - -class DeathPossibilitiesTaxonomyT415417DiseasesOfPulmonaryCirculationEntry(str, Enum): - T_415_ACUTE_PULMONARY_HEART_DISEASE = "415 Acute pulmonary heart disease" - T_416_CHRONIC_PULMONARY_HEART_DISEASE = "416 Chronic pulmonary heart disease" - T_417_OTHER_DISEASES_OF_PULMONARY_CIRCULATION = "417 Other diseases of pulmonary circulation" - - -class DeathPossibilitiesTaxonomyT420429OtherFormsOfHeartDiseaseEntry(str, Enum): - T_420_ACUTE_PERICARDITIS = "420 Acute pericarditis" - T_421_ACUTE_AND_SUBACUTE_ENDOCARDITIS = "421 Acute and subacute endocarditis" - T_422_ACUTE_MYOCARDITIS = "422 Acute myocarditis" - T_423_OTHER_DISEASES_OF_PERICARDIUM = "423 Other diseases of pericardium" - T_424_OTHER_DISEASES_OF_ENDOCARDIUM = "424 Other diseases of endocardium" - T_425_CARDIOMYOPATHY = "425 Cardiomyopathy" - T_426_CONDUCTION_DISORDERS = "426 Conduction disorders" - T_427_CARDIAC_DYSRHYTHMIAS = "427 Cardiac dysrhythmias" - T_428_HEART_FAILURE = "428 Heart failure" - T_429_ILL_DEFINED_DESCRIPTIONS_AND_COMPLICATIONS_OF_HEART_DISEASE = ( - "429 Ill-defined descriptions and complications of heart disease" - ) - - -class DeathPossibilitiesTaxonomyT430438CerebrovascularDiseaseEntry(str, Enum): - T_430_SUBARACHNOID_HAEMORRHAGE = "430 Subarachnoid haemorrhage" - T_431_INTRACEREBRAL_HAEMORRHAGE = "431 Intracerebral haemorrhage" - T_432_OTHER_AND_UNSPECIFIED_INTRACRANIAL_HAEMORRHAGE = "432 Other and unspecified intracranial haemorrhage" - T_433_OCCLUSION_AND_STENOSIS_OF_PRECEREBRAL_ARTERIES = "433 Occlusion and stenosis of precerebral arteries" - T_434_OCCLUSION_OF_CEREBRAL_ARTERIES = "434 Occlusion of cerebral arteries" - T_435_TRANSIENT_CEREBRAL_ISCHAEMIA = "435 Transient cerebral ischaemia" - T_436_ACUTE_BUT_ILL_DEFINED_CEREBROVASCULAR_DISEASE = "436 Acute but ill-defined cerebrovascular disease" - T_437_OTHER_AND_ILL_DEFINED_CEREBROVASCULAR_DISEASE = "437 Other and ill-defined cerebrovascular disease" - T_438_LATE_EFFECTS_OF_CEREBROVASCULAR_DISEASE = "438 Late effects of cerebrovascular disease" - - -class DeathPossibilitiesTaxonomyT440448DiseasesOfArteriesArteriolesAndCapillariesEntry(str, Enum): - T_440_ATHEROSCLEROSIS = "440 Atherosclerosis" - T_441_AORTIC_ANEURYSM = "441 Aortic aneurysm" - T_442_OTHER_ANEURYSM = "442 Other aneurysm" - T_443_OTHER_PERIPHERAL_VASCULAR_DISEASE = "443 Other peripheral vascular disease" - T_444_ARTERIAL_EMBOLISM_AND_THROMBOSIS = "444 Arterial embolism and thrombosis" - T_446_POLYARTERITIS_NODOSA_AND_ALLIED_CONDITIONS = "446 Polyarteritis nodosa and allied conditions" - T_447_OTHER_DISORDERS_OF_ARTERIES_AND_ARTERIOLES = "447 Other disorders of arteries and arterioles" - T_448_DISEASES_OF_CAPILLARIES = "448 Diseases of capillaries" - - -class DeathPossibilitiesTaxonomyT451459DiseasesOfVeinsAndLymphaticsAndOtherDiseasesOfCirculatorySystemEntry(str, Enum): - T_451_PHLEBITIS_AND_THROMBOPHLEBITIS = "451 Phlebitis and thrombophlebitis" - T_452_PORTAL_VEIN_THROMBOSIS = "452 Portal vein thrombosis" - T_453_OTHER_VENOUS_EMBOLISM_AND_THROMBOSIS = "453 Other venous embolism and thrombosis" - T_454_VARICOSE_VEINS_OF_LOWER_EXTREMITIES = "454 Varicose veins of lower extremities" - T_455_HAEMORRHOIDS = "455 Haemorrhoids" - T_456_VARICOSE_VEINS_OF_OTHER_SITES = "456 Varicose veins of other sites" - T_457_NON_INFECTIVE_DISORDERS_OF_LYMPHATIC_CHANNELS = "457 Non-infective disorders of lymphatic channels" - T_458_HYPOTENSION = "458 Hypotension" - T_459_OTHER_DISORDERS_OF_CIRCULATORY_SYSTEM = "459 Other disorders of circulatory system" - - -class DeathPossibilitiesTaxonomyT460466AcuteRespiratoryInfectionsEntry(str, Enum): - T_460_ACUTE_NASOPHARYNGITIS__COMMON_COLD_ = "460 Acute nasopharyngitis [common cold]" - T_461_ACUTE_SINUSITIS = "461 Acute sinusitis" - T_462_ACUTE_PHARYNGITIS = "462 Acute pharyngitis" - T_463_ACUTE_TONSILLITIS = "463 Acute tonsillitis" - T_464_ACUTE_LARYNGITIS_AND_TRACHEITIS = "464 Acute laryngitis and tracheitis" - T_465_ACUTE_UPPER_RESPIRATORY_INFECTIONS_OF_MULTIPLE_OR_UNSPECIFIED_SITES = ( - "465 Acute upper respiratory infections of multiple or unspecified sites" - ) - T_466_ACUTE_BRONCHITIS_AND_BRONCHIOLITIS = "466 Acute bronchitis and bronchiolitis" - - -class DeathPossibilitiesTaxonomyT470478OtherDiseasesOfUpperRespiratoryTractEntry(str, Enum): - T_470_DEFLECTED_NASAL_SEPTUM = "470 Deflected nasal septum" - T_471_NASAL_POLYPS = "471 Nasal polyps" - T_472_CHRONIC_PHARYNGITIS_AND_NASOPHARYNGITIS = "472 Chronic pharyngitis and nasopharyngitis" - T_473_CHRONIC_SINUSITIS = "473 Chronic sinusitis" - T_474_CHRONIC_DISEASE_OF_TONSILS_AND_ADENOIDS = "474 Chronic disease of tonsils and adenoids" - T_475_PERITONSILLAR_ABSCESS = "475 Peritonsillar abscess" - T_476_CHRONIC_LARYNGITIS_AND_LARYNGOTRACHEITIS = "476 Chronic laryngitis and laryngotracheitis" - T_477_ALLERGIC_RHINITIS = "477 Allergic rhinitis" - T_478_OTHER_DISEASES_OF_UPPER_RESPIRATORY_TRACT = "478 Other diseases of upper respiratory tract" - - -class DeathPossibilitiesTaxonomyT480487PneumoniaAndInfluenzaEntry(str, Enum): - T_480_VIRAL_PNEUMONIA = "480 Viral pneumonia" - T_481_PNEUMOCOCCAL_PNEUMONIA = "481 Pneumococcal pneumonia" - T_482_OTHER_BACTERIAL_PNEUMONIA = "482 Other bacterial pneumonia" - T_483_PNEUMONIA_DUE_TO_OTHER_SPECIFIED_ORGANISM = "483 Pneumonia due to other specified organism" - T_484_PNEUMONIA_IN_INFECTIOUS_DISEASES_CLASSIFIED_ELSEWHERE = ( - "484 Pneumonia in infectious diseases classified elsewhere" - ) - T_485_BRONCHOPNEUMONIA__ORGANISM_UNSPECIFIED = "485 Bronchopneumonia, organism unspecified" - T_486_PNEUMONIA__ORGANISM_UNSPECIFIED = "486 Pneumonia, organism unspecified" - T_487_INFLUENZA = "487 Influenza" - - -class DeathPossibilitiesTaxonomyT490496ChronicObstructivePulmonaryDiseaseAndAlliedConditionsEntry(str, Enum): - T_490_BRONCHITIS__NOT_SPECIFIED_AS_ACUTE_OR_CHRONIC = "490 Bronchitis, not specified as acute or chronic" - T_491_CHRONIC_BRONCHITIS = "491 Chronic bronchitis" - T_492_EMPHYSEMA = "492 Emphysema" - T_493_ASTHMA = "493 Asthma" - T_494_BRONCHIECTASIS = "494 Bronchiectasis" - T_495_EXTRINSIC_ALLERGIC_ALVEOLITIS = "495 Extrinsic allergic alveolitis" - T_496_CHRONIC_AIRWAYS_OBSTRUCTION__NOT_ELSEWHERE_CLASSIFIED = ( - "496 Chronic airways obstruction, not elsewhere classified" - ) - - -class DeathPossibilitiesTaxonomyT500508PneumoconiosesAndOtherLungDiseasesDueToExternalAgentsEntry(str, Enum): - T_500_COALWORKERS__PNEUMOCONIOSIS = "500 Coalworkers' pneumoconiosis" - T_501_ASBESTOSIS = "501 Asbestosis" - T_502_PNEUMOCONIOSIS_DUE_TO_OTHER_SILICA_OR_SILICATES = "502 Pneumoconiosis due to other silica or silicates" - T_503_PNEUMOCONIOSIS_DUE_TO_OTHER_INORGANIC_DUST = "503 Pneumoconiosis due to other inorganic dust" - T_504_PNEUMOPATHY_DUE_TO_INHALATION_OF_OTHER_DUST = "504 Pneumopathy due to inhalation of other dust" - T_505_PNEUMOCONIOSIS__UNSPECIFIED = "505 Pneumoconiosis, unspecified" - T_506_RESPIRATORY_CONDITIONS_DUE_TO_CHEMICAL_FUMES_AND_VAPOURS = ( - "506 Respiratory conditions due to chemical fumes and vapours" - ) - T_507_PNEUMONITIS_DUE_TO_SOLIDS_AND_LIQUIDS = "507 Pneumonitis due to solids and liquids" - T_508_RESPIRATORY_CONDITIONS_DUE_TO_OTHER_AND_UNSPECIFIED_EXTERNAL_AGENTS = ( - "508 Respiratory conditions due to other and unspecified external agents" - ) - - -class DeathPossibilitiesTaxonomyT510519OtherDiseasesOfRespiratorySystemEntry(str, Enum): - T_510_EMPYEMA = "510 Empyema" - T_511_PLEURISY = "511 Pleurisy" - T_512_PNEUMOTHORAX = "512 Pneumothorax" - T_513_ABSCESS_OF_LUNG_AND_MEDIASTINUM = "513 Abscess of lung and mediastinum" - T_514_PULMONARY_CONGESTION_AND_HYPOSTASIS = "514 Pulmonary congestion and hypostasis" - T_515_POSTINFLAMMATORY_PULMONARY_FIBROSIS = "515 Postinflammatory pulmonary fibrosis" - T_516_OTHER_ALVEOLAR_AND_PARIETOALVEOLAR_PNEUMOPATHY = "516 Other alveolar and parietoalveolar pneumopathy" - T_517_LUNG_INVOLVEMENT_IN_CONDITIONS_CLASSIFIED_ELSEWHERE = ( - "517 Lung involvement in conditions classified elsewhere" - ) - T_518_OTHER_DISEASES_OF_LUNG = "518 Other diseases of lung" - T_519_OTHER_DISEASES_OF_RESPIRATORY_SYSTEM = "519 Other diseases of respiratory system" - - -class DeathPossibilitiesTaxonomyT520529DiseasesOfOralCavitySalivaryGlandsAndJawsEntry(str, Enum): - T_520_DISORDERS_OF_TOOTH_DEVELOPMENT_AND_ERUPTION = "520 Disorders of tooth development and eruption" - T_521_DISEASES_OF_HARD_TISSUES_OF_TEETH = "521 Diseases of hard tissues of teeth" - T_522_DISEASES_OF_PULP_AND_PERIAPICAL_TISSUES = "522 Diseases of pulp and periapical tissues" - T_523_GINGIVAL_AND_PERIODONTAL_DISEASES = "523 Gingival and periodontal diseases" - T_524_DENTOFACIAL_ANOMALIES__INCLUDING_MALOCCLUSION = "524 Dentofacial anomalies, including malocclusion" - T_525_OTHER_DISEASES_AND_CONDITIONS_OF_THE_TEETH_AND_SUPPORTING_STRUCTURES = ( - "525 Other diseases and conditions of the teeth and supporting structures" - ) - T_526_DISEASES_OF_THE_JAWS = "526 Diseases of the jaws" - T_527_DISEASES_OF_THE_SALIVARY_GLANDS = "527 Diseases of the salivary glands" - T_528_DISEASES_OF_THE_ORAL_SOFT_TISSUES__EXCLUDING_LESIONS_SPECIFIC_FOR_GINGIVA_AND_TONGUE = ( - "528 Diseases of the oral soft tissues, excluding lesions specific for gingiva and tongue" - ) - T_529_DISEASES_AND_OTHER_CONDITIONS_OF_THE_TONGUE = "529 Diseases and other conditions of the tongue" - - -class DeathPossibilitiesTaxonomyT530537DiseasesOfOesophagusStomachAndDuodenumEntry(str, Enum): - T_530_DISEASES_OF_OESOPHAGUS = "530 Diseases of oesophagus" - T_531_GASTRIC_ULCER = "531 Gastric ulcer" - T_532_DUODENAL_ULCER = "532 Duodenal ulcer" - T_533_PEPTIC_ULCER__SITE_UNSPECIFIED = "533 Peptic ulcer, site unspecified" - T_534_GASTROJEJUNAL_ULCER = "534 Gastrojejunal ulcer" - T_535_GASTRITIS_AND_DUODENITIS = "535 Gastritis and duodenitis" - T_536_DISORDERS_OF_FUNCTION_OF_STOMACH = "536 Disorders of function of stomach" - T_537_OTHER_DISORDERS_OF_STOMACH_AND_DUODENUM = "537 Other disorders of stomach and duodenum" - - -class DeathPossibilitiesTaxonomyT540543AppendicitisEntry(str, Enum): - T_540_ACUTE_APPENDICITIS = "540 Acute appendicitis" - T_541_APPENDICITIS__UNQUALIFIED = "541 Appendicitis, unqualified" - T_542_OTHER_APPENDICITIS = "542 Other appendicitis" - T_543_OTHER_DISEASES_OF_APPENDIX = "543 Other diseases of appendix" - - -class DeathPossibilitiesTaxonomyT550553HerniaOfAbdominalCavityEntry(str, Enum): - T_550_INGUINAL_HERNIA = "550 Inguinal hernia" - T_551_OTHER_HERNIA_OF_ABDOMINAL_CAVITY__WITH_GANGRENE = "551 Other hernia of abdominal cavity, with gangrene" - T_552_OTHER_HERNIA_OF_ABDOMINAL_CAVITY_WITH_OBSTRUCTION__WITHOUT_MENTION_OF_GANGRENE = ( - "552 Other hernia of abdominal cavity with obstruction, without mention of gangrene" - ) - T_553_OTHER_HERNIA_OF_ABDOMINAL_CAVITY_WITHOUT_MENTION_OF_OBSTRUCTION_OR_GANGRENE = ( - "553 Other hernia of abdominal cavity without mention of obstruction or gangrene" - ) - - -class DeathPossibilitiesTaxonomyT555558NonInfectiveEnteritisAndColitisEntry(str, Enum): - T_555_REGIONAL_ENTERITIS = "555 Regional enteritis" - T_556_IDIOPATHIC_PROCTOCOLITIS = "556 Idiopathic proctocolitis" - T_557_VASCULAR_INSUFFICIENCY_OF_INTESTINE = "557 Vascular insufficiency of intestine" - T_558_OTHER_NON_INFECTIVE_GASTRO_ENTERITIS_AND_COLITIS = "558 Other non-infective gastro-enteritis and colitis" - - -class DeathPossibilitiesTaxonomyT560569OtherDiseasesOfIntestinesAndPeritoneumEntry(str, Enum): - T_560_INTESTINAL_OBSTRUCTION_WITHOUT_MENTION_OF_HERNIA = "560 Intestinal obstruction without mention of hernia" - T_562_DIVERTICULA_OF_INTESTINE = "562 Diverticula of intestine" - T_564_FUNCTIONAL_DIGESTIVE_DISORDERS__NOT_ELSEWHERE_CLASSIFIED = ( - "564 Functional digestive disorders, not elsewhere classified" - ) - T_565_ANAL_FISSURE_AND_FISTULA = "565 Anal fissure and fistula" - T_566_ABSCESS_OF_ANAL_AND_RECTAL_REGIONS = "566 Abscess of anal and rectal regions" - T_567_PERITONITIS = "567 Peritonitis" - T_568_OTHER_DISORDERS_OF_PERITONEUM = "568 Other disorders of peritoneum" - T_569_OTHER_DISORDERS_OF_INTESTINE = "569 Other disorders of intestine" - - -class DeathPossibilitiesTaxonomyT570579OtherDiseasesOfDigestiveSystemEntry(str, Enum): - T_570_ACUTE_AND_SUBACUTE_NECROSIS_OF_LIVER = "570 Acute and subacute necrosis of liver" - T_571_CHRONIC_LIVER_DISEASE_AND_CIRRHOSIS = "571 Chronic liver disease and cirrhosis" - T_572_LIVER_ABSCESS_AND_SEQUELAE_OF_CHRONIC_LIVER_DISEASE = ( - "572 Liver abscess and sequelae of chronic liver disease" - ) - T_573_OTHER_DISORDERS_OF_LIVER = "573 Other disorders of liver" - T_574_CHOLELITHIASIS = "574 Cholelithiasis" - T_575_OTHER_DISORDERS_OF_GALLBLADDER = "575 Other disorders of gallbladder" - T_576_OTHER_DISORDERS_OF_BILIARY_TRACT = "576 Other disorders of biliary tract" - T_577_DISEASES_OF_PANCREAS = "577 Diseases of pancreas" - T_578_GASTRO_INTESTINAL_HAEMORRHAGE = "578 Gastro-intestinal haemorrhage" - T_579_INTESTINAL_MALABSORPTION = "579 Intestinal malabsorption" - - -class DeathPossibilitiesTaxonomyT580589NephritisNephroticSyndromeAndNephrosisEntry(str, Enum): - T_580_ACUTE_GLOMERULONEPHRITIS = "580 Acute glomerulonephritis" - T_581_NEPHROTIC_SYNDROME = "581 Nephrotic syndrome" - T_582_CHRONIC_GLOMERULONEPHRITIS = "582 Chronic glomerulonephritis" - T_583_NEPHRITIS_AND_NEPHROPATHY__NOT_SPECIFIED_AS_ACUTE_OR_CHRONIC = ( - "583 Nephritis and nephropathy, not specified as acute or chronic" - ) - T_584_ACUTE_RENAL_FAILURE = "584 Acute renal failure" - T_585_CHRONIC_RENAL_FAILURE = "585 Chronic renal failure" - T_586_RENAL_FAILURE__UNSPECIFIED = "586 Renal failure, unspecified" - T_587_RENAL_SCLEROSIS__UNSPECIFIED = "587 Renal sclerosis, unspecified" - T_588_DISORDERS_RESULTING_FROM_IMPAIRED_RENAL_FUNCTION = "588 Disorders resulting from impaired renal function" - T_589_SMALL_KIDNEY_OF_UNKNOWN_CAUSE = "589 Small kidney of unknown cause" - - -class DeathPossibilitiesTaxonomyT590599OtherDiseasesOfUrinarySystemEntry(str, Enum): - T_590_INFECTIONS_OF_KIDNEY = "590 Infections of kidney" - T_591_HYDRONEPHROSIS = "591 Hydronephrosis" - T_592_CALCULUS_OF_KIDNEY_AND_URETER = "592 Calculus of kidney and ureter" - T_593_OTHER_DISORDERS_OF_KIDNEY_AND_URETER = "593 Other disorders of kidney and ureter" - T_594_CALCULUS_OF_LOWER_URINARY_TRACT = "594 Calculus of lower urinary tract" - T_595_CYSTITIS = "595 Cystitis" - T_596_OTHER_DISORDERS_OF_BLADDER = "596 Other disorders of bladder" - T_597_URETHRITIS__NOT_SEXUALLY_TRANSMITTED__AND_URETHRAL_SYNDROME = ( - "597 Urethritis, not sexually transmitted, and urethral syndrome" - ) - T_598_URETHRAL_STRICTURE = "598 Urethral stricture" - T_599_OTHER_DISORDERS_OF_URETHRA_AND_URINARY_TRACT = "599 Other disorders of urethra and urinary tract" - - -class DeathPossibilitiesTaxonomyT600608DiseasesOfMaleGenitalOrgansEntry(str, Enum): - T_600_HYPERPLASIA_OF_PROSTATE = "600 Hyperplasia of prostate" - T_601_INFLAMMATORY_DISEASES_OF_PROSTATE = "601 Inflammatory diseases of prostate" - T_602_OTHER_DISORDERS_OF_PROSTATE = "602 Other disorders of prostate" - T_603_HYDROCELE = "603 Hydrocele" - T_604_ORCHITIS_AND_EPIDIDYMITIS = "604 Orchitis and epididymitis" - T_605_REDUNDANT_PREPUCE_AND_PHIMOSIS = "605 Redundant prepuce and phimosis" - T_606_INFERTILITY__MALE = "606 Infertility, male" - T_607_DISORDERS_OF_PENIS = "607 Disorders of penis" - T_608_OTHER_DISORDERS_OF_MALE_GENITAL_ORGANS = "608 Other disorders of male genital organs" - - -class DeathPossibilitiesTaxonomyT610611DisordersOfBreastEntry(str, Enum): - T_610_BENIGN_MAMMARY_DYSPLASIAS = "610 Benign mammary dysplasias" - T_611_OTHER_DISORDERS_OF_BREAST = "611 Other disorders of breast" - - -class DeathPossibilitiesTaxonomyT614616InflammatoryDiseaseOfFemalePelvicOrgansEntry(str, Enum): - T_614_INFLAMMATORY_DISEASE_OF_OVARY__FALLOPIAN_TUBE__PELVIC_CELLULAR_TISSUE_AND_PERITONEUM = ( - "614 Inflammatory disease of ovary, Fallopian tube, pelvic cellular tissue and peritoneum" - ) - T_615_INFLAMMATORY_DISEASES_OF_UTERUS__EXCEPT_CERVIX = "615 Inflammatory diseases of uterus, except cervix" - T_616_INFLAMMATORY_DISEASE_OF_CERVIX__VAGINA_AND_VULVA = "616 Inflammatory disease of cervix, vagina and vulva" - - -class DeathPossibilitiesTaxonomyT617629OtherDisordersOfFemaleGenitalTractEntry(str, Enum): - T_617_ENDOMETRIOSIS = "617 Endometriosis" - T_618_GENITAL_PROLAPSE = "618 Genital prolapse" - T_619_FISTULAE_INVOLVING_FEMALE_GENITAL_TRACT = "619 Fistulae involving female genital tract" - T_620_NONINFLAMMATORY_DISORDERS_OF_OVARY__FALLOPIAN_TUBE_AND_BROAD_LIGAMENT = ( - "620 Noninflammatory disorders of ovary, Fallopian tube and broad ligament" - ) - T_621_DISORDERS_OF_UTERUS__NOT_ELSEWHERE_CLASSIFIED = "621 Disorders of uterus, not elsewhere classified" - T_622_NONINFLAMMATORY_DISORDERS_OF_CERVIX = "622 Noninflammatory disorders of cervix" - T_623_NONINFLAMMATORY_DISORDERS_OF_VAGINA = "623 Noninflammatory disorders of vagina" - T_624_NONINFLAMMATORY_DISORDERS_OF_VULVA_AND_PERINEUM = "624 Noninflammatory disorders of vulva and perineum" - T_625_PAIN_AND_OTHER_SYMPTOMS_ASSOCIATED_WITH_FEMALE_GENITAL_ORGANS = ( - "625 Pain and other symptoms associated with female genital organs" - ) - T_626_DISORDERS_OF_MENSTRUATION_AND_OTHER_ABNORMAL_BLEEDING_FROM_FEMALE_GENITAL_TRACT = ( - "626 Disorders of menstruation and other abnormal bleeding from female genital tract" - ) - T_627_MENOPAUSAL_AND_POSTMENOPAUSAL_DISORDERS = "627 Menopausal and postmenopausal disorders" - T_628_INFERTILITY__FEMALE = "628 Infertility, female" - T_629_OTHER_DISORDERS_OF_FEMALE_GENITAL_ORGANS = "629 Other disorders of female genital organs" - - -class DeathPossibilitiesTaxonomyT630633EctopicAndMolarPregnancyEntry(str, Enum): - T_630_HYDATIDIFORM_MOLE = "630 Hydatidiform mole" - T_631_OTHER_ABNORMAL_PRODUCT_OF_CONCEPTION = "631 Other abnormal product of conception" - T_632_MISSED_ABORTION = "632 Missed abortion" - T_633_ECTOPIC_PREGNANCY = "633 Ectopic pregnancy" - - -class DeathPossibilitiesTaxonomyT634639OtherPregnancyWithAbortiveOutcomeEntry(str, Enum): - T_634_SPONTANEOUS_ABORTION = "634 Spontaneous abortion" - T_635_LEGALLY_INDUCED_ABORTION = "635 Legally induced abortion" - T_636_ILLEGALLY_INDUCED_ABORTION = "636 Illegally induced abortion" - T_637_UNSPECIFIED_ABORTION = "637 Unspecified abortion" - T_638_FAILED_ATTEMPTED_ABORTION = "638 Failed attempted abortion" - T_639_COMPLICATIONS_FOLLOWING_ABORTION_AND_ECTOPIC_AND_MOLAR_PREGNANCIES = ( - "639 Complications following abortion and ectopic and molar pregnancies" - ) - - -class DeathPossibilitiesTaxonomyT640648ComplicationsMainlyRelatedToPregnancyEntry(str, Enum): - T_640_HAEMORRHAGE_IN_EARLY_PREGNANCY = "640 Haemorrhage in early pregnancy" - T_641_ANTEPARTUM_HAEMORRHAGE__ABRUPTIO_PLACENTAE_AND_PLACENTA_PRAEVIA = ( - "641 Antepartum haemorrhage, abruptio placentae and placenta praevia" - ) - T_642_HYPERTENSION_COMPLICATING_PREGNANCY__CHILDBIRTH_AND_THE_PUERPERIUM = ( - "642 Hypertension complicating pregnancy, childbirth and the puerperium" - ) - T_643_EXCESSIVE_VOMITING_IN_PREGNANCY = "643 Excessive vomiting in pregnancy" - T_644_EARLY_OR_THREATENED_LABOUR = "644 Early or threatened labour" - T_645_PROLONGED_PREGNANCY = "645 Prolonged pregnancy" - T_646_OTHER_COMPLICATIONS_OF_PREGNANCY__NOT_ELSEWHERE_CLASSIFIED = ( - "646 Other complications of pregnancy, not elsewhere classified" - ) - T_647_INFECTIVE_AND_PARASITIC_CONDITIONS_IN_THE_MOTHER_CLASSIFIABLE_ELSEWHERE_BUT_COMPLICATING_PREGNANCY__CHILDBIRTH_AND_THE_PUERPERIUM = "647 Infective and parasitic conditions in the mother classifiable elsewhere but complicating pregnancy, childbirth and the puerperium" - T_648_OTHER_CURRENT_CONDITIONS_IN_THE_MOTHER_CLASSIFIABLE_ELSEWHERE_BUT_COMPLICATING_PREGNANCY__CHILDBIRTH_AND_THE_PUERPERIUM = "648 Other current conditions in the mother classifiable elsewhere but complicating pregnancy, childbirth and the puerperium" - - -class DeathPossibilitiesTaxonomyT650659NormalDeliveryAndOtherIndicationsForCareInPregnancyLabourAndDeliveryEntry( - str, Enum -): - T_650_DELIVERY_IN_A_COMPLETELY_NORMAL_CASE = "650 Delivery in a completely normal case" - T_651_MULTIPLE_GESTATION = "651 Multiple gestation" - T_652_MALPOSITION_AND_MALPRESENTATION_OF_FOETUS = "652 Malposition and malpresentation of foetus" - T_653_DISPROPORTION = "653 Disproportion" - T_654_ABNORMALITY_OF_ORGANS_AND_SOFT_TISSUES_OF_PELVIS = "654 Abnormality of organs and soft tissues of pelvis" - T_655_KNOWN_OR_SUSPECTED_FOETAL_ABNORMALITY_AFFECTING_MANAGEMENT_OF_MOTHER = ( - "655 Known or suspected foetal abnormality affecting management of mother" - ) - T_656_OTHER_FOETAL_AND_PLACENTAL_PROBLEMS_AFFECTING_MANAGEMENT_OF_MOTHER = ( - "656 Other foetal and placental problems affecting management of mother" - ) - T_657_POLYHYDRAMNIOS = "657 Polyhydramnios" - T_658_OTHER_PROBLEMS_ASSOCIATED_WITH_AMNIOTIC_CAVITY_AND_MEMBRANES = ( - "658 Other problems associated with amniotic cavity and membranes" - ) - T_659_OTHER_INDICATIONS_FOR_CARE_OR_INTERVENTION_RELATED_TO_LABOUR_AND_DELIVERY_AND_NOT_ELSEWHERE_CLASSIFIED = ( - "659 Other indications for care or intervention related to labour and delivery and not elsewhere classified" - ) - - -class DeathPossibilitiesTaxonomyT660669ComplicationsOccurringMainlyInTheCourseOfLabourAndDeliveryEntry(str, Enum): - T_660_OBSTRUCTED_LABOUR = "660 Obstructed labour" - T_661_ABNORMALITY_OF_FORCES_OF_LABOUR = "661 Abnormality of forces of labour" - T_662_LONG_LABOUR = "662 Long labour" - T_663_UMBILICAL_CORD_COMPLICATIONS = "663 Umbilical cord complications" - T_664_TRAUMA_TO_PERINEUM_AND_VULVA_DURING_DELIVERY = "664 Trauma to perineum and vulva during delivery" - T_665_OTHER_OBSTETRICAL_TRAUMA = "665 Other obstetrical trauma" - T_666_POSTPARTUM_HAEMORRHAGE = "666 Postpartum haemorrhage" - T_667_RETAINED_PLACENTA_OR_MEMBRANES__WITHOUT_HAEMORRHAGE = ( - "667 Retained placenta or membranes, without haemorrhage" - ) - T_668_COMPLICATIONS_OF_THE_ADMINISTRATION_OF_ANAESTHETIC_OR_OTHER_SEDATION_IN_LABOUR_AND_DELIVERY = ( - "668 Complications of the administration of anaesthetic or other sedation in labour and delivery" - ) - T_669_OTHER_COMPLICATIONS_OF_LABOUR_AND_DELIVERY__NOT_ELSEWHERE_CLASSIFIED = ( - "669 Other complications of labour and delivery, not elsewhere classified" - ) - - -class DeathPossibilitiesTaxonomyT670677ComplicationsOfThePuerperiumEntry(str, Enum): - T_670_MAJOR_PUERPERAL_INFECTION = "670 Major puerperal infection" - T_671_VENOUS_COMPLICATIONS_IN_PREGNANCY_AND_THE_PUERPERIUM = ( - "671 Venous complications in pregnancy and the puerperium" - ) - T_672_PYREXIA_OF_UNKNOWN_ORIGIN_DURING_THE_PUERPERIUM = "672 Pyrexia of unknown origin during the puerperium" - T_673_OBSTETRICAL_PULMONARY_EMBOLISM = "673 Obstetrical pulmonary embolism" - T_674_OTHER_AND_UNSPECIFIED_COMPLICATIONS_OF_THE_PUERPERIUM__NOT_ELSEWHERE_CLASSIFIED = ( - "674 Other and unspecified complications of the puerperium, not elsewhere classified" - ) - T_675_INFECTIONS_OF_THE_BREAST_AND_NIPPLE_ASSOCIATED_WITH_CHILDBIRTH = ( - "675 Infections of the breast and nipple associated with childbirth" - ) - T_676_OTHER_DISORDERS_OF_THE_BREAST_ASSOCIATED_WITH_CHILDBIRTH__AND_DISORDERS_OF_LACTATION = ( - "676 Other disorders of the breast associated with childbirth, and disorders of lactation" - ) - T_677_LATE_EFFECT_OF_COMPLICATION_OF_PREGNANCY__CHILDBIRTH_AND_THE_PUERPERIUM = ( - "677 Late effect of complication of pregnancy, childbirth and the puerperium" - ) - - -class DeathPossibilitiesTaxonomyT680686InfectionsOfSkinAndSubcutaneousTissueEntry(str, Enum): - T_680_CARBUNCLE_AND_FURUNCLE = "680 Carbuncle and furuncle" - T_681_CELLULITIS_AND_ABSCESS_OF_FINGER_AND_TOE = "681 Cellulitis and abscess of finger and toe" - T_682_OTHER_CELLULITIS_AND_ABSCESS = "682 Other cellulitis and abscess" - T_683_ACUTE_LYMPHADENITIS = "683 Acute lymphadenitis" - T_684_IMPETIGO = "684 Impetigo" - T_685_PILONIDAL_CYST = "685 Pilonidal cyst" - T_686_OTHER_LOCAL_INFECTIONS_OF_SKIN_AND_SUBCUTANEOUS_TISSUE = ( - "686 Other local infections of skin and subcutaneous tissue" - ) - - -class DeathPossibilitiesTaxonomyT690698OtherInflammatoryConditionsOfSkinAndSubcutaneousTissueEntry(str, Enum): - T_690_ERYTHEMATOSQUAMOUS_DERMATOSIS = "690 Erythematosquamous dermatosis" - T_691_ATOPIC_DERMATITIS_AND_RELATED_CONDITIONS = "691 Atopic dermatitis and related conditions" - T_692_CONTACT_DERMATITIS_AND_OTHER_ECZEMA = "692 Contact dermatitis and other eczema" - T_693_DERMATITIS_DUE_TO_SUBSTANCES_TAKEN_INTERNALLY = "693 Dermatitis due to substances taken internally" - T_694_BULLOUS_DERMATOSES = "694 Bullous dermatoses" - T_695_ERYTHEMATOUS_CONDITIONS = "695 Erythematous conditions" - T_696_PSORIASIS_AND_SIMILAR_DISORDERS = "696 Psoriasis and similar disorders" - T_697_LICHEN = "697 Lichen" - T_698_PRURITUS_AND_RELATED_CONDITIONS = "698 Pruritus and related conditions" - - -class DeathPossibilitiesTaxonomyT700709OtherDiseasesOfSkinAndSubcutaneousTissueEntry(str, Enum): - T_700_CORNS_AND_CALLOSITIES = "700 Corns and callosities" - T_701_OTHER_HYPERTROPHIC_AND_ATROPHIC_CONDITIONS_OF_SKIN = "701 Other hypertrophic and atrophic conditions of skin" - T_702_OTHER_DERMATOSES = "702 Other dermatoses" - T_703_DISEASES_OF_NAIL = "703 Diseases of nail" - T_704_DISEASES_OF_HAIR_AND_HAIR_FOLLICLES = "704 Diseases of hair and hair follicles" - T_705_DISORDERS_OF_SWEAT_GLANDS = "705 Disorders of sweat glands" - T_706_DISEASES_OF_SEBACEOUS_GLANDS = "706 Diseases of sebaceous glands" - T_707_CHRONIC_ULCER_OF_SKIN = "707 Chronic ulcer of skin" - T_708_URTICARIA = "708 Urticaria" - T_709_OTHER_DISORDERS_OF_SKIN_AND_SUBCUTANEOUS_TISSUE = "709 Other disorders of skin and subcutaneous tissue" - - -class DeathPossibilitiesTaxonomyT710719ArthropathiesAndRelatedDisordersEntry(str, Enum): - T_710_DIFFUSE_DISEASES_OF_CONNECTIVE_TISSUE = "710 Diffuse diseases of connective tissue" - T_711_ARTHROPATHY_ASSOCIATED_WITH_INFECTIONS = "711 Arthropathy associated with infections" - T_712_CRYSTAL_ARTHROPATHIES = "712 Crystal arthropathies" - T_713_ARTHROPATHY_ASSOCIATED_WITH_OTHER_DISORDERS_CLASSIFIED_ELSEWHERE = ( - "713 Arthropathy associated with other disorders classified elsewhere" - ) - T_714_RHEUMATOID_ARTHRITIS_AND_OTHER_INFLAMMATORY_POLYARTHROPATHIES = ( - "714 Rheumatoid arthritis and other inflammatory polyarthropathies" - ) - T_715_OSTEO_ARTHROSIS_AND_ALLIED_DISORDERS = "715 Osteo-arthrosis and allied disorders" - T_716_OTHER_AND_UNSPECIFIED_ARTHROPATHIES = "716 Other and unspecified arthropathies" - T_717_INTERNAL_DERANGEMENT_OF_KNEE = "717 Internal derangement of knee" - T_718_OTHER_DERANGEMENT_OF_JOINT = "718 Other derangement of joint" - T_719_OTHER_AND_UNSPECIFIED_DISORDER_OF_JOINT = "719 Other and unspecified disorder of joint" - - -class DeathPossibilitiesTaxonomyT720724DorsopathiesEntry(str, Enum): - T_720_ANKYLOSING_SPONDYLITIS_AND_OTHER_INFLAMMATORY_SPONDYLOPATHIES = ( - "720 Ankylosing spondylitis and other inflammatory spondylopathies" - ) - T_721_SPONDYLOSIS_AND_ALLIED_DISORDERS = "721 Spondylosis and allied disorders" - T_722_INTERVERTEBRAL_DISK_DISORDERS = "722 Intervertebral disk disorders" - T_723_OTHER_DISORDERS_OF_CERVICAL_REGION = "723 Other disorders of cervical region" - T_724_OTHER_AND_UNSPECIFIED_DISORDERS_OF_BACK = "724 Other and unspecified disorders of back" - - -class DeathPossibilitiesTaxonomyT725729RheumatismExcludingTheBackEntry(str, Enum): - T_725_POLYMYALGIA_RHEUMATICA = "725 Polymyalgia rheumatica" - T_726_PERIPHERAL_ENTHESOPATHIES_AND_ALLIED_SYNDROMES = "726 Peripheral enthesopathies and allied syndromes" - T_727_OTHER_DISORDERS_OF_SYNOVIUM__TENDON_AND_BURSA = "727 Other disorders of synovium, tendon and bursa" - T_728_DISORDERS_OF_MUSCLE__LIGAMENT_AND_FASCIA = "728 Disorders of muscle, ligament and fascia" - T_729_OTHER_DISORDERS_OF_SOFT_TISSUES = "729 Other disorders of soft tissues" - - -class DeathPossibilitiesTaxonomyT730739OsteopathiesChondropathiesAndAcquiredMusculoskeletalDeformitiesEntry(str, Enum): - T_730_OSTEOMYELITIS__PERIOSTITIS_AND_OTHER_INFECTIONS_INVOLVING_BONE = ( - "730 Osteomyelitis, periostitis and other infections involving bone" - ) - T_731_OSTEITIS_DEFORMANS_AND_OSTEOPATHIES_ASSOCIATED_WITH_OTHER_DISORDERS_CLASSIFIED_ELSEWHERE = ( - "731 Osteitis deformans and osteopathies associated with other disorders classified elsewhere" - ) - T_732_OSTEOCHONDROPATHIES = "732 Osteochondropathies" - T_733_OTHER_DISORDERS_OF_BONE_AND_CARTILAGE = "733 Other disorders of bone and cartilage" - T_734_FLAT_FOOT = "734 Flat foot" - T_735_ACQUIRED_DEFORMITIES_OF_TOE = "735 Acquired deformities of toe" - T_736_OTHER_ACQUIRED_DEFORMITIES_OF_LIMBS = "736 Other acquired deformities of limbs" - T_737_CURVATURE_OF_SPINE = "737 Curvature of spine" - T_738_OTHER_ACQUIRED_DEFORMITY = "738 Other acquired deformity" - T_739_NONALLOPATHIC_LESIONS__NOT_ELSEWHERE_CLASSIFIED = "739 Nonallopathic lesions, not elsewhere classified" - - -class DeathPossibilitiesTaxonomyT740759CongenitalAnomaliesEntry(str, Enum): - T_740_ANENCEPHALUS_AND_SIMILAR_ANOMALIES = "740 Anencephalus and similar anomalies" - T_741_SPINA_BIFIDA = "741 Spina bifida" - T_742_OTHER_CONGENITAL_ANOMALIES_OF_NERVOUS_SYSTEM = "742 Other congenital anomalies of nervous system" - T_743_CONGENITAL_ANOMALIES_OF_EYE = "743 Congenital anomalies of eye" - T_744_CONGENITAL_ANOMALIES_OF_EAR__FACE_AND_NECK = "744 Congenital anomalies of ear, face and neck" - T_745_BULBUS_CORDIS_ANOMALIES_AND_ANOMALIES_OF_CARDIAC_SEPTAL_CLOSURE = ( - "745 Bulbus cordis anomalies and anomalies of cardiac septal closure" - ) - T_746_OTHER_CONGENITAL_ANOMALIES_OF_HEART = "746 Other congenital anomalies of heart" - T_747_OTHER_CONGENITAL_ANOMALIES_OF_CIRCULATORY_SYSTEM = "747 Other congenital anomalies of circulatory system" - T_748_CONGENITAL_ANOMALIES_OF_RESPIRATORY_SYSTEM = "748 Congenital anomalies of respiratory system" - T_749_CLEFT_PALATE_AND_CLEFT_LIP = "749 Cleft palate and cleft lip" - T_750_OTHER_CONGENITAL_ANOMALIES_OF_UPPER_ALIMENTARY_TRACT = ( - "750 Other congenital anomalies of upper alimentary tract" - ) - T_751_OTHER_CONGENITAL_ANOMALIES_OF_DIGESTIVE_SYSTEM = "751 Other congenital anomalies of digestive system" - T_752_CONGENITAL_ANOMALIES_OF_GENITAL_ORGANS = "752 Congenital anomalies of genital organs" - T_753_CONGENITAL_ANOMALIES_OF_URINARY_SYSTEM = "753 Congenital anomalies of urinary system" - T_754_CERTAIN_CONGENITAL_MUSCULOSKELETAL_DEFORMITIES = "754 Certain congenital musculoskeletal deformities" - T_755_OTHER_CONGENITAL_ANOMALIES_OF_LIMBS = "755 Other congenital anomalies of limbs" - T_756_OTHER_CONGENITAL_MUSCULOSKELETAL_ANOMALIES = "756 Other congenital musculoskeletal anomalies" - T_757_CONGENITAL_ANOMALIES_OF_THE_INTEGUMENT = "757 Congenital anomalies of the integument" - T_758_CHROMOSOMAL_ANOMALIES = "758 Chromosomal anomalies" - T_759_OTHER_AND_UNSPECIFIED_CONGENITAL_ANOMALIES = "759 Other and unspecified congenital anomalies" - - -class DeathPossibilitiesTaxonomyT760763MaternalCausesOfPerinatalMorbidityAndMortalityEntry(str, Enum): - T_760_FOETUS_OR_NEWBORN_AFFECTED_BY_MATERNAL_CONDITIONS_WHICH_MAY_BE_UNRELATED_TO_PRESENT_PREGNANCY = ( - "760 Foetus or newborn affected by maternal conditions which may be unrelated to present pregnancy" - ) - T_761_FOETUS_OR_NEWBORN_AFFECTED_BY_MATERNAL_COMPLICATIONS_OF_PREGNANCY = ( - "761 Foetus or newborn affected by maternal complications of pregnancy" - ) - T_762_FOETUS_OR_NEWBORN_AFFECTED_BY_COMPLICATIONS_OF_PLACENTA__CORD_AND_MEMBRANES = ( - "762 Foetus or newborn affected by complications of placenta, cord and membranes" - ) - T_763_FOETUS_OR_NEWBORN_AFFECTED_BY_OTHER_COMPLICATIONS_OF_LABOUR_AND_DELIVERY = ( - "763 Foetus or newborn affected by other complications of labour and delivery" - ) - - -class DeathPossibilitiesTaxonomyT764779OtherConditionsOriginatingInThePerinatalPeriodEntry(str, Enum): - T_764_SLOW_FOETAL_GROWTH_AND_FOETAL_MALNUTRITION = "764 Slow foetal growth and foetal malnutrition" - T_765_DISORDERS_RELATING_TO_SHORT_GESTATION_AND_UNSPECIFIED_LOW_BIRTHWEIGHT = ( - "765 Disorders relating to short gestation and unspecified low birthweight" - ) - T_766_DISORDERS_RELATING_TO_LONG_GESTATION_AND_HIGH_BIRTHWEIGHT = ( - "766 Disorders relating to long gestation and high birthweight" - ) - T_767_BIRTH_TRAUMA = "767 Birth trauma" - T_768_INTRA_UTERINE_HYPOXIA_AND_BIRTH_ASPHYXIA = "768 Intra-uterine hypoxia and birth asphyxia" - T_769_RESPIRATORY_DISTRESS_SYNDROME = "769 Respiratory distress syndrome" - T_770_OTHER_RESPIRATORY_CONDITIONS_OF_FOETUS_AND_NEWBORN = "770 Other respiratory conditions of foetus and newborn" - T_771_INFECTIONS_SPECIFIC_TO_THE_PERINATAL_PERIOD = "771 Infections specific to the perinatal period" - T_772_FOETAL_AND_NEONATAL_HAEMORRHAGE = "772 Foetal and neonatal haemorrhage" - T_773_HAEMOLYTIC_DISEASE_OF_FOETUS_OR_NEWBORN__DUE_TO_ISOIMMUNISATION = ( - "773 Haemolytic disease of foetus or newborn, due to isoimmunisation" - ) - T_774_OTHER_PERINATAL_JAUNDICE = "774 Other perinatal jaundice" - T_775_ENDOCRINE_AND_METABOLIC_DISTURBANCES_SPECIFIC_TO_THE_FOETUS_AND_NEWBORN = ( - "775 Endocrine and metabolic disturbances specific to the foetus and newborn" - ) - T_776_HAEMATOLOGICAL_DISORDERS_OF_FOETUS_AND_NEWBORN = "776 Haematological disorders of foetus and newborn" - T_777_PERINATAL_DISORDERS_OF_DIGESTIVE_SYSTEM = "777 Perinatal disorders of digestive system" - T_778_CONDITIONS_INVOLVING_THE_INTEGUMENT_AND_TEMPERATURE_REGULATION_OF_FOETUS_AND_NEWBORN = ( - "778 Conditions involving the integument and temperature regulation of foetus and newborn" - ) - T_779_OTHER_AND_ILL_DEFINED_CONDITIONS_ORIGINATING_IN_THE_PERINATAL_PERIOD = ( - "779 Other and ill-defined conditions originating in the perinatal period" - ) - - -class DeathPossibilitiesTaxonomyT780789SymptomsEntry(str, Enum): - T_780_GENERAL_SYMPTOMS = "780 General symptoms" - T_781_SYMPTOMS_INVOLVING_NERVOUS_AND_MUSCULOSKELETAL_SYSTEMS = ( - "781 Symptoms involving nervous and musculoskeletal systems" - ) - T_782_SYMPTOMS_INVOLVING_SKIN_AND_OTHER_INTEGUMENTARY_TISSUE = ( - "782 Symptoms involving skin and other integumentary tissue" - ) - T_783_SYMPTOMS_CONCERNING_NUTRITION__METABOLISM_AND_DEVELOPMENT = ( - "783 Symptoms concerning nutrition, metabolism and development" - ) - T_784_SYMPTOMS_INVOLVING_HEAD_AND_NECK = "784 Symptoms involving head and neck" - T_785_SYMPTOMS_INVOLVING_CARDIOVASCULAR_SYSTEM = "785 Symptoms involving cardiovascular system" - T_786_SYMPTOMS_INVOLVING_RESPIRATORY_SYSTEM_AND_OTHER_CHEST_SYMPTOMS = ( - "786 Symptoms involving respiratory system and other chest symptoms" - ) - T_787_SYMPTOMS_INVOLVING_DIGESTIVE_SYSTEM = "787 Symptoms involving digestive system" - T_788_SYMPTOMS_INVOLVING_URINARY_SYSTEM = "788 Symptoms involving urinary system" - T_789_OTHER_SYMPTOMS_INVOLVING_ABDOMEN_AND_PELVIS = "789 Other symptoms involving abdomen and pelvis" - - -class DeathPossibilitiesTaxonomyT790796NonspecificAbnormalFindingsEntry(str, Enum): - T_790_NONSPECIFIC_FINDINGS_ON_EXAMINATION_OF_BLOOD = "790 Nonspecific findings on examination of blood" - T_791_NONSPECIFIC_FINDINGS_ON_EXAMINATION_OF_URINE = "791 Nonspecific findings on examination of urine" - T_792_NONSPECIFIC_ABNORMAL_FINDINGS_IN_OTHER_BODY_SUBSTANCES = ( - "792 Nonspecific abnormal findings in other body substances" - ) - T_793_NONSPECIFIC_ABNORMAL_FINDINGS_ON_RADIOLOGICAL_AND_OTHER_EXAMINATION_OF_BODY_STRUCTURE = ( - "793 Nonspecific abnormal findings on radiological and other examination of body structure" - ) - T_794_NONSPECIFIC_ABNORMAL_RESULTS_OF_FUNCTION_STUDIES = "794 Nonspecific abnormal results of function studies" - T_795_NONSPECIFIC_ABNORMAL_HISTOLOGICAL_AND_IMMUNOLOGICAL_FINDINGS = ( - "795 Nonspecific abnormal histological and immunological findings" - ) - T_796_OTHER_NONSPECIFIC_ABNORMAL_FINDINGS = "796 Other nonspecific abnormal findings" - - -class DeathPossibilitiesTaxonomyT797799IllDefinedAndUnknownCausesOfMorbidityAndMortalityEntry(str, Enum): - T_797_SENILITY_WITHOUT_MENTION_OF_PSYCHOSIS = "797 Senility without mention of psychosis" - T_798_SUDDEN_DEATH__CAUSE_UNKNOWN = "798 Sudden death, cause unknown" - T_799_OTHER_ILL_DEFINED_AND_UNKNOWN_CAUSES_OF_MORBIDITY_AND_MORTALITY = ( - "799 Other ill-defined and unknown causes of morbidity and mortality" - ) - - -class DeathPossibilitiesTaxonomyT800804FractureOfSkullEntry(str, Enum): - T_800_FRACTURE_OF_VAULT_OF_SKULL = "800 Fracture of vault of skull" - T_801_FRACTURE_OF_BASE_OF_SKULL = "801 Fracture of base of skull" - T_802_FRACTURE_OF_FACE_BONES = "802 Fracture of face bones" - T_803_OTHER_AND_UNQUALIFIED_SKULL_FRACTURES = "803 Other and unqualified skull fractures" - T_804_MULTIPLE_FRACTURES_INVOLVING_SKULL_OR_FACE_WITH_OTHER_BONES = ( - "804 Multiple fractures involving skull or face with other bones" - ) - - -class DeathPossibilitiesTaxonomyT805809FractureOfNeckAndTrunkEntry(str, Enum): - T_805_FRACTURE_OF_VERTEBRAL_COLUMN_WITHOUT_MENTION_OF_SPINAL_CORD_LESION = ( - "805 Fracture of vertebral column without mention of spinal cord lesion" - ) - T_806_FRACTURE_OF_VERTEBRAL_COLUMN_WITH_SPINAL_CORD_LESION = ( - "806 Fracture of vertebral column with spinal cord lesion" - ) - T_807_FRACTURE_OF_RIB_S___STERNUM__LARYNX_AND_TRACHEA = "807 Fracture of rib(s), sternum, larynx and trachea" - T_808_FRACTURE_OF_PELVIS = "808 Fracture of pelvis" - T_809_ILL_DEFINED_FRACTURES_OF_TRUNK = "809 Ill-defined fractures of trunk" - - -class DeathPossibilitiesTaxonomyT810819FractureOfUpperLimbEntry(str, Enum): - T_810_FRACTURE_OF_CLAVICLE = "810 Fracture of clavicle" - T_811_FRACTURE_OF_SCAPULA = "811 Fracture of scapula" - T_812_FRACTURE_OF_HUMERUS = "812 Fracture of humerus" - T_813_FRACTURE_OF_RADIUS_AND_ULNA = "813 Fracture of radius and ulna" - T_814_FRACTURE_OF_CARPAL_BONE_S_ = "814 Fracture of carpal bone(s)" - T_815_FRACTURE_OF_METACARPAL_BONE_S_ = "815 Fracture of metacarpal bone(s)" - T_816_FRACTURE_OF_ONE_OR_MORE_PHALANGES_OF_HAND = "816 Fracture of one or more phalanges of hand" - T_817_MULTIPLE_FRACTURES_OF_HAND_BONES = "817 Multiple fractures of hand bones" - T_818_ILL_DEFINED_FRACTURES_OF_UPPER_LIMB = "818 Ill-defined fractures of upper limb" - T_819_MULTIPLE_FRACTURES_INVOLVING_BOTH_UPPER_LIMBS_AND_UPPER_LIMB_WITH_RIB_S__AND_STERNUM = ( - "819 Multiple fractures involving both upper limbs and upper limb with rib(s) and sternum" - ) - - -class DeathPossibilitiesTaxonomyT820829FractureOfLowerLimbEntry(str, Enum): - T_820_FRACTURE_OF_NECK_OF_FEMUR = "820 Fracture of neck of femur" - T_821_FRACTURE_OF_OTHER_AND_UNSPECIFIED_PARTS_OF_FEMUR = "821 Fracture of other and unspecified parts of femur" - T_822_FRACTURE_OF_PATELLA = "822 Fracture of patella" - T_823_FRACTURE_OF_TIBIA_AND_FIBULA = "823 Fracture of tibia and fibula" - T_824_FRACTURE_OF_ANKLE = "824 Fracture of ankle" - T_825_FRACTURE_OF_ONE_OR_MORE_TARSAL_AND_METATARSAL_BONES = ( - "825 Fracture of one or more tarsal and metatarsal bones" - ) - T_826_FRACTURE_OF_ONE_OR_MORE_PHALANGES_OF_FOOT = "826 Fracture of one or more phalanges of foot" - T_827_OTHER__MULTIPLE_AND_ILL_DEFINED_FRACTURES_OF_LOWER_LIMB = ( - "827 Other, multiple and ill-defined fractures of lower limb" - ) - T_828_MULTIPLE_FRACTURES_INVOLVING_BOTH_LOWER_LIMBS__LOWER_WITH_UPPER_LIMB_AND_LOWER_LIMB_S__WITH_RIB_S__AND_STERNUM = "828 Multiple fractures involving both lower limbs, lower with upper limb and lower limb(s) with rib(s) and sternum" - T_829_FRACTURE_OF_UNSPECIFIED_BONES = "829 Fracture of unspecified bones" - - -class DeathPossibilitiesTaxonomyT830839DislocationEntry(str, Enum): - T_830_DISLOCATION_OF_JAW = "830 Dislocation of jaw" - T_831_DISLOCATION_OF_SHOULDER = "831 Dislocation of shoulder" - T_832_DISLOCATION_OF_ELBOW = "832 Dislocation of elbow" - T_833_DISLOCATION_OF_WRIST = "833 Dislocation of wrist" - T_834_DISLOCATION_OF_FINGER = "834 Dislocation of finger" - T_835_DISLOCATION_OF_HIP = "835 Dislocation of hip" - T_836_DISLOCATION_OF_KNEE = "836 Dislocation of knee" - T_837_DISLOCATION_OF_ANKLE = "837 Dislocation of ankle" - T_838_DISLOCATION_OF_FOOT = "838 Dislocation of foot" - T_839_OTHER__MULTIPLE_AND_ILL_DEFINED_DISLOCATIONS = "839 Other, multiple and ill-defined dislocations" - - -class DeathPossibilitiesTaxonomyT840848SprainsAndStrainsOfJointsAndAdjacentMusclesEntry(str, Enum): - T_840_SPRAINS_AND_STRAINS_OF_SHOULDER_AND_UPPER_ARM = "840 Sprains and strains of shoulder and upper arm" - T_841_SPRAINS_AND_STRAINS_OF_ELBOW_AND_FOREARM = "841 Sprains and strains of elbow and forearm" - T_842_SPRAINS_AND_STRAINS_OF_WRIST_AND_HAND = "842 Sprains and strains of wrist and hand" - T_843_SPRAINS_AND_STRAINS_OF_HIP_AND_THIGH = "843 Sprains and strains of hip and thigh" - T_844_SPRAINS_AND_STRAINS_OF_KNEE_AND_LEG = "844 Sprains and strains of knee and leg" - T_845_SPRAINS_AND_STRAINS_OF_ANKLE_AND_FOOT = "845 Sprains and strains of ankle and foot" - T_846_SPRAINS_AND_STRAINS_OF_SACRO_ILIAC_REGION = "846 Sprains and strains of sacro-iliac region" - T_847_SPRAINS_AND_STRAINS_OF_OTHER_AND_UNSPECIFIED_PARTS_OF_BACK = ( - "847 Sprains and strains of other and unspecified parts of back" - ) - T_848_OTHER_AND_ILL_DEFINED_SPRAINS_AND_STRAINS = "848 Other and ill-defined sprains and strains" - - -class DeathPossibilitiesTaxonomyT850854IntracranialInjuryExcludingThoseWithSkullFractureEntry(str, Enum): - T_850_CONCUSSION = "850 Concussion" - T_851_CEREBRAL_LACERATION_AND_CONTUSION = "851 Cerebral laceration and contusion" - T_852_SUBARACHNOID__SUBDURAL_AND_EXTRADURAL_HAEMORRHAGE__FOLLOWING_INJURY = ( - "852 Subarachnoid, subdural and extradural haemorrhage, following injury" - ) - T_853_OTHER_AND_UNSPECIFIED_INTRACRANIAL_HAEMORRHAGE_FOLLOWING_INJURY = ( - "853 Other and unspecified intracranial haemorrhage following injury" - ) - T_854_INTRACRANIAL_INJURY_OF_OTHER_AND_UNSPECIFIED_NATURE = ( - "854 Intracranial injury of other and unspecified nature" - ) - - -class DeathPossibilitiesTaxonomyT860869InternalInjuryOfChestAbdomenAndPelvisEntry(str, Enum): - T_860_TRAUMATIC_PNEUMOTHORAX_AND_HAEMOTHORAX = "860 Traumatic pneumothorax and haemothorax" - T_861_INJURY_TO_HEART_AND_LUNG = "861 Injury to heart and lung" - T_862_INJURY_TO_OTHER_AND_UNSPECIFIED_INTRATHORACIC_ORGANS = ( - "862 Injury to other and unspecified intrathoracic organs" - ) - T_863_INJURY_TO_GASTRO_INTESTINAL_TRACT = "863 Injury to gastro-intestinal tract" - T_864_INJURY_TO_LIVER = "864 Injury to liver" - T_865_INJURY_TO_SPLEEN = "865 Injury to spleen" - T_866_INJURY_TO_KIDNEY = "866 Injury to kidney" - T_867_INJURY_TO_PELVIC_ORGANS = "867 Injury to pelvic organs" - T_868_INJURY_TO_OTHER_INTRA_ABDOMINAL_ORGANS = "868 Injury to other intra-abdominal organs" - T_869_INTERNAL_INJURY_TO_UNSPECIFIED_OR_ILL_DEFINED_ORGANS = ( - "869 Internal injury to unspecified or ill-defined organs" - ) - - -class DeathPossibilitiesTaxonomyT870879OpenWoundOfHeadNeckAndTrunkEntry(str, Enum): - T_870_OPEN_WOUND_OF_OCULAR_ADNEXA = "870 Open wound of ocular adnexa" - T_871_OPEN_WOUND_OF_EYEBALL = "871 Open wound of eyeball" - T_872_OPEN_WOUND_OF_EAR = "872 Open wound of ear" - T_873_OTHER_OPEN_WOUND_OF_HEAD = "873 Other open wound of head" - T_874_OPEN_WOUND_OF_NECK = "874 Open wound of neck" - T_875_OPEN_WOUND_OF_CHEST__WALL_ = "875 Open wound of chest (wall)" - T_876_OPEN_WOUND_OF_BACK = "876 Open wound of back" - T_877_OPEN_WOUND_OF_BUTTOCK = "877 Open wound of buttock" - T_878_OPEN_WOUND_OF_GENITAL_ORGANS__EXTERNAL___INCLUDING_TRAUMATIC_AMPUTATION = ( - "878 Open wound of genital organs (external), including traumatic amputation" - ) - T_879_OPEN_WOUND_OF_OTHER_AND_UNSPECIFIED_SITES__EXCEPT_LIMBS = ( - "879 Open wound of other and unspecified sites, except limbs" - ) - - -class DeathPossibilitiesTaxonomyT880887OpenWoundOfUpperLimbEntry(str, Enum): - T_880_OPEN_WOUND_OF_SHOULDER_AND_UPPER_ARM = "880 Open wound of shoulder and upper arm" - T_881_OPEN_WOUND_OF_ELBOW__FOREARM_AND_WRIST = "881 Open wound of elbow, forearm and wrist" - T_882_OPEN_WOUND_OF_HAND_EXCEPT_FINGER_S__ALONE = "882 Open wound of hand except finger(s) alone" - T_883_OPEN_WOUND_OF_FINGER_S_ = "883 Open wound of finger(s)" - T_884_MULTIPLE_AND_UNSPECIFIED_OPEN_WOUND_OF_UPPER_LIMB = "884 Multiple and unspecified open wound of upper limb" - T_885_TRAUMATIC_AMPUTATION_OF_THUMB__COMPLETE___PARTIAL_ = "885 Traumatic amputation of thumb (complete) (partial)" - T_886_TRAUMATIC_AMPUTATION_OF_OTHER_FINGER_S___COMPLETE___PARTIAL_ = ( - "886 Traumatic amputation of other finger(s) (complete) (partial)" - ) - T_887_TRAUMATIC_AMPUTATION_OF_ARM_AND_HAND__COMPLETE___PARTIAL_ = ( - "887 Traumatic amputation of arm and hand (complete) (partial)" - ) - - -class DeathPossibilitiesTaxonomyT890897OpenWoundOfLowerLimbEntry(str, Enum): - T_890_OPEN_WOUND_OF_HIP_AND_THIGH = "890 Open wound of hip and thigh" - T_891_OPEN_WOUND_OF_KNEE__LEG__EXCEPT_THIGH__AND_ANKLE = "891 Open wound of knee, leg [except thigh] and ankle" - T_892_OPEN_WOUND_OF_FOOT_EXCEPT_TOE_S__ALONE = "892 Open wound of foot except toe(s) alone" - T_893_OPEN_WOUND_OF_TOE_S_ = "893 Open wound of toe(s)" - T_894_MULTIPLE_AND_UNSPECIFIED_OPEN_WOUND_OF_LOWER_LIMB = "894 Multiple and unspecified open wound of lower limb" - T_895_TRAUMATIC_AMPUTATION_OF_TOE_S___COMPLETE___PARTIAL_ = ( - "895 Traumatic amputation of toe(s) (complete) (partial)" - ) - T_896_TRAUMATIC_AMPUTATION_OF_FOOT__COMPLETE___PARTIAL_ = "896 Traumatic amputation of foot (complete) (partial)" - T_897_TRAUMATIC_AMPUTATION_OF_LEG_S___COMPLETE___PARTIAL_ = ( - "897 Traumatic amputation of leg(s) (complete) (partial)" - ) - - -class DeathPossibilitiesTaxonomyT900904InjuryToBloodVesselsEntry(str, Enum): - T_900_INJURY_TO_BLOOD_VESSELS_OF_HEAD_AND_NECK = "900 Injury to blood vessels of head and neck" - T_901_INJURY_TO_BLOOD_VESSELS_OF_THORAX = "901 Injury to blood vessels of thorax" - T_902_INJURY_TO_BLOOD_VESSELS_OF_ABDOMEN_AND_PELVIS = "902 Injury to blood vessels of abdomen and pelvis" - T_903_INJURY_TO_BLOOD_VESSELS_OF_UPPER_EXTREMITY = "903 Injury to blood vessels of upper extremity" - T_904_INJURY_TO_BLOOD_VESSELS_OF_LOWER_EXTREMITY_AND_UNSPECIFIED_SITES = ( - "904 Injury to blood vessels of lower extremity and unspecified sites" - ) - - -class DeathPossibilitiesTaxonomyT905909LateEffectsOfInjuriesPoisoningsToxicEffectsAndOtherExternalCausesEntry( - str, Enum -): - T_905_LATE_EFFECTS_OF_MUSCULOSKELETAL_AND_CONNECTIVE_TISSUE_INJURIES = ( - "905 Late effects of musculoskeletal and connective tissue injuries" - ) - T_906_LATE_EFFECTS_OF_INJURIES_TO_SKIN_AND_SUBCUTANEOUS_TISSUES = ( - "906 Late effects of injuries to skin and subcutaneous tissues" - ) - T_907_LATE_EFFECTS_OF_INJURIES_TO_THE_NERVOUS_SYSTEM = "907 Late effects of injuries to the nervous system" - T_908_LATE_EFFECTS_OF_OTHER_AND_UNSPECIFIED_INJURIES = "908 Late effects of other and unspecified injuries" - T_909_LATE_EFFECTS_OF_OTHER_AND_UNSPECIFIED_EXTERNAL_CAUSES = ( - "909 Late effects of other and unspecified external causes" - ) - - -class DeathPossibilitiesTaxonomyT910919SuperficialInjuryEntry(str, Enum): - T_910_SUPERFICIAL_INJURY_OF_FACE__NECK_AND_SCALP_EXCEPT_EYE = ( - "910 Superficial injury of face, neck and scalp except eye" - ) - T_911_SUPERFICIAL_INJURY_OF_TRUNK = "911 Superficial injury of trunk" - T_912_SUPERFICIAL_INJURY_OF_SHOULDER_AND_UPPER_ARM = "912 Superficial injury of shoulder and upper arm" - T_913_SUPERFICIAL_INJURY_OF_ELBOW__FOREARM_AND_WRIST = "913 Superficial injury of elbow, forearm and wrist" - T_914_SUPERFICIAL_INJURY_OF_HAND_S__EXCEPT_FINGER_S__ALONE = ( - "914 Superficial injury of hand(s) except finger(s) alone" - ) - T_915_SUPERFICIAL_INJURY_OF_FINGER_S_ = "915 Superficial injury of finger(s)" - T_916_SUPERFICIAL_INJURY_OF_HIP__THIGH__LEG_AND_ANKLE = "916 Superficial injury of hip, thigh, leg and ankle" - T_917_SUPERFICIAL_INJURY_OF_FOOT_AND_TOE_S_ = "917 Superficial injury of foot and toe(s)" - T_918_SUPERFICIAL_INJURY_OF_EYE_AND_ADNEXA = "918 Superficial injury of eye and adnexa" - T_919_SUPERFICIAL_INJURY_OF_OTHER__MULTIPLE_AND_UNSPECIFIED_SITES = ( - "919 Superficial injury of other, multiple and unspecified sites" - ) - - -class DeathPossibilitiesTaxonomyT920924ContusionWithIntactSkinSurfaceEntry(str, Enum): - T_920_CONTUSION_OF_FACE__SCALP_AND_NECK_EXCEPT_EYE_S_ = "920 Contusion of face, scalp and neck except eye(s)" - T_921_CONTUSION_OF_EYE_AND_ADNEXA = "921 Contusion of eye and adnexa" - T_922_CONTUSION_OF_TRUNK = "922 Contusion of trunk" - T_923_CONTUSION_OF_UPPER_LIMB = "923 Contusion of upper limb" - T_924_CONTUSION_OF_LOWER_LIMB_AND_OF_OTHER_AND_UNSPECIFIED_SITES = ( - "924 Contusion of lower limb and of other and unspecified sites" - ) - - -class DeathPossibilitiesTaxonomyT925929CrushingInjuryEntry(str, Enum): - T_925_CRUSHING_INJURY_OF_FACE__SCALP_AND_NECK = "925 Crushing injury of face, scalp and neck" - T_926_CRUSHING_INJURY_OF_TRUNK = "926 Crushing injury of trunk" - T_927_CRUSHING_INJURY_OF_UPPER_LIMB = "927 Crushing injury of upper limb" - T_928_CRUSHING_INJURY_OF_LOWER_LIMB = "928 Crushing injury of lower limb" - T_929_CRUSHING_INJURY_OF_MULTIPLE_AND_UNSPECIFIED_SITES = "929 Crushing injury of multiple and unspecified sites" - - -class DeathPossibilitiesTaxonomyT930939EffectsOfForeignBodyEnteringThroughOrificeEntry(str, Enum): - T_930_FOREIGN_BODY_ON_EXTERNAL_EYE = "930 Foreign body on external eye" - T_931_FOREIGN_BODY_IN_EAR = "931 Foreign body in ear" - T_932_FOREIGN_BODY_IN_NOSE = "932 Foreign body in nose" - T_933_FOREIGN_BODY_IN_PHARYNX_AND_LARYNX = "933 Foreign body in pharynx and larynx" - T_934_FOREIGN_BODY_IN_TRACHEA__BRONCHUS_AND_LUNG = "934 Foreign body in trachea, bronchus and lung" - T_935_FOREIGN_BODY_IN_MOUTH__OESOPHAGUS_AND_STOMACH = "935 Foreign body in mouth, oesophagus and stomach" - T_936_FOREIGN_BODY_IN_INTESTINE_AND_COLON = "936 Foreign body in intestine and colon" - T_937_FOREIGN_BODY_IN_ANUS_AND_RECTUM = "937 Foreign body in anus and rectum" - T_938_FOREIGN_BODY_IN_DIGESTIVE_SYSTEM__UNSPECIFIED = "938 Foreign body in digestive system, unspecified" - T_939_FOREIGN_BODY_IN_GENITO_URINARY_TRACT = "939 Foreign body in genito-urinary tract" - - -class DeathPossibilitiesTaxonomyT940949BurnsEntry(str, Enum): - T_940_BURN_CONFINED_TO_EYE_AND_ADNEXA = "940 Burn confined to eye and adnexa" - T_941_BURN_OF_FACE__HEAD_AND_NECK = "941 Burn of face, head and neck" - T_942_BURN_OF_TRUNK = "942 Burn of trunk" - T_943_BURN_OF_UPPER_LIMB__EXCEPT_WRIST_AND_HAND = "943 Burn of upper limb, except wrist and hand" - T_944_BURN_OF_WRIST_S__AND_HAND_S_ = "944 Burn of wrist(s) and hand(s)" - T_945_BURN_OF_LOWER_LIMB_S_ = "945 Burn of lower limb(s)" - T_946_BURNS_OF_MULTIPLE_SPECIFIED_SITES = "946 Burns of multiple specified sites" - T_947_BURN_OF_INTERNAL_ORGANS = "947 Burn of internal organs" - T_948_BURNS_CLASSIFIED_ACCORDING_TO_EXTENT_OF_BODY_SURFACE_INVOLVED = ( - "948 Burns classified according to extent of body surface involved" - ) - T_949_BURN__UNSPECIFIED = "949 Burn, unspecified" - - -class DeathPossibilitiesTaxonomyT950957InjuryToNervesAndSpinalCordEntry(str, Enum): - T_950_INJURY_TO_OPTIC_NERVE_AND_PATHWAYS = "950 Injury to optic nerve and pathways" - T_951_INJURY_TO_OTHER_CRANIAL_NERVE_S_ = "951 Injury to other cranial nerve(s)" - T_952_SPINAL_CORD_LESION_WITHOUT_EVIDENCE_OF_SPINAL_BONE_INJURY = ( - "952 Spinal cord lesion without evidence of spinal bone injury" - ) - T_953_INJURY_TO_NERVE_ROOTS_AND_SPINAL_PLEXUS = "953 Injury to nerve roots and spinal plexus" - T_954_INJURY_TO_OTHER_NERVE_S__OF_TRUNK_EXCLUDING_SHOULDER_AND_PELVIC_GIRDLES = ( - "954 Injury to other nerve(s) of trunk excluding shoulder and pelvic girdles" - ) - T_955_INJURY_TO_PERIPHERAL_NERVE_S__OF_SHOULDER_GIRDLE_AND_UPPER_LIMB = ( - "955 Injury to peripheral nerve(s) of shoulder girdle and upper limb" - ) - T_956_INJURY_TO_PERIPHERAL_NERVE_S__OF_PELVIC_GIRDLE_AND_LOWER_LIMB = ( - "956 Injury to peripheral nerve(s) of pelvic girdle and lower limb" - ) - T_957_INJURY_TO_OTHER_AND_UNSPECIFIED_NERVES = "957 Injury to other and unspecified nerves" - - -class DeathPossibilitiesTaxonomyT958959CertainTraumaticComplicationsAndUnspecifiedInjuriesEntry(str, Enum): - T_958_CERTAIN_EARLY_COMPLICATIONS_OF_TRAUMA = "958 Certain early complications of trauma" - T_959_INJURY__OTHER_AND_UNSPECIFIED = "959 Injury, other and unspecified" - - -class DeathPossibilitiesTaxonomyT960979PoisoningByDrugsMedicamentsAndBiologicalSubstancesEntry(str, Enum): - T_960_POISONING_BY_ANTIBIOTICS = "960 Poisoning by antibiotics" - T_961_POISONING_BY_OTHER_ANTI_INFECTIVES = "961 Poisoning by other anti-infectives" - T_962_POISONING_BY_HORMONES_AND_SYNTHETIC_SUBSTITUTES = "962 Poisoning by hormones and synthetic substitutes" - T_963_POISONING_BY_PRIMARILY_SYSTEMIC_AGENTS = "963 Poisoning by primarily systemic agents" - T_964_POISONING_BY_AGENTS_PRIMARILY_AFFECTING_BLOOD_CONSTITUENTS = ( - "964 Poisoning by agents primarily affecting blood constituents" - ) - T_965_POISONING_BY_ANALGESICS__ANTIPYRETICS_AND_ANTIRHEUMATICS = ( - "965 Poisoning by analgesics, antipyretics and antirheumatics" - ) - T_966_POISONING_BY_ANTICONVULSANTS_AND_ANTI_PARKINSONISM_DRUGS = ( - "966 Poisoning by anticonvulsants and anti-Parkinsonism drugs" - ) - T_967_POISONING_BY_SEDATIVES_AND_HYPNOTICS = "967 Poisoning by sedatives and hypnotics" - T_968_POISONING_BY_OTHER_CENTRAL_NERVOUS_SYSTEM_DEPRESSANTS_AND_ANAESTHETICS = ( - "968 Poisoning by other central nervous system depressants and anaesthetics" - ) - T_969_POISONING_BY_PSYCHOTROPIC_AGENTS = "969 Poisoning by psychotropic agents" - T_970_POISONING_BY_CENTRAL_NERVOUS_SYSTEM_STIMULANTS = "970 Poisoning by central nervous system stimulants" - T_971_POISONING_BY_DRUGS_PRIMARILY_AFFECTING_THE_AUTONOMIC_NERVOUS_SYSTEM = ( - "971 Poisoning by drugs primarily affecting the autonomic nervous system" - ) - T_972_POISONING_BY_AGENTS_PRIMARILY_AFFECTING_THE_CARDIOVASCULAR_SYSTEM = ( - "972 Poisoning by agents primarily affecting the cardiovascular system" - ) - T_973_POISONING_BY_AGENTS_PRIMARILY_AFFECTING_THE_GASTRO_INTESTINAL_SYSTEM = ( - "973 Poisoning by agents primarily affecting the gastro-intestinal system" - ) - T_974_POISONING_BY_WATER__MINERAL_AND_URIC_ACID_METABOLISM_DRUGS = ( - "974 Poisoning by water, mineral and uric acid metabolism drugs" - ) - T_975_POISONING_BY_AGENTS_PRIMARILY_ACTING_ON_THE_SMOOTH_AND_SKELETAL_MUSCLES_AND_RESPIRATORY_SYSTEM = ( - "975 Poisoning by agents primarily acting on the smooth and skeletal muscles and respiratory system" - ) - T_976_POISONING_BY_AGENTS_PRIMARILY_AFFECTING_SKIN_AND_MUCOUS_MEMBRANE__OPHTHALMOLOGICAL__OTORHINOLARYNGOLOGICAL_AND_DENTAL_DRUGS = "976 Poisoning by agents primarily affecting skin and mucous membrane, ophthalmological, otorhinolaryngological and dental drugs" - T_977_POISONING_BY_OTHER_AND_UNSPECIFIED_DRUGS_AND_MEDICAMENTS = ( - "977 Poisoning by other and unspecified drugs and medicaments" - ) - T_978_POISONING_BY_BACTERIAL_VACCINES = "978 Poisoning by bacterial vaccines" - T_979_POISONING_BY_OTHER_VACCINES_AND_BIOLOGICAL_SUBSTANCES = ( - "979 Poisoning by other vaccines and biological substances" - ) - - -class DeathPossibilitiesTaxonomyT980989ToxicEffectsOfSubstancesChieflyNonmedicinalAsToSourceEntry(str, Enum): - T_980_TOXIC_EFFECT_OF_ALCOHOL = "980 Toxic effect of alcohol" - T_981_TOXIC_EFFECT_OF_PETROLEUM_PRODUCTS = "981 Toxic effect of petroleum products" - T_982_TOXIC_EFFECT_OF_SOLVENTS_OTHER_THAN_PETROLEUM_BASED = ( - "982 Toxic effect of solvents other than petroleum-based" - ) - T_983_TOXIC_EFFECT_OF_CORROSIVE_AROMATICS__ACIDS_AND_CAUSTIC_ALKALIS = ( - "983 Toxic effect of corrosive aromatics, acids and caustic alkalis" - ) - T_984_TOXIC_EFFECT_OF_LEAD_AND_ITS_COMPOUNDS__INCLUDING_FUMES_ = ( - "984 Toxic effect of lead and its compounds (including fumes)" - ) - T_985_TOXIC_EFFECT_OF_OTHER_METALS = "985 Toxic effect of other metals" - T_986_TOXIC_EFFECT_OF_CARBON_MONOXIDE = "986 Toxic effect of carbon monoxide" - T_987_TOXIC_EFFECT_OF_OTHER_GASES__FUMES_OR_VAPOURS = "987 Toxic effect of other gases, fumes or vapours" - T_988_TOXIC_EFFECT_OF_NOXIOUS_SUBSTANCES_EATEN_AS_FOOD = "988 Toxic effect of noxious substances eaten as food" - T_989_TOXIC_EFFECT_OF_OTHER_SUBSTANCES__CHIEFLY_NONMEDICINAL_AS_TO_SOURCE = ( - "989 Toxic effect of other substances, chiefly nonmedicinal as to source" - ) - - -class DeathPossibilitiesTaxonomyT990995OtherAndUnspecifiedEffectsOfExternalCausesEntry(str, Enum): - T_990_EFFECTS_OF_RADIATION__UNSPECIFIED = "990 Effects of radiation, unspecified" - T_991_EFFECTS_OF_REDUCED_TEMPERATURE = "991 Effects of reduced temperature" - T_992_EFFECTS_OF_HEAT_AND_LIGHT = "992 Effects of heat and light" - T_993_EFFECTS_OF_AIR_PRESSURE = "993 Effects of air pressure" - T_994_EFFECTS_OF_OTHER_EXTERNAL_CAUSES = "994 Effects of other external causes" - T_995_CERTAIN_ADVERSE_EFFECTS_NOT_ELSEWHERE_CLASSIFIED = "995 Certain adverse effects not elsewhere classified" - - -class DeathPossibilitiesTaxonomyT996999ComplicationsOfSurgicalAndMedicalCareNotElsewhereClassifiedEntry(str, Enum): - T_996_COMPLICATIONS_PECULIAR_TO_CERTAIN_SPECIFIED_PROCEDURES = ( - "996 Complications peculiar to certain specified procedures" - ) - T_997_COMPLICATIONS_AFFECTING_SPECIFIED_BODY_SYSTEMS__NOT_ELSEWHERE_CLASSIFIED = ( - "997 Complications affecting specified body systems, not elsewhere classified" - ) - T_998_OTHER_COMPLICATIONS_OF_PROCEDURES__NOT_ELSEWHERE_CLASSIFIED = ( - "998 Other complications of procedures, not elsewhere classified" - ) - T_999_COMPLICATIONS_OF_MEDICAL_CARE__NOT_ELSEWHERE_CLASSIFIED = ( - "999 Complications of medical care, not elsewhere classified" - ) - - -class DeathPossibilitiesTaxonomyTE800E807RailwayAccidentsEntry(str, Enum): - E800_RAILWAY_ACCIDENT_INVOLVING_COLLISION_WITH_ROLLING_STOCK = ( - "E800 Railway accident involving collision with rolling stock" - ) - E801_RAILWAY_ACCIDENT_INVOLVING_COLLISION_WITH_OTHER_OBJECT = ( - "E801 Railway accident involving collision with other object" - ) - E802_RAILWAY_ACCIDENT_INVOLVING_DERAILMENT_WITHOUT_ANTECEDENT_COLLISION = ( - "E802 Railway accident involving derailment without antecedent collision" - ) - E803_RAILWAY_ACCIDENT_INVOLVING_EXPLOSION__FIRE_OR_BURNING = ( - "E803 Railway accident involving explosion, fire or burning" - ) - E804_FALL_IN__ON_OR_FROM_RAILWAY_TRAIN = "E804 Fall in, on or from railway train" - E805_HIT_BY_ROLLING_STOCK = "E805 Hit by rolling stock" - E806_OTHER_SPECIFIED_RAILWAY_ACCIDENT = "E806 Other specified railway accident" - E807_RAILWAY_ACCIDENT_OF_UNSPECIFIED_NATURE = "E807 Railway accident of unspecified nature" - - -class DeathPossibilitiesTaxonomyTE810E819MotorVehicleTrafficAccidentsEntry(str, Enum): - E810_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_INVOLVING_COLLISION_WITH_TRAIN = ( - "E810 Motor vehicle traffic accident involving collision with train" - ) - E811_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_INVOLVING_RE_ENTRANT_COLLISION_WITH_ANOTHER_MOTOR_VEHICLE = ( - "E811 Motor vehicle traffic accident involving re-entrant collision with another motor vehicle" - ) - E812_OTHER_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_INVOLVING_COLLISION_WITH_ANOTHER_MOTOR_VEHICLE = ( - "E812 Other motor vehicle traffic accident involving collision with another motor vehicle" - ) - E813_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_INVOLVING_COLLISION_WITH_OTHER_VEHICLE = ( - "E813 Motor vehicle traffic accident involving collision with other vehicle" - ) - E814_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_INVOLVING_COLLISION_WITH_PEDESTRIAN = ( - "E814 Motor vehicle traffic accident involving collision with pedestrian" - ) - E815_OTHER_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_INVOLVING_COLLISION_ON_THE_HIGHWAY = ( - "E815 Other motor vehicle traffic accident involving collision on the highway" - ) - E816_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_DUE_TO_LOSS_OF_CONTROL__WITHOUT_COLLISION_ON_THE_HIGHWAY = ( - "E816 Motor vehicle traffic accident due to loss of control, without collision on the highway" - ) - E817_NONCOLLISION_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_WHILE_BOARDING_OR_ALIGHTING = ( - "E817 Noncollision motor vehicle traffic accident while boarding or alighting" - ) - E818_OTHER_NONCOLLISION_MOTOR_VEHICLE_TRAFFIC_ACCIDENT = "E818 Other noncollision motor vehicle traffic accident" - E819_MOTOR_VEHICLE_TRAFFIC_ACCIDENT_OF_UNSPECIFIED_NATURE = ( - "E819 Motor vehicle traffic accident of unspecified nature" - ) - - -class DeathPossibilitiesTaxonomyTE820E825MotorVehicleNontrafficAccidentsEntry(str, Enum): - E820_NONTRAFFIC_ACCIDENT_INVOLVING_MOTOR_DRIVEN_SNOW_VEHICLE = ( - "E820 Nontraffic accident involving motor-driven snow vehicle" - ) - E821_NONTRAFFIC_ACCIDENT_INVOLVING_OTHER_OFF_ROAD_MOTOR_VEHICLE = ( - "E821 Nontraffic accident involving other off-road motor vehicle" - ) - E822_OTHER_MOTOR_VEHICLE_NONTRAFFIC_ACCIDENT_INVOLVING_COLLISION_WITH_MOVING_OBJECT = ( - "E822 Other motor vehicle nontraffic accident involving collision with moving object" - ) - E823_OTHER_MOTOR_VEHICLE_NONTRAFFIC_ACCIDENT_INVOLVING_COLLISION_WITH_STATIONARY_OBJECT = ( - "E823 Other motor vehicle nontraffic accident involving collision with stationary object" - ) - E824_OTHER_MOTOR_VEHICLE_NONTRAFFIC_ACCIDENT_WHILE_BOARDING_AND_ALIGHTING = ( - "E824 Other motor vehicle nontraffic accident while boarding and alighting" - ) - E825_OTHER_MOTOR_VEHICLE_NONTRAFFIC_ACCIDENT_OF_OTHER_AND_UNSPECIFIED_NATURE = ( - "E825 Other motor vehicle nontraffic accident of other and unspecified nature" - ) - - -class DeathPossibilitiesTaxonomyTE826E829OtherRoadVehicleAccidentsEntry(str, Enum): - E826_PEDAL_CYCLE_ACCIDENT = "E826 Pedal cycle accident" - E827_ANIMAL_DRAWN_VEHICLE_ACCIDENT = "E827 Animal-drawn vehicle accident" - E828_ACCIDENT_INVOLVING_ANIMAL_BEING_RIDDEN = "E828 Accident involving animal being ridden" - E829_OTHER_ROAD_VEHICLE_ACCIDENTS = "E829 Other road vehicle accidents" - - -class DeathPossibilitiesTaxonomyTE830E838WaterTransportAccidentsEntry(str, Enum): - E830_ACCIDENT_TO_WATERCRAFT_CAUSING_SUBMERSION = "E830 Accident to watercraft causing submersion" - E831_ACCIDENT_TO_WATERCRAFT_CAUSING_OTHER_INJURY = "E831 Accident to watercraft causing other injury" - E832_OTHER_ACCIDENTAL_SUBMERSION_OR_DROWNING_IN_WATER_TRANSPORT_ACCIDENT = ( - "E832 Other accidental submersion or drowning in water transport accident" - ) - E833_FALL_ON_STAIRS_OR_LADDERS_IN_WATER_TRANSPORT = "E833 Fall on stairs or ladders in water transport" - E834_OTHER_FALL_FROM_ONE_LEVEL_TO_ANOTHER_IN_WATER_TRANSPORT = ( - "E834 Other fall from one level to another in water transport" - ) - E835_OTHER_AND_UNSPECIFIED_FALL_IN_WATER_TRANSPORT = "E835 Other and unspecified fall in water transport" - E836_MACHINERY_ACCIDENT_IN_WATER_TRANSPORT = "E836 Machinery accident in water transport" - E837_EXPLOSION__FIRE_OR_BURNING_IN_WATERCRAFT = "E837 Explosion, fire or burning in watercraft" - E838_OTHER_AND_UNSPECIFIED_WATER_TRANSPORT_ACCIDENT = "E838 Other and unspecified water transport accident" - - -class DeathPossibilitiesTaxonomyTE840E845AirAndSpaceTransportAccidentsEntry(str, Enum): - E840_ACCIDENT_TO_POWERED_AIRCRAFT_AT_TAKEOFF_OR_LANDING = "E840 Accident to powered aircraft at takeoff or landing" - E841_ACCIDENT_TO_POWERED_AIRCRAFT__OTHER_AND_UNSPECIFIED = ( - "E841 Accident to powered aircraft, other and unspecified" - ) - E842_ACCIDENT_TO_UNPOWERED_AIRCRAFT = "E842 Accident to unpowered aircraft" - E843_FALL_IN__ON_OR_FROM_AIRCRAFT = "E843 Fall in, on or from aircraft" - E844_OTHER_SPECIFIED_AIR_TRANSPORT_ACCIDENTS = "E844 Other specified air transport accidents" - E845_ACCIDENT_INVOLVING_SPACECRAFT = "E845 Accident involving spacecraft" - - -class DeathPossibilitiesTaxonomyTE846E848VehicleAccidentsNotElsewhereClassifiableEntry(str, Enum): - E846_ACCIDENTS_INVOLVING_POWERED_VEHICLES_USED_SOLELY_WITHIN_THE_BUILDINGS_AND_PREMISES_OF_AN_INDUSTRIAL_OR_COMMERCIAL_ESTABLISHMENT = "E846 Accidents involving powered vehicles used solely within the buildings and premises of an industrial or commercial establishment" - E847_ACCIDENTS_INVOLVING_CABLE_CARS_NOT_RUNNING_ON_RAILS = ( - "E847 Accidents involving cable cars not running on rails" - ) - E848_ACCIDENTS_INVOLVING_OTHER_VEHICLES_NOT_ELSEWHERE_CLASSIFIABLE = ( - "E848 Accidents involving other vehicles not elsewhere classifiable" - ) - - -class DeathPossibilitiesTaxonomyTE849E858AccidentalPoisoningByDrugsMedicamentsAndBiologicalsEntry(str, Enum): - E849_PLACE_OF_OCCURRENCE = "E849 Place of occurrence" - E850_ACCIDENTAL_POISONING_BY_ANALGESICS__ANTIPYRETICS__ANTIRHEUMATICS = ( - "E850 Accidental poisoning by analgesics, antipyretics, antirheumatics" - ) - E851_ACCIDENTAL_POISONING_BY_BARBITURATES = "E851 Accidental poisoning by barbiturates" - E852_ACCIDENTAL_POISONING_BY_OTHER_SEDATIVES_AND_HYPNOTICS = ( - "E852 Accidental poisoning by other sedatives and hypnotics" - ) - E853_ACCIDENTAL_POISONING_BY_TRANQUILLISERS = "E853 Accidental poisoning by tranquillisers" - E854_ACCIDENTAL_POISONING_BY_OTHER_PSYCHOTROPIC_AGENTS = "E854 Accidental poisoning by other psychotropic agents" - E855_ACCIDENTAL_POISONING_BY_OTHER_DRUGS_ACTING_ON_CENTRAL_AND_AUTONOMIC_NERVOUS_SYSTEMS = ( - "E855 Accidental poisoning by other drugs acting on central and autonomic nervous systems" - ) - E856_ACCIDENTAL_POISONING_BY_ANTIBIOTICS = "E856 Accidental poisoning by antibiotics" - E857_ACCIDENTAL_POISONING_BY_ANTI_INFECTIVES = "E857 Accidental poisoning by anti-infectives" - E858_ACCIDENTAL_POISONING_BY_OTHER_DRUGS = "E858 Accidental poisoning by other drugs" - - -class DeathPossibilitiesTaxonomyTE860E869AccidentalPoisoningByOtherSolidAndLiquidSubstancesGasesAndVapoursEntry( - str, Enum -): - E860_ACCIDENTAL_POISONING_BY_ALCOHOL__NOT_ELSEWHERE_CLASSIFIED = ( - "E860 Accidental poisoning by alcohol, not elsewhere classified" - ) - E861_ACCIDENTAL_POISONING_BY_CLEANSING_AND_POLISHING_AGENTS__DISINFECTANTS__PAINTS_AND_VARNISHES = ( - "E861 Accidental poisoning by cleansing and polishing agents, disinfectants, paints and varnishes" - ) - E862_ACCIDENTAL_POISONING_BY_PETROLEUM_PRODUCTS__OTHER_SOLVENTS_AND_THEIR_VAPOURS__NOT_ELSEWHERE_CLASSIFIED = ( - "E862 Accidental poisoning by petroleum products, other solvents and their vapours, not elsewhere classified" - ) - E863_ACCIDENTAL_POISONING_BY_AGRICULTURAL_AND_HORTICULTURAL_CHEMICAL_AND_PHARMACEUTICAL_PREPARATIONS_OTHER_THAN_PLANT_FOODS_AND_FERTILISERS = "E863 Accidental poisoning by agricultural and horticultural chemical and pharmaceutical preparations other than plant foods and fertilisers" - E864_ACCIDENTAL_POISONING_BY_CORROSIVES_AND_CAUSTICS__NOT_ELSEWHERE_CLASSIFIED = ( - "E864 Accidental poisoning by corrosives and caustics, not elsewhere classified" - ) - E865_ACCIDENTAL_POISONING_FROM_FOODSTUFFS_AND_POISONOUS_PLANTS = ( - "E865 Accidental poisoning from foodstuffs and poisonous plants" - ) - E866_ACCIDENTAL_POISONING_BY_OTHER_AND_UNSPECIFIED_SOLID_AND_LIQUID_SUBSTANCES = ( - "E866 Accidental poisoning by other and unspecified solid and liquid substances" - ) - E867_ACCIDENTAL_POISONING_BY_GAS_DISTRIBUTED_BY_PIPELINE = ( - "E867 Accidental poisoning by gas distributed by pipeline" - ) - E868_ACCIDENTAL_POISONING_BY_OTHER_UTILITY_GAS_AND_OTHER_CARBON_MONOXIDE = ( - "E868 Accidental poisoning by other utility gas and other carbon monoxide" - ) - E869_ACCIDENTAL_POISONING_BY_OTHER_GASES_AND_VAPOURS = "E869 Accidental poisoning by other gases and vapours" - - -class DeathPossibilitiesTaxonomyTE870E876MisadventuresToPatientsDuringSurgicalAndMedicalCareEntry(str, Enum): - E870_ACCIDENTAL_CUT__PUNCTURE__PERFORATION_OR_HAEMORRHAGE_DURING_MEDICAL_CARE = ( - "E870 Accidental cut, puncture, perforation or haemorrhage during medical care" - ) - E871_FOREIGN_OBJECT_LEFT_IN_BODY_DURING_PROCEDURE = "E871 Foreign object left in body during procedure" - E872_FAILURE_OF_STERILE_PRECAUTIONS_DURING_PROCEDURE = "E872 Failure of sterile precautions during procedure" - E873_FAILURE_IN_DOSAGE = "E873 Failure in dosage" - E874_MECHANICAL_FAILURE_OF_INSTRUMENT_OR_APPARATUS_DURING_PROCEDURE = ( - "E874 Mechanical failure of instrument or apparatus during procedure" - ) - E875_CONTAMINATED_OR_INFECTED_BLOOD__OTHER_FLUID__DRUG_OR_BIOLOGICAL_SUBSTANCE = ( - "E875 Contaminated or infected blood, other fluid, drug or biological substance" - ) - E876_OTHER_AND_UNSPECIFIED_MISADVENTURES_DURING_MEDICAL_CARE = ( - "E876 Other and unspecified misadventures during medical care" - ) - - -class DeathPossibilitiesTaxonomyTE878E879SurgicalAndMedicalProceduresAsTheCauseOfAbnormalReactionOfPatientOrLaterComplicationWithoutMentionOfMisadventureAtTheTimeOfProcedureEntry( - str, Enum -): - E878_SURGICAL_OPERATION_AND_OTHER_SURGICAL_PROCEDURES_AS_THE_CAUSE_OF_ABNORMAL_REACTION_OF_PATIENT__OR_OF_LATER_COMPLICATION__WITHOUT_MENTION_OF_MISADVENTURE_AT_THE_TIME_OF_OPERATION = "E878 Surgical operation and other surgical procedures as the cause of abnormal reaction of patient, or of later complication, without mention of misadventure at the time of operation" - E879_OTHER_PROCEDURES__WITHOUT_MENTION_OF_MISADVENTURE_AT_THE_TIME_OF_PROCEDURE__AS_THE_CAUSE_OF_ABNORMAL_REACTION_OF_PATIENT__OR_OF_LATER_COMPLICATION = "E879 Other procedures, without mention of misadventure at the time of procedure, as the cause of abnormal reaction of patient, or of later complication" - - -class DeathPossibilitiesTaxonomyTE880E888AccidentalFallsEntry(str, Enum): - E880_FALL_ON_OR_FROM_STAIRS_OR_STEPS = "E880 Fall on or from stairs or steps" - E881_FALL_ON_OR_FROM_LADDERS_OR_SCAFFOLDING = "E881 Fall on or from ladders or scaffolding" - E882_FALL_FROM_OR_OUT_OF_BUILDING_OR_OTHER_STRUCTURE = "E882 Fall from or out of building or other structure" - E883_FALL_INTO_HOLE_OR_OTHER_OPENING_IN_SURFACE = "E883 Fall into hole or other opening in surface" - E884_OTHER_FALL_FROM_ONE_LEVEL_TO_ANOTHER = "E884 Other fall from one level to another" - E885_FALL_ON_SAME_LEVEL_FROM_SLIPPING__TRIPPING_OR_STUMBLING = ( - "E885 Fall on same level from slipping, tripping or stumbling" - ) - E886_FALL_ON_SAME_LEVEL_FROM_COLLISION__PUSHING_OR_SHOVING__BY_OR_WITH_OTHER_PERSON = ( - "E886 Fall on same level from collision, pushing or shoving, by or with other person" - ) - E887_FRACTURE__CAUSE_UNSPECIFIED = "E887 Fracture, cause unspecified" - E888_OTHER_AND_UNSPECIFIED_FALL = "E888 Other and unspecified fall" - - -class DeathPossibilitiesTaxonomyTE890E899AccidentsCausedByFireAndFlamesEntry(str, Enum): - E890_CONFLAGRATION_IN_PRIVATE_DWELLING = "E890 Conflagration in private dwelling" - E891_CONFLAGRATION_IN_OTHER_AND_UNSPECIFIED_BUILDING_OR_STRUCTURE = ( - "E891 Conflagration in other and unspecified building or structure" - ) - E892_CONFLAGRATION_NOT_IN_BUILDING_OR_STRUCTURE = "E892 Conflagration not in building or structure" - E893_ACCIDENT_CAUSED_BY_IGNITION_OF_CLOTHING = "E893 Accident caused by ignition of clothing" - E894_IGNITION_OF_HIGHLY_INFLAMMABLE_MATERIAL = "E894 Ignition of highly inflammable material" - E895_ACCIDENT_CAUSED_BY_CONTROLLED_FIRE_IN_PRIVATE_DWELLING = ( - "E895 Accident caused by controlled fire in private dwelling" - ) - E896_ACCIDENT_CAUSED_BY_CONTROLLED_FIRE_IN_OTHER_AND_UNSPECIFIED_BUILDING_OR_STRUCTURE = ( - "E896 Accident caused by controlled fire in other and unspecified building or structure" - ) - E897_ACCIDENT_CAUSED_BY_CONTROLLED_FIRE_NOT_IN_BUILDING_OR_STRUCTURE = ( - "E897 Accident caused by controlled fire not in building or structure" - ) - E898_ACCIDENT_CAUSED_BY_OTHER_SPECIFIED_FIRE_AND_FLAMES = "E898 Accident caused by other specified fire and flames" - E899_ACCIDENT_CAUSED_BY_UNSPECIFIED_FIRE = "E899 Accident caused by unspecified fire" - - -class DeathPossibilitiesTaxonomyTE900E909AccidentsDueToNaturalAndEnvironmentalFactorsEntry(str, Enum): - E900_EXCESSIVE_HEAT = "E900 Excessive heat" - E901_EXCESSIVE_COLD = "E901 Excessive cold" - E902_HIGH_AND_LOW_AIR_PRESSURE_AND_CHANGES_IN_AIR_PRESSURE = ( - "E902 High and low air pressure and changes in air pressure" - ) - E903_TRAVEL_AND_MOTION = "E903 Travel and motion" - E904_HUNGER__THIRST__EXPOSURE__NEGLECT = "E904 Hunger, thirst, exposure, neglect" - E905_VENOMOUS_ANIMALS_AND_PLANTS_AS_THE_CAUSE_OF_POISONING_AND_TOXIC_REACTIONS = ( - "E905 Venomous animals and plants as the cause of poisoning and toxic reactions" - ) - E906_OTHER_INJURY_CAUSED_BY_ANIMALS = "E906 Other injury caused by animals" - E907_LIGHTNING = "E907 Lightning" - E908_CATACLYSMIC_STORMS_AND_FLOODS_RESULTING_FROM_STORMS = ( - "E908 Cataclysmic storms and floods resulting from storms" - ) - E909_CATACLYSMIC_EARTH_SURFACE_MOVEMENTS_AND_ERUPTIONS = "E909 Cataclysmic earth surface movements and eruptions" - - -class DeathPossibilitiesTaxonomyTE910E915AccidentsCausedBySubmersionSuffocationAndForeignBodiesEntry(str, Enum): - E910_ACCIDENTAL_DROWNING_AND_SUBMERSION = "E910 Accidental drowning and submersion" - E911_INHALATION_AND_INGESTION_OF_FOOD_CAUSING_OBSTRUCTION_OF_RESPIRATORY_TRACT_OR_SUFFOCATION = ( - "E911 Inhalation and ingestion of food causing obstruction of respiratory tract or suffocation" - ) - E912_INHALATION_AND_INGESTION_OF_OTHER_OBJECT_CAUSING_OBSTRUCTION_OF_RESPIRATORY_TRACT_OR_SUFFOCATION = ( - "E912 Inhalation and ingestion of other object causing obstruction of respiratory tract or suffocation" - ) - E913_ACCIDENTAL_MECHANICAL_SUFFOCATION = "E913 Accidental mechanical suffocation" - E914_FOREIGN_BODY_ACCIDENTALLY_ENTERING_EYE_AND_ADNEXA = "E914 Foreign body accidentally entering eye and adnexa" - E915_FOREIGN_BODY_ACCIDENTALLY_ENTERING_OTHER_ORIFICE = "E915 Foreign body accidentally entering other orifice" - - -class DeathPossibilitiesTaxonomyTE916E928OtherAccidentsEntry(str, Enum): - E916_STRUCK_ACCIDENTALLY_BY_FALLING_OBJECT = "E916 Struck accidentally by falling object" - E917_STRIKING_AGAINST_OR_STRUCK_ACCIDENTALLY_BY_OBJECTS_OR_PERSONS = ( - "E917 Striking against or struck accidentally by objects or persons" - ) - E918_CAUGHT_ACCIDENTALLY_IN_OR_BETWEEN_OBJECTS = "E918 Caught accidentally in or between objects" - E919_ACCIDENTS_CAUSED_BY_MACHINERY = "E919 Accidents caused by machinery" - E920_ACCIDENTS_CAUSED_BY_CUTTING_AND_PIERCING_INSTRUMENTS_OR_OBJECTS = ( - "E920 Accidents caused by cutting and piercing instruments or objects" - ) - E921_ACCIDENT_CAUSED_BY_EXPLOSION_OF_PRESSURE_VESSEL = "E921 Accident caused by explosion of pressure vessel" - E922_ACCIDENT_CAUSED_BY_FIREARM_MISSILE = "E922 Accident caused by firearm missile" - E923_ACCIDENT_CAUSED_BY_EXPLOSIVE_MATERIAL = "E923 Accident caused by explosive material" - E924_ACCIDENT_CAUSED_BY_HOT_SUBSTANCE_OR_OBJECT__CAUSTIC_OR_CORROSIVE_MATERIAL_AND_STEAM = ( - "E924 Accident caused by hot substance or object, caustic or corrosive material and steam" - ) - E925_ACCIDENT_CAUSED_BY_ELECTRIC_CURRENT = "E925 Accident caused by electric current" - E926_EXPOSURE_TO_RADIATION = "E926 Exposure to radiation" - E927_OVEREXERTION_AND_STRENUOUS_MOVEMENTS = "E927 Overexertion and strenuous movements" - E928_OTHER_AND_UNSPECIFIED_ENVIRONMENTAL_AND_ACCIDENTAL_CAUSES = ( - "E928 Other and unspecified environmental and accidental causes" - ) - - -class DeathPossibilitiesTaxonomyTE929E929LateEffectsOfAccidentalInjuryEntry(str, Enum): - E929_LATE_EFFECTS_OF_ACCIDENTAL_INJURY = "E929 Late effects of accidental injury" - - -class DeathPossibilitiesTaxonomyTE930E949DrugsMedicamentsAndBiologicalSubstancesCausingAdverseEffectsInTherapeuticUseEntry( - str, Enum -): - E930_ANTIBIOTICS = "E930 Antibiotics" - E931_OTHER_ANTI_INFECTIVES = "E931 Other anti-infectives" - E932_HORMONES_AND_SYNTHETIC_SUBSTITUTES = "E932 Hormones and synthetic substitutes" - E933_PRIMARILY_SYSTEMIC_AGENTS = "E933 Primarily systemic agents" - E934_AGENTS_PRIMARILY_AFFECTING_BLOOD_CONSTITUENTS = "E934 Agents primarily affecting blood constituents" - E935_ANALGESICS__ANTIPYRETICS_AND_ANTIRHEUMATICS = "E935 Analgesics, antipyretics and antirheumatics" - E936_ANTICONVULSANTS_AND_ANTI_PARKINSONISM_DRUGS = "E936 Anticonvulsants and anti-Parkinsonism drugs" - E937_SEDATIVES_AND_HYPNOTICS = "E937 Sedatives and hypnotics" - E938_OTHER_CENTRAL_NERVOUS_SYSTEM_DEPRESSANTS_AND_ANAESTHETICS = ( - "E938 Other central nervous system depressants and anaesthetics" - ) - E939_PSYCHOTROPIC_AGENTS = "E939 Psychotropic agents" - E940_CENTRAL_NERVOUS_SYSTEM_STIMULANTS = "E940 Central nervous system stimulants" - E941_DRUGS_PRIMARILY_AFFECTING_THE_AUTONOMIC_NERVOUS_SYSTEM = ( - "E941 Drugs primarily affecting the autonomic nervous system" - ) - E942_AGENTS_PRIMARILY_AFFECTING_THE_CARDIOVASCULAR_SYSTEM = ( - "E942 Agents primarily affecting the cardiovascular system" - ) - E943_AGENTS_PRIMARILY_AFFECTING_GASTRO_INTESTINAL_SYSTEM = ( - "E943 Agents primarily affecting gastro-intestinal system" - ) - E944_WATER__MINERAL_AND_URIC_ACID_METABOLISM_DRUGS = "E944 Water, mineral and uric acid metabolism drugs" - E945_AGENTS_PRIMARILY_ACTING_ON_THE_SMOOTH_AND_SKELETAL_MUSCLES_AND_RESPIRATORY_SYSTEM = ( - "E945 Agents primarily acting on the smooth and skeletal muscles and respiratory system" - ) - E946_AGENTS_PRIMARILY_AFFECTING_SKIN_AND_MUCOUS_MEMBRANE__OPHTHALMOLOGICAL__OTORHINOLARYNGOLOGICAL_AND_DENTAL_DRUGS = "E946 Agents primarily affecting skin and mucous membrane, ophthalmological, otorhinolaryngological and dental drugs" - E947_OTHER_AND_UNSPECIFIED_DRUGS_AND_MEDICAMENTS = "E947 Other and unspecified drugs and medicaments" - E948_BACTERIAL_VACCINES = "E948 Bacterial vaccines" - E949_OTHER_VACCINES_AND_BIOLOGICAL_SUBSTANCES = "E949 Other vaccines and biological substances" - - -class DeathPossibilitiesTaxonomyTE950E959SuicideAndSelfInflictedInjuryEntry(str, Enum): - E950_SUICIDE_AND_SELF_INFLICTED_POISONING_BY_SOLID_OR_LIQUID_SUBSTANCES = ( - "E950 Suicide and self-inflicted poisoning by solid or liquid substances" - ) - E951_SUICIDE_AND_SELF_INFLICTED_POISONING_BY_GASES_IN_DOMESTIC_USE = ( - "E951 Suicide and self-inflicted poisoning by gases in domestic use" - ) - E952_SUICIDE_AND_SELF_INFLICTED_POISONING_BY_OTHER_GASES_AND_VAPOURS = ( - "E952 Suicide and self-inflicted poisoning by other gases and vapours" - ) - E953_SUICIDE_AND_SELF_INFLICTED_INJURY_BY_HANGING__STRANGULATION_AND_SUFFOCATION = ( - "E953 Suicide and self-inflicted injury by hanging, strangulation and suffocation" - ) - E954_SUICIDE_AND_SELF_INFLICTED_INJURY_BY_SUBMERSION__DROWNING_ = ( - "E954 Suicide and self-inflicted injury by submersion [drowning]" - ) - E955_SUICIDE_AND_SELF_INFLICTED_INJURY_BY_FIREARMS_AND_EXPLOSIVES = ( - "E955 Suicide and self-inflicted injury by firearms and explosives" - ) - E956_SUICIDE_AND_SELF_INFLICTED_INJURY_BY_CUTTING_AND_PIERCING_INSTRUMENTS = ( - "E956 Suicide and self-inflicted injury by cutting and piercing instruments" - ) - E957_SUICIDE_AND_SELF_INFLICTED_INJURIES_BY_JUMPING_FROM_HIGH_PLACE = ( - "E957 Suicide and self-inflicted injuries by jumping from high place" - ) - E958_SUICIDE_AND_SELF_INFLICTED_INJURY_BY_OTHER_AND_UNSPECIFIED_MEANS = ( - "E958 Suicide and self-inflicted injury by other and unspecified means" - ) - E959_LATE_EFFECTS_OF_SELF_INFLICTED_INJURY = "E959 Late effects of self-inflicted injury" - - -class DeathPossibilitiesTaxonomyTE960E969HomicideAndInjuryPurposelyInflictedByOtherPersonsEntry(str, Enum): - E960_FIGHT__BRAWL__RAPE = "E960 Fight, brawl, rape" - E961_ASSAULT_BY_CORROSIVE_OR_CAUSTIC_SUBSTANCE__EXCEPT_POISONING = ( - "E961 Assault by corrosive or caustic substance, except poisoning" - ) - E962_ASSAULT_BY_POISONING = "E962 Assault by poisoning" - E963_ASSAULT_BY_HANGING_AND_STRANGULATION = "E963 Assault by hanging and strangulation" - E964_ASSAULT_BY_SUBMERSION__DROWNING_ = "E964 Assault by submersion [drowning]" - E965_ASSAULT_BY_FIREARMS_AND_EXPLOSIVES = "E965 Assault by firearms and explosives" - E966_ASSAULT_BY_CUTTING_AND_PIERCING_INSTRUMENT = "E966 Assault by cutting and piercing instrument" - E967_CHILD_BATTERING_AND_OTHER_MALTREATMENT = "E967 Child battering and other maltreatment" - E968_ASSAULT_BY_OTHER_AND_UNSPECIFIED_MEANS = "E968 Assault by other and unspecified means" - E969_LATE_EFFECTS_OF_INJURY_PURPOSELY_INFLICTED_BY_OTHER_PERSON = ( - "E969 Late effects of injury purposely inflicted by other person" - ) - - -class DeathPossibilitiesTaxonomy(BaseModel): - """Model for the death-possibilities taxonomy.""" - - namespace: str = "death-possibilities" - description: str = """Taxonomy of Death Possibilities""" - version: int = 1 - exclusive: bool = False - predicates: List[DeathPossibilitiesTaxonomyPredicate] = [] - t__001_009__intestinal_infectious_diseases_entries: List[ - DeathPossibilitiesTaxonomyT001009IntestinalInfectiousDiseasesEntry - ] = [] - t__010_018__tuberculosis_entries: List[DeathPossibilitiesTaxonomyT010018TuberculosisEntry] = [] - t__020_027__zoonotic_bacterial_diseases_entries: List[ - DeathPossibilitiesTaxonomyT020027ZoonoticBacterialDiseasesEntry - ] = [] - t__030_041__other_bacterial_diseases_entries: List[ - DeathPossibilitiesTaxonomyT030041OtherBacterialDiseasesEntry - ] = [] - t__042_042__human_immunodeficiency_virus__hiv__infection_entries: List[ - DeathPossibilitiesTaxonomyT042042HumanImmunodeficiencyVirusHivInfectionEntry - ] = [] - t__045_049__poliomyelitis_and_other_non_arthropod_borne_viral_diseases_of_central_nervous_system_entries: List[ - DeathPossibilitiesTaxonomyT045049PoliomyelitisAndOtherNonArthropodBorneViralDiseasesOfCentralNervousSystemEntry - ] = [] - t__050_057__viral_diseases_accompanied_by_exanthem_entries: List[ - DeathPossibilitiesTaxonomyT050057ViralDiseasesAccompaniedByExanthemEntry - ] = [] - t__060_066__arthropod_borne_viral_diseases_entries: List[ - DeathPossibilitiesTaxonomyT060066ArthropodBorneViralDiseasesEntry - ] = [] - t__070_079__other_diseases_due_to_viruses_and_chlamydiae_entries: List[ - DeathPossibilitiesTaxonomyT070079OtherDiseasesDueToVirusesAndChlamydiaeEntry - ] = [] - t__080_088__rickettsioses_and_other_arthropod_borne_diseases_entries: List[ - DeathPossibilitiesTaxonomyT080088RickettsiosesAndOtherArthropodBorneDiseasesEntry - ] = [] - t__090_099__syphilis_and_other_venereal_diseases_entries: List[ - DeathPossibilitiesTaxonomyT090099SyphilisAndOtherVenerealDiseasesEntry - ] = [] - t__100_104__other_spirochaetal_diseases_entries: List[ - DeathPossibilitiesTaxonomyT100104OtherSpirochaetalDiseasesEntry - ] = [] - t__110_118__mycoses_entries: List[DeathPossibilitiesTaxonomyT110118MycosesEntry] = [] - t__120_129__helminthiases_entries: List[DeathPossibilitiesTaxonomyT120129HelminthiasesEntry] = [] - t__130_136__other_infectious_and_parasitic_diseases_entries: List[ - DeathPossibilitiesTaxonomyT130136OtherInfectiousAndParasiticDiseasesEntry - ] = [] - t__137_139__late_effects_of_infectious_and_parasitic_diseases_entries: List[ - DeathPossibilitiesTaxonomyT137139LateEffectsOfInfectiousAndParasiticDiseasesEntry - ] = [] - t__140_149__malignant_neoplasm_of_lip__oral_cavity_and_pharynx_entries: List[ - DeathPossibilitiesTaxonomyT140149MalignantNeoplasmOfLipOralCavityAndPharynxEntry - ] = [] - t__150_159__malignant_neoplasm_of_digestive_organs_and_peritoneum_entries: List[ - DeathPossibilitiesTaxonomyT150159MalignantNeoplasmOfDigestiveOrgansAndPeritoneumEntry - ] = [] - t__160_165__malignant_neoplasm_of_respiratory_and_intrathoracic_organs_entries: List[ - DeathPossibilitiesTaxonomyT160165MalignantNeoplasmOfRespiratoryAndIntrathoracicOrgansEntry - ] = [] - t__170_176__malignant_neoplasm_of_bone__connective_tissue__skin_and_breast_entries: List[ - DeathPossibilitiesTaxonomyT170176MalignantNeoplasmOfBoneConnectiveTissueSkinAndBreastEntry - ] = [] - t__179_189__malignant_neoplasm_of_genito_urinary_organs_entries: List[ - DeathPossibilitiesTaxonomyT179189MalignantNeoplasmOfGenitoUrinaryOrgansEntry - ] = [] - t__190_199__malignant_neoplasm_of_other_and_unspecified_sites_entries: List[ - DeathPossibilitiesTaxonomyT190199MalignantNeoplasmOfOtherAndUnspecifiedSitesEntry - ] = [] - t__200_208__malignant_neoplasm_of_lymphatic_and_haematopoietic_tissue_entries: List[ - DeathPossibilitiesTaxonomyT200208MalignantNeoplasmOfLymphaticAndHaematopoieticTissueEntry - ] = [] - t__210_229__benign_neoplasms_entries: List[DeathPossibilitiesTaxonomyT210229BenignNeoplasmsEntry] = [] - t__230_234__carcinoma_in_situ_entries: List[DeathPossibilitiesTaxonomyT230234CarcinomaInSituEntry] = [] - t__235_238__neoplasms_of_uncertain_behaviour_entries: List[ - DeathPossibilitiesTaxonomyT235238NeoplasmsOfUncertainBehaviourEntry - ] = [] - t__239_239__neoplasms_of_unspecified_nature_entries: List[ - DeathPossibilitiesTaxonomyT239239NeoplasmsOfUnspecifiedNatureEntry - ] = [] - t__240_246__disorders_of_thyroid_gland_entries: List[ - DeathPossibilitiesTaxonomyT240246DisordersOfThyroidGlandEntry - ] = [] - t__250_259__diseases_of_other_endocrine_glands_entries: List[ - DeathPossibilitiesTaxonomyT250259DiseasesOfOtherEndocrineGlandsEntry - ] = [] - t__260_269__nutritional_deficiencies_entries: List[ - DeathPossibilitiesTaxonomyT260269NutritionalDeficienciesEntry - ] = [] - t__270_279__other_metabolic_disorders_and_immunity_disorders_entries: List[ - DeathPossibilitiesTaxonomyT270279OtherMetabolicDisordersAndImmunityDisordersEntry - ] = [] - t__280_289__diseases_of_blood_and_blood_forming_organs_entries: List[ - DeathPossibilitiesTaxonomyT280289DiseasesOfBloodAndBloodFormingOrgansEntry - ] = [] - t__290_294__organic_psychotic_conditions_entries: List[ - DeathPossibilitiesTaxonomyT290294OrganicPsychoticConditionsEntry - ] = [] - t__295_299__other_psychoses_entries: List[DeathPossibilitiesTaxonomyT295299OtherPsychosesEntry] = [] - t__300_316__neurotic_disorders__personality_disorders_and_other_nonpsychotic_mental_disorders_entries: List[ - DeathPossibilitiesTaxonomyT300316NeuroticDisordersPersonalityDisordersAndOtherNonpsychoticMentalDisordersEntry - ] = [] - t__317_319__mental_retardation_entries: List[DeathPossibilitiesTaxonomyT317319MentalRetardationEntry] = [] - t__320_326__inflammatory_diseases_of_the_central_nervous_system_entries: List[ - DeathPossibilitiesTaxonomyT320326InflammatoryDiseasesOfTheCentralNervousSystemEntry - ] = [] - t__330_337__hereditary_and_degenerative_diseases_of_the_central_nervous_system_entries: List[ - DeathPossibilitiesTaxonomyT330337HereditaryAndDegenerativeDiseasesOfTheCentralNervousSystemEntry - ] = [] - t__340_349__other_disorders_of_the_central_nervous_system_entries: List[ - DeathPossibilitiesTaxonomyT340349OtherDisordersOfTheCentralNervousSystemEntry - ] = [] - t__350_359__disorders_of_the_peripheral_nervous_system_entries: List[ - DeathPossibilitiesTaxonomyT350359DisordersOfThePeripheralNervousSystemEntry - ] = [] - t__360_379__disorders_of_the_eye_and_adnexa_entries: List[ - DeathPossibilitiesTaxonomyT360379DisordersOfTheEyeAndAdnexaEntry - ] = [] - t__380_389__diseases_of_the_ear_and_mastoid_process_entries: List[ - DeathPossibilitiesTaxonomyT380389DiseasesOfTheEarAndMastoidProcessEntry - ] = [] - t__390_392__acute_rheumatic_fever_entries: List[DeathPossibilitiesTaxonomyT390392AcuteRheumaticFeverEntry] = [] - t__393_398__chronic_rheumatic_heart_disease_entries: List[ - DeathPossibilitiesTaxonomyT393398ChronicRheumaticHeartDiseaseEntry - ] = [] - t__401_405__hypertensive_disease_entries: List[DeathPossibilitiesTaxonomyT401405HypertensiveDiseaseEntry] = [] - t__410_414__ischaemic_heart_disease_entries: List[DeathPossibilitiesTaxonomyT410414IschaemicHeartDiseaseEntry] = [] - t__415_417__diseases_of_pulmonary_circulation_entries: List[ - DeathPossibilitiesTaxonomyT415417DiseasesOfPulmonaryCirculationEntry - ] = [] - t__420_429__other_forms_of_heart_disease_entries: List[ - DeathPossibilitiesTaxonomyT420429OtherFormsOfHeartDiseaseEntry - ] = [] - t__430_438__cerebrovascular_disease_entries: List[DeathPossibilitiesTaxonomyT430438CerebrovascularDiseaseEntry] = [] - t__440_448__diseases_of_arteries__arterioles_and_capillaries_entries: List[ - DeathPossibilitiesTaxonomyT440448DiseasesOfArteriesArteriolesAndCapillariesEntry - ] = [] - t__451_459__diseases_of_veins_and_lymphatics__and_other_diseases_of_circulatory_system_entries: List[ - DeathPossibilitiesTaxonomyT451459DiseasesOfVeinsAndLymphaticsAndOtherDiseasesOfCirculatorySystemEntry - ] = [] - t__460_466__acute_respiratory_infections_entries: List[ - DeathPossibilitiesTaxonomyT460466AcuteRespiratoryInfectionsEntry - ] = [] - t__470_478__other_diseases_of_upper_respiratory_tract_entries: List[ - DeathPossibilitiesTaxonomyT470478OtherDiseasesOfUpperRespiratoryTractEntry - ] = [] - t__480_487__pneumonia_and_influenza_entries: List[DeathPossibilitiesTaxonomyT480487PneumoniaAndInfluenzaEntry] = [] - t__490_496__chronic_obstructive_pulmonary_disease_and_allied_conditions_entries: List[ - DeathPossibilitiesTaxonomyT490496ChronicObstructivePulmonaryDiseaseAndAlliedConditionsEntry - ] = [] - t__500_508__pneumoconioses_and_other_lung_diseases_due_to_external_agents_entries: List[ - DeathPossibilitiesTaxonomyT500508PneumoconiosesAndOtherLungDiseasesDueToExternalAgentsEntry - ] = [] - t__510_519__other_diseases_of_respiratory_system_entries: List[ - DeathPossibilitiesTaxonomyT510519OtherDiseasesOfRespiratorySystemEntry - ] = [] - t__520_529__diseases_of_oral_cavity__salivary_glands_and_jaws_entries: List[ - DeathPossibilitiesTaxonomyT520529DiseasesOfOralCavitySalivaryGlandsAndJawsEntry - ] = [] - t__530_537__diseases_of_oesophagus__stomach_and_duodenum_entries: List[ - DeathPossibilitiesTaxonomyT530537DiseasesOfOesophagusStomachAndDuodenumEntry - ] = [] - t__540_543__appendicitis_entries: List[DeathPossibilitiesTaxonomyT540543AppendicitisEntry] = [] - t__550_553__hernia_of_abdominal_cavity_entries: List[ - DeathPossibilitiesTaxonomyT550553HerniaOfAbdominalCavityEntry - ] = [] - t__555_558__non_infective_enteritis_and_colitis_entries: List[ - DeathPossibilitiesTaxonomyT555558NonInfectiveEnteritisAndColitisEntry - ] = [] - t__560_569__other_diseases_of_intestines_and_peritoneum_entries: List[ - DeathPossibilitiesTaxonomyT560569OtherDiseasesOfIntestinesAndPeritoneumEntry - ] = [] - t__570_579__other_diseases_of_digestive_system_entries: List[ - DeathPossibilitiesTaxonomyT570579OtherDiseasesOfDigestiveSystemEntry - ] = [] - t__580_589__nephritis__nephrotic_syndrome_and_nephrosis_entries: List[ - DeathPossibilitiesTaxonomyT580589NephritisNephroticSyndromeAndNephrosisEntry - ] = [] - t__590_599__other_diseases_of_urinary_system_entries: List[ - DeathPossibilitiesTaxonomyT590599OtherDiseasesOfUrinarySystemEntry - ] = [] - t__600_608__diseases_of_male_genital_organs_entries: List[ - DeathPossibilitiesTaxonomyT600608DiseasesOfMaleGenitalOrgansEntry - ] = [] - t__610_611__disorders_of_breast_entries: List[DeathPossibilitiesTaxonomyT610611DisordersOfBreastEntry] = [] - t__614_616__inflammatory_disease_of_female_pelvic_organs_entries: List[ - DeathPossibilitiesTaxonomyT614616InflammatoryDiseaseOfFemalePelvicOrgansEntry - ] = [] - t__617_629__other_disorders_of_female_genital_tract_entries: List[ - DeathPossibilitiesTaxonomyT617629OtherDisordersOfFemaleGenitalTractEntry - ] = [] - t__630_633__ectopic_and_molar_pregnancy_entries: List[ - DeathPossibilitiesTaxonomyT630633EctopicAndMolarPregnancyEntry - ] = [] - t__634_639__other_pregnancy_with_abortive_outcome_entries: List[ - DeathPossibilitiesTaxonomyT634639OtherPregnancyWithAbortiveOutcomeEntry - ] = [] - t__640_648__complications_mainly_related_to_pregnancy_entries: List[ - DeathPossibilitiesTaxonomyT640648ComplicationsMainlyRelatedToPregnancyEntry - ] = [] - t__650_659__normal_delivery_and_other_indications_for_care_in_pregnancy__labour_and_delivery_entries: List[ - DeathPossibilitiesTaxonomyT650659NormalDeliveryAndOtherIndicationsForCareInPregnancyLabourAndDeliveryEntry - ] = [] - t__660_669__complications_occurring_mainly_in_the_course_of_labour_and_delivery_entries: List[ - DeathPossibilitiesTaxonomyT660669ComplicationsOccurringMainlyInTheCourseOfLabourAndDeliveryEntry - ] = [] - t__670_677__complications_of_the_puerperium_entries: List[ - DeathPossibilitiesTaxonomyT670677ComplicationsOfThePuerperiumEntry - ] = [] - t__680_686__infections_of_skin_and_subcutaneous_tissue_entries: List[ - DeathPossibilitiesTaxonomyT680686InfectionsOfSkinAndSubcutaneousTissueEntry - ] = [] - t__690_698__other_inflammatory_conditions_of_skin_and_subcutaneous_tissue_entries: List[ - DeathPossibilitiesTaxonomyT690698OtherInflammatoryConditionsOfSkinAndSubcutaneousTissueEntry - ] = [] - t__700_709__other_diseases_of_skin_and_subcutaneous_tissue_entries: List[ - DeathPossibilitiesTaxonomyT700709OtherDiseasesOfSkinAndSubcutaneousTissueEntry - ] = [] - t__710_719__arthropathies_and_related_disorders_entries: List[ - DeathPossibilitiesTaxonomyT710719ArthropathiesAndRelatedDisordersEntry - ] = [] - t__720_724__dorsopathies_entries: List[DeathPossibilitiesTaxonomyT720724DorsopathiesEntry] = [] - t__725_729__rheumatism__excluding_the_back_entries: List[ - DeathPossibilitiesTaxonomyT725729RheumatismExcludingTheBackEntry - ] = [] - t__730_739__osteopathies__chondropathies_and_acquired_musculoskeletal_deformities_entries: List[ - DeathPossibilitiesTaxonomyT730739OsteopathiesChondropathiesAndAcquiredMusculoskeletalDeformitiesEntry - ] = [] - t__740_759__congenital_anomalies_entries: List[DeathPossibilitiesTaxonomyT740759CongenitalAnomaliesEntry] = [] - t__760_763__maternal_causes_of_perinatal_morbidity_and_mortality_entries: List[ - DeathPossibilitiesTaxonomyT760763MaternalCausesOfPerinatalMorbidityAndMortalityEntry - ] = [] - t__764_779__other_conditions_originating_in_the_perinatal_period_entries: List[ - DeathPossibilitiesTaxonomyT764779OtherConditionsOriginatingInThePerinatalPeriodEntry - ] = [] - t__780_789__symptoms_entries: List[DeathPossibilitiesTaxonomyT780789SymptomsEntry] = [] - t__790_796__nonspecific_abnormal_findings_entries: List[ - DeathPossibilitiesTaxonomyT790796NonspecificAbnormalFindingsEntry - ] = [] - t__797_799__ill_defined_and_unknown_causes_of_morbidity_and_mortality_entries: List[ - DeathPossibilitiesTaxonomyT797799IllDefinedAndUnknownCausesOfMorbidityAndMortalityEntry - ] = [] - t__800_804__fracture_of_skull_entries: List[DeathPossibilitiesTaxonomyT800804FractureOfSkullEntry] = [] - t__805_809__fracture_of_neck_and_trunk_entries: List[ - DeathPossibilitiesTaxonomyT805809FractureOfNeckAndTrunkEntry - ] = [] - t__810_819__fracture_of_upper_limb_entries: List[DeathPossibilitiesTaxonomyT810819FractureOfUpperLimbEntry] = [] - t__820_829__fracture_of_lower_limb_entries: List[DeathPossibilitiesTaxonomyT820829FractureOfLowerLimbEntry] = [] - t__830_839__dislocation_entries: List[DeathPossibilitiesTaxonomyT830839DislocationEntry] = [] - t__840_848__sprains_and_strains_of_joints_and_adjacent_muscles_entries: List[ - DeathPossibilitiesTaxonomyT840848SprainsAndStrainsOfJointsAndAdjacentMusclesEntry - ] = [] - t__850_854__intracranial_injury__excluding_those_with_skull_fracture_entries: List[ - DeathPossibilitiesTaxonomyT850854IntracranialInjuryExcludingThoseWithSkullFractureEntry - ] = [] - t__860_869__internal_injury_of_chest__abdomen_and_pelvis_entries: List[ - DeathPossibilitiesTaxonomyT860869InternalInjuryOfChestAbdomenAndPelvisEntry - ] = [] - t__870_879__open_wound_of_head__neck_and_trunk_entries: List[ - DeathPossibilitiesTaxonomyT870879OpenWoundOfHeadNeckAndTrunkEntry - ] = [] - t__880_887__open_wound_of_upper_limb_entries: List[DeathPossibilitiesTaxonomyT880887OpenWoundOfUpperLimbEntry] = [] - t__890_897__open_wound_of_lower_limb_entries: List[DeathPossibilitiesTaxonomyT890897OpenWoundOfLowerLimbEntry] = [] - t__900_904__injury_to_blood_vessels_entries: List[DeathPossibilitiesTaxonomyT900904InjuryToBloodVesselsEntry] = [] - t__905_909__late_effects_of_injuries__poisonings__toxic_effects_and_other_external_causes_entries: List[ - DeathPossibilitiesTaxonomyT905909LateEffectsOfInjuriesPoisoningsToxicEffectsAndOtherExternalCausesEntry - ] = [] - t__910_919__superficial_injury_entries: List[DeathPossibilitiesTaxonomyT910919SuperficialInjuryEntry] = [] - t__920_924__contusion_with_intact_skin_surface_entries: List[ - DeathPossibilitiesTaxonomyT920924ContusionWithIntactSkinSurfaceEntry - ] = [] - t__925_929__crushing_injury_entries: List[DeathPossibilitiesTaxonomyT925929CrushingInjuryEntry] = [] - t__930_939__effects_of_foreign_body_entering_through_orifice_entries: List[ - DeathPossibilitiesTaxonomyT930939EffectsOfForeignBodyEnteringThroughOrificeEntry - ] = [] - t__940_949__burns_entries: List[DeathPossibilitiesTaxonomyT940949BurnsEntry] = [] - t__950_957__injury_to_nerves_and_spinal_cord_entries: List[ - DeathPossibilitiesTaxonomyT950957InjuryToNervesAndSpinalCordEntry - ] = [] - t__958_959__certain_traumatic_complications_and_unspecified_injuries_entries: List[ - DeathPossibilitiesTaxonomyT958959CertainTraumaticComplicationsAndUnspecifiedInjuriesEntry - ] = [] - t__960_979__poisoning_by_drugs__medicaments_and_biological_substances_entries: List[ - DeathPossibilitiesTaxonomyT960979PoisoningByDrugsMedicamentsAndBiologicalSubstancesEntry - ] = [] - t__980_989__toxic_effects_of_substances_chiefly_nonmedicinal_as_to_source_entries: List[ - DeathPossibilitiesTaxonomyT980989ToxicEffectsOfSubstancesChieflyNonmedicinalAsToSourceEntry - ] = [] - t__990_995__other_and_unspecified_effects_of_external_causes_entries: List[ - DeathPossibilitiesTaxonomyT990995OtherAndUnspecifiedEffectsOfExternalCausesEntry - ] = [] - t__996_999__complications_of_surgical_and_medical_care__not_elsewhere_classified_entries: List[ - DeathPossibilitiesTaxonomyT996999ComplicationsOfSurgicalAndMedicalCareNotElsewhereClassifiedEntry - ] = [] - t__e800_e807__railway_accidents_entries: List[DeathPossibilitiesTaxonomyTE800E807RailwayAccidentsEntry] = [] - t__e810_e819__motor_vehicle_traffic_accidents_entries: List[ - DeathPossibilitiesTaxonomyTE810E819MotorVehicleTrafficAccidentsEntry - ] = [] - t__e820_e825__motor_vehicle_nontraffic_accidents_entries: List[ - DeathPossibilitiesTaxonomyTE820E825MotorVehicleNontrafficAccidentsEntry - ] = [] - t__e826_e829__other_road_vehicle_accidents_entries: List[ - DeathPossibilitiesTaxonomyTE826E829OtherRoadVehicleAccidentsEntry - ] = [] - t__e830_e838__water_transport_accidents_entries: List[ - DeathPossibilitiesTaxonomyTE830E838WaterTransportAccidentsEntry - ] = [] - t__e840_e845__air_and_space_transport_accidents_entries: List[ - DeathPossibilitiesTaxonomyTE840E845AirAndSpaceTransportAccidentsEntry - ] = [] - t__e846_e848__vehicle_accidents_not_elsewhere_classifiable_entries: List[ - DeathPossibilitiesTaxonomyTE846E848VehicleAccidentsNotElsewhereClassifiableEntry - ] = [] - t__e849_e858__accidental_poisoning_by_drugs__medicaments_and_biologicals_entries: List[ - DeathPossibilitiesTaxonomyTE849E858AccidentalPoisoningByDrugsMedicamentsAndBiologicalsEntry - ] = [] - t__e860_e869__accidental_poisoning_by_other_solid_and_liquid_substances__gases_and_vapours_entries: List[ - DeathPossibilitiesTaxonomyTE860E869AccidentalPoisoningByOtherSolidAndLiquidSubstancesGasesAndVapoursEntry - ] = [] - t__e870_e876__misadventures_to_patients_during_surgical_and_medical_care_entries: List[ - DeathPossibilitiesTaxonomyTE870E876MisadventuresToPatientsDuringSurgicalAndMedicalCareEntry - ] = [] - t__e878_e879__surgical_and_medical_procedures_as_the_cause_of_abnormal_reaction_of_patient_or_later_complication__without_mention_of_misadventure_at_the_time_of_procedure_entries: List[ - DeathPossibilitiesTaxonomyTE878E879SurgicalAndMedicalProceduresAsTheCauseOfAbnormalReactionOfPatientOrLaterComplicationWithoutMentionOfMisadventureAtTheTimeOfProcedureEntry - ] = [] - t__e880_e888__accidental_falls_entries: List[DeathPossibilitiesTaxonomyTE880E888AccidentalFallsEntry] = [] - t__e890_e899__accidents_caused_by_fire_and_flames_entries: List[ - DeathPossibilitiesTaxonomyTE890E899AccidentsCausedByFireAndFlamesEntry - ] = [] - t__e900_e909__accidents_due_to_natural_and_environmental_factors_entries: List[ - DeathPossibilitiesTaxonomyTE900E909AccidentsDueToNaturalAndEnvironmentalFactorsEntry - ] = [] - t__e910_e915__accidents_caused_by_submersion__suffocation_and_foreign_bodies_entries: List[ - DeathPossibilitiesTaxonomyTE910E915AccidentsCausedBySubmersionSuffocationAndForeignBodiesEntry - ] = [] - t__e916_e928__other_accidents_entries: List[DeathPossibilitiesTaxonomyTE916E928OtherAccidentsEntry] = [] - t__e929_e929__late_effects_of_accidental_injury_entries: List[ - DeathPossibilitiesTaxonomyTE929E929LateEffectsOfAccidentalInjuryEntry - ] = [] - t__e930_e949__drugs__medicaments_and_biological_substances_causing_adverse_effects_in_therapeutic_use_entries: List[ - DeathPossibilitiesTaxonomyTE930E949DrugsMedicamentsAndBiologicalSubstancesCausingAdverseEffectsInTherapeuticUseEntry - ] = [] - t__e950_e959__suicide_and_self_inflicted_injury_entries: List[ - DeathPossibilitiesTaxonomyTE950E959SuicideAndSelfInflictedInjuryEntry - ] = [] - t__e960_e969__homicide_and_injury_purposely_inflicted_by_other_persons_entries: List[ - DeathPossibilitiesTaxonomyTE960E969HomicideAndInjuryPurposelyInflictedByOtherPersonsEntry - ] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/deception.py b/src/openmisp/models/taxonomies/deception.py deleted file mode 100644 index 8aea770..0000000 --- a/src/openmisp/models/taxonomies/deception.py +++ /dev/null @@ -1,95 +0,0 @@ -"""Taxonomy model for Deception.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DeceptionTaxonomyPredicate(str, Enum): - SPACE = "space" - TIME = "time" - PARTICIPANT = "participant" - CAUSALITY = "causality" - QUALITY = "quality" - ESSENCE = "essence" - SPEECH_ACT_THEORY = "speech-act-theory" - - -class DeceptionTaxonomySpaceEntry(str, Enum): - DIRECTION = "direction" - LOCATION_AT = "location-at" - LOCATION_FROM = "location-from" - LOCATION_TO = "location-to" - LOCATION_THROUGH = "location-through" - ORIENTATION = "orientation" - - -class DeceptionTaxonomyTimeEntry(str, Enum): - FREQUENCY = "frequency" - TIME_AT = "time-at" - TIME_FROM = "time-from" - TIME_TO = "time-to" - TIME_THROUGH = "time-through" - - -class DeceptionTaxonomyParticipantEntry(str, Enum): - AGENT = "agent" - BENEFICIARY = "beneficiary" - EXPERIENCER = "experiencer" - INSTRUMENT = "instrument" - OBJECT = "object" - RECIPIENT = "recipient" - - -class DeceptionTaxonomyCausalityEntry(str, Enum): - CAUSE = "cause" - CONTRADICTION = "contradiction" - EFFECT = "effect" - PURPOSE = "purpose" - - -class DeceptionTaxonomyQualityEntry(str, Enum): - ACCOMPANIMENT = "accompaniment" - CONTENT = "content" - MANNER = "manner" - MATERIAL = "material" - MEASURE = "measure" - ORDER = "order" - VALUE = "value" - - -class DeceptionTaxonomyEssenceEntry(str, Enum): - SUPERTYPE = "supertype" - WHOLE = "whole" - - -class DeceptionTaxonomySpeechActTheoryEntry(str, Enum): - EXTERNAL_PRECONDITION = "external-precondition" - INTERNAL_PRECONDITION = "internal-precondition" - - -class DeceptionTaxonomy(BaseModel): - """Model for the Deception taxonomy.""" - - namespace: str = "deception" - description: str = ( - """Deception is an important component of information operations, valuable for both offense and defense. """ - ) - version: int = 1 - exclusive: bool = False - predicates: List[DeceptionTaxonomyPredicate] = [] - space_entries: List[DeceptionTaxonomySpaceEntry] = [] - time_entries: List[DeceptionTaxonomyTimeEntry] = [] - participant_entries: List[DeceptionTaxonomyParticipantEntry] = [] - causality_entries: List[DeceptionTaxonomyCausalityEntry] = [] - quality_entries: List[DeceptionTaxonomyQualityEntry] = [] - essence_entries: List[DeceptionTaxonomyEssenceEntry] = [] - speech_act_theory_entries: List[DeceptionTaxonomySpeechActTheoryEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/detection_engineering.py b/src/openmisp/models/taxonomies/detection_engineering.py deleted file mode 100644 index f1d375f..0000000 --- a/src/openmisp/models/taxonomies/detection_engineering.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Taxonomy model for Detection engineering.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DetectionEngineeringTaxonomyPredicate(str, Enum): - PATTERN_MATCHING = "pattern-matching" - - -class DetectionEngineeringTaxonomyPatternMatchingEntry(str, Enum): - HIGH = "high" - MEDIUM = "medium" - LOW = "low" - - -class DetectionEngineeringTaxonomy(BaseModel): - """Model for the Detection engineering taxonomy.""" - - namespace: str = "detection-engineering" - description: str = """Taxonomy related to detection engineering techniques""" - version: int = 1 - exclusive: bool = False - predicates: List[DetectionEngineeringTaxonomyPredicate] = [] - pattern_matching_entries: List[DetectionEngineeringTaxonomyPatternMatchingEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/dfrlab_dichotomies_of_disinformation.py b/src/openmisp/models/taxonomies/dfrlab_dichotomies_of_disinformation.py deleted file mode 100644 index 601d217..0000000 --- a/src/openmisp/models/taxonomies/dfrlab_dichotomies_of_disinformation.py +++ /dev/null @@ -1,713 +0,0 @@ -"""Taxonomy model for DFRLab-dichotomies-of-disinformation.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DfrlabDichotomiesOfDisinformationTaxonomyPredicate(str, Enum): - PRIMARY_TARGET = "primary-target" - PLATFORMS_ADVERTISEMENT = "platforms-advertisement" - PLATFORMS_EMAIL = "platforms-email" - PRIMARY_DISINFORMANT = "primary-disinformant" - TARGET_CATEGORY = "target-category" - TARGET_CONCURRENT_EVENTS = "target-concurrent-events" - PLATFORMS_OPEN_WEB = "platforms-open-web" - PLATFORMS_SOCIAL_MEDIA = "platforms-social-media" - PLATFORMS_MESSAGING = "platforms-messaging" - PLATFORMS = "platforms" - CONTENT_LANGUAGE = "content-language" - CONTENT_TOPIC = "content-topic" - METHODS_TACTICS = "methods-tactics" - METHODS_NARRATIVE_TECHNIQUES = "methods-narrative-techniques" - DISINFORMANT_CATEGORY = "disinformant-category" - DISINFORMANT_CONCURRENT_EVENTS = "disinformant-concurrent-events" - DISINFORMANT_INTENT = "disinformant-intent" - - -class DfrlabDichotomiesOfDisinformationTaxonomyPrimaryTargetEntry(str, Enum): - AD = "AD" - AE = "AE" - AF = "AF" - AG = "AG" - AI = "AI" - AL = "AL" - AM = "AM" - AO = "AO" - AQ = "AQ" - AR = "AR" - AS = "AS" - AT = "AT" - AU = "AU" - AW = "AW" - AX = "AX" - AZ = "AZ" - BA = "BA" - BB = "BB" - BD = "BD" - BE = "BE" - BF = "BF" - BG = "BG" - BH = "BH" - BI = "BI" - BJ = "BJ" - BL = "BL" - BM = "BM" - BN = "BN" - BO = "BO" - BQ = "BQ" - BR = "BR" - BS = "BS" - BT = "BT" - BV = "BV" - BW = "BW" - BY = "BY" - BZ = "BZ" - CA = "CA" - CC = "CC" - CD = "CD" - CF = "CF" - CG = "CG" - CH = "CH" - CI = "CI" - CK = "CK" - CL = "CL" - CM = "CM" - CN = "CN" - CO = "CO" - CR = "CR" - CU = "CU" - CV = "CV" - CW = "CW" - CX = "CX" - CY = "CY" - CZ = "CZ" - DE = "DE" - DJ = "DJ" - DK = "DK" - DM = "DM" - DO = "DO" - DZ = "DZ" - EC = "EC" - EE = "EE" - EG = "EG" - EH = "EH" - ER = "ER" - ES = "ES" - ET = "ET" - FI = "FI" - FJ = "FJ" - FK = "FK" - FM = "FM" - FO = "FO" - FR = "FR" - GA = "GA" - GB = "GB" - GD = "GD" - GE = "GE" - GF = "GF" - GG = "GG" - GH = "GH" - GI = "GI" - GL = "GL" - GM = "GM" - GN = "GN" - GP = "GP" - GQ = "GQ" - GR = "GR" - GS = "GS" - GT = "GT" - GU = "GU" - GW = "GW" - GY = "GY" - HK = "HK" - HM = "HM" - HN = "HN" - HR = "HR" - HT = "HT" - HU = "HU" - ID = "ID" - IE = "IE" - IL = "IL" - IM = "IM" - IN = "IN" - IO = "IO" - IQ = "IQ" - IR = "IR" - IS = "IS" - IT = "IT" - JE = "JE" - JM = "JM" - JO = "JO" - JP = "JP" - KE = "KE" - KG = "KG" - KH = "KH" - KI = "KI" - KM = "KM" - KN = "KN" - KP = "KP" - KR = "KR" - KW = "KW" - KY = "KY" - KZ = "KZ" - LA = "LA" - LB = "LB" - LC = "LC" - LI = "LI" - LK = "LK" - LR = "LR" - LS = "LS" - LT = "LT" - LU = "LU" - LV = "LV" - LY = "LY" - MA = "MA" - MC = "MC" - MD = "MD" - ME = "ME" - MF = "MF" - MG = "MG" - MH = "MH" - MK = "MK" - ML = "ML" - MM = "MM" - MN = "MN" - MO = "MO" - MP = "MP" - MQ = "MQ" - MR = "MR" - MS = "MS" - MT = "MT" - MU = "MU" - MV = "MV" - MW = "MW" - MX = "MX" - MY = "MY" - MZ = "MZ" - NA = "NA" - NC = "NC" - NE = "NE" - NF = "NF" - NG = "NG" - NI = "NI" - NL = "NL" - NO = "NO" - NP = "NP" - NR = "NR" - NU = "NU" - NZ = "NZ" - OM = "OM" - OTHER = "Other" - PA = "PA" - PE = "PE" - PF = "PF" - PG = "PG" - PH = "PH" - PK = "PK" - PL = "PL" - PM = "PM" - PN = "PN" - PR = "PR" - PS = "PS" - PT = "PT" - PW = "PW" - PY = "PY" - QA = "QA" - RE = "RE" - RO = "RO" - RS = "RS" - RU = "RU" - RW = "RW" - SA = "SA" - SB = "SB" - SC = "SC" - SD = "SD" - SE = "SE" - SG = "SG" - SH = "SH" - SI = "SI" - SJ = "SJ" - SK = "SK" - SL = "SL" - SM = "SM" - SN = "SN" - SO = "SO" - SR = "SR" - SS = "SS" - ST = "ST" - SV = "SV" - SX = "SX" - SY = "SY" - SZ = "SZ" - TC = "TC" - TD = "TD" - TF = "TF" - TG = "TG" - TH = "TH" - TJ = "TJ" - TK = "TK" - TL = "TL" - TM = "TM" - TN = "TN" - TO = "TO" - TR = "TR" - TT = "TT" - TV = "TV" - TW = "TW" - TZ = "TZ" - UA = "UA" - UG = "UG" - UM = "UM" - US = "US" - UY = "UY" - UZ = "UZ" - UNKNOWN = "Unknown" - VA = "VA" - VC = "VC" - VE = "VE" - VG = "VG" - VI = "VI" - VN = "VN" - VU = "VU" - WF = "WF" - WS = "WS" - YE = "YE" - YT = "YT" - ZA = "ZA" - ZM = "ZM" - ZW = "ZW" - - -class DfrlabDichotomiesOfDisinformationTaxonomyPrimaryDisinformantEntry(str, Enum): - AD = "AD" - AE = "AE" - AF = "AF" - AG = "AG" - AI = "AI" - AL = "AL" - AM = "AM" - AO = "AO" - AQ = "AQ" - AR = "AR" - AS = "AS" - AT = "AT" - AU = "AU" - AW = "AW" - AX = "AX" - AZ = "AZ" - BA = "BA" - BB = "BB" - BD = "BD" - BE = "BE" - BF = "BF" - BG = "BG" - BH = "BH" - BI = "BI" - BJ = "BJ" - BL = "BL" - BM = "BM" - BN = "BN" - BO = "BO" - BQ = "BQ" - BR = "BR" - BS = "BS" - BT = "BT" - BV = "BV" - BW = "BW" - BY = "BY" - BZ = "BZ" - CA = "CA" - CC = "CC" - CD = "CD" - CF = "CF" - CG = "CG" - CH = "CH" - CI = "CI" - CK = "CK" - CL = "CL" - CM = "CM" - CN = "CN" - CO = "CO" - CR = "CR" - CU = "CU" - CV = "CV" - CW = "CW" - CX = "CX" - CY = "CY" - CZ = "CZ" - DE = "DE" - DJ = "DJ" - DK = "DK" - DM = "DM" - DO = "DO" - DZ = "DZ" - EC = "EC" - EE = "EE" - EG = "EG" - EH = "EH" - ER = "ER" - ES = "ES" - ET = "ET" - FI = "FI" - FJ = "FJ" - FK = "FK" - FM = "FM" - FO = "FO" - FR = "FR" - GA = "GA" - GB = "GB" - GD = "GD" - GE = "GE" - GF = "GF" - GG = "GG" - GH = "GH" - GI = "GI" - GL = "GL" - GM = "GM" - GN = "GN" - GP = "GP" - GQ = "GQ" - GR = "GR" - GS = "GS" - GT = "GT" - GU = "GU" - GW = "GW" - GY = "GY" - HK = "HK" - HM = "HM" - HN = "HN" - HR = "HR" - HT = "HT" - HU = "HU" - ID = "ID" - IE = "IE" - IL = "IL" - IM = "IM" - IN = "IN" - IO = "IO" - IQ = "IQ" - IR = "IR" - IS = "IS" - IT = "IT" - JE = "JE" - JM = "JM" - JO = "JO" - JP = "JP" - KE = "KE" - KG = "KG" - KH = "KH" - KI = "KI" - KM = "KM" - KN = "KN" - KP = "KP" - KR = "KR" - KW = "KW" - KY = "KY" - KZ = "KZ" - LA = "LA" - LB = "LB" - LC = "LC" - LI = "LI" - LK = "LK" - LR = "LR" - LS = "LS" - LT = "LT" - LU = "LU" - LV = "LV" - LY = "LY" - MA = "MA" - MC = "MC" - MD = "MD" - ME = "ME" - MF = "MF" - MG = "MG" - MH = "MH" - MK = "MK" - ML = "ML" - MM = "MM" - MN = "MN" - MO = "MO" - MP = "MP" - MQ = "MQ" - MR = "MR" - MS = "MS" - MT = "MT" - MU = "MU" - MV = "MV" - MW = "MW" - MX = "MX" - MY = "MY" - MZ = "MZ" - NA = "NA" - NC = "NC" - NE = "NE" - NF = "NF" - NG = "NG" - NI = "NI" - NL = "NL" - NO = "NO" - NP = "NP" - NR = "NR" - NU = "NU" - NZ = "NZ" - OM = "OM" - OTHER = "Other" - PA = "PA" - PE = "PE" - PF = "PF" - PG = "PG" - PH = "PH" - PK = "PK" - PL = "PL" - PM = "PM" - PN = "PN" - PR = "PR" - PS = "PS" - PT = "PT" - PW = "PW" - PY = "PY" - QA = "QA" - RE = "RE" - RO = "RO" - RS = "RS" - RU = "RU" - RW = "RW" - SA = "SA" - SB = "SB" - SC = "SC" - SD = "SD" - SE = "SE" - SG = "SG" - SH = "SH" - SI = "SI" - SJ = "SJ" - SK = "SK" - SL = "SL" - SM = "SM" - SN = "SN" - SO = "SO" - SR = "SR" - SS = "SS" - ST = "ST" - SV = "SV" - SX = "SX" - SY = "SY" - SZ = "SZ" - TC = "TC" - TD = "TD" - TF = "TF" - TG = "TG" - TH = "TH" - TJ = "TJ" - TK = "TK" - TL = "TL" - TM = "TM" - TN = "TN" - TO = "TO" - TR = "TR" - TT = "TT" - TV = "TV" - TW = "TW" - TZ = "TZ" - UA = "UA" - UG = "UG" - UM = "UM" - US = "US" - UY = "UY" - UZ = "UZ" - UNKNOWN = "Unknown" - VA = "VA" - VC = "VC" - VE = "VE" - VG = "VG" - VI = "VI" - VN = "VN" - VU = "VU" - WF = "WF" - WS = "WS" - YE = "YE" - YT = "YT" - ZA = "ZA" - ZM = "ZM" - ZW = "ZW" - - -class DfrlabDichotomiesOfDisinformationTaxonomyTargetCategoryEntry(str, Enum): - GOVERNMENT_CIVILIAN = "government-civilian" - GOVERNMENT_MILITARY = "government-military" - POLITICAL_PARTY = "political-party" - NON_STATE_POLITICAL_ACTOR = "non-state-political-actor" - BUSINESS = "business" - INFLUENTIAL_INDIVIDUALS = "influential-individuals" - ELECTORATE = "electorate" - RACIAL = "racial" - ETHNIC = "ethnic" - SEXUAL_IDENTITY_GROUP = "sexual-identity-group" - RELIGIOUS = "religious" - - -class DfrlabDichotomiesOfDisinformationTaxonomyTargetConcurrentEventsEntry(str, Enum): - INTER_STATE_WAR = "inter-state-war" - EXTRA_STATE_WAR = "extra-state-war" - INTRA_STATE_WAR = "intra-state-war" - NON_STATE_WAR = "non-state-war" - FEDERAL_ELECTION = "federal-election" - STATE_ELECTION = "state-election" - - -class DfrlabDichotomiesOfDisinformationTaxonomyPlatformsOpenWebEntry(str, Enum): - STATE_MEDIA = "state-media" - INDEPENDENT_MEDIA = "independent-media" - JUNK_NEWS_WEBSITES = "junk-news-websites" - - -class DfrlabDichotomiesOfDisinformationTaxonomyPlatformsSocialMediaEntry(str, Enum): - FACEBOOK = "facebook" - INSTAGRAM = "instagram" - TWITTER = "twitter" - YOUTUBE = "youtube" - LINKEDIN = "linkedin" - REDDIT = "reddit" - VK = "vk" - FORUM = "forum" - OTHER = "other" - - -class DfrlabDichotomiesOfDisinformationTaxonomyPlatformsMessagingEntry(str, Enum): - WHATSAPP = "whatsapp" - TELEGRAM = "telegram" - SIGNAL = "signal" - LINE = "line" - WECHAT = "wechat" - SMS = "sms" - OTHER = "other" - - -class DfrlabDichotomiesOfDisinformationTaxonomyPlatformsEntry(str, Enum): - ADVERTISEMENT = "advertisement" - EMAIL = "email" - OTHER = "other" - - -class DfrlabDichotomiesOfDisinformationTaxonomyContentLanguageEntry(str, Enum): - ENGLISH = "english" - RUSSIAN = "russian" - FRENCH = "french" - CHINESE = "chinese" - GERMAN = "german" - SPANISH = "spanish" - HINDI = "hindi" - PORTUGUESE = "portuguese" - BENGALI = "bengali" - JAPANESE = "japanese" - TURKISH = "turkish" - POLISH = "polish" - UKRAINIAN = "ukrainian" - ARABIC = "arabic" - IRANIAN_PERSIAN = "iranian-persian" - - -class DfrlabDichotomiesOfDisinformationTaxonomyContentTopicEntry(str, Enum): - GOVERNMENT = "government" - MILITARY = "military" - POLITICAL_PARTY = "political-party" - ELECTIONS = "elections" - NON_STATE_POLITICAL_ACTOR = "non-state-political-actor" - BUSINESS = "business" - INFLUENTIAL_INDIVIDUALS = "influential-individuals" - RACIAL = "racial" - ETHNIC = "ethnic" - RELIGIOUS = "religious" - SEXUAL_IDENTITY_GROUP = "sexual-identity-group" - TERRORISM = "terrorism" - IMMIGRATION = "immigration" - ECONOMIC_ISSUE = "economic-issue" - OTHER = "other" - - -class DfrlabDichotomiesOfDisinformationTaxonomyMethodsTacticsEntry(str, Enum): - BRIGADING = "brigading" - SOCKPUPPETS = "sockpuppets" - BOTNETS = "botnets" - SEARCH_ENGINE_MANIPULATION = "search-engine-manipulation" - DDOS = "ddos" - DATA_EXFILTRATION = "data-exfiltration" - DEEP_LEARNING_PROCESSES = "deep-learning-processes" - OTHER = "other" - - -class DfrlabDichotomiesOfDisinformationTaxonomyMethodsNarrativeTechniquesEntry(str, Enum): - CONSTRUCTIVE_ACTIVATE = "constructive-activate" - CONSTRUCTIVE_ASTROTURF = "constructive-astroturf" - DESTRUCTIVE_SUPPRESS = "destructive-suppress" - DESTRUCTIVE_DISCREDIT = "destructive-discredit" - OBLIQUE_TROLL = "oblique-troll" - OBLIQUE_FLOOD = "oblique-flood" - - -class DfrlabDichotomiesOfDisinformationTaxonomyDisinformantCategoryEntry(str, Enum): - GOVERNMENT_DIRECT_ATTRIBUTION = "government-direct-attribution" - GOVERNMENT_INFERRED_ATTRIBUTION = "government-inferred-attribution" - POLITICAL_PARTY = "political-party" - NON_STATE_POLITICAL_ACTOR = "non-state-political-actor" - BUSINESS = "business" - INFLUENTIAL_INDIVIDUALS = "influential-individuals" - ELECTORATE = "electorate" - RACIAL = "racial" - ETHNIC = "ethnic" - SEXUAL_IDENTITY_GROUP = "sexual-identity-group" - RELIGIOUS = "religious" - - -class DfrlabDichotomiesOfDisinformationTaxonomyDisinformantConcurrentEventsEntry(str, Enum): - INTER_STATE_WAR = "inter-state-war" - EXTRA_STATE_WAR = "extra-state-war" - INTRA_STATE_WAR = "intra-state-war" - NON_STATE_WAR = "non-state-war" - FEDERAL_ELECTION = "federal-election" - STATE_ELECTION = "state-election" - - -class DfrlabDichotomiesOfDisinformationTaxonomyDisinformantIntentEntry(str, Enum): - CIVIL = "civil" - SOCIAL = "social" - ECONOMIC = "economic" - MILITARY = "military" - - -class DfrlabDichotomiesOfDisinformationTaxonomy(BaseModel): - """Model for the DFRLab-dichotomies-of-disinformation taxonomy.""" - - namespace: str = "DFRLab-dichotomies-of-disinformation" - description: str = """DFRLab Dichotomies of Disinformation.""" - version: int = 1 - exclusive: bool = False - predicates: List[DfrlabDichotomiesOfDisinformationTaxonomyPredicate] = [] - primary_target_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyPrimaryTargetEntry] = [] - primary_disinformant_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyPrimaryDisinformantEntry] = [] - target_category_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyTargetCategoryEntry] = [] - target_concurrent_events_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyTargetConcurrentEventsEntry] = [] - platforms_open_web_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyPlatformsOpenWebEntry] = [] - platforms_social_media_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyPlatformsSocialMediaEntry] = [] - platforms_messaging_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyPlatformsMessagingEntry] = [] - platforms_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyPlatformsEntry] = [] - content_language_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyContentLanguageEntry] = [] - content_topic_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyContentTopicEntry] = [] - methods_tactics_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyMethodsTacticsEntry] = [] - methods_narrative_techniques_entries: List[ - DfrlabDichotomiesOfDisinformationTaxonomyMethodsNarrativeTechniquesEntry - ] = [] - disinformant_category_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyDisinformantCategoryEntry] = [] - disinformant_concurrent_events_entries: List[ - DfrlabDichotomiesOfDisinformationTaxonomyDisinformantConcurrentEventsEntry - ] = [] - disinformant_intent_entries: List[DfrlabDichotomiesOfDisinformationTaxonomyDisinformantIntentEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/dga.py b/src/openmisp/models/taxonomies/dga.py deleted file mode 100644 index e94ad7e..0000000 --- a/src/openmisp/models/taxonomies/dga.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Taxonomy model for Domain-Generation Algorithms.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DgaTaxonomyPredicate(str, Enum): - GENERATION_SCHEME = "generation-scheme" - SEEDING = "seeding" - - -class DgaTaxonomyGenerationSchemeEntry(str, Enum): - ARITHMETIC = "arithmetic" - HASH = "hash" - WORDLIST = "wordlist" - PERMUTATION = "permutation" - - -class DgaTaxonomySeedingEntry(str, Enum): - TIME_DEPENDENT = "time-dependent" - TIME_INDEPENDENT = "time-independent" - DETERMINISTIC = "deterministic" - NON_DETERMINISTIC = "non-deterministic" - - -class DgaTaxonomy(BaseModel): - """Model for the Domain-Generation Algorithms taxonomy.""" - - namespace: str = "dga" - description: str = """A taxonomy to describe domain-generation algorithms often called DGA. Ref: A Comprehensive Measurement Study of Domain Generating Malware Daniel Plohmann and others.""" - version: int = 2 - exclusive: bool = False - predicates: List[DgaTaxonomyPredicate] = [] - generation_scheme_entries: List[DgaTaxonomyGenerationSchemeEntry] = [] - seeding_entries: List[DgaTaxonomySeedingEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/dhs_ciip_sectors.py b/src/openmisp/models/taxonomies/dhs_ciip_sectors.py deleted file mode 100644 index 3a0fa9c..0000000 --- a/src/openmisp/models/taxonomies/dhs_ciip_sectors.py +++ /dev/null @@ -1,48 +0,0 @@ -"""Taxonomy model for dhs-ciip-sectors.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DhsCiipSectorsTaxonomyPredicate(str, Enum): - DHS_CRITICAL_SECTORS = "DHS-critical-sectors" - SECTOR = "sector" - - -class DhsCiipSectorsTaxonomyDhsCriticalSectorsEntry(str, Enum): - CHEMICAL = "chemical" - COMMERCIAL_FACILITIES = "commercial-facilities" - COMMUNICATIONS = "communications" - CRITICAL_MANUFACTURING = "critical-manufacturing" - DAMS = "dams" - DIB = "dib" - EMERGENCY_SERVICES = "emergency-services" - ENERGY = "energy" - FINANCIAL_SERVICES = "financial-services" - FOOD_AGRICULTURE = "food-agriculture" - GOVERNMENT_FACILITIES = "government-facilities" - HEALTHCARE_PUBLIC = "healthcare-public" - IT = "it" - NUCLEAR = "nuclear" - TRANSPORT = "transport" - WATER = "water" - - -class DhsCiipSectorsTaxonomy(BaseModel): - """Model for the dhs-ciip-sectors taxonomy.""" - - namespace: str = "dhs-ciip-sectors" - description: str = """DHS critical sectors as in https://www.dhs.gov/critical-infrastructure-sectors""" - version: int = 2 - exclusive: bool = False - predicates: List[DhsCiipSectorsTaxonomyPredicate] = [] - dhs_critical_sectors_entries: List[DhsCiipSectorsTaxonomyDhsCriticalSectorsEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/diamond_model.py b/src/openmisp/models/taxonomies/diamond_model.py deleted file mode 100644 index 3fb46ea..0000000 --- a/src/openmisp/models/taxonomies/diamond_model.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Taxonomy model for Diamond Model for Intrusion Analysis.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DiamondModelTaxonomyPredicate(str, Enum): - ADVERSARY = "Adversary" - CAPABILITY = "Capability" - INFRASTRUCTURE = "Infrastructure" - VICTIM = "Victim" - - -class DiamondModelTaxonomy(BaseModel): - """Model for the Diamond Model for Intrusion Analysis taxonomy.""" - - namespace: str = "diamond-model" - description: str = """The Diamond Model for Intrusion Analysis establishes the basic atomic element of any intrusion activity, the event, composed of four core features: adversary, infrastructure, capability, and victim.""" - version: int = 1 - exclusive: bool = False - predicates: List[DiamondModelTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/diamond_model_for_influence_operations.py b/src/openmisp/models/taxonomies/diamond_model_for_influence_operations.py deleted file mode 100644 index 17c5c44..0000000 --- a/src/openmisp/models/taxonomies/diamond_model_for_influence_operations.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Taxonomy model for The Diamond Model for Influence Operations Analysis.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DiamondModelForInfluenceOperationsTaxonomyPredicate(str, Enum): - INFLUENCER = "Influencer" - CAPABILITIES = "Capabilities" - INFRASTRUCTURE = "Infrastructure" - AUDIENCE = "Audience" - NARRATIVE = "Narrative" - - -class DiamondModelForInfluenceOperationsTaxonomy(BaseModel): - """Model for the The Diamond Model for Influence Operations Analysis taxonomy.""" - - namespace: str = "diamond-model-for-influence-operations" - description: str = """The diamond model for influence operations analysis is a framework that leads analysts and researchers toward a comprehensive understanding of a malign influence campaign by addressing the socio-political, technical, and psychological aspects of the campaign. The diamond model for influence operations analysis consists of 5 components: 4 corners and a core element. The 4 corners are divided into 2 axes: influencer and audience on the socio-political axis, capabilities and infrastructure on the technical axis. Narrative makes up the core of the diamond.""" - version: int = 1 - exclusive: bool = False - predicates: List[DiamondModelForInfluenceOperationsTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/dml.py b/src/openmisp/models/taxonomies/dml.py deleted file mode 100644 index 48b35d7..0000000 --- a/src/openmisp/models/taxonomies/dml.py +++ /dev/null @@ -1,35 +0,0 @@ -"""Taxonomy model for Detection Maturity Level.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DmlTaxonomyPredicate(str, Enum): - T_8 = "8" - T_7 = "7" - T_6 = "6" - T_5 = "5" - T_4 = "4" - T_3 = "3" - T_2 = "2" - T_1 = "1" - T_0 = "0" - - -class DmlTaxonomy(BaseModel): - """Model for the Detection Maturity Level taxonomy.""" - - namespace: str = "DML" - description: str = """The Detection Maturity Level (DML) model is a capability maturity model for referencing ones maturity in detecting cyber attacks. It's designed for organizations who perform intel-driven detection and response and who put an emphasis on having a mature detection program.""" - version: int = 1 - exclusive: bool = False - predicates: List[DmlTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/dni_ism.py b/src/openmisp/models/taxonomies/dni_ism.py deleted file mode 100644 index 2a19154..0000000 --- a/src/openmisp/models/taxonomies/dni_ism.py +++ /dev/null @@ -1,148 +0,0 @@ -"""Taxonomy model for dni-ism.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DniIsmTaxonomyPredicate(str, Enum): - CLASSIFICATION_ALL = "classification:all" - CLASSIFICATION_US = "classification:us" - SCICONTROLS = "scicontrols" - COMPLIES_WITH = "complies:with" - ATOMICENERGYMARKINGS = "atomicenergymarkings" - NOTICE = "notice" - NONIC = "nonic" - NONUSCONTROLS = "nonuscontrols" - DISSEM = "dissem" - - -class DniIsmTaxonomyClassificationAllEntry(str, Enum): - R = "R" - C = "C" - S = "S" - TS = "TS" - U = "U" - - -class DniIsmTaxonomyClassificationUsEntry(str, Enum): - C = "C" - S = "S" - TS = "TS" - U = "U" - - -class DniIsmTaxonomyScicontrolsEntry(str, Enum): - EL = "EL" - EL_EU = "EL-EU" - EL_NK = "EL-NK" - HCS = "HCS" - HCS_O = "HCS-O" - HCS_P = "HCS-P" - KDK = "KDK" - KDK_BLFH = "KDK-BLFH" - KDK_IDIT = "KDK-IDIT" - KDK_KAND = "KDK-KAND" - RSV = "RSV" - SI = "SI" - SI_G = "SI-G" - TK = "TK" - - -class DniIsmTaxonomyCompliesWithEntry(str, Enum): - USGOV = "USGov" - USIC = "USIC" - USDOD = "USDOD" - OTHER_AUTHORITY = "OtherAuthority" - - -class DniIsmTaxonomyAtomicenergymarkingsEntry(str, Enum): - RD = "RD" - RD_CNWDI = "RD-CNWDI" - FRD = "FRD" - DCNI = "DCNI" - UCNI = "UCNI" - TFNI = "TFNI" - - -class DniIsmTaxonomyNoticeEntry(str, Enum): - FISA = "FISA" - IMC = "IMC" - CNWDI = "CNWDI" - RD = "RD" - FRD = "FRD" - DS = "DS" - LES = "LES" - LES_NF = "LES-NF" - DSEN = "DSEN" - DO_D_DIST_A = "DoD-Dist-A" - DO_D_DIST_B = "DoD-Dist-B" - DO_D_DIST_C = "DoD-Dist-C" - DO_D_DIST_D = "DoD-Dist-D" - DO_D_DIST_E = "DoD-Dist-E" - DO_D_DIST_F = "DoD-Dist-F" - DO_D_DIST_X = "DoD-Dist-X" - US_PERSON = "US-Person" - PRE13526_ORCON = "pre13526ORCON" - POC = "POC" - COMSEC = "COMSEC" - - -class DniIsmTaxonomyNonicEntry(str, Enum): - NNPI = "NNPI" - DS = "DS" - XD = "XD" - ND = "ND" - SBU = "SBU" - SBU_NF = "SBU-NF" - LES = "LES" - LES_NF = "LES-NF" - SSI = "SSI" - - -class DniIsmTaxonomyNonuscontrolsEntry(str, Enum): - ATOMAL = "ATOMAL" - BOHEMIA = "BOHEMIA" - BALK = "BALK" - - -class DniIsmTaxonomyDissemEntry(str, Enum): - RS = "RS" - FOUO = "FOUO" - OC = "OC" - OC_USGOV = "OC-USGOV" - IMC = "IMC" - NF = "NF" - PR = "PR" - REL = "REL" - RELIDO = "RELIDO" - DSEN = "DSEN" - FISA = "FISA" - DISPLAYONLY = "DISPLAYONLY" - - -class DniIsmTaxonomy(BaseModel): - """Model for the dni-ism taxonomy.""" - - namespace: str = "dni-ism" - description: str = """A subset of Information Security Marking Metadata ISM as required by Executive Order (EO) 13526. As described by DNI.gov as Data Encoding Specifications for Information Security Marking Metadata in Controlled Vocabulary Enumeration Values for ISM""" - version: int = 3 - exclusive: bool = False - predicates: List[DniIsmTaxonomyPredicate] = [] - classification_all_entries: List[DniIsmTaxonomyClassificationAllEntry] = [] - classification_us_entries: List[DniIsmTaxonomyClassificationUsEntry] = [] - scicontrols_entries: List[DniIsmTaxonomyScicontrolsEntry] = [] - complies_with_entries: List[DniIsmTaxonomyCompliesWithEntry] = [] - atomicenergymarkings_entries: List[DniIsmTaxonomyAtomicenergymarkingsEntry] = [] - notice_entries: List[DniIsmTaxonomyNoticeEntry] = [] - nonic_entries: List[DniIsmTaxonomyNonicEntry] = [] - nonuscontrols_entries: List[DniIsmTaxonomyNonuscontrolsEntry] = [] - dissem_entries: List[DniIsmTaxonomyDissemEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/domain_abuse.py b/src/openmisp/models/taxonomies/domain_abuse.py deleted file mode 100644 index d4a8482..0000000 --- a/src/openmisp/models/taxonomies/domain_abuse.py +++ /dev/null @@ -1,48 +0,0 @@ -"""Taxonomy model for Domain Name Abuse.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DomainAbuseTaxonomyPredicate(str, Enum): - DOMAIN_STATUS = "domain-status" - DOMAIN_ACCESS_METHOD = "domain-access-method" - - -class DomainAbuseTaxonomyDomainStatusEntry(str, Enum): - ACTIVE = "active" - INACTIVE = "inactive" - SUSPENDED = "suspended" - NOT_REGISTERED = "not-registered" - NOT_REGISTRABLE = "not-registrable" - GRACE_PERIOD = "grace-period" - - -class DomainAbuseTaxonomyDomainAccessMethodEntry(str, Enum): - CRIMINAL_REGISTRATION = "criminal-registration" - COMPROMISED_WEBSERVER = "compromised-webserver" - COMPROMISED_DNS = "compromised-dns" - SINKHOLE = "sinkhole" - COMPROMISED_DOMAIN_NAME_REGISTRAR = "compromised-domain-name-registrar" - COMPROMISED_DOMAIN_NAME_REGISTRY = "compromised-domain-name-registry" - - -class DomainAbuseTaxonomy(BaseModel): - """Model for the Domain Name Abuse taxonomy.""" - - namespace: str = "domain-abuse" - description: str = """Domain Name Abuse - taxonomy to tag domain names used for cybercrime.""" - version: int = 2 - exclusive: bool = False - predicates: List[DomainAbuseTaxonomyPredicate] = [] - domain_status_entries: List[DomainAbuseTaxonomyDomainStatusEntry] = [] - domain_access_method_entries: List[DomainAbuseTaxonomyDomainAccessMethodEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/doping_substances.py b/src/openmisp/models/taxonomies/doping_substances.py deleted file mode 100644 index fb2026c..0000000 --- a/src/openmisp/models/taxonomies/doping_substances.py +++ /dev/null @@ -1,388 +0,0 @@ -"""Taxonomy model for Doping substances.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DopingSubstancesTaxonomyPredicate(str, Enum): - ANABOLIC_AGENTS = "anabolic agents" - PEPTIDE_HORMONES__GROWTH_FACTORS__RELATED_SUBSTANCES_AND_MIMETICS = ( - "peptide hormones, growth factors, related substances and mimetics" - ) - BETA_2_AGONISTS = "beta-2 agonists" - HORMONE_AND_METABOLIC_MODULATORS = "hormone and metabolic modulators" - DIURETICS_AND_MASKING_AGENTS = "diuretics and masking agents" - MANIPULATION_OF_BLOOD_AND_BLOOD_COMPONENTS = "manipulation of blood and blood components" - CHEMICAL_AND_PHYSICAL_MANIPULATION = "chemical and physical manipulation" - GENE_AND_CELL_DOPING = "gene and cell doping" - STIMULANTS = "stimulants" - NARCOTICS = "narcotics" - CANNABINOIDS = "cannabinoids" - GLUCOCORTICOIDS = "glucocorticoids" - BETA_BLOCKERS = "beta-blockers" - - -class DopingSubstancesTaxonomyAnabolicAgentsEntry(str, Enum): - T_1_ANDROSTENEDIOL = "1-androstenediol" - T_1_ANDROSTENEDIONE = "1-androstenedione" - T_1_ANDROSTERONE = "1-androsterone" - T_1_EPIANDROSTERONE = "1-epiandrosterone" - T_1_TESTOSTERONE = "1-testosterone" - T_4_ANDROSTENEDIOL = "4-androstenediol" - T_4_HYDROXYTESTOSTERONE = "4-hydroxytestosterone" - T_5_ANDROSTENEDIONE = "5-androstenedione" - T_7__HYDROXY_DHEA = "7α-hydroxy-dhea" - T_7___HYDROXY_DHEA = "7β-hydroxy-dhea" - T_7_KETO_DHEA = "7-keto-dhea" - T_17__METHYLEPITHIOSTANOL = "17α-methylepithiostanol" - T_19_NORANDROSTENEDIOL = "19-norandrostenediol" - T_19_NORANDROSTENEDIONE = "19-norandrostenedione" - ANDROST_4_ENE_3_11_17_TRIONE = "androst-4-ene-3,11,17-trione" - ANDROSTANOLONE = "androstanolone" - ANDROSTENEDIOL = "androstenediol" - ANDROSTENEDIONE = "androstenedione" - BOLASTERONE = "bolasterone" - BOLDENONE = "boldenone" - BOLDIONE = "boldione" - CALUSTERONE = "calusterone" - CLOSTEBOL = "clostebol" - DANAZOL = "danazol" - DEHYDROCHLORMETHYLTESTOSTERONE = "dehydrochlormethyltestosterone" - DESOXYMETHYLTESTOSTERONE = "desoxymethyltestosterone" - DROSTANOLONE = "drostanolone" - EPIANDROSTERONE = "epiandrosterone" - EPI_DIHYDROTESTOSTERONE = "epi-dihydrotestosterone" - EPITESTOSTERONE = "epitestosterone" - ETHYLESTRENOL = "ethylestrenol" - FLUOXYMESTERONE = "fluoxymesterone" - FORMEBOLONE = "formebolone" - FURAZABOL = "furazabol" - GESTRINONE = "gestrinone" - MESTANOLONE = "mestanolone" - MESTEROLONE = "mesterolone" - METANDIENONE = "metandienone" - METENOLONE = "metenolone" - METHANDRIOL = "methandriol" - METHASTERONE = "methasterone" - METHYL_1_TESTOSTERONE = "methyl-1-testosterone" - METHYLCLOSTEBOL = "methylclostebol" - METHYLDIENOLONE = "methyldienolone" - METHYLNORTESTOSTERONE = "methylnortestosterone" - METHYLTESTOSTERONE = "methyltestosterone" - METRIBOLONE = "metribolone" - MIBOLERONE = "mibolerone" - NANDROLONE = "nandrolone" - NORBOLETONE = "norboletone" - NORCLOSTEBOL = "norclostebol" - NORETHANDROLONE = "norethandrolone" - OXABOLONE = "oxabolone" - OXANDROLONE = "oxandrolone" - OXYMESTERONE = "oxymesterone" - OXYMETHOLONE = "oxymetholone" - PRASTERONE = "prasterone" - PROSTANOZOL = "prostanozol" - QUINBOLONE = "quinbolone" - STANOZOLOL = "stanozolol" - STENBOLONE = "stenbolone" - TESTOSTERONE = "testosterone" - TETRAHYDROGESTRINONE = "tetrahydrogestrinone" - TIBOLONE = "tibolone" - TRENBOLONE = "trenbolone" - CLENBUTEROL = "clenbuterol" - OSILODROSTAT = "osilodrostat" - RACTOPAMINE = "ractopamine" - SELECTIVE_ANDROGEN_RECEPTOR_MODULATORS = "selective androgen receptor modulators" - ZERANOL = "zeranol" - ZILPATEROL = "zilpaterol" - - -class DopingSubstancesTaxonomyPeptideHormonesGrowthFactorsRelatedSubstancesAndMimeticsEntry(str, Enum): - DARBEPOETINS = "darbepoetins" - ERYTHROPOIETINS = "erythropoietins" - EPO_BASED_CONSTRUCTS = "epo-based constructs" - EPO_MIMETIC_AGENTS = "epo-mimetic agents" - COBALT = "cobalt" - DAPRODUSTAT = "daprodustat" - IOX2 = "iox2" - MOLIDUSTAT = "molidustat" - ROXADUSTAT = "roxadustat" - VADADUSTAT = "vadadustat" - XENON = "xenon" - K_11706 = "k-11706" - LUSPATERCEPT = "luspatercept" - SOTATERCEPT = "sotatercept" - ASIALO_EPO = "asialo epo" - CARBAMYLATED_EPO = "carbamylated epo" - BUSERELIN = "buserelin" - DESLORELIN = "deslorelin" - GONADORELIN = "gonadorelin" - GOSERELIN = "goserelin" - LEUPRORELIN = "leuprorelin" - NAFARELIN = "nafarelin" - TRIPTORELIN = "triptorelin" - CORTICORELIN = "corticorelin" - GROWTH_HORMONE_ANALOGUES__E_G__LONAPEGSOMATROPIN__SOMAPACITAN_AND_SOMATROGON = ( - "growth hormone analogues, e.g. lonapegsomatropin, somapacitan and somatrogon" - ) - GROWTH_HORMONE_FRAGMENTS__E_G__AOD_9604_AND_HGH_176_191 = "growth hormone fragments, e.g. aod-9604 and hgh 176-191" - GROWTH_HORMONE_RELEASING_HORMONE = "growth hormone-releasing hormone" - GROWTH_HORMONE_SECRETAGOGUES = "growth hormone secretagogues" - GH_RELEASING_PEPTIDES = "gh-releasing peptides" - FIBROBLAST_GROWTH_FACTORS = "fibroblast growth factors" - HEPATOCYTE_GROWTH_FACTOR = "hepatocyte growth factor" - INSULIN_LIKE_GROWTH_FACTOR_1 = "insulin-like growth factor 1" - MECHANO_GROWTH_FACTORS = "mechano growth factors" - PLATELET_DERIVED_GROWTH_FACTOR = "platelet-derived growth factor" - THYMOSIN__4_AND_ITS_DERIVATIVES_E_G__TB_500 = "thymosin-β4 and its derivatives e.g. tb-500" - VASCULAR_ENDOTHELIAL_GROWTH_FACTOR = "vascular endothelial growth factor" - - -class DopingSubstancesTaxonomyBeta2AgonistsEntry(str, Enum): - ARFORMOTEROL = "arformoterol" - FENOTEROL = "fenoterol" - HIGENAMINE = "higenamine" - INDACATEROL = "indacaterol" - LEVOSALBUTAMOL = "levosalbutamol" - OLODATEROL = "olodaterol" - PROCATEROL = "procaterol" - REPROTEROL = "reproterol" - TERBUTALINE = "terbutaline" - TRETOQUINOL = "tretoquinol" - TULOBUTEROL = "tulobuterol" - SALBUTAMOL = "salbutamol" - FORMOTEROL = "formoterol" - SALMETEROL = "salmeterol" - VILANTEROL = "vilanterol" - - -class DopingSubstancesTaxonomyHormoneAndMetabolicModulatorsEntry(str, Enum): - T_2_ANDROSTENOL = "2-androstenol" - T_2_ANDROSTENONE = "2-androstenone" - T_3_ANDROSTENOL = "3-androstenol" - T_3_ANDROSTENONE = "3-androstenone" - T_4_ANDROSTENE_3_6_17_TRIONE = "4-androstene-3,6,17 trione" - AMINOGLUTETHIMIDE = "aminoglutethimide" - ANASTROZOLE = "anastrozole" - ANDROSTA_1_4_6_TRIENE_3_17_DIONE = "androsta-1,4,6-triene-3,17-dione" - ANDROSTA_3_5_DIENE_7_17_DIONE = "androsta-3,5-diene-7,17-dione" - EXEMESTANE = "exemestane" - FORMESTANE = "formestane" - LETROZOLE = "letrozole" - TESTOLACTONE = "testolactone" - BAZEDOXIFENE = "bazedoxifene" - CLOMIFENE = "clomifene" - CYCLOFENIL = "cyclofenil" - FULVESTRANT = "fulvestrant" - OSPEMIFENE = "ospemifene" - RALOXIFENE = "raloxifene" - TAMOXIFEN = "tamoxifen" - TOREMIFENE = "toremifene" - ACTIVIN_A_NEUTRALIZING_ANTIBODIES = "activin a-neutralizing antibodies" - ACTIVIN_RECEPTOR_IIB_COMPETITORS = "activin receptor iib competitors" - DECOY_ACTIVIN_RECEPTORS = "decoy activin receptors" - ANTI_ACTIVIN_RECEPTOR_IIB_ANTIBODIES = "anti-activin receptor iib antibodies" - MYOSTATIN_INHIBITORS = "myostatin inhibitors" - AGENTS_REDUCING_OR_ABLATING_MYOSTATIN_EXPRESSION = "agents reducing or ablating myostatin expression" - MYOSTATIN_BINDING_PROTEINS = "myostatin-binding proteins" - MYOSTATINI___OR_PRECURSOR___NEUTRALIZING__ANTIBODIES = "myostatini - or precursor - neutralizing  antibodies" - - -class DopingSubstancesTaxonomyDiureticsAndMaskingAgentsEntry(str, Enum): - DESMOPRESSIN = "desmopressin" - PROBENECID = "probenecid" - PLASMA_EXPANDERS = "plasma expanders" - ACETAZOLAMIDE = "acetazolamide" - AMILORIDE = "amiloride" - BUMETANIDE = "bumetanide" - CANRENONE = "canrenone" - CHLORTALIDONE = "chlortalidone" - ETACRYNIC_ACID = "etacrynic acid" - FUROSEMIDE = "furosemide" - INDAPAMIDE = "indapamide" - METOLAZONE = "metolazone" - SPIRONOLACTONE = "spironolactone" - THIAZIDES = "thiazides" - TORASEMIDE = "torasemide" - TRIAMTERENE = "triamterene" - VAPTANS = "vaptans" - VAPTANS__E_G__TOLVAPTAN_ = "vaptans, e.g. tolvaptan." - DROSPIRENONE = "drospirenone" - PAMABROM = "pamabrom" - CARBONIC_ANHYDRASE_INHIBITORS = "carbonic anhydrase inhibitors" - FELYPRESSIN = "felypressin" - - -class DopingSubstancesTaxonomyStimulantsEntry(str, Enum): - ADRAFINIL = "adrafinil" - AMFEPRAMONE = "amfepramone" - AMFETAMINE = "amfetamine" - AMFETAMINIL = "amfetaminil" - AMIPHENAZOLE = "amiphenazole" - BENFLUOREX = "benfluorex" - BENZYLPIPERAZINE = "benzylpiperazine" - BROMANTAN = "bromantan" - CLOBENZOREX = "clobenzorex" - COCAINE = "cocaine" - CROPROPAMIDE = "cropropamide" - CROTETAMIDE = "crotetamide" - FENCAMINE = "fencamine" - FENETYLLINE = "fenetylline" - FENFLURAMINE = "fenfluramine" - FENPROPOREX = "fenproporex" - FONTURACETAM = "fonturacetam" - FURFENOREX = "furfenorex" - LISDEXAMFETAMINE = "lisdexamfetamine" - MEFENOREX = "mefenorex" - MEPHENTERMINE = "mephentermine" - MESOCARB = "mesocarb" - METAMFETAMINE = "metamfetamine" - P_METHYLAMFETAMINE = "p-methylamfetamine" - MODAFINIL = "modafinil" - NORFENFLURAMINE = "norfenfluramine" - PHENDIMETRAZINE = "phendimetrazine" - PHENTERMINE = "phentermine" - PRENYLAMINE = "prenylamine" - PROLINTANE = "prolintane" - T_3_METHYLHEXAN_2_AMINE = "3-methylhexan-2-amine" - T_4_FLUOROMETHYLPHENIDATE = "4-fluoromethylphenidate" - T_4_METHYLHEXAN_2_AMINE = "4-methylhexan-2-amine" - T_4_METHYLPENTAN_2_AMINE = "4-methylpentan-2-amine" - T_5_METHYLHEXAN_2_AMINE = "5-methylhexan-2-amine" - BENZFETAMINE = "benzfetamine" - CATHINE__ = "cathine**" - CATHINONE_AND_ITS_ANALOGUES = "cathinone and its analogues" - DIMETAMFETAMINE = "dimetamfetamine" - EPHEDRINE___ = "ephedrine***" - EPINEPHRINE____ = "epinephrine****" - ETAMIVAN = "etamivan" - ETHYLPHENIDATE = "ethylphenidate" - ETILAMFETAMINE = "etilamfetamine" - ETILEFRINE = "etilefrine" - FAMPROFAZONE = "famprofazone" - FENBUTRAZATE = "fenbutrazate" - FENCAMFAMIN = "fencamfamin" - HEPTAMINOL = "heptaminol" - HYDRAFINIL = "hydrafinil" - HYDROXYAMFETAMINE = "hydroxyamfetamine" - ISOMETHEPTENE = "isometheptene" - LEVMETAMFETAMINE = "levmetamfetamine" - MECLOFENOXATE = "meclofenoxate" - METHYLENEDIOXYMETHAM__PHETAMINE = "methylenedioxymetham- phetamine" - METHYLEPHEDRINE___ = "methylephedrine***" - METHYLNAPHTHIDATE = "methylnaphthidate" - METHYLPHENIDATE = "methylphenidate" - NIKETHAMIDE = "nikethamide" - NORFENEFRINE = "norfenefrine" - OCTODRINE = "octodrine" - OCTOPAMINE = "octopamine" - OXILOFRINE = "oxilofrine" - PEMOLINE = "pemoline" - PENTETRAZOL = "pentetrazol" - PHENETHYLAMINE_AND_ITS_DERIVATIVES = "phenethylamine and its derivatives" - PHENMETRAZINE = "phenmetrazine" - PHENPROMETHAMINE = "phenpromethamine" - PROPYLHEXEDRINE = "propylhexedrine" - PSEUDOEPHEDRINE_____ = "pseudoephedrine*****" - SELEGILINE = "selegiline" - SIBUTRAMINE = "sibutramine" - SOLRIAMFETOL = "solriamfetol" - STRYCHNINE = "strychnine" - TENAMFETAMINE = "tenamfetamine" - TUAMINOHEPTANE = "tuaminoheptane" - CLONIDINE = "clonidine" - IMIDAZOLE_DERIVATIVES = "imidazole derivatives" - - -class DopingSubstancesTaxonomyNarcoticsEntry(str, Enum): - BUPRENORPHINE = "buprenorphine" - DEXTROMORAMIDE = "dextromoramide" - DIAMORPHINE = "diamorphine" - FENTANYL = "fentanyl" - HYDROMORPHONE = "hydromorphone" - METHADONE = "methadone" - MORPHINE = "morphine" - NICOMORPHINE = "nicomorphine" - OXYCODONE = "oxycodone" - OXYMORPHONE = "oxymorphone" - PENTAZOCINE = "pentazocine" - PETHIDINE = "pethidine" - - -class DopingSubstancesTaxonomyCannabinoidsEntry(str, Enum): - IN_CANNABIS = "in cannabis" - SYNTHETIC_CANNABINOIDS_THAT_MIMIC_THE_EFFECTS_OF_THC = "synthetic cannabinoids that mimic the effects of thc" - NATURAL_AND_SYNTHETIC_TETRAHYDROCANNABINOLS = "natural and synthetic tetrahydrocannabinols" - CANNABIDIOL = "cannabidiol" - - -class DopingSubstancesTaxonomyGlucocorticoidsEntry(str, Enum): - BECLOMETASONE = "beclometasone" - BETAMETHASONE = "betamethasone" - BUDESONIDE = "budesonide" - CICLESONIDE = "ciclesonide" - CORTISONE = "cortisone" - DEFLAZACORT = "deflazacort" - DEXAMETHASONE = "dexamethasone" - FLUCORTOLONE = "flucortolone" - FLUNISOLIDE = "flunisolide" - FLUTICASONE = "fluticasone" - HYDROCORTISONE = "hydrocortisone" - METHYLPREDNISOLONE = "methylprednisolone" - MOMETASONE = "mometasone" - PREDNISOLONE = "prednisolone" - PREDNISONE = "prednisone" - TRIAMCINOLONE_ACETONIDE = "triamcinolone acetonide" - - -class DopingSubstancesTaxonomyBetaBlockersEntry(str, Enum): - ACEBUTOLOL = "acebutolol" - ALPRENOLOL = "alprenolol" - ATENOLOL = "atenolol" - BETAXOLOL = "betaxolol" - BISOPROLOL = "bisoprolol" - BUNOLOL = "bunolol" - CARTEOLOL = "carteolol" - CARVEDILOL = "carvedilol" - CELIPROLOL = "celiprolol" - ESMOLOL = "esmolol" - LABETALOL = "labetalol" - METIPRANOLOL = "metipranolol" - METOPROLOL = "metoprolol" - NADOLOL = "nadolol" - NEBIVOLOL = "nebivolol" - OXPRENOLOL = "oxprenolol" - PINDOLOL = "pindolol" - PROPRANOLOL = "propranolol" - SOTALOL = "sotalol" - TIMOLOL = "timolol" - - -class DopingSubstancesTaxonomy(BaseModel): - """Model for the Doping substances taxonomy.""" - - namespace: str = "doping-substances" - description: str = """This taxonomy aims to list doping substances""" - version: int = 2 - exclusive: bool = False - predicates: List[DopingSubstancesTaxonomyPredicate] = [] - anabolic_agents_entries: List[DopingSubstancesTaxonomyAnabolicAgentsEntry] = [] - peptide_hormones__growth_factors__related_substances_and_mimetics_entries: List[ - DopingSubstancesTaxonomyPeptideHormonesGrowthFactorsRelatedSubstancesAndMimeticsEntry - ] = [] - beta_2_agonists_entries: List[DopingSubstancesTaxonomyBeta2AgonistsEntry] = [] - hormone_and_metabolic_modulators_entries: List[DopingSubstancesTaxonomyHormoneAndMetabolicModulatorsEntry] = [] - diuretics_and_masking_agents_entries: List[DopingSubstancesTaxonomyDiureticsAndMaskingAgentsEntry] = [] - stimulants_entries: List[DopingSubstancesTaxonomyStimulantsEntry] = [] - narcotics_entries: List[DopingSubstancesTaxonomyNarcoticsEntry] = [] - cannabinoids_entries: List[DopingSubstancesTaxonomyCannabinoidsEntry] = [] - glucocorticoids_entries: List[DopingSubstancesTaxonomyGlucocorticoidsEntry] = [] - beta_blockers_entries: List[DopingSubstancesTaxonomyBetaBlockersEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/drugs.py b/src/openmisp/models/taxonomies/drugs.py deleted file mode 100644 index ff4ae47..0000000 --- a/src/openmisp/models/taxonomies/drugs.py +++ /dev/null @@ -1,437 +0,0 @@ -"""Taxonomy model for drugs.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class DrugsTaxonomyPredicate(str, Enum): - ALKALOIDS_AND_DERIVATIVES = "alkaloids-and-derivatives" - BENZENOIDS = "benzenoids" - HOMOGENEOUS_METAL_COMPOUNDS = "homogeneous-metal-compounds" - HOMOGENEOUS_NON_METAL_COMPOUNDS = "homogeneous-non-metal-compounds" - HYDROCARBONS = "hydrocarbons" - HYDROCARBON_DERIVATIVES = "hydrocarbon-derivatives" - LIGNANS__NEOLIGNANS_AND_RELATED_COMPOUNDS = "lignans,-neolignans-and-related-compounds" - LIPIDS_AND_LIPID_LIKE_MOLECULES = "lipids-and-lipid-like-molecules" - MIXED_METAL_NON_METAL_COMPOUNDS = "mixed-metal/non-metal-compounds" - NUCLEOSIDES__NUCLEOTIDES__AND_ANALOGUES = "nucleosides,-nucleotides,-and-analogues" - ORGANIC_1_3_DIPOLAR_COMPOUNDS = "organic-1,3-dipolar-compounds" - ORGANIC_ACIDS_AND_DERIVATIVES = "organic-acids-and-derivatives" - ORGANIC_ACIDS = "organic-acids" - ORGANIC_NITROGEN_COMPOUNDS = "organic-nitrogen-compounds" - ORGANIC_OXYGEN_COMPOUNDS = "organic-oxygen-compounds" - ORGANIC_POLYMERS = "organic-polymers" - ORGANIC_SALTS = "organic-salts" - ORGANOHALOGEN_COMPOUNDS = "organohalogen-compounds" - ORGANOHETEROCYCLIC_COMPOUNDS = "organoheterocyclic-compounds" - ORGANOMETALLIC_COMPOUNDS = "organometallic-compounds" - ORGANOPHOSPHORUS_COMPOUNDS = "organophosphorus-compounds" - ORGANOSULFUR_COMPOUNDS = "organosulfur-compounds" - PHENYLPROPANOIDS_AND_POLYKETIDES = "phenylpropanoids-and-polyketides" - - -class DrugsTaxonomyAlkaloidsAndDerivativesEntry(str, Enum): - AJMALINE_SARPAGINE_ALKALOIDS = "ajmaline-sarpagine-alkaloids" - T__ALLOCOLCHICINE_ALKALOIDS = " allocolchicine-alkaloids" - T__AMARYLLIDACEAE_ALKALOIDS = " Amaryllidaceae alkaloids" - APORPHINES = "aporphines" - CAMPTOTHECINS = "camptothecins" - CEPHALOTAXUS_ALKALOIDS = "cephalotaxus-alkaloids" - CINCHONA_ALKALOIDS = "cinchona-alkaloids" - EBURNAN_TYPE_ALKALOIDS = "eburnan-type-alkaloids" - EPIBATIDINE_ANALOGUES = "epibatidine-analogues" - ERGOLINE_AND_DERIVATIVES = "ergoline-and-derivatives" - HARMALA_ALKALOIDS = "harmala-alkaloids" - IBOGAN_TYPE_ALKALOIDS = "ibogan-type-alkaloids" - LUPIN_ALKALOIDS = "lupin-alkaloids" - MORPHINANS = "morphinans" - PHTHALIDE_ISOQUINOLINES = "phthalide-isoquinolines" - PROTOBERBERINE_ALKALOIDS_AND_DERIVATIVES = "protoberberine-alkaloids-and-derivatives" - TROPANE_ALKALOIDS = "tropane-alkaloids" - VINCA_ALKALOIDS = "vinca-alkaloids" - YOHIMBINE_ALKALOIDS = "yohimbine-alkaloids" - - -class DrugsTaxonomyBenzenoidsEntry(str, Enum): - ANTHRACENES = "anthracenes" - BENZENE_AND_SUBSTITUTED_DERIVATIVES = "benzene-and-substituted-derivatives" - DIBENZOCYCLOHEPTENES = "dibenzocycloheptenes" - FLUORENES = "fluorenes" - INDANES = "indanes" - INDENES_AND_ISOINDENES = "indenes-and-isoindenes" - NAPHTHACENES = "naphthacenes" - PHENANTHRENES_AND_DERIVATIVES = "phenanthrenes-and-derivatives" - PHENOL_ESTERS = "phenol-esters" - PHENOL_ETHERS = "phenol-ethers" - PHENOLS = "phenols" - PYRENES = "pyrenes" - TETRALINS = "tetralins" - TRIPHENYL_COMPOUNDS = "triphenyl-compounds" - - -class DrugsTaxonomyHomogeneousMetalCompoundsEntry(str, Enum): - HOMOGENEOUS_ACTINIDE_COMPOUNDS = "homogeneous-actinide-compounds" - HOMOGENEOUS_ALKALI_METAL_COMPOUNDS = "homogeneous-alkali-metal-compounds" - HOMOGENEOUS_ALKALINE_EARTH_METAL_COMPOUNDS = "homogeneous-alkaline-earth-metal-compounds" - HOMOGENEOUS_LANTHANIDE_COMPOUNDS = "homogeneous-lanthanide-compounds" - HOMOGENEOUS_METALLOID_COMPOUNDS = "homogeneous-metalloid-compounds" - HOMOGENEOUS_POST_TRANSITION_METAL_COMPOUNDS = "homogeneous-post-transition-metal-compounds" - HOMOGENEOUS_TRANSITION_METAL_COMPOUNDS = "homogeneous-transition-metal-compounds" - - -class DrugsTaxonomyHomogeneousNonMetalCompoundsEntry(str, Enum): - HALOGEN_ORGANIDES = "halogen-organides" - HOMOGENEOUS_HALOGENS = "homogeneous-halogens" - HOMOGENEOUS_NOBLE_GASES = "homogeneous-noble-gases" - HOMOGENEOUS_OTHER_NON_METAL_COMPOUNDS = "homogeneous-other-non-metal-compounds" - NON_METAL_OXOANIONIC_COMPOUNDS = "non-metal-oxoanionic-compounds" - OTHER_NON_METAL_HALIDES = "other-non-metal-halides" - OTHER_NON_METAL_ORGANIDES = "other-non-metal-organides" - - -class DrugsTaxonomyHydrocarbonsEntry(str, Enum): - POLYCYCLIC_HYDROCARBONS = "polycyclic-hydrocarbons" - - -class DrugsTaxonomyHydrocarbonDerivativesEntry(str, Enum): - TROPONES = "tropones" - - -class DrugsTaxonomyLignansNeolignansAndRelatedCompoundsEntry(str, Enum): - ARYLTETRALIN_LIGNANS = "aryltetralin-lignans" - DIBENZYLBUTANE_LIGNANS = "dibenzylbutane-lignans" - FLAVONOLIGNANS = "flavonolignans" - FURANOID_LIGNANS = "furanoid-lignans" - LIGNAN_LACTONES = "lignan-lactones" - - -class DrugsTaxonomyLipidsAndLipidLikeMoleculesEntry(str, Enum): - FATTY_ACYLS = "fatty-acyls" - GLYCERO_3_DITHIOPHOSPHOCHOLINES = "glycero-3-dithiophosphocholines" - GLYCEROLIPIDS = "glycerolipids" - GLYCEROPHOSPHOLIPIDS = "glycerophospholipids" - PRENOL_LIPIDS = "prenol-lipids" - SACCHAROLIPIDS = "saccharolipids" - S_ALKYL_COAS = "s-alkyl-coas" - SPHINGOLIPIDS = "sphingolipids" - STEROIDS_AND_STEROID_DERIVATIVES = "steroids-and-steroid-derivatives" - - -class DrugsTaxonomyMixedMetalNonMetalCompoundsEntry(str, Enum): - ALKALI_METAL_ORGANIDES = "alkali-metal-organides" - ALKALI_METAL_OXOANIONIC_COMPOUNDS = "alkali-metal-oxoanionic-compounds" - ALKALI_METAL_SALTS = "alkali-metal-salts" - ALKALINE_EARTH_METAL_ORGANIDES = "alkaline-earth-metal-organides" - ALKALINE_EARTH_METAL_OXOANIONIC_COMPOUNDS = "alkaline-earth-metal-oxoanionic-compounds" - ALKALINE_EARTH_METAL_SALTS = "alkaline-earth-metal-salts" - METALLOID_ORGANIDES = "metalloid-organides" - METALLOID_OXOANIONIC_COMPOUNDS = "metalloid-oxoanionic-compounds" - MISCELLANEOUS_MIXED_METAL_NON_METALS = "miscellaneous-mixed-metal/non-metals" - OTHER_MIXED_METAL_NON_METAL_OXOANIONIC_COMPOUNDS = "other-mixed-metal/non-metal-oxoanionic-compounds" - POST_TRANSITION_METAL_ORGANIDES = "post-transition-metal-organides" - POST_TRANSITION_METAL_OXOANIONIC_COMPOUNDS = "post-transition-metal-oxoanionic-compounds" - POST_TRANSITION_METAL_SALTS = "post-transition-metal-salts" - TRANSITION_METAL_ORGANIDES = "transition-metal-organides" - TRANSITION_METAL_OXOANIONIC_COMPOUNDS = "transition-metal-oxoanionic-compounds" - TRANSITION_METAL_SALTS = "transition-metal-salts" - - -class DrugsTaxonomyNucleosidesNucleotidesAndAnaloguesEntry(str, Enum): - T_2__3__DIDEOXY_3__THIONUCLEOSIDE_MONOPHOSPHATES = "2',3'-dideoxy-3'-thionucleoside-monophosphates" - T_2__5__DIDEOXYRIBONUCLEOSIDES = "2',5'-dideoxyribonucleosides" - T__3___GT_5___DINUCLEOTIDES_AND_ANALOGUES = "(3'->5')-dinucleotides-and-analogues" - T_5__DEOXYRIBONUCLEOSIDES = "5'-deoxyribonucleosides" - T__5___GT_5___DINUCLEOTIDES = "(5'->5')-dinucleotides" - BENZIMIDAZOLE_RIBONUCLEOSIDES_AND_RIBONUCLEOTIDES = "benzimidazole-ribonucleosides-and-ribonucleotides" - FLAVIN_NUCLEOTIDES = "flavin-nucleotides" - GLYCINAMIDE_RIBONUCLEOTIDES = "glycinamide-ribonucleotides" - IMIDAZOLE_4_5_C_PYRIDINE_RIBONUCLEOSIDES_AND_RIBONUCLEOTIDES = ( - "imidazole[4,5-c]pyridine-ribonucleosides-and-ribonucleotides" - ) - IMIDAZOLE_RIBONUCLEOSIDES_AND_RIBONUCLEOTIDES = "imidazole-ribonucleosides-and-ribonucleotides" - MOLYBDOPTERIN_DINUCLEOTIDES = "molybdopterin-dinucleotides" - NUCLEOSIDE_AND_NUCLEOTIDE_ANALOGUES = "nucleoside-and-nucleotide-analogues" - PURINE_NUCLEOSIDES = "purine-nucleosides" - PYRAZOLO_3_4_D_PYRIMIDINE_GLYCOSIDES = "pyrazolo[3,4-d]pyrimidine-glycosides" - PYRIDINE_NUCLEOTIDES = "pyridine-nucleotides" - PYRIMIDINE_NUCLEOSIDES = "pyrimidine-nucleosides" - PYRIMIDINE_NUCLEOTIDES = "pyrimidine-nucleotides" - PYRROLOPYRIMIDINE_NUCLEOSIDES_AND_NUCLEOTIDES = "pyrrolopyrimidine-nucleosides-and-nucleotides" - RIBONUCLEOSIDE_3__PHOSPHATES = "ribonucleoside-3'-phosphates" - TRIAZOLE_RIBONUCLEOSIDES_AND_RIBONUCLEOTIDES = "triazole-ribonucleosides-and-ribonucleotides" - - -class DrugsTaxonomyOrganic13DipolarCompoundsEntry(str, Enum): - ALLYL_TYPE_1_3_DIPOLAR_ORGANIC_COMPOUNDS = "allyl-type-1,3-dipolar-organic-compounds" - - -class DrugsTaxonomyOrganicAcidsAndDerivativesEntry(str, Enum): - BORONIC_ACID_DERIVATIVES = "boronic-acid-derivatives" - CARBOXIMIDIC_ACIDS_AND_DERIVATIVES = "carboximidic-acids-and-derivatives" - CARBOXYLIC_ACIDS_AND_DERIVATIVES = "carboxylic-acids-and-derivatives" - HYDROXY_ACIDS_AND_DERIVATIVES = "hydroxy-acids-and-derivatives" - KETO_ACIDS_AND_DERIVATIVES = "keto-acids-and-derivatives" - ORGANIC_CARBONIC_ACIDS_AND_DERIVATIVES = "organic-carbonic-acids-and-derivatives" - ORGANIC_PHOSPHONIC_ACIDS_AND_DERIVATIVES = "organic-phosphonic-acids-and-derivatives" - ORGANIC_PHOSPHORIC_ACIDS_AND_DERIVATIVES = "organic-phosphoric-acids-and-derivatives" - ORGANIC_SULFONIC_ACIDS_AND_DERIVATIVES = "organic-sulfonic-acids-and-derivatives" - ORGANIC_SULFURIC_ACIDS_AND_DERIVATIVES = "organic-sulfuric-acids-and-derivatives" - ORGANIC_THIOPHOSPHORIC_ACIDS_AND_DERIVATIVES = "organic-thiophosphoric-acids-and-derivatives" - ORTHOCARBOXYLIC_ACID_DERIVATIVES = "orthocarboxylic-acid-derivatives" - PEPTIDOMIMETICS = "peptidomimetics" - THIOSULFINIC_ACID_ESTERS = "thiosulfinic-acid-esters" - - -class DrugsTaxonomyOrganicAcidsEntry(str, Enum): - CARBOXYLIC_ACIDS_AND_DERIVATIVES = "carboxylic-acids-and-derivatives" - - -class DrugsTaxonomyOrganicNitrogenCompoundsEntry(str, Enum): - ORGANONITROGEN_COMPOUNDS = "organonitrogen-compounds" - - -class DrugsTaxonomyOrganicOxygenCompoundsEntry(str, Enum): - ORGANIC_OXIDES = "organic-oxides" - ORGANIC_OXOANIONIC_COMPOUNDS = "organic-oxoanionic-compounds" - ORGANOOXYGEN_COMPOUNDS = "organooxygen-compounds" - - -class DrugsTaxonomyOrganicPolymersEntry(str, Enum): - PHOSPHOROTHIOATE_POLYNUCLEOTIDES = "phosphorothioate-polynucleotides" - POLYPEPTIDES = "polypeptides" - POLYSACCHARIDES = "polysaccharides" - - -class DrugsTaxonomyOrganicSaltsEntry(str, Enum): - ORGANIC_METAL_SALTS = "organic-metal-salts" - - -class DrugsTaxonomyOrganohalogenCompoundsEntry(str, Enum): - ACYL_HALIDES = "acyl-halides" - ALKYL_HALIDES = "alkyl-halides" - ARYL_HALIDES = "aryl-halides" - HALOHYDRINS = "halohydrins" - ORGANOCHLORIDES = "organochlorides" - ORGANOFLUORIDES = "organofluorides" - SULFONYL_HALIDES = "sulfonyl-halides" - VINYL_HALIDES = "vinyl-halides" - - -class DrugsTaxonomyOrganoheterocyclicCompoundsEntry(str, Enum): - AZASPIRODECANE_DERIVATIVES = "azaspirodecane-derivatives" - AZEPANES = "azepanes" - AZOBENZENES = "azobenzenes" - AZOLES = "azoles" - AZOLIDINES = "azolidines" - AZOLINES = "azolines" - BENZAZEPINES = "benzazepines" - BENZIMIDAZOLES = "benzimidazoles" - BENZISOXAZOLES = "benzisoxazoles" - BENZOCYCLOHEPTAPYRIDINES = "benzocycloheptapyridines" - BENZODIAZEPINES = "benzodiazepines" - BENZODIOXANES = "benzodioxanes" - BENZODIOXOLES = "benzodioxoles" - BENZOFURANS = "benzofurans" - BENZOPYRANS = "benzopyrans" - BENZOPYRAZOLES = "benzopyrazoles" - BENZOTHIADIAZOLES = "benzothiadiazoles" - BENZOTHIAZEPINES = "benzothiazepines" - BENZOTHIAZINES = "benzothiazines" - BENZOTHIAZOLES = "benzothiazoles" - BENZOTHIEPINS = "benzothiepins" - BENZOTHIOPHENES = "benzothiophenes" - BENZOTHIOPYRANS = "benzothiopyrans" - BENZOTRIAZOLES = "benzotriazoles" - BENZOXADIAZOLES = "benzoxadiazoles" - BENZOXAZEPINES = "benzoxazepines" - BENZOXAZINES = "benzoxazines" - BENZOXAZOLES = "benzoxazoles" - BENZOXEPINES = "benzoxepines" - BI__AND_OLIGOTHIOPHENES = "bi--and-oligothiophenes" - BIOTIN_AND_DERIVATIVES = "biotin-and-derivatives" - COUMARANS = "coumarans" - CYCLOHEPTAPYRANS = "cycloheptapyrans" - CYCLOHEPTATHIOPHENES = "cycloheptathiophenes" - DIAZANAPHTHALENES = "diazanaphthalenes" - DIAZEPANES = "diazepanes" - DIAZINANES = "diazinanes" - DIAZINES = "diazines" - DIHYDROFURANS = "dihydrofurans" - DIHYDROISOQUINOLINES = "dihydroisoquinolines" - DIHYDROTHIOPHENES = "dihydrothiophenes" - DIOXABOROLANES = "dioxaborolanes" - DIOXANES = "dioxanes" - DIOXOLOPYRANS = "dioxolopyrans" - DITHIANES = "dithianes" - DITHIOLANES = "dithiolanes" - EPOXIDES = "epoxides" - FURANS = "furans" - FUROFURANS = "furofurans" - FUROPYRANS = "furopyrans" - FUROPYRIDINES = "furopyridines" - FUROPYRROLES = "furopyrroles" - HETEROAROMATIC_COMPOUNDS = "heteroaromatic-compounds" - IMIDAZO_1_5_A_PYRAZINES = "imidazo[1,5-a]pyrazines" - IMIDAZODIAZEPINES = "imidazodiazepines" - IMIDAZOPYRAZINES = "imidazopyrazines" - IMIDAZOPYRIDINES = "imidazopyridines" - IMIDAZOPYRIMIDINES = "imidazopyrimidines" - IMIDAZOTETRAZINES = "imidazotetrazines" - IMIDAZOTHIAZOLES = "imidazothiazoles" - INDOLES_AND_DERIVATIVES = "indoles-and-derivatives" - INDOLIZIDINES = "indolizidines" - ISOCOUMARANS = "isocoumarans" - ISOINDOLES_AND_DERIVATIVES = "isoindoles-and-derivatives" - ISOQUINOLINES_AND_DERIVATIVES = "isoquinolines-and-derivatives" - ISOXAZOLOPYRIDINES = "isoxazolopyridines" - LACTAMS = "lactams" - LACTONES = "lactones" - METALLOHETEROCYCLIC_COMPOUNDS = "metalloheterocyclic-compounds" - NAPHTHOFURANS = "naphthofurans" - NAPHTHOPYRANS = "naphthopyrans" - OXANES = "oxanes" - OXAZAPHOSPHINANES = "oxazaphosphinanes" - OXAZINANES = "oxazinanes" - OXEPANES = "oxepanes" - PHENANTHROLINES = "phenanthrolines" - PIPERAZINOAZEPINES = "piperazinoazepines" - PIPERIDINES = "piperidines" - PTERIDINES_AND_DERIVATIVES = "pteridines-and-derivatives" - PYRANODIOXINS = "pyranodioxins" - PYRANOPYRIDINES = "pyranopyridines" - PYRANOPYRIMIDINES = "pyranopyrimidines" - PYRANS = "pyrans" - PYRAZOLOPYRIDINES = "pyrazolopyridines" - PYRAZOLOPYRIMIDINES = "pyrazolopyrimidines" - PYRAZOLOTRIAZINES = "pyrazolotriazines" - PYRIDINES_AND_DERIVATIVES = "pyridines-and-derivatives" - PYRIDOPYRIMIDINES = "pyridopyrimidines" - PYRROLES = "pyrroles" - PYRROLIDINES = "pyrrolidines" - PYRROLINES = "pyrrolines" - PYRROLIZINES = "pyrrolizines" - PYRROLOAZEPINES = "pyrroloazepines" - PYRROLOPYRAZINES = "pyrrolopyrazines" - PYRROLOPYRAZOLES = "pyrrolopyrazoles" - PYRROLOPYRIDINES = "pyrrolopyridines" - PYRROLOPYRIMIDINES = "pyrrolopyrimidines" - PYRROLOTRIAZINES = "pyrrolotriazines" - QUINOLINES_AND_DERIVATIVES = "quinolines-and-derivatives" - QUINUCLIDINES = "quinuclidines" - SELENAZOLES = "selenazoles" - TETRAHYDROFURANS = "tetrahydrofurans" - TETRAHYDROISOQUINOLINES = "tetrahydroisoquinolines" - TETRAPYRROLES_AND_DERIVATIVES = "tetrapyrroles-and-derivatives" - THIADIAZINANES = "thiadiazinanes" - THIADIAZINES = "thiadiazines" - THIANES = "thianes" - THIAZEPINES = "thiazepines" - THIAZINANES = "thiazinanes" - THIAZINES = "thiazines" - THIENODIAZEPINES = "thienodiazepines" - THIENOIMIDAZOLIDINES = "thienoimidazolidines" - THIENOPYRIDINES = "thienopyridines" - THIENOPYRIMIDINES = "thienopyrimidines" - THIENOPYRROLES = "thienopyrroles" - THIENOTHIAZINES = "thienothiazines" - THIOCHROMANES = "thiochromanes" - THIOCHROMENES = "thiochromenes" - THIOLANES = "thiolanes" - THIOPHENES = "thiophenes" - TRIAZINANES = "triazinanes" - TRIAZINES = "triazines" - TRIAZOLOPYRAZINES = "triazolopyrazines" - TRIAZOLOPYRIDINES = "triazolopyridines" - TRIAZOLOPYRIMIDINES = "triazolopyrimidines" - TRIOXANES = "trioxanes" - - -class DrugsTaxonomyOrganometallicCompoundsEntry(str, Enum): - ORGANOMETALLOID_COMPOUNDS = "organometalloid-compounds" - ORGANO_POST_TRANSITION_METAL_COMPOUNDS = "organo-post-transition-metal-compounds" - - -class DrugsTaxonomyOrganophosphorusCompoundsEntry(str, Enum): - ORGANIC_PHOSPHINES_AND_DERIVATIVES = "organic-phosphines-and-derivatives" - ORGANOPHOSPHINIC_ACIDS_AND_DERIVATIVES = "organophosphinic-acids-and-derivatives" - ORGANOTHIOPHOSPHORUS_COMPOUNDS = "organothiophosphorus-compounds" - - -class DrugsTaxonomyOrganosulfurCompoundsEntry(str, Enum): - ISOTHIOUREAS = "isothioureas" - ORGANIC_DISULFIDES = "organic-disulfides" - SULFONYLS = "sulfonyls" - SULFOXIDES = "sulfoxides" - THIOCARBONYL_COMPOUNDS = "thiocarbonyl-compounds" - THIOETHERS = "thioethers" - THIOLS = "thiols" - THIOUREAS = "thioureas" - - -class DrugsTaxonomyPhenylpropanoidsAndPolyketidesEntry(str, Enum): - T_2_ARYLBENZOFURAN_FLAVONOIDS = "2-arylbenzofuran-flavonoids" - ANTHRACYCLINES = "anthracyclines" - AURONE_FLAVONOIDS = "aurone-flavonoids" - CINNAMIC_ACIDS_AND_DERIVATIVES = "cinnamic-acids-and-derivatives" - CINNAMYL_ALCOHOLS = "cinnamyl-alcohols" - COUMARINS_AND_DERIVATIVES = "coumarins-and-derivatives" - DEPSIDES_AND_DEPSIDONES = "depsides-and-depsidones" - DIARYLHEPTANOIDS = "diarylheptanoids" - FLAVONOIDS = "flavonoids" - ISOCHROMANEQUINONES = "isochromanequinones" - ISOCOUMARINS_AND_DERIVATIVES = "isocoumarins-and-derivatives" - ISOFLAVONOIDS = "isoflavonoids" - LINEAR_1_3_DIARYLPROPANOIDS = "linear-1,3-diarylpropanoids" - MACROLACTAMS = "macrolactams" - MACROLIDE_LACTAMS = "macrolide-lactams" - MACROLIDES_AND_ANALOGUES = "macrolides-and-analogues" - NEOFLAVONOIDS = "neoflavonoids" - PHENYLPROPANOIC_ACIDS = "phenylpropanoic-acids" - SAXITOXINS__GONYAUTOXINS__AND_DERIVATIVES = "saxitoxins,-gonyautoxins,-and-derivatives" - STILBENES = "stilbenes" - TANNINS = "tannins" - TETRACYCLINES = "tetracyclines" - - -class DrugsTaxonomy(BaseModel): - """Model for the drugs taxonomy.""" - - namespace: str = "drugs" - description: str = ( - """A taxonomy based on the superclass and class of drugs. Based on https://www.drugbank.ca/releases/latest""" - ) - version: int = 2 - exclusive: bool = False - predicates: List[DrugsTaxonomyPredicate] = [] - alkaloids_and_derivatives_entries: List[DrugsTaxonomyAlkaloidsAndDerivativesEntry] = [] - benzenoids_entries: List[DrugsTaxonomyBenzenoidsEntry] = [] - homogeneous_metal_compounds_entries: List[DrugsTaxonomyHomogeneousMetalCompoundsEntry] = [] - homogeneous_non_metal_compounds_entries: List[DrugsTaxonomyHomogeneousNonMetalCompoundsEntry] = [] - hydrocarbons_entries: List[DrugsTaxonomyHydrocarbonsEntry] = [] - hydrocarbon_derivatives_entries: List[DrugsTaxonomyHydrocarbonDerivativesEntry] = [] - lignans__neolignans_and_related_compounds_entries: List[DrugsTaxonomyLignansNeolignansAndRelatedCompoundsEntry] = [] - lipids_and_lipid_like_molecules_entries: List[DrugsTaxonomyLipidsAndLipidLikeMoleculesEntry] = [] - mixed_metal_non_metal_compounds_entries: List[DrugsTaxonomyMixedMetalNonMetalCompoundsEntry] = [] - nucleosides__nucleotides__and_analogues_entries: List[DrugsTaxonomyNucleosidesNucleotidesAndAnaloguesEntry] = [] - organic_1_3_dipolar_compounds_entries: List[DrugsTaxonomyOrganic13DipolarCompoundsEntry] = [] - organic_acids_and_derivatives_entries: List[DrugsTaxonomyOrganicAcidsAndDerivativesEntry] = [] - organic_acids_entries: List[DrugsTaxonomyOrganicAcidsEntry] = [] - organic_nitrogen_compounds_entries: List[DrugsTaxonomyOrganicNitrogenCompoundsEntry] = [] - organic_oxygen_compounds_entries: List[DrugsTaxonomyOrganicOxygenCompoundsEntry] = [] - organic_polymers_entries: List[DrugsTaxonomyOrganicPolymersEntry] = [] - organic_salts_entries: List[DrugsTaxonomyOrganicSaltsEntry] = [] - organohalogen_compounds_entries: List[DrugsTaxonomyOrganohalogenCompoundsEntry] = [] - organoheterocyclic_compounds_entries: List[DrugsTaxonomyOrganoheterocyclicCompoundsEntry] = [] - organometallic_compounds_entries: List[DrugsTaxonomyOrganometallicCompoundsEntry] = [] - organophosphorus_compounds_entries: List[DrugsTaxonomyOrganophosphorusCompoundsEntry] = [] - organosulfur_compounds_entries: List[DrugsTaxonomyOrganosulfurCompoundsEntry] = [] - phenylpropanoids_and_polyketides_entries: List[DrugsTaxonomyPhenylpropanoidsAndPolyketidesEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/economical_impact.py b/src/openmisp/models/taxonomies/economical_impact.py deleted file mode 100644 index 58dbd61..0000000 --- a/src/openmisp/models/taxonomies/economical_impact.py +++ /dev/null @@ -1,54 +0,0 @@ -"""Taxonomy model for Economical Impact.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EconomicalImpactTaxonomyPredicate(str, Enum): - LOSS = "loss" - GAIN = "gain" - - -class EconomicalImpactTaxonomyLossEntry(str, Enum): - NONE = "none" - LESS_THAN_25K_EURO = "less-than-25k-euro" - LESS_THAN_50K_EURO = "less-than-50k-euro" - LESS_THAN_100K_EURO = "less-than-100k-euro" - LESS_THAN_1_M_EURO = "less-than-1M-euro" - LESS_THAN_10_M_EURO = "less-than-10M-euro" - LESS_THAN_100_M_EURO = "less-than-100M-euro" - LESS_THAN_1_B_EURO = "less-than-1B-euro" - MORE_THAN_1_B_EURO = "more-than-1B-euro" - - -class EconomicalImpactTaxonomyGainEntry(str, Enum): - NONE = "none" - LESS_THAN_25K_EUR = "less-than-25k-eur" - LESS_THAN_50K_EURO = "less-than-50k-euro" - LESS_THAN_100K_EURO = "less-than-100k-euro" - LESS_THAN_1_M_EURO = "less-than-1M-euro" - LESS_THAN_10_M_EURO = "less-than-10M-euro" - LESS_THAN_100_M_EURO = "less-than-100M-euro" - LESS_THAN_1_B_EURO = "less-than-1B-euro" - MORE_THAN_1_B_EURO = "more-than-1B-euro" - - -class EconomicalImpactTaxonomy(BaseModel): - """Model for the Economical Impact taxonomy.""" - - namespace: str = "economical-impact" - description: str = """Economic impact refers to a taxonomy used to describe whether financial effects are positive or negative outcomes related to tagged information. For instance, data exfiltration loss represents a positive outcome for an adversary.""" - version: int = 5 - exclusive: bool = False - predicates: List[EconomicalImpactTaxonomyPredicate] = [] - loss_entries: List[EconomicalImpactTaxonomyLossEntry] = [] - gain_entries: List[EconomicalImpactTaxonomyGainEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ecsirt.py b/src/openmisp/models/taxonomies/ecsirt.py deleted file mode 100644 index ae7d357..0000000 --- a/src/openmisp/models/taxonomies/ecsirt.py +++ /dev/null @@ -1,124 +0,0 @@ -"""Taxonomy model for ecsirt.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EcsirtTaxonomyPredicate(str, Enum): - ABUSIVE_CONTENT = "abusive-content" - MALICIOUS_CODE = "malicious-code" - INFORMATION_GATHERING = "information-gathering" - INTRUSION_ATTEMPTS = "intrusion-attempts" - INTRUSIONS = "intrusions" - AVAILABILITY = "availability" - INFORMATION_CONTENT_SECURITY = "information-content-security" - FRAUD = "fraud" - VULNERABLE = "vulnerable" - OTHER = "other" - TEST = "test" - - -class EcsirtTaxonomyAbusiveContentEntry(str, Enum): - SPAM = "spam" - HARMFUL_SPEECH = "harmful-speech" - VIOLENCE = "violence" - - -class EcsirtTaxonomyMaliciousCodeEntry(str, Enum): - VIRUS = "virus" - WORM = "worm" - TROJAN = "trojan" - SPYWARE = "spyware" - DIALER = "dialer" - ROOTKIT = "rootkit" - MALWARE = "malware" - BOTNET_DRONE = "botnet-drone" - RANSOMWARE = "ransomware" - MALWARE_CONFIGURATION = "malware-configuration" - C_C = "c&c" - - -class EcsirtTaxonomyInformationGatheringEntry(str, Enum): - SCANNER = "scanner" - SNIFFING = "sniffing" - SOCIAL_ENGINEERING = "social-engineering" - - -class EcsirtTaxonomyIntrusionAttemptsEntry(str, Enum): - IDS_ALERT = "ids-alert" - BRUTE_FORCE = "brute-force" - EXPLOIT = "exploit" - - -class EcsirtTaxonomyIntrusionsEntry(str, Enum): - PRIVILEGED_ACCOUNT_COMPROMISE = "privileged-account-compromise" - UNPRIVILEGED_ACCOUNT_COMPROMISE = "unprivileged-account-compromise" - APPLICATION_COMPROMISE = "application-compromise" - BOT = "bot" - DEFACEMENT = "defacement" - COMPROMISED = "compromised" - BACKDOOR = "backdoor" - - -class EcsirtTaxonomyAvailabilityEntry(str, Enum): - DOS = "dos" - DDOS = "ddos" - SABOTAGE = "sabotage" - OUTAGE = "outage" - - -class EcsirtTaxonomyInformationContentSecurityEntry(str, Enum): - UNAUTHORISED_INFORMATION_ACCESS = "Unauthorised-information-access" - UNAUTHORISED_INFORMATION_MODIFICATION = "Unauthorised-information-modification" - DROPZONE = "dropzone" - - -class EcsirtTaxonomyFraudEntry(str, Enum): - UNAUTHORIZED_USE_OF_RESOURCES = "unauthorized-use-of-resources" - COPYRIGHT = "copyright" - MASQUERADE = "masquerade" - PHISHING = "phishing" - - -class EcsirtTaxonomyVulnerableEntry(str, Enum): - VULNERABLE_SERVICE = "vulnerable-service" - - -class EcsirtTaxonomyOtherEntry(str, Enum): - BLACKLIST = "blacklist" - UNKNOWN = "unknown" - OTHER = "other" - - -class EcsirtTaxonomyTestEntry(str, Enum): - TEST = "test" - - -class EcsirtTaxonomy(BaseModel): - """Model for the ecsirt taxonomy.""" - - namespace: str = "ecsirt" - description: str = """Incident Classification by the ecsirt.net version mkVI of 31 March 2015 enriched with IntelMQ taxonomy-type mapping.""" - version: int = 2 - exclusive: bool = False - predicates: List[EcsirtTaxonomyPredicate] = [] - abusive_content_entries: List[EcsirtTaxonomyAbusiveContentEntry] = [] - malicious_code_entries: List[EcsirtTaxonomyMaliciousCodeEntry] = [] - information_gathering_entries: List[EcsirtTaxonomyInformationGatheringEntry] = [] - intrusion_attempts_entries: List[EcsirtTaxonomyIntrusionAttemptsEntry] = [] - intrusions_entries: List[EcsirtTaxonomyIntrusionsEntry] = [] - availability_entries: List[EcsirtTaxonomyAvailabilityEntry] = [] - information_content_security_entries: List[EcsirtTaxonomyInformationContentSecurityEntry] = [] - fraud_entries: List[EcsirtTaxonomyFraudEntry] = [] - vulnerable_entries: List[EcsirtTaxonomyVulnerableEntry] = [] - other_entries: List[EcsirtTaxonomyOtherEntry] = [] - test_entries: List[EcsirtTaxonomyTestEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/enisa.py b/src/openmisp/models/taxonomies/enisa.py deleted file mode 100644 index 010da9e..0000000 --- a/src/openmisp/models/taxonomies/enisa.py +++ /dev/null @@ -1,277 +0,0 @@ -"""Taxonomy model for ENISA Threat Taxonomy.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EnisaTaxonomyPredicate(str, Enum): - PHYSICAL_ATTACK = "physical-attack" - UNINTENTIONAL_DAMAGE = "unintentional-damage" - DISASTER = "disaster" - FAILURES_MALFUNCTION = "failures-malfunction" - OUTAGES = "outages" - EAVESDROPPING_INTERCEPTION_HIJACKING = "eavesdropping-interception-hijacking" - LEGAL = "legal" - NEFARIOUS_ACTIVITY_ABUSE = "nefarious-activity-abuse" - - -class EnisaTaxonomyPhysicalAttackEntry(str, Enum): - FRAUD = "fraud" - FRAUD_BY_EMPLOYEES = "fraud-by-employees" - SABOTAGE = "sabotage" - VANDALISM = "vandalism" - THEFT = "theft" - THEFT_OF_MOBILE_DEVICES = "theft-of-mobile-devices" - THEFT_OF_FIXED_HARDWARE = "theft-of-fixed-hardware" - THEFT_OF_DOCUMENTS = "theft-of-documents" - THEFT_OF_BACKUPS = "theft-of-backups" - INFORMATION_LEAK_OR_UNAUTHORISED_SHARING = "information-leak-or-unauthorised-sharing" - UNAUTHORISED_PHYSICAL_ACCESS_OR_UNAUTHORISED_ENTRY_TO_PREMISES = ( - "unauthorised-physical-access-or-unauthorised-entry-to-premises" - ) - COERCION_OR_EXTORTION_OR_CORRUPTION = "coercion-or-extortion-or-corruption" - DAMAGE_FROM_THE_WAFARE = "damage-from-the-wafare" - TERRORIST_ATTACK = "terrorist-attack" - - -class EnisaTaxonomyUnintentionalDamageEntry(str, Enum): - INFORMATION_LEAK_OR_SHARING_DUE_TO_HUMAN_ERROR = "information-leak-or-sharing-due-to-human-error" - ACCIDENTAL_LEAKS_OR_SHARING_OF_DATA_BY_EMPLOYEES = "accidental-leaks-or-sharing-of-data-by-employees" - LEAKS_OF_DATA_VIA_MOBILE_APPLICATIONS = "leaks-of-data-via-mobile-applications" - LEAKS_OF_DATA_VIA_WEB_APPLICATIONS = "leaks-of-data-via-web-applications" - LEAKS_OF_INFORMATION_TRANSFERRED_BY_NETWORK = "leaks-of-information-transferred-by-network" - ERRONEOUS_USE_OR_ADMINISTRATION_OF_DEVICES_AND_SYSTEMS = "erroneous-use-or-administration-of-devices-and-systems" - LOSS_OF_INFORMATION_DUE_TO_MAINTENANCE_ERRORS_OR_OPERATORS_ERRORS = ( - "loss-of-information-due-to-maintenance-errors-or-operators-errors" - ) - LOSS_OF_INFORMATION_DUE_TO_CONFIGURATION_OR_INSTALLATION_ERROR = ( - "loss-of-information-due-to-configuration-or-installation error" - ) - INCREASING_RECOVERY_TIME = "increasing-recovery-time" - LOST_OF_INFORMATION_DUE_TO_USER_ERRORS = "lost-of-information-due-to-user-errors" - USING_INFORMATION_FROM_AN_UNRELIABLE_SOURCE = "using-information-from-an-unreliable-source" - UNINTENTIONAL_CHANGE_OF_DATA_IN_AN_INFORMATION_SYSTEM = "unintentional-change-of-data-in-an-information-system" - INADEQUATE_DESIGN_AND_PLANNING_OR_IMPROPER_ADAPTATION = "inadequate-design-and-planning-or-improper-adaptation" - DAMAGE_CAUSED_BY_A_THIRD_PARTY = "damage-caused-by-a-third-party" - SECURITY_FAILURE_CAUSED_BY_THIRD_PARTY = "security-failure-caused-by-third-party" - DAMAGES_RESULTING_FROM_PENETRATION_TESTING = "damages-resulting-from-penetration-testing" - LOSS_OF_INFORMATION_IN_THE_CLOUD = "loss-of-information-in-the-cloud" - LOSS_OF__INTEGRITY_OF__SENSITIVE_INFORMATION = "loss-of-(integrity-of)-sensitive-information" - LOSS_OF_INTEGRITY_OF_CERTIFICATES = "loss-of-integrity-of-certificates" - LOSS_OF_DEVICES_AND_STORAGE_MEDIA_AND_DOCUMENTS = "loss-of-devices-and-storage-media-and-documents" - LOSS_OF_DEVICES_OR_MOBILE_DEVICES = "loss-of-devices-or-mobile-devices" - LOSS_OF_STORAGE_MEDIA = "loss-of-storage-media" - LOSS_OF_DOCUMENTATION_OF_IT_INFRASTRUCTURE = "loss-of-documentation-of-IT-Infrastructure" - DESTRUCTION_OF_RECORDS = "destruction-of-records" - INFECTION_OF_REMOVABLE_MEDIA = "infection-of-removable-media" - ABUSE_OF_STORAGE = "abuse-of-storage" - - -class EnisaTaxonomyDisasterEntry(str, Enum): - DISASTER = "disaster" - FIRE = "fire" - POLLUTION_DUST_CORROSION = "pollution-dust-corrosion" - THUNDERSTRIKE = "thunderstrike" - WATER = "water" - EXPLOSION = "explosion" - DANGEROUS_RADIATION_LEAK = "dangerous-radiation-leak" - UNFAVOURABLE_CLIMATIC_CONDITIONS = "unfavourable-climatic-conditions" - LOSS_OF_DATA_OR_ACCESSIBILITY_OF_IT_INFRASTRUCTURE_AS_A_RESULT_OF_HEIGHTENED_HUMIDITY = ( - "loss-of-data-or-accessibility-of-IT-infrastructure-as-a-result-of-heightened-humidity" - ) - LOST_OF_DATA_OR_ACCESSIBILITY_OF_IT_INFRASTRUCTURE_AS_A_RESULT_OF_VERY_HIGH_TEMPERATURE = ( - "lost-of-data-or-accessibility-of-IT-infrastructure-as-a-result-of-very-high-temperature" - ) - THREATS_FROM_SPACE_OR_ELECTROMAGNETIC_STORM = "threats-from-space-or-electromagnetic-storm" - WILDLIFE = "wildlife" - - -class EnisaTaxonomyFailuresMalfunctionEntry(str, Enum): - FAILURE_OF_DEVICES_OR_SYSTEMS = "failure-of-devices-or-systems" - FAILURE_OF_DATA_MEDIA = "failure-of-data-media" - HARDWARE_FAILURE = "hardware-failure" - FAILURE_OF_APPLICATIONS_AND_SERVICES = "failure-of-applications-and-services" - FAILURE_OF_PARTS_OF_DEVICES_CONNECTORS_PLUG_INS = "failure-of-parts-of-devices-connectors-plug-ins" - FAILURE_OR_DISRUPTION_OF_COMMUNICATION_LINKS_COMMUNICATION_NETWORKS = ( - "failure-or-disruption-of-communication-links-communication networks" - ) - FAILURE_OF_CABLE_NETWORKS = "failure-of-cable-networks" - FAILURE_OF_WIRELESS_NETWORKS = "failure-of-wireless-networks" - FAILURE_OF_MOBILE_NETWORKS = "failure-of-mobile-networks" - FAILURE_OR_DISRUPTION_OF_MAIN_SUPPLY = "failure-or-disruption-of-main-supply" - FAILURE_OR_DISRUPTION_OF_POWER_SUPPLY = "failure-or-disruption-of-power-supply" - FAILURE_OF_COOLING_INFRASTRUCTURE = "failure-of-cooling-infrastructure" - FAILURE_OR_DISRUPTION_OF_SERVICE_PROVIDERS_SUPPLY_CHAIN = "failure-or-disruption-of-service-providers-supply-chain" - MALFUNCTION_OF_EQUIPMENT_DEVICES_OR_SYSTEMS = "malfunction-of-equipment-devices-or-systems" - - -class EnisaTaxonomyOutagesEntry(str, Enum): - ABSENCE_OF_PERSONNEL = "absence-of-personnel" - STRIKE = "strike" - LOSS_OF_SUPPORT_SERVICES = "loss-of-support-services" - INTERNET_OUTAGE = "internet-outage" - NETWORK_OUTAGE = "network-outage" - OUTAGE_OF_CABLE_NETWORKS = "outage-of-cable-networks" - OUTAGE_OF_SHORT_RANGE_WIRELESS_NETWORKS = "Outage-of-short-range-wireless-networks" - OUTAGES_OF_LONG_RANGE_WIRELESS_NETWORKS = "outages-of-long-range-wireless-networks" - - -class EnisaTaxonomyEavesdroppingInterceptionHijackingEntry(str, Enum): - WAR_DRIVING = "war-driving" - INTERCEPTING_COMPROMISING_EMISSIONS = "intercepting-compromising-emissions" - INTERCEPTION_OF_INFORMATION = "interception-of-information" - CORPORATE_ESPIONAGE = "corporate-espionage" - NATION_STATE_ESPIONAGE = "nation-state-espionage" - INFORMATION_LEAKAGE_DUE_TO_UNSECURED_WI_FI_LIKE_ROGUE_ACCESS_POINTS = ( - "information-leakage-due-to-unsecured-wi-fi-like-rogue-access-points" - ) - INTERFERING_RADIATION = "interfering-radiation" - REPLAY_OF_MESSAGES = "replay-of-messages" - NETWORK_RECONNAISSANCE_NETWORK_TRAFFIC_MANIPULATION_AND_INFORMATION_GATHERING = ( - "network-reconnaissance-network-traffic-manipulation-and-information-gathering" - ) - MAN_IN_THE_MIDDLE_SESSION_HIJACKING = "man-in-the-middle-session-hijacking" - - -class EnisaTaxonomyLegalEntry(str, Enum): - VIOLATION_OF_RULES_AND_REGULATIONS_BREACH_OF_LEGISLATION = ( - "violation-of-rules-and-regulations-breach-of-legislation" - ) - FAILURE_TO_MEET_CONTRACTUAL_REQUIREMENTS = "failure-to-meet-contractual-requirements" - FAILURE_TO_MEET_CONTRACTUAL_REQUIREMENTS_BY_THIRD_PARTY = "failure-to-meet-contractual-requirements-by-third-party" - UNAUTHORIZED_USE_OF_IPR_PROTECTED_RESOURCES = "unauthorized-use-of-IPR-protected-resources" - ILLEGAL_USAGE_OF_FILE_SHARING_SERVICES = "illegal-usage-of-file-sharing-services" - ABUSE_OF_PERSONAL_DATA = "abuse-of-personal-data" - JUDICIARY_DECISIONS_OR_COURT_ORDER = "judiciary-decisions-or-court-order" - - -class EnisaTaxonomyNefariousActivityAbuseEntry(str, Enum): - IDENTITY_THEFT_IDENTITY_FRAUD_ACCOUNT_ = "identity-theft-identity-fraud-account)" - CREDENTIALS_STEALING_TROJANS = "credentials-stealing-trojans" - RECEIVING_UNSOLICITED_E_MAIL = "receiving-unsolicited-e-mail" - SPAM = "spam" - UNSOLICITED_INFECTED_E_MAILS = "unsolicited-infected-e-mails" - DENIAL_OF_SERVICE = "denial-of-service" - DISTRIBUTED_DENIAL_OF_NETWORK_SERVICE_NETWORK_LAYER_ATTACK = ( - "distributed-denial-of-network-service-network-layer-attack" - ) - DISTRIBUTED_DENIAL_OF_NETWORK_SERVICE_APPLICATION_LAYER_ATTACK = ( - "distributed-denial-of-network-service-application-layer-attack" - ) - DISTRIBUTED_DENIAL_OF_NETWORK_SERVICE_AMPLIFICATION_REFLECTION_ATTACK = ( - "distributed-denial-of-network-service-amplification-reflection-attack" - ) - MALICIOUS_CODE_SOFTWARE_ACTIVITY = "malicious-code-software-activity" - SEARCH_ENGINE_POISONING = "search-engine-poisoning" - EXPLOITATION_OF_FAKE_TRUST_OF_SOCIAL_MEDIA = "exploitation-of-fake-trust-of-social-media" - WORMS_TROJANS = "worms-trojans" - ROOTKITS = "rootkits" - MOBILE_MALWARE = "mobile-malware" - INFECTED_TRUSTED_MOBILE_APPS = "infected-trusted-mobile-apps" - ELEVATION_OF_PRIVILEGES = "elevation-of-privileges" - WEB_APPLICATION_ATTACKS_INJECTION_ATTACKS_CODE_INJECTION_SQL_XSS = ( - "web-application-attacks-injection-attacks-code-injection-SQL-XSS" - ) - SPYWARE_OR_DECEPTIVE_ADWARE = "spyware-or-deceptive-adware" - VIRUSES = "viruses" - ROGUE_SECURITY_SOFTWARE_ROGUEWARE_SCAREWARE = "rogue-security-software-rogueware-scareware" - RANSOMWARE = "ransomware" - EXPLOITS_EXPLOIT_KITS = "exploits-exploit-kits" - SOCIAL_ENGINEERING = "social-engineering" - PHISHING_ATTACKS = "phishing-attacks" - SPEAR_PHISHING_ATTACKS = "spear-phishing-attacks" - ABUSE_OF_INFORMATION_LEAKAGE = "abuse-of-information-leakage" - LEAKAGE_AFFECTING_MOBILE_PRIVACY_AND_MOBILE_APPLICATIONS = ( - "leakage-affecting-mobile-privacy-and-mobile-applications" - ) - LEAKAGE_AFFECTING_WEB_PRIVACY_AND_WEB_APPLICATIONS = "leakage-affecting-web-privacy-and-web-applications" - LEAKAGE_AFFECTING_NETWORK_TRAFFIC = "leakage-affecting-network-traffic" - LEAKAGE_AFFECTING_CLOUD_COMPUTING = "leakage-affecting-cloud-computing" - GENERATION_AND_USE_OF_ROGUE_CERTIFICATES = "generation-and-use-of-rogue-certificates" - LOSS_OF_INTEGRITY_OF_SENSITIVE_INFORMATION = "loss-of-integrity-of-sensitive-information" - MAN_IN_THE_MIDDLE_SESSION_HIJACKING = "man-in-the-middle-session-hijacking" - SOCIAL_ENGINEERING_VIA_SIGNED_MALWARE = "social-engineering-via-signed-malware" - FAKE_SSL_CERTIFICATES = "fake-SSL-certificates" - MANIPULATION_OF_HARDWARE_AND_SOFTWARE = "manipulation-of-hardware-and-software" - ANONYMOUS_PROXIES = "anonymous-proxies" - ABUSE_OF_COMPUTING_POWER_OF_CLOUD_TO_LAUNCH_ATTACKS_CYBERCRIME_AS_A_SERVICE_ = ( - "abuse-of-computing-power-of-cloud-to-launch-attacks-cybercrime-as-a-service)" - ) - ABUSE_OF_VULNERABILITIES_0_DAY_VULNERABILITIES = "abuse-of-vulnerabilities-0-day-vulnerabilities" - ACCESS_OF_WEB_SITES_THROUGH_CHAINS_OF_HTTP_PROXIES_OBFUSCATION = ( - "access-of-web-sites-through-chains-of-HTTP-Proxies-Obfuscation" - ) - ACCESS_TO_DEVICE_SOFTWARE = "access-to-device-software" - ALTERNATION_OF_SOFTWARE = "alternation-of-software" - ROGUE_HARDWARE = "rogue-hardware" - MANIPULATION_OF_INFORMATION = "manipulation-of-information" - REPUDIATION_OF_ACTIONS = "repudiation-of-actions" - ADDRESS_SPACE_HIJACKING_IP_PREFIXES = "address-space-hijacking-IP-prefixes" - ROUTING_TABLE_MANIPULATION = "routing-table-manipulation" - DNS_POISONING_OR_DNS_SPOOFING_OR_DNS_MANIPULATIONS = "DNS-poisoning-or-DNS-spoofing-or-DNS-Manipulations" - FALSIFICATION_OF_RECORD = "falsification-of-record" - AUTONOMOUS_SYSTEM_HIJACKING = "autonomous-system-hijacking" - AUTONOMOUS_SYSTEM_MANIPULATION = "autonomous-system-manipulation" - FALSIFICATION_OF_CONFIGURATIONS = "falsification-of-configurations" - MISUSE_OF_AUDIT_TOOLS = "misuse-of-audit-tools" - MISUSE_OF_INFORMATION_OR_INFORMATION_SYSTEMS_INCLUDING_MOBILE_APPS = ( - "misuse-of-information-or-information systems-including-mobile-apps" - ) - UNAUTHORIZED_ACTIVITIES = "unauthorized-activities" - UNAUTHORISED_USE_OR_ADMINISTRATION_OF_DEVICES_AND_SYSTEMS = ( - "Unauthorised-use-or-administration-of-devices-and-systems" - ) - UNAUTHORISED_USE_OF_SOFTWARE = "unauthorised-use-of-software" - UNAUTHORIZED_ACCESS_TO_THE_INFORMATION_SYSTEMS_OR_NETWORKS_LIKE_IMPI_PROTOCOL_DNS_REGISTRAR_HIJACKING_ = ( - "unauthorized-access-to-the-information-systems-or-networks-like-IMPI-Protocol-DNS-Registrar-Hijacking)" - ) - NETWORK_INTRUSION = "network-intrusion" - UNAUTHORIZED_CHANGES_OF_RECORDS = "unauthorized-changes-of-records" - UNAUTHORIZED_INSTALLATION_OF_SOFTWARE = "unauthorized-installation-of-software" - WEB_BASED_ATTACKS_DRIVE_BY_DOWNLOAD_OR_MALICIOUS_URLS_OR_BROWSER_BASED_ATTACKS = ( - "Web-based-attacks-drive-by-download-or-malicious-URLs-or-browser-based-attacks" - ) - COMPROMISING_CONFIDENTIAL_INFORMATION_LIKE_DATA_BREACHES = ( - "compromising-confidential-information-like-data-breaches" - ) - HOAX = "hoax" - FALSE_RUMOUR_AND_OR_FAKE_WARNING = "false-rumour-and-or-fake-warning" - REMOTE_ACTIVITY_EXECUTION = "remote-activity-execution" - REMOTE_COMMAND_EXECUTION = "remote-command-execution" - REMOTE_ACCESS_TOOL = "remote-access-tool" - BOTNETS_REMOTE_ACTIVITY = "botnets-remote-activity" - TARGETED_ATTACKS = "targeted-attacks" - MOBILE_MALWARE_EXFILTRATION = "mobile-malware-exfiltration" - SPEAR_PHISHING_ATTACKS_TARGETED = "spear-phishing-attacks-targeted" - INSTALLATION_OF_SOPHISTICATED_AND_TARGETED_MALWARE = "installation-of-sophisticated-and-targeted-malware" - WATERING_HOLE_ATTACKS = "watering-hole-attacks" - FAILED_BUSINESS_PROCESS = "failed-business-process" - BRUTE_FORCE = "brute-force" - ABUSE_OF_AUTHORIZATIONS = "abuse-of-authorizations" - - -class EnisaTaxonomy(BaseModel): - """Model for the ENISA Threat Taxonomy taxonomy.""" - - namespace: str = "enisa" - description: str = """The present threat taxonomy is an initial version that has been developed on the basis of available ENISA material. This material has been used as an ENISA-internal structuring aid for information collection and threat consolidation purposes. It emerged in the time period 2012-2015.""" - version: int = 20170725 - exclusive: bool = False - predicates: List[EnisaTaxonomyPredicate] = [] - physical_attack_entries: List[EnisaTaxonomyPhysicalAttackEntry] = [] - unintentional_damage_entries: List[EnisaTaxonomyUnintentionalDamageEntry] = [] - disaster_entries: List[EnisaTaxonomyDisasterEntry] = [] - failures_malfunction_entries: List[EnisaTaxonomyFailuresMalfunctionEntry] = [] - outages_entries: List[EnisaTaxonomyOutagesEntry] = [] - eavesdropping_interception_hijacking_entries: List[EnisaTaxonomyEavesdroppingInterceptionHijackingEntry] = [] - legal_entries: List[EnisaTaxonomyLegalEntry] = [] - nefarious_activity_abuse_entries: List[EnisaTaxonomyNefariousActivityAbuseEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/estimative_language.py b/src/openmisp/models/taxonomies/estimative_language.py deleted file mode 100644 index 86857fa..0000000 --- a/src/openmisp/models/taxonomies/estimative_language.py +++ /dev/null @@ -1,46 +0,0 @@ -"""Taxonomy model for Estimative languages.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EstimativeLanguageTaxonomyPredicate(str, Enum): - LIKELIHOOD_PROBABILITY = "likelihood-probability" - CONFIDENCE_IN_ANALYTIC_JUDGMENT = "confidence-in-analytic-judgment" - - -class EstimativeLanguageTaxonomyLikelihoodProbabilityEntry(str, Enum): - ALMOST_NO_CHANCE = "almost-no-chance" - VERY_UNLIKELY = "very-unlikely" - UNLIKELY = "unlikely" - ROUGHLY_EVEN_CHANCE = "roughly-even-chance" - LIKELY = "likely" - VERY_LIKELY = "very-likely" - ALMOST_CERTAIN = "almost-certain" - - -class EstimativeLanguageTaxonomyConfidenceInAnalyticJudgmentEntry(str, Enum): - LOW = "low" - MODERATE = "moderate" - HIGH = "high" - - -class EstimativeLanguageTaxonomy(BaseModel): - """Model for the Estimative languages taxonomy.""" - - namespace: str = "estimative-language" - description: str = """Estimative language to describe quality and credibility of underlying sources, data, and methodologies based Intelligence Community Directive 203 (ICD 203) and JP 2-0, Joint Intelligence""" - version: int = 5 - exclusive: bool = False - predicates: List[EstimativeLanguageTaxonomyPredicate] = [] - likelihood_probability_entries: List[EstimativeLanguageTaxonomyLikelihoodProbabilityEntry] = [] - confidence_in_analytic_judgment_entries: List[EstimativeLanguageTaxonomyConfidenceInAnalyticJudgmentEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/eu_marketop_and_publicadmin.py b/src/openmisp/models/taxonomies/eu_marketop_and_publicadmin.py deleted file mode 100644 index f9e6b07..0000000 --- a/src/openmisp/models/taxonomies/eu_marketop_and_publicadmin.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Taxonomy model for eu-marketop-and-publicadmin.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EuMarketopAndPublicadminTaxonomyPredicate(str, Enum): - CRITICAL_INFRA_OPERATORS = "critical-infra-operators" - INFO_SERVICES = "info-services" - PUBLIC_ADMIN = "public-admin" - - -class EuMarketopAndPublicadminTaxonomyCriticalInfraOperatorsEntry(str, Enum): - TRANSPORT = "transport" - ENERGY = "energy" - HEALTH = "health" - FINANCIAL = "financial" - BANKING = "banking" - - -class EuMarketopAndPublicadminTaxonomyInfoServicesEntry(str, Enum): - E_COMMERCE = "e-commerce" - INTERNET_PAYMENT = "internet-payment" - CLOUD = "cloud" - SEARCH_ENGINES = "search-engines" - SOCNET = "socnet" - APP_STORES = "app-stores" - - -class EuMarketopAndPublicadminTaxonomyPublicAdminEntry(str, Enum): - PUBLIC_ADMIN = "public-admin" - - -class EuMarketopAndPublicadminTaxonomy(BaseModel): - """Model for the eu-marketop-and-publicadmin taxonomy.""" - - namespace: str = "eu-marketop-and-publicadmin" - description: str = """Market operators and public administrations that must comply to some notifications requirements under EU NIS directive""" - version: int = 1 - exclusive: bool = False - predicates: List[EuMarketopAndPublicadminTaxonomyPredicate] = [] - critical_infra_operators_entries: List[EuMarketopAndPublicadminTaxonomyCriticalInfraOperatorsEntry] = [] - info_services_entries: List[EuMarketopAndPublicadminTaxonomyInfoServicesEntry] = [] - public_admin_entries: List[EuMarketopAndPublicadminTaxonomyPublicAdminEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/eu_nis_sector_and_subsectors.py b/src/openmisp/models/taxonomies/eu_nis_sector_and_subsectors.py deleted file mode 100644 index 86a838a..0000000 --- a/src/openmisp/models/taxonomies/eu_nis_sector_and_subsectors.py +++ /dev/null @@ -1,68 +0,0 @@ -"""Taxonomy model for eu-nis-sector-and-subsectors.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EuNisSectorAndSubsectorsTaxonomyPredicate(str, Enum): - EU_NIS_OES = "eu-nis-oes" - EU_NIS_OES_ENERGY = "eu-nis-oes-energy" - EU_NIS_OES_TRANSPORT = "eu-nis-oes-transport" - EU_NIS_OES_BANKING = "eu-nis-oes-banking" - EU_NIS_OES_FINANCIAL = "eu-nis-oes-financial" - EU_NIS_OES_HEALTH = "eu-nis-oes-health" - EU_NIS_OES_WATER = "eu-nis-oes-water" - EU_NIS_OES_DIGINFRA = "eu-nis-oes-diginfra" - EU_NIS_DSP = "eu-nis-dsp" - - -class EuNisSectorAndSubsectorsTaxonomyEuNisOesEntry(str, Enum): - ENERGY = "energy" - TRANSPORT = "transport" - BANKING = "banking" - FINANCIAL = "financial" - HEALTH = "health" - WATER = "water" - DIGITALINFRASTRUCTURE = "digitalinfrastructure" - - -class EuNisSectorAndSubsectorsTaxonomyEuNisOesEnergyEntry(str, Enum): - ELECTRICITY_ENERGY = "electricity-energy" - OIL_ENERGY = "oil-energy" - GAS_ENERGY = "gas-energy" - - -class EuNisSectorAndSubsectorsTaxonomyEuNisOesTransportEntry(str, Enum): - AIR_TRANSPORT = "air-transport" - RAIL_TRANSPORT = "rail-transport" - WATER_TRANSPORT = "water-transport" - ROAD_TRANSPORT = "road-transport" - - -class EuNisSectorAndSubsectorsTaxonomyEuNisDspEntry(str, Enum): - MARKET_DSP = "market-dsp" - SEARCH_DSP = "search-dsp" - CLOUD_DSP = "cloud-dsp" - - -class EuNisSectorAndSubsectorsTaxonomy(BaseModel): - """Model for the eu-nis-sector-and-subsectors taxonomy.""" - - namespace: str = "eu-nis-sector-and-subsectors" - description: str = """Sectors, subsectors, and digital services as identified by the NIS Directive""" - version: int = 1 - exclusive: bool = False - predicates: List[EuNisSectorAndSubsectorsTaxonomyPredicate] = [] - eu_nis_oes_entries: List[EuNisSectorAndSubsectorsTaxonomyEuNisOesEntry] = [] - eu_nis_oes_energy_entries: List[EuNisSectorAndSubsectorsTaxonomyEuNisOesEnergyEntry] = [] - eu_nis_oes_transport_entries: List[EuNisSectorAndSubsectorsTaxonomyEuNisOesTransportEntry] = [] - eu_nis_dsp_entries: List[EuNisSectorAndSubsectorsTaxonomyEuNisDspEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/euci.py b/src/openmisp/models/taxonomies/euci.py deleted file mode 100644 index b024cfc..0000000 --- a/src/openmisp/models/taxonomies/euci.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Taxonomy model for euci.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EuciTaxonomyPredicate(str, Enum): - TS_UE_EU_TS = "TS-UE/EU-TS" - S_UE_EU_S = "S-UE/EU-S" - C_UE_EU_C = "C-UE/EU-C" - R_UE_EU_R = "R-UE/EU-R" - - -class EuciTaxonomy(BaseModel): - """Model for the euci taxonomy.""" - - namespace: str = "euci" - description: str = """EU classified information (EUCI) means any information or material designated by a EU security classification, the unauthorised disclosure of which could cause varying degrees of prejudice to the interests of the European Union or of one or more of the Member States.""" - version: int = 3 - exclusive: bool = True - predicates: List[EuciTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/europol_event.py b/src/openmisp/models/taxonomies/europol_event.py deleted file mode 100644 index 4f455bb..0000000 --- a/src/openmisp/models/taxonomies/europol_event.py +++ /dev/null @@ -1,72 +0,0 @@ -"""Taxonomy model for Europol type of events taxonomy.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EuropolEventTaxonomyPredicate(str, Enum): - INFECTED_BY_KNOWN_MALWARE = "infected-by-known-malware" - DISSEMINATION_MALWARE_EMAIL = "dissemination-malware-email" - HOSTING_MALWARE_WEBPAGE = "hosting-malware-webpage" - C_C_SERVER_HOSTING = "c&c-server-hosting" - WORM_SPREADING = "worm-spreading" - CONNECTION_MALWARE_PORT = "connection-malware-port" - CONNECTION_MALWARE_SYSTEM = "connection-malware-system" - FLOOD = "flood" - EXPLOIT_TOOL_EXHAUSTING_RESOURCES = "exploit-tool-exhausting-resources" - PACKET_FLOOD = "packet-flood" - EXPLOIT_FRAMEWORK_EXHAUSTING_RESOURCES = "exploit-framework-exhausting-resources" - VANDALISM = "vandalism" - DISRUPTION_DATA_TRANSMISSION = "disruption-data-transmission" - SYSTEM_PROBE = "system-probe" - NETWORK_SCANNING = "network-scanning" - DNS_ZONE_TRANSFER = "dns-zone-transfer" - WIRETAPPING = "wiretapping" - DISSEMINATION_PHISHING_EMAILS = "dissemination-phishing-emails" - HOSTING_PHISHING_SITES = "hosting-phishing-sites" - AGGREGATION_INFORMATION_PHISHING_SCHEMES = "aggregation-information-phishing-schemes" - EXPLOIT_ATTEMPT = "exploit-attempt" - SQL_INJECTION_ATTEMPT = "sql-injection-attempt" - XSS_ATTEMPT = "xss-attempt" - FILE_INCLUSION_ATTEMPT = "file-inclusion-attempt" - BRUTE_FORCE_ATTEMPT = "brute-force-attempt" - PASSWORD_CRACKING_ATTEMPT = "password-cracking-attempt" - DICTIONARY_ATTACK_ATTEMPT = "dictionary-attack-attempt" - EXPLOIT = "exploit" - SQL_INJECTION = "sql-injection" - XSS = "xss" - FILE_INCLUSION = "file-inclusion" - CONTROL_SYSTEM_BYPASS = "control-system-bypass" - THEFT_ACCESS_CREDENTIALS = "theft-access-credentials" - UNAUTHORIZED_ACCESS_SYSTEM = "unauthorized-access-system" - UNAUTHORIZED_ACCESS_INFORMATION = "unauthorized-access-information" - DATA_EXFILTRATION = "data-exfiltration" - MODIFICATION_INFORMATION = "modification-information" - DELETION_INFORMATION = "deletion-information" - ILLEGITIMATE_USE_RESOURCES = "illegitimate-use-resources" - ILLEGITIMATE_USE_NAME = "illegitimate-use-name" - EMAIL_FLOODING = "email-flooding" - SPAM = "spam" - COPYRIGHTED_CONTENT = "copyrighted-content" - CONTENT_FORBIDDEN_BY_LAW = "content-forbidden-by-law" - UNSPECIFIED = "unspecified" - UNDETERMINED = "undetermined" - - -class EuropolEventTaxonomy(BaseModel): - """Model for the Europol type of events taxonomy taxonomy.""" - - namespace: str = "europol-event" - description: str = """This taxonomy was designed to describe the type of events""" - version: int = 1 - exclusive: bool = False - predicates: List[EuropolEventTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/europol_incident.py b/src/openmisp/models/taxonomies/europol_incident.py deleted file mode 100644 index e06e2d1..0000000 --- a/src/openmisp/models/taxonomies/europol_incident.py +++ /dev/null @@ -1,92 +0,0 @@ -"""Taxonomy model for Europol class of incidents taxonomy.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EuropolIncidentTaxonomyPredicate(str, Enum): - MALWARE = "malware" - AVAILABILITY = "availability" - INFORMATION_GATHERING = "information-gathering" - INTRUSION_ATTEMPT = "intrusion-attempt" - INTRUSION = "intrusion" - INFORMATION_SECURITY = "information-security" - FRAUD = "fraud" - ABUSIVE_CONTENT = "abusive-content" - OTHER = "other" - - -class EuropolIncidentTaxonomyMalwareEntry(str, Enum): - INFECTION = "infection" - DISTRIBUTION = "distribution" - C_C = "c&c" - UNDETERMINED = "undetermined" - - -class EuropolIncidentTaxonomyAvailabilityEntry(str, Enum): - DOS_DDOS = "dos-ddos" - SABOTAGE = "sabotage" - - -class EuropolIncidentTaxonomyInformationGatheringEntry(str, Enum): - SCANNING = "scanning" - SNIFFING = "sniffing" - PHISHING = "phishing" - - -class EuropolIncidentTaxonomyIntrusionAttemptEntry(str, Enum): - EXPLOITATION_VULNERABILITY = "exploitation-vulnerability" - LOGIN_ATTEMPT = "login-attempt" - - -class EuropolIncidentTaxonomyIntrusionEntry(str, Enum): - EXPLOITATION_VULNERABILITY = "exploitation-vulnerability" - COMPROMISING_ACCOUNT = "compromising-account" - - -class EuropolIncidentTaxonomyInformationSecurityEntry(str, Enum): - UNAUTHORIZED_ACCESS = "unauthorized-access" - UNAUTHORIZED_MODIFICATION = "unauthorized-modification" - - -class EuropolIncidentTaxonomyFraudEntry(str, Enum): - ILLEGITIMATE_USE_RESOURCES = "illegitimate-use-resources" - ILLEGITIMATE_USE_NAME = "illegitimate-use-name" - - -class EuropolIncidentTaxonomyAbusiveContentEntry(str, Enum): - SPAM = "spam" - COPYRIGHT = "copyright" - CONTENT_FORBIDDEN_BY_LAW = "content-forbidden-by-law" - - -class EuropolIncidentTaxonomyOtherEntry(str, Enum): - OTHER = "other" - - -class EuropolIncidentTaxonomy(BaseModel): - """Model for the Europol class of incidents taxonomy taxonomy.""" - - namespace: str = "europol-incident" - description: str = """This taxonomy was designed to describe the type of incidents by class.""" - version: int = 1 - exclusive: bool = False - predicates: List[EuropolIncidentTaxonomyPredicate] = [] - malware_entries: List[EuropolIncidentTaxonomyMalwareEntry] = [] - availability_entries: List[EuropolIncidentTaxonomyAvailabilityEntry] = [] - information_gathering_entries: List[EuropolIncidentTaxonomyInformationGatheringEntry] = [] - intrusion_attempt_entries: List[EuropolIncidentTaxonomyIntrusionAttemptEntry] = [] - intrusion_entries: List[EuropolIncidentTaxonomyIntrusionEntry] = [] - information_security_entries: List[EuropolIncidentTaxonomyInformationSecurityEntry] = [] - fraud_entries: List[EuropolIncidentTaxonomyFraudEntry] = [] - abusive_content_entries: List[EuropolIncidentTaxonomyAbusiveContentEntry] = [] - other_entries: List[EuropolIncidentTaxonomyOtherEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/event_assessment.py b/src/openmisp/models/taxonomies/event_assessment.py deleted file mode 100644 index 7f703c6..0000000 --- a/src/openmisp/models/taxonomies/event_assessment.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Taxonomy model for Event Assessment.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EventAssessmentTaxonomyPredicate(str, Enum): - ALTERNATIVE_POINTS_OF_VIEW_PROCESS = "alternative-points-of-view-process" - - -class EventAssessmentTaxonomyAlternativePointsOfViewProcessEntry(str, Enum): - ANALYTIC_DEBATES_WITHIN_THE_ORGANISATION = "analytic-debates-within-the-organisation" - DEVILS_ADVOCATES_METHODOLOGY = "devils-advocates-methodology" - COMPETITIVE_ANALYSIS = "competitive-analysis" - INTERDISCIPLINARY_BRAINSTORMING = "interdisciplinary-brainstorming" - INTRA_OFFICE_PEER_REVIEW = "intra-office-peer-review" - OUTSIDE_EXPERTISE_REVIEW = "outside-expertise-review" - - -class EventAssessmentTaxonomy(BaseModel): - """Model for the Event Assessment taxonomy.""" - - namespace: str = "event-assessment" - description: str = """A series of assessment predicates describing the event assessment performed to make judgement(s) under a certain level of uncertainty.""" - version: int = 2 - exclusive: bool = False - predicates: List[EventAssessmentTaxonomyPredicate] = [] - alternative_points_of_view_process_entries: List[EventAssessmentTaxonomyAlternativePointsOfViewProcessEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/event_classification.py b/src/openmisp/models/taxonomies/event_classification.py deleted file mode 100644 index c58a6cf..0000000 --- a/src/openmisp/models/taxonomies/event_classification.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Taxonomy model for event-classification.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class EventClassificationTaxonomyPredicate(str, Enum): - EVENT_CLASS = "event-class" - - -class EventClassificationTaxonomyEventClassEntry(str, Enum): - INCIDENT_REPORT = "incident_report" - INCIDENT = "incident" - INVESTIGATION = "investigation" - COUNTERMEASURE = "countermeasure" - GENERAL = "general" - EXERCISE = "exercise" - - -class EventClassificationTaxonomy(BaseModel): - """Model for the event-classification taxonomy.""" - - namespace: str = "event-classification" - description: str = """Classification of events as seen in tools such as RT/IR, MISP and other""" - version: int = 1 - exclusive: bool = False - predicates: List[EventClassificationTaxonomyPredicate] = [] - event_class_entries: List[EventClassificationTaxonomyEventClassEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/exercise.py b/src/openmisp/models/taxonomies/exercise.py deleted file mode 100644 index 4c0a1d8..0000000 --- a/src/openmisp/models/taxonomies/exercise.py +++ /dev/null @@ -1,95 +0,0 @@ -"""Taxonomy model for Exercise.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class ExerciseTaxonomyPredicate(str, Enum): - CYBER_EUROPE = "cyber-europe" - CYBER_STORM = "cyber-storm" - LOCKED_SHIELDS = "locked-shields" - LUKEX = "lukex" - CYBER_COALITION = "cyber-coalition" - PACE = "pace" - CYBER_SOPEX = "cyber-sopex" - GENERIC = "generic" - - -class ExerciseTaxonomyCyberEuropeEntry(str, Enum): - T_2024 = "2024" - T_2022 = "2022" - T_2018 = "2018" - T_2016 = "2016" - - -class ExerciseTaxonomyCyberStormEntry(str, Enum): - SPRING_2018 = "spring-2018" - - -class ExerciseTaxonomyLockedShieldsEntry(str, Enum): - T_2017 = "2017" - T_2018 = "2018" - T_2019 = "2019" - T_2020 = "2020" - T_2021 = "2021" - T_2022 = "2022" - T_2023 = "2023" - T_2024 = "2024" - - -class ExerciseTaxonomyLukexEntry(str, Enum): - T_2020 = "2020" - - -class ExerciseTaxonomyCyberCoalitionEntry(str, Enum): - T_2017 = "2017" - T_2018 = "2018" - T_2019 = "2019" - T_2020 = "2020" - T_2021 = "2021" - - -class ExerciseTaxonomyPaceEntry(str, Enum): - T_2017 = "2017" - T_2018 = "2018" - - -class ExerciseTaxonomyCyberSopexEntry(str, Enum): - T_2019 = "2019" - T_2018 = "2018" - T_2020 = "2020" - T_2021 = "2021" - - -class ExerciseTaxonomyGenericEntry(str, Enum): - COMCHECK = "comcheck" - RED_TEAMING = "red-teaming" - - -class ExerciseTaxonomy(BaseModel): - """Model for the Exercise taxonomy.""" - - namespace: str = "exercise" - description: str = ( - """Exercise is a taxonomy to describe if the information is part of one or more cyber or crisis exercise.""" - ) - version: int = 12 - exclusive: bool = False - predicates: List[ExerciseTaxonomyPredicate] = [] - cyber_europe_entries: List[ExerciseTaxonomyCyberEuropeEntry] = [] - cyber_storm_entries: List[ExerciseTaxonomyCyberStormEntry] = [] - locked_shields_entries: List[ExerciseTaxonomyLockedShieldsEntry] = [] - lukex_entries: List[ExerciseTaxonomyLukexEntry] = [] - cyber_coalition_entries: List[ExerciseTaxonomyCyberCoalitionEntry] = [] - pace_entries: List[ExerciseTaxonomyPaceEntry] = [] - cyber_sopex_entries: List[ExerciseTaxonomyCyberSopexEntry] = [] - generic_entries: List[ExerciseTaxonomyGenericEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/extended_event.py b/src/openmisp/models/taxonomies/extended_event.py deleted file mode 100644 index 48a5f84..0000000 --- a/src/openmisp/models/taxonomies/extended_event.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Taxonomy model for extended-event.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class ExtendedEventTaxonomyPredicate(str, Enum): - COMPETITIVE_ANALYSIS = "competitive-analysis" - EXTENDED_ANALYSIS = "extended-analysis" - HUMAN_READABLE = "human-readable" - CHUNKED_EVENT = "chunked-event" - UPDATE = "update" - COUNTER_ANALYSIS = "counter-analysis" - - -class ExtendedEventTaxonomyCompetitiveAnalysisEntry(str, Enum): - DEVIL_ADVOCATE = "devil-advocate" - ABSURD_REASONING = "absurd-reasoning" - ROLE_PLAYING = "role-playing" - CRYSTAL_BALL = "crystal-ball" - - -class ExtendedEventTaxonomyExtendedAnalysisEntry(str, Enum): - AUTOMATIC_EXPANSION = "automatic-expansion" - AGGRESSIVE_PIVOTING = "aggressive-pivoting" - COMPLEMENTARY_ANALYSIS = "complementary-analysis" - - -class ExtendedEventTaxonomyChunkedEventEntry(str, Enum): - TIME_BASED = "time-based" - COUNTER_BASED = "counter-based" - - -class ExtendedEventTaxonomy(BaseModel): - """Model for the extended-event taxonomy.""" - - namespace: str = "extended-event" - description: str = """Reasons why an event has been extended. This taxonomy must be used on the extended event. The competitive analysis aspect is from Psychology of Intelligence Analysis by Richard J. Heuer, Jr. ref:http://www.foo.be/docs/intelligence/PsychofIntelNew.pdf""" - version: int = 2 - exclusive: bool = False - predicates: List[ExtendedEventTaxonomyPredicate] = [] - competitive_analysis_entries: List[ExtendedEventTaxonomyCompetitiveAnalysisEntry] = [] - extended_analysis_entries: List[ExtendedEventTaxonomyExtendedAnalysisEntry] = [] - chunked_event_entries: List[ExtendedEventTaxonomyChunkedEventEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/failure_mode_in_machine_learning.py b/src/openmisp/models/taxonomies/failure_mode_in_machine_learning.py deleted file mode 100644 index 422d68a..0000000 --- a/src/openmisp/models/taxonomies/failure_mode_in_machine_learning.py +++ /dev/null @@ -1,55 +0,0 @@ -"""Taxonomy model for Failure mode in machine learning..""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class FailureModeInMachineLearningTaxonomyPredicate(str, Enum): - INTENTIONALLY_MOTIVATED_FAILURES_SUMMARY = "intentionally-motivated-failures-summary" - UNINTENDED_FAILURES_SUMMARY = "unintended-failures-summary" - - -class FailureModeInMachineLearningTaxonomyIntentionallyMotivatedFailuresSummaryEntry(str, Enum): - T_1_PERTURBATION_ATTACK = "1-perturbation-attack" - T_2_POISONING_ATTACK = "2-poisoning-attack" - T_3_MODEL_INVERSION = "3-model-inversion" - T_4_MEMBERSHIP_INFERENCE = "4-membership-inference" - T_5_MODEL_STEALING = "5-model-stealing" - T_6_REPROGRAMMING_ML_SYSTEM = "6-reprogramming-ML-system" - T_7_ADVERSARIAL_EXAMPLE_IN_PHYSICAL_DOMAIN = "7-adversarial-example-in-physical-domain" - T_8_MALICIOUS_ML_PROVIDER_RECOVERING_TRAINING_DATA = "8-malicious-ML-provider-recovering-training-data" - T_9_ATTACKING_THE_ML_SUPPLY_CHAIN = "9-attacking-the-ML-supply-chain" - T_10_BACKDOOR_ML = "10-backdoor-ML" - T_10_EXPLOIT_SOFTWARE_DEPENDENCIES = "10-exploit-software-dependencies" - - -class FailureModeInMachineLearningTaxonomyUnintendedFailuresSummaryEntry(str, Enum): - T_12_REWARD_HACKING = "12-reward-hacking" - T_13_SIDE_EFFECTS = "13-side-effects" - T_14_DISTRIBUTIONAL_SHIFTS = "14-distributional-shifts" - T_15_NATURAL_ADVERSARIAL_EXAMPLES = "15-natural-adversarial-examples" - T_16_COMMON_CORRUPTION = "16-common-corruption" - T_17_INCOMPLETE_TESTING = "17-incomplete-testing" - - -class FailureModeInMachineLearningTaxonomy(BaseModel): - """Model for the Failure mode in machine learning. taxonomy.""" - - namespace: str = "failure-mode-in-machine-learning" - description: str = """The purpose of this taxonomy is to jointly tabulate both the of these failure modes in a single place. Intentional failures wherein the failure is caused by an active adversary attempting to subvert the system to attain her goals – either to misclassify the result, infer private training data, or to steal the underlying algorithm. Unintentional failures wherein the failure is because an ML system produces a formally correct but completely unsafe outcome.""" - version: int = 1 - exclusive: bool = False - predicates: List[FailureModeInMachineLearningTaxonomyPredicate] = [] - intentionally_motivated_failures_summary_entries: List[ - FailureModeInMachineLearningTaxonomyIntentionallyMotivatedFailuresSummaryEntry - ] = [] - unintended_failures_summary_entries: List[FailureModeInMachineLearningTaxonomyUnintendedFailuresSummaryEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/false_positive.py b/src/openmisp/models/taxonomies/false_positive.py deleted file mode 100644 index f2580f4..0000000 --- a/src/openmisp/models/taxonomies/false_positive.py +++ /dev/null @@ -1,42 +0,0 @@ -"""Taxonomy model for False positive.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class FalsePositiveTaxonomyPredicate(str, Enum): - RISK = "risk" - CONFIRMED = "confirmed" - - -class FalsePositiveTaxonomyRiskEntry(str, Enum): - LOW = "low" - MEDIUM = "medium" - HIGH = "high" - CANNOT_BE_JUDGED = "cannot-be-judged" - - -class FalsePositiveTaxonomyConfirmedEntry(str, Enum): - TRUE = "true" - FALSE = "false" - - -class FalsePositiveTaxonomy(BaseModel): - """Model for the False positive taxonomy.""" - - namespace: str = "false-positive" - description: str = """This taxonomy aims to ballpark the expected amount of false positives.""" - version: int = 7 - exclusive: bool = False - predicates: List[FalsePositiveTaxonomyPredicate] = [] - risk_entries: List[FalsePositiveTaxonomyRiskEntry] = [] - confirmed_entries: List[FalsePositiveTaxonomyConfirmedEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/file_type.py b/src/openmisp/models/taxonomies/file_type.py deleted file mode 100644 index dd369b1..0000000 --- a/src/openmisp/models/taxonomies/file_type.py +++ /dev/null @@ -1,174 +0,0 @@ -"""Taxonomy model for file-type.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class FileTypeTaxonomyPredicate(str, Enum): - TYPE = "type" - - -class FileTypeTaxonomyTypeEntry(str, Enum): - PEEXE = "peexe" - PEDLL = "pedll" - NEEXE = "neexe" - NEDLL = "nedll" - MZ = "mz" - MSI = "msi" - COM = "com" - COFF = "coff" - ELF = "elf" - KRNL = "krnl" - RPM = "rpm" - LINUX = "linux" - MACHO = "macho" - ELF32 = "elf32" - ELF64 = "elf64" - ELFSO = "elfso" - PEEXE32 = "peexe32" - PEEXE64 = "peexe64" - ASSEMBLY = "assembly" - HTML = "html" - XML = "xml" - HTA = "hta" - FLASH = "flash" - FLA = "fla" - IECOOKIE = "iecookie" - BITTORRENT = "bittorrent" - EMAIL = "email" - OUTLOOK = "outlook" - CAP = "cap" - SYMBIAN = "symbian" - PALMOS = "palmos" - WINCE = "wince" - ANDROID = "android" - IPHONE = "iphone" - JPEG = "jpeg" - EMF = "emf" - TIFF = "tiff" - GIF = "gif" - PNG = "png" - BMP = "bmp" - GIMP = "gimp" - IMG = "img" - INDESIGN = "indesign" - PSD = "psd" - TARGA = "targa" - XWS = "xws" - DIB = "dib" - JNG = "jng" - ICO = "ico" - FPX = "fpx" - EPS = "eps" - SVG = "svg" - OGG = "ogg" - FLC = "flc" - FLI = "fli" - MP3 = "mp3" - FLAC = "flac" - WAV = "wav" - MIDI = "midi" - AVI = "avi" - MPEG = "mpeg" - QT = "qt" - ASF = "asf" - DIVX = "divx" - FLV = "flv" - WMA = "wma" - WMV = "wmv" - RM = "rm" - MOV = "mov" - MP4 = "mp4" - T_3GP = "3gp" - TEXT = "text" - PDF = "pdf" - PS = "ps" - DOT = "dot" - DOTM = "dotm" - DOTX = "dotx" - DOC = "doc" - TXT = "txt" - DOCM = "docm" - DOCX = "docx" - RTF = "rtf" - PPT = "ppt" - PPTX = "pptx" - XLS = "xls" - XLSX = "xlsx" - XLSM = "xlsm" - ODP = "odp" - ODS = "ods" - ODT = "odt" - HWP = "hwp" - GUL = "gul" - EBOOK = "ebook" - LATEX = "latex" - ISOIMAGE = "isoimage" - TXZ = "txz" - ZIP = "zip" - GZIP = "gzip" - TAR = "tar" - BZIP = "bzip" - RZIP = "rzip" - DZIP = "dzip" - T_7ZIP = "7zip" - CAB = "cab" - JAR = "jar" - RAR = "rar" - MSCOMPRESS = "mscompress" - ACE = "ace" - ARC = "arc" - ARJ = "arj" - ASD = "asd" - BLACKHOLE = "blackhole" - KGB = "kgb" - XZ = "xz" - BAT = "bat" - SCRIPT = "script" - PHP = "php" - PYTHON = "python" - PERL = "perl" - RUBY = "ruby" - C = "c" - CPP = "cpp" - JAVASCRIPT = "javascript" - JAVA = "java" - SHELL = "shell" - PASCAL = "pascal" - VBS = "vbs" - AWK = "awk" - DYALOG = "dyalog" - FORTRAN = "fortran" - JAVA_BYTECODE = "java-bytecode" - PPA = "ppa" - APPLE = "apple" - MAC = "mac" - APPLESINGLE = "applesingle" - APPLEDOUBLE = "appledouble" - MACHFS = "machfs" - APPLEPLIST = "appleplist" - MACLIB = "maclib" - LNK = "lnk" - TTF = "ttf" - ROM = "rom" - DAT = "dat" - - -class FileTypeTaxonomy(BaseModel): - """Model for the file-type taxonomy.""" - - namespace: str = "file-type" - description: str = """List of known file types.""" - version: int = 1 - exclusive: bool = False - predicates: List[FileTypeTaxonomyPredicate] = [] - type_entries: List[FileTypeTaxonomyTypeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/financial.py b/src/openmisp/models/taxonomies/financial.py deleted file mode 100644 index 3931a73..0000000 --- a/src/openmisp/models/taxonomies/financial.py +++ /dev/null @@ -1,79 +0,0 @@ -"""Taxonomy model for Financial.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class FinancialTaxonomyPredicate(str, Enum): - CATEGORIES_AND_TYPES_OF_SERVICES = "categories-and-types-of-services" - GEOGRAPHICAL_FOOTPRINT = "geographical-footprint" - ONLINE_EXPOSITION = "online-exposition" - PHYSICAL_PRESENCE = "physical-presence" - SERVICES = "services" - - -class FinancialTaxonomyCategoriesAndTypesOfServicesEntry(str, Enum): - BANKING = "banking" - PRIVATE = "private" - RETAIL = "retail" - CUSTODIAN_BANKING = "custodian-banking" - FINANCIAL_MARKET_INFRASTRUCTURE = "financial-market-infrastructure" - ASSET_MANAGEMENT = "asset-management" - IT_PROVIDER = "it-provider" - E_MONEY_AND_PAYMENT = "e-money-and-payment" - OTHER = "other" - - -class FinancialTaxonomyGeographicalFootprintEntry(str, Enum): - CLIENT_COVERAGE_LOCAL = "client-coverage-local" - CLIENT_COVERAGE_EU = "client-coverage-eu" - CLIENT_COVERAGE_WORLDWIDE = "client-coverage-worldwide" - CORPORATE_STRUCTURE_LOCAL = "corporate-structure-local" - CORPORATE_STRUCTURE_EU = "corporate-structure-eu" - CORPORATE_STRUCTURE_WORLDWIDE = "corporate-structure-worldwide" - - -class FinancialTaxonomyOnlineExpositionEntry(str, Enum): - LIMITED = "limited" - EXTENDED = "extended" - CRUCIAL = "crucial" - - -class FinancialTaxonomyPhysicalPresenceEntry(str, Enum): - ATM = "atm" - POS = "pos" - - -class FinancialTaxonomyServicesEntry(str, Enum): - SETTLEMENT = "settlement" - COLLATERAL_MANAGEMENT = "collateral-management" - LISTING_OPERATION_OF_TRADING_PLATFORM = "listing-operation-of-trading-platform" - CREDIT_GRANTING = "credit-granting" - DEPOSIT_MANAGEMENT = "deposit-management" - CUSTODIAN_BANKING = "custodian-banking" - PAYMENT_SERVICES = "payment-services" - INVESTMENT_SERVICES = "investment-services" - - -class FinancialTaxonomy(BaseModel): - """Model for the Financial taxonomy.""" - - namespace: str = "financial" - description: str = """Financial taxonomy to describe financial services, infrastructure and financial scope.""" - version: int = 7 - exclusive: bool = False - predicates: List[FinancialTaxonomyPredicate] = [] - categories_and_types_of_services_entries: List[FinancialTaxonomyCategoriesAndTypesOfServicesEntry] = [] - geographical_footprint_entries: List[FinancialTaxonomyGeographicalFootprintEntry] = [] - online_exposition_entries: List[FinancialTaxonomyOnlineExpositionEntry] = [] - physical_presence_entries: List[FinancialTaxonomyPhysicalPresenceEntry] = [] - services_entries: List[FinancialTaxonomyServicesEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/flesch_reading_ease.py b/src/openmisp/models/taxonomies/flesch_reading_ease.py deleted file mode 100644 index 4945355..0000000 --- a/src/openmisp/models/taxonomies/flesch_reading_ease.py +++ /dev/null @@ -1,38 +0,0 @@ -"""Taxonomy model for flesch-reading-ease.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class FleschReadingEaseTaxonomyPredicate(str, Enum): - SCORE = "score" - - -class FleschReadingEaseTaxonomyScoreEntry(str, Enum): - T_90_100 = "90-100" - T_80_89 = "80-89" - T_70_79 = "70-79" - T_60_69 = "60-69" - T_50_59 = "50-59" - T_30_49 = "30-49" - T_0_29 = "0-29" - - -class FleschReadingEaseTaxonomy(BaseModel): - """Model for the flesch-reading-ease taxonomy.""" - - namespace: str = "flesch-reading-ease" - description: str = """Flesch Reading Ease is a revised system for determining the comprehension difficulty of written material. The scoring of the flesh score can have a maximum of 121.22 and there is no limit on how low a score can be (negative score are valid).""" - version: int = 2 - exclusive: bool = True - predicates: List[FleschReadingEaseTaxonomyPredicate] = [] - score_entries: List[FleschReadingEaseTaxonomyScoreEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/fpf.py b/src/openmisp/models/taxonomies/fpf.py deleted file mode 100644 index 250ae86..0000000 --- a/src/openmisp/models/taxonomies/fpf.py +++ /dev/null @@ -1,56 +0,0 @@ -"""Taxonomy model for fpf.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class FpfTaxonomyPredicate(str, Enum): - DEGREES_OF_IDENTIFIABILITY = "degrees-of-identifiability" - PSEUDONYMOUS_DATA = "pseudonymous-data" - DE_IDENTIFIED_DATA = "de-identified-data" - ANONYMOUS_DATA = "anonymous-data" - - -class FpfTaxonomyDegreesOfIdentifiabilityEntry(str, Enum): - EXPLICITLY_PERSONAL = "explicitly-personal" - POTENTIALLY_IDENTIFIABLE = "potentially-identifiable" - NOT_READILY_IDENTIFIABLE = "not-readily-identifiable" - - -class FpfTaxonomyPseudonymousDataEntry(str, Enum): - KEY_CODED = "key-coded" - PSEUDONYMOUS = "pseudonymous" - PROTECTED_PSEUDONYMOUS = "protected-pseudonymous" - - -class FpfTaxonomyDeIdentifiedDataEntry(str, Enum): - DE_IDENTIFIED = "de-identified" - PROTECTED_DE_IDENTIFIED = "protected-de-identified" - - -class FpfTaxonomyAnonymousDataEntry(str, Enum): - ANONYMOUS = "anonymous" - AGGREGATED_ANONYMOUS = "aggregated-anonymous" - - -class FpfTaxonomy(BaseModel): - """Model for the fpf taxonomy.""" - - namespace: str = "fpf" - description: str = """The Future of Privacy Forum (FPF) [visual guide to practical de-identification](https://fpf.org/2016/04/25/a-visual-guide-to-practical-data-de-identification/) taxonomy is used to evaluate the degree of identifiability of personal data and the types of pseudonymous data, de-identified data and anonymous data. The work of FPF is licensed under a creative commons attribution 4.0 international license.""" - version: int = 0 - exclusive: bool = False - predicates: List[FpfTaxonomyPredicate] = [] - degrees_of_identifiability_entries: List[FpfTaxonomyDegreesOfIdentifiabilityEntry] = [] - pseudonymous_data_entries: List[FpfTaxonomyPseudonymousDataEntry] = [] - de_identified_data_entries: List[FpfTaxonomyDeIdentifiedDataEntry] = [] - anonymous_data_entries: List[FpfTaxonomyAnonymousDataEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/fr_classif.py b/src/openmisp/models/taxonomies/fr_classif.py deleted file mode 100644 index 88b56c3..0000000 --- a/src/openmisp/models/taxonomies/fr_classif.py +++ /dev/null @@ -1,46 +0,0 @@ -"""Taxonomy model for fr-classif.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class FrClassifTaxonomyPredicate(str, Enum): - CLASSIFIEES = "classifiees" - NON_CLASSIFIEES = "non-classifiees" - SPECIAL_FRANCE = "special-france" - - -class FrClassifTaxonomyClassifieesEntry(str, Enum): - TRES_SECRET = "TRES_SECRET" - SECRET = "SECRET" - - -class FrClassifTaxonomyNonClassifieesEntry(str, Enum): - DIFFUSION_RESTREINTE = "DIFFUSION_RESTREINTE" - NON_PROTEGE = "NON-PROTEGE" - - -class FrClassifTaxonomySpecialFranceEntry(str, Enum): - SPECIAL_FRANCE = "SPECIAL_FRANCE" - - -class FrClassifTaxonomy(BaseModel): - """Model for the fr-classif taxonomy.""" - - namespace: str = "fr-classif" - description: str = """French gov information classification system""" - version: int = 6 - exclusive: bool = False - predicates: List[FrClassifTaxonomyPredicate] = [] - classifiees_entries: List[FrClassifTaxonomyClassifieesEntry] = [] - non_classifiees_entries: List[FrClassifTaxonomyNonClassifieesEntry] = [] - special_france_entries: List[FrClassifTaxonomySpecialFranceEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/gdpr.py b/src/openmisp/models/taxonomies/gdpr.py deleted file mode 100644 index 0c35d1f..0000000 --- a/src/openmisp/models/taxonomies/gdpr.py +++ /dev/null @@ -1,39 +0,0 @@ -"""Taxonomy model for gdpr.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class GdprTaxonomyPredicate(str, Enum): - SPECIAL_CATEGORIES = "special-categories" - - -class GdprTaxonomySpecialCategoriesEntry(str, Enum): - RACIAL_OR_ETHNIC_ORIGIN = "racial-or-ethnic-origin" - POLITICAL_OPINIONS = "political-opinions" - RELIGIOUS_OR_PHILOSOPHICAL_BELIEFS = "religious-or-philosophical-beliefs" - TRADE_UNION_MEMBERSHIP = "trade-union-membership" - GENETIC_DATA = "genetic-data" - BIOMETRIC_DATA = "biometric-data" - HEALTH = "health" - SEX_LIFE_OR_SEXUAL_ORIENTATION = "sex-life-or-sexual-orientation" - - -class GdprTaxonomy(BaseModel): - """Model for the gdpr taxonomy.""" - - namespace: str = "gdpr" - description: str = """Taxonomy related to the REGULATION (EU) 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)""" - version: int = 0 - exclusive: bool = False - predicates: List[GdprTaxonomyPredicate] = [] - special_categories_entries: List[GdprTaxonomySpecialCategoriesEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/gea_nz_activities.py b/src/openmisp/models/taxonomies/gea_nz_activities.py deleted file mode 100644 index 038501c..0000000 --- a/src/openmisp/models/taxonomies/gea_nz_activities.py +++ /dev/null @@ -1,277 +0,0 @@ -"""Taxonomy model for gea-nz-activities.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class GeaNzActivitiesTaxonomyPredicate(str, Enum): - CASES_COMPLIANCE = "cases-compliance" - CASES_PROCEEDING = "cases-proceeding" - CASES_EPISODE = "cases-episode" - CASES_COMMISSION_OF_INQUIRY = "cases-commission-of-inquiry" - CASES_CLAIM = "cases-claim" - CASES_REQUEST = "cases-request" - CASES_ORDER = "cases-order" - EVENTS_PERSONAL = "events-personal" - EVENTS_CRISIS = "events-crisis" - EVENTS_SOCIAL = "events-social" - EVENTS_BUSINESS = "events-business" - EVENTS_TRADE = "events-trade" - EVENTS_TRAVEL = "events-travel" - EVENTS_ENVIRONMENTAL = "events-environmental" - EVENTS_UNCONTROLLED = "events-uncontrolled" - EVENTS_INTERACTION = "events-interaction" - SERVICES_FRANCE_SOCIETY = "services-france-society" - SERVICES_INVIDUALS___COMMUNITIES = "services-inviduals-&-communities" - SERVICES_SERVICES_TO_BUSINESS = "services-services-to-business" - SERVICES_CIVIC_INFRASTRUCTURE = "services-civic-infrastructure" - SERVICES_GOVERNMENT_ADMINISTRATION = "services-government-administration" - SERVICES_SERVICES_FROM_BUSINESS = "services-services-from-business" - - -class GeaNzActivitiesTaxonomyCasesComplianceEntry(str, Enum): - ASSESSMENT = "assessment" - AUDIT = "audit" - INSPECTION = "inspection" - INVESTIGATION = "investigation" - REVIEW = "review" - - -class GeaNzActivitiesTaxonomyCasesProceedingEntry(str, Enum): - BREACH = "breach" - FINE = "fine" - FRAUD = "fraud" - OFFENCE = "offence" - - -class GeaNzActivitiesTaxonomyCasesEpisodeEntry(str, Enum): - DEFECT = "defect" - EMERGENCY = "emergency" - ERROR = "error" - FAULT = "fault" - HISTORY = "history" - INCIDENT = "incident" - ISSUE = "issue" - PROBLEM = "problem" - CRIME = "crime" - INFRIGEMENT = "infrigement" - - -class GeaNzActivitiesTaxonomyCasesClaimEntry(str, Enum): - CLAIM_OF_DEFINITION = "claim-of-definition" - CLAIM_OF_CAUSE = "claim-of-cause" - CLAIM_OF_VALUE = "claim-of-value" - CLAIM_OF_POLICY = "claim-of-policy" - CLAIM_OF_FACT = "claim-of-fact" - - -class GeaNzActivitiesTaxonomyCasesRequestEntry(str, Enum): - REQUEST_FOR_INFORMATION = "request-for-information" - REQUEST_FOR_PROPOSAL = "request-for-proposal" - REQUEST_FOR_QUOTATION = "request-for-quotation" - REQUEST_FOR_TENDER = "request-for-tender" - REQUEST_FOR_APPROVAL = "request-for-approval" - REQUEST_FOR_COMMENTS = "request-for-comments" - ORDER = "order" - - -class GeaNzActivitiesTaxonomyEventsPersonalEntry(str, Enum): - BIRTH = "birth" - STARTING_SCHOOL = "starting-school" - ADOPTION = "adoption" - MARRIAGE = "marriage" - SENIOR_CITIZENSHIP = "senior-citizenship" - CARE = "care" - DEATH = "death" - FOSTERING = "fostering" - ENROL_TO_VOTE = "enrol-to-vote" - VOLUNTEERING = "volunteering" - DRIVER_S_LICENCE = "driver's-licence" - - -class GeaNzActivitiesTaxonomyEventsCrisisEntry(str, Enum): - VICTIM_OF_A_CRIME = "victim-of-a-crime" - WITNESS_OF_A_CRIME = "witness-of-a-crime" - HEALTH = "health" - EMERGENCY = "emergency" - ACCUSED = "accused" - CONVICTED = "convicted" - - -class GeaNzActivitiesTaxonomyEventsSocialEntry(str, Enum): - CEREMONY = "ceremony" - CONFERENCE = "conference" - CONCERT = "concert" - SPORTING_EVENT = "sporting-event" - PROTEST = "protest" - FESTIVAL = "festival" - - -class GeaNzActivitiesTaxonomyEventsBusinessEntry(str, Enum): - SEED_CAPITAL = "seed-capital" - START_UP = "start-up" - HIRING = "hiring" - TERMINATION_OF_EMPLOYMENT = "termination-of-employment" - MERGE = "merge" - DEMERGE = "demerge" - STOCK_EXCHANGE_LISTING = "stock-exchange-listing" - STOCK_EXCHANGE_DELISTING = "stock-exchange-delisting" - CHANGE_NAME = "change-name" - BANKRUPTCY = "bankruptcy" - CEASE = "cease" - - -class GeaNzActivitiesTaxonomyEventsTradeEntry(str, Enum): - BUYING = "buying" - SELLING = "selling" - IMPORTING = "importing" - EXPORTING = "exporting" - RENTING = "renting" - - -class GeaNzActivitiesTaxonomyEventsTravelEntry(str, Enum): - TRAVELLING_OVERSEAS = "travelling-overseas" - EXTENDED_STAY_IN_FRANCE = "extended-stay-in-france" - - -class GeaNzActivitiesTaxonomyEventsEnvironmentalEntry(str, Enum): - ATMOSPHERIC = "atmospheric" - ELEMENTAL = "elemental" - GEOLOGICAL = "geological" - SEASONAL = "seasonal" - - -class GeaNzActivitiesTaxonomyEventsUncontrolledEntry(str, Enum): - ACCIDENT = "accident" - ATTACK = "attack" - FAILURE = "failure" - OTHER = "other" - - -class GeaNzActivitiesTaxonomyEventsInteractionEntry(str, Enum): - CHANNEL = "channel" - MEDIUM = "medium" - INTERACTION_TYPE = "interaction-type" - - -class GeaNzActivitiesTaxonomyServicesFranceSocietyEntry(str, Enum): - BORDER_CONTROL = "border-control" - CULTURE_AND_HERITAGE = "culture-and-heritage" - DEFENCE = "defence" - ECONOMIC_SERVICE = "economic-service" - ENVIRONMENT = "environment" - FINANCIAL_TRANSACTION_WITH_GOVERNMENT = "financial-transaction-with-government" - INTERNATIONAL_RELATIONSHIP = "international-relationship" - JUSTICE = "justice" - FRANCE_SOCIETY = "france-society" - NATURAL_RESOURCES = "natural-resources" - OPEN_GOVERNMENT = "open-government" - REGULATORY_COMPLIANCE_AND_ENFORCEMENT = "regulatory-compliance-and-enforcement" - SCIENCE_AND_RESEARCH = "science-and-research" - SECURITY = "security" - STATISTICAL_SERVICES = "statistical-services" - - -class GeaNzActivitiesTaxonomyServicesInvidualsCommunitiesEntry(str, Enum): - ADOPTING_AND_FOSTERING = "adopting-and-fostering" - BIRTHS_DEATHS_AND_MARRIAGES = "births-deaths-and-marriages" - CITIZENSHIP_AND_IMMIGRATION = "citizenship-and-immigration" - COMMUNITY_SUPPORT = "community-support" - EDUCATION_AND_TRAINING = "education-and-training" - EMERGENCY_AND_DISASTER_PREPAREDNESS = "emergency-and-disaster-preparedness" - INFORMATION_FROM_CITIZENS = "information-from-citizens" - HEALTH_CARE = "health-care" - PASSPORT_TRAVEL_AND_TOURISM = "passport-travel-and-tourism" - SPORT_AND_RECREATION = "sport-and-recreation" - WORK_AND_JOBS = "work-and-jobs" - - -class GeaNzActivitiesTaxonomyServicesServicesToBusinessEntry(str, Enum): - BUSINESS_DEVELOPMENT = "business-development" - BUSINESS_SUPPORT = "business-support" - COMMERCIAL_SPORT = "commercial-sport" - EMPLOYMENT = "employment" - PRIMAL_INDUSTRIES = "primal-industries" - TOURISM = "tourism" - TRADE = "trade" - - -class GeaNzActivitiesTaxonomyServicesCivicInfrastructureEntry(str, Enum): - CIVIC_MANAGEMENT = "civic-management" - COMMUNICATIONS = "communications" - ESSENTIAL_SERVICES = "essential-services" - MARITIME_SERVICES = "maritime-services" - PUBLIC_HOUSING = "public-housing" - REGIONAL_DEVELOPMENT = "regional-development" - TRANSPORT = "transport" - - -class GeaNzActivitiesTaxonomyServicesGovernmentAdministrationEntry(str, Enum): - GOVERNMENT_ADMINISTRATION_MANAGEMENT = "government-administration-management" - GOVERNMENT_BUSINESS_MANAGEMENT = "government-business-management" - GOVERNMENT_CREDIT_AND_INSURANCE = "government-credit-and-insurance" - GOVERNMENT_FINANCIAL_MANAGEMENT = "government-financial-management" - GOVERNMENT_HUMAN_RESSOURCE_MANAGEMENT = "government-human-ressource-management" - GOVERNMENT_ICT_MANAGEMENT = "government-ict-management" - GOVERNMENT_INFORMATION_AND_KNOWLEDGE_MANAGEMENT = "government-information-and-knowledge-management" - GOVERNMENT_STRATEGY_PLANNING_AND_BUDGETING = "government-strategy-planning-and-budgeting" - MACHINERY_OF_GOVERNMENT = "machinery-of-government" - - -class GeaNzActivitiesTaxonomyServicesServicesFromBusinessEntry(str, Enum): - ADVERTISING = "advertising" - BUSINESS_MANAGEMENT = "business-management" - INSURANCE = "insurance" - FINANCIAL_SERVICE = "financial-service" - REAL_ESTATE_AFFAIRS = "real-estate-affairs" - BUILDING_CONSTRUCTION = "building-construction" - TELECOMMUNICATION = "telecommunication" - TRANSPORTATION = "transportation" - PACKAGING_AND_STORAGE_OF_GOODS = "packaging-and-storage-of-goods" - TRAVEL_ARRANGEMENT = "travel-arrangement" - TREATMENT_OF_MATERIAL = "treatment-of-material" - PROVIDING_TRAINING = "providing-training" - ENTERTAINMENT = "entertainment" - SCIENTIFIC_SERVICE = "scientific-service" - PROVIDING_FOOD_DRINK_AND_ACCOMODATION = "providing-food-drink-and-accomodation" - MEDICAL_SERVICE = "medical-service" - LEGAL_SERVICE = "legal-service" - - -class GeaNzActivitiesTaxonomy(BaseModel): - """Model for the gea-nz-activities taxonomy.""" - - namespace: str = "gea-nz-activities" - description: str = """Information needed to track or monitor moments, periods or events that occur over time. This type of information is focused on occurrences that must be tracked for business reasons or represent a specific point in the evolution of ‘The Business’.""" - version: int = 1 - exclusive: bool = False - predicates: List[GeaNzActivitiesTaxonomyPredicate] = [] - cases_compliance_entries: List[GeaNzActivitiesTaxonomyCasesComplianceEntry] = [] - cases_proceeding_entries: List[GeaNzActivitiesTaxonomyCasesProceedingEntry] = [] - cases_episode_entries: List[GeaNzActivitiesTaxonomyCasesEpisodeEntry] = [] - cases_claim_entries: List[GeaNzActivitiesTaxonomyCasesClaimEntry] = [] - cases_request_entries: List[GeaNzActivitiesTaxonomyCasesRequestEntry] = [] - events_personal_entries: List[GeaNzActivitiesTaxonomyEventsPersonalEntry] = [] - events_crisis_entries: List[GeaNzActivitiesTaxonomyEventsCrisisEntry] = [] - events_social_entries: List[GeaNzActivitiesTaxonomyEventsSocialEntry] = [] - events_business_entries: List[GeaNzActivitiesTaxonomyEventsBusinessEntry] = [] - events_trade_entries: List[GeaNzActivitiesTaxonomyEventsTradeEntry] = [] - events_travel_entries: List[GeaNzActivitiesTaxonomyEventsTravelEntry] = [] - events_environmental_entries: List[GeaNzActivitiesTaxonomyEventsEnvironmentalEntry] = [] - events_uncontrolled_entries: List[GeaNzActivitiesTaxonomyEventsUncontrolledEntry] = [] - events_interaction_entries: List[GeaNzActivitiesTaxonomyEventsInteractionEntry] = [] - services_france_society_entries: List[GeaNzActivitiesTaxonomyServicesFranceSocietyEntry] = [] - services_inviduals___communities_entries: List[GeaNzActivitiesTaxonomyServicesInvidualsCommunitiesEntry] = [] - services_services_to_business_entries: List[GeaNzActivitiesTaxonomyServicesServicesToBusinessEntry] = [] - services_civic_infrastructure_entries: List[GeaNzActivitiesTaxonomyServicesCivicInfrastructureEntry] = [] - services_government_administration_entries: List[GeaNzActivitiesTaxonomyServicesGovernmentAdministrationEntry] = [] - services_services_from_business_entries: List[GeaNzActivitiesTaxonomyServicesServicesFromBusinessEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/gea_nz_entities.py b/src/openmisp/models/taxonomies/gea_nz_entities.py deleted file mode 100644 index 5d6d31c..0000000 --- a/src/openmisp/models/taxonomies/gea_nz_entities.py +++ /dev/null @@ -1,227 +0,0 @@ -"""Taxonomy model for gea-nz-entities.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class GeaNzEntitiesTaxonomyPredicate(str, Enum): - PARTIES_PARTY = "parties-party" - PARTIES_QUALIFICATION = "parties-qualification" - PARTIES_ROLE = "parties-role" - PARTIES_PARTY_RELATIONSHIP = "parties-party-relationship" - PLACES_ADDRESS = "places-address" - PLACES_LOCATION_TYPE = "places-location-type" - PLACES_ADDRESS_TYPE = "places-address-type" - PLACES_PURPOSE_OF_LOCATION = "places-purpose-of-location" - ITEMS_APPLICATION___ICT_SERVICES = "items-application-&-ict-services" - ITEMS_ICT_INFRASTRUCTURE = "items-ict-infrastructure" - ITEMS_NATURAL = "items-natural" - ITEMS_FINANCIAL = "items-financial" - ITEMS_GOODS = "items-goods" - ITEMS_REGULATORY = "items-regulatory" - ITEMS_URBAN_INFRASTRUCTURE = "items-urban-infrastructure" - ITEMS_ACCOMMODATION = "items-accommodation" - ITEMS_DWELLING_TYPE = "items-dwelling-type" - ITEMS_ARTEFACT = "items-artefact" - ITEMS_WASTE = "items-waste" - ITEMS_ITEM_USAGE = "items-item-usage" - ITEMS_OTHER_ITEM = "items-other-item" - - -class GeaNzEntitiesTaxonomyPartiesPartyEntry(str, Enum): - ORGANISATION = "organisation" - INDIVIDUAL = "individual" - - -class GeaNzEntitiesTaxonomyPartiesQualificationEntry(str, Enum): - COMPETENCE = "competence" - EDUCATION = "education" - INDUSTRY = "industry" - OCCUPATION = "occupation" - - -class GeaNzEntitiesTaxonomyPartiesRoleEntry(str, Enum): - COMMERCE = "commerce" - LEGAL = "legal" - OF_INTEREST = "of-interest" - SOCIAL = "social" - - -class GeaNzEntitiesTaxonomyPartiesPartyRelationshipEntry(str, Enum): - MEMBERSHIP = "membership" - EMPLOYER = "employer" - PROVIDER = "provider" - DELEGATION = "delegation" - - -class GeaNzEntitiesTaxonomyPlacesAddressEntry(str, Enum): - ELECTRONIC_ADDRESS = "electronic-address" - PHYSICAL_ADDRESS = "physical-address" - - -class GeaNzEntitiesTaxonomyPlacesLocationTypeEntry(str, Enum): - GEOPOLITICAL = "geopolitical" - GEOSPATIAL = "geospatial" - - -class GeaNzEntitiesTaxonomyPlacesAddressTypeEntry(str, Enum): - NZ_STANDARD_ADDRESSS = "nz-standard-addresss" - PO_BOX = "po-box" - RURAL_DELIVERY_ADDRESS = "rural-delivery-address" - OVEARSEAS_ADDRESS = "ovearseas-address" - LOCATION_ADDRESSS = "location-addresss" - - -class GeaNzEntitiesTaxonomyPlacesPurposeOfLocationEntry(str, Enum): - RESIDENCY = "residency" - DELIVERY = "delivery" - BILLING = "billing" - PLACE_OF_BIRTH = "place-of-birth" - CONSULTATION = "consultation" - REFERRAL = "referral" - ADMISSION = "admission" - TREATMENT = "treatment" - WORK_PLACE = "work-place" - FACILITY_LOCATION = "facility-location" - STORAGE = "storage" - PLACE_OF_EVENT = "place-of-event" - - -class GeaNzEntitiesTaxonomyItemsApplicationIctServicesEntry(str, Enum): - CORPORATE_APPLICATION = "corporate-application" - COMMON_LINE_OF_BUSINESS_APPLICATION = "common-line-of-business-application" - END_USER_COMPUTING = "end-user-computing" - DATA_AND_INFORMATION_MANAGEMENT = "data-and-information-management" - IDENTITY_AND_ACCESD_MANAGEMENT = "identity-and-accesd-management" - SECURITY_SERVICE = "security-service" - ICT_COMPONENTS_SERVICES_AND_TOOLS = "ict-components-services-and-tools" - INTERFACE_AND_INTEGRATION = "interface-and-integration" - - -class GeaNzEntitiesTaxonomyItemsIctInfrastructureEntry(str, Enum): - PLATFORM = "platform" - NETWORK = "network" - FACILITY = "facility" - END_USER_EQUIPMENT = "end-user-equipment" - - -class GeaNzEntitiesTaxonomyItemsNaturalEntry(str, Enum): - AIR = "air" - FAUNA = "fauna" - FLORA = "flora" - LAND = "land" - MINERALS = "minerals" - WATER = "water" - ENERGY = "energy" - - -class GeaNzEntitiesTaxonomyItemsFinancialEntry(str, Enum): - ALLOWANCE = "allowance" - AWARD = "award" - BENEFIT = "benefit" - BONUS = "bonus" - COMPENSATION = "compensation" - CONCESSION = "concession" - GRANT = "grant" - PENSION = "pension" - SUBSIDY = "subsidy" - WAGE = "wage" - BOND = "bond" - DUTY = "duty" - EXCISE = "excise" - INSURANCE = "insurance" - LOAN = "loan" - TAX = "tax" - - -class GeaNzEntitiesTaxonomyItemsGoodsEntry(str, Enum): - CHEMICAL = "chemical" - PAINT = "paint" - BLEACH = "bleach" - INDUSTRIAL_OIL = "industrial-oil" - PHARMACEUTICAL_PREPARATION = "pharmaceutical-preparation" - COMMON_METAL = "common-metal" - MACHINE = "machine" - HAND_TOOL = "hand-tool" - SCIENTIFIC_APPARATUS_AND_INSTRUMENT = "scientific-apparatus-and-instrument" - MEDICAL_APPARATUS_AND_INSTRUMENT = "medical-apparatus-and-instrument" - ELECTRICAL_APPARATUS = "electrical-apparatus" - VEHICLE = "vehicle" - FIREARM = "firearm" - PRECIOUS_METAL = "precious-metal" - MUSICAL_INSTRUMENT = "musical-instrument" - PAPER = "paper" - RUBBER_GOOD = "rubber-good" - LEATHER = "leather" - BUILDING_MATERIAL = "building-material" - FURNITURE = "furniture" - HOUSEHOLD_UTENSIL = "household-utensil" - ROPE = "rope" - YARN = "yarn" - TEXTILE = "textile" - CLOTHING = "clothing" - LACE = "lace" - CARPET = "carpet" - TOY = "toy" - FOOD = "food" - LIQUID_FOOD = "liquid-food" - AGRICULTURAL_PRODUCT = "agricultural-product" - BEVERAGES = "beverages" - ALCOHOLIC_BEVERAGE = "alcoholic-beverage" - TOBACCO = "tobacco" - - -class GeaNzEntitiesTaxonomyItemsRegulatoryEntry(str, Enum): - CERTIFICATE = "certificate" - LICENSE = "license" - PERMIT = "permit" - REGISTRATION = "registration" - DECLARATION = "declaration" - - -class GeaNzEntitiesTaxonomyItemsUrbanInfrastructureEntry(str, Enum): - WATER_SUPPLY_SYSTEM = "water-supply-system" - ELECTRIC_POWER_SYSTEM = "electric-power-system" - TRANSPORT_NETWORK = "transport-network" - SANITATION_SYSTEM = "sanitation-system" - COMMUNICATION_SYSTEM = "communication-system" - - -class GeaNzEntitiesTaxonomyItemsItemUsageEntry(str, Enum): - PRODUCT = "product" - RESOURCE = "resource" - - -class GeaNzEntitiesTaxonomy(BaseModel): - """Model for the gea-nz-entities taxonomy.""" - - namespace: str = "gea-nz-entities" - description: str = """Information relating to instances of entities or things.""" - version: int = 1 - exclusive: bool = False - predicates: List[GeaNzEntitiesTaxonomyPredicate] = [] - parties_party_entries: List[GeaNzEntitiesTaxonomyPartiesPartyEntry] = [] - parties_qualification_entries: List[GeaNzEntitiesTaxonomyPartiesQualificationEntry] = [] - parties_role_entries: List[GeaNzEntitiesTaxonomyPartiesRoleEntry] = [] - parties_party_relationship_entries: List[GeaNzEntitiesTaxonomyPartiesPartyRelationshipEntry] = [] - places_address_entries: List[GeaNzEntitiesTaxonomyPlacesAddressEntry] = [] - places_location_type_entries: List[GeaNzEntitiesTaxonomyPlacesLocationTypeEntry] = [] - places_address_type_entries: List[GeaNzEntitiesTaxonomyPlacesAddressTypeEntry] = [] - places_purpose_of_location_entries: List[GeaNzEntitiesTaxonomyPlacesPurposeOfLocationEntry] = [] - items_application___ict_services_entries: List[GeaNzEntitiesTaxonomyItemsApplicationIctServicesEntry] = [] - items_ict_infrastructure_entries: List[GeaNzEntitiesTaxonomyItemsIctInfrastructureEntry] = [] - items_natural_entries: List[GeaNzEntitiesTaxonomyItemsNaturalEntry] = [] - items_financial_entries: List[GeaNzEntitiesTaxonomyItemsFinancialEntry] = [] - items_goods_entries: List[GeaNzEntitiesTaxonomyItemsGoodsEntry] = [] - items_regulatory_entries: List[GeaNzEntitiesTaxonomyItemsRegulatoryEntry] = [] - items_urban_infrastructure_entries: List[GeaNzEntitiesTaxonomyItemsUrbanInfrastructureEntry] = [] - items_item_usage_entries: List[GeaNzEntitiesTaxonomyItemsItemUsageEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/gea_nz_motivators.py b/src/openmisp/models/taxonomies/gea_nz_motivators.py deleted file mode 100644 index 86addd5..0000000 --- a/src/openmisp/models/taxonomies/gea_nz_motivators.py +++ /dev/null @@ -1,208 +0,0 @@ -"""Taxonomy model for gea-nz-motivators.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class GeaNzMotivatorsTaxonomyPredicate(str, Enum): - PLANS_BUDGET = "plans-budget" - PLANS_STRATEGY = "plans-strategy" - PLANS_EFFORT = "plans-effort" - PLANS_MEASURE = "plans-measure" - PLANS_RISK = "plans-risk" - PLANS_SPECIFICATION = "plans-specification" - CONTROLS_OPERATIONAL = "controls-operational" - CONTROLS_FINANCE = "controls-finance" - CONTROLS_INDUSTRY = "controls-industry" - CONTROLS_TECHNOLOGICAL = "controls-technological" - CONTROLS_LAW = "controls-law" - CONTROLS_PERSONAL = "controls-personal" - CONTROLS_SECURITY = "controls-security" - CONTRACTS_ARRANGEMENT = "contracts-arrangement" - CONTRACTS_RIGHTS = "contracts-rights" - CONTRACTS_OBLIGATION = "contracts-obligation" - CONTRACTS_JURISDICTION = "contracts-jurisdiction" - CONTROLS_RISK_GOVERNANCE = "controls-risk-governance" - - -class GeaNzMotivatorsTaxonomyPlansBudgetEntry(str, Enum): - CAPITAL = "capital" - OPERATING = "operating" - - -class GeaNzMotivatorsTaxonomyPlansStrategyEntry(str, Enum): - STRATEGIC_DIRECTIVE = "strategic-directive" - STRATEGIC_GOAL = "strategic-goal" - STRATEGIC_OBJECTIVE = "strategic-objective" - STRATEGIC_OUTCOME = "strategic-outcome" - ROAD_MAP = "road-map" - CHALLENGE = "challenge" - OPPORTUNITY = "opportunity" - - -class GeaNzMotivatorsTaxonomyPlansEffortEntry(str, Enum): - ACTIVITY = "activity" - CAMPAIGN = "campaign" - CARE = "care" - PROGRAMME = "programme" - PROJECT = "project" - ROSTER = "roster" - SCHEDULE = "schedule" - TASK = "task" - - -class GeaNzMotivatorsTaxonomyPlansMeasureEntry(str, Enum): - INPUT = "input" - OUTPUT = "output" - PERFORMANCE = "performance" - BENEFIT = "benefit" - - -class GeaNzMotivatorsTaxonomyPlansRiskEntry(str, Enum): - CONSEQUENCE = "consequence" - HAZARD = "hazard" - LIKELIHOOD = "likelihood" - MITIGATION = "mitigation" - INFLUENCE = "influence" - DISRUPTION = "disruption" - - -class GeaNzMotivatorsTaxonomyPlansSpecificationEntry(str, Enum): - FUNCTIONAL_REQUIREMENT = "functional-requirement" - NON_FUNCTIONAL_REQUIREMENT = "non-functional-requirement" - DESIGN = "design" - - -class GeaNzMotivatorsTaxonomyControlsOperationalEntry(str, Enum): - CONVENTION = "convention" - GUIDELINE = "guideline" - POLICY = "policy" - PRINCIPLE = "principle" - STANDARD = "standard" - PROCEDURE = "procedure" - PROCESS = "process" - CAPABILITY = "capability" - RULE = "rule" - EXCEPTION = "exception" - SCOPE_OF_USE = "scope-of-use" - - -class GeaNzMotivatorsTaxonomyControlsFinanceEntry(str, Enum): - FINANCIAL_ASSET = "financial-asset" - EQUITY = "equity" - EXPENSE = "expense" - FEE = "fee" - INCOME = "income" - FINANCIAL_LIABILITY = "financial-liability" - ACQUISITION_METHOD = "acquisition-method" - - -class GeaNzMotivatorsTaxonomyControlsIndustryEntry(str, Enum): - BEST_PRACTICE = "best-practice" - REGULATION = "regulation" - TERMINOLOGY = "terminology" - - -class GeaNzMotivatorsTaxonomyControlsTechnologicalEntry(str, Enum): - ENFORCED_RULES = "enforced-rules" - CONSTRAINTS = "constraints" - - -class GeaNzMotivatorsTaxonomyControlsLawEntry(str, Enum): - COMMON_LAW = "common-law" - LEGISLATIVE_INSTRUMENT = "legislative-instrument" - ACT = "act" - CABINET_MINUTE = "cabinet-minute" - - -class GeaNzMotivatorsTaxonomyControlsPersonalEntry(str, Enum): - PERSONAL_DIRECTIVE = "personal-directive" - - -class GeaNzMotivatorsTaxonomyContractsArrangementEntry(str, Enum): - MEMORANDUM_OF_UNDERSTANDING = "memorandum-of-understanding" - OFFER = "offer" - ORDER = "order" - AGREEMENT = "agreement" - REQUEST = "request" - CONFIDENTIALITY = "confidentiality" - EMPLOYMENT = "employment" - SERVICE = "service" - SUPPLY = "supply" - - -class GeaNzMotivatorsTaxonomyContractsRightsEntry(str, Enum): - ELIGIBILITY = "eligibility" - CREDITS = "credits" - ACCESS_RIGHT = "access-right" - AUTHORISATION = "authorisation" - HUMAN_RIGHT = "human-right" - EMPLOYMENT_RIGHT = "employment-right" - PROPERTY_RIGHT = "property-right" - CONSUMER_RIGHT = "consumer-right" - - -class GeaNzMotivatorsTaxonomyContractsObligationEntry(str, Enum): - DUTY_OF_CARE = "duty-of-care" - FITNESS_FOR_PURPOSE = "fitness-for-purpose" - WARRANTY = "warranty" - PRIVACY = "privacy" - TRUTHFULNESS = "truthfulness" - ENFORCE_THE_LAW = "enforce-the-law" - OBEY_THE_LAW = "obey-the-law" - ACCOUNT_PAYABLE = "account-payable" - ENFORCE_RULES = "enforce-rules" - OBEY_RULES = "obey-rules" - - -class GeaNzMotivatorsTaxonomyContractsJurisdictionEntry(str, Enum): - NATIONAL = "national" - INTERNATIONAL = "international" - LOCAL = "local" - POLITICAL = "political" - REGIONAL = "regional" - - -class GeaNzMotivatorsTaxonomyControlsRiskGovernanceEntry(str, Enum): - RESIDUAL = "residual" - ACCEPTANCE = "acceptance" - ANALYSIS = "analysis" - ASSESSEMENT = "assessement" - MANAGEMENT = "management" - TREATMENT = "treatment" - - -class GeaNzMotivatorsTaxonomy(BaseModel): - """Model for the gea-nz-motivators taxonomy.""" - - namespace: str = "gea-nz-motivators" - description: str = """Information relating to authority or governance.""" - version: int = 1 - exclusive: bool = False - predicates: List[GeaNzMotivatorsTaxonomyPredicate] = [] - plans_budget_entries: List[GeaNzMotivatorsTaxonomyPlansBudgetEntry] = [] - plans_strategy_entries: List[GeaNzMotivatorsTaxonomyPlansStrategyEntry] = [] - plans_effort_entries: List[GeaNzMotivatorsTaxonomyPlansEffortEntry] = [] - plans_measure_entries: List[GeaNzMotivatorsTaxonomyPlansMeasureEntry] = [] - plans_risk_entries: List[GeaNzMotivatorsTaxonomyPlansRiskEntry] = [] - plans_specification_entries: List[GeaNzMotivatorsTaxonomyPlansSpecificationEntry] = [] - controls_operational_entries: List[GeaNzMotivatorsTaxonomyControlsOperationalEntry] = [] - controls_finance_entries: List[GeaNzMotivatorsTaxonomyControlsFinanceEntry] = [] - controls_industry_entries: List[GeaNzMotivatorsTaxonomyControlsIndustryEntry] = [] - controls_technological_entries: List[GeaNzMotivatorsTaxonomyControlsTechnologicalEntry] = [] - controls_law_entries: List[GeaNzMotivatorsTaxonomyControlsLawEntry] = [] - controls_personal_entries: List[GeaNzMotivatorsTaxonomyControlsPersonalEntry] = [] - contracts_arrangement_entries: List[GeaNzMotivatorsTaxonomyContractsArrangementEntry] = [] - contracts_rights_entries: List[GeaNzMotivatorsTaxonomyContractsRightsEntry] = [] - contracts_obligation_entries: List[GeaNzMotivatorsTaxonomyContractsObligationEntry] = [] - contracts_jurisdiction_entries: List[GeaNzMotivatorsTaxonomyContractsJurisdictionEntry] = [] - controls_risk_governance_entries: List[GeaNzMotivatorsTaxonomyControlsRiskGovernanceEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/gray_zone.py b/src/openmisp/models/taxonomies/gray_zone.py deleted file mode 100644 index 2493852..0000000 --- a/src/openmisp/models/taxonomies/gray_zone.py +++ /dev/null @@ -1,106 +0,0 @@ -"""Taxonomy model for GrayZone.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class GrayZoneTaxonomyPredicate(str, Enum): - ADVERSARY_EMULATION = "Adversary Emulation" - BEACONS = "Beacons" - DETERRENCE = "Deterrence" - DECEPTION = "Deception" - TARPITS__SANDBOXES_AND_HONEYPOTS = "Tarpits, Sandboxes and Honeypots" - INTELLIGENCE_AND_COUNTERINTELLIGENCE = "Intelligence and Counterintelligence" - ADVERSARY_TAKEDOWNS = "Adversary Takedowns" - RANSOMWARE = "Ransomware" - RESCUE_MISSIONS = "Rescue Missions" - SANCTIONS__INDICTMENTS___TRADE_REMEDIES = "Sanctions, Indictments & Trade Remedies" - - -class GrayZoneTaxonomyAdversaryEmulationEntry(str, Enum): - THREAT_MODELING = "Threat Modeling" - PURPLE_TEAMING = "Purple Teaming" - BLUE_TEAM = "Blue Team" - RED_TEAM = "Red Team" - - -class GrayZoneTaxonomyBeaconsEntry(str, Enum): - INFORM = "Inform" - NOTIFY = "Notify" - - -class GrayZoneTaxonomyDeterrenceEntry(str, Enum): - BY_RETALIATION = "by Retaliation" - BY_DENIAL = "by Denial" - BY_ENTANGLEMENT = "by Entanglement" - - -class GrayZoneTaxonomyDeceptionEntry(str, Enum): - DECEPTION = "Deception" - DENIAL = "Denial" - COUNTER_DECEPTION = "CounterDeception" - - -class GrayZoneTaxonomyTarpitsSandboxesAndHoneypotsEntry(str, Enum): - HONEYPOTS = "Honeypots" - SANDBOXES = "Sandboxes" - TARPITS = "Tarpits" - - -class GrayZoneTaxonomyIntelligenceAndCounterintelligenceEntry(str, Enum): - INTEL_PASSIVE = "Intel Passive" - INTEL_ACTIVE = "Intel Active" - COUNTERINTEL_DEFENSIVE = "Counterintel Defensive" - COUNTERINTEL_DEFENSIVE___DETERRENCE = "Counterintel Defensive - Deterrence" - COUNTERINTEL_DEFENSIVE___DETECTION = "Counterintel Defensive - Detection" - COUNTERINTEL_OFFENSIVE = "Counterintel Offensive" - COUNTERINTEL_OFFENSIVE___DETECTION = "Counterintel Offensive - Detection" - COUNTERINTEL_OFFENSIVE___DECEPTION = "Counterintel Offensive - Deception" - COUNTERINTEL_OFFENSIVE___NEUTRALIZATION = "Counterintel Offensive - Neutralization" - - -class GrayZoneTaxonomyAdversaryTakedownsEntry(str, Enum): - BOTNET_TAKEDOWNS = "Botnet Takedowns" - DOMAIN_TAKEDOWNS = "Domain Takedowns" - INFRASTRUCTURE_TAKEDOWNS = "Infrastructure Takedowns" - - -class GrayZoneTaxonomyRansomwareEntry(str, Enum): - RANSOMWARE = "Ransomware" - - -class GrayZoneTaxonomyRescueMissionsEntry(str, Enum): - RESCUE_MISSIONS = "Rescue Missions" - - -class GrayZoneTaxonomySanctionsIndictmentsTradeRemediesEntry(str, Enum): - SANCTIONS__INDICTMENTS___TRADE_REMEDIES = "Sanctions, Indictments & Trade Remedies" - - -class GrayZoneTaxonomy(BaseModel): - """Model for the GrayZone taxonomy.""" - - namespace: str = "GrayZone" - description: str = """Gray Zone of Active defense includes all elements which lay between reactive defense elements and offensive operations. It does fill the gray spot between them. Taxo may be used for active defense planning or modeling.""" - version: int = 3 - exclusive: bool = False - predicates: List[GrayZoneTaxonomyPredicate] = [] - adversary_emulation_entries: List[GrayZoneTaxonomyAdversaryEmulationEntry] = [] - beacons_entries: List[GrayZoneTaxonomyBeaconsEntry] = [] - deterrence_entries: List[GrayZoneTaxonomyDeterrenceEntry] = [] - deception_entries: List[GrayZoneTaxonomyDeceptionEntry] = [] - tarpits__sandboxes_and_honeypots_entries: List[GrayZoneTaxonomyTarpitsSandboxesAndHoneypotsEntry] = [] - intelligence_and_counterintelligence_entries: List[GrayZoneTaxonomyIntelligenceAndCounterintelligenceEntry] = [] - adversary_takedowns_entries: List[GrayZoneTaxonomyAdversaryTakedownsEntry] = [] - ransomware_entries: List[GrayZoneTaxonomyRansomwareEntry] = [] - rescue_missions_entries: List[GrayZoneTaxonomyRescueMissionsEntry] = [] - sanctions__indictments___trade_remedies_entries: List[GrayZoneTaxonomySanctionsIndictmentsTradeRemediesEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/gsma_attack_category.py b/src/openmisp/models/taxonomies/gsma_attack_category.py deleted file mode 100644 index cbbefa8..0000000 --- a/src/openmisp/models/taxonomies/gsma_attack_category.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Taxonomy model for gsma-attack-category.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class GsmaAttackCategoryTaxonomyPredicate(str, Enum): - DENIAL_OF_SERVICE = "denial-of-service" - EXPLOIT_ATTACK = "exploit-attack" - INFORMATION_GATHERING = "information-gathering" - INSIDER_ATTACK = "insider-attack" - INTERCEPTION_ATTACK = "interception-attack" - MANIPULATION_ATTACK = "manipulation-attack" - PHYSICAL_ATTACK = "physical-attack" - SPOOFING = "spoofing" - - -class GsmaAttackCategoryTaxonomy(BaseModel): - """Model for the gsma-attack-category taxonomy.""" - - namespace: str = "gsma-attack-category" - description: str = ( - """Taxonomy used by GSMA for their information sharing program with telco describing the attack categories""" - ) - version: int = 1 - exclusive: bool = False - predicates: List[GsmaAttackCategoryTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/gsma_fraud.py b/src/openmisp/models/taxonomies/gsma_fraud.py deleted file mode 100644 index d9cc7c5..0000000 --- a/src/openmisp/models/taxonomies/gsma_fraud.py +++ /dev/null @@ -1,100 +0,0 @@ -"""Taxonomy model for gsma-fraud.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class GsmaFraudTaxonomyPredicate(str, Enum): - TECHNICAL = "technical" - SUBSCRIPTION = "subscription" - DISTRIBUTION = "distribution" - BUSINESS = "business" - PREPAID = "prepaid" - - -class GsmaFraudTaxonomyTechnicalEntry(str, Enum): - MAILBOX_HACKING = "mailbox-hacking" - IMEI_REPROGRAMMING = "imei-reprogramming" - CALL_FORWARDING_FRAUD = "call-forwarding-fraud" - CALL_CONFERENCE = "call-conference" - HLR_TAMPERING = "hlr-tampering" - SIM_CARD_CLONING = "sim-card-cloning" - FALSE_BASE_STATION_ATTACK = "false-base-station-attack" - SPAMMING = "spamming" - PHISHING_PHARMING = "phishing-pharming" - MOBILE_MALWARE = "mobile-malware" - FRAUD_RISKS_ASSOCIATED_WITH_VOICE_OVER_IP_SERVICES = "fraud-risks-associated-with-voice-over-ip-services" - PBX_HACKING = "pbx-hacking" - FRAUD_RISKS_ASSOCIATED_WITH_M2M_SERVICES = "fraud-risks-associated-with-m2m-services" - DATA_CHARING_BYPASS = "data-charing-bypass" - - -class GsmaFraudTaxonomySubscriptionEntry(str, Enum): - SUBSCRIPTION_FRAUD = "subscription-fraud" - PROXY_FRAUD = "proxy-fraud" - ACCOUNT_TAKEOVER = "account-takeover" - CALL_SELLING = "call-selling" - DIRECT_DEBIT_FRAUD = "direct-debit-fraud" - CREDIT_CARD_FRAUD = "credit-card-fraud" - CREDIT_CARD_NOT_PRESENT_TRANSACTIONS = "credit-card-not-present-transactions" - CHEQUE_FRAUD = "cheque-fraud" - - -class GsmaFraudTaxonomyDistributionEntry(str, Enum): - DEALER_FRAUD = "dealer-fraud" - FALSE_AGENT = "false-agent" - THEFT_AND_HANDLING_STOLEN_GOODS = "theft-and-handling-stolen-goods" - HANDSET_SUBSIDY_LOSS = "handset-subsidy-loss" - REMOTE_ORDER_FRAUD = "remote-order-fraud" - - -class GsmaFraudTaxonomyBusinessEntry(str, Enum): - PREMIUM_RATE = "premium-rate" - ROAMING_FRAUD = "roaming-fraud" - INTERNATIONAL_REVENUE_SHARE_FRAUD = "international-revenue-share-fraud" - INBOUND_ROAMING_FRAUD_RISK_TO_VPMN = "inbound-roaming-fraud-risk-to-vpmn" - INTERCONNECT_ABUSE = "interconnect-abuse" - REFILING = "refiling" - MOBILE_TO_FIXED_NETWORK_GATEWAY_ABUSE = "mobile-to-fixed-network-gateway-abuse" - FALSE_ANSWER_FALSE_RING = "false-answer-false-ring" - SOCIAL_ENGINEERING = "social-engineering" - INTERNAL_FRAUD = "internal-fraud" - NORMAL_BUSINESS_FRAUD_CRIME = "normal-business-fraud-crime" - BRAND_NAME_LOGO_ABUSE = "brand-name-logo-abuse" - M_COMMERCE_PROVIDER_CONTENT_FRAUD = "m-commerce-provider-content-fraud" - M_COMMERCE_PROVIDER_PRS_FRAUD = "m-commerce-provider-prs-fraud" - CONTENT_THEFT = "content-theft" - WANGIRI = "wangiri" - AIRTIME_RESELLER_FRAUD = "airtime-reseller-fraud" - - -class GsmaFraudTaxonomyPrepaidEntry(str, Enum): - SERVICES_FRAUD = "services-fraud" - HLR_PROFILE_MANIPULATION = "hlr-profile-manipulation" - MANUAL_RECHARGING = "manual-recharging" - GENERATION_OF_ABUSIVE_CREDITS = "generation-of-abusive-credits" - SCARTCH_CARD_ABUSE = "scartch-card-abuse" - - -class GsmaFraudTaxonomy(BaseModel): - """Model for the gsma-fraud taxonomy.""" - - namespace: str = "gsma-fraud" - description: str = """Taxonomy used by GSMA for their information sharing program with telco describing the various aspects of fraud""" - version: int = 1 - exclusive: bool = False - predicates: List[GsmaFraudTaxonomyPredicate] = [] - technical_entries: List[GsmaFraudTaxonomyTechnicalEntry] = [] - subscription_entries: List[GsmaFraudTaxonomySubscriptionEntry] = [] - distribution_entries: List[GsmaFraudTaxonomyDistributionEntry] = [] - business_entries: List[GsmaFraudTaxonomyBusinessEntry] = [] - prepaid_entries: List[GsmaFraudTaxonomyPrepaidEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/gsma_network_technology.py b/src/openmisp/models/taxonomies/gsma_network_technology.py deleted file mode 100644 index 9b42296..0000000 --- a/src/openmisp/models/taxonomies/gsma_network_technology.py +++ /dev/null @@ -1,41 +0,0 @@ -"""Taxonomy model for gsma-network-technology.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class GsmaNetworkTechnologyTaxonomyPredicate(str, Enum): - USER = "user" - APPLICATIONS = "applications" - END_DEVICES_AND_COMPONENTS = "end-devices-and-components" - SERVICES = "services" - RADIO_ACCESS_NETWORK = "radio-access-network" - SUPPORT_AND_PROVISIONING_SYSTEMS = "support-and-provisioning-systems" - INTERCONNECTS = "interconnects" - CORE = "core" - SIM_SECURE_ELEMENT_MODULES = "sim-secure-element-modules" - - -class GsmaNetworkTechnologyTaxonomyEndDevicesAndComponentsEntry(str, Enum): - MS = "ms" - MOBILE_EQUIPMENT_RADIO = "mobile-equipment-radio" - - -class GsmaNetworkTechnologyTaxonomy(BaseModel): - """Model for the gsma-network-technology taxonomy.""" - - namespace: str = "gsma-network-technology" - description: str = """Taxonomy used by GSMA for their information sharing program with telco describing the types of infrastructure. WiP""" - version: int = 3 - exclusive: bool = False - predicates: List[GsmaNetworkTechnologyTaxonomyPredicate] = [] - end_devices_and_components_entries: List[GsmaNetworkTechnologyTaxonomyEndDevicesAndComponentsEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/honeypot_basic.py b/src/openmisp/models/taxonomies/honeypot_basic.py deleted file mode 100644 index bc17e23..0000000 --- a/src/openmisp/models/taxonomies/honeypot_basic.py +++ /dev/null @@ -1,77 +0,0 @@ -"""Taxonomy model for honeypot-basic.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class HoneypotBasicTaxonomyPredicate(str, Enum): - INTERACTION_LEVEL = "interaction-level" - DATA_CAPTURE = "data-capture" - CONTAINMENT = "containment" - DISTRIBUTION_APPEARANCE = "distribution-appearance" - COMMUNICATION_INTERFACE = "communication-interface" - ROLE = "role" - - -class HoneypotBasicTaxonomyInteractionLevelEntry(str, Enum): - HIGH = "high" - MEDIUM = "medium" - LOW = "low" - NONE = "none" - ADAPTIVE = "adaptive" - - -class HoneypotBasicTaxonomyDataCaptureEntry(str, Enum): - NETWORK_CAPTURE = "network-capture" - EVENTS = "events" - ATTACKS = "attacks" - INTRUSIONS = "intrusions" - NONE = "none" - - -class HoneypotBasicTaxonomyContainmentEntry(str, Enum): - BLOCK = "block" - DEFUSE = "defuse" - SLOW_DOWN = "slow-down" - NONE = "none" - - -class HoneypotBasicTaxonomyDistributionAppearanceEntry(str, Enum): - DISTRIBUTED = "distributed" - STAND_ALONE = "stand-alone" - - -class HoneypotBasicTaxonomyCommunicationInterfaceEntry(str, Enum): - NETWORK_INTERFACE = "network-interface" - HARDWARE_INTERFACE = "hardware-interface" - SOFTWARE_API = "software-api" - - -class HoneypotBasicTaxonomyRoleEntry(str, Enum): - SERVER = "server" - CLIENT = "client" - - -class HoneypotBasicTaxonomy(BaseModel): - """Model for the honeypot-basic taxonomy.""" - - namespace: str = "honeypot-basic" - description: str = """Updated (CIRCL, Seamus Dowling and EURECOM) from Christian Seifert, Ian Welch, Peter Komisarczuk, ‘Taxonomy of Honeypots’, Technical Report CS-TR-06/12, VICTORIA UNIVERSITY OF WELLINGTON, School of Mathematical and Computing Sciences, June 2006, http://www.mcs.vuw.ac.nz/comp/Publications/archive/CS-TR-06/CS-TR-06-12.pdf""" - version: int = 4 - exclusive: bool = False - predicates: List[HoneypotBasicTaxonomyPredicate] = [] - interaction_level_entries: List[HoneypotBasicTaxonomyInteractionLevelEntry] = [] - data_capture_entries: List[HoneypotBasicTaxonomyDataCaptureEntry] = [] - containment_entries: List[HoneypotBasicTaxonomyContainmentEntry] = [] - distribution_appearance_entries: List[HoneypotBasicTaxonomyDistributionAppearanceEntry] = [] - communication_interface_entries: List[HoneypotBasicTaxonomyCommunicationInterfaceEntry] = [] - role_entries: List[HoneypotBasicTaxonomyRoleEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ics.py b/src/openmisp/models/taxonomies/ics.py deleted file mode 100644 index ed4101b..0000000 --- a/src/openmisp/models/taxonomies/ics.py +++ /dev/null @@ -1,211 +0,0 @@ -"""Taxonomy model for Industrial Control System (ICS).""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class IcsTaxonomyPredicate(str, Enum): - OT_SECURITY_ISSUES = "ot-security-issues" - OT_NETWORK_DATA_TRANSMISSION_PROTOCOLS_AUTOMATIC_AUTOMOBILE_VEHICLE_AVIATION = ( - "ot-network-data-transmission-protocols-automatic-automobile-vehicle-aviation" - ) - OT_NETWORK_DATA_TRANSMISSION_PROTOCOLS_AUTOMATIC_METER_READING = ( - "ot-network-data-transmission-protocols-automatic-meter-reading" - ) - OT_NETWORK_DATA_TRANSMISSION_PROTOCOLS_INDUSTRIAL_CONTROL_SYSTEM = ( - "ot-network-data-transmission-protocols-industrial-control-system" - ) - OT_NETWORK_DATA_TRANSMISSION_PROTOCOLS_BUILDING_AUTOMATION = ( - "ot-network-data-transmission-protocols-building-automation" - ) - OT_NETWORK_DATA_TRANSMISSION_PROTOCOLS_POWER_SYSTEM_AUTOMATION = ( - "ot-network-data-transmission-protocols-power-system-automation" - ) - OT_NETWORK_DATA_TRANSMISSION_PROTOCOLS_PROCESS_AUTOMATION = ( - "ot-network-data-transmission-protocols-process-automation" - ) - OT_COMMUNICATION_INTERFACE = "ot-communication-interface" - OT_OPERATING_SYSTEMS = "ot-operating-systems" - OT_COMPONENTS_CATEGORY = "ot-components-category" - - -class IcsTaxonomyOtSecurityIssuesEntry(str, Enum): - MESSAGE_AUTHENTICATION = "Message Authentication" - MESSAGE_INTEGRITY_CHECKING = "Message Integrity Checking" - MESSAGE_ENCRYPTION = "Message Encryption" - COMMAND_INJECTION = "Command Injection" - REPLAY_ATTACK = "Replay Attack" - MAN_IN_THE_MIDDLE__MITM__ATTACK = "Man in the middle (MITM) Attack" - UNDOCUMENTED_INSTRUCTIONS = "Undocumented instructions" - VENDOR_PROPRIETARY_PROTOCOLS = "Vendor proprietary protocols" - - -class IcsTaxonomyOtNetworkDataTransmissionProtocolsAutomaticAutomobileVehicleAviationEntry(str, Enum): - ARINC_429 = "ARINC 429" - CAN_BUS__ARINC_825_SAE_J1939_NMEA_2000_FMS_ = "CAN bus (ARINC 825 SAE J1939 NMEA 2000 FMS)" - FACTORY_INSTRUMENTATION_PROTOCOL = "Factory Instrumentation Protocol" - FLEX_RAY = "FlexRay" - IEBUS = "IEBus" - J1587 = "J1587" - J1708 = "J1708" - KEYWORD_PROTOCOL_2000 = "Keyword Protocol 2000" - UNIFIED_DIAGNOSTIC_SERVICES = "Unified Diagnostic Services" - LIN = "LIN" - MOST = "MOST" - VAN = "VAN" - - -class IcsTaxonomyOtNetworkDataTransmissionProtocolsAutomaticMeterReadingEntry(str, Enum): - ANSI_C12_18 = "ANSI C12.18" - IEC_61107 = "IEC 61107" - DLMS_IEC_62056 = "DLMS/IEC 62056" - M_BUS = "M-Bus" - MODBUS = "Modbus" - ZIG_BEE = "ZigBee" - - -class IcsTaxonomyOtNetworkDataTransmissionProtocolsIndustrialControlSystemEntry(str, Enum): - MTCONNECT = "MTConnect" - OPC = "OPC" - DA = "DA" - HDA = "HDA" - UA = "UA" - - -class IcsTaxonomyOtNetworkDataTransmissionProtocolsBuildingAutomationEntry(str, Enum): - T_1_WIRE = "1-Wire" - BACNET = "BACnet" - C_BUS = "C-Bus" - CEBUS = "CEBus" - DALI = "DALI" - DSI = "DSI" - DY_NET = "DyNet" - FACTORY_INSTRUMENTATION_PROTOCOL = "Factory Instrumentation Protocol" - KNX = "KNX" - LON_TALK = "LonTalk" - MODBUS = "Modbus" - O_BIX = "oBIX" - VSCP = "VSCP" - X10 = "X10" - X_AP = "xAP" - X_PL = "xPL" - ZIG_BEE = "ZigBee" - - -class IcsTaxonomyOtNetworkDataTransmissionProtocolsPowerSystemAutomationEntry(str, Enum): - IEC_60870 = "IEC 60870" - DNP3 = "DNP3" - FACTORY_INSTRUMENTATION_PROTOCOL = "Factory Instrumentation Protocol" - IEC_61850 = "IEC 61850" - IEC_62351 = "IEC 62351" - MODBUS = "Modbus" - PROFIBUS = "Profibus" - - -class IcsTaxonomyOtNetworkDataTransmissionProtocolsProcessAutomationEntry(str, Enum): - AS_I = "AS-i" - BSAP = "BSAP" - CC_LINK_INDUSTRIAL_NETWORKS = "CC-Link Industrial Networks" - CIP = "CIP" - CAN_BUS = "CAN bus" - CONTROL_NET = "ControlNet" - DF_1 = "DF-1" - DIRECT_NET = "DirectNET" - ETHER_CAT = "EtherCAT" - ETHERNET_GLOBAL_DATA__EGD_ = "Ethernet Global Data (EGD)" - ETHERNET_POWERLINK = "Ethernet Powerlink" - ETHER_NET_IP = "EtherNet/IP" - EXPERIMENTAL_PHYSICS_AND_INDUSTRIAL_CONTROL_SYSTEM__EPICS__STREAM_DEVICE_PROTOCOL__I_E_RF_FREQ_499_655_MHZ_ = ( - "Experimental Physics and Industrial Control System (EPICS) StreamDevice protocol (i.e RF:FREQ 499.655 MHZ)" - ) - FACTORY_INSTRUMENTATION_PROTOCOL = "Factory Instrumentation Protocol" - FINS = "FINS" - FOUNDATION_FIELDBUS__H1_HSE_ = "FOUNDATION fieldbus (H1 HSE)" - GE_SRTP = "GE SRTP" - HART_PROTOCOL = "HART Protocol" - HONEYWELL_SDS = "Honeywell SDS" - HOST_LINK = "HostLink" - INTERBUS = "INTERBUS" - IO_LINK = "IO-Link" - MECHATROLINK = "MECHATROLINK" - MELSEC_NET = "MelsecNet" - MODBUS = "Modbus" - OPTOMU = "Optomu" - PIE_P = "PieP" - PROFIBUS = "Profibus" - PROFINET_IO = "PROFINET IO" - RAPIENET = "RAPIEnet" - SERCOS_INTERFACE = "SERCOS interface" - SERCOS_III = "SERCOS III" - SINEC_H1 = "Sinec H1" - SYNQ_NET = "SynqNet" - TTETHERNET = "TTEthernet" - TCP_IP = "TCP/IP" - - -class IcsTaxonomyOtCommunicationInterfaceEntry(str, Enum): - RS_232 = "rs-232" - RS_422__RS_423_OR_RS_485 = "rs-422, rs-423 or rs-485" - IEEE_488_GPIB = "ieee-488-gpib" - IEEE_1394_FIREWIRE = "ieee-1394-firewire" - USB_UNIVERSAL_SERIAL_BUS = "usb-universal-serial-bus" - ETHERNET = "ethernet" - OTHERS = "others" - - -class IcsTaxonomyOtOperatingSystemsEntry(str, Enum): - RTOS = "rtos" - LINUX_EMBEDDED_BASE_OS = "linux-embedded-base-os" - BSD = "bsd" - MICROSOFT = "microsoft" - - -class IcsTaxonomyOtComponentsCategoryEntry(str, Enum): - PROGRAMMABLE_LOGIC_CONTROLLER = "programmable-logic-controller" - REMOTE_TERMINAL_UNIT = "remote-terminal-unit" - HUMAN_MACHINE_INTERFACE = "human-machine-interface" - SENSORS = "sensors" - ACTUATORS = "actuators" - COMMUNICATIONS = "communications" - SUPERVISORY_LEVEL_DEVICES = "supervisory-level-devices" - - -class IcsTaxonomy(BaseModel): - """Model for the Industrial Control System (ICS) taxonomy.""" - - namespace: str = "ics" - description: str = """FIRST.ORG CTI SIG - MISP Proposal for ICS/OT Threat Attribution (IOC) Project""" - version: int = 1 - exclusive: bool = False - predicates: List[IcsTaxonomyPredicate] = [] - ot_security_issues_entries: List[IcsTaxonomyOtSecurityIssuesEntry] = [] - ot_network_data_transmission_protocols_automatic_automobile_vehicle_aviation_entries: List[ - IcsTaxonomyOtNetworkDataTransmissionProtocolsAutomaticAutomobileVehicleAviationEntry - ] = [] - ot_network_data_transmission_protocols_automatic_meter_reading_entries: List[ - IcsTaxonomyOtNetworkDataTransmissionProtocolsAutomaticMeterReadingEntry - ] = [] - ot_network_data_transmission_protocols_industrial_control_system_entries: List[ - IcsTaxonomyOtNetworkDataTransmissionProtocolsIndustrialControlSystemEntry - ] = [] - ot_network_data_transmission_protocols_building_automation_entries: List[ - IcsTaxonomyOtNetworkDataTransmissionProtocolsBuildingAutomationEntry - ] = [] - ot_network_data_transmission_protocols_power_system_automation_entries: List[ - IcsTaxonomyOtNetworkDataTransmissionProtocolsPowerSystemAutomationEntry - ] = [] - ot_network_data_transmission_protocols_process_automation_entries: List[ - IcsTaxonomyOtNetworkDataTransmissionProtocolsProcessAutomationEntry - ] = [] - ot_communication_interface_entries: List[IcsTaxonomyOtCommunicationInterfaceEntry] = [] - ot_operating_systems_entries: List[IcsTaxonomyOtOperatingSystemsEntry] = [] - ot_components_category_entries: List[IcsTaxonomyOtComponentsCategoryEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/iep.py b/src/openmisp/models/taxonomies/iep.py deleted file mode 100644 index 75c1225..0000000 --- a/src/openmisp/models/taxonomies/iep.py +++ /dev/null @@ -1,140 +0,0 @@ -"""Taxonomy model for iep.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class IepTaxonomyPredicate(str, Enum): - COMMERCIAL_USE = "commercial-use" - EXTERNAL_REFERENCE = "external-reference" - ENCRYPT_IN_TRANSIT = "encrypt-in-transit" - ENCRYPT_AT_REST = "encrypt-at-rest" - PERMITTED_ACTIONS = "permitted-actions" - AFFECTED_PARTY_NOTIFICATIONS = "affected-party-notifications" - TRAFFIC_LIGHT_PROTOCOL = "traffic-light-protocol" - PROVIDER_ATTRIBUTION = "provider-attribution" - OBFUSCATE_AFFECTED_PARTIES = "obfuscate-affected-parties" - UNMODIFIED_RESALE = "unmodified-resale" - START_DATE = "start-date" - END_DATE = "end-date" - REFERENCE = "reference" - NAME = "name" - VERSION = "version" - ID = "id" - - -class IepTaxonomyCommercialUseEntry(str, Enum): - MAY = "MAY" - MUST_NOT = "MUST NOT" - - -class IepTaxonomyExternalReferenceEntry(str, Enum): - T__TEXT = "$text" - - -class IepTaxonomyEncryptInTransitEntry(str, Enum): - MUST = "MUST" - MAY = "MAY" - - -class IepTaxonomyEncryptAtRestEntry(str, Enum): - MUST = "MUST" - MAY = "MAY" - - -class IepTaxonomyPermittedActionsEntry(str, Enum): - NONE = "NONE" - CONTACT_FOR_INSTRUCTION = "CONTACT FOR INSTRUCTION" - INTERNALLY_VISIBLE_ACTIONS = "INTERNALLY VISIBLE ACTIONS" - EXTERNALLY_VISIBLE_INDIRECT_ACTIONS = "EXTERNALLY VISIBLE INDIRECT ACTIONS" - EXTERNALLY_VISIBLE_DIRECT_ACTIONS = "EXTERNALLY VISIBLE DIRECT ACTIONS" - - -class IepTaxonomyAffectedPartyNotificationsEntry(str, Enum): - MAY = "MAY" - MUST_NOT = "MUST NOT" - - -class IepTaxonomyTrafficLightProtocolEntry(str, Enum): - RED = "RED" - AMBER = "AMBER" - GREEN = "GREEN" - WHITE = "WHITE" - - -class IepTaxonomyProviderAttributionEntry(str, Enum): - MAY = "MAY" - MUST = "MUST" - MUST_NOT = "MUST NOT" - - -class IepTaxonomyObfuscateAffectedPartiesEntry(str, Enum): - MAY = "MAY" - MUST = "MUST" - MUST_NOT = "MUST NOT" - - -class IepTaxonomyUnmodifiedResaleEntry(str, Enum): - MAY = "MAY" - MUST_NOT = "MUST NOT" - - -class IepTaxonomyStartDateEntry(str, Enum): - T__TEXT = "$text" - - -class IepTaxonomyEndDateEntry(str, Enum): - T__TEXT = "$text" - - -class IepTaxonomyReferenceEntry(str, Enum): - T__TEXT = "$text" - - -class IepTaxonomyNameEntry(str, Enum): - T__TEXT = "$text" - - -class IepTaxonomyVersionEntry(str, Enum): - T__TEXT = "$text" - - -class IepTaxonomyIdEntry(str, Enum): - T__TEXT = "$text" - - -class IepTaxonomy(BaseModel): - """Model for the iep taxonomy.""" - - namespace: str = "iep" - description: str = ( - """Forum of Incident Response and Security Teams (FIRST) Information Exchange Policy (IEP) framework""" - ) - version: int = 2 - exclusive: bool = False - predicates: List[IepTaxonomyPredicate] = [] - commercial_use_entries: List[IepTaxonomyCommercialUseEntry] = [] - external_reference_entries: List[IepTaxonomyExternalReferenceEntry] = [] - encrypt_in_transit_entries: List[IepTaxonomyEncryptInTransitEntry] = [] - encrypt_at_rest_entries: List[IepTaxonomyEncryptAtRestEntry] = [] - permitted_actions_entries: List[IepTaxonomyPermittedActionsEntry] = [] - affected_party_notifications_entries: List[IepTaxonomyAffectedPartyNotificationsEntry] = [] - traffic_light_protocol_entries: List[IepTaxonomyTrafficLightProtocolEntry] = [] - provider_attribution_entries: List[IepTaxonomyProviderAttributionEntry] = [] - obfuscate_affected_parties_entries: List[IepTaxonomyObfuscateAffectedPartiesEntry] = [] - unmodified_resale_entries: List[IepTaxonomyUnmodifiedResaleEntry] = [] - start_date_entries: List[IepTaxonomyStartDateEntry] = [] - end_date_entries: List[IepTaxonomyEndDateEntry] = [] - reference_entries: List[IepTaxonomyReferenceEntry] = [] - name_entries: List[IepTaxonomyNameEntry] = [] - version_entries: List[IepTaxonomyVersionEntry] = [] - id_entries: List[IepTaxonomyIdEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/iep2_policy.py b/src/openmisp/models/taxonomies/iep2_policy.py deleted file mode 100644 index 1133093..0000000 --- a/src/openmisp/models/taxonomies/iep2_policy.py +++ /dev/null @@ -1,118 +0,0 @@ -"""Taxonomy model for iep2-policy.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class Iep2PolicyTaxonomyPredicate(str, Enum): - ID = "id" - NAME = "name" - DESCRIPTION = "description" - IEP_VERSION = "iep_version" - START_DATE = "start_date" - END_DATE = "end_date" - ENCRYPT_IN_TRANSIT = "encrypt_in_transit" - PERMITTED_ACTIONS = "permitted_actions" - AFFECTED_PARTY_NOTIFICATIONS = "affected_party_notifications" - TLP = "tlp" - ATTRIBUTION = "attribution" - UNMODIFIED_RESALE = "unmodified_resale" - EXTERNAL_REFERENCE = "external_reference" - - -class Iep2PolicyTaxonomyIdEntry(str, Enum): - T__TEXT = "$text" - - -class Iep2PolicyTaxonomyNameEntry(str, Enum): - T__TEXT = "$text" - - -class Iep2PolicyTaxonomyDescriptionEntry(str, Enum): - T__TEXT = "$text" - - -class Iep2PolicyTaxonomyIepVersionEntry(str, Enum): - T_2_0 = "2.0" - - -class Iep2PolicyTaxonomyStartDateEntry(str, Enum): - T__TEXT = "$text" - - -class Iep2PolicyTaxonomyEndDateEntry(str, Enum): - T__TEXT = "$text" - - -class Iep2PolicyTaxonomyEncryptInTransitEntry(str, Enum): - MUST = "must" - MAY = "may" - - -class Iep2PolicyTaxonomyPermittedActionsEntry(str, Enum): - NONE = "none" - CONTACT_FOR_INSTRUCTION = "contact-for-instruction" - INTERNALLY_VISIBLE_ACTIONS = "internally-visible-actions" - EXTERNALLY_VISIBLE_INDIRECT_ACTIONS = "externally-visible-indirect-actions" - EXTERNALLY_VISIBLE_DIRECT_ACTIONS = "externally-visible-direct-actions" - - -class Iep2PolicyTaxonomyAffectedPartyNotificationsEntry(str, Enum): - MAY = "may" - MUST_NOT = "must-not" - - -class Iep2PolicyTaxonomyTlpEntry(str, Enum): - RED = "red" - AMBER = "amber" - GREEN = "green" - WHITE = "white" - - -class Iep2PolicyTaxonomyAttributionEntry(str, Enum): - MAY = "may" - MUST = "must" - MUST_NOT = "must-not" - - -class Iep2PolicyTaxonomyUnmodifiedResaleEntry(str, Enum): - MAY = "may" - MUST_NOT = "must-not" - - -class Iep2PolicyTaxonomyExternalReferenceEntry(str, Enum): - T__TEXT = "$text" - - -class Iep2PolicyTaxonomy(BaseModel): - """Model for the iep2-policy taxonomy.""" - - namespace: str = "iep2-policy" - description: str = ( - """Forum of Incident Response and Security Teams (FIRST) Information Exchange Policy (IEP) v2.0 Policy""" - ) - version: int = 1 - exclusive: bool = False - predicates: List[Iep2PolicyTaxonomyPredicate] = [] - id_entries: List[Iep2PolicyTaxonomyIdEntry] = [] - name_entries: List[Iep2PolicyTaxonomyNameEntry] = [] - description_entries: List[Iep2PolicyTaxonomyDescriptionEntry] = [] - iep_version_entries: List[Iep2PolicyTaxonomyIepVersionEntry] = [] - start_date_entries: List[Iep2PolicyTaxonomyStartDateEntry] = [] - end_date_entries: List[Iep2PolicyTaxonomyEndDateEntry] = [] - encrypt_in_transit_entries: List[Iep2PolicyTaxonomyEncryptInTransitEntry] = [] - permitted_actions_entries: List[Iep2PolicyTaxonomyPermittedActionsEntry] = [] - affected_party_notifications_entries: List[Iep2PolicyTaxonomyAffectedPartyNotificationsEntry] = [] - tlp_entries: List[Iep2PolicyTaxonomyTlpEntry] = [] - attribution_entries: List[Iep2PolicyTaxonomyAttributionEntry] = [] - unmodified_resale_entries: List[Iep2PolicyTaxonomyUnmodifiedResaleEntry] = [] - external_reference_entries: List[Iep2PolicyTaxonomyExternalReferenceEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/iep2_reference.py b/src/openmisp/models/taxonomies/iep2_reference.py deleted file mode 100644 index f3dfeae..0000000 --- a/src/openmisp/models/taxonomies/iep2_reference.py +++ /dev/null @@ -1,46 +0,0 @@ -"""Taxonomy model for iep2-reference.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class Iep2ReferenceTaxonomyPredicate(str, Enum): - ID_REF = "id_ref" - URL = "url" - IEP_VERSION = "iep_version" - - -class Iep2ReferenceTaxonomyIdRefEntry(str, Enum): - T__TEXT = "$text" - - -class Iep2ReferenceTaxonomyUrlEntry(str, Enum): - T__TEXT = "$text" - - -class Iep2ReferenceTaxonomyIepVersionEntry(str, Enum): - T_2_0 = "2.0" - - -class Iep2ReferenceTaxonomy(BaseModel): - """Model for the iep2-reference taxonomy.""" - - namespace: str = "iep2-reference" - description: str = ( - """Forum of Incident Response and Security Teams (FIRST) Information Exchange Policy (IEP) v2.0 Reference""" - ) - version: int = 1 - exclusive: bool = False - predicates: List[Iep2ReferenceTaxonomyPredicate] = [] - id_ref_entries: List[Iep2ReferenceTaxonomyIdRefEntry] = [] - url_entries: List[Iep2ReferenceTaxonomyUrlEntry] = [] - iep_version_entries: List[Iep2ReferenceTaxonomyIepVersionEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ifx_vetting.py b/src/openmisp/models/taxonomies/ifx_vetting.py deleted file mode 100644 index dbda34b..0000000 --- a/src/openmisp/models/taxonomies/ifx_vetting.py +++ /dev/null @@ -1,146 +0,0 @@ -"""Taxonomy model for ifx-vetting.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class IfxVettingTaxonomyPredicate(str, Enum): - VETTED = "vetted" - SCORE = "score" - - -class IfxVettingTaxonomyVettedEntry(str, Enum): - LEGIT_BUT_COMPROMISED = "legit-but-compromised" - LEGIT = "legit" - LEGIT_UNCERTAIN = "legit-uncertain" - MALICIOUS = "malicious" - MALICIOUS_UNCERTAIN = "malicious-uncertain" - INVALID = "invalid" - IRRELEVANT = "irrelevant" - UNDETERMINED = "undetermined" - FAST_TRACK = "fast-track" - - -class IfxVettingTaxonomyScoreEntry(str, Enum): - T_0 = "0" - T_1 = "1" - T_2 = "2" - T_3 = "3" - T_4 = "4" - T_5 = "5" - T_6 = "6" - T_7 = "7" - T_8 = "8" - T_9 = "9" - T_10 = "10" - T_11 = "11" - T_12 = "12" - T_13 = "13" - T_14 = "14" - T_15 = "15" - T_16 = "16" - T_17 = "17" - T_18 = "18" - T_19 = "19" - T_20 = "20" - T_21 = "21" - T_22 = "22" - T_23 = "23" - T_24 = "24" - T_25 = "25" - T_26 = "26" - T_27 = "27" - T_28 = "28" - T_29 = "29" - T_30 = "30" - T_31 = "31" - T_32 = "32" - T_33 = "33" - T_34 = "34" - T_35 = "35" - T_36 = "36" - T_37 = "37" - T_38 = "38" - T_39 = "39" - T_40 = "40" - T_41 = "41" - T_42 = "42" - T_43 = "43" - T_44 = "44" - T_45 = "45" - T_46 = "46" - T_47 = "47" - T_48 = "48" - T_49 = "49" - T_50 = "50" - T_51 = "51" - T_52 = "52" - T_53 = "53" - T_54 = "54" - T_55 = "55" - T_56 = "56" - T_57 = "57" - T_58 = "58" - T_59 = "59" - T_60 = "60" - T_61 = "61" - T_62 = "62" - T_63 = "63" - T_64 = "64" - T_65 = "65" - T_66 = "66" - T_67 = "67" - T_68 = "68" - T_69 = "69" - T_70 = "70" - T_71 = "71" - T_72 = "72" - T_73 = "73" - T_74 = "74" - T_75 = "75" - T_76 = "76" - T_77 = "77" - T_78 = "78" - T_79 = "79" - T_80 = "80" - T_81 = "81" - T_82 = "82" - T_83 = "83" - T_84 = "84" - T_85 = "85" - T_86 = "86" - T_87 = "87" - T_88 = "88" - T_89 = "89" - T_90 = "90" - T_91 = "91" - T_92 = "92" - T_93 = "93" - T_94 = "94" - T_95 = "95" - T_96 = "96" - T_97 = "97" - T_98 = "98" - T_99 = "99" - T_100 = "100" - - -class IfxVettingTaxonomy(BaseModel): - """Model for the ifx-vetting taxonomy.""" - - namespace: str = "ifx-vetting" - description: str = """The IFX taxonomy is used to categorise information (MISP events and attributes) to aid in the intelligence vetting process""" - version: int = 3 - exclusive: bool = False - predicates: List[IfxVettingTaxonomyPredicate] = [] - vetted_entries: List[IfxVettingTaxonomyVettedEntry] = [] - score_entries: List[IfxVettingTaxonomyScoreEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/incident_disposition.py b/src/openmisp/models/taxonomies/incident_disposition.py deleted file mode 100644 index e413563..0000000 --- a/src/openmisp/models/taxonomies/incident_disposition.py +++ /dev/null @@ -1,54 +0,0 @@ -"""Taxonomy model for incident-disposition.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class IncidentDispositionTaxonomyPredicate(str, Enum): - INCIDENT = "incident" - NOT_AN_INCIDENT = "not-an-incident" - DUPLICATE = "duplicate" - - -class IncidentDispositionTaxonomyIncidentEntry(str, Enum): - CONFIRMED = "confirmed" - DEFERRED = "deferred" - UNIDENTIFIED = "unidentified" - TRANSFERRED = "transferred" - DISCARDED = "discarded" - SILENTLY_DISCARDED = "silently-discarded" - - -class IncidentDispositionTaxonomyNotAnIncidentEntry(str, Enum): - INSUFFICIENT_DATA = "insufficient-data" - FAULTY_INDICATOR = "faulty-indicator" - MISCONFIGURATION = "misconfiguration" - SCAN_PROBE = "scan-probe" - FAILED = "failed" - REFUTED = "refuted" - - -class IncidentDispositionTaxonomyDuplicateEntry(str, Enum): - DUPLICATE = "duplicate" - - -class IncidentDispositionTaxonomy(BaseModel): - """Model for the incident-disposition taxonomy.""" - - namespace: str = "incident-disposition" - description: str = """How an incident is classified in its process to be resolved. The taxonomy is inspired from NASA Incident Response and Management Handbook. https://www.nasa.gov/pdf/589502main_ITS-HBK-2810.09-02%20%5bNASA%20Information%20Security%20Incident%20Management%5d.pdf#page=9""" - version: int = 2 - exclusive: bool = False - predicates: List[IncidentDispositionTaxonomyPredicate] = [] - incident_entries: List[IncidentDispositionTaxonomyIncidentEntry] = [] - not_an_incident_entries: List[IncidentDispositionTaxonomyNotAnIncidentEntry] = [] - duplicate_entries: List[IncidentDispositionTaxonomyDuplicateEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/infoleak.py b/src/openmisp/models/taxonomies/infoleak.py deleted file mode 100644 index 544e735..0000000 --- a/src/openmisp/models/taxonomies/infoleak.py +++ /dev/null @@ -1,153 +0,0 @@ -"""Taxonomy model for infoleak.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InfoleakTaxonomyPredicate(str, Enum): - AUTOMATIC_DETECTION = "automatic-detection" - ANALYST_DETECTION = "analyst-detection" - CONFIRMED = "confirmed" - SOURCE = "source" - SUBMISSION = "submission" - OUTPUT_FORMAT = "output-format" - CERTAINTY = "certainty" - - -class InfoleakTaxonomyAutomaticDetectionEntry(str, Enum): - CREDENTIAL = "credential" - CREDIT_CARD = "credit-card" - IBAN = "iban" - IP = "ip" - MAIL = "mail" - PHONE_NUMBER = "phone-number" - API_KEY = "api-key" - GOOGLE_API_KEY = "google-api-key" - AWS_KEY = "aws-key" - PRIVATE_KEY = "private-key" - ENCRYPTED_PRIVATE_KEY = "encrypted-private-key" - PRIVATE_SSH_KEY = "private-ssh-key" - PRIVATE_STATIC_KEY = "private-static-key" - VPN_STATIC_KEY = "vpn-static-key" - PGP_MESSAGE = "pgp-message" - PGP_PUBLIC_KEY_BLOCK = "pgp-public-key-block" - PGP_SIGNATURE = "pgp-signature" - PGP_PRIVATE_KEY = "pgp-private-key" - CERTIFICATE = "certificate" - RSA_PRIVATE_KEY = "rsa-private-key" - DSA_PRIVATE_KEY = "dsa-private-key" - EC_PRIVATE_KEY = "ec-private-key" - PUBLIC_KEY = "public-key" - BASE64 = "base64" - BINARY = "binary" - HEXADECIMAL = "hexadecimal" - BITCOIN_ADDRESS = "bitcoin-address" - BITCOIN_PRIVATE_KEY = "bitcoin-private-key" - CVE = "cve" - ONION = "onion" - BARCODE = "barcode" - QRCODE = "qrcode" - SQL_INJECTION = "sql-injection" - - -class InfoleakTaxonomyAnalystDetectionEntry(str, Enum): - CREDENTIAL = "credential" - CREDIT_CARD = "credit-card" - IBAN = "iban" - IP = "ip" - MAIL = "mail" - PHONE_NUMBER = "phone-number" - API_KEY = "api-key" - GOOGLE_API_KEY = "google-api-key" - AWS_KEY = "aws-key" - PRIVATE_KEY = "private-key" - ENCRYPTED_PRIVATE_KEY = "encrypted-private-key" - PRIVATE_SSH_KEY = "private-ssh-key" - PRIVATE_STATIC_KEY = "private-static-key" - VPN_STATIC_KEY = "vpn-static-key" - PGP_MESSAGE = "pgp-message" - PGP_PUBLIC_KEY_BLOCK = "pgp-public-key-block" - PGP_SIGNATURE = "pgp-signature" - PGP_PRIVATE_KEY = "pgp-private-key" - CERTIFICATE = "certificate" - RSA_PRIVATE_KEY = "rsa-private-key" - DSA_PRIVATE_KEY = "dsa-private-key" - EC_PRIVATE_KEY = "ec-private-key" - PUBLIC_KEY = "public-key" - BASE64 = "base64" - BINARY = "binary" - HEXADECIMAL = "hexadecimal" - BITCOIN_ADDRESS = "bitcoin-address" - BITCOIN_PRIVATE_KEY = "bitcoin-private-key" - CVE = "cve" - ONION = "onion" - BARCODE = "barcode" - QRCODE = "qrcode" - SQL_INJECTION = "sql-injection" - - -class InfoleakTaxonomyConfirmedEntry(str, Enum): - FALSE_POSITIVE = "false-positive" - FALSE_NEGATIVE = "false-negative" - TRUE_POSITIVE = "true-positive" - TRUE_NEGATIVE = "true-negative" - - -class InfoleakTaxonomySourceEntry(str, Enum): - PUBLIC_WEBSITE = "public-website" - PASTIE_WEBSITE = "pastie-website" - ELECTRONIC_FORUM = "electronic-forum" - MAILING_LIST = "mailing-list" - SOURCE_CODE_REPOSITORY = "source-code-repository" - AUTOMATIC_COLLECTION = "automatic-collection" - MANUAL_ANALYSIS = "manual-analysis" - UNKNOWN = "unknown" - OTHER = "other" - - -class InfoleakTaxonomySubmissionEntry(str, Enum): - MANUAL = "manual" - AUTOMATIC = "automatic" - CRAWLER = "crawler" - - -class InfoleakTaxonomyOutputFormatEntry(str, Enum): - AIL_DAILY = "ail-daily" - AIL_WEEKLY = "ail-weekly" - AIL_MONTHLY = "ail-monthly" - - -class InfoleakTaxonomyCertaintyEntry(str, Enum): - T_100 = "100" - T_93 = "93" - T_75 = "75" - T_50 = "50" - T_30 = "30" - T_7 = "7" - T_0 = "0" - - -class InfoleakTaxonomy(BaseModel): - """Model for the infoleak taxonomy.""" - - namespace: str = "infoleak" - description: str = """A taxonomy describing information leaks and especially information classified as being potentially leaked. The taxonomy is based on the work by CIRCL on the AIL framework. The taxonomy aim is to be used at large to improve classification of leaked information.""" - version: int = 10 - exclusive: bool = False - predicates: List[InfoleakTaxonomyPredicate] = [] - automatic_detection_entries: List[InfoleakTaxonomyAutomaticDetectionEntry] = [] - analyst_detection_entries: List[InfoleakTaxonomyAnalystDetectionEntry] = [] - confirmed_entries: List[InfoleakTaxonomyConfirmedEntry] = [] - source_entries: List[InfoleakTaxonomySourceEntry] = [] - submission_entries: List[InfoleakTaxonomySubmissionEntry] = [] - output_format_entries: List[InfoleakTaxonomyOutputFormatEntry] = [] - certainty_entries: List[InfoleakTaxonomyCertaintyEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/information_origin.py b/src/openmisp/models/taxonomies/information_origin.py deleted file mode 100644 index e420897..0000000 --- a/src/openmisp/models/taxonomies/information_origin.py +++ /dev/null @@ -1,29 +0,0 @@ -"""Taxonomy model for information-origin.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InformationOriginTaxonomyPredicate(str, Enum): - HUMAN_GENERATED = "human-generated" - AI_GENERATED = "AI-generated" - UNCERTAIN_ORIGIN = "uncertain-origin" - - -class InformationOriginTaxonomy(BaseModel): - """Model for the information-origin taxonomy.""" - - namespace: str = "information-origin" - description: str = """Taxonomy for tagging information by its origin: human-generated or AI-generated.""" - version: int = 2 - exclusive: bool = False - predicates: List[InformationOriginTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/information_security_data_source.py b/src/openmisp/models/taxonomies/information_security_data_source.py deleted file mode 100644 index f7a3552..0000000 --- a/src/openmisp/models/taxonomies/information_security_data_source.py +++ /dev/null @@ -1,110 +0,0 @@ -"""Taxonomy model for information-security-data-source.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InformationSecurityDataSourceTaxonomyPredicate(str, Enum): - TYPE_OF_INFORMATION = "type-of-information" - ORIGINALITY = "originality" - TIMELINESS_SHARING_BEHAVIOR = "timeliness-sharing-behavior" - INTEGRABILITY_FORMAT = "integrability-format" - INTEGRABILITY_INTERFACE = "integrability-interface" - TRUSTWORTHINESS_CREDITABILILY = "trustworthiness-creditabilily" - TRUSTWORTHINESS_TRACEABILITY = "trustworthiness-traceability" - TRUSTWORTHINESS_FEEDBACK_MECHANISM = "trustworthiness-feedback-mechanism" - TYPE_OF_SOURCE = "type-of-source" - - -class InformationSecurityDataSourceTaxonomyTypeOfInformationEntry(str, Enum): - VULNERABILITY = "vulnerability" - THREAT = "threat" - COUNTERMEASURE = "countermeasure" - ATTACK = "attack" - RISK = "risk" - ASSET = "asset" - - -class InformationSecurityDataSourceTaxonomyOriginalityEntry(str, Enum): - ORIGINAL_SOURCE = "original-source" - SECONDARY_SOURCE = "secondary-source" - - -class InformationSecurityDataSourceTaxonomyTimelinessSharingBehaviorEntry(str, Enum): - ROUTINE_SHARING = "routine-sharing" - INCIDENT_SPECIFIC = "incident-specific" - - -class InformationSecurityDataSourceTaxonomyIntegrabilityFormatEntry(str, Enum): - STRUCTURED = "structured" - UNSTRUCTURED = "unstructured" - - -class InformationSecurityDataSourceTaxonomyIntegrabilityInterfaceEntry(str, Enum): - NO_INTERFACE = "no-interface" - API = "api" - RSS_FEEDS = "rss-feeds" - EXPORT = "export" - - -class InformationSecurityDataSourceTaxonomyTrustworthinessCreditabililyEntry(str, Enum): - VENDOR = "vendor" - GOVERNMENT = "government" - SECURITY_EXPERT = "security-expert" - NORMAL_USER = "normal-user" - - -class InformationSecurityDataSourceTaxonomyTrustworthinessTraceabilityEntry(str, Enum): - YES = "yes" - NO = "no" - - -class InformationSecurityDataSourceTaxonomyTrustworthinessFeedbackMechanismEntry(str, Enum): - YES = "yes" - NO = "no" - - -class InformationSecurityDataSourceTaxonomyTypeOfSourceEntry(str, Enum): - NEWS_WEBSITE = "news-website" - EXPERT_BLOG = "expert-blog" - SECURITY_PRODUCT_VENDOR_WEBSITE = "security-product-vendor-website" - VULNERABILITY_DATABASE = "vulnerability-database" - MAILING_LIST_ARCHIVE = "mailing-list-archive" - SOCIAL_NETWORK = "social-network" - STREAMING_PORTAL = "streaming-portal" - FORUM = "forum" - OTHER = "other" - - -class InformationSecurityDataSourceTaxonomy(BaseModel): - """Model for the information-security-data-source taxonomy.""" - - namespace: str = "information-security-data-source" - description: str = """Taxonomy to classify the information security data sources.""" - version: int = 1 - exclusive: bool = False - predicates: List[InformationSecurityDataSourceTaxonomyPredicate] = [] - type_of_information_entries: List[InformationSecurityDataSourceTaxonomyTypeOfInformationEntry] = [] - originality_entries: List[InformationSecurityDataSourceTaxonomyOriginalityEntry] = [] - timeliness_sharing_behavior_entries: List[InformationSecurityDataSourceTaxonomyTimelinessSharingBehaviorEntry] = [] - integrability_format_entries: List[InformationSecurityDataSourceTaxonomyIntegrabilityFormatEntry] = [] - integrability_interface_entries: List[InformationSecurityDataSourceTaxonomyIntegrabilityInterfaceEntry] = [] - trustworthiness_creditabilily_entries: List[ - InformationSecurityDataSourceTaxonomyTrustworthinessCreditabililyEntry - ] = [] - trustworthiness_traceability_entries: List[ - InformationSecurityDataSourceTaxonomyTrustworthinessTraceabilityEntry - ] = [] - trustworthiness_feedback_mechanism_entries: List[ - InformationSecurityDataSourceTaxonomyTrustworthinessFeedbackMechanismEntry - ] = [] - type_of_source_entries: List[InformationSecurityDataSourceTaxonomyTypeOfSourceEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/information_security_indicators.py b/src/openmisp/models/taxonomies/information_security_indicators.py deleted file mode 100644 index 671b858..0000000 --- a/src/openmisp/models/taxonomies/information_security_indicators.py +++ /dev/null @@ -1,175 +0,0 @@ -"""Taxonomy model for information-security-indicators.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InformationSecurityIndicatorsTaxonomyPredicate(str, Enum): - IEX = "IEX" - IMF = "IMF" - IDB = "IDB" - IWH = "IWH" - VBH = "VBH" - VSW = "VSW" - VCF = "VCF" - VTC = "VTC" - VOR = "VOR" - IMP = "IMP" - - -class InformationSecurityIndicatorsTaxonomyIexEntry(str, Enum): - FGY_1 = "FGY.1" - FGY_2 = "FGY.2" - SPM_1 = "SPM.1" - PHI_1 = "PHI.1" - PHI_2 = "PHI.2" - INT_1 = "INT.1" - INT_2 = "INT.2" - INT_3 = "INT.3" - DFC_1 = "DFC.1" - MIS_1 = "MIS.1" - DOS_1 = "DOS.1" - MLW_1 = "MLW.1" - MLW_2 = "MLW.2" - MLW_3 = "MLW.3" - MLW_4 = "MLW.4" - PHY_1 = "PHY.1" - - -class InformationSecurityIndicatorsTaxonomyImfEntry(str, Enum): - BRE_1 = "BRE.1" - BRE_2 = "BRE.2" - BRE_3 = "BRE.3" - BRE_4 = "BRE.4" - MDL_1 = "MDL.1" - LOM_1 = "LOM.1" - LOG_1 = "LOG.1" - LOG_2 = "LOG.2" - LOG_3 = "LOG.3" - - -class InformationSecurityIndicatorsTaxonomyIdbEntry(str, Enum): - UID_1 = "UID.1" - RGH_1 = "RGH.1" - RGH_2 = "RGH.2" - RGH_3 = "RGH.3" - RGH_4 = "RGH.4" - RGH_5 = "RGH.5" - RGH_6 = "RGH.6" - RGH_7 = "RGH.7" - MIS_1 = "MIS.1" - IAC_1 = "IAC.1" - LOG_1 = "LOG.1" - - -class InformationSecurityIndicatorsTaxonomyIwhEntry(str, Enum): - VNP_1 = "VNP.1" - VNP_2 = "VNP.2" - VNP_3 = "VNP.3" - VCN_1 = "VCN.1" - UKN_1 = "UKN.1" - UNA_1 = "UNA.1" - - -class InformationSecurityIndicatorsTaxonomyVbhEntry(str, Enum): - PRC_1 = "PRC.1" - PRC_2 = "PRC.2" - PRC_3 = "PRC.3" - PRC_4 = "PRC.4" - PRC_5 = "PRC.5" - PRC_6 = "PRC.6" - IAC_1 = "IAC.1" - IAC_2 = "IAC.2" - FTR_1 = "FTR.1" - FTR_2 = "FTR.2" - FTR_3 = "FTR.3" - WTI_1 = "WTI.1" - WTI_2 = "WTI.2" - WTI_3 = "WTI.3" - WTI_4 = "WTI.4" - WTI_5 = "WTI.5" - WTI_6 = "WTI.6" - PSW_1 = "PSW.1" - PSW_2 = "PSW.2" - PSW_3 = "PSW.3" - RGH_1 = "RGH.1" - HUW_1 = "HUW.1" - HUW_2 = "HUW.2" - - -class InformationSecurityIndicatorsTaxonomyVswEntry(str, Enum): - WSR_1 = "WSR.1" - OSW_1 = "OSW.1" - WBR_1 = "WBR.1" - - -class InformationSecurityIndicatorsTaxonomyVcfEntry(str, Enum): - DIS_1 = "DIS.1" - LOG_1 = "LOG.1" - FWR_1 = "FWR.1" - WTI_1 = "WTI.1" - WTI_2 = "WTI.2" - UAC_1 = "UAC.1" - UAC_2 = "UAC.2" - UAC_3 = "UAC.3" - UAC_4 = "UAC.4" - UAC_5 = "UAC.5" - - -class InformationSecurityIndicatorsTaxonomyVtcEntry(str, Enum): - BKP_1 = "BKP.1" - IDS_1 = "IDS.1" - WFI_1 = "WFI.1" - RAP_1 = "RAP.1" - NRG_1 = "NRG.1" - PHY_1 = "PHY.1" - - -class InformationSecurityIndicatorsTaxonomyVorEntry(str, Enum): - DSC_1 = "DSC.1" - VNP_1 = "VNP.1" - VNP_2 = "VNP.2" - VNR_1 = "VNR.1" - RCT_1 = "RCT.1" - RCT_2 = "RCT.2" - PRT_1 = "PRT.1" - PRT_2 = "PRT.2" - PRT_3 = "PRT.3" - - -class InformationSecurityIndicatorsTaxonomyImpEntry(str, Enum): - COS_1 = "COS.1" - TIM_1 = "TIM.1" - TIM_2 = "TIM.2" - TIM_3 = "TIM.3" - - -class InformationSecurityIndicatorsTaxonomy(BaseModel): - """Model for the information-security-indicators taxonomy.""" - - namespace: str = "information-security-indicators" - description: str = ( - """A full set of operational indicators for organizations to use to benchmark their security posture.""" - ) - version: int = 1 - exclusive: bool = False - predicates: List[InformationSecurityIndicatorsTaxonomyPredicate] = [] - iex_entries: List[InformationSecurityIndicatorsTaxonomyIexEntry] = [] - imf_entries: List[InformationSecurityIndicatorsTaxonomyImfEntry] = [] - idb_entries: List[InformationSecurityIndicatorsTaxonomyIdbEntry] = [] - iwh_entries: List[InformationSecurityIndicatorsTaxonomyIwhEntry] = [] - vbh_entries: List[InformationSecurityIndicatorsTaxonomyVbhEntry] = [] - vsw_entries: List[InformationSecurityIndicatorsTaxonomyVswEntry] = [] - vcf_entries: List[InformationSecurityIndicatorsTaxonomyVcfEntry] = [] - vtc_entries: List[InformationSecurityIndicatorsTaxonomyVtcEntry] = [] - vor_entries: List[InformationSecurityIndicatorsTaxonomyVorEntry] = [] - imp_entries: List[InformationSecurityIndicatorsTaxonomyImpEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/interactive_cyber_training_audience.py b/src/openmisp/models/taxonomies/interactive_cyber_training_audience.py deleted file mode 100644 index e00c811..0000000 --- a/src/openmisp/models/taxonomies/interactive_cyber_training_audience.py +++ /dev/null @@ -1,66 +0,0 @@ -"""Taxonomy model for Interactive Cyber Training - Audience.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InteractiveCyberTrainingAudienceTaxonomyPredicate(str, Enum): - SECTOR = "sector" - PURPOSE = "purpose" - PROFICIENCY_LEVEL = "proficiency-level" - TARGET_AUDIENCE = "target-audience" - - -class InteractiveCyberTrainingAudienceTaxonomySectorEntry(str, Enum): - ACADEMIC_SCHOOL = "academic-school" - ACADEMIC_UNIVERSITY = "academic-university" - PUBLIC_GOVERNMENT = "public-government" - PUBLIC_AUTHORITIES = "public-authorities" - PUBLIC_NGO = "public-ngo" - PUBLIC_MILITARY = "public-military" - PRIVATE = "private" - - -class InteractiveCyberTrainingAudienceTaxonomyPurposeEntry(str, Enum): - AWARENESS = "awareness" - SKILLS = "skills" - COLLABORATION = "collaboration" - COMMUNICATION = "communication" - LEADERSHIP = "leadership" - - -class InteractiveCyberTrainingAudienceTaxonomyProficiencyLevelEntry(str, Enum): - BEGINNER = "beginner" - PROFESSIONAL = "professional" - EXPERT = "expert" - - -class InteractiveCyberTrainingAudienceTaxonomyTargetAudienceEntry(str, Enum): - STUDENT_TRAINEE = "student-trainee" - IT_USER = "it-user" - IT_PROFESSIONAL = "it-professional" - IT_SPECIALIST = "it-specialist" - MANAGEMENT = "management" - - -class InteractiveCyberTrainingAudienceTaxonomy(BaseModel): - """Model for the Interactive Cyber Training - Audience taxonomy.""" - - namespace: str = "interactive-cyber-training-audience" - description: str = """Describes the target of cyber training and education.""" - version: int = 1 - exclusive: bool = False - predicates: List[InteractiveCyberTrainingAudienceTaxonomyPredicate] = [] - sector_entries: List[InteractiveCyberTrainingAudienceTaxonomySectorEntry] = [] - purpose_entries: List[InteractiveCyberTrainingAudienceTaxonomyPurposeEntry] = [] - proficiency_level_entries: List[InteractiveCyberTrainingAudienceTaxonomyProficiencyLevelEntry] = [] - target_audience_entries: List[InteractiveCyberTrainingAudienceTaxonomyTargetAudienceEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/interactive_cyber_training_technical_setup.py b/src/openmisp/models/taxonomies/interactive_cyber_training_technical_setup.py deleted file mode 100644 index d2c756e..0000000 --- a/src/openmisp/models/taxonomies/interactive_cyber_training_technical_setup.py +++ /dev/null @@ -1,59 +0,0 @@ -"""Taxonomy model for Interactive Cyber Training - Technical Setup.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InteractiveCyberTrainingTechnicalSetupTaxonomyPredicate(str, Enum): - ENVIRONMENT_STRUCTURE = "environment-structure" - DEPLOYMENT = "deployment" - ORCHESTRATION = "orchestration" - - -class InteractiveCyberTrainingTechnicalSetupTaxonomyEnvironmentStructureEntry(str, Enum): - TABLETOP_STYLE = "tabletop-style" - ONLINE_COLLABORATION_PLATFORM = "online-collaboration-platform" - ONLINE_E_LEARNING_PLATFORM = "online-e-learning-platform" - HOSTING = "hosting" - SIMULATED_NETWORK_INFRASTRUCTURE = "simulated-network-infrastructure" - EMULATED_NETWORK_INFRASTRUCTURE = "emulated-network-infrastructure" - REAL_NETWORK_INFRASTRUCTURE = "real-network-infrastructure" - - -class InteractiveCyberTrainingTechnicalSetupTaxonomyDeploymentEntry(str, Enum): - PHYSICAL_ON_PREMISE = "physical-on-premise" - VIRTUAL_ON_PREMISE = "virtual-on-premise" - CLOUD = "cloud" - - -class InteractiveCyberTrainingTechnicalSetupTaxonomyOrchestrationEntry(str, Enum): - NONE_AUTOMATION = "none-automation" - PARTIALLY_AUTOMATION = "partially-automation" - COMPLETE_AUTOMATION = "complete-automation" - PORTABILITY_MISCELLANEOUS = "portability-miscellaneous" - PORTABILITY_EXCHANGENABLE_FORMAT = "portability-exchangenable-format" - MAINTAINABILITY_MODIFIABILITY = "maintainability-modifiability" - MAINTAINABILITY_MODULARITY = "maintainability-modularity" - COMPATIBILITY = "compatibility" - - -class InteractiveCyberTrainingTechnicalSetupTaxonomy(BaseModel): - """Model for the Interactive Cyber Training - Technical Setup taxonomy.""" - - namespace: str = "interactive-cyber-training-technical-setup" - description: str = """The technical setup consists of environment structure, deployment, and orchestration.""" - version: int = 1 - exclusive: bool = False - predicates: List[InteractiveCyberTrainingTechnicalSetupTaxonomyPredicate] = [] - environment_structure_entries: List[InteractiveCyberTrainingTechnicalSetupTaxonomyEnvironmentStructureEntry] = [] - deployment_entries: List[InteractiveCyberTrainingTechnicalSetupTaxonomyDeploymentEntry] = [] - orchestration_entries: List[InteractiveCyberTrainingTechnicalSetupTaxonomyOrchestrationEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/interactive_cyber_training_training_environment.py b/src/openmisp/models/taxonomies/interactive_cyber_training_training_environment.py deleted file mode 100644 index 40e3b38..0000000 --- a/src/openmisp/models/taxonomies/interactive_cyber_training_training_environment.py +++ /dev/null @@ -1,68 +0,0 @@ -"""Taxonomy model for Interactive Cyber Training - Training Environment.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InteractiveCyberTrainingTrainingEnvironmentTaxonomyPredicate(str, Enum): - TRAINING_TYPE = "training-type" - SCENARIO = "scenario" - - -class InteractiveCyberTrainingTrainingEnvironmentTaxonomyTrainingTypeEntry(str, Enum): - TABLETOP_GAME_SPEECH = "tabletop-game-speech" - TABLETOP_GAME_TEXT = "tabletop-game-text" - TABLETOP_GAME_MULTIMEDIA = "tabletop-game-multimedia" - CAPTURE_THE_FLAG_QUIZ = "capture-the-flag-quiz" - CAPTURE_THE_FLAG_JEOPARDY = "capture-the-flag-jeopardy" - CAPTURE_THE_FLAG_ATTACK = "capture-the-flag-attack" - CAPTURE_THE_FLAG_DEFENCE = "capture-the-flag-defence" - CAPTURE_THE_FLAG_ATTACK_DEFENCE = "capture-the-flag-attack-defence" - CYBER_TRAINING_RANGE_CLASSROOM_PRACTICE = "cyber-training-range-classroom-practice" - CYBER_TRAINING_RANGE_SINGLE_TEAM_TRAINING = "cyber-training-range-single-team-training" - CYBER_TRAINING_RANGE_MULTIPLE_TEAM_TRAINING = "cyber-training-range-multiple-team-training" - PROJECT_APPROACH = "project-approach" - - -class InteractiveCyberTrainingTrainingEnvironmentTaxonomyScenarioEntry(str, Enum): - SUPERVISED = "supervised" - UNSUPERVISED = "unsupervised" - FREE_MULTIPLE_CHOICE = "free-multiple-choice" - PROBLEM_DRIVEN = "problem-driven" - STORYLINE_DRIVEN = "storyline-driven" - CHALLENGES_TARGET_NETWORK = "challenges-target-network" - CHALLENGES_TARGET_HOST = "challenges-target-host" - CHALLENGES_TARGET_APPLICATION = "challenges-target-application" - CHALLENGES_TARGET_PROTOCOL = "challenges-target-protocol" - CHALLENGES_TARGET_DATA = "challenges-target-data" - CHALLENGES_TARGET_PERSON = "challenges-target-person" - CHALLENGES_TARGET_PHYSICAL = "challenges-target-physical" - CHALLENGES_TYPE_FOOT_PRINTING = "challenges-type-foot-printing" - CHALLENGES_TYPE_SCANNING = "challenges-type-scanning" - CHALLENGES_TYPE_ENUMERATION = "challenges-type-enumeration" - CHALLENGES_TYPE_PIVOTING = "challenges-type-pivoting" - CHALLENGES_TYPE_EXPLOITATION = "challenges-type-exploitation" - CHALLENGES_TYPE_PRIVILEGE_ESCALATION = "challenges-type-privilege-escalation" - CHALLENGES_TYPE_COVERING_TRACKS = "challenges-type-covering-tracks" - CHALLENGES_TYPE_MAINTAINING = "challenges-type-maintaining" - - -class InteractiveCyberTrainingTrainingEnvironmentTaxonomy(BaseModel): - """Model for the Interactive Cyber Training - Training Environment taxonomy.""" - - namespace: str = "interactive-cyber-training-training-environment" - description: str = """The training environment details the environment around the training, consisting of training type and scenario.""" - version: int = 1 - exclusive: bool = False - predicates: List[InteractiveCyberTrainingTrainingEnvironmentTaxonomyPredicate] = [] - training_type_entries: List[InteractiveCyberTrainingTrainingEnvironmentTaxonomyTrainingTypeEntry] = [] - scenario_entries: List[InteractiveCyberTrainingTrainingEnvironmentTaxonomyScenarioEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/interactive_cyber_training_training_setup.py b/src/openmisp/models/taxonomies/interactive_cyber_training_training_setup.py deleted file mode 100644 index dc2f2b4..0000000 --- a/src/openmisp/models/taxonomies/interactive_cyber_training_training_setup.py +++ /dev/null @@ -1,67 +0,0 @@ -"""Taxonomy model for Interactive Cyber Training - Training Setup.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InteractiveCyberTrainingTrainingSetupTaxonomyPredicate(str, Enum): - SCORING = "scoring" - ROLES = "roles" - TRAINING_MODE = "training-mode" - CUSTOMIZATION_LEVEL = "customization-level" - - -class InteractiveCyberTrainingTrainingSetupTaxonomyScoringEntry(str, Enum): - NO_SCORING = "no-scoring" - ASSESSMENT_STATIC = "assessment-static" - ASSESSMENT_DYNAMIC = "assessment-dynamic" - AWARDING_MANUAL = "awarding-manual" - AWARDING_AUTOMATIC = "awarding-automatic" - AWARDING_MIXED = "awarding-mixed" - - -class InteractiveCyberTrainingTrainingSetupTaxonomyRolesEntry(str, Enum): - NO_SPECIFIC_ROLE = "no-specific-role" - TRANSPARENT_TEAM_OBSERVER_WATCHER = "transparent-team-observer-watcher" - WHITE_TEAM_TRAINER_INSTRUCTOR = "white-team-trainer-instructor" - GREEN_TEAM_ORGANIZER_ADMIN = "green-team-organizer-admin" - RED_TEAM_ATTACKER = "red-team-attacker" - BLUE_TEAM_DEFENDER = "blue-team-defender" - GRAY_TEAM_BYSTANDER = "gray-team-bystander" - YELLOW_TEAM_INSIDER = "yellow-team-insider" - PURPLE_TEAM_BRIDGE = "purple-team-bridge" - - -class InteractiveCyberTrainingTrainingSetupTaxonomyTrainingModeEntry(str, Enum): - SINGLE = "single" - TEAM = "team" - CROSS_GROUP = "cross-group" - - -class InteractiveCyberTrainingTrainingSetupTaxonomyCustomizationLevelEntry(str, Enum): - GENERAL = "general" - SPECIFIC = "specific" - INDIVIDUAL = "individual" - - -class InteractiveCyberTrainingTrainingSetupTaxonomy(BaseModel): - """Model for the Interactive Cyber Training - Training Setup taxonomy.""" - - namespace: str = "interactive-cyber-training-training-setup" - description: str = """The training setup further describes the training itself with the scoring, roles, the training mode as well as the customization level.""" - version: int = 1 - exclusive: bool = False - predicates: List[InteractiveCyberTrainingTrainingSetupTaxonomyPredicate] = [] - scoring_entries: List[InteractiveCyberTrainingTrainingSetupTaxonomyScoringEntry] = [] - roles_entries: List[InteractiveCyberTrainingTrainingSetupTaxonomyRolesEntry] = [] - training_mode_entries: List[InteractiveCyberTrainingTrainingSetupTaxonomyTrainingModeEntry] = [] - customization_level_entries: List[InteractiveCyberTrainingTrainingSetupTaxonomyCustomizationLevelEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/interception_method.py b/src/openmisp/models/taxonomies/interception_method.py deleted file mode 100644 index 7997f73..0000000 --- a/src/openmisp/models/taxonomies/interception_method.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Taxonomy model for Interception method.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class InterceptionMethodTaxonomyPredicate(str, Enum): - MAN_IN_THE_MIDDLE = "man-in-the-middle" - MAN_ON_THE_SIDE = "man-on-the-side" - PASSIVE = "passive" - SEARCH_RESULT_POISONING = "search-result-poisoning" - DNS = "dns" - HOST_FILE = "host-file" - OTHER = "other" - - -class InterceptionMethodTaxonomy(BaseModel): - """Model for the Interception method taxonomy.""" - - namespace: str = "interception-method" - description: str = """The interception method used to intercept traffic.""" - version: int = 1 - exclusive: bool = False - predicates: List[InterceptionMethodTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ioc.py b/src/openmisp/models/taxonomies/ioc.py deleted file mode 100644 index ad6e48a..0000000 --- a/src/openmisp/models/taxonomies/ioc.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Taxonomy model for ioc.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class IocTaxonomyPredicate(str, Enum): - ARTIFACT_STATE = "artifact-state" - - -class IocTaxonomyArtifactStateEntry(str, Enum): - MALICIOUS = "malicious" - NOT_MALICIOUS = "not-malicious" - - -class IocTaxonomy(BaseModel): - """Model for the ioc taxonomy.""" - - namespace: str = "ioc" - description: str = """An IOC classification to facilitate automation of malicious and non malicious artifacts""" - version: int = 2 - exclusive: bool = False - predicates: List[IocTaxonomyPredicate] = [] - artifact_state_entries: List[IocTaxonomyArtifactStateEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/iot.py b/src/openmisp/models/taxonomies/iot.py deleted file mode 100644 index 70cfcfa..0000000 --- a/src/openmisp/models/taxonomies/iot.py +++ /dev/null @@ -1,59 +0,0 @@ -"""Taxonomy model for Internet of Things.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class IotTaxonomyPredicate(str, Enum): - TCOM = "TCom" - SSL = "SSL" - DSL = "DSL" - - -class IotTaxonomyTcomEntry(str, Enum): - T_0 = "0" - T_1 = "1" - T_2 = "2" - T_3 = "3" - T_4 = "4" - T_5 = "5" - T_6 = "6" - T_7 = "7" - - -class IotTaxonomySslEntry(str, Enum): - T_0 = "0" - T_1 = "1" - T_2 = "2" - T_3 = "3" - T_4 = "4" - - -class IotTaxonomyDslEntry(str, Enum): - T_0 = "0" - T_1 = "1" - T_2 = "2" - T_3 = "3" - T_4 = "4" - - -class IotTaxonomy(BaseModel): - """Model for the Internet of Things taxonomy.""" - - namespace: str = "iot" - description: str = """Internet of Things taxonomy, based on IOT UK report https://iotuk.org.uk/wp-content/uploads/2017/01/IOT-Taxonomy-Report.pdf""" - version: int = 2 - exclusive: bool = False - predicates: List[IotTaxonomyPredicate] = [] - tcom_entries: List[IotTaxonomyTcomEntry] = [] - ssl_entries: List[IotTaxonomySslEntry] = [] - dsl_entries: List[IotTaxonomyDslEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/kill_chain.py b/src/openmisp/models/taxonomies/kill_chain.py deleted file mode 100644 index 98c3cea..0000000 --- a/src/openmisp/models/taxonomies/kill_chain.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Taxonomy model for Cyber Kill Chain.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class KillChainTaxonomyPredicate(str, Enum): - RECONNAISSANCE = "Reconnaissance" - WEAPONIZATION = "Weaponization" - DELIVERY = "Delivery" - EXPLOITATION = "Exploitation" - INSTALLATION = "Installation" - COMMAND_AND_CONTROL = "Command and Control" - ACTIONS_ON_OBJECTIVES = "Actions on Objectives" - - -class KillChainTaxonomy(BaseModel): - """Model for the Cyber Kill Chain taxonomy.""" - - namespace: str = "kill-chain" - description: str = """The Cyber Kill Chain, a phase-based model developed by Lockheed Martin, aims to help categorise and identify the stage of an attack.""" - version: int = 2 - exclusive: bool = False - predicates: List[KillChainTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/maec_delivery_vectors.py b/src/openmisp/models/taxonomies/maec_delivery_vectors.py deleted file mode 100644 index 0789ebe..0000000 --- a/src/openmisp/models/taxonomies/maec_delivery_vectors.py +++ /dev/null @@ -1,48 +0,0 @@ -"""Taxonomy model for maec-delivery-vectors.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MaecDeliveryVectorsTaxonomyPredicate(str, Enum): - MAEC_DELIVERY_VECTOR = "maec-delivery-vector" - - -class MaecDeliveryVectorsTaxonomyMaecDeliveryVectorEntry(str, Enum): - ACTIVE_ATTACKER = "active-attacker" - AUTO_EXECUTING_MEDIA = "auto-executing-media" - DOWNLOADER = "downloader" - DROPPER = "dropper" - EMAIL_ATTACHMENT = "email-attachment" - EXPLOIT_KIT_LANDING_PAGE = "exploit-kit-landing-page" - FAKE_WEBSITE = "fake-website" - JANITOR_ATTACK = "janitor-attack" - MALICIOUS_IFRAMES = "malicious-iframes" - MALVERTISING = "malvertising" - MEDIA_BAITING = "media-baiting" - PHARMING = "pharming" - PHISHING = "phishing" - TROJANIZED_LINK = "trojanized-link" - TROJANIZED_SOFTWARE = "trojanized-software" - USB_CABLE_SYNCING = "usb-cable-syncing" - WATERING_HOLE = "watering-hole" - - -class MaecDeliveryVectorsTaxonomy(BaseModel): - """Model for the maec-delivery-vectors taxonomy.""" - - namespace: str = "maec-delivery-vectors" - description: str = """Vectors used to deliver malware based on MAEC 5.0""" - version: int = 1 - exclusive: bool = False - predicates: List[MaecDeliveryVectorsTaxonomyPredicate] = [] - maec_delivery_vector_entries: List[MaecDeliveryVectorsTaxonomyMaecDeliveryVectorEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/maec_malware_behavior.py b/src/openmisp/models/taxonomies/maec_malware_behavior.py deleted file mode 100644 index 0840572..0000000 --- a/src/openmisp/models/taxonomies/maec_malware_behavior.py +++ /dev/null @@ -1,179 +0,0 @@ -"""Taxonomy model for maec-malware-behavior.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MaecMalwareBehaviorTaxonomyPredicate(str, Enum): - MAEC_MALWARE_BEHAVIOR = "maec-malware-behavior" - - -class MaecMalwareBehaviorTaxonomyMaecMalwareBehaviorEntry(str, Enum): - ACCESS_PREMIUM_SERVICE = "access-premium-service" - AUTONOMOUS_REMOTE_INFECTION = "autonomous-remote-infection" - BLOCK_SECURITY_WEBSITES = "block-security-websites" - CAPTURE_CAMERA_INPUT = "capture-camera-input" - CAPTURE_FILE_SYSTEM_DATA = "capture-file-system-data" - CAPTURE_GPS_DATA = "capture-gps-data" - CAPTURE_KEYBOARD_INPUT = "capture-keyboard-input" - CAPTURE_MICROPHONE_INPUT = "capture-microphone-input" - CAPTURE_MOUSE_INPUT = "capture-mouse-input" - CAPTURE_PRINTER_OUTPUT = "capture-printer-output" - CAPTURE_SYSTEM_MEMORY = "capture-system-memory" - CAPTURE_SYSTEM_NETWORK_TRAFFIC = "capture-system-network-traffic" - CAPTURE_SYSTEM_SCREENSHOT = "capture-system-screenshot" - CAPTURE_TOUCHSCREEN_INPUT = "capture-touchscreen-input" - CHECK_FOR_PAYLOAD = "check-for-payload" - CLICK_FRAUD = "click-fraud" - COMPARE_HOST_FINGERPRINTS = "compare-host-fingerprints" - COMPROMISE_REMOTE_MACHINE = "compromise-remote-machine" - CONTROL_LOCAL_MACHINE_VIA_REMOTE_COMMAND = "control-local-machine-via-remote-command" - CONTROL_MALWARE_VIA_REMOTE_COMMAND = "control-malware-via-remote-command" - CRACK_PASSWORDS = "crack-passwords" - DEFEAT_CALL_GRAPH_GENERATION = "defeat-call-graph-generation" - DEFEAT_EMULATOR = "defeat-emulator" - DEFEAT_FLOW_ORIENTED_DISASSEMBLER = "defeat-flow-oriented-disassembler" - DEFEAT_LINEAR_DISASSEMBLER = "defeat-linear-disassembler" - DEGRADE_SECURITY_PROGRAM = "degrade-security-program" - DENIAL_OF_SERVICE = "denial-of-service" - DESTROY_HARDWARE = "destroy-hardware" - DETECT_DEBUGGING = "detect-debugging" - DETECT_EMULATOR = "detect-emulator" - DETECT_INSTALLED_ANALYSIS_TOOLS = "detect-installed-analysis-tools" - DETECT_INSTALLED_AV_TOOLS = "detect-installed-av-tools" - DETECT_SANDBOX_ENVIRONMENT = "detect-sandbox-environment" - DETECT_VM_ENVIRONMENT = "detect-vm-environment" - DETERMINE_HOST_IP_ADDRESS = "determine-host-ip-address" - DISABLE_ACCESS_RIGHTS_CHECKING = "disable-access-rights-checking" - DISABLE_FIREWALL = "disable-firewall" - DISABLE_KERNEL_PATCH_PROTECTION = "disable-kernel-patch-protection" - DISABLE_OS_SECURITY_ALERTS = "disable-os-security-alerts" - DISABLE_PRIVILEGE_LIMITING = "disable-privilege-limiting" - DISABLE_SERVICE_PACK_PATCH_INSTALLATION = "disable-service-pack-patch-installation" - DISABLE_SYSTEM_FILE_OVERWRITE_PROTECTION = "disable-system-file-overwrite-protection" - DISABLE_UPDATE_SERVICES_DAEMONS = "disable-update-services-daemons" - DISABLE_USER_ACCOUNT_CONTROL = "disable-user-account-control" - DROP_RETRIEVE_DEBUG_LOG_FILE = "drop-retrieve-debug-log-file" - ELEVATE_PRIVILEGE = "elevate-privilege" - ENCRYPT_DATA = "encrypt-data" - ENCRYPT_FILES = "encrypt-files" - ENCRYPT_SELF = "encrypt-self" - ERASE_DATA = "erase-data" - EVADE_STATIC_HEURISTIC = "evade-static-heuristic" - EXECUTE_BEFORE_EXTERNAL_TO_KERNEL_HYPERVISOR = "execute-before-external-to-kernel-hypervisor" - EXECUTE_NON_MAIN_CPU_CODE = "execute-non-main-cpu-code" - EXECUTE_STEALTHY_CODE = "execute-stealthy-code" - EXFILTRATE_DATA_VIA_COVERT_CHANNEL = "exfiltrate-data-via-covert channel" - EXFILTRATE_DATA_VIA__DUMPSTER_DIVE = "exfiltrate-data-via--dumpster-dive" - EXFILTRATE_DATA_VIA_FAX = "exfiltrate-data-via-fax" - EXFILTRATE_DATA_VIA_NETWORK = "exfiltrate-data-via-network" - EXFILTRATE_DATA_VIA_PHYSICAL_MEDIA = "exfiltrate-data-via-physical-media" - EXFILTRATE_DATA_VIA_VOIP_PHONE = "exfiltrate-data-via-voip-phone" - FEED_MISINFORMATION_DURING_PHYSICAL_MEMORY_ACQUISITION = "feed-misinformation-during-physical-memory-acquisition" - FILE_SYSTEM_INSTANTIATION = "file-system-instantiation" - FINGERPRINT_HOST = "fingerprint-host" - GENERATE_C2_DOMAIN_NAMES = "generate-c2-domain-names" - HIDE_ARBITRARY_VIRTUAL_MEMORY = "hide-arbitrary-virtual-memory" - HIDE_DATA_IN_OTHER_FORMATS = "hide-data-in-other-formats" - HIDE_FILE_SYSTEM_ARTIFACTS = "hide-file-system-artifacts" - HIDE_KERNEL_MODULES = "hide-kernel-modules" - HIDE_NETWORK_TRAFFIC = "hide-network-traffic" - HIDE_OPEN_NETWORK_PORTS = "hide-open-network-ports" - HIDE_PROCESSES = "hide-processes" - HIDE_SERVICES = "hide-services" - HIDE_THREADS = "hide-threads" - HIDE_USERSPACE_LIBRARIES = "hide-userspace-libraries" - IDENTIFY_FILE = "identify-file" - IDENTIFY_OS = "identify-os" - IDENTIFY_TARGET_MACHINES = "identify-target-machines" - IMPERSONATE_USER = "impersonate-user" - INSTALL_BACKDOOR = "install-backdoor" - INSTALL_LEGITIMATE_SOFTWARE = "install-legitimate-software" - INSTALL_SECONDARY_MALWARE = "install-secondary-malware" - INSTALL_SECONDARY_MODULE = "install-secondary-module" - INTERCEPT_MANIPULATE_NETWORK_TRAFFIC = "intercept-manipulate-network-traffic" - INVENTORY_SECURITY_PRODUCTS = "inventory-security-products" - INVENTORY_SYSTEM_APPLICATIONS = "inventory-system-applications" - INVENTORY_VICTIMS = "inventory-victims" - LIMIT_APPLICATION_TYPE_VERSION = "limit-application-type-version" - LOG_ACTIVITY = "log-activity" - MANIPULATE_FILE_SYSTEM_DATA = "manipulate-file-system-data" - MAP_LOCAL_NETWORK = "map-local-network" - MINE_FOR_CRYPTOCURRENCY = "mine-for-cryptocurrency" - MODIFY_FILE = "modify-file" - MODIFY_SECURITY_SOFTWARE_CONFIGURATION = "modify-security-software-configuration" - MOVE_DATA_TO_STAGING_SERVER = "move-data-to-staging-server" - OBFUSCATE_ARTIFACT_PROPERTIES = "obfuscate-artifact-properties" - OVERLOAD_SANDBOX = "overload-sandbox" - PACKAGE_DATA = "package-data" - PERSIST_AFTER_HARDWARE_CHANGES = "persist-after-hardware-changes" - PERSIST_AFTER_OS_CHANGES = "persist-after-os-changes" - PERSIST_AFTER_SYSTEM_REBOOT = "persist-after-system-reboot" - PREVENT_API_UNHOOKING = "prevent-api-unhooking" - PREVENT_CONCURRENT_EXECUTION = "prevent-concurrent-execution" - PREVENT_DEBUGGING = "prevent-debugging" - PREVENT_FILE_ACCESS = "prevent-file-access" - PREVENT_FILE_DELETION = "prevent-file-deletion" - PREVENT_MEMORY_ACCESS = "prevent-memory-access" - PREVENT_NATIVE_API_HOOKING = "prevent-native-api-hooking" - PREVENT_PHYSICAL_MEMORY_ACQUISITION = "prevent-physical-memory-acquisition" - PREVENT_REGISTRY_ACCESS = "prevent-registry-access" - PREVENT_REGISTRY_DELETION = "prevent-registry-deletion" - PREVENT_SECURITY_SOFTWARE_FROM_EXECUTING = "prevent-security-software-from-executing" - RE_INSTANTIATE_SELF = "re-instantiate-self" - REMOVE_SELF = "remove-self" - REMOVE_SMS_WARNING_MESSAGES = "remove-sms-warning-messages" - REMOVE_SYSTEM_ARTIFACTS = "remove-system-artifacts" - REQUEST_EMAIL_ADDRESS_LIST = "request-email-address-list" - REQUEST_EMAIL_TEMPLATE = "request-email-template" - SEARCH_FOR_REMOTE_MACHINES = "search-for-remote-machines" - SEND_BEACON = "send-beacon" - SEND_EMAIL_MESSAGE = "send-email-message" - SOCIAL_ENGINEERING_BASED_REMOTE_INFECTION = "social-engineering-based-remote-infection" - STEAL_BROWSER_CACHE = "steal-browser-cache" - STEAL_BROWSER_COOKIES = "steal-browser-cookies" - STEAL_BROWSER_HISTORY = "steal-browser-history" - STEAL_CONTACT_LIST_DATA = "steal-contact-list-data" - STEAL_CRYPTOCURRENCY_DATA = "steal-cryptocurrency-data" - STEAL_DATABASE_CONTENT = "steal-database-content" - STEAL_DIALED_PHONE_NUMBERS = "steal-dialed-phone-numbers" - STEAL_DIGITAL_CERTIFICATES = "steal-digital-certificates" - STEAL_DOCUMENTS = "steal-documents" - STEAL_EMAIL_DATA = "steal-email-data" - STEAL_IMAGES = "steal-images" - STEAL_PASSWORD_HASHES = "steal-password-hashes" - STEAL_PKI_KEY = "steal-pki-key" - STEAL_REFERRER_URLS = "steal-referrer-urls" - STEAL_SERIAL_NUMBERS = "steal-serial-numbers" - STEAL_SMS_DATABASE = "steal-sms-database" - STEAL_WEB_NETWORK_CREDENTIAL = "steal-web-network-credential" - STOP_EXECUTION_OF_SECURITY_SOFTWARE = "stop-execution-of-security-software" - SUICIDE_EXIT = "suicide-exit" - TEST_FOR_FIREWALL = "test-for-firewall" - TEST_FOR_INTERNET_CONNECTIVITY = "test-for-internet-connectivity" - TEST_FOR_NETWORK_DRIVES = "test-for-network-drives" - TEST_FOR_PROXY = "test-for-proxy" - TEST_SMTP_CONNECTION = "test-smtp-connection" - UPDATE_CONFIGURATION = "update-configuration" - VALIDATE_DATA = "validate-data" - WRITE_CODE_INTO_FILE = "write-code-into-file" - - -class MaecMalwareBehaviorTaxonomy(BaseModel): - """Model for the maec-malware-behavior taxonomy.""" - - namespace: str = "maec-malware-behavior" - description: str = """Malware behaviours based on MAEC 5.0""" - version: int = 1 - exclusive: bool = False - predicates: List[MaecMalwareBehaviorTaxonomyPredicate] = [] - maec_malware_behavior_entries: List[MaecMalwareBehaviorTaxonomyMaecMalwareBehaviorEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/maec_malware_capabilities.py b/src/openmisp/models/taxonomies/maec_malware_capabilities.py deleted file mode 100644 index 1f0056f..0000000 --- a/src/openmisp/models/taxonomies/maec_malware_capabilities.py +++ /dev/null @@ -1,100 +0,0 @@ -"""Taxonomy model for maec-malware-capabilities.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MaecMalwareCapabilitiesTaxonomyPredicate(str, Enum): - MAEC_MALWARE_CAPABILITY = "maec-malware-capability" - - -class MaecMalwareCapabilitiesTaxonomyMaecMalwareCapabilityEntry(str, Enum): - ANTI_BEHAVIORAL_ANALYSIS = "anti-behavioral-analysis" - ANTI_CODE_ANALYSIS = "anti-code-analysis" - ANTI_DETECTION = "anti-detection" - ANTI_REMOVAL = "anti-removal" - AVAILABILITY_VIOLATION = "availability-violation" - COLLECTION = "collection" - COMMAND_AND_CONTROL = "command-and-control" - DATA_THEFT = "data-theft" - DESTRUCTION = "destruction" - DISCOVERY = "discovery" - EXFILTRATION = "exfiltration" - FRAUD = "fraud" - INFECTION_PROPAGATION = "infection-propagation" - INTEGRITY_VIOLATION = "integrity-violation" - MACHINE_ACCESS_CONTROL = "machine-access-control" - PERSISTENCE = "persistence" - PRIVILEGE_ESCALATION = "privilege-escalation" - SECONDARY_OPERATION = "secondary-operation" - SECURITY_DEGRADATION = "security-degradation" - ACCESS_CONTROL_DEGRADATION = "access-control-degradation" - ANTI_DEBUGGING = "anti-debugging" - ANTI_DISASSEMBLY = "anti-disassembly" - ANTI_EMULATION = "anti-emulation" - ANTI_MEMORY_FORENSICS = "anti-memory-forensics" - ANTI_SANDBOX = "anti-sandbox" - ANTI_VIRUS_EVASION = "anti-virus-evasion" - ANTI_VM = "anti-vm" - AUTHENTICATION_CREDENTIALS_THEFT = "authentication-credentials-theft" - CLEAN_TRACES_OF_INFECTION = "clean-traces-of-infection" - COMMUNICATE_WITH_C2_SERVER = "communicate-with-c2-server" - COMPROMISE_DATA_AVAILABILITY = "compromise-data-availability" - COMPROMISE_SYSTEM_AVAILABILITY = "compromise-system-availability" - CONSUME_SYSTEM_RESOURCES = "consume-system-resources" - CONTINUOUS_EXECUTION = "continuous-execution" - DATA_INTEGRITY_VIOLATION = "data-integrity-violation" - DATA_OBFUSCATION = "data-obfuscation" - DATA_STAGING = "data-staging" - DETERMINE_C2_SERVER = "determine-c2-server" - EMAIL_SPAM = "email-spam" - ENSURE_COMPATIBILITY = "ensure-compatibility" - ENVIRONMENT_AWARENESS = "environment-awareness" - FILE_INFECTION = "file-infection" - HIDE_ARTIFACTS = "hide-artifacts" - HIDE_EXECUTING_CODE = "hide-executing-code" - HIDE_NON_EXECUTING_CODE = "hide-non-executing-code" - HOST_CONFIGURATION_PROBING = "host-configuration-probing" - INFORMATION_GATHERING_FOR_IMPROVEMENT = "information-gathering-for-improvement" - INPUT_PERIPHERAL_CAPTURE = "input-peripheral-capture" - INSTALL_OTHER_COMPONENTS = "install-other-components" - LOCAL_MACHINE_CONTROL = "local-machine-control" - NETWORK_ENVIRONMENT_PROBING = "network-environment-probing" - OS_SECURITY_FEATURE_DEGRADATION = "os-security-feature-degradation" - OUTPUT_PERIPHERAL_CAPTURE = "output-peripheral-capture" - PHYSICAL_ENTITY_DESTRUCTION = "physical-entity-destruction" - PREVENT_ARTIFACT_ACCESS = "prevent-artifact-access" - PREVENT_ARTIFACT_DELETION = "prevent-artifact-deletion" - REMOTE_MACHINE_ACCESS = "remote-machine-access" - SECURITY_SOFTWARE_DEGRADATION = "security-software-degradation" - SECURITY_SOFTWARE_EVASION = "security-software-evasion" - SELF_MODIFICATION = "self-modification" - SERVICE_PROVIDER_SECURITY_FEATURE_DEGRADATION = "service-provider-security-feature-degradation" - STORED_INFORMATION_THEFT = "stored-information-theft" - SYSTEM_INTERFACE_DATA_CAPTURE = "system-interface-data-capture" - SYSTEM_OPERATIONAL_INTEGRITY_VIOLATION = "system-operational-integrity-violation" - SYSTEM_RE_INFECTION = "system-re-infection" - SYSTEM_STATE_DATA_CAPTURE = "system-state-data-capture" - SYSTEM_UPDATE_DEGRADATION = "system-update-degradation" - USER_DATA_THEFT = "user-data-theft" - VIRTUAL_ENTITY_DESTRUCTION = "virtual-entity-destruction" - - -class MaecMalwareCapabilitiesTaxonomy(BaseModel): - """Model for the maec-malware-capabilities taxonomy.""" - - namespace: str = "maec-malware-capabilities" - description: str = """Malware Capabilities based on MAEC 5.0""" - version: int = 2 - exclusive: bool = False - predicates: List[MaecMalwareCapabilitiesTaxonomyPredicate] = [] - maec_malware_capability_entries: List[MaecMalwareCapabilitiesTaxonomyMaecMalwareCapabilityEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/maec_malware_obfuscation_methods.py b/src/openmisp/models/taxonomies/maec_malware_obfuscation_methods.py deleted file mode 100644 index 5ddffbe..0000000 --- a/src/openmisp/models/taxonomies/maec_malware_obfuscation_methods.py +++ /dev/null @@ -1,43 +0,0 @@ -"""Taxonomy model for maec-malware-obfuscation-methods.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MaecMalwareObfuscationMethodsTaxonomyPredicate(str, Enum): - MAEC_OBFUSCATION_METHODS = "maec-obfuscation-methods" - - -class MaecMalwareObfuscationMethodsTaxonomyMaecObfuscationMethodsEntry(str, Enum): - PACKING = "packing" - CODE_ENCRYPTION = "code-encryption" - DEAD_CODE_INSERTION = "dead-code-insertion" - ENTRY_POINT_OBFUSCATION = "entry-point-obfuscation" - IMPORT_ADDRESS_TABLE_OBFUSCATION = "import-address-table-obfuscation" - INTERLEAVING_CODE = "interleaving-code" - SYMBOLIC_OBFUSCATION = "symbolic-obfuscation" - STRING_OBFUSCATION = "string-obfuscation" - SUBROUTINE_REORDERING = "subroutine-reordering" - CODE_TRANSPOSITION = "code-transposition" - INSTRUCTION_SUBSTITUTION = "instruction-substitution" - REGISTER_REASSIGNMENT = "register-reassignment" - - -class MaecMalwareObfuscationMethodsTaxonomy(BaseModel): - """Model for the maec-malware-obfuscation-methods taxonomy.""" - - namespace: str = "maec-malware-obfuscation-methods" - description: str = """Obfuscation methods used by malware based on MAEC 5.0""" - version: int = 1 - exclusive: bool = False - predicates: List[MaecMalwareObfuscationMethodsTaxonomyPredicate] = [] - maec_obfuscation_methods_entries: List[MaecMalwareObfuscationMethodsTaxonomyMaecObfuscationMethodsEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/malware_classification.py b/src/openmisp/models/taxonomies/malware_classification.py deleted file mode 100644 index ce28e7c..0000000 --- a/src/openmisp/models/taxonomies/malware_classification.py +++ /dev/null @@ -1,77 +0,0 @@ -"""Taxonomy model for malware_classification.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MalwareClassificationTaxonomyPredicate(str, Enum): - MALWARE_CATEGORY = "malware-category" - OBFUSCATION_TECHNIQUE = "obfuscation-technique" - PAYLOAD_CLASSIFICATION = "payload-classification" - MEMORY_CLASSIFICATION = "memory-classification" - - -class MalwareClassificationTaxonomyMalwareCategoryEntry(str, Enum): - VIRUS = "Virus" - WORM = "Worm" - TROJAN = "Trojan" - RANSOMWARE = "Ransomware" - ROOTKIT = "Rootkit" - DOWNLOADER = "Downloader" - ADWARE = "Adware" - STALKERWARE = "Stalkerware" - SPYWARE = "Spyware" - ZOMBIEWARE = "Zombieware" - BOTNET = "Botnet" - - -class MalwareClassificationTaxonomyObfuscationTechniqueEntry(str, Enum): - NO_OBFUSCATION = "no-obfuscation" - ENCRYPTION = "encryption" - OLIGOMORPHISM = "oligomorphism" - METAMORPHISM = "metamorphism" - STEALTH = "stealth" - ARMOURING = "armouring" - TUNNELING = "tunneling" - XOR = "XOR" - BASE64 = "BASE64" - ROT13 = "ROT13" - - -class MalwareClassificationTaxonomyPayloadClassificationEntry(str, Enum): - NO_PAYLOAD = "no-payload" - NON_DESTRUCTIVE = "non-destructive" - DESTRUCTIVE = "destructive" - DROPPER = "dropper" - - -class MalwareClassificationTaxonomyMemoryClassificationEntry(str, Enum): - RESIDENT = "resident" - TEMPORARY_RESIDENT = "temporary-resident" - SWAPPING_MODE = "swapping-mode" - NON_RESIDENT = "non-resident" - USER_PROCESS = "user-process" - KERNEL_PROCESS = "kernel-process" - - -class MalwareClassificationTaxonomy(BaseModel): - """Model for the malware_classification taxonomy.""" - - namespace: str = "malware_classification" - description: str = """Classification based on different categories. Based on https://www.sans.org/reading-room/whitepapers/incident/malware-101-viruses-32848""" - version: int = 3 - exclusive: bool = False - predicates: List[MalwareClassificationTaxonomyPredicate] = [] - malware_category_entries: List[MalwareClassificationTaxonomyMalwareCategoryEntry] = [] - obfuscation_technique_entries: List[MalwareClassificationTaxonomyObfuscationTechniqueEntry] = [] - payload_classification_entries: List[MalwareClassificationTaxonomyPayloadClassificationEntry] = [] - memory_classification_entries: List[MalwareClassificationTaxonomyMemoryClassificationEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/misinformation_website_label.py b/src/openmisp/models/taxonomies/misinformation_website_label.py deleted file mode 100644 index 5427593..0000000 --- a/src/openmisp/models/taxonomies/misinformation_website_label.py +++ /dev/null @@ -1,70 +0,0 @@ -"""Taxonomy model for misinformation-website-label.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MisinformationWebsiteLabelTaxonomyPredicate(str, Enum): - FAKE_NEWS = "fake-news" - SATIRE = "satire" - EXTREME_BIAS = "extreme-bias" - CONSPIRACY = "conspiracy" - RUMOR = "rumor" - STATE_NEWS = "state-news" - JUNK_SCIENCES = "junk-sciences" - HATE_NEWS = "hate-news" - CLICKBAIT = "clickbait" - PROCEED_WITH_CAUTION = "proceed-with-caution" - POLITICAL = "political" - CREDIBLE = "credible" - UNKNOWN = "unknown" - - -class MisinformationWebsiteLabelTaxonomySatireEntry(str, Enum): - HUMOR = "humor" - IRONY = "irony" - EXAGGERATION = "exaggeration" - FALSE_INFORMATION = "false-information" - - -class MisinformationWebsiteLabelTaxonomyExtremeBiasEntry(str, Enum): - PROPAGANDA = "propaganda" - DECONTEXTUALIZED_INFORMATION = "decontextualized-information" - OPINIONS_DISTORDED_AS_FACTS = "opinions-distorded-as-facts" - - -class MisinformationWebsiteLabelTaxonomyRumorEntry(str, Enum): - RUMORS = "rumors" - GOSSIP = "gossip" - INNUENDO = "innuendo" - UNVERIFIED_CLAIMS = "unverified-claims" - - -class MisinformationWebsiteLabelTaxonomyHateNewsEntry(str, Enum): - RACISM = "racism" - MISOGYNY = "misogyny" - HOMOPHOBIA = "homophobia" - DISCRIMINATION_OTHER = "discrimination-other" - - -class MisinformationWebsiteLabelTaxonomy(BaseModel): - """Model for the misinformation-website-label taxonomy.""" - - namespace: str = "misinformation-website-label" - description: str = """classification for the identification of type of misinformation among websites. Source:False, Misleading, Clickbait-y, and/or Satirical News Sources by Melissa Zimdars 2019""" - version: int = 1 - exclusive: bool = False - predicates: List[MisinformationWebsiteLabelTaxonomyPredicate] = [] - satire_entries: List[MisinformationWebsiteLabelTaxonomySatireEntry] = [] - extreme_bias_entries: List[MisinformationWebsiteLabelTaxonomyExtremeBiasEntry] = [] - rumor_entries: List[MisinformationWebsiteLabelTaxonomyRumorEntry] = [] - hate_news_entries: List[MisinformationWebsiteLabelTaxonomyHateNewsEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/misp.py b/src/openmisp/models/taxonomies/misp.py deleted file mode 100644 index 1e9f0eb..0000000 --- a/src/openmisp/models/taxonomies/misp.py +++ /dev/null @@ -1,114 +0,0 @@ -"""Taxonomy model for MISP.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MispTaxonomyPredicate(str, Enum): - UI = "ui" - API = "api" - EXPANSION = "expansion" - CONTRIBUTOR = "contributor" - CONFIDENCE_LEVEL = "confidence-level" - THREAT_LEVEL = "threat-level" - AUTOMATION_LEVEL = "automation-level" - SHOULD_NOT_SYNC = "should-not-sync" - TOOL = "tool" - MISP2YARA = "misp2yara" - EVENT_TYPE = "event-type" - IDS = "ids" - - -class MispTaxonomyUiEntry(str, Enum): - HIDE = "hide" - - -class MispTaxonomyApiEntry(str, Enum): - HIDE = "hide" - - -class MispTaxonomyExpansionEntry(str, Enum): - BLOCK = "block" - - -class MispTaxonomyContributorEntry(str, Enum): - PGPFINGERPRINT = "pgpfingerprint" - - -class MispTaxonomyConfidenceLevelEntry(str, Enum): - COMPLETELY_CONFIDENT = "completely-confident" - USUALLY_CONFIDENT = "usually-confident" - FAIRLY_CONFIDENT = "fairly-confident" - RARELY_CONFIDENT = "rarely-confident" - UNCONFIDENT = "unconfident" - CONFIDENCE_CANNOT_BE_EVALUATED = "confidence-cannot-be-evaluated" - - -class MispTaxonomyThreatLevelEntry(str, Enum): - NO_RISK = "no-risk" - LOW_RISK = "low-risk" - MEDIUM_RISK = "medium-risk" - HIGH_RISK = "high-risk" - - -class MispTaxonomyAutomationLevelEntry(str, Enum): - UNSUPERVISED = "unsupervised" - REVIEWED = "reviewed" - MANUAL = "manual" - - -class MispTaxonomyToolEntry(str, Enum): - MISP2STIX = "misp2stix" - MISP2YARA = "misp2yara" - - -class MispTaxonomyMisp2yaraEntry(str, Enum): - GENERATED = "generated" - AS_IS = "as-is" - VALID = "valid" - INVALID = "invalid" - - -class MispTaxonomyEventTypeEntry(str, Enum): - OBSERVATION = "observation" - INCIDENT = "incident" - REPORT = "report" - COLLECTION = "collection" - ANALYSIS = "analysis" - AUTOMATIC_ANALYSIS = "automatic-analysis" - - -class MispTaxonomyIdsEntry(str, Enum): - FORCE = "force" - TRUE = "true" - FALSE = "false" - - -class MispTaxonomy(BaseModel): - """Model for the MISP taxonomy.""" - - namespace: str = "misp" - description: str = """MISP taxonomy to infer with MISP behavior or operation.""" - version: int = 14 - exclusive: bool = False - predicates: List[MispTaxonomyPredicate] = [] - ui_entries: List[MispTaxonomyUiEntry] = [] - api_entries: List[MispTaxonomyApiEntry] = [] - expansion_entries: List[MispTaxonomyExpansionEntry] = [] - contributor_entries: List[MispTaxonomyContributorEntry] = [] - confidence_level_entries: List[MispTaxonomyConfidenceLevelEntry] = [] - threat_level_entries: List[MispTaxonomyThreatLevelEntry] = [] - automation_level_entries: List[MispTaxonomyAutomationLevelEntry] = [] - tool_entries: List[MispTaxonomyToolEntry] = [] - misp2yara_entries: List[MispTaxonomyMisp2yaraEntry] = [] - event_type_entries: List[MispTaxonomyEventTypeEntry] = [] - ids_entries: List[MispTaxonomyIdsEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/misp_workflow.py b/src/openmisp/models/taxonomies/misp_workflow.py deleted file mode 100644 index 1db8bd9..0000000 --- a/src/openmisp/models/taxonomies/misp_workflow.py +++ /dev/null @@ -1,57 +0,0 @@ -"""Taxonomy model for MISP workflow.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MispWorkflowTaxonomyPredicate(str, Enum): - ACTION_TAKEN = "action-taken" - ANALYSIS = "analysis" - MUTABILITY = "mutability" - RUN = "run" - - -class MispWorkflowTaxonomyActionTakenEntry(str, Enum): - IDS_FLAG_REMOVED = "ids-flag-removed" - IDS_FLAG_ADDED = "ids-flag-added" - PUSHED_TO_ZMQ = "pushed-to-zmq" - EMAIL_SENT = "email-sent" - WEBHOOK_TRIGGERED = "webhook-triggered" - EXECUTION_STOPPED = "execution-stopped" - - -class MispWorkflowTaxonomyAnalysisEntry(str, Enum): - FALSE_POSITIVE = "false-positive" - HIGHLY_LIKELY_POSITIVE = "highly-likely-positive" - KNOWN_FILE_HASH = "known-file-hash" - - -class MispWorkflowTaxonomyMutabilityEntry(str, Enum): - ALLOWED = "allowed" - - -class MispWorkflowTaxonomyRunEntry(str, Enum): - ALLOWED = "allowed" - - -class MispWorkflowTaxonomy(BaseModel): - """Model for the MISP workflow taxonomy.""" - - namespace: str = "misp-workflow" - description: str = """MISP workflow taxonomy to support result of workflow execution.""" - version: int = 3 - exclusive: bool = False - predicates: List[MispWorkflowTaxonomyPredicate] = [] - action_taken_entries: List[MispWorkflowTaxonomyActionTakenEntry] = [] - analysis_entries: List[MispWorkflowTaxonomyAnalysisEntry] = [] - mutability_entries: List[MispWorkflowTaxonomyMutabilityEntry] = [] - run_entries: List[MispWorkflowTaxonomyRunEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/monarc_threat.py b/src/openmisp/models/taxonomies/monarc_threat.py deleted file mode 100644 index 98cbe2c..0000000 --- a/src/openmisp/models/taxonomies/monarc_threat.py +++ /dev/null @@ -1,86 +0,0 @@ -"""Taxonomy model for MONARC Threats.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MonarcThreatTaxonomyPredicate(str, Enum): - COMPROMISE_OF_FUNCTIONS = "compromise-of-functions" - UNAUTHORISED_ACTIONS = "unauthorised-actions" - COMPROMISE_OF_INFORMATION = "compromise-of-information" - LOSS_OF_ESSENTIAL_SERVICES = "loss-of-essential-services" - TECHNICAL_FAILURES = "technical-failures" - PHYSICAL_DAMAGE = "physical-damage" - - -class MonarcThreatTaxonomyCompromiseOfFunctionsEntry(str, Enum): - ERROR_IN_USE = "error-in-use" - FORGING_OF_RIGHTS = "forging-of-rights" - EAVESDROPPING = "eavesdropping" - DENIAL_OF_ACTIONS = "denial-of-actions" - ABUSE_OF_RIGHTS = "abuse-of-rights" - BREACH_OF_PERSONNEL_AVAILABILITY = "breach-of-personnel-availability" - - -class MonarcThreatTaxonomyUnauthorisedActionsEntry(str, Enum): - FRAUDULENT_COPYING_OR_USE_OF_COUNTERFEIT_SOFTWARE = "fraudulent-copying-or-use-of-counterfeit-software" - CORRUPTION_OF_DATA = "corruption-of-data" - ILLEGAL_PROCESSING_OF_DATA = "illegal-processing-of-data" - - -class MonarcThreatTaxonomyCompromiseOfInformationEntry(str, Enum): - REMOTE_SPYING = "remote-spying" - TAMPERING_WITH_HARDWARE = "tampering-with-hardware" - INTERCEPTION_OF_COMPROMISING_INTERFERENCE_SIGNALS = "interception-of-compromising-interference-signals" - THEFT_OR_DESTRUCTION_OF_MEDIA_DOCUMENTS_OR_EQUIPMENT = "theft-or-destruction-of-media-documents-or-equipment" - RETRIEVAL_OF_RECYCLED_OR_DISCARDED_MEDIA = "retrieval-of-recycled-or-discarded media" - MALWARE_INFECTION = "malware-infection" - DATA_FROM_UNTRUSTWORTHY_SOURCES = "data-from-untrustworthy-sources" - DISCLOSURE = "disclosure" - - -class MonarcThreatTaxonomyLossOfEssentialServicesEntry(str, Enum): - FAILURE_OF_TELECOMMUNICATION_EQUIPMENT = "failure-of-telecommunication-equipment" - LOSS_OF_POWER_SUPPLY = "loss-of-power-supply" - FAILURE_OF_AIR_CONDITIONING = "failure-of-air-conditioning" - - -class MonarcThreatTaxonomyTechnicalFailuresEntry(str, Enum): - SOFTWARE_MALFUNCTION = "software-malfunction" - EQUIPMENT_MALFUNCTION_OR_FAILURE = "equipment-malfunction-or-failure" - SATURATION_OF_THE_INFORMATION_SYSTEM = "saturation-of-the-information-system" - BREACH_OF_INFORMATION_SYSTEM_MAINTAINABILITY = "breach-of-information-system-maintainability" - - -class MonarcThreatTaxonomyPhysicalDamageEntry(str, Enum): - DESTRUCTION_OF_EQUIPMENT_OR_SUPPORTS = "destruction-of-equipment-or-supports" - FIRE = "fire" - WATER_DAMAGE = "water-damage" - MAJOR_ACCIDENT = "major-accident" - POLLUTION = "pollution" - ENVIRONMENTAL_DISASTER = "environmental-disaster" - - -class MonarcThreatTaxonomy(BaseModel): - """Model for the MONARC Threats taxonomy.""" - - namespace: str = "monarc-threat" - description: str = """MONARC Threats Taxonomy""" - version: int = 1 - exclusive: bool = False - predicates: List[MonarcThreatTaxonomyPredicate] = [] - compromise_of_functions_entries: List[MonarcThreatTaxonomyCompromiseOfFunctionsEntry] = [] - unauthorised_actions_entries: List[MonarcThreatTaxonomyUnauthorisedActionsEntry] = [] - compromise_of_information_entries: List[MonarcThreatTaxonomyCompromiseOfInformationEntry] = [] - loss_of_essential_services_entries: List[MonarcThreatTaxonomyLossOfEssentialServicesEntry] = [] - technical_failures_entries: List[MonarcThreatTaxonomyTechnicalFailuresEntry] = [] - physical_damage_entries: List[MonarcThreatTaxonomyPhysicalDamageEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ms_caro_malware.py b/src/openmisp/models/taxonomies/ms_caro_malware.py deleted file mode 100644 index 5fa7168..0000000 --- a/src/openmisp/models/taxonomies/ms_caro_malware.py +++ /dev/null @@ -1,144 +0,0 @@ -"""Taxonomy model for ms-caro-malware.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MsCaroMalwareTaxonomyPredicate(str, Enum): - MALWARE_TYPE = "malware-type" - MALWARE_PLATFORM = "malware-platform" - - -class MsCaroMalwareTaxonomyMalwareTypeEntry(str, Enum): - ADWARE = "Adware" - BACKDOOR = "Backdoor" - BEHAVIOR = "Behavior" - BROSWER_MODIFIER = "BroswerModifier" - CONSTRUCTOR = "Constructor" - DDO_S = "DDoS" - DIALER = "Dialer" - DO_S = "DoS" - EXPLOIT = "Exploit" - HACK_TOOL = "HackTool" - JOKE = "Joke" - MISLEADING = "Misleading" - MONITORING_TOOL = "MonitoringTool" - PROGRAM = "Program" - PUA = "PUA" - PWS = "PWS" - RANSOM = "Ransom" - REMOTE_ACCESS = "RemoteAccess" - ROGUE = "Rogue" - SETTINGS_MODIFIER = "SettingsModifier" - SOFTWARE_BUNDLER = "SoftwareBundler" - SPAMMER = "Spammer" - SPOOFER = "Spoofer" - SPYWARE = "Spyware" - TOOL = "Tool" - TROJAN = "Trojan" - TROJAN_CLICKER = "TrojanClicker" - TROJAN_DOWNLOADER = "TrojanDownloader" - TROJAN_DROPPER = "TrojanDropper" - TROJAN_NOTIFIER = "TrojanNotifier" - TROJAN_PROXY = "TrojanProxy" - TROJAN_SPY = "TrojanSpy" - VIR_TOOL = "VirTool" - VIRUS = "Virus" - WORM = "Worm" - - -class MsCaroMalwareTaxonomyMalwarePlatformEntry(str, Enum): - ANDROID_OS = "AndroidOS" - DOS = "DOS" - EPOC = "EPOC" - FREE_BSD = "FreeBSD" - I_PHONE_OS = "iPhoneOS" - LINUX = "Linux" - MAC_OS = "MacOS" - MAC_OS_X = "MacOS_X" - OS2 = "OS2" - PALM = "Palm" - SOLARIS = "Solaris" - SUN_OS = "SunOS" - SYMB_OS = "SymbOS" - UNIX = "Unix" - WIN16 = "Win16" - WIN2_K = "Win2K" - WIN32 = "Win32" - WIN64 = "Win64" - WIN95 = "Win95" - WIN98 = "Win98" - WIN_CE = "WinCE" - WIN_NT = "WinNT" - ABAP = "ABAP" - ALISP = "ALisp" - AMI_PRO = "AmiPro" - ANSI = "ANSI" - APPLE_SCRIPT = "AppleScript" - ASP = "ASP" - AUTO_IT = "AutoIt" - BAS = "BAS" - BAT = "BAT" - COREL_SCRIPT = "CorelScript" - HTA = "HTA" - HTML = "HTML" - INF = "INF" - IRC = "IRC" - JAVA = "Java" - JS = "JS" - LOGO = "LOGO" - MPB = "MPB" - MSH = "MSH" - MSIL = "MSIL" - PERL = "Perl" - PHP = "PHP" - PYTHON = "Python" - SAP = "SAP" - SH = "SH" - VBA = "VBA" - VBS = "VBS" - WIN_BAT = "WinBAT" - WIN_HLP = "WinHlp" - WIN_REG = "WinREG" - A97_M = "A97M" - HE = "HE" - O97_M = "O97M" - PP97_M = "PP97M" - V5_M = "V5M" - W1_M = "W1M" - W2_M = "W2M" - W97_M = "W97M" - WM = "WM" - X97_M = "X97M" - XF = "XF" - XM = "XM" - ASX = "ASX" - HC = "HC" - MIME = "MIME" - NETWARE = "Netware" - QT = "QT" - SB = "SB" - SWF = "SWF" - TSQL = "TSQL" - XML = "XML" - - -class MsCaroMalwareTaxonomy(BaseModel): - """Model for the ms-caro-malware taxonomy.""" - - namespace: str = "ms-caro-malware" - description: str = """Malware Type and Platform classification based on Microsoft's implementation of the Computer Antivirus Research Organization (CARO) Naming Scheme and Malware Terminology. Based on https://www.microsoft.com/en-us/security/portal/mmpc/shared/malwarenaming.aspx, https://www.microsoft.com/security/portal/mmpc/shared/glossary.aspx, https://www.microsoft.com/security/portal/mmpc/shared/objectivecriteria.aspx, and http://www.caro.org/definitions/index.html. Malware families are extracted from Microsoft SIRs since 2008 based on https://www.microsoft.com/security/sir/archive/default.aspx and https://www.microsoft.com/en-us/security/portal/threat/threats.aspx. Note that SIRs do NOT include all Microsoft malware families.""" - version: int = 1 - exclusive: bool = False - predicates: List[MsCaroMalwareTaxonomyPredicate] = [] - malware_type_entries: List[MsCaroMalwareTaxonomyMalwareTypeEntry] = [] - malware_platform_entries: List[MsCaroMalwareTaxonomyMalwarePlatformEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ms_caro_malware_full.py b/src/openmisp/models/taxonomies/ms_caro_malware_full.py deleted file mode 100644 index 3b63937..0000000 --- a/src/openmisp/models/taxonomies/ms_caro_malware_full.py +++ /dev/null @@ -1,606 +0,0 @@ -"""Taxonomy model for ms-caro-malware-full.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MsCaroMalwareFullTaxonomyPredicate(str, Enum): - MALWARE_TYPE = "malware-type" - MALWARE_PLATFORM = "malware-platform" - MALWARE_FAMILY = "malware-family" - - -class MsCaroMalwareFullTaxonomyMalwareTypeEntry(str, Enum): - ADWARE = "Adware" - BACKDOOR = "Backdoor" - BEHAVIOR = "Behavior" - BROSWER_MODIFIER = "BroswerModifier" - CONSTRUCTOR = "Constructor" - DDO_S = "DDoS" - DIALER = "Dialer" - DO_S = "DoS" - EXPLOIT = "Exploit" - HACK_TOOL = "HackTool" - JOKE = "Joke" - MISLEADING = "Misleading" - MONITORING_TOOL = "MonitoringTool" - PROGRAM = "Program" - PUA = "PUA" - PWS = "PWS" - RANSOM = "Ransom" - REMOTE_ACCESS = "RemoteAccess" - ROGUE = "Rogue" - SETTINGS_MODIFIER = "SettingsModifier" - SOFTWARE_BUNDLER = "SoftwareBundler" - SPAMMER = "Spammer" - SPOOFER = "Spoofer" - SPYWARE = "Spyware" - TOOL = "Tool" - TROJAN = "Trojan" - TROJAN_CLICKER = "TrojanClicker" - TROJAN_DOWNLOADER = "TrojanDownloader" - TROJAN_DROPPER = "TrojanDropper" - TROJAN_NOTIFIER = "TrojanNotifier" - TROJAN_PROXY = "TrojanProxy" - TROJAN_SPY = "TrojanSpy" - VIR_TOOL = "VirTool" - VIRUS = "Virus" - WORM = "Worm" - - -class MsCaroMalwareFullTaxonomyMalwarePlatformEntry(str, Enum): - ANDROID_OS = "AndroidOS" - DOS = "DOS" - EPOC = "EPOC" - FREE_BSD = "FreeBSD" - I_PHONE_OS = "iPhoneOS" - LINUX = "Linux" - MAC_OS = "MacOS" - MAC_OS_X = "MacOS_X" - OS2 = "OS2" - PALM = "Palm" - SOLARIS = "Solaris" - SUN_OS = "SunOS" - SYMB_OS = "SymbOS" - UNIX = "Unix" - WIN16 = "Win16" - WIN2_K = "Win2K" - WIN32 = "Win32" - WIN64 = "Win64" - WIN95 = "Win95" - WIN98 = "Win98" - WIN_CE = "WinCE" - WIN_NT = "WinNT" - ABAP = "ABAP" - ALISP = "ALisp" - AMI_PRO = "AmiPro" - ANSI = "ANSI" - APPLE_SCRIPT = "AppleScript" - ASP = "ASP" - AUTO_IT = "AutoIt" - BAS = "BAS" - BAT = "BAT" - COREL_SCRIPT = "CorelScript" - HTA = "HTA" - HTML = "HTML" - INF = "INF" - IRC = "IRC" - JAVA = "Java" - JS = "JS" - LOGO = "LOGO" - MPB = "MPB" - MSH = "MSH" - MSIL = "MSIL" - PERL = "Perl" - PHP = "PHP" - PYTHON = "Python" - SAP = "SAP" - SH = "SH" - VBA = "VBA" - VBS = "VBS" - WIN_BAT = "WinBAT" - WIN_HLP = "WinHlp" - WIN_REG = "WinREG" - A97_M = "A97M" - HE = "HE" - O97_M = "O97M" - PP97_M = "PP97M" - V5_M = "V5M" - W1_M = "W1M" - W2_M = "W2M" - W97_M = "W97M" - WM = "WM" - X97_M = "X97M" - XF = "XF" - XM = "XM" - ASX = "ASX" - HC = "HC" - MIME = "MIME" - NETWARE = "Netware" - QT = "QT" - SB = "SB" - SWF = "SWF" - TSQL = "TSQL" - XML = "XML" - - -class MsCaroMalwareFullTaxonomyMalwareFamilyEntry(str, Enum): - ZLOB = "Zlob" - VUNDO = "Vundo" - VIRTUMONDE = "Virtumonde" - BANCOS = "Bancos" - CUTWAIL = "Cutwail" - ODEROOR = "Oderoor" - NEWACC = "Newacc" - CAPTIYA = "Captiya" - TATERF = "Taterf" - FRETHOG = "Frethog" - TILCUN = "Tilcun" - CEEKAT = "Ceekat" - CORRIPIO = "Corripio" - ZUTEN = "Zuten" - LOLYDA = "Lolyda" - STORARK = "Storark" - RENOS = "Renos" - ZANGO_SEARCH_ASSISTANT = "ZangoSearchAssistant" - ZANGO_SHOPPING_REPORTS = "ZangoShoppingReports" - FAKE_XPA = "FakeXPA" - FAKE_SEC_SEN = "FakeSecSen" - HOTBAR = "Hotbar" - AGENT = "Agent" - WIMAD = "Wimad" - BAIDU_SOBAR = "BaiduSobar" - VB = "VB" - ANTIVIRUS2008 = "Antivirus2008" - PLAYMP3Z = "Playmp3z" - TIBS = "Tibs" - SEEKMO_SEARCH_ASSISTANT = "SeekmoSearchAssistant" - RJUMP = "RJump" - SPYWARE_SECURE = "SpywareSecure" - WINFIXER = "Winfixer" - C2_LOP = "C2Lop" - MATCASH = "Matcash" - HORST = "Horst" - SLENFBOT = "Slenfbot" - RUSTOCK = "Rustock" - GIMMIV = "Gimmiv" - YEKTEL = "Yektel" - RORON = "Roron" - SWIF = "Swif" - MULT = "Mult" - WUKILL = "Wukill" - OBJSNAPT = "Objsnapt" - REDIRECTOR = "Redirector" - XILOS = "Xilos" - DECDEC = "Decdec" - BEAR_SHARE = "BearShare" - BIT_ACCELERATOR = "BitAccelerator" - BLUBTOOL = "Blubtool" - RSERVER = "RServer" - ULTRA_VNC = "UltraVNC" - GHOST_RADMIN = "GhostRadmin" - TIGHT_VNC = "TightVNC" - DAME_WARE_MINI_REMOTE_CONTROL = "DameWareMiniRemoteControl" - SEEKMO_SEARCH_ASSISTANT_REPACK = "SeekmoSearchAssistant_Repack" - NBAR = "Nbar" - CHIR = "Chir" - SALITY = "Sality" - OBFUSCATOR = "Obfuscator" - BYTE_VERIFY = "ByteVerify" - AUTORUN = "Autorun" - HAMWEQ = "Hamweq" - BRONTOK = "Brontok" - SPYWARE_PROTECT = "SpywareProtect" - CBEPLAY = "Cbeplay" - INTERNET_ANTIVIRUS = "InternetAntivirus" - NUWAR = "Nuwar" - RBOT = "Rbot" - IRCBOT = "IRCbot" - SKEEMO_SEARCH_ASSISTANT = "SkeemoSearchAssistant" - REAL_VNC = "RealVNC" - MONEY_TREE = "MoneyTree" - TRACUR = "Tracur" - MEREDROP = "Meredrop" - BANKER = "Banker" - LDPINCH = "Ldpinch" - ADVANTAGE = "Advantage" - PARITE = "Parite" - POSSIBLE_HOSTS_FILE_HIJACK = "PossibleHostsFileHijack" - ALUREON = "Alureon" - POWER_REG_SCHEDULER = "PowerRegScheduler" - APSB08_11 = "APSB08-11" - CON_HOOK = "ConHook" - STARWARE = "Starware" - WIN_SPYWARE_PROTECT = "WinSpywareProtect" - MESSENGER_SKINNER = "MessengerSkinner" - SKINTRIM = "Skintrim" - AD_ROTATOR = "AdRotator" - WINTRIM = "Wintrim" - BUSKY = "Busky" - WHEN_U = "WhenU" - MOBIS = "Mobis" - SOGOU = "Sogou" - SDBOT = "Sdbot" - DELF_INJECT = "DelfInject" - VAPSUP = "Vapsup" - BROWSING_ENHANCER = "BrowsingEnhancer" - JEEFO = "Jeefo" - SEZON = "Sezon" - RU_PASS = "RuPass" - ONE_STEP_SEARCH = "OneStepSearch" - GAME_VANCE = "GameVance" - E404 = "E404" - MIRAR = "Mirar" - FOTOMOTO = "Fotomoto" - ARDAMAX = "Ardamax" - HUPIGON = "Hupigon" - CNNIC = "CNNIC" - MOTE_PRO = "MotePro" - CNS_MIN = "CnsMin" - BAIDU_IEBAR = "BaiduIebar" - EJIK = "Ejik" - ALIBABA_IETOOL_BAR = "AlibabaIEToolBar" - BDPLUGIN = "BDPlugin" - ADIALER = "Adialer" - EGROUP_SEX_DIAL = "EGroupSexDial" - ZONEBAC = "Zonebac" - ANTINNY = "Antinny" - REWARD_NETWORK = "RewardNetwork" - VIRUT = "Virut" - ALLAPLE = "Allaple" - VKIT_DA = "VKit_DA" - SMALL = "Small" - NETSKY = "Netsky" - LUDER = "Luder" - IFRAME_REF = "IframeRef" - LOVELORN = "Lovelorn" - CEKAR = "Cekar" - DIALSNIF = "Dialsnif" - CONFICKER = "Conficker" - LOVE_LETTER = "LoveLetter" - VBSWGBASED = "VBSWGbased" - SLAMMER = "Slammer" - MSBLAST = "Msblast" - SASSER = "Sasser" - NIMDA = "Nimda" - MYDOOM = "Mydoom" - BAGLE = "Bagle" - WINWEBSEC = "Winwebsec" - KOOBFACE = "Koobface" - PDFJSC = "Pdfjsc" - POINTFREE = "Pointfree" - CHADEM = "Chadem" - FAKE_IA = "FakeIA" - WALEDAC = "Waledac" - PROVIS = "Provis" - PROLACO = "Prolaco" - MYWIFE = "Mywife" - MELISSA = "Melissa" - ROCHAP = "Rochap" - GAMANIA = "Gamania" - MABEZAT = "Mabezat" - HELPUD = "Helpud" - PRIVACY_CENTER = "PrivacyCenter" - FAKE_REAN = "FakeRean" - BREDOLAB = "Bredolab" - RUGZIP = "Rugzip" - FAKESPYPRO = "Fakespypro" - BUZUZ = "Buzuz" - POISON_IVY = "PoisonIvy" - AGENT_BYPASS = "AgentBypass" - ENFAL = "Enfal" - SYSTEM_HIJACK = "SystemHijack" - PROC_INJECT = "ProcInject" - MALRES = "Malres" - KIRPICH = "Kirpich" - MALAGENT = "Malagent" - BUMAT = "Bumat" - BIFROSE = "Bifrose" - RIPINIP = "Ripinip" - RILER = "Riler" - FARFLI = "Farfli" - PC_CLIENT = "PcClient" - VEDEN = "Veden" - BANLOAD = "Banload" - MICROJOIN = "Microjoin" - KILLAV = "Killav" - CINMUS = "Cinmus" - MESSENGER_PLUS = "MessengerPlus" - HAXDOOR = "Haxdoor" - NIEGUIDE = "Nieguide" - ITHINK = "Ithink" - POINTAD = "Pointad" - WEBDIR = "Webdir" - MICROBILLSYS = "Microbillsys" - KERLOFOST = "Kerlofost" - ZWANGI = "Zwangi" - DOUBLE_D = "DoubleD" - SHOP_AT_HOME = "ShopAtHome" - FAKE_VIMES = "FakeVimes" - FAKE_COG = "FakeCog" - FAKE_AD_PRO = "FakeAdPro" - FAKE_SMOKE = "FakeSmoke" - FAKE_BYE = "FakeBye" - HILOTI = "Hiloti" - TIKAYB = "Tikayb" - URSNIF = "Ursnif" - RIMECUD = "Rimecud" - LETHIC = "Lethic" - CEE_INJECT = "CeeInject" - CMDOW = "Cmdow" - YABECTOR = "Yabector" - RENOCIDE = "Renocide" - LIFTEN = "Liften" - SHELL_CODE = "ShellCode" - FLY_AGENT = "FlyAgent" - PSYME = "Psyme" - ORSAM = "Orsam" - AGENT_OFF = "AgentOff" - NUJ = "Nuj" - SOHANAD = "Sohanad" - I2_ISOLUTIONS = "I2ISolutions" - DPOINT = "Dpoint" - SILLY_P2_P = "Silly_P2P" - VOBFUS = "Vobfus" - DAURSO = "Daurso" - MY_DEAL_ASSISTANT = "MyDealAssistant" - ADSUBSCRIBE = "Adsubscribe" - MY_CENTRIA = "MyCentria" - FIERADS = "Fierads" - VBINJECT = "VBInject" - PERFECT_KEYLOGGER = "PerfectKeylogger" - AGO_BOT = "AgoBot" - BUBNIX = "Bubnix" - CITEARY = "Citeary" - FAKEINIT = "Fakeinit" - OFICLA = "Oficla" - PASUR = "Pasur" - PRETTY_PARK = "PrettyPark" - PRORAT = "Prorat" - PUSHBOT = "Pushbot" - RANDEX = "Randex" - SDBOT = "SDBot" - TRENK = "Trenk" - TOFSEE = "Tofsee" - URSAP = "Ursap" - ZBOT = "Zbot" - CIUCIO = "Ciucio" - CLICK_POTATO = "ClickPotato" - CVE_2010_0806 = "CVE-2010-0806" - DELF = "Delf" - FAKE_PAV = "FakePAV" - KEYGEN = "Keygen" - ONESCAN = "Onescan" - PORNPOP = "Pornpop" - STARTPAGE = "Startpage" - BEGSEABUG = "Begseabug" - CVE_2010_0840 = "CVE-2010-0840" - CYCBOT = "Cycbot" - DROID_DREAM = "DroidDream" - FAKE_MACDEF = "FakeMacdef" - GAME_HACK = "GameHack" - LOIC = "Loic" - LOTOOR = "Lotoor" - NUQEL = "Nuqel" - OFFER_BOX = "OfferBox" - OPEN_CANDY = "OpenCandy" - PAMESEG = "Pameseg" - PRAMRO = "Pramro" - RAMNIT = "Ramnit" - RLSLOUP = "Rlsloup" - SHOPPER_REPORTS = "ShopperReports" - SINOWAL = "Sinowal" - STUXNET = "Stuxnet" - SWIMNAG = "Swimnag" - TEDROO = "Tedroo" - YIMFOCA = "Yimfoca" - BAMITAL = "Bamital" - BLACOLE = "Blacole" - BULILIT = "Bulilit" - DORKBOT = "Dorkbot" - EYE_STYE = "EyeStye" - FAKE_SYSDEF = "FakeSysdef" - HELOMPY = "Helompy" - MALF = "Malf" - RUGO = "Rugo" - SIREFEF = "Sirefef" - SISPROC = "Sisproc" - SWISYN = "Swisyn" - BLACOLE_REF = "BlacoleRef" - CVE_2012_0507 = "CVE-2012-0507" - FLASHBACK = "Flashback" - GENDOWS = "Gendows" - GINGER_BREAK = "GingerBreak" - GINGER_MASTER = "GingerMaster" - MULT_JS = "Mult_JS" - PATCH = "Patch" - PHOEX = "Phoex" - PLUZOKS = "Pluzoks" - POPUPPER = "Popupper" - WIZPOP = "Wizpop" - WPAKILL = "Wpakill" - YELTMINKY = "Yeltminky" - AIMESU = "Aimesu" - BDAEJEC = "Bdaejec" - BURSTED = "Bursted" - COLKIT = "Colkit" - COOLEX = "Coolex" - CPL_LNK = "CplLnk" - CVE_2011_1823 = "CVE-2011-1823" - CVE_2012_1723 = "CVE-2012-1723" - DEAL_PLY = "DealPly" - FAREIT = "Fareit" - FAST_SAVE_APP = "FastSaveApp" - FIND_LYRICS = "FindLyrics" - GAMARUE = "Gamarue" - GISAV = "Gisav" - INFO_ATOMS = "InfoAtoms" - PERL_IRCBOT_E = "Perl/IRCbot.E" - JAVROBAT = "Javrobat" - KRADDARE = "Kraddare" - PRICE_GONG = "PriceGong" - PROTLERDOB = "Protlerdob" - QHOST = "Qhost" - REVETON = "Reveton" - RONGVHIN = "Rongvhin" - SEEDABUTOR = "Seedabutor" - SMSER = "SMSer" - TOBFY = "Tobfy" - TRUADO = "Truado" - URAUSY = "Urausy" - WECYKLER = "Wecykler" - WEELSOF = "Weelsof" - YAKDOWPE = "Yakdowpe" - ANOGRE = "Anogre" - BRANTALL = "Brantall" - COMAME = "Comame" - CRILOCK = "Crilock" - CVE_2011_3874 = "CVE-2011-3874" - DEMINNIX = "Deminnix" - DETPLOCK = "Detplock" - DIRCRYPT = "Dircrypt" - DONX_REF = "DonxRef" - FACELIKER = "Faceliker" - FAKE_ALERT = "FakeAlert" - JENXCUS = "Jenxcus" - LOKTROM = "Loktrom" - MIPOSA = "Miposa" - NITOL = "Nitol" - OCEANMUG = "Oceanmug" - PROSLIKEFAN = "Proslikefan" - ROTBROW = "Rotbrow" - SEFNIT = "Sefnit" - URNTONE = "Urntone" - WYSOTOT = "Wysotot" - ADD_LYRICS = "AddLyrics" - ADPEAK = "Adpeak" - AXPERGLE = "Axpergle" - BEPUSH = "Bepush" - BETTER_SURF = "BetterSurf" - BLADABINDI = "Bladabindi" - CAPHAW = "Caphaw" - CLIKUG = "Clikug" - CVE_2014_0322 = "CVE-2014-0322" - CVE_2013_0422 = "CVE-2013-0422" - DOWQUE = "Dowque" - FASHACK = "Fashack" - FEVEN = "Feven" - FIEXP = "Fiexp" - FILCOUT = "Filcout" - GENASOM = "Genasom" - KEGOTIP = "Kegotip" - KRYPTERADE = "Krypterade" - LECPETEX = "Lecpetex" - LOLLIPOP = "Lollipop" - MEADGIVE = "Meadgive" - NECLU = "Neclu" - OGIMANT = "Ogimant" - OPTIMIZER_ELITE = "OptimizerElite" - PANGIMOP = "Pangimop" - PHISH = "Phish" - PRAST = "Prast" - SLUGIN = "Slugin" - SPACEKITO = "Spacekito" - TRANIKPIK = "Tranikpik" - WORDINVOP = "Wordinvop" - ZEGOST = "Zegost" - ARCHOST = "Archost" - BALAMID = "Balamid" - BEE_VRY = "BeeVry" - BONDAT = "Bondat" - BREGENT = "Bregent" - BROLO = "Brolo" - COST_MIN = "CostMin" - COUPON_RUC = "CouponRuc" - CRASTIC = "Crastic" - CROWTI = "Crowti" - CVE_2013_1488 = "CVE-2013-1488" - DEFAULT_TAB = "DefaultTab" - IPPEDO = "Ippedo" - KILIM = "Kilim" - MOFIN = "Mofin" - MP_TAMPER_SRP = "MpTamperSrp" - MUJORMEL = "Mujormel" - PENNY_BEE = "PennyBee" - PHDET = "Phdet" - RIMOD = "Rimod" - SIGRU = "Sigru" - SIMPLE_SHELL = "SimpleShell" - SOFTPULSE = "Softpulse" - SQUARE_NET = "SquareNet" - TUGSPAY = "Tugspay" - TUPYM = "Tupym" - VERCUSER = "Vercuser" - ADNEL = "Adnel" - ADODB = "Adodb" - ALTERBOOK_SP = "AlterbookSP" - BROBAN_DEL = "BrobanDel" - COMPROMISED_CERT = "CompromisedCert" - COUPON_RUC_NEW = "CouponRuc_new" - CVE_2014_6332 = "CVE-2014-6332" - DYZAP = "Dyzap" - EO_REZO = "EoRezo" - FAKE_CALL = "FakeCall" - FOOSACE = "Foosace" - IE_ENABLER_CBY = "IeEnablerCby" - INSTALLE_REX = "InstalleRex" - JACK_THE_RIPPER = "JackTheRipper" - KENILFE = "Kenilfe" - KIPOD_TOOLS_CBY = "KipodToolsCby" - MACOUTE = "Macoute" - NEUTRINO_EK = "NeutrinoEK" - PEAAC = "Peaac" - PEALS = "Peals" - RADONSKRA = "Radonskra" - SAVER_EXTENSION = "SaverExtension" - SDBBY = "Sdbby" - SIMDA = "Simda" - SKEEYAH = "Skeeyah" - WORDJMP = "Wordjmp" - BAYADS = "Bayads" - CANDY_OPEN = "CandyOpen" - COLISI = "Colisi" - CREPROTE = "Creprote" - DIPLUGEM = "Diplugem" - DIPSIND = "Dipsind" - DONOFF = "Donoff" - DORV = "Dorv" - DOWADMIN = "Dowadmin" - FOURTHREM = "Fourthrem" - HAO123 = "Hao123" - MIZENOTA = "Mizenota" - MYTONEL = "Mytonel" - OUT_BROWSE = "OutBrowse" - PEAPOON = "Peapoon" - POKKI = "Pokki" - PUTALOL = "Putalol" - SPIGOT_SEARCH = "SpigotSearch" - SPURSINT = "Spursint" - SULUNCH = "Sulunch" - SUP_TAB = "SupTab" - SVENTORE = "Sventore" - TILLAIL = "Tillail" - VOPACKAGE = "VOPackage" - XIAZAI = "Xiazai" - - -class MsCaroMalwareFullTaxonomy(BaseModel): - """Model for the ms-caro-malware-full taxonomy.""" - - namespace: str = "ms-caro-malware-full" - description: str = """Malware Type and Platform classification based on Microsoft's implementation of the Computer Antivirus Research Organization (CARO) Naming Scheme and Malware Terminology. Based on https://www.microsoft.com/en-us/security/portal/mmpc/shared/malwarenaming.aspx, https://www.microsoft.com/security/portal/mmpc/shared/glossary.aspx, https://www.microsoft.com/security/portal/mmpc/shared/objectivecriteria.aspx, and http://www.caro.org/definitions/index.html. Malware families are extracted from Microsoft SIRs since 2008 based on https://www.microsoft.com/security/sir/archive/default.aspx and https://www.microsoft.com/en-us/security/portal/threat/threats.aspx. Note that SIRs do NOT include all Microsoft malware families.""" - version: int = 2 - exclusive: bool = False - predicates: List[MsCaroMalwareFullTaxonomyPredicate] = [] - malware_type_entries: List[MsCaroMalwareFullTaxonomyMalwareTypeEntry] = [] - malware_platform_entries: List[MsCaroMalwareFullTaxonomyMalwarePlatformEntry] = [] - malware_family_entries: List[MsCaroMalwareFullTaxonomyMalwareFamilyEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/mwdb.py b/src/openmisp/models/taxonomies/mwdb.py deleted file mode 100644 index fff2028..0000000 --- a/src/openmisp/models/taxonomies/mwdb.py +++ /dev/null @@ -1,142 +0,0 @@ -"""Taxonomy model for mwdb.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class MwdbTaxonomyPredicate(str, Enum): - LOCATION_TYPE = "location_type" - FAMILY = "family" - - -class MwdbTaxonomyLocationTypeEntry(str, Enum): - CNC = "cnc" - DOWNLOAD_URL = "download_url" - PANEL = "panel" - PEER = "peer" - OTHER = "other" - - -class MwdbTaxonomyFamilyEntry(str, Enum): - AGENTTESLA = "agenttesla" - ANDROMEDA = "andromeda" - ANUBIS = "anubis" - AVEMARIA = "avemaria" - AZORULT = "azorult" - BRUSHALOADER = "brushaloader" - BUBLIK = "bublik" - BUNITU = "bunitu" - CERBER = "cerber" - CHTHONIC = "chthonic" - CITADEL = "citadel" - COREBOT = "corebot" - CRYPTOMIX = "cryptomix" - CRYPTOSHIELD = "cryptoshield" - CRYPTOWALL = "cryptowall" - DANABOT = "danabot" - DANALOADER = "danaloader" - DRIDEX = "dridex" - DRIDEX_WORKER = "dridex-worker" - DYRE = "dyre" - EMOTET = "emotet" - EMOTET5_UPNP = "emotet5_upnp" - EMOTET_DOC = "emotet_doc" - EMOTET_SPAM = "emotet_spam" - EMOTET_UPNP = "emotet_upnp" - EVIL_PONY = "evil-pony" - FLOKIBOT = "flokibot" - FORMBOOK = "formbook" - GANDCRAB = "gandcrab" - GET2 = "get2" - GLOBEIMPOSTER = "globeimposter" - GLUEDROPPER = "gluedropper" - GOOTKIT = "gootkit" - H1N1 = "h1n1" - HANCITOR = "hancitor" - HAWKEYE = "hawkeye" - ICEDID = "icedid" - ICEID = "iceid" - ICEIX = "iceix" - ISFB = "isfb" - JAFF = "jaff" - KBOT = "kbot" - KEGOTIP = "kegotip" - KINS = "kins" - KOVTER = "kovter" - KPOT = "kpot" - KRONOS = "kronos" - LOCKY = "locky" - LOKIBOT = "lokibot" - MADLOCKER = "madlocker" - MADNESS_PRO = "madness_pro" - MAOLOA = "maoloa" - MIRAI = "mirai" - MMBB = "mmbb" - NANOCORE = "nanocore" - NECURS = "necurs" - NETWIRE = "netwire" - NEUTRINO = "neutrino" - NJRAT = "njrat" - NYMAIM = "nymaim" - ODINAFF = "odinaff" - ONLINER = "onliner" - OSTAP = "ostap" - PANDA = "panda" - PHORPIEX = "phorpiex" - PONY = "pony" - PUSHDO = "pushdo" - QADARS = "qadars" - QAKBOT = "qakbot" - QUANTLOADER = "quantloader" - QUASARRAT = "quasarrat" - RAMNIT = "ramnit" - REMCOS = "remcos" - RETEFE = "retefe" - RUCKGUV = "ruckguv" - SAGE = "sage" - SENDSAFE = "sendsafe" - SHIFU = "shifu" - SLAVE = "slave" - SMOKELOADER = "smokeloader" - SYSTEMBC = "systembc" - TESLACRYPT = "teslacrypt" - TEST = "test" - TESTMOD = "testmod" - TINBA = "tinba" - TINBA_DGA = "tinba_dga" - TINYNUKE = "tinynuke" - TOFSEE = "tofsee" - TORMENT = "torment" - TORRENTLOCKER = "torrentlocker" - TRICKBOT = "trickbot" - TROLDESH = "troldesh" - UNKNOWN = "unknown" - VAWTRAK = "vawtrak" - VJWORM = "vjworm" - VMZEUS = "vmzeus" - VMZEUS2 = "vmzeus2" - WANNACRY = "wannacry" - XAGENT = "xagent" - ZEUS = "zeus" - ZLOADER = "zloader" - - -class MwdbTaxonomy(BaseModel): - """Model for the mwdb taxonomy.""" - - namespace: str = "mwdb" - description: str = """Malware Database (mwdb) Taxonomy - Tags used across the platform""" - version: int = 2 - exclusive: bool = False - predicates: List[MwdbTaxonomyPredicate] = [] - location_type_entries: List[MwdbTaxonomyLocationTypeEntry] = [] - family_entries: List[MwdbTaxonomyFamilyEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/nato.py b/src/openmisp/models/taxonomies/nato.py deleted file mode 100644 index 12f86f8..0000000 --- a/src/openmisp/models/taxonomies/nato.py +++ /dev/null @@ -1,40 +0,0 @@ -"""Taxonomy model for nato.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class NatoTaxonomyPredicate(str, Enum): - CLASSIFICATION = "classification" - - -class NatoTaxonomyClassificationEntry(str, Enum): - CTS = "CTS" - CTS_B = "CTS-B" - NS = "NS" - NC = "NC" - NR = "NR" - NU = "NU" - CTS_A = "CTS-A" - NS_A = "NS-A" - NC_A = "NC-A" - - -class NatoTaxonomy(BaseModel): - """Model for the nato taxonomy.""" - - namespace: str = "nato" - description: str = """NATO classification markings.""" - version: int = 2 - exclusive: bool = True - predicates: List[NatoTaxonomyPredicate] = [] - classification_entries: List[NatoTaxonomyClassificationEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/nis.py b/src/openmisp/models/taxonomies/nis.py deleted file mode 100644 index 5db2846..0000000 --- a/src/openmisp/models/taxonomies/nis.py +++ /dev/null @@ -1,83 +0,0 @@ -"""Taxonomy model for nis.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class NisTaxonomyPredicate(str, Enum): - IMPACT_SECTORS_IMPACTED = "impact-sectors-impacted" - IMPACT_SEVERITY = "impact-severity" - IMPACT_OUTLOOK = "impact-outlook" - NATURE_ROOT_CAUSE = "nature-root-cause" - NATURE_SEVERITY = "nature-severity" - TEST = "test" - - -class NisTaxonomyImpactSectorsImpactedEntry(str, Enum): - ENERGY = "energy" - TRANSPORT = "transport" - BANKING = "banking" - FINANCIAL = "financial" - HEALTH = "health" - DRINKING_WATER = "drinking-water" - DIGITAL_INFRASTRUCTURE = "digital-infrastructure" - COMMUNICATIONS = "communications" - DIGITAL_SERVICES = "digital-services" - TRUST_AND_IDENTIFICATION_SERVICES = "trust-and-identification-services" - GOVERNMENT = "government" - - -class NisTaxonomyImpactSeverityEntry(str, Enum): - RED = "red" - YELLOW = "yellow" - GREEN = "green" - WHITE = "white" - - -class NisTaxonomyImpactOutlookEntry(str, Enum): - IMPROVING = "improving" - STABLE = "stable" - WORSENING = "worsening" - - -class NisTaxonomyNatureRootCauseEntry(str, Enum): - SYSTEM_FAILURES = "system-failures" - NATURAL_PHENOMENA = "natural-phenomena" - HUMAN_ERRORS = "human-errors" - MALICIOUS_ACTIONS = "malicious-actions" - THIRD_PARTY_FAILURES = "third-party-failures" - - -class NisTaxonomyNatureSeverityEntry(str, Enum): - HIGH = "high" - MEDIUM = "medium" - LOW = "low" - - -class NisTaxonomyTestEntry(str, Enum): - TEST = "test" - - -class NisTaxonomy(BaseModel): - """Model for the nis taxonomy.""" - - namespace: str = "nis" - description: str = """The taxonomy is meant for large scale cybersecurity incidents, as mentioned in the Commission Recommendation of 13 September 2017, also known as the blueprint. It has two core parts: The nature of the incident, i.e. the underlying cause, that triggered the incident, and the impact of the incident, i.e. the impact on services, in which sector(s) of economy and society.""" - version: int = 2 - exclusive: bool = False - predicates: List[NisTaxonomyPredicate] = [] - impact_sectors_impacted_entries: List[NisTaxonomyImpactSectorsImpactedEntry] = [] - impact_severity_entries: List[NisTaxonomyImpactSeverityEntry] = [] - impact_outlook_entries: List[NisTaxonomyImpactOutlookEntry] = [] - nature_root_cause_entries: List[NisTaxonomyNatureRootCauseEntry] = [] - nature_severity_entries: List[NisTaxonomyNatureSeverityEntry] = [] - test_entries: List[NisTaxonomyTestEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/nis2.py b/src/openmisp/models/taxonomies/nis2.py deleted file mode 100644 index a390e31..0000000 --- a/src/openmisp/models/taxonomies/nis2.py +++ /dev/null @@ -1,146 +0,0 @@ -"""Taxonomy model for nis2.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class Nis2TaxonomyPredicate(str, Enum): - IMPACT_SECTORS_IMPACTED = "impact-sectors-impacted" - IMPACT_SUBSECTORS_IMPACTED = "impact-subsectors-impacted" - IMPORTANT_ENTITIES = "important-entities" - IMPACT_SUBSECTORS_IMPORTANT_ENTITIES = "impact-subsectors-important-entities" - IMPACT_SEVERITY = "impact-severity" - IMPACT_OUTLOOK = "impact-outlook" - NATURE_ROOT_CAUSE = "nature-root-cause" - NATURE_SEVERITY = "nature-severity" - TEST = "test" - - -class Nis2TaxonomyImpactSectorsImpactedEntry(str, Enum): - ENERGY = "energy" - TRANSPORT = "transport" - BANKING = "banking" - FINANCIAL = "financial" - HEALTH = "health" - DRINKING_WATER = "drinking-water" - WASTE_WATER = "waste-water" - DIGITAL_INFRASTRUCTURE = "digital-infrastructure" - ICT_SERVICES = "ict-services" - PUBLIC_ADMINISTRATION = "public-administration" - SPACE = "space" - COURIER = "courier" - WASTE_MANAGEMENT = "waste-management" - CHEMICAL = "chemical" - FOOD = "food" - MANUFACTURING = "manufacturing" - DIGITAL_PROVIDERS = "digital-providers" - RESEARCH = "research" - - -class Nis2TaxonomyImpactSubsectorsImpactedEntry(str, Enum): - ELECTRICITY = "electricity" - DISTRICT_HEATING_AND_COOLING = "district-heating-and-cooling" - OIL = "oil" - GAS = "gas" - HYDROGEN = "hydrogen" - AIR = "air" - RAIL = "rail" - WATER = "water" - ROAD = "road" - BANKING_SUBSECTOR = "banking-subsector" - FINANCIAL_SUBSECTOR = "financial-subsector" - HEALTH_SUBSECTOR = "health-subsector" - DRINKING_WATER_SUBSECTOR = "drinking-water-subsector" - WASTE_WATER_SUBSECTOR = "waste-water-subsector" - DIGITAL_INFRASTRUCTURE_SUBSECTOR = "digital-infrastructure-subsector" - ICT_MANAGEMENT_SUBSECTOR = "ict-management-subsector" - PUBLIC_ADMINISTRATION_SUBSECTOR = "public-administration-subsector" - SPACE_SUBSECTOR = "space-subsector" - COURIER_SUBSECTOR = "courier-subsector" - WASTE_MANAGEMENT_SUBSECTOR = "waste-management-subsector" - CHEMICAL_SUBSECTOR = "chemical-subsector" - FOOD_SUBSECTOR = "food-subsector" - MEDICAL_DEVICES_SUBSECTOR = "medical-devices-subsector" - ELECTRONIC_OPTICAL_SUBSECTOR = "electronic-optical-subsector" - ELECTRICAL_EQUIPMENT_SUBSECTOR = "electrical-equipment-subsector" - MACHINE_TOOL_SUBSECTOR = "machine-tool-subsector" - VEHICLE_MANUFACTURING_SUBSECTOR = "vehicle-manufacturing-subsector" - OTHER_TRANSPORT_EQUIPMENT_SUBSECTOR = "other-transport-equipment-subsector" - DIGITAL_PROVIDERS_SUBSECTOR = "digital-providers-subsector" - RESEARCH_SUBSECTOR = "research-subsector" - - -class Nis2TaxonomyImportantEntitiesEntry(str, Enum): - POSTAL = "postal" - WASTE = "waste" - CHEMICALS = "chemicals" - MANUFACTURING = "manufacturing" - DIGITAL = "digital" - - -class Nis2TaxonomyImpactSubsectorsImportantEntitiesEntry(str, Enum): - MEDICAL_DEVICES_MANUFACTURING = "medical-devices-manufacturing" - COMPUTER_MANUFACTURING = "computer-manufacturing" - ELECTRICAL_EQUIPMENT_MANUFACTURING = "electrical-equipment-manufacturing" - MACHINERY_EQUIPMENT_MANUFACTURING = "machinery-equipment-manufacturing" - VEHICLES_TRAILERS_MANUFACTURING = "vehicles-trailers-manufacturing" - OTHER_TRANSPORT_MANUFACTURING = "other-transport-manufacturing" - - -class Nis2TaxonomyImpactSeverityEntry(str, Enum): - RED = "red" - YELLOW = "yellow" - GREEN = "green" - WHITE = "white" - - -class Nis2TaxonomyImpactOutlookEntry(str, Enum): - IMPROVING = "improving" - STABLE = "stable" - WORSENING = "worsening" - - -class Nis2TaxonomyNatureRootCauseEntry(str, Enum): - SYSTEM_FAILURES = "system-failures" - NATURAL_PHENOMENA = "natural-phenomena" - HUMAN_ERRORS = "human-errors" - MALICIOUS_ACTIONS = "malicious-actions" - THIRD_PARTY_FAILURES = "third-party-failures" - - -class Nis2TaxonomyNatureSeverityEntry(str, Enum): - HIGH = "high" - MEDIUM = "medium" - LOW = "low" - - -class Nis2TaxonomyTestEntry(str, Enum): - TEST = "test" - - -class Nis2Taxonomy(BaseModel): - """Model for the nis2 taxonomy.""" - - namespace: str = "nis2" - description: str = """The taxonomy is meant for large scale cybersecurity incidents, as mentioned in the Commission Recommendation of 13 May 2022, also known as the provisional agreement. It has two core parts: The nature of the incident, i.e. the underlying cause, that triggered the incident, and the impact of the incident, i.e. the impact on services, in which sector(s) of economy and society.""" - version: int = 5 - exclusive: bool = False - predicates: List[Nis2TaxonomyPredicate] = [] - impact_sectors_impacted_entries: List[Nis2TaxonomyImpactSectorsImpactedEntry] = [] - impact_subsectors_impacted_entries: List[Nis2TaxonomyImpactSubsectorsImpactedEntry] = [] - important_entities_entries: List[Nis2TaxonomyImportantEntitiesEntry] = [] - impact_subsectors_important_entities_entries: List[Nis2TaxonomyImpactSubsectorsImportantEntitiesEntry] = [] - impact_severity_entries: List[Nis2TaxonomyImpactSeverityEntry] = [] - impact_outlook_entries: List[Nis2TaxonomyImpactOutlookEntry] = [] - nature_root_cause_entries: List[Nis2TaxonomyNatureRootCauseEntry] = [] - nature_severity_entries: List[Nis2TaxonomyNatureSeverityEntry] = [] - test_entries: List[Nis2TaxonomyTestEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/open_threat.py b/src/openmisp/models/taxonomies/open_threat.py deleted file mode 100644 index 1605ec2..0000000 --- a/src/openmisp/models/taxonomies/open_threat.py +++ /dev/null @@ -1,115 +0,0 @@ -"""Taxonomy model for open_threat.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class OpenThreatTaxonomyPredicate(str, Enum): - THREAT_CATEGORY = "threat-category" - THREAT_NAME = "threat-name" - - -class OpenThreatTaxonomyThreatCategoryEntry(str, Enum): - PHYSICAL = "Physical" - RESOURCE = "Resource" - PERSONAL = "Personal" - TECHNICAL = "Technical" - - -class OpenThreatTaxonomyThreatNameEntry(str, Enum): - PHY_001 = "PHY-001" - PHY_002 = "PHY-002" - PHY_003 = "PHY-003" - PHY_004 = "PHY-004" - PHY_005 = "PHY-005" - PHY_006 = "PHY-006" - PHY_007 = "PHY-007" - PHY_008 = "PHY-008" - PHY_009 = "PHY-009" - PHY_010 = "PHY-010" - PHY_011 = "PHY-011" - PHY_012 = "PHY-012" - PHY_013 = "PHY-013" - PHY_014 = "PHY-014" - RES_001 = "RES-001" - RES_002 = "RES-002" - RES_003 = "RES-003" - RES_004 = "RES-004" - RES_005 = "RES-005" - RES_006 = "RES-006" - RES_007 = "RES-007" - RES_008 = "RES-008" - RES_009 = "RES-009" - RES_010 = "RES-010" - RES_011 = "RES-011" - RES_012 = "RES-012" - RES_013 = "RES-013" - PER_001 = "PER-001" - PER_002 = "PER-002" - PER_003 = "PER-003" - PER_004 = "PER-004" - PER_005 = "PER-005" - PER_006 = "PER-006" - PER_007 = "PER-007" - TEC_001 = "TEC-001" - TEC_002 = "TEC-002" - TEC_003 = "TEC-003" - TEC_004 = "TEC-004" - TEC_005 = "TEC-005" - TEC_006 = "TEC-006" - TEC_007 = "TEC-007" - TEC_008 = "TEC-008" - TEC_009 = "TEC-009" - TEC_010 = "TEC-010" - TEC_011 = "TEC-011" - TEC_012 = "TEC-012" - TEC_013 = "TEC-013" - TEC_014 = "TEC-014" - TEC_015 = "TEC-015" - TEC_016 = "TEC-016" - TEC_017 = "TEC-017" - TEC_018 = "TEC-018" - TEC_019 = "TEC-019" - TEC_020 = "TEC-020" - TEC_021 = "TEC-021" - TEC_022 = "TEC-022" - TEC_023 = "TEC-023" - TEC_024 = "TEC-024" - TEC_025 = "TEC-025" - TEC_026 = "TEC-026" - TEC_027 = "TEC-027" - TEC_028 = "TEC-028" - TEC_029 = "TEC-029" - TEC_030 = "TEC-030" - TEC_031 = "TEC-031" - TEC_032 = "TEC-032" - TEC_033 = "TEC-033" - TEC_034 = "TEC-034" - TEC_035 = "TEC-035" - TEC_036 = "TEC-036" - TEC_037 = "TEC-037" - TEC_038 = "TEC-038" - TEC_039 = "TEC-039" - TEC_040 = "TEC-040" - TEC_041 = "TEC-041" - - -class OpenThreatTaxonomy(BaseModel): - """Model for the open_threat taxonomy.""" - - namespace: str = "open_threat" - description: str = """Open Threat Taxonomy v1.1 base on James Tarala of SANS http://www.auditscripts.com/resources/open_threat_taxonomy_v1.1a.pdf, https://files.sans.org/summit/Threat_Hunting_Incident_Response_Summit_2016/PDFs/Using-Open-Tools-to-Convert-Threat-Intelligence-into-Practical-Defenses-James-Tarala-SANS-Institute.pdf, https://www.youtube.com/watch?v=5rdGOOFC_yE, and https://www.rsaconference.com/writable/presentations/file_upload/str-r04_using-an-open-source-threat-model-for-prioritized-defense-final.pdf""" - version: int = 1 - exclusive: bool = False - predicates: List[OpenThreatTaxonomyPredicate] = [] - threat_category_entries: List[OpenThreatTaxonomyThreatCategoryEntry] = [] - threat_name_entries: List[OpenThreatTaxonomyThreatNameEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/organizational_cyber_harm.py b/src/openmisp/models/taxonomies/organizational_cyber_harm.py deleted file mode 100644 index 5b99071..0000000 --- a/src/openmisp/models/taxonomies/organizational_cyber_harm.py +++ /dev/null @@ -1,108 +0,0 @@ -"""Taxonomy model for organizational cyber- arm.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class OrganizationalCyberHarmTaxonomyPredicate(str, Enum): - PHYSICAL_DIGITAL = "physical-digital" - ECONOMIC = "economic" - PSYCHOLOGICAL = "psychological" - REPUTATIONAL = "reputational" - SOCIAL_SOCIETAL = "social-societal" - - -class OrganizationalCyberHarmTaxonomyPhysicalDigitalEntry(str, Enum): - DAMAGED_OR_UNAVAILABLE = "damaged-or-unavailable" - DESTROYED = "destroyed" - THEFT = "theft" - COMPROMISED = "compromised" - INFECTED = "infected" - EXPOSED_LEAKED = "exposed-leaked" - CORRUPTED = "corrupted" - REDUCED_PERFORMANCE = "reduced-performance" - BODILY_INJURY = "bodily-injury" - PAIN = "pain" - LOSS_OF_LIFE = "loss-of-life" - PROSECUTION = "prosecution" - ABUSE = "abuse" - MISTREATMENT = "mistreatment" - IDENTITY_THEFT = "identity-theft" - - -class OrganizationalCyberHarmTaxonomyEconomicEntry(str, Enum): - DISRUPTED_OPERATIONS = "disrupted-operations" - DISRUPTED_SALES = "disrupted-sales" - REDUCED_CUSTOMERS = "reduced-customers" - REDUCED_PROFITS = "reduced-profits" - REDUCED_GROWTH = "reduced-growth" - REDUCED_INVESTMENTS = "reduced-investments" - FALL_IN_STOCK_PRICE = "fall-in-stock-price" - THEFT_OF_FINANCES = "theft-of-finances" - LOSS_OF_FINANCES = "loss-of-finances" - REGULATORY_FINES = "regulatory-fines" - INVESTIGATION_COSTS = "investigation-costs" - PR_RESPONSE_COSTS = "pr-response-costs" - COMPENSATION_PAYMENTS = "compensation-payments" - EXTORTION_PAYMENTS = "extortion-payments" - LOSS_OF_JOBS = "loss-of-jobs" - SCAMMED = "scammed" - - -class OrganizationalCyberHarmTaxonomyPsychologicalEntry(str, Enum): - CONFUSION = "confusion" - DISCOMFORT = "discomfort" - FRUSTRATION = "frustration" - WORRY_ANXIETY = "worry-anxiety" - FEELING_UPSET = "feeling-upset" - DEPRESSED = "depressed" - EMBARRASSED = "embarrassed" - SHAMEFUL = "shameful" - GUILTY = "guilty" - LOSS_OF_SELF_CONFIDENCE = "loss-of-self-confidence" - LOW_SATISFACTION = "low-satisfaction" - NEGATIVE_CHANGES_IN_PERCEPTION = "negative-changes-in-perception" - - -class OrganizationalCyberHarmTaxonomyReputationalEntry(str, Enum): - DAMAGED_PUBLIC_PERCEPTION = "damaged-public-perception" - REDUCED_CORPORATE_GOODWILL = "reduced-corporate-goodwill" - DAMAGED_CUSTOMER_RELATIONSHIPS = "damaged-customer-relationships" - DAMAGED_SUPPLIER_RELATIONSHIPS = "damaged-supplier-relationships" - REDUCED_BUSINESS_OPPORTUNITIES = "reduced-business-opportunities" - INABILITY_TO_RECRUIT = "inability-to-recruit" - MEDIA_SCRUTINY = "media-scrutiny" - LOSS_OF_KEY_STAFF = "loss-of-key-staff" - LOSS_OF_ACCREDITATIONS = "loss-of-accreditations" - REDUCED_CREDIT_SCORES = "reduced-credit-scores" - - -class OrganizationalCyberHarmTaxonomySocialSocietalEntry(str, Enum): - NEGATIVE_CHANGES_IN_PUBLIC_PERCEPTION = "negative-changes-in-public-perception" - DISRUPTION_IN_DAILY_ACTIVITIES = "disruption-in-daily-activities" - NEGATIVE_IMPACT_ON_NETWORK = "negative-impact-on-network" - DROP_IN_INTERNAL_MORALE = "drop-in-internal-morale" - - -class OrganizationalCyberHarmTaxonomy(BaseModel): - """Model for the organizational cyber- arm taxonomy.""" - - namespace: str = "organizational-cyber-harm" - description: str = """A taxonomy to classify organizational cyber harms based on categories like physical, economic, psychological, reputational, and social/societal impacts.""" - version: int = 1 - exclusive: bool = False - predicates: List[OrganizationalCyberHarmTaxonomyPredicate] = [] - physical_digital_entries: List[OrganizationalCyberHarmTaxonomyPhysicalDigitalEntry] = [] - economic_entries: List[OrganizationalCyberHarmTaxonomyEconomicEntry] = [] - psychological_entries: List[OrganizationalCyberHarmTaxonomyPsychologicalEntry] = [] - reputational_entries: List[OrganizationalCyberHarmTaxonomyReputationalEntry] = [] - social_societal_entries: List[OrganizationalCyberHarmTaxonomySocialSocietalEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/osint.py b/src/openmisp/models/taxonomies/osint.py deleted file mode 100644 index adbc731..0000000 --- a/src/openmisp/models/taxonomies/osint.py +++ /dev/null @@ -1,68 +0,0 @@ -"""Taxonomy model for osint.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class OsintTaxonomyPredicate(str, Enum): - SOURCE_TYPE = "source-type" - LIFETIME = "lifetime" - CERTAINTY = "certainty" - - -class OsintTaxonomySourceTypeEntry(str, Enum): - BLOG_POST = "blog-post" - MICROBLOG_POST = "microblog-post" - TECHNICAL_REPORT = "technical-report" - PRESENTATION = "presentation" - NEWS_REPORT = "news-report" - PASTIE_WEBSITE = "pastie-website" - ELECTRONIC_FORUM = "electronic-forum" - MAILING_LIST = "mailing-list" - BLOCK_OR_FILTER_LIST = "block-or-filter-list" - SOURCE_CODE_REPOSITORY = "source-code-repository" - ACCESSIBLE_EVIDENCE = "accessible-evidence" - EXPANSION = "expansion" - AUTOMATIC_ANALYSIS = "automatic-analysis" - AUTOMATIC_COLLECTION = "automatic-collection" - MANUAL_ANALYSIS = "manual-analysis" - MANUAL_COLLECTION = "manual-collection" - UNKNOWN = "unknown" - OTHER = "other" - - -class OsintTaxonomyLifetimeEntry(str, Enum): - PERPETUAL = "perpetual" - EPHEMERAL = "ephemeral" - - -class OsintTaxonomyCertaintyEntry(str, Enum): - T_100 = "100" - T_93 = "93" - T_75 = "75" - T_50 = "50" - T_30 = "30" - T_7 = "7" - T_0 = "0" - - -class OsintTaxonomy(BaseModel): - """Model for the osint taxonomy.""" - - namespace: str = "osint" - description: str = """Open Source Intelligence - Classification (MISP taxonomies)""" - version: int = 11 - exclusive: bool = False - predicates: List[OsintTaxonomyPredicate] = [] - source_type_entries: List[OsintTaxonomySourceTypeEntry] = [] - lifetime_entries: List[OsintTaxonomyLifetimeEntry] = [] - certainty_entries: List[OsintTaxonomyCertaintyEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/pandemic.py b/src/openmisp/models/taxonomies/pandemic.py deleted file mode 100644 index e561f3c..0000000 --- a/src/openmisp/models/taxonomies/pandemic.py +++ /dev/null @@ -1,35 +0,0 @@ -"""Taxonomy model for pandemic.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PandemicTaxonomyPredicate(str, Enum): - COVID_19 = "covid-19" - - -class PandemicTaxonomyCovid19Entry(str, Enum): - HEALTH = "health" - CYBER = "cyber" - DISINFORMATION = "disinformation" - GEOSTRATEGY = "geostrategy" - - -class PandemicTaxonomy(BaseModel): - """Model for the pandemic taxonomy.""" - - namespace: str = "pandemic" - description: str = """Pandemic""" - version: int = 4 - exclusive: bool = False - predicates: List[PandemicTaxonomyPredicate] = [] - covid_19_entries: List[PandemicTaxonomyCovid19Entry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/pap.py b/src/openmisp/models/taxonomies/pap.py deleted file mode 100644 index fe6f764..0000000 --- a/src/openmisp/models/taxonomies/pap.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Taxonomy model for Permissible Actions Protocol.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PapTaxonomyPredicate(str, Enum): - RED = "RED" - AMBER = "AMBER" - GREEN = "GREEN" - CLEAR = "CLEAR" - WHITE = "WHITE" - - -class PapTaxonomy(BaseModel): - """Model for the Permissible Actions Protocol taxonomy.""" - - namespace: str = "PAP" - description: str = """The Permissible Actions Protocol - or short: PAP - was designed to indicate how the received information can be used.""" - version: int = 3 - exclusive: bool = True - predicates: List[PapTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/passivetotal.py b/src/openmisp/models/taxonomies/passivetotal.py deleted file mode 100644 index 26893d3..0000000 --- a/src/openmisp/models/taxonomies/passivetotal.py +++ /dev/null @@ -1,56 +0,0 @@ -"""Taxonomy model for PassiveTotal.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PassivetotalTaxonomyPredicate(str, Enum): - SINKHOLED = "sinkholed" - EVER_COMPROMISED = "ever-compromised" - DYNAMIC_DNS = "dynamic-dns" - CLASS = "class" - - -class PassivetotalTaxonomySinkholedEntry(str, Enum): - YES = "yes" - NO = "no" - - -class PassivetotalTaxonomyEverCompromisedEntry(str, Enum): - YES = "yes" - NO = "no" - - -class PassivetotalTaxonomyDynamicDnsEntry(str, Enum): - YES = "yes" - NO = "no" - - -class PassivetotalTaxonomyClassEntry(str, Enum): - MALICIOUS = "malicious" - SUSPICIOUS = "suspicious" - NON_MALICIOUS = "non-malicious" - UNKNOWN = "unknown" - - -class PassivetotalTaxonomy(BaseModel): - """Model for the PassiveTotal taxonomy.""" - - namespace: str = "passivetotal" - description: str = """Tags from RiskIQ's PassiveTotal service""" - version: int = 2 - exclusive: bool = False - predicates: List[PassivetotalTaxonomyPredicate] = [] - sinkholed_entries: List[PassivetotalTaxonomySinkholedEntry] = [] - ever_compromised_entries: List[PassivetotalTaxonomyEverCompromisedEntry] = [] - dynamic_dns_entries: List[PassivetotalTaxonomyDynamicDnsEntry] = [] - class_entries: List[PassivetotalTaxonomyClassEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/pentest.py b/src/openmisp/models/taxonomies/pentest.py deleted file mode 100644 index f8b61f6..0000000 --- a/src/openmisp/models/taxonomies/pentest.py +++ /dev/null @@ -1,107 +0,0 @@ -"""Taxonomy model for pentest.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PentestTaxonomyPredicate(str, Enum): - APPROACH = "approach" - SCAN = "scan" - EXPLOIT = "exploit" - POST_EXPLOITATION = "post_exploitation" - WEB = "web" - NETWORK = "network" - SOCIAL_ENGINEERING = "social_engineering" - VULNERABILITY = "vulnerability" - - -class PentestTaxonomyApproachEntry(str, Enum): - BLACKBOX = "blackbox" - GREYBOX = "greybox" - WHITEBOX = "whitebox" - VULNERABILITY_SCANNING = "vulnerability_scanning" - REDTEAM = "redteam" - - -class PentestTaxonomyScanEntry(str, Enum): - VERTICAL = "vertical" - HORIZONTAL = "horizontal" - NETWORK_SCAN = "network_scan" - VULNERABILITY = "vulnerability" - - -class PentestTaxonomyExploitEntry(str, Enum): - TYPE_CONFUSION = "type confusion" - FORMAT_STRINGS = "format_strings" - STACK_OVERFLOW = "stack_overflow" - HEAP_OVERFLOW = "heap_overflow" - HEAP_SPRAYING = "heap_spraying" - FUZZING = "fuzzing" - ROP = "ROP" - NULL_POINTER_DEREFERENCE = "null_pointer_dereference" - - -class PentestTaxonomyPostExploitationEntry(str, Enum): - PRIVILEGE_ESCALATION = "privilege_escalation" - PIVOTING = "pivoting" - PASSWORD_CRACKING = "password_cracking" - PERSISTENCE = "persistence" - DATA_EXFILTRATION = "data_exfiltration" - - -class PentestTaxonomyWebEntry(str, Enum): - INJECTION = "injection" - SQLI = "SQLi" - NO_SQLI = "NoSQLi" - XML_INJECTION = "XML injection" - CSRF = "CSRF" - SSRF = "SSRF" - XSS = "XSS" - FILE_INCLUSION = "file_inclusion" - WEB_TREE_DISCOVERY = "web_tree_discovery" - BRUTEFORCE = "bruteforce" - FUZZING = "fuzzing" - - -class PentestTaxonomyNetworkEntry(str, Enum): - SNIFFING = "sniffing" - SPOOFING = "spoofing" - MAN_IN_THE_MIDDLE = "man_in_the_middle" - NETWORK_DISCOVERY = "network_discovery" - - -class PentestTaxonomySocialEngineeringEntry(str, Enum): - PHISHING = "phishing" - MALWARE = "malware" - - -class PentestTaxonomyVulnerabilityEntry(str, Enum): - CWE = "CWE" - CVE = "CVE" - - -class PentestTaxonomy(BaseModel): - """Model for the pentest taxonomy.""" - - namespace: str = "pentest" - description: str = """Penetration test (pentest) classification.""" - version: int = 3 - exclusive: bool = False - predicates: List[PentestTaxonomyPredicate] = [] - approach_entries: List[PentestTaxonomyApproachEntry] = [] - scan_entries: List[PentestTaxonomyScanEntry] = [] - exploit_entries: List[PentestTaxonomyExploitEntry] = [] - post_exploitation_entries: List[PentestTaxonomyPostExploitationEntry] = [] - web_entries: List[PentestTaxonomyWebEntry] = [] - network_entries: List[PentestTaxonomyNetworkEntry] = [] - social_engineering_entries: List[PentestTaxonomySocialEngineeringEntry] = [] - vulnerability_entries: List[PentestTaxonomyVulnerabilityEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/pfc.py b/src/openmisp/models/taxonomies/pfc.py deleted file mode 100644 index f8ff07b..0000000 --- a/src/openmisp/models/taxonomies/pfc.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Taxonomy model for Protocole des Feux de Circulation.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PfcTaxonomyPredicate(str, Enum): - ROUGE = "rouge" - AMBRE = "ambre" - AMBRE_STRICT = "ambre+strict" - VERT = "vert" - LIBRE = "libre" - - -class PfcTaxonomy(BaseModel): - """Model for the Protocole des Feux de Circulation taxonomy.""" - - namespace: str = "pfc" - description: str = """Le Protocole des feux de circulation (PFC) est basé sur le standard « Traffic Light Protocol (TLP) » conçu par le FIRST. Il a pour objectif d’informer sur les limites autorisées pour la diffusion des informations. Il est classé selon des codes de couleurs.""" - version: int = 1 - exclusive: bool = True - predicates: List[PfcTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/phishing.py b/src/openmisp/models/taxonomies/phishing.py deleted file mode 100644 index 8ae3860..0000000 --- a/src/openmisp/models/taxonomies/phishing.py +++ /dev/null @@ -1,99 +0,0 @@ -"""Taxonomy model for phishing.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PhishingTaxonomyPredicate(str, Enum): - TECHNIQUES = "techniques" - DISTRIBUTION = "distribution" - REPORT_TYPE = "report-type" - REPORT_ORIGIN = "report-origin" - ACTION = "action" - STATE = "state" - PSYCHOLOGICAL_ACCEPTABILITY = "psychological-acceptability" - PRINCIPLE_OF_PERSUASION = "principle-of-persuasion" - - -class PhishingTaxonomyTechniquesEntry(str, Enum): - FAKE_WEBSITE = "fake-website" - EMAIL_SPOOFING = "email-spoofing" - CLONE_PHISHING = "clone-phishing" - VOICE_PHISHING = "voice-phishing" - SEARCH_ENGINES_ABUSE = "search-engines-abuse" - SMS_PHISHING = "sms-phishing" - BUSINESS_EMAIL_COMPROMISE = "business email compromise" - - -class PhishingTaxonomyDistributionEntry(str, Enum): - SPEAR_PHISHING = "spear-phishing" - BULK_PHISHING = "bulk-phishing" - WHALING = "whaling" - - -class PhishingTaxonomyReportTypeEntry(str, Enum): - MANUAL_REPORTING = "manual-reporting" - AUTOMATIC_REPORTING = "automatic-reporting" - - -class PhishingTaxonomyReportOriginEntry(str, Enum): - URL_ABUSE = "url-abuse" - LOOKYLOO = "lookyloo" - PHISHTANK = "phishtank" - SPAMBEE = "spambee" - - -class PhishingTaxonomyActionEntry(str, Enum): - TAKE_DOWN = "take-down" - PENDING_LAW_ENFORCEMENT_REQUEST = "pending-law-enforcement-request" - PENDING_DISPUTE_RESOLUTION = "pending-dispute-resolution" - - -class PhishingTaxonomyStateEntry(str, Enum): - UNKNOWN = "unknown" - ACTIVE = "active" - DOWN = "down" - - -class PhishingTaxonomyPsychologicalAcceptabilityEntry(str, Enum): - UNKNOWN = "unknown" - LOW = "low" - MEDIUM = "medium" - HIGH = "high" - - -class PhishingTaxonomyPrincipleOfPersuasionEntry(str, Enum): - AUTHORITY = "authority" - SOCIAL_PROOF = "social-proof" - LIKING_SIMILARITY_DECEPTION = "liking-similarity-deception" - COMMITMENT_RECIPROCATION_CONSISTENCY = "commitment-reciprocation-consistency" - DISTRACTION = "distraction" - - -class PhishingTaxonomy(BaseModel): - """Model for the phishing taxonomy.""" - - namespace: str = "phishing" - description: str = ( - """Taxonomy to classify phishing attacks including techniques, collection mechanisms and analysis status.""" - ) - version: int = 5 - exclusive: bool = False - predicates: List[PhishingTaxonomyPredicate] = [] - techniques_entries: List[PhishingTaxonomyTechniquesEntry] = [] - distribution_entries: List[PhishingTaxonomyDistributionEntry] = [] - report_type_entries: List[PhishingTaxonomyReportTypeEntry] = [] - report_origin_entries: List[PhishingTaxonomyReportOriginEntry] = [] - action_entries: List[PhishingTaxonomyActionEntry] = [] - state_entries: List[PhishingTaxonomyStateEntry] = [] - psychological_acceptability_entries: List[PhishingTaxonomyPsychologicalAcceptabilityEntry] = [] - principle_of_persuasion_entries: List[PhishingTaxonomyPrincipleOfPersuasionEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/poison_taxonomy.py b/src/openmisp/models/taxonomies/poison_taxonomy.py deleted file mode 100644 index e4f79e4..0000000 --- a/src/openmisp/models/taxonomies/poison_taxonomy.py +++ /dev/null @@ -1,184 +0,0 @@ -"""Taxonomy model for poison-taxonomy.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PoisonTaxonomyTaxonomyPredicate(str, Enum): - POISONOUS_PLANT = "Poisonous plant" - POISONOUS_FUNGUS = "Poisonous fungus" - - -class PoisonTaxonomyTaxonomyPoisonousFungusEntry(str, Enum): - AGARICUS_CALIFORNICUS_CALIFORNIA_ = "Agaricus californicus/California " - AGARICUS_HONDENSIS_FELT_RINGED_ = "Agaricus hondensis/Felt-ringed " - AGARICUS_MENIERI = "Agaricus menieri" - AGARICUS_MOELLERI = "Agaricus moelleri" - AGARICUS_PHAEOLEPIDOTUS = "Agaricus phaeolepidotus" - AGARICUS_PLACOMYCES = "Agaricus placomyces" - AGARICUS_XANTHODERMUS_YELLOW_STAINING_MUSHROOM = "Agaricus xanthodermus/Yellow-staining mushroom" - AMANITA_ABRUPTA_AMERICAN_ABRUPT_BULBED_LEPIDELLA = "Amanita abrupta/American abrupt-bulbed Lepidella" - AMANITA_APRICA_SUNSHINE_AMANITA = "Amanita aprica/Sunshine amanita" - AMANITA_BOUDIERI_BOUDIER_S_LEPIDELLA = "Amanita boudieri/Boudier's lepidella" - AMANITA_CITRINA = "Amanita citrina" - AMANITA_COKERI_COKER_S_AMANITA = "Amanita cokeri/Coker's amanita" - AMANITA_COTHURNATA_BOOTED_AMANITA = "Amanita cothurnata/Booted amanita" - AMANITA_ECHINOCEPHALA_EUROPEAN_SOLITARY_AMANITA = "Amanita echinocephala/European solitary amanita" - AMANITA_FARINOSA_POWDERY_AMANITA = "Amanita farinosa/Powdery Amanita" - AMANITA_FLAVORUBESCENS = "Amanita flavorubescens" - AMANITA_GEMMATA_GEMMED_AMANITA = "Amanita gemmata/Gemmed Amanita" - AMANITA_GIOIOSA = "Amanita gioiosa" - AMANITA_GRACILIOR = "Amanita gracilior" - AMANITA_HETEROCHROMA_EUCALYPTUS_FLY_AGARIC = "Amanita heterochroma/Eucalyptus fly agaric" - AMANITA_HONGOI_HONGO_S_AMANITA = "Amanita hongoi/Hongo's Amanita" - AMANITA_IBOTENGUTAKE_JAPANESE_RINGED_BULBED_AMANITA = "Amanita ibotengutake/Japanese ringed-bulbed Amanita" - AMANITA_MUSCARIA_FLY_AGARIC = "Amanita muscaria/Fly agaric" - AMANITA_NEOOVOIDEA_EAST_ASIAN_EGG_AMIDELLA = "Amanita neoovoidea/East Asian egg amidella" - AMANITA_PANTHERINA_PANTHER_CAP = "Amanita pantherina/Panther cap" - AMANITA_PORPHYRIA_GREY_VEILED_AMANITA = "Amanita porphyria/Grey veiled Amanita" - AMANITA_PSEUDOPORPHYRIA_HONGO_S_FALSE_DEATH_CAP = "Amanita pseudoporphyria/Hongo's false death cap" - AMANITA_PSEUDOREGALIS_FALSE_ROYAL_FLY_AGARIC = "Amanita pseudoregalis/False royal fly agaric" - AMANITA_PSEUDORUBESCENS_FALSE_BLUSHER = "Amanita pseudorubescens/False blusher" - AMANITA_REGALIS_ROYAL_FLY_AGARIC = "Amanita regalis/Royal fly agaric" - AMANITA_SMITHIANA_SMITH_S_AMANITA = "Amanita smithiana/Smith's Amanita" - AMPULLOCLITOCYBE_CLAVIPES_CLUB_FOOTED_CLITOCYBE = "Ampulloclitocybe clavipes/Club-footed clitocybe" - CHLOROPHYLLUM_MOLYBDITES_GREEN_SPORED_PARASOL = "Chlorophyllum molybdites/Green-spored parasol" - CLITOCYBE_CERUSSATA = "Clitocybe cerussata" - CLITOCYBE_DEALBATA = "Clitocybe dealbata" - COPRINOPSIS_ALOPECIA = "Coprinopsis alopecia" - COPRINOPSIS_ATRAMENTARIA_COMMON_INK_CAP = "Coprinopsis atramentaria/Common ink cap" - COPRINOPSIS_ROMAGNESIANA_SCALY_INK_CAP = "Coprinopsis romagnesiana/Scaly ink cap" - CORTINARIUS_BOLARIS = "Cortinarius bolaris" - CORTINARIUS_CALLISTEUS = "Cortinarius callisteus" - CORTINARIUS_CINNABARINUS = "Cortinarius cinnabarinus" - CORTINARIUS_CINNAMOMEOFULVUS = "Cortinarius cinnamomeofulvus" - CORTINARIUS_CINNAMOMEOLUTEUS = "Cortinarius cinnamomeoluteus" - CORTINARIUS_CINNAMOMEUS = "Cortinarius cinnamomeus" - CORTINARIUS_CRUENTUS = "Cortinarius cruentus" - CORTINARIUS_GENTILIS = "Cortinarius gentilis" - CORTINARIUS_LIMONIUS = "Cortinarius limonius" - CORTINARIUS_MALICORIUS = "Cortinarius malicorius" - CORTINARIUS_MIRANDUS = "Cortinarius mirandus" - CORTINARIUS_PALUSTRIS = "Cortinarius palustris" - CORTINARIUS_PHOENICEUS = "Cortinarius phoeniceus" - CORTINARIUS_RUBICUNDULUS = "Cortinarius rubicundulus" - CORTINARIUS_SMITHII_SMITH_S_CORTINARIUS = "Cortinarius smithii/Smith's Cortinarius" - CUDONIA_CIRCINANS = "Cudonia circinans" - GYROMITRA_PERLATA_PIG_S_EARS = "Gyromitra perlata/Pig's ears" - ECHINODERMA_ASPERUM_FRECKLED_DAPPERLING = "Echinoderma asperum/Freckled dapperling" - ECHINODERMA_CALCICOLA = "Echinoderma calcicola" - ENTOLOMA_ALBIDUM = "Entoloma albidum" - ENTOLOMA_RHODOPOLIUM_WOOD_PINKGILL = "Entoloma rhodopolium/Wood pinkgill" - ENTOLOMA_SINUATUM_LIVID_ENTOLOMA = "Entoloma sinuatum/Livid Entoloma" - HEBELOMA_CRUSTULINIFORME_POISON_PIE = "Hebeloma crustuliniforme/Poison pie" - HEBELOMA_SINAPIZANS_ROUGH_STALKED_HEBELOMA = "Hebeloma sinapizans/Rough-stalked hebeloma" - HELVELLA_CRISPA_ELFIN_SADDLE = "Helvella crispa/Elfin saddle" - HELVELLA_DRYOPHILA_OAK_LOVING_ELFIN_SADDLE = "Helvella dryophila/Oak-loving elfin saddle" - HELVELLA_LACTEA = "Helvella lactea" - HELVELLA_LACUNOSA_SLATE_GREY_SADDLE = "Helvella lacunosa/Slate grey saddle" - HELVELLA_VESPERTINA_WESTERN_BLACK_ELFIN_SADDLE = "Helvella vespertina/Western black elfin saddle" - HAPALOPILUS_NIDULANS_TENDER_NESTING_POLYPORE = "Hapalopilus nidulans/Tender nesting polypore" - HYPHOLOMA_FASCICULARE_SULPHUR_TUFT = "Hypholoma fasciculare/Sulphur tuft" - HYPHOLOMA_LATERITIUM_BRICK_CAP = "Hypholoma lateritium/Brick cap" - HYPHOLOMA_MARGINATUM = "Hypholoma marginatum" - HYPHOLOMA_RADICOSUM = "Hypholoma radicosum" - IMPERATOR_RHODOPURPUREUS = "Imperator rhodopurpureus" - IMPERATOR_TOROSUS = "Imperator torosus" - INOCYBE_FIBROSA = "Inocybe fibrosa" - INOCYBE_GEOPHYLLA_EARTHY_INOCYBE = "Inocybe geophylla/Earthy inocybe" - INOCYBE_HYSTRIX = "Inocybe hystrix" - INOCYBE_LACERA_TORN_FIBERCAP = "Inocybe lacera/Torn fibercap" - INOCYBE_LILACINA = "Inocybe lilacina" - INOCYBE_SUBLILACINA = "Inocybe sublilacina" - INOCYBE_RIMOSA = "Inocybe rimosa" - INOCYBE_SAMBUCINA = "Inocybe sambucina" - LACTARIUS_TORMINOSUS_WOOLLY_MILKCAP = "Lactarius torminosus/Woolly milkcap" - MYCENA_DIOSMA = "Mycena diosma" - MYCENA_PURA_LILAC_BONNET = "Mycena pura/Lilac bonnet" - MYCENA_ROSEA_ROSY_BONNET = "Mycena rosea/Rosy bonnet" - NEONOTHOPANUS_NAMBI = "Neonothopanus nambi" - PANAEOLUS_CINCTULUS_BANDED_MOTTLEGILL = "Panaeolus cinctulus/banded mottlegill" - PSILOCYBE_SEMILANCEATA_LIBERTY_CAP = "Psilocybe semilanceata/Liberty cap" - OMPHALOTUS_ILLUDENS_JACK_O_LANTERN_MUSHROOM = "Omphalotus illudens/Jack-O'lantern mushroom" - OMPHALOTUS_JAPONICUS_TSUKIYOTAKE = "Omphalotus japonicus/Tsukiyotake" - OMPHALOTUS_NIDIFORMIS_GHOST_FUNGUS = "Omphalotus nidiformis/Ghost fungus" - OMPHALOTUS_OLEARIUS_JACK_O_LANTERN_MUSHROOM = "Omphalotus olearius/Jack-O'lantern mushroom" - OMPHALOTUS_OLIVASCENS_WESTERN_JACK_O__LANTERN_MUSHROOM = "Omphalotus olivascens/Western jack-o'-lantern mushroom" - PARALEPISTOPSIS_ACROMELALGA = "Paralepistopsis acromelalga" - PARALEPISTOPSIS_AMOENOLENS_PARALYSIS_FUNNEL = "Paralepistopsis amoenolens/Paralysis funnel" - PHOLIOTINA_RUGOSA = "Pholiotina rugosa" - RAMARIA_FORMOSA_BEAUTIFUL_CLAVARIA = "Ramaria formosa/Beautiful clavaria" - RAMARIA_NEOFORMOSA = "Ramaria neoformosa" - RAMARIA_PALLIDA = "Ramaria pallida" - RUBROBOLETUS_LEGALIAE_LE_GAL_S_BOLETE = "Rubroboletus legaliae/Le Gal's bolete" - RUBROBOLETUS_LUPINUS_WOLVES_BOLETE = "Rubroboletus lupinus/Wolves bolete" - RUBROBOLETUS_PULCHERRIMUS = "Rubroboletus pulcherrimus" - RUBROBOLETUS_SATANAS_SATAN_S_BOLETE = "Rubroboletus satanas/Satan's bolete" - RUSSULA_EMETICA_THE_SICKENER = "Russula emetica/The sickener" - RUSSULA_SUBNIGRICANS = "Russula subnigricans" - SARCOSPHAERA_CORONARIA_PINK_CROWN = "Sarcosphaera coronaria/Pink crown" - TRICHOLOMA_EQUESTRE_YELLOW_KNIGHT = "Tricholoma equestre/Yellow knight" - TRICHOLOMA_FILAMENTOSUM = "Tricholoma filamentosum" - TRICHOLOMA_PARDINUM_TIGER_TRICHOLOMA = "Tricholoma pardinum/Tiger tricholoma" - TRICHOLOMA_MUSCARIUM = "Tricholoma muscarium" - TROGIA_VENENATA_LITTLE_WHITE_MUSHROOM = "Trogia venenata/Little white mushroom" - TURBINELLUS_FLOCCOSUS_WOOLLY_FALSE_CHANTERELLE = "Turbinellus floccosus/Woolly false chanterelle" - TURBINELLUS_KAUFFMANII = "Turbinellus kauffmanii" - AGROCYBE_ARENICOLA = "Agrocybe arenicola" - AMANITA_ALBOCREATA_RINGLESS_PANTHER = "Amanita albocreata/Ringless panther" - AMANITA_ALTIPES_YELLOW_LONG_STEM_AMANITA = "Amanita altipes/Yellow long-stem Amanita" - AMANITA_BRECKONII = "Amanita breckonii" - AMANITA_CECILIAE_SNAKESKIN_GRISETTE = "Amanita ceciliae/Snakeskin grisette" - AMANITA_ELIAE_FRIES_S_AMANITA = "Amanita eliae/Fries's Amanita" - AMANITA_FLAVOCONIA_YELLOW_DUST_AMANITA = "Amanita flavoconia/Yellow-dust Amanita" - AMANITA_FROSTIANA_FROST_S_AMANITA = "Amanita frostiana/Frost's Amanita" - AMANITA_NEHUTA_MAHORI_DUST_AMANITA = "Amanita nehuta/Mahori dust Amanita" - AMANITA_PARCIVOLVATA = "Amanita parcivolvata" - AMANITA_PARVIPANTHERINA = "Amanita parvipantherina" - AMANITA_PETALINIVOLVA = "Amanita petalinivolva" - AMANITA_ROSEOTINCTA = "Amanita roseotincta" - AMANITA_RUBROVOLVATA_RED_VOLVA_AMANITA = "Amanita rubrovolvata/Red volva Amanita" - AMANITA_SUBFROSTIANA_FALSE_FROST_S_AMANITA = "Amanita subfrostiana/False Frost's Amanita" - AMANITA_VELATIPES = "Amanita velatipes" - AMANITA_VISCIDOLUTEA = "Amanita viscidolutea" - AMANITA_WELLSII_WELLS_S_AMANITA = "Amanita wellsii/Wells's Amanita" - AMANITA_XANTHOCEPHALA_VERMILION_GRISETTE = "Amanita xanthocephala/Vermilion grisette" - ARMILLARIA_MELLEA_HONEY_FUNGUS = "Armillaria mellea/Honey fungus" - CALOCERA_VISCOSA_YELLOW_STAGSHORN = "Calocera viscosa/Yellow stagshorn" - CHLOROPHYLLUM_BRUNNEUM_SHAGGY_PARASOL = "Chlorophyllum brunneum/Shaggy parasol" - CHOIROMYCES_VENOSUS = "Choiromyces venosus" - CLITOCYBE_FRAGRANS = "Clitocybe fragrans" - CLITOCYBE_NEBULARIS_CLOUDED_AGARIC = "Clitocybe nebularis/Clouded agaric" - CONOCYBE_SUBOVALIS = "Conocybe subovalis" - COPRINELLUS_MICACEUS_MICA_CAP = "Coprinellus micaceus/Mica cap" - LACTARIUS_CHRYSORRHEUS_YELLOWDROP_MILKCAP = "Lactarius chrysorrheus/Yellowdrop milkcap" - LACTARIUS_HELVUS_FENUGREEK_MILKCAP = "Lactarius helvus/Fenugreek milkcap" - LEPIOTA_CRISTATA_STINKING_DAPPERLING = "Lepiota cristata/Stinking dapperling" - MARASMIUS_COLLINUS = "Marasmius collinus" - RUSSULA_OLIVACEA = "Russula olivacea" - RUSSULA_VISCIDA = "Russula viscida" - SCHIZOPHYLLUM_COMMUNE = "Schizophyllum commune" - SCLERODERMA_CITRINUM_COMMON_EARTHBALL = "Scleroderma citrinum/common earthball" - STROPHARIA_AERUGINOSA_VERDIGRIS_AGARIC = "Stropharia aeruginosa/Verdigris agaric" - SUILLUS_GRANULATUS_WEEPING_BOLETE = "Suillus granulatus/Weeping bolete" - TRICHOLOMA_SULPHUREUM_GAS_AGARIC = "Tricholoma sulphureum/Gas agaric" - - -class PoisonTaxonomyTaxonomy(BaseModel): - """Model for the poison-taxonomy taxonomy.""" - - namespace: str = "poison-taxonomy" - description: str = """Non-exhaustive taxonomy of natural poison""" - version: int = 1 - exclusive: bool = False - predicates: List[PoisonTaxonomyTaxonomyPredicate] = [] - poisonous_fungus_entries: List[PoisonTaxonomyTaxonomyPoisonousFungusEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/political_spectrum.py b/src/openmisp/models/taxonomies/political_spectrum.py deleted file mode 100644 index d6aa69e..0000000 --- a/src/openmisp/models/taxonomies/political_spectrum.py +++ /dev/null @@ -1,58 +0,0 @@ -"""Taxonomy model for Political Spectrum.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PoliticalSpectrumTaxonomyPredicate(str, Enum): - IDEOLOGY = "ideology" - LEFT_RIGHT_SPECTRUM = "left-right-spectrum" - - -class PoliticalSpectrumTaxonomyIdeologyEntry(str, Enum): - AGRARIANISM = "agrarianism" - ANARCHISM = "anarchism" - CENTRISM = "centrism" - CHRISTIAN_DEMOCRACY = "christian-democracy" - COMMUNISM = "communism" - CONSERVATISM = "conservatism" - DEMOCRATIC_SOCIALISM = "democratic-socialism" - FASCISM = "fascism" - FEMINISM = "feminism" - GREEN_POLITICS = "green-politics" - ISLAMISM = "islamism" - LIBERALISM = "liberalism" - LIBERTARIANISM = "libertarianism" - MONARCHISM = "monarchism" - PACIFISM = "pacifism" - SOCIAL_DEMOCRACY = "social-democracy" - SOCIALISM = "socialism" - - -class PoliticalSpectrumTaxonomyLeftRightSpectrumEntry(str, Enum): - FAR_LEFT = "far-left" - CENTRE_LEFT = "centre-left" - RADICAL_CENTRE = "radical-centre" - CENTRE_RIGHT = "centre-right" - FAR_RIGHT = "far-right" - - -class PoliticalSpectrumTaxonomy(BaseModel): - """Model for the Political Spectrum taxonomy.""" - - namespace: str = "political-spectrum" - description: str = """A political spectrum is a system to characterize and classify different political positions in relation to one another.""" - version: int = 1 - exclusive: bool = False - predicates: List[PoliticalSpectrumTaxonomyPredicate] = [] - ideology_entries: List[PoliticalSpectrumTaxonomyIdeologyEntry] = [] - left_right_spectrum_entries: List[PoliticalSpectrumTaxonomyLeftRightSpectrumEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/priority_level.py b/src/openmisp/models/taxonomies/priority_level.py deleted file mode 100644 index 20a21b8..0000000 --- a/src/openmisp/models/taxonomies/priority_level.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Taxonomy model for priority-level.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PriorityLevelTaxonomyPredicate(str, Enum): - EMERGENCY = "emergency" - SEVERE = "severe" - HIGH = "high" - MEDIUM = "medium" - LOW = "low" - BASELINE_MINOR = "baseline-minor" - BASELINE_NEGLIGIBLE = "baseline-negligible" - - -class PriorityLevelTaxonomy(BaseModel): - """Model for the priority-level taxonomy.""" - - namespace: str = "priority-level" - description: str = """After an incident is scored, it is assigned a priority level. The six levels listed below are aligned with NCCIC, DHS, and the CISS to help provide a common lexicon when discussing incidents. This priority assignment drives NCCIC urgency, pre-approved incident response offerings, reporting requirements, and recommendations for leadership escalation. Generally, incident priority distribution should follow a similar pattern to the graph below. Based on https://www.cisa.gov/news-events/news/cisa-national-cyber-incident-scoring-system-nciss.""" - version: int = 2 - exclusive: bool = True - predicates: List[PriorityLevelTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/pyoti.py b/src/openmisp/models/taxonomies/pyoti.py deleted file mode 100644 index 6925be1..0000000 --- a/src/openmisp/models/taxonomies/pyoti.py +++ /dev/null @@ -1,131 +0,0 @@ -"""Taxonomy model for PyOTI Enrichment.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class PyotiTaxonomyPredicate(str, Enum): - CHECKDMARC = "checkdmarc" - DISPOSABLE_EMAIL = "disposable-email" - EMAILREPIO = "emailrepio" - IRIS_INVESTIGATE = "iris-investigate" - VIRUSTOTAL = "virustotal" - CIRCL_HASHLOOKUP = "circl-hashlookup" - REPUTATION_BLOCK_LIST = "reputation-block-list" - ABUSEIPDB = "abuseipdb" - GREYNOISE_RIOT = "greynoise-riot" - GOOGLESAFEBROWSING = "googlesafebrowsing" - - -class PyotiTaxonomyCheckdmarcEntry(str, Enum): - SPOOFABLE = "spoofable" - - -class PyotiTaxonomyEmailrepioEntry(str, Enum): - SPOOFABLE = "spoofable" - SUSPICIOUS = "suspicious" - BLACKLISTED = "blacklisted" - MALICIOUS_ACTIVITY = "malicious-activity" - MALICIOUS_ACTIVITY_RECENT = "malicious-activity-recent" - CREDENTIALS_LEAKED = "credentials-leaked" - CREDENTIALS_LEAKED_RECENT = "credentials-leaked-recent" - REPUTATION_HIGH = "reputation-high" - REPUTATION_MEDIUM = "reputation-medium" - REPUTATION_LOW = "reputation-low" - SUSPICIOUS_TLD = "suspicious-tld" - SPAM = "spam" - - -class PyotiTaxonomyIrisInvestigateEntry(str, Enum): - HIGH = "high" - MEDIUM_HIGH = "medium-high" - MEDIUM = "medium" - LOW = "low" - - -class PyotiTaxonomyVirustotalEntry(str, Enum): - KNOWN_DISTRIBUTOR = "known-distributor" - VALID_SIGNATURE = "valid-signature" - INVALID_SIGNATURE = "invalid-signature" - - -class PyotiTaxonomyCirclHashlookupEntry(str, Enum): - HIGH_TRUST = "high-trust" - MEDIUM_HIGH_TRUST = "medium-high-trust" - MEDIUM_TRUST = "medium-trust" - LOW_TRUST = "low-trust" - - -class PyotiTaxonomyReputationBlockListEntry(str, Enum): - BARRACUDACENTRAL_BRBL = "barracudacentral-brbl" - SPAMCOP_SCBL = "spamcop-scbl" - SPAMHAUS_SBL = "spamhaus-sbl" - SPAMHAUS_XBL = "spamhaus-xbl" - SPAMHAUS_PBL = "spamhaus-pbl" - SPAMHAUS_CSS = "spamhaus-css" - SPAMHAUS_DROP = "spamhaus-drop" - SPAMHAUS_SPAM = "spamhaus-spam" - SPAMHAUS_PHISH = "spamhaus-phish" - SPAMHAUS_MALWARE = "spamhaus-malware" - SPAMHAUS_BOTNET_C2 = "spamhaus-botnet-c2" - SPAMHAUS_ABUSED_LEGIT_SPAM = "spamhaus-abused-legit-spam" - SPAMHAUS_ABUSED_SPAMMED_REDIRECTOR = "spamhaus-abused-spammed-redirector" - SPAMHAUS_ABUSED_LEGIT_PHISH = "spamhaus-abused-legit-phish" - SPAMHAUS_ABUSED_LEGIT_MALWARE = "spamhaus-abused-legit-malware" - SPAMHAUS_ABUSED_LEGIT_BOTNET_C2 = "spamhaus-abused-legit-botnet-c2" - SURBL_PHISH = "surbl-phish" - SURBL_MALWARE = "surbl-malware" - SURBL_SPAM = "surbl-spam" - SURBL_ABUSED_LEGIT = "surbl-abused-legit" - URIBL_BLACK = "uribl-black" - URIBL_GREY = "uribl-grey" - URIBL_RED = "uribl-red" - URIBL_MULTI = "uribl-multi" - - -class PyotiTaxonomyAbuseipdbEntry(str, Enum): - HIGH = "high" - MEDIUM_HIGH = "medium-high" - MEDIUM = "medium" - LOW = "low" - - -class PyotiTaxonomyGreynoiseRiotEntry(str, Enum): - TRUST_LEVEL_1 = "trust-level-1" - TRUST_LEVEL_2 = "trust-level-2" - - -class PyotiTaxonomyGooglesafebrowsingEntry(str, Enum): - MALWARE = "malware" - SOCIAL_ENGINEERING = "social-engineering" - UNWANTED_SOFTWARE = "unwanted-software" - POTENTIALLY_HARMFUL_APPLICATION = "potentially-harmful-application" - UNSPECIFIED = "unspecified" - - -class PyotiTaxonomy(BaseModel): - """Model for the PyOTI Enrichment taxonomy.""" - - namespace: str = "pyoti" - description: str = """PyOTI automated enrichment schemes for point in time classification of indicators.""" - version: int = 3 - exclusive: bool = False - predicates: List[PyotiTaxonomyPredicate] = [] - checkdmarc_entries: List[PyotiTaxonomyCheckdmarcEntry] = [] - emailrepio_entries: List[PyotiTaxonomyEmailrepioEntry] = [] - iris_investigate_entries: List[PyotiTaxonomyIrisInvestigateEntry] = [] - virustotal_entries: List[PyotiTaxonomyVirustotalEntry] = [] - circl_hashlookup_entries: List[PyotiTaxonomyCirclHashlookupEntry] = [] - reputation_block_list_entries: List[PyotiTaxonomyReputationBlockListEntry] = [] - abuseipdb_entries: List[PyotiTaxonomyAbuseipdbEntry] = [] - greynoise_riot_entries: List[PyotiTaxonomyGreynoiseRiotEntry] = [] - googlesafebrowsing_entries: List[PyotiTaxonomyGooglesafebrowsingEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ransomware.py b/src/openmisp/models/taxonomies/ransomware.py deleted file mode 100644 index 87e0ee1..0000000 --- a/src/openmisp/models/taxonomies/ransomware.py +++ /dev/null @@ -1,127 +0,0 @@ -"""Taxonomy model for ransomware types and elements.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class RansomwareTaxonomyPredicate(str, Enum): - TYPE = "type" - ELEMENT = "element" - COMPLEXITY_LEVEL = "complexity-level" - PURPOSE = "purpose" - TARGET = "target" - INFECTION = "infection" - COMMUNICATION = "communication" - MALICIOUS_ACTION = "malicious-action" - - -class RansomwareTaxonomyTypeEntry(str, Enum): - SCAREWARE = "scareware" - LOCKER_RANSOMWARE = "locker-ransomware" - CRYPTO_RANSOMWARE = "crypto-ransomware" - - -class RansomwareTaxonomyElementEntry(str, Enum): - RANSOMNOTE = "ransomnote" - RANSOMWARE_APPENDED_EXTENSION = "ransomware-appended-extension" - RANSOMWARE_ENCRYPTED_EXTENSIONS = "ransomware-encrypted-extensions" - RANSOMWARE_EXCLUDED_EXTENSIONS = "ransomware-excluded-extensions" - DROPPER = "dropper" - DOWNLOADER = "downloader" - - -class RansomwareTaxonomyComplexityLevelEntry(str, Enum): - NO_ACTUAL_ENCRYPTION_SCAREWARE = "no-actual-encryption-scareware" - DISPLAY_RANSOMNOTE_BEFORE_ENCRYPTING = "display-ransomnote-before-encrypting" - DECRYPTION_ESSENTIALS_EXTRACTED_FROM_BINARY = "decryption-essentials-extracted-from-binary" - DERIVED_ENCRYPTION_KEY_PREDICTED__ = "derived-encryption-key-predicted " - SAME_KEY_USED_FOR_EACH_INFECTION = "same-key used-for-each-infection" - ENCRYPTION_CIRCUMVENTED = "encryption-circumvented" - FILE_RESTORATION_POSSIBLE_USING_SHADOW_VOLUME_COPIES = "file-restoration-possible-using-shadow-volume-copies" - FILE_RESTORATION_POSSIBLE_USING_BACKUPS = "file-restoration-possible-using-backups" - KEY_RECOVERED_FROM_FILE_SYSTEM_OR_MEMORY = "key-recovered-from-file-system-or-memory" - DUE_DILIGENCE_PREVENTED_RANSOMWARE_FROM_ACQUIRING_KEY = "due-diligence-prevented-ransomware-from-acquiring-key" - CLICK_AND_RUN_DECRYPTOR_EXISTS = "click-and-run-decryptor-exists" - KILL_SWITCH_EXISTS_OUTSIDE_OF_ATTACKER_S_CONTROL = "kill-switch-exists-outside-of-attacker-s-control" - DECRYPTION_KEY_RECOVERED_FROM_A_C_C_SERVER_OR_NETWORK_COMMUNICATIONS = ( - "decryption-key-recovered-from-a-C&C-server-or-network-communications" - ) - CUSTOM_ENCRYPTION_ALGORITHM_USED = "custom-encryption-algorithm-used" - DECRYPTION_KEY_RECOVERED_UNDER_SPECIALIZED_LAB_SETTING = "decryption-key-recovered-under-specialized-lab-setting" - SMALL_SUBSET_OF_FILES_LEFT_UNENCRYPTED = "small-subset-of-files-left-unencrypted" - ENCRYPTION_MODEL_IS_SEEMINGLY_FLAWLESS = "encryption-model-is-seemingly-flawless" - - -class RansomwareTaxonomyPurposeEntry(str, Enum): - DEPLOYED_AS_RANSOMWARE_EXTORTION = "deployed-as-ransomware-extortion" - DEPLOYED_TO_SHOWCASE_SKILLS_FOR_FUN_OR_FOR_TESTING_PURPOSES = ( - "deployed-to-showcase-skills-for-fun-or-for-testing-purposes" - ) - DEPLOYED_AS_SMOKESCREEN = "deployed-as-smokescreen" - DEPLOYED_TO_CAUSE_FRUSTRATION = "deployed-to-cause-frustration" - DEPLOYED_OUT_OF_FRUSTRATION = "deployed-out-of-frustration" - DEPLOYED_AS_A_COVER_UP = "deployed-as-a-cover-up" - DEPLOYED_AS_A_PENETRATION_TEST_OR_USER_AWARENESS_TRAINING = ( - "deployed-as-a-penetration-test-or-user-awareness-training" - ) - DEPLOYED_AS_A_MEANS_OF_DISRUPTION_DESTRUCTION = "deployed-as-a-means-of-disruption-destruction" - - -class RansomwareTaxonomyTargetEntry(str, Enum): - PC_WORKSTATION = "pc-workstation" - NAS = "nas" - VM = "vm" - MOBILE_DEVICE = "mobile-device" - IOT_CPS_DEVICE = "iot-cps-device" - END_USER = "end-user" - ORGANISATION = "organisation" - - -class RansomwareTaxonomyInfectionEntry(str, Enum): - PHISHING_E_MAILS = "phishing-e=mails" - SMS_INSTANT_MESSAGE = "sms-instant-message" - MALICIOUS_APPS = "malicious-apps" - DRIVE_BY_DOWNLOAD = "drive-by-download" - VULNERABILITIES = "vulnerabilities" - - -class RansomwareTaxonomyCommunicationEntry(str, Enum): - HARD_CODED_IP = "hard-coded-ip" - DGA_BASED = "dga-based" - - -class RansomwareTaxonomyMaliciousActionEntry(str, Enum): - SYMMETRIC_KEY_ENCRYPTION = "symmetric-key-encryption" - ASYMMETRIC_KEY_ENCRYPTION = "asymmetric-key-encryption" - HYBRID_KEY_ENCRYPTION = "hybrid-key-encryption" - SCREEN_LOCKING = "screen-locking" - BROWSER_LOCKING = "browser-locking" - MBR_LOCKING = "mbr-locking" - DATA_EXFILTRATION = "data-exfiltration" - - -class RansomwareTaxonomy(BaseModel): - """Model for the ransomware types and elements taxonomy.""" - - namespace: str = "ransomware" - description: str = """Ransomware is used to define ransomware types and the elements that compose them.""" - version: int = 6 - exclusive: bool = False - predicates: List[RansomwareTaxonomyPredicate] = [] - type_entries: List[RansomwareTaxonomyTypeEntry] = [] - element_entries: List[RansomwareTaxonomyElementEntry] = [] - complexity_level_entries: List[RansomwareTaxonomyComplexityLevelEntry] = [] - purpose_entries: List[RansomwareTaxonomyPurposeEntry] = [] - target_entries: List[RansomwareTaxonomyTargetEntry] = [] - infection_entries: List[RansomwareTaxonomyInfectionEntry] = [] - communication_entries: List[RansomwareTaxonomyCommunicationEntry] = [] - malicious_action_entries: List[RansomwareTaxonomyMaliciousActionEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/ransomware_roles.py b/src/openmisp/models/taxonomies/ransomware_roles.py deleted file mode 100644 index a3c26f8..0000000 --- a/src/openmisp/models/taxonomies/ransomware_roles.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Taxonomy model for Ransomware Actor Roles.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class RansomwareRolesTaxonomyPredicate(str, Enum): - T_1___INITIAL_ACCESS_BROKER = "1 - Initial Access Broker" - T_2___RANSOMWARE_AFFILIATE = "2 - Ransomware Affiliate" - T_3___DATA_MANAGER = "3 - Data Manager" - T_4___RANSOMWARE_OPERATOR = "4 - Ransomware Operator" - T_5___NEGOTIATOR = "5 - Negotiator" - T_6___CHASER = "6 - Chaser" - T_7___ACCOUNTANT = "7 - Accountant" - - -class RansomwareRolesTaxonomy(BaseModel): - """Model for the Ransomware Actor Roles taxonomy.""" - - namespace: str = "ransomware-roles" - description: str = """The seven roles seen in most ransomware incidents.""" - version: int = 1 - exclusive: bool = False - predicates: List[RansomwareRolesTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/retention.py b/src/openmisp/models/taxonomies/retention.py deleted file mode 100644 index a082bb9..0000000 --- a/src/openmisp/models/taxonomies/retention.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Taxonomy model for retention.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class RetentionTaxonomyPredicate(str, Enum): - EXPIRED = "expired" - T_1D = "1d" - T_2D = "2d" - T_7D = "7d" - T_2W = "2w" - T_1M = "1m" - T_2M = "2m" - T_3M = "3m" - T_6M = "6m" - T_1Y = "1y" - T_10Y = "10y" - - -class RetentionTaxonomy(BaseModel): - """Model for the retention taxonomy.""" - - namespace: str = "retention" - description: str = """Add a retention time to events to automatically remove the IDS-flag on ip-dst or ip-src attributes. We calculate the time elapsed based on the date of the event. Supported time units are: d(ays), w(eeks), m(onths), y(ears). The numerical_value is just for sorting in the web-interface and is not used for calculations.""" - version: int = 4 - exclusive: bool = True - predicates: List[RetentionTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/rsit.py b/src/openmisp/models/taxonomies/rsit.py deleted file mode 100644 index 6f86957..0000000 --- a/src/openmisp/models/taxonomies/rsit.py +++ /dev/null @@ -1,120 +0,0 @@ -"""Taxonomy model for rsit.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class RsitTaxonomyPredicate(str, Enum): - ABUSIVE_CONTENT = "abusive-content" - MALICIOUS_CODE = "malicious-code" - INFORMATION_GATHERING = "information-gathering" - INTRUSION_ATTEMPTS = "intrusion-attempts" - INTRUSIONS = "intrusions" - AVAILABILITY = "availability" - INFORMATION_CONTENT_SECURITY = "information-content-security" - FRAUD = "fraud" - VULNERABLE = "vulnerable" - OTHER = "other" - TEST = "test" - - -class RsitTaxonomyAbusiveContentEntry(str, Enum): - SPAM = "spam" - HARMFUL_SPEECH = "harmful-speech" - VIOLENCE = "violence" - - -class RsitTaxonomyMaliciousCodeEntry(str, Enum): - INFECTED_SYSTEM = "infected-system" - C2_SERVER = "c2-server" - MALWARE_DISTRIBUTION = "malware-distribution" - MALWARE_CONFIGURATION = "malware-configuration" - - -class RsitTaxonomyInformationGatheringEntry(str, Enum): - SCANNER = "scanner" - SNIFFING = "sniffing" - SOCIAL_ENGINEERING = "social-engineering" - - -class RsitTaxonomyIntrusionAttemptsEntry(str, Enum): - IDS_ALERT = "ids-alert" - BRUTE_FORCE = "brute-force" - EXPLOIT = "exploit" - - -class RsitTaxonomyIntrusionsEntry(str, Enum): - PRIVILEGED_ACCOUNT_COMPROMISE = "privileged-account-compromise" - UNPRIVILEGED_ACCOUNT_COMPROMISE = "unprivileged-account-compromise" - APPLICATION_COMPROMISE = "application-compromise" - SYSTEM_COMPROMISE = "system-compromise" - BURGLARY = "burglary" - - -class RsitTaxonomyAvailabilityEntry(str, Enum): - DOS = "dos" - DDOS = "ddos" - MISCONFIGURATION = "misconfiguration" - SABOTAGE = "sabotage" - OUTAGE = "outage" - - -class RsitTaxonomyInformationContentSecurityEntry(str, Enum): - UNAUTHORISED_INFORMATION_ACCESS = "unauthorised-information-access" - UNAUTHORISED_INFORMATION_MODIFICATION = "unauthorised-information-modification" - DATA_LOSS = "data-loss" - DATA_LEAK = "data-leak" - - -class RsitTaxonomyFraudEntry(str, Enum): - UNAUTHORISED_USE_OF_RESOURCES = "unauthorised-use-of-resources" - COPYRIGHT = "copyright" - MASQUERADE = "masquerade" - PHISHING = "phishing" - - -class RsitTaxonomyVulnerableEntry(str, Enum): - WEAK_CRYPTO = "weak-crypto" - DDOS_AMPLIFIER = "ddos-amplifier" - POTENTIALLY_UNWANTED_ACCESSIBLE = "potentially-unwanted-accessible" - INFORMATION_DISCLOSURE = "information-disclosure" - VULNERABLE_SYSTEM = "vulnerable-system" - - -class RsitTaxonomyOtherEntry(str, Enum): - OTHER = "other" - UNDETERMINED = "undetermined" - - -class RsitTaxonomyTestEntry(str, Enum): - TEST = "test" - - -class RsitTaxonomy(BaseModel): - """Model for the rsit taxonomy.""" - - namespace: str = "rsit" - description: str = """Reference Security Incident Classification Taxonomy""" - version: int = 1003 - exclusive: bool = False - predicates: List[RsitTaxonomyPredicate] = [] - abusive_content_entries: List[RsitTaxonomyAbusiveContentEntry] = [] - malicious_code_entries: List[RsitTaxonomyMaliciousCodeEntry] = [] - information_gathering_entries: List[RsitTaxonomyInformationGatheringEntry] = [] - intrusion_attempts_entries: List[RsitTaxonomyIntrusionAttemptsEntry] = [] - intrusions_entries: List[RsitTaxonomyIntrusionsEntry] = [] - availability_entries: List[RsitTaxonomyAvailabilityEntry] = [] - information_content_security_entries: List[RsitTaxonomyInformationContentSecurityEntry] = [] - fraud_entries: List[RsitTaxonomyFraudEntry] = [] - vulnerable_entries: List[RsitTaxonomyVulnerableEntry] = [] - other_entries: List[RsitTaxonomyOtherEntry] = [] - test_entries: List[RsitTaxonomyTestEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/rt_event_status.py b/src/openmisp/models/taxonomies/rt_event_status.py deleted file mode 100644 index 32f1d33..0000000 --- a/src/openmisp/models/taxonomies/rt_event_status.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Taxonomy model for rt_event_status.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class RtEventStatusTaxonomyPredicate(str, Enum): - EVENT_STATUS = "event-status" - - -class RtEventStatusTaxonomyEventStatusEntry(str, Enum): - NEW = "new" - OPEN = "open" - STALLED = "stalled" - REJECTED = "rejected" - RESOLVED = "resolved" - DELETED = "deleted" - - -class RtEventStatusTaxonomy(BaseModel): - """Model for the rt_event_status taxonomy.""" - - namespace: str = "rt_event_status" - description: str = """Status of events used in Request Tracker.""" - version: int = 2 - exclusive: bool = True - predicates: List[RtEventStatusTaxonomyPredicate] = [] - event_status_entries: List[RtEventStatusTaxonomyEventStatusEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/runtime_packer.py b/src/openmisp/models/taxonomies/runtime_packer.py deleted file mode 100644 index 2d633f4..0000000 --- a/src/openmisp/models/taxonomies/runtime_packer.py +++ /dev/null @@ -1,155 +0,0 @@ -"""Taxonomy model for runtime-packer.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class RuntimePackerTaxonomyPredicate(str, Enum): - DEX = "dex" - ELF = "elf" - MACHO = "macho" - PE = "pe" - CLI_ASSEMBLY = "cli-assembly" - - -class RuntimePackerTaxonomyDexEntry(str, Enum): - APK_PROTECT = "apk-protect" - APPCODE_PACKER = "appcode-packer" - APPSEALING = "appsealing" - ARXAN = "arxan" - BANGCLE = "bangcle" - DEXGUARD = "dexguard" - DEXPROTECTOR = "dexprotector" - JIAGU = "jiagu" - LEGU = "legu" - PROGUARD = "proguard" - - -class RuntimePackerTaxonomyElfEntry(str, Enum): - BURNEYE = "burneye" - BZEXE = "bzexe" - ELFUCK = "elfuck" - EZURI = "ezuri" - GZEXE = "gzexe" - M0DERN_P4CKER = "m0dern_p4cker" - MIDGETPACK = "midgetpack" - PAKKERO = "pakkero" - PAPAW = "papaw" - SHIVA = "shiva" - SILENT_PACKER = "silent_packer" - UPX = "upx" - WARD = "ward" - - -class RuntimePackerTaxonomyMachoEntry(str, Enum): - ELECKEY = "eleckey" - LATURI = "laturi" - MPRESS = "mpress" - MUNCHO = "muncho" - PAKR = "pakr" - UPX = "upx" - - -class RuntimePackerTaxonomyPeEntry(str, Enum): - T__NETSHRINK = ".netshrink" - ACPROTECT = "acprotect" - AEGIS = "aegis" - AINEXE = "ainexe" - ALIENYZE = "alienyze" - AMBER = "amber" - ANDROMEDA = "andromeda" - APACK = "apack" - ARMADILLO = "armadillo" - ASPACK = "aspack" - ASPROTECT = "asprotect" - ATOMPEPACKER = "atompepacker" - AUTOIT = "autoit" - AXPROTECTOR = "axprotector" - BERO = "bero" - BOXEDAPP_PACKER = "boxedapp-packer" - CEXE = "cexe" - CODE_VIRTUALIZER = "code-virtualizer" - CONFUSEREX = "confuserex" - CRINKLER = "crinkler" - CRUNCH = "crunch" - DOTBUNDLE = "dotbundle" - DRAGON_ARMOR = "dragon-armor" - ELECKEY = "eleckey" - ENIGMA_PROTECTOR = "enigma-protector" - ENIGMA_VIRTUAL_BOX = "enigma-virtual-box" - ERONANA_PACKER = "eronana-packer" - EXE_BUNDLE = "exe-bundle" - EXE_STEALTH = "exe-stealth" - EXE32PACK = "exe32pack" - EXPRESSOR = "expressor" - FSG = "fsg" - GOPACKER = "gopacker" - HUAN = "huan" - HXOR_PACKER = "hxor-packer" - JDPACK = "jdpack" - KKRUNCHY = "kkrunchy" - LIAPP = "liapp" - MASKPE = "maskpe" - MEW = "mew" - MOLEBOX = "molebox" - MORPHINE = "morphine" - MPRESS = "mpress" - NEOLITE = "neolite" - NETCRYPT = "netcrypt" - NSPACK = "nspack" - OBSIDIUM = "obsidium" - ORIGAMI = "origami" - PACKMAN = "packman" - PECOMPACT = "pecompact" - PELOCK = "pelock" - PEPACKER = "pepacker" - PERPLEX = "perplex" - PESHIELD = "peshield" - PESPIN = "pespin" - PETITE = "petite" - PETOY = "petoy" - PEZOR = "pezor" - PROCRYPT = "procrypt" - RLPACK_BASIC = "rlpack-basic" - RPCRYPT = "rpcrypt" - SEPACKER = "sepacker" - SIMPLEDPACK = "simpledpack" - SMART_PACKER_PRO = "smart-packer-pro" - SQUISHY = "squishy" - TELOCK = "telock" - THEARK = "theark" - THEMIDA = "themida" - THINSTALL = "thinstall" - UPACK = "upack" - UPX = "upx" - VMPROTECT = "vmprotect" - VPROTECT = "vprotect" - WINUPACK = "winupack" - WWPACK = "wwpack" - XCOMP_XPACK = "xcomp-xpack" - YODA_CRYPTER = "yoda-crypter" - YODA_PROTECTOR = "yoda-protector" - ZPROTECT = "zprotect" - - -class RuntimePackerTaxonomy(BaseModel): - """Model for the runtime-packer taxonomy.""" - - namespace: str = "runtime-packer" - description: str = """Runtime or software packer used to combine compressed or encrypted data with the decompression or decryption code. This code can add additional obfuscations mechanisms including polymorphic-packer, virtualization or other obfuscation techniques. This taxonomy lists all the known or official packer used for legitimate use or for packing malicious binaries.""" - version: int = 3 - exclusive: bool = False - predicates: List[RuntimePackerTaxonomyPredicate] = [] - dex_entries: List[RuntimePackerTaxonomyDexEntry] = [] - elf_entries: List[RuntimePackerTaxonomyElfEntry] = [] - macho_entries: List[RuntimePackerTaxonomyMachoEntry] = [] - pe_entries: List[RuntimePackerTaxonomyPeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/scrippsco2_fgc.py b/src/openmisp/models/taxonomies/scrippsco2_fgc.py deleted file mode 100644 index 4c7531d..0000000 --- a/src/openmisp/models/taxonomies/scrippsco2_fgc.py +++ /dev/null @@ -1,38 +0,0 @@ -"""Taxonomy model for scrippsco2-fgc.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class Scrippsco2FgcTaxonomyPredicate(str, Enum): - T__3 = "-3" - T__2 = "-2" - T__1 = "-1" - T_0 = "0" - T_1 = "1" - T_2 = "2" - T_3 = "3" - T_4 = "4" - T_5 = "5" - T_6 = "6" - T_7 = "7" - T_8 = "8" - - -class Scrippsco2FgcTaxonomy(BaseModel): - """Model for the scrippsco2-fgc taxonomy.""" - - namespace: str = "scrippsco2-fgc" - description: str = """Flags describing the sample""" - version: int = 1 - exclusive: bool = False - predicates: List[Scrippsco2FgcTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/scrippsco2_fgi.py b/src/openmisp/models/taxonomies/scrippsco2_fgi.py deleted file mode 100644 index 97b6f7a..0000000 --- a/src/openmisp/models/taxonomies/scrippsco2_fgi.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Taxonomy model for scrippsco2-fgi.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class Scrippsco2FgiTaxonomyPredicate(str, Enum): - T__3 = "-3" - T_0 = "0" - T_3 = "3" - T_5 = "5" - T_6 = "6" - T_8 = "8" - T_9 = "9" - - -class Scrippsco2FgiTaxonomy(BaseModel): - """Model for the scrippsco2-fgi taxonomy.""" - - namespace: str = "scrippsco2-fgi" - description: str = """Flags describing the sample for isotopic data (C14, O18)""" - version: int = 1 - exclusive: bool = False - predicates: List[Scrippsco2FgiTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/scrippsco2_sampling_stations.py b/src/openmisp/models/taxonomies/scrippsco2_sampling_stations.py deleted file mode 100644 index a223c0f..0000000 --- a/src/openmisp/models/taxonomies/scrippsco2_sampling_stations.py +++ /dev/null @@ -1,39 +0,0 @@ -"""Taxonomy model for scrippsco2-sampling-stations.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class Scrippsco2SamplingStationsTaxonomyPredicate(str, Enum): - ALT = "ALT" - PTB = "PTB" - STP = "STP" - LJO = "LJO" - BCS = "BCS" - MLO = "MLO" - KUM = "KUM" - CHR = "CHR" - SAM = "SAM" - KER = "KER" - NZD = "NZD" - PSA = "PSA" - SPO = "SPO" - - -class Scrippsco2SamplingStationsTaxonomy(BaseModel): - """Model for the scrippsco2-sampling-stations taxonomy.""" - - namespace: str = "scrippsco2-sampling-stations" - description: str = """Sampling stations of the Scripps CO2 Program""" - version: int = 1 - exclusive: bool = False - predicates: List[Scrippsco2SamplingStationsTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/sentinel_threattype.py b/src/openmisp/models/taxonomies/sentinel_threattype.py deleted file mode 100644 index 3ebc237..0000000 --- a/src/openmisp/models/taxonomies/sentinel_threattype.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Taxonomy model for sentinel-threattype.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class SentinelThreattypeTaxonomyPredicate(str, Enum): - BOTNET = "Botnet" - C2 = "C2" - CRYPTO_MINING = "CryptoMining" - DARKNET = "Darknet" - DDO_S = "DDoS" - MALICIOUS_URL = "MaliciousUrl" - MALWARE = "Malware" - PHISHING = "Phishing" - PROXY = "Proxy" - PUA = "PUA" - WATCH_LIST = "WatchList" - - -class SentinelThreattypeTaxonomy(BaseModel): - """Model for the sentinel-threattype taxonomy.""" - - namespace: str = "sentinel-threattype" - description: str = """Sentinel indicator threat types.""" - version: int = 1 - exclusive: bool = True - predicates: List[SentinelThreattypeTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/smart_airports_threats.py b/src/openmisp/models/taxonomies/smart_airports_threats.py deleted file mode 100644 index eb74fe6..0000000 --- a/src/openmisp/models/taxonomies/smart_airports_threats.py +++ /dev/null @@ -1,151 +0,0 @@ -"""Taxonomy model for smart-airports-threats.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class SmartAirportsThreatsTaxonomyPredicate(str, Enum): - HUMAN_ERRORS = "human-errors" - SYSTEM_FAILURES = "system-failures" - NATURAL_AND_SOCIAL_PHENOMENA = "natural-and-social-phenomena" - THIRD_PARTY_FAILURES = "third-party-failures" - MALICIOUS_ACTIONS = "malicious-actions" - - -class SmartAirportsThreatsTaxonomyHumanErrorsEntry(str, Enum): - CONFIGURATION_ERRORS = "configuration-errors" - OPERATOR_OR_USER_ERROR = "operator-or-user-error" - LOSS_OF_HARDWARE = "loss-of-hardware" - NON_COMPLIANCE_WITH_POLICIES_OR_PROCEDURE = "non-compliance-with-policies-or-procedure" - - -class SmartAirportsThreatsTaxonomySystemFailuresEntry(str, Enum): - FAILURES_OF_DEVICES_OR_SYSTEMS = "failures-of-devices-or-systems" - FAILURES_OR_DISRUPTIONS_OF_COMMUNICATION_LINKS = "failures-or-disruptions-of-communication-links" - FAILURES_OF_PARTS_OF_DEVICES = "failures-of-parts-of-devices" - FAILURES_OR_DISRUPTIONS_OF_MAIN_SUPPLY = "failures-or-disruptions-of-main-supply" - FAILURES_OR_DISRUPTIONS_OF_THE_POWER_SUPPLY = "failures-or-disruptions-of-the-power-supply" - MALFUNCTIONS_OF_PARTS_OF_DEVICES = "malfunctions-of-parts-of-devices" - MALFUNCTIONS_OF_DEVICES_OR_SYSTEMS = "malfunctions-of-devices-or-systems" - FAILURES_OF_HARDWARE = "failures-of-hardware" - SOFTWARE_BUGS = "software-bugs" - - -class SmartAirportsThreatsTaxonomyNaturalAndSocialPhenomenaEntry(str, Enum): - EARTHQUAKES = "earthquakes" - FIRES = "fires" - EXTREME_WEATHER = "extreme-weather" - SOLAR_FLARE = "solar-flare" - VOLCANO_EXPLOSION = "volcano-explosion" - NUCLEAR_INCIDENT = "nuclear-incident" - DANGEROUS_CHEMICAL_INCIDENTS = "dangerous-chemical-incidents" - PANDEMIC = "pandemic" - SOCIAL_DISRUPTIONS = "social-disruptions" - SHORTAGE_OF_FUEL = "shortage-of-fuel" - SPACE_DEBRIS_AND_METEORITES = "space-debris-and-meteorites" - - -class SmartAirportsThreatsTaxonomyThirdPartyFailuresEntry(str, Enum): - INTERNET_SERVICE_PROVIDER = "internet-service-provider" - CLOUD_SERVICE_PROVIDER = "cloud-service-provider" - UTILITIES_POWER_OR_GAS_OR_WATER = "utilities-power-or-gas-or-water" - REMOTE_MAINTENANCE_PROVIDER = "remote-maintenance-provider" - SECURITY_TESTING_COMPANIES = "security-testing-companies" - - -class SmartAirportsThreatsTaxonomyMaliciousActionsEntry(str, Enum): - DENIAL_OF_SERVICE_ATTACKS_VIA_AMPLIFICATION_REFLECTION = "denial-of-service-attacks-via-amplification-reflection" - DENIAL_OF_SERVICE_ATTACKS_VIA_FLOODING = "denial-of-service-attacks-via-flooding" - DENIAL_OF_SERVICE_ATTACKS_VIA_JAMMING = "denial-of-service-attacks-via-jamming" - MALICIOUS_SOFTWARE_ON_IT_ASSETS_MALWARE = "malicious-software-on-it-assets-malware" - MALICIOUS_SOFTWARE_ON_IT_ASSETS_REMOTE_ARBITRARY_CODE_EXECUTION = ( - "malicious-software-on-it-assets-remote-arbitrary-code-execution" - ) - EXPLOITATION_OF_SOFTWARE_VULNERABILITIES_IMPLEMENTATION_FLAWS = ( - "exploitation-of-software-vulnerabilities-implementation-flaws" - ) - EXPLOITATION_OF_SOFTWARE_VULNERABILITIES_DESIGN_FLAWS = "exploitation-of-software-vulnerabilities-design-flaws" - EXPLOITATION_OF_SOFTWARE_VULNERABILITIES_APT = "exploitation-of-software-vulnerabilities-apt" - MISUSE_OF_AUTHORITY_OR_AUTHORISATION_UNAUTHORIZED_USE_OF_SOFTWARE = ( - "misuse-of-authority-or-authorisation-unauthorized-use-of-software" - ) - MISUSE_OF_AUTHORITY_OR_AUTHORISATION_UNAUTHORIZED_INSTALLATION_OF_SOFTWARE = ( - "misuse-of-authority-or-authorisation-unauthorized-installation-of-software" - ) - MISUSE_OF_AUTHORITY_OR_AUTHORISATION_REPUDIATION_OF_ACTIONS = ( - "misuse-of-authority-or-authorisation-repudiation-of-actions" - ) - MISUSE_OF_AUTHORITY_OR_AUTHORISATION_ABUSE_OF_PERSONAL_DATA = ( - "misuse-of-authority-or-authorisation-abuse-of-personal-data" - ) - MISUSE_OF_AUTHORITY_OR_AUTHORISATION_USING_INFORMATION_FROM_AN_UNRELIABLE_SOURCE = ( - "misuse-of-authority-or-authorisation-using-information-from-an-unreliable-source" - ) - MISUSE_OF_AUTHORITY_OR_AUTHORISATION_UNINTENTIONAL_CHANGE_OF_DATA_IN_AN_INFORMATION_SYSTEM = ( - "misuse-of-authority-or-authorisation-unintentional-change-of-data-in-an-information-system" - ) - MISUSE_OF_AUTHORITY_OR_AUTHORISATION_INADEQUATE_DESIGN_AND_PLANNING_OR_LACK_OF_ADOPTION = ( - "misuse-of-authority-or-authorisation-inadequate-design-and-planning-or-lack-of-adoption" - ) - MISUSE_OF_AUTHORITY_OR_AUTHORISATION_DATA_LEAKAGE_OR_SHARING = ( - "misuse-of-authority-or-authorisation-data-leakage-or-sharing" - ) - NETWORK_OR_INTERCEPTION_ATTACKS_MANIPULATION_OF_ROUTING_INFORMATION = ( - "network-or-interception-attacks-manipulation-of-routing-information" - ) - NETWORK_OR_INTERCEPTION_ATTACKS_SPOOFING = "network-or-interception-attacks-spoofing" - NETWORK_OR_INTERCEPTION_ATTACKS_UNAUTHORIZED_ACCESS = "network-or-interception-attacks-unauthorized-access" - NETWORK_OR_INTERCEPTION_ATTACKS_AUTHENTICATION_ATTACKS = "network-or-interception-attacks-authentication-attacks" - NETWORK_OR_INTERCEPTION_ATTACKS_REPLAY_ATTACKS = "network-or-interception-attacks-replay-attacks" - NETWORK_OR_INTERCEPTION_ATTACKS_REPUDIATION_OF_ACTIONS = "network-or-interception-attacks-repudiation-of-actions" - NETWORK_OR_INTERCEPTION_ATTACKS_WIRETAPS = "network-or-interception-attacks-wiretaps" - NETWORK_OR_INTERCEPTION_ATTACKS_WIRELESS_COMMS = "network-or-interception-attacks-wireless-comms" - NETWORK_OR_INTERCEPTION_ATTACKS_NETWORK_RECONNAISSANCE_INFORMATION_GATHERING = ( - "network-or-interception-attacks-network-reconnaissance-information-gathering" - ) - SOCIAL_ATTACKS_PHISHING_SPEARPHISHING = "social-attacks-phishing-spearphishing" - SOCIAL_ATTACKS_PRETEXTING = "social-attacks-pretexting" - SOCIAL_ATTACKS_UNTRUSTED_LINKS = "social-attacks-untrusted-links" - SOCIAL_ATTACKS_BAITING = "social-attacks-baiting" - SOCIAL_ATTACKS_REVERSE_SOCIAL_ENGINEERING = "social-attacks-reverse-social-engineering" - SOCIAL_ATTACKS_IMPERSONATION = "social-attacks-impersonation" - TAMPERING_WITH_DEVICES_UNAUTHORISED_MODIFICATION_OF_DATA = ( - "tampering-with-devices-unauthorised-modification-of-data" - ) - TAMPERING_WITH_DEVICES_UNAUTHORISED_MODIFICATION_OF_HARDWARE_OR_SOFTWARE = ( - "tampering-with-devices-unauthorised-modification-of-hardware-or-software" - ) - BREACH_OF_PHYSICAL_ACCESS_CONTROLS_BYPASS_AUTHENTICATION = ( - "breach-of-physical-access-controls-bypass-authentication" - ) - BREACH_OF_PHYSICAL_ACCESS_CONTROLS_PRIVILEGE_ESCALATION = "breach-of-physical-access-controls-privilege-escalation" - PHYSICAL_ATTACKS_ON_AIRPORT_ASSETS_VANDALISM = "physical-attacks-on-airport-assets-vandalism" - PHYSICAL_ATTACKS_ON_AIRPORT_ASSETS_SABOTAGE = "physical-attacks-on-airport-assets-sabotage" - PHYSICAL_ATTACKS_ON_AIRPORT_ASSETS_EXPLOSIVE_OR_BOMB_THREATS = ( - "physical-attacks-on-airport-assets-explosive-or-bomb-threats" - ) - PHYSICAL_ATTACKS_ON_AIRPORT_ASSETS_MALICIOUS_TAMPERING = "physical-attacks-on-airport-assets-malicious-tampering" - - -class SmartAirportsThreatsTaxonomy(BaseModel): - """Model for the smart-airports-threats taxonomy.""" - - namespace: str = "smart-airports-threats" - description: str = """Threat taxonomy in the scope of securing smart airports by ENISA. https://www.enisa.europa.eu/publications/securing-smart-airports""" - version: int = 1 - exclusive: bool = False - predicates: List[SmartAirportsThreatsTaxonomyPredicate] = [] - human_errors_entries: List[SmartAirportsThreatsTaxonomyHumanErrorsEntry] = [] - system_failures_entries: List[SmartAirportsThreatsTaxonomySystemFailuresEntry] = [] - natural_and_social_phenomena_entries: List[SmartAirportsThreatsTaxonomyNaturalAndSocialPhenomenaEntry] = [] - third_party_failures_entries: List[SmartAirportsThreatsTaxonomyThirdPartyFailuresEntry] = [] - malicious_actions_entries: List[SmartAirportsThreatsTaxonomyMaliciousActionsEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/social_engineering_attack_vectors.py b/src/openmisp/models/taxonomies/social_engineering_attack_vectors.py deleted file mode 100644 index f841ee0..0000000 --- a/src/openmisp/models/taxonomies/social_engineering_attack_vectors.py +++ /dev/null @@ -1,54 +0,0 @@ -"""Taxonomy model for Social Engineering Attack Vectors.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class SocialEngineeringAttackVectorsTaxonomyPredicate(str, Enum): - TECHNICAL = "technical" - NON_TECHNICAL = "non-technical" - - -class SocialEngineeringAttackVectorsTaxonomyTechnicalEntry(str, Enum): - VISHING = "vishing" - SPEAR_PHISHING = "spear-phishing" - INTERESTING_SOFTWARE = "interesting-software" - BAITING = "baiting" - WATERHOLING = "waterholing" - PHISHING_AND_TROJAN_EMAIL = "phishing-and-trojan-email" - SPAM_EMAIL = "spam-email" - POPUP_WINDOW = "popup-window" - TAILGATING = "tailgating" - - -class SocialEngineeringAttackVectorsTaxonomyNonTechnicalEntry(str, Enum): - PRETEXTING_IMPERSONATION = "pretexting-impersonation" - HOAXING = "hoaxing" - AUTHORITATIVE_VOICE = "authoritative-voice" - TECHNICAL_EXPERT = "technical-expert" - SMUDGE_ATTACK = "smudge-attack" - DUMPSER_DIVING = "dumpser-diving" - SHOULDER_SURFING = "shoulder-surfing" - SPYING = "spying" - SUPPORT_STAFF = "support-staff" - - -class SocialEngineeringAttackVectorsTaxonomy(BaseModel): - """Model for the Social Engineering Attack Vectors taxonomy.""" - - namespace: str = "social-engineering-attack-vectors" - description: str = """Attack vectors used in social engineering as described in 'A Taxonomy of Social Engineering Defense Mechanisms' by Dalal Alharthi and others.""" - version: int = 1 - exclusive: bool = False - predicates: List[SocialEngineeringAttackVectorsTaxonomyPredicate] = [] - technical_entries: List[SocialEngineeringAttackVectorsTaxonomyTechnicalEntry] = [] - non_technical_entries: List[SocialEngineeringAttackVectorsTaxonomyNonTechnicalEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/srbcert.py b/src/openmisp/models/taxonomies/srbcert.py deleted file mode 100644 index 2b9f906..0000000 --- a/src/openmisp/models/taxonomies/srbcert.py +++ /dev/null @@ -1,76 +0,0 @@ -"""Taxonomy model for srbcert.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class SrbcertTaxonomyPredicate(str, Enum): - INCIDENT_TYPE = "incident-type" - INCIDENT_CRITICALITY_LEVEL = "incident-criticality-level" - - -class SrbcertTaxonomyIncidentTypeEntry(str, Enum): - VIRUS = "virus" - WORM = "worm" - RANSOMWARE = "ransomware" - TROJAN = "trojan" - SPYWARE = "spyware" - ROOTKIT = "rootkit" - MALWARE = "malware" - PORT_SCANNING = "port-scanning" - SNIFFING = "sniffing" - SOCIAL_ENGINEERING = "social-engineering" - DATA_BREACHES = "data-breaches" - OTHER_TYPE_OF_INFORMATION_GATHERING = "other-type-of-information-gathering" - PHISHING = "phishing" - UNAUTHORIZED_USE_OF_RESOURCES = "unauthorized-use-of-resources" - FRAUD = "fraud" - EXPLOITING_KNOWN_VULNERABILITIES = "exploiting-known-vulnerabilities" - BRUTE_FORCE = "brute-force" - OTHER_TYPE_OF_INTRUSION_ATTEMPTS = "other-type-of-intrusion-attempts" - PRIVILEGE_ACCOUNT_COMPROMISE = "privilege-account-compromise" - UNPRIVILEGED_ACCOUNT_COMPROMISE = "unprivileged-account-compromise" - APPLICATION_COMPROMISE = "application-compromise" - BOTNET = "botnet" - OTHER_TYPE_OF_INTRUSIONS = "other-type-of-intrusions" - DOS = "dos" - DDOS = "ddos" - SABOTAGE = "sabotage" - OUTAGE = "outage" - OTHER_TYPE_OF_AVAILABILITY_INCIDENT = "other-type-of-availability-incident" - UNAUTHORIZED_ACCESS_TO_INFORMATION = "unauthorized-access-to-information" - UNAUTHORIZED_MODIFICATION_OF_INFORMATION = "unauthorized-modification-of-information" - CRYPTOGRAPHIC_ATTACK = "cryptographic-attack" - OTHER_TYPE_OF_INFORMATION_CONTENT_SECURITY_INCIDENT = "other-type-of-information-content-security-incident" - HARDWARE_ERRORS = "hardware-errors" - SOFTWARE_ERRORS = "software-errors" - HARDWARE_COMPONENTS_THEFT = "hardware-components-theft" - OTHER = "other" - - -class SrbcertTaxonomyIncidentCriticalityLevelEntry(str, Enum): - LOW = "low" - MEDIUM = "medium" - HIGH = "high" - VERY_HIGH = "very-high" - - -class SrbcertTaxonomy(BaseModel): - """Model for the srbcert taxonomy.""" - - namespace: str = "srbcert" - description: str = """SRB-CERT Taxonomy - Schemes of Classification in Incident Response and Detection""" - version: int = 3 - exclusive: bool = False - predicates: List[SrbcertTaxonomyPredicate] = [] - incident_type_entries: List[SrbcertTaxonomyIncidentTypeEntry] = [] - incident_criticality_level_entries: List[SrbcertTaxonomyIncidentCriticalityLevelEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/state_responsibility.py b/src/openmisp/models/taxonomies/state_responsibility.py deleted file mode 100644 index 7b23341..0000000 --- a/src/openmisp/models/taxonomies/state_responsibility.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Taxonomy model for The Spectrum of State Responsibility.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class StateResponsibilityTaxonomyPredicate(str, Enum): - STATE_PROHIBITED_ = "state-prohibited." - STATE_PROHIBITED_BUT_INADEQUATE_ = "state-prohibited-but-inadequate." - STATE_IGNORED = "state-ignored" - STATE_ENCOURAGED = "state-encouraged" - STATE_SHAPED = "state-shaped" - STATE_COORDINATED = "state-coordinated" - STATE_ORDERED = "state-ordered" - STATE_ROGUE_CONDUCTED = "state-rogue-conducted" - STATE_EXECUTED = "state-executed" - STATE_INTEGRATED = "state-integrated" - - -class StateResponsibilityTaxonomy(BaseModel): - """Model for the The Spectrum of State Responsibility taxonomy.""" - - namespace: str = "state-responsibility" - description: str = """A spectrum of state responsibility to more directly tie the goals of attribution to the needs of policymakers.""" - version: int = 1 - exclusive: bool = False - predicates: List[StateResponsibilityTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/stealth_malware.py b/src/openmisp/models/taxonomies/stealth_malware.py deleted file mode 100644 index 1c8457d..0000000 --- a/src/openmisp/models/taxonomies/stealth_malware.py +++ /dev/null @@ -1,35 +0,0 @@ -"""Taxonomy model for stealth_malware.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class StealthMalwareTaxonomyPredicate(str, Enum): - TYPE = "type" - - -class StealthMalwareTaxonomyTypeEntry(str, Enum): - T_0 = "0" - I = "I" - II = "II" - III = "III" - - -class StealthMalwareTaxonomy(BaseModel): - """Model for the stealth_malware taxonomy.""" - - namespace: str = "stealth_malware" - description: str = """Classification based on malware stealth techniques. Described in https://vxheaven.org/lib/pdf/Introducing%20Stealth%20Malware%20Taxonomy.pdf""" - version: int = 1 - exclusive: bool = False - predicates: List[StealthMalwareTaxonomyPredicate] = [] - type_entries: List[StealthMalwareTaxonomyTypeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/stix_ttp.py b/src/openmisp/models/taxonomies/stix_ttp.py deleted file mode 100644 index c1807db..0000000 --- a/src/openmisp/models/taxonomies/stix_ttp.py +++ /dev/null @@ -1,54 +0,0 @@ -"""Taxonomy model for STIX TTP.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class StixTtpTaxonomyPredicate(str, Enum): - VICTIM_TARGETING = "victim-targeting" - - -class StixTtpTaxonomyVictimTargetingEntry(str, Enum): - BUSINESS_PROFESSIONAL_SECTOR = "business-professional-sector" - RETAIL_SECTOR = "retail-sector" - FINANCIAL_SECTOR = "financial-sector" - MEDIA_ENTERTAINMENT_SECTOR = "media-entertainment-sector" - CONSTRUCTION_ENGINEERING_SECTOR = "construction-engineering-sector" - GOVERNMENT_INTERNATIONAL_ORGANIZATIONS_SECTOR = "government-international-organizations-sector" - LEGAL_SECTOR = "legal-sector" - HIGHTECH_IT_SECTOR = "hightech-it-sector" - HEALTHCARE_SECTOR = "healthcare-sector" - TRANSPORTATION_SECTOR = "transportation-sector" - AEROSPACE_DEFENCE_SECTOR = "aerospace-defence-sector" - ENERGY_SECTOR = "energy-sector" - FOOD_SECTOR = "food-sector" - NATURAL_RESOURCES_SECTOR = "natural-resources-sector" - OTHER_SECTOR = "other-sector" - CORPORATE_EMPLOYEE_INFORMATION = "corporate-employee-information" - CUSTOMER_PII = "customer-pii" - EMAIL_LISTS_ARCHIVES = "email-lists-archives" - FINANCIAL_DATA = "financial-data" - INTELLECTUAL_PROPERTY = "intellectual-property" - MOBILE_PHONE_CONTACTS = "mobile-phone-contacts" - USER_CREDENTIALS = "user-credentials" - AUTHENTIFICATION_COOKIES = "authentification-cookies" - - -class StixTtpTaxonomy(BaseModel): - """Model for the STIX TTP taxonomy.""" - - namespace: str = "stix-ttp" - description: str = """TTPs are representations of the behavior or modus operandi of cyber adversaries.""" - version: int = 1 - exclusive: bool = False - predicates: List[StixTtpTaxonomyPredicate] = [] - victim_targeting_entries: List[StixTtpTaxonomyVictimTargetingEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/targeted_threat_index.py b/src/openmisp/models/taxonomies/targeted_threat_index.py deleted file mode 100644 index 6654ad9..0000000 --- a/src/openmisp/models/taxonomies/targeted_threat_index.py +++ /dev/null @@ -1,57 +0,0 @@ -"""Taxonomy model for targeted-threat-index.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class TargetedThreatIndexTaxonomyPredicate(str, Enum): - TARGETING_SOPHISTICATION_BASE_VALUE = "targeting-sophistication-base-value" - TECHNICAL_SOPHISTICATION_MULTIPLIER = "technical-sophistication-multiplier" - - -class TargetedThreatIndexTaxonomyTargetingSophisticationBaseValueEntry(str, Enum): - NOT_TARGETED = "not-targeted" - TARGETED_BUT_NOT_CUSTOMIZED = "targeted-but-not-customized" - TARGETED_AND_POORLY_CUSTOMIZED = "targeted-and-poorly-customized" - TARGETED_AND_CUSTOMIZED = "targeted-and-customized" - TARGETED_AND_WELL_CUSTOMIZED = "targeted-and-well-customized" - TARGETED_AND_HIGHLY_CUSTOMIZED_USING_SENSITIVE_DATA = "targeted-and-highly-customized-using-sensitive-data" - - -class TargetedThreatIndexTaxonomyTechnicalSophisticationMultiplierEntry(str, Enum): - THE_SAMPLE_CONTAINS_NO_CODE_PROTECTION = "the-sample-contains-no code-protection" - THE_SAMPLE_CONTAINS_A_SIMPLE_METHOD_OF_PROTECTION = "the-sample-contains-a-simple-method-of-protection" - THE_SAMPLE_CONTAINS_MULTIPLE_MINOR_CODE_PROTECTION_TECHNIQUES = ( - "the-sample-contains-multiple-minor-code-protection-techniques" - ) - THE_SAMPLE_CONTAINS_MINOR_CODE_PROTECTION_TECHNIQUES_PLUS_ONE_ADVANCED = ( - "the-sample-contains-minor-code-protection-techniques-plus-one-advanced" - ) - THE_SAMPLE_CONTAINS_MULTIPLE_ADVANCED_PROTECTION_TECHNIQUES = ( - "the-sample-contains-multiple-advanced-protection-techniques" - ) - - -class TargetedThreatIndexTaxonomy(BaseModel): - """Model for the targeted-threat-index taxonomy.""" - - namespace: str = "targeted-threat-index" - description: str = """The Targeted Threat Index is a metric for assigning an overall threat ranking score to email messages that deliver malware to a victim’s computer. The TTI metric was first introduced at SecTor 2013 by Seth Hardy as part of the talk “RATastrophe: Monitoring a Malware Menagerie” along with Katie Kleemola and Greg Wiseman.""" - version: int = 3 - exclusive: bool = False - predicates: List[TargetedThreatIndexTaxonomyPredicate] = [] - targeting_sophistication_base_value_entries: List[ - TargetedThreatIndexTaxonomyTargetingSophisticationBaseValueEntry - ] = [] - technical_sophistication_multiplier_entries: List[ - TargetedThreatIndexTaxonomyTechnicalSophisticationMultiplierEntry - ] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/thales_group.py b/src/openmisp/models/taxonomies/thales_group.py deleted file mode 100644 index 5e82284..0000000 --- a/src/openmisp/models/taxonomies/thales_group.py +++ /dev/null @@ -1,51 +0,0 @@ -"""Taxonomy model for Thales Group Taxonomy.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class ThalesGroupTaxonomyPredicate(str, Enum): - DISTRIBUTION = "distribution" - TO_BLOCK = "to_block" - MINARM = "minarm" - ACN = "acn" - SIGPART = "sigpart" - A_ISAC = "a_isac" - INTERCERT_FRANCE = "intercert_france" - IOC_CONFIDENCE = "ioc_confidence" - TLP_BLACK = "tlp:black" - WATCHER = "Watcher" - - -class ThalesGroupTaxonomyDistributionEntry(str, Enum): - TEAM_EYES_ONLY = "team_eyes_only" - LIMITED_DISTRIBUTION = "limited_distribution" - EXTERNAL_ALLIANCES = "external_alliances" - CUSTOMERS = "customers" - - -class ThalesGroupTaxonomyIocConfidenceEntry(str, Enum): - HIGH = "high" - MEDIUM = "medium" - LOW = "low" - - -class ThalesGroupTaxonomy(BaseModel): - """Model for the Thales Group Taxonomy taxonomy.""" - - namespace: str = "thales_group" - description: str = """Thales Group Taxonomy - was designed with the aim of enabling desired sharing and preventing unwanted sharing between Thales Group security communities.""" - version: int = 4 - exclusive: bool = False - predicates: List[ThalesGroupTaxonomyPredicate] = [] - distribution_entries: List[ThalesGroupTaxonomyDistributionEntry] = [] - ioc_confidence_entries: List[ThalesGroupTaxonomyIocConfidenceEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/threatmatch.py b/src/openmisp/models/taxonomies/threatmatch.py deleted file mode 100644 index 2b5c172..0000000 --- a/src/openmisp/models/taxonomies/threatmatch.py +++ /dev/null @@ -1,163 +0,0 @@ -"""Taxonomy model for ThreatMatch categories for sharing into ThreatMatch and MISP.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class ThreatmatchTaxonomyPredicate(str, Enum): - SECTOR = "sector" - INCIDENT_TYPE = "incident-type" - MALWARE_TYPE = "malware-type" - ALERT_TYPE = "alert-type" - - -class ThreatmatchTaxonomySectorEntry(str, Enum): - BANKING___CAPITAL_MARKETS = "Banking & Capital Markets" - FINANCIAL_SERVICES = "Financial Services" - INSURANCE = "Insurance" - PENSION = "Pension" - GOVERNMENT___PUBLIC_SERVICE = "Government & Public Service" - DIPLOMATIC_SERVICES = "Diplomatic Services" - ENERGY__UTILITIES___MINING = "Energy, Utilities & Mining" - TELECOMMUNICATIONS = "Telecommunications" - TECHNOLOGY = "Technology" - ACADEMIC_RESEARCH_INSTITUTES = "Academic/Research Institutes" - AEROSPACE__DEFENCE___SECURITY = "Aerospace, Defence & Security" - AGRICULTURE = "Agriculture" - ASSET___WEALTH_MANAGEMENT = "Asset & Wealth Management" - AUTOMOTIVE = "Automotive" - BUSINESS_AND_PROFESSIONAL_SERVICES = "Business and Professional Services" - CAPITAL_PROJECTS___INFRASTRUCTURE = "Capital Projects & Infrastructure" - CHARITY_NOT_FOR_PROFIT = "Charity/Not-for-Profit" - CHEMICALS = "Chemicals" - COMMERCIAL_AVIATION = "Commercial Aviation" - COMMODITIES = "Commodities" - EDUCATION = "Education" - ENGINEERING___CONSTRUCTION = "Engineering & Construction" - ENTERTAINMENT___MEDIA = "Entertainment & Media" - FOREST__PAPER___PACKAGING = "Forest, Paper & Packaging" - HEALTHCARE = "Healthcare" - HOSPITALITY___LEISURE = "Hospitality & Leisure" - INDUSTRIAL_MANUFACTURING = "Industrial Manufacturing" - IT_INDUSTRY = "IT Industry" - LEGAL = "Legal" - METALS = "Metals" - PHARMACEUTICALS___LIFE_SCIENCES = "Pharmaceuticals & Life Sciences" - PRIVATE_EQUITY = "Private Equity" - RETAIL___CONSUMER = "Retail & Consumer" - SEMICONDUCTORS = "Semiconductors" - SOVEREIGN_INVESTMENT_FUNDS = "Sovereign Investment Funds" - TRANSPORT___LOGISTICS = "Transport & Logistics" - - -class ThreatmatchTaxonomyIncidentTypeEntry(str, Enum): - ATM_ATTACKS = "ATM Attacks" - ATM_BREACH = "ATM Breach" - ATTEMPTED_EXPLOITATION = "Attempted Exploitation" - BOTNET_ACTIVITY = "Botnet Activity" - BUSINESS_EMAIL_COMPROMISE = "Business Email Compromise" - CRYPTO_MINING = "Crypto Mining" - DATA_BREACH_COMPROMISE = "Data Breach/Compromise" - DATA_DUMP = "Data Dump" - DATA_LEAKAGE = "Data Leakage" - DDO_S = "DDoS" - DEFACEMENT_ACTIVITY = "Defacement Activity" - DENIAL_OF_SERVICE__DO_S_ = "Denial of Service (DoS)" - DISRUPTION_ACTIVITY = "Disruption Activity" - ESPIONAGE = "Espionage" - ESPIONAGE_ACTIVITY = "Espionage Activity" - EXEC_TARGETING_ = "Exec Targeting " - EXPOSURE_OF_DATA = "Exposure of Data" - EXTORTION_ACTIVITY = "Extortion Activity" - FRAUD_ACTIVITY = "Fraud Activity" - GENERAL_NOTIFICATION = "General Notification" - HACKTIVISM_ACTIVITY = "Hacktivism Activity" - MALICIOUS_INSIDER = "Malicious Insider" - MALWARE_INFECTION = "Malware Infection" - MAN_IN_THE_MIDDLE_ATTACKS = "Man in the Middle Attacks" - MFA_ATTACK = "MFA Attack" - MOBILE_MALWARE = "Mobile Malware" - PHISHING_ACTIVITY = "Phishing Activity" - RANSOMWARE_ACTIVITY = "Ransomware Activity" - SOCIAL_ENGINEERING_ACTIVITY = "Social Engineering Activity" - SOCIAL_MEDIA_COMPROMISE = "Social Media Compromise" - SPEAR_PHISHING_ACTIVITY = "Spear-phishing Activity" - SPYWARE = "Spyware" - SQL_INJECTION_ACTIVITY = "SQL Injection Activity" - SUPPLY_CHAIN_COMPROMISE = "Supply Chain Compromise" - TROJANISED_SOFTWARE = "Trojanised Software" - VISHING = "Vishing" - WEBSITE_ATTACK__OTHER_ = "Website Attack (Other)" - UNKNOWN = "Unknown" - - -class ThreatmatchTaxonomyMalwareTypeEntry(str, Enum): - ADWARE = "Adware" - BACKDOOR = "Backdoor" - BANKING_TROJAN = "Banking Trojan" - BOTNET = "Botnet" - DESTRUCTIVE = "Destructive" - DOWNLOADER = "Downloader" - EXPLOIT_KIT = "Exploit Kit" - FILELESS_MALWARE = "Fileless Malware" - KEYLOGGER = "Keylogger" - LEGITIMATE_TOOL = "Legitimate Tool" - MOBILE_APPLICATION = "Mobile Application" - MOBILE_MALWARE = "Mobile Malware" - POINT_OF_SALE__PO_S_ = "Point-of-Sale (PoS)" - REMOTE_ACCESS_TROJAN = "Remote Access Trojan" - ROOTKIT = "Rootkit" - SKIMMER = "Skimmer" - SPYWARE = "Spyware" - SURVEILLANCE_TOOL = "Surveillance Tool" - TROJAN = "Trojan" - VIRUS = "Virus" - WORM = "Worm" - ZERO_DAY = "Zero-day" - UNKNOWN = "Unknown" - - -class ThreatmatchTaxonomyAlertTypeEntry(str, Enum): - ACTOR_CAMPAIGNS = "Actor Campaigns" - CREDENTIAL_BREACH = "Credential Breach" - DDO_S = "DDoS" - EXPLOIT_ALERT = "Exploit Alert" - GENERAL_NOTIFICATION = "General Notification" - VULNERABILITY = "Vulnerability" - INFORMATION_LEAKAGES = "Information Leakages" - MALWARE = "Malware" - SUSPICIOUS_DOMAIN = "Suspicious Domain" - FORUM_MENTION = "Forum Mention" - PHISHING_ATTEMPTS = "Phishing Attempts" - SOCIAL_MEDIA_ALERTS = "Social Media Alerts" - SUPPLY_CHAIN_EVENT = "Supply Chain Event" - TECHNICAL_EXPOSURE = "Technical Exposure" - THREAT_ACTOR_UPDATE = "Threat Actor Update" - DIRECT_TARGETING_ = "Direct Targeting " - PROTEST_ACTIVITY = "Protest Activity" - VIOLENT_EVENT = "Violent Event" - STRATEGIC_EVENT = "Strategic Event" - INSIDER_THREAT = "Insider Threat" - - -class ThreatmatchTaxonomy(BaseModel): - """Model for the ThreatMatch categories for sharing into ThreatMatch and MISP taxonomy.""" - - namespace: str = "threatmatch" - description: str = """The ThreatMatch Sectors, Incident types, Malware types and Alert types are applicable for any ThreatMatch instances and should be used for all CIISI and TIBER Projects.""" - version: int = 3 - exclusive: bool = False - predicates: List[ThreatmatchTaxonomyPredicate] = [] - sector_entries: List[ThreatmatchTaxonomySectorEntry] = [] - incident_type_entries: List[ThreatmatchTaxonomyIncidentTypeEntry] = [] - malware_type_entries: List[ThreatmatchTaxonomyMalwareTypeEntry] = [] - alert_type_entries: List[ThreatmatchTaxonomyAlertTypeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/threats_to_dns.py b/src/openmisp/models/taxonomies/threats_to_dns.py deleted file mode 100644 index 55788bd..0000000 --- a/src/openmisp/models/taxonomies/threats_to_dns.py +++ /dev/null @@ -1,63 +0,0 @@ -"""Taxonomy model for Threats to DNS.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class ThreatsToDnsTaxonomyPredicate(str, Enum): - DNS_PROTOCOL_ATTACKS = "dns-protocol-attacks" - DNS_SERVER_ATTACKS = "dns-server-attacks" - DNS_ABUSE_OR_MISUSE = "dns-abuse-or-misuse" - - -class ThreatsToDnsTaxonomyDnsProtocolAttacksEntry(str, Enum): - MAN_IN_THE_MIDDLE_ATTACK = "man-in-the-middle-attack" - DNS_SPOOFING = "dns-spoofing" - DNS_REBINDING = "dns-rebinding" - - -class ThreatsToDnsTaxonomyDnsServerAttacksEntry(str, Enum): - SERVER_DOS_AND_DDOS = "server-dos-and-ddos" - SERVER_HIJACKING = "server-hijacking" - CACHE_POISONING = "cache-poisoning" - - -class ThreatsToDnsTaxonomyDnsAbuseOrMisuseEntry(str, Enum): - DOMAIN_NAME_REGISTRATION_ABUSE_CYBERSQUATTING = "domain-name-registration-abuse-cybersquatting" - DOMAIN_NAME_REGISTRATION_ABUSE_TYPOSQUATTING = "domain-name-registration-abuse-typosquatting" - DOMAIN_NAME_REGISTRATION_ABUSE_DOMAIN_REPUTATION_AND_RE_REGISTRATION = ( - "domain-name-registration-abuse-domain-reputation-and-re-registration" - ) - DNS_REFLECTION_DNS_AMPLIFICATION = "dns-reflection-dns-amplification" - MALICIOUS_OR_COMPROMISED_DOMAINS_IPS_MALICIOUS_BOTNETS_C2 = ( - "malicious-or-compromised-domains-ips-malicious-botnets-c2" - ) - MALICIOUS_OR_COMPROMISED_DOMAINS_IPS_FAST_FLUX_DOMAINS = "malicious-or-compromised-domains-ips-fast-flux-domains" - MALICIOUS_OR_COMPROMISED_DOMAINS_IPS_MALICIOUS_DGAS = "malicious-or-compromised-domains-ips-malicious-dgas" - COVERT_CHANNELS_MALICIOUS_DNS_TUNNELING = "covert-channels-malicious-dns-tunneling" - COVERT_CHANNELS_MALICIOUS_PAYLOAD_DISTRIBUTION = "covert-channels-malicious-payload-distribution" - BENIGN_SERVICES_APPLICATIONS_MALICIOUS_DNS_RESOLVERS = "benign-services-applications-malicious-dns-resolvers" - BENIGN_SERVICES_APPLICATIONS_MALICIOUS_SCANNERS = "benign-services-applications-malicious-scanners" - BENIGN_SERVICES_APPLICATIONS_URL_SHORTENERS = "benign-services-applications-url-shorteners" - - -class ThreatsToDnsTaxonomy(BaseModel): - """Model for the Threats to DNS taxonomy.""" - - namespace: str = "threats-to-dns" - description: str = """An overview of some of the known attacks related to DNS as described by Torabi, S., Boukhtouta, A., Assi, C., & Debbabi, M. (2018) in Detecting Internet Abuse by Analyzing Passive DNS Traffic: A Survey of Implemented Systems. IEEE Communications Surveys & Tutorials, 1–1. doi:10.1109/comst.2018.2849614""" - version: int = 1 - exclusive: bool = False - predicates: List[ThreatsToDnsTaxonomyPredicate] = [] - dns_protocol_attacks_entries: List[ThreatsToDnsTaxonomyDnsProtocolAttacksEntry] = [] - dns_server_attacks_entries: List[ThreatsToDnsTaxonomyDnsServerAttacksEntry] = [] - dns_abuse_or_misuse_entries: List[ThreatsToDnsTaxonomyDnsAbuseOrMisuseEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/tlp.py b/src/openmisp/models/taxonomies/tlp.py deleted file mode 100644 index ff6093f..0000000 --- a/src/openmisp/models/taxonomies/tlp.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Taxonomy model for Traffic Light Protocol.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class TlpTaxonomyPredicate(str, Enum): - RED = "red" - AMBER = "amber" - AMBER_STRICT = "amber+strict" - GREEN = "green" - WHITE = "white" - CLEAR = "clear" - EX_CHR = "ex:chr" - UNCLEAR = "unclear" - - -class TlpTaxonomy(BaseModel): - """Model for the Traffic Light Protocol taxonomy.""" - - namespace: str = "tlp" - description: str = """The Traffic Light Protocol (TLP) (v2.0) was created to facilitate greater sharing of potentially sensitive information and more effective collaboration. Information sharing happens from an information source, towards one or more recipients. TLP is a set of four standard labels (a fifth label is included in amber to limit the diffusion) used to indicate the sharing boundaries to be applied by the recipients. Only labels listed in this standard are considered valid by FIRST. This taxonomy includes additional labels for backward compatibility which are no more validated by FIRST SIG.""" - version: int = 10 - exclusive: bool = True - predicates: List[TlpTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/tor.py b/src/openmisp/models/taxonomies/tor.py deleted file mode 100644 index 669bed6..0000000 --- a/src/openmisp/models/taxonomies/tor.py +++ /dev/null @@ -1,35 +0,0 @@ -"""Taxonomy model for tor.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class TorTaxonomyPredicate(str, Enum): - TOR_RELAY_TYPE = "tor-relay-type" - - -class TorTaxonomyTorRelayTypeEntry(str, Enum): - ENTRY_GUARD_RELAY = "entry-guard-relay" - MIDDLE_RELAY = "middle-relay" - EXIT_RELAY = "exit-relay" - BRIDGE_RELAY = "bridge-relay" - - -class TorTaxonomy(BaseModel): - """Model for the tor taxonomy.""" - - namespace: str = "tor" - description: str = """Taxonomy to describe Tor network infrastructure""" - version: int = 1 - exclusive: bool = False - predicates: List[TorTaxonomyPredicate] = [] - tor_relay_type_entries: List[TorTaxonomyTorRelayTypeEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/trust.py b/src/openmisp/models/taxonomies/trust.py deleted file mode 100644 index 8ad46cc..0000000 --- a/src/openmisp/models/taxonomies/trust.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Taxonomy model for Indicators of Trust.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class TrustTaxonomyPredicate(str, Enum): - TRUST = "trust" - FREQUENCY = "frequency" - VALID = "valid" - - -class TrustTaxonomyTrustEntry(str, Enum): - UNKNOWN = "unknown" - NONE = "none" - PARTIAL = "partial" - RELATIONSHIP = "relationship" - FULL = "full" - - -class TrustTaxonomyFrequencyEntry(str, Enum): - HOURLY = "hourly" - DAILY = "daily" - WEEKLY = "weekly" - MONTHLY = "monthly" - YEARLY = "yearly" - - -class TrustTaxonomyValidEntry(str, Enum): - TRUE = "true" - FALSE = "false" - - -class TrustTaxonomy(BaseModel): - """Model for the Indicators of Trust taxonomy.""" - - namespace: str = "trust" - description: str = """The Indicator of Trust provides insight about data on what can be trusted and known as a good actor. Similar to a whitelist but on steroids, reusing features one would use with Indicators of Compromise, but to filter out what is known to be good.""" - version: int = 1 - exclusive: bool = True - predicates: List[TrustTaxonomyPredicate] = [] - trust_entries: List[TrustTaxonomyTrustEntry] = [] - frequency_entries: List[TrustTaxonomyFrequencyEntry] = [] - valid_entries: List[TrustTaxonomyValidEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/type.py b/src/openmisp/models/taxonomies/type.py deleted file mode 100644 index 3a48d2b..0000000 --- a/src/openmisp/models/taxonomies/type.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Taxonomy model for type.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class TypeTaxonomyPredicate(str, Enum): - OSINT = "OSINT" - SIGINT = "SIGINT" - TECHINT = "TECHINT" - CYBINT = "CYBINT" - DNINT = "DNINT" - HUMINT = "HUMINT" - MEDINT = "MEDINT" - GEOINT = "GEOINT" - IMINT = "IMINT" - MASINT = "MASINT" - FININT = "FININT" - - -class TypeTaxonomy(BaseModel): - """Model for the type taxonomy.""" - - namespace: str = "type" - description: str = """Taxonomy to describe different types of intelligence gathering discipline which can be described the origin of intelligence.""" - version: int = 1 - exclusive: bool = False - predicates: List[TypeTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/unified_kill_chain.py b/src/openmisp/models/taxonomies/unified_kill_chain.py deleted file mode 100644 index 5fada65..0000000 --- a/src/openmisp/models/taxonomies/unified_kill_chain.py +++ /dev/null @@ -1,60 +0,0 @@ -"""Taxonomy model for Unified Kill Chain.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class UnifiedKillChainTaxonomyPredicate(str, Enum): - INITIAL_FOOTHOLD = "Initial Foothold" - NETWORK_PROPAGATION = "Network Propagation" - ACTION_ON_OBJECTIVES = "Action on Objectives" - - -class UnifiedKillChainTaxonomyInitialFootholdEntry(str, Enum): - RECONNAISSANCE = "reconnaissance" - WEAPONIZATION = "weaponization" - DELIVERY = "delivery" - SOCIAL_ENGINEERING = "social-engineering" - EXPLOITATION = "exploitation" - PERSISTENCE = "persistence" - DEFENSE_EVASION = "defense-evasion" - COMMAND_CONTROL = "command-control" - - -class UnifiedKillChainTaxonomyNetworkPropagationEntry(str, Enum): - PIVOTING = "pivoting" - DISCOVERY = "discovery" - PRIVILEGE_ESCALATION = "privilege-escalation" - EXECUTION = "execution" - CREDENTIAL_ACCESS = "credential-access" - LATERAL_MOVEMENT = "lateral-movement" - - -class UnifiedKillChainTaxonomyActionOnObjectivesEntry(str, Enum): - ACCESS = "access" - COLLECTION = "collection" - EXFILTRATION = "exfiltration" - IMPACT = "impact" - OBJECTIVES = "objectives" - - -class UnifiedKillChainTaxonomy(BaseModel): - """Model for the Unified Kill Chain taxonomy.""" - - namespace: str = "unified-kill-chain" - description: str = """The Unified Kill Chain is a refinement to the Kill Chain.""" - version: int = 1 - exclusive: bool = False - predicates: List[UnifiedKillChainTaxonomyPredicate] = [] - initial_foothold_entries: List[UnifiedKillChainTaxonomyInitialFootholdEntry] = [] - network_propagation_entries: List[UnifiedKillChainTaxonomyNetworkPropagationEntry] = [] - action_on_objectives_entries: List[UnifiedKillChainTaxonomyActionOnObjectivesEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/unified_ransomware_kill_chain.py b/src/openmisp/models/taxonomies/unified_ransomware_kill_chain.py deleted file mode 100644 index aebafa8..0000000 --- a/src/openmisp/models/taxonomies/unified_ransomware_kill_chain.py +++ /dev/null @@ -1,35 +0,0 @@ -"""Taxonomy model for Unified Ransomware Kill Chain.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class UnifiedRansomwareKillChainTaxonomyPredicate(str, Enum): - GAIN_ACCESS = "Gain Access" - ESTABLISH_FOOTHOLD = "Establish Foothold" - NETWORK_DISCOVERY = "Network Discovery" - KEY_ASSETS_DISCOVERY = "Key Assets Discovery" - NETWORK_PROPAGATION = "Network Propagation" - DATA_EXFILTRATION = "Data Exfiltration" - DEPLOYMENT_PREPARATION = "Deployment Preparation" - RANSOMWARE_DEPLOYMENT = "Ransomware Deployment" - EXTORTION = "Extortion" - - -class UnifiedRansomwareKillChainTaxonomy(BaseModel): - """Model for the Unified Ransomware Kill Chain taxonomy.""" - - namespace: str = "unified-ransomware-kill-chain" - description: str = """The Unified Ransomware Kill Chain, a intelligence driven model developed by Oleg Skulkin, aims to track every single phase of a ransomware attack.""" - version: int = 1 - exclusive: bool = False - predicates: List[UnifiedRansomwareKillChainTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/use_case_applicability.py b/src/openmisp/models/taxonomies/use_case_applicability.py deleted file mode 100644 index a974c3e..0000000 --- a/src/openmisp/models/taxonomies/use_case_applicability.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Taxonomy model for Continuous Monitoring Resolution Category.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class UseCaseApplicabilityTaxonomyPredicate(str, Enum): - ANNOUNCED_ADMINISTRATIVE_USER_ACTION = "announced-administrative/user-action" - UNANNOUNCED_ADMINISTRATIVE_USER_ACTION = "unannounced-administrative/user-action" - LOG_MANAGEMENT_RULE_CONFIGURATION_ERROR = "log-management-rule-configuration-error" - DETECTION_DEVICE_RULE_CONFIGURATION_ERROR = "detection-device/rule-configuration-error" - BAD_IOC_RULE_PATTERN_VALUE = "bad-IOC/rule-pattern-value" - TEST_ALERT = "test-alert" - CONFIRMED_ATTACK_WITH_IR_ACTIONS = "confirmed-attack-with-IR-actions" - CONFIRMED_ATTACK_ATTEMPT_WITHOUT_IR_ACTIONS = "confirmed-attack-attempt-without-IR-actions" - - -class UseCaseApplicabilityTaxonomy(BaseModel): - """Model for the Continuous Monitoring Resolution Category taxonomy.""" - - namespace: str = "use-case-applicability" - description: str = """The Use Case Applicability categories reflect standard resolution categories, to clearly display alerting rule configuration problems.""" - version: int = 1 - exclusive: bool = False - predicates: List[UseCaseApplicabilityTaxonomyPredicate] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/utils.py b/src/openmisp/models/taxonomies/utils.py deleted file mode 100644 index 85c669a..0000000 --- a/src/openmisp/models/taxonomies/utils.py +++ /dev/null @@ -1,160 +0,0 @@ -"""Utility functions for working with taxonomies.""" - -import re -from enum import Enum -from typing import Dict, List, Optional, Type, TypeVar - -from pydantic import BaseModel - -# Type variable for taxonomy classes -T = TypeVar("T", bound=BaseModel) - - -def sanitize_name(name: str) -> str: - """Sanitize a name to be a valid Python identifier.""" - # Replace non-alphanumeric characters with underscores - name = re.sub(r"[^a-zA-Z0-9_]", "_", name) - # Ensure the name starts with a letter - if not name[0].isalpha(): - name = "t_" + name - # Convert to snake_case - name = re.sub(r"([a-z0-9])([A-Z])", r"\1_\2", name).lower() - return name - - -def camel_case(name: str) -> str: - """Convert a string to CamelCase.""" - # First convert to snake_case to handle any existing separators - snake = sanitize_name(name) - # Then convert to CamelCase - return "".join(word.capitalize() for word in snake.split("_")) - - -def get_all_taxonomies() -> List[Type[BaseModel]]: - """Get all taxonomy classes defined in the package.""" - from . import __dict__ as module_dict - - taxonomies = [] - for name, obj in module_dict.items(): - if ( - isinstance(obj, type) - and issubclass(obj, BaseModel) - and obj.__name__.endswith("Taxonomy") - and obj.__module__.startswith("openmisp.models.taxonomies.") - ): - taxonomies.append(obj) - - return taxonomies - - -def get_taxonomy_by_namespace(namespace: str) -> Type[BaseModel]: - """Get a taxonomy class by its namespace.""" - for taxonomy_class in get_all_taxonomies(): - if hasattr(taxonomy_class, "namespace") and taxonomy_class.namespace == namespace: - return taxonomy_class - - raise ValueError(f"Taxonomy with namespace '{namespace}' not found") - - -def get_taxonomy_from_tag(tag: str) -> Type[BaseModel]: - """Get a taxonomy class from a tag.""" - if ":" not in tag: - raise ValueError(f"Invalid tag format: {tag}") - - namespace = tag.split(":", 1)[0] - return get_taxonomy_by_namespace(namespace) - - -def parse_tag(tag: str) -> Dict[str, str]: - """Parse a tag into its namespace, predicate, and optional entry.""" - if ":" not in tag: - raise ValueError(f"Invalid tag format: {tag}") - - namespace, rest = tag.split(":", 1) - - if "=" in rest: - predicate, entry = rest.split("=", 1) - # Remove quotes if present - if (entry.startswith("'") and entry.endswith("'")) or (entry.startswith('"') and entry.endswith('"')): - entry = entry[1:-1] - return {"namespace": namespace, "predicate": predicate, "entry": entry} - - return {"namespace": namespace, "predicate": rest} - - -def is_valid_tag(tag: str) -> bool: - """Check if a tag is valid for any taxonomy.""" - try: - parsed = parse_tag(tag) - taxonomy_class = get_taxonomy_by_namespace(parsed["namespace"]) - - # Check if the predicate is valid - predicate = parsed["predicate"] - predicate_valid = False - - # Check in predicate enum if it exists - predicate_enum = None - for attr_name in dir(taxonomy_class): - attr = getattr(taxonomy_class, attr_name) - if isinstance(attr, type) and issubclass(attr, Enum) and attr.__name__.endswith("Predicate"): - predicate_enum = attr - break - - if predicate_enum: - predicate_valid = any(member.value == predicate for member in predicate_enum) - - if not predicate_valid: - return False - - # If there's an entry, check if it's valid - if "entry" in parsed: - entry = parsed["entry"] - entry_valid = False - - # Find the entry enum for this predicate - entry_enum = None - predicate_class_name = camel_case(predicate) - entry_class_name = f"{taxonomy_class.__name__}{predicate_class_name}Entry" - - for attr_name in dir(taxonomy_class.__module__): - if attr_name == entry_class_name: - attr = getattr(taxonomy_class.__module__, attr_name) - if isinstance(attr, type) and issubclass(attr, Enum): - entry_enum = attr - break - - if entry_enum: - entry_valid = any(member.value == entry for member in entry_enum) - return entry_valid - - return True - except (ValueError, IndexError): - return False - - -def get_predicate_entries(taxonomy_class: Type[BaseModel], predicate: str) -> List[str]: - """Get all valid entries for a predicate in a taxonomy.""" - # Format the predicate name properly for the class name - predicate_class_name = camel_case(predicate) - entry_class_name = f"{taxonomy_class.__name__}{predicate_class_name}Entry" - - # Find the entry enum for this predicate - entry_enum = None - for attr_name in dir(taxonomy_class.__module__): - if attr_name == entry_class_name: - attr = getattr(taxonomy_class.__module__, attr_name) - if isinstance(attr, type) and issubclass(attr, Enum): - entry_enum = attr - break - - if entry_enum: - return [member.value for member in entry_enum] - - return [] - - -def build_tag(namespace: str, predicate: str, entry: Optional[str] = None) -> str: - """Build a tag from its components.""" - if entry: - return f"{namespace}:{predicate}='{entry}'" - return f"{namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/veris.py b/src/openmisp/models/taxonomies/veris.py deleted file mode 100644 index faa67ea..0000000 --- a/src/openmisp/models/taxonomies/veris.py +++ /dev/null @@ -1,2315 +0,0 @@ -"""Taxonomy model for veris.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class VerisTaxonomyPredicate(str, Enum): - CONFIDENCE = "confidence" - COST_CORRECTIVE_ACTION = "cost_corrective_action" - DISCOVERY_METHOD = "discovery_method" - SECURITY_INCIDENT = "security_incident" - TARGETED = "targeted" - ASSET_ACCESSIBILITY = "asset:accessibility" - ASSET_CLOUD = "asset:cloud" - ASSET_COUNTRY = "asset:country" - ASSET_GOVERNANCE = "asset:governance" - ASSET_HOSTING = "asset:hosting" - ASSET_MANAGEMENT = "asset:management" - ASSET_OWNERSHIP = "asset:ownership" - IMPACT_ISO_CURRENCY_CODE = "impact:iso_currency_code" - IMPACT_OVERALL_RATING = "impact:overall_rating" - VICTIM_COUNTRY = "victim:country" - VICTIM_EMPLOYEE_COUNT = "victim:employee_count" - ACTION_ENVIRONMENTAL_VARIETY = "action:environmental:variety" - ACTION_ERROR_VARIETY = "action:error:variety" - ACTION_ERROR_VECTOR = "action:error:vector" - ACTION_HACKING_RESULT = "action:hacking:result" - ACTION_HACKING_VARIETY = "action:hacking:variety" - ACTION_HACKING_VECTOR = "action:hacking:vector" - ACTION_MALWARE_RESULT = "action:malware:result" - ACTION_MALWARE_VARIETY = "action:malware:variety" - ACTION_MALWARE_VECTOR = "action:malware:vector" - ACTION_MISUSE_RESULT = "action:misuse:result" - ACTION_MISUSE_VARIETY = "action:misuse:variety" - ACTION_MISUSE_VECTOR = "action:misuse:vector" - ACTION_PHYSICAL_RESULT = "action:physical:result" - ACTION_PHYSICAL_VARIETY = "action:physical:variety" - ACTION_PHYSICAL_VECTOR = "action:physical:vector" - ACTION_SOCIAL_RESULT = "action:social:result" - ACTION_SOCIAL_TARGET = "action:social:target" - ACTION_SOCIAL_VARIETY = "action:social:variety" - ACTION_SOCIAL_VECTOR = "action:social:vector" - ACTION_UNKNOWN_RESULT = "action:unknown:result" - ACTOR_EXTERNAL_COUNTRY = "actor:external:country" - ACTOR_EXTERNAL_MOTIVE = "actor:external:motive" - ACTOR_EXTERNAL_VARIETY = "actor:external:variety" - ACTOR_INTERNAL_JOB_CHANGE = "actor:internal:job_change" - ACTOR_INTERNAL_MOTIVE = "actor:internal:motive" - ACTOR_INTERNAL_VARIETY = "actor:internal:variety" - ACTOR_PARTNER_COUNTRY = "actor:partner:country" - ACTOR_PARTNER_MOTIVE = "actor:partner:motive" - ASSET_ASSETS_VARIETY = "asset:assets:variety" - ATTRIBUTE_AVAILABILITY_VARIETY = "attribute:availability:variety" - ATTRIBUTE_CONFIDENTIALITY_DATA_DISCLOSURE = "attribute:confidentiality:data_disclosure" - ATTRIBUTE_CONFIDENTIALITY_DATA_VICTIM = "attribute:confidentiality:data_victim" - ATTRIBUTE_CONFIDENTIALITY_STATE = "attribute:confidentiality:state" - ATTRIBUTE_INTEGRITY_VARIETY = "attribute:integrity:variety" - IMPACT_LOSS_RATING = "impact:loss:rating" - IMPACT_LOSS_VARIETY = "impact:loss:variety" - TIMELINE_COMPROMISE_UNIT = "timeline:compromise:unit" - TIMELINE_CONTAINMENT_UNIT = "timeline:containment:unit" - TIMELINE_DISCOVERY_UNIT = "timeline:discovery:unit" - TIMELINE_EXFILTRATION_UNIT = "timeline:exfiltration:unit" - VICTIM_REVENUE_ISO_CURRENCY_CODE = "victim:revenue:iso_currency_code" - ATTRIBUTE_AVAILABILITY_DURATION_UNIT = "attribute:availability:duration:unit" - ATTRIBUTE_CONFIDENTIALITY_DATA_VARIETY = "attribute:confidentiality:data:variety" - - -class VerisTaxonomyConfidenceEntry(str, Enum): - HIGH = "High" - LOW = "Low" - MEDIUM = "Medium" - NONE = "None" - - -class VerisTaxonomyCostCorrectiveActionEntry(str, Enum): - DIFFICULT_AND_EXPENSIVE = "Difficult and expensive" - SIMPLE_AND_CHEAP = "Simple and cheap" - SOMETHING_IN_BETWEEN = "Something in-between" - UNKNOWN = "Unknown" - - -class VerisTaxonomyDiscoveryMethodEntry(str, Enum): - EXT___ACTOR_DISCLOSURE = "Ext - actor disclosure" - EXT___AUDIT = "Ext - audit" - EXT___CUSTOMER = "Ext - customer" - EXT___EMERGENCY_RESPONSE_TEAM = "Ext - emergency response team" - EXT___FOUND_DOCUMENTS = "Ext - found documents" - EXT___FRAUD_DETECTION = "Ext - fraud detection" - EXT___INCIDENT_RESPONSE = "Ext - incident response" - EXT___LAW_ENFORCEMENT = "Ext - law enforcement" - EXT___MONITORING_SERVICE = "Ext - monitoring service" - EXT___OTHER = "Ext - other" - EXT___SUSPICIOUS_TRAFFIC = "Ext - suspicious traffic" - EXT___UNKNOWN = "Ext - unknown" - EXT___UNRELATED_3RD_PARTY = "Ext - unrelated 3rd party" - INT___HIDS = "Int - HIDS" - INT___IT_REVIEW = "Int - IT review" - INT___NIDS = "Int - NIDS" - INT___ANTIVIRUS = "Int - antivirus" - INT___BREAK_IN_DISCOVERED = "Int - break in discovered" - INT___DATA_LOSS_PREVENTION = "Int - data loss prevention" - INT___FINANCIAL_AUDIT = "Int - financial audit" - INT___FRAUD_DETECTION = "Int - fraud detection" - INT___INCIDENT_RESPONSE = "Int - incident response" - INT___INFRASTRUCTURE_MONITORING = "Int - infrastructure monitoring" - INT___LOG_REVIEW = "Int - log review" - INT___OTHER = "Int - other" - INT___REPORTED_BY_EMPLOYEE = "Int - reported by employee" - INT___SECURITY_ALARM = "Int - security alarm" - INT___UNKNOWN = "Int - unknown" - OTHER = "Other" - PRT___ANTIVIRUS = "Prt - antivirus" - PRT___AUDIT = "Prt - audit" - PRT___INCIDENT_RESPONSE = "Prt - incident response" - PRT___MONITORING_SERVICE = "Prt - monitoring service" - PRT___OTHER = "Prt - other" - PRT___UNKNOWN = "Prt - unknown" - UNKNOWN = "Unknown" - - -class VerisTaxonomySecurityIncidentEntry(str, Enum): - CONFIRMED = "Confirmed" - FALSE_POSITIVE = "False positive" - NEAR_MISS = "Near miss" - SUSPECTED = "Suspected" - - -class VerisTaxonomyTargetedEntry(str, Enum): - NA = "NA" - OPPORTUNISTIC = "Opportunistic" - TARGETED = "Targeted" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAssetAccessibilityEntry(str, Enum): - EXTERNAL = "External" - INTERNAL = "Internal" - ISOLATED = "Isolated" - NA = "NA" - OTHER = "Other" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAssetCloudEntry(str, Enum): - CUSTOMER_ATTACK = "Customer attack" - HOSTING_ERROR = "Hosting error" - HOSTING_GOVERNANCE = "Hosting governance" - HYPERVISOR = "Hypervisor" - NA = "NA" - NO = "No" - OTHER = "Other" - PARTNER_APPLICATION = "Partner application" - UNKNOWN = "Unknown" - USER_BREAKOUT = "User breakout" - - -class VerisTaxonomyAssetCountryEntry(str, Enum): - AD = "AD" - AE = "AE" - AF = "AF" - AG = "AG" - AI = "AI" - AL = "AL" - AM = "AM" - AO = "AO" - AQ = "AQ" - AR = "AR" - AS = "AS" - AT = "AT" - AU = "AU" - AW = "AW" - AX = "AX" - AZ = "AZ" - BA = "BA" - BB = "BB" - BD = "BD" - BE = "BE" - BF = "BF" - BG = "BG" - BH = "BH" - BI = "BI" - BJ = "BJ" - BL = "BL" - BM = "BM" - BN = "BN" - BO = "BO" - BQ = "BQ" - BR = "BR" - BS = "BS" - BT = "BT" - BV = "BV" - BW = "BW" - BY = "BY" - BZ = "BZ" - CA = "CA" - CC = "CC" - CD = "CD" - CF = "CF" - CG = "CG" - CH = "CH" - CI = "CI" - CK = "CK" - CL = "CL" - CM = "CM" - CN = "CN" - CO = "CO" - CR = "CR" - CU = "CU" - CV = "CV" - CW = "CW" - CX = "CX" - CY = "CY" - CZ = "CZ" - DE = "DE" - DJ = "DJ" - DK = "DK" - DM = "DM" - DO = "DO" - DZ = "DZ" - EC = "EC" - EE = "EE" - EG = "EG" - EH = "EH" - ER = "ER" - ES = "ES" - ET = "ET" - FI = "FI" - FJ = "FJ" - FK = "FK" - FM = "FM" - FO = "FO" - FR = "FR" - GA = "GA" - GB = "GB" - GD = "GD" - GE = "GE" - GF = "GF" - GG = "GG" - GH = "GH" - GI = "GI" - GL = "GL" - GM = "GM" - GN = "GN" - GP = "GP" - GQ = "GQ" - GR = "GR" - GS = "GS" - GT = "GT" - GU = "GU" - GW = "GW" - GY = "GY" - HK = "HK" - HM = "HM" - HN = "HN" - HR = "HR" - HT = "HT" - HU = "HU" - ID = "ID" - IE = "IE" - IL = "IL" - IM = "IM" - IN = "IN" - IO = "IO" - IQ = "IQ" - IR = "IR" - IS = "IS" - IT = "IT" - JE = "JE" - JM = "JM" - JO = "JO" - JP = "JP" - KE = "KE" - KG = "KG" - KH = "KH" - KI = "KI" - KM = "KM" - KN = "KN" - KP = "KP" - KR = "KR" - KW = "KW" - KY = "KY" - KZ = "KZ" - LA = "LA" - LB = "LB" - LC = "LC" - LI = "LI" - LK = "LK" - LR = "LR" - LS = "LS" - LT = "LT" - LU = "LU" - LV = "LV" - LY = "LY" - MA = "MA" - MC = "MC" - MD = "MD" - ME = "ME" - MF = "MF" - MG = "MG" - MH = "MH" - MK = "MK" - ML = "ML" - MM = "MM" - MN = "MN" - MO = "MO" - MP = "MP" - MQ = "MQ" - MR = "MR" - MS = "MS" - MT = "MT" - MU = "MU" - MV = "MV" - MW = "MW" - MX = "MX" - MY = "MY" - MZ = "MZ" - NA = "NA" - NC = "NC" - NE = "NE" - NF = "NF" - NG = "NG" - NI = "NI" - NL = "NL" - NO = "NO" - NP = "NP" - NR = "NR" - NU = "NU" - NZ = "NZ" - OM = "OM" - OTHER = "Other" - PA = "PA" - PE = "PE" - PF = "PF" - PG = "PG" - PH = "PH" - PK = "PK" - PL = "PL" - PM = "PM" - PN = "PN" - PR = "PR" - PS = "PS" - PT = "PT" - PW = "PW" - PY = "PY" - QA = "QA" - RE = "RE" - RO = "RO" - RS = "RS" - RU = "RU" - RW = "RW" - SA = "SA" - SB = "SB" - SC = "SC" - SD = "SD" - SE = "SE" - SG = "SG" - SH = "SH" - SI = "SI" - SJ = "SJ" - SK = "SK" - SL = "SL" - SM = "SM" - SN = "SN" - SO = "SO" - SR = "SR" - SS = "SS" - ST = "ST" - SV = "SV" - SX = "SX" - SY = "SY" - SZ = "SZ" - TC = "TC" - TD = "TD" - TF = "TF" - TG = "TG" - TH = "TH" - TJ = "TJ" - TK = "TK" - TL = "TL" - TM = "TM" - TN = "TN" - TO = "TO" - TR = "TR" - TT = "TT" - TV = "TV" - TW = "TW" - TZ = "TZ" - UA = "UA" - UG = "UG" - UM = "UM" - US = "US" - UY = "UY" - UZ = "UZ" - UNKNOWN = "Unknown" - VA = "VA" - VC = "VC" - VE = "VE" - VG = "VG" - VI = "VI" - VN = "VN" - VU = "VU" - WF = "WF" - WS = "WS" - YE = "YE" - YT = "YT" - ZA = "ZA" - ZM = "ZM" - ZW = "ZW" - - -class VerisTaxonomyAssetGovernanceEntry(str, Enum): - T_3RD_PARTY_HOSTED = "3rd party hosted" - T_3RD_PARTY_MANAGED = "3rd party managed" - T_3RD_PARTY_OWNED = "3rd party owned" - INTERNALLY_ISOLATED = "Internally isolated" - OTHER = "Other" - PERSONALLY_OWNED = "Personally owned" - UNKNOWN = "Unknown" - VICTIM_GOVERNED = "Victim governed" - - -class VerisTaxonomyAssetHostingEntry(str, Enum): - EXTERNAL = "External" - EXTERNAL_DEDICATED = "External dedicated" - EXTERNAL_SHARED = "External shared" - INTERNAL = "Internal" - NA = "NA" - OTHER = "Other" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAssetManagementEntry(str, Enum): - EXTERNAL = "External" - INTERNAL = "Internal" - NA = "NA" - OTHER = "Other" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAssetOwnershipEntry(str, Enum): - CUSTOMER = "Customer" - EMPLOYEE = "Employee" - NA = "NA" - OTHER = "Other" - PARTNER = "Partner" - UNKNOWN = "Unknown" - VICTIM = "Victim" - - -class VerisTaxonomyImpactIsoCurrencyCodeEntry(str, Enum): - AED = "AED" - AFN = "AFN" - ALL = "ALL" - AMD = "AMD" - ANG = "ANG" - AOA = "AOA" - ARS = "ARS" - AUD = "AUD" - AWG = "AWG" - AZN = "AZN" - BAM = "BAM" - BBD = "BBD" - BDT = "BDT" - BGN = "BGN" - BHD = "BHD" - BIF = "BIF" - BMD = "BMD" - BND = "BND" - BOB = "BOB" - BRL = "BRL" - BSD = "BSD" - BTN = "BTN" - BWP = "BWP" - BYR = "BYR" - BZD = "BZD" - CAD = "CAD" - CDF = "CDF" - CHF = "CHF" - CLP = "CLP" - CNY = "CNY" - COP = "COP" - CRC = "CRC" - CUC = "CUC" - CUP = "CUP" - CVE = "CVE" - CZK = "CZK" - DJF = "DJF" - DKK = "DKK" - DOP = "DOP" - DZD = "DZD" - EGP = "EGP" - ERN = "ERN" - ETB = "ETB" - EUR = "EUR" - FJD = "FJD" - FKP = "FKP" - GBP = "GBP" - GEL = "GEL" - GGP = "GGP" - GHS = "GHS" - GIP = "GIP" - GMD = "GMD" - GNF = "GNF" - GTQ = "GTQ" - GYD = "GYD" - HKD = "HKD" - HNL = "HNL" - HRK = "HRK" - HTG = "HTG" - HUF = "HUF" - IDR = "IDR" - ILS = "ILS" - IMP = "IMP" - INR = "INR" - IQD = "IQD" - IRR = "IRR" - ISK = "ISK" - JEP = "JEP" - JMD = "JMD" - JOD = "JOD" - JPY = "JPY" - KES = "KES" - KGS = "KGS" - KHR = "KHR" - KMF = "KMF" - KPW = "KPW" - KRW = "KRW" - KWD = "KWD" - KYD = "KYD" - KZT = "KZT" - LAK = "LAK" - LBP = "LBP" - LKR = "LKR" - LRD = "LRD" - LSL = "LSL" - LTL = "LTL" - LVL = "LVL" - LYD = "LYD" - MAD = "MAD" - MDL = "MDL" - MGA = "MGA" - MKD = "MKD" - MMK = "MMK" - MNT = "MNT" - MOP = "MOP" - MRO = "MRO" - MUR = "MUR" - MVR = "MVR" - MWK = "MWK" - MXN = "MXN" - MYR = "MYR" - MZN = "MZN" - NAD = "NAD" - NGN = "NGN" - NIO = "NIO" - NOK = "NOK" - NPR = "NPR" - NZD = "NZD" - OMR = "OMR" - PAB = "PAB" - PEN = "PEN" - PGK = "PGK" - PHP = "PHP" - PKR = "PKR" - PLN = "PLN" - PYG = "PYG" - QAR = "QAR" - RON = "RON" - RSD = "RSD" - RUB = "RUB" - RWF = "RWF" - SAR = "SAR" - SBD = "SBD" - SCR = "SCR" - SDG = "SDG" - SEK = "SEK" - SGD = "SGD" - SHP = "SHP" - SLL = "SLL" - SOS = "SOS" - SPL = "SPL" - SRD = "SRD" - STD = "STD" - SVC = "SVC" - SYP = "SYP" - SZL = "SZL" - THB = "THB" - TJS = "TJS" - TMT = "TMT" - TND = "TND" - TOP = "TOP" - TRY = "TRY" - TTD = "TTD" - TVD = "TVD" - TWD = "TWD" - TZS = "TZS" - UAH = "UAH" - UGX = "UGX" - USD = "USD" - UYU = "UYU" - UZS = "UZS" - VEF = "VEF" - VND = "VND" - VUV = "VUV" - WST = "WST" - XAF = "XAF" - XCD = "XCD" - XDR = "XDR" - XOF = "XOF" - XPF = "XPF" - YER = "YER" - ZAR = "ZAR" - ZMK = "ZMK" - ZWD = "ZWD" - - -class VerisTaxonomyImpactOverallRatingEntry(str, Enum): - CATASTROPHIC = "Catastrophic" - DAMAGING = "Damaging" - DISTRACTING = "Distracting" - INSIGNIFICANT = "Insignificant" - PAINFUL = "Painful" - UNKNOWN = "Unknown" - - -class VerisTaxonomyVictimCountryEntry(str, Enum): - AD = "AD" - AE = "AE" - AF = "AF" - AG = "AG" - AI = "AI" - AL = "AL" - AM = "AM" - AO = "AO" - AQ = "AQ" - AR = "AR" - AS = "AS" - AT = "AT" - AU = "AU" - AW = "AW" - AX = "AX" - AZ = "AZ" - BA = "BA" - BB = "BB" - BD = "BD" - BE = "BE" - BF = "BF" - BG = "BG" - BH = "BH" - BI = "BI" - BJ = "BJ" - BL = "BL" - BM = "BM" - BN = "BN" - BO = "BO" - BQ = "BQ" - BR = "BR" - BS = "BS" - BT = "BT" - BV = "BV" - BW = "BW" - BY = "BY" - BZ = "BZ" - CA = "CA" - CC = "CC" - CD = "CD" - CF = "CF" - CG = "CG" - CH = "CH" - CI = "CI" - CK = "CK" - CL = "CL" - CM = "CM" - CN = "CN" - CO = "CO" - CR = "CR" - CU = "CU" - CV = "CV" - CW = "CW" - CX = "CX" - CY = "CY" - CZ = "CZ" - DE = "DE" - DJ = "DJ" - DK = "DK" - DM = "DM" - DO = "DO" - DZ = "DZ" - EC = "EC" - EE = "EE" - EG = "EG" - EH = "EH" - ER = "ER" - ES = "ES" - ET = "ET" - FI = "FI" - FJ = "FJ" - FK = "FK" - FM = "FM" - FO = "FO" - FR = "FR" - GA = "GA" - GB = "GB" - GD = "GD" - GE = "GE" - GF = "GF" - GG = "GG" - GH = "GH" - GI = "GI" - GL = "GL" - GM = "GM" - GN = "GN" - GP = "GP" - GQ = "GQ" - GR = "GR" - GS = "GS" - GT = "GT" - GU = "GU" - GW = "GW" - GY = "GY" - HK = "HK" - HM = "HM" - HN = "HN" - HR = "HR" - HT = "HT" - HU = "HU" - ID = "ID" - IE = "IE" - IL = "IL" - IM = "IM" - IN = "IN" - IO = "IO" - IQ = "IQ" - IR = "IR" - IS = "IS" - IT = "IT" - JE = "JE" - JM = "JM" - JO = "JO" - JP = "JP" - KE = "KE" - KG = "KG" - KH = "KH" - KI = "KI" - KM = "KM" - KN = "KN" - KP = "KP" - KR = "KR" - KW = "KW" - KY = "KY" - KZ = "KZ" - LA = "LA" - LB = "LB" - LC = "LC" - LI = "LI" - LK = "LK" - LR = "LR" - LS = "LS" - LT = "LT" - LU = "LU" - LV = "LV" - LY = "LY" - MA = "MA" - MC = "MC" - MD = "MD" - ME = "ME" - MF = "MF" - MG = "MG" - MH = "MH" - MK = "MK" - ML = "ML" - MM = "MM" - MN = "MN" - MO = "MO" - MP = "MP" - MQ = "MQ" - MR = "MR" - MS = "MS" - MT = "MT" - MU = "MU" - MV = "MV" - MW = "MW" - MX = "MX" - MY = "MY" - MZ = "MZ" - NA = "NA" - NC = "NC" - NE = "NE" - NF = "NF" - NG = "NG" - NI = "NI" - NL = "NL" - NO = "NO" - NP = "NP" - NR = "NR" - NU = "NU" - NZ = "NZ" - OM = "OM" - OTHER = "Other" - PA = "PA" - PE = "PE" - PF = "PF" - PG = "PG" - PH = "PH" - PK = "PK" - PL = "PL" - PM = "PM" - PN = "PN" - PR = "PR" - PS = "PS" - PT = "PT" - PW = "PW" - PY = "PY" - QA = "QA" - RE = "RE" - RO = "RO" - RS = "RS" - RU = "RU" - RW = "RW" - SA = "SA" - SB = "SB" - SC = "SC" - SD = "SD" - SE = "SE" - SG = "SG" - SH = "SH" - SI = "SI" - SJ = "SJ" - SK = "SK" - SL = "SL" - SM = "SM" - SN = "SN" - SO = "SO" - SR = "SR" - SS = "SS" - ST = "ST" - SV = "SV" - SX = "SX" - SY = "SY" - SZ = "SZ" - TC = "TC" - TD = "TD" - TF = "TF" - TG = "TG" - TH = "TH" - TJ = "TJ" - TK = "TK" - TL = "TL" - TM = "TM" - TN = "TN" - TO = "TO" - TR = "TR" - TT = "TT" - TV = "TV" - TW = "TW" - TZ = "TZ" - UA = "UA" - UG = "UG" - UM = "UM" - US = "US" - UY = "UY" - UZ = "UZ" - UNKNOWN = "Unknown" - VA = "VA" - VC = "VC" - VE = "VE" - VG = "VG" - VI = "VI" - VN = "VN" - VU = "VU" - WF = "WF" - WS = "WS" - YE = "YE" - YT = "YT" - ZA = "ZA" - ZM = "ZM" - ZW = "ZW" - - -class VerisTaxonomyVictimEmployeeCountEntry(str, Enum): - T_1_TO_10 = "1 to 10" - T_10001_TO_25000 = "10001 to 25000" - T_1001_TO_10000 = "1001 to 10000" - T_101_TO_1000 = "101 to 1000" - T_11_TO_100 = "11 to 100" - T_25001_TO_50000 = "25001 to 50000" - T_50001_TO_100000 = "50001 to 100000" - LARGE = "Large" - OVER_100000 = "Over 100000" - SMALL = "Small" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActionEnvironmentalVarietyEntry(str, Enum): - DETERIORATION = "Deterioration" - EMI = "EMI" - ESD = "ESD" - EARTHQUAKE = "Earthquake" - FIRE = "Fire" - FLOOD = "Flood" - HAZMAT = "Hazmat" - HUMIDITY = "Humidity" - HURRICANE = "Hurricane" - ICE = "Ice" - LANDSLIDE = "Landslide" - LEAK = "Leak" - LIGHTNING = "Lightning" - METEORITE = "Meteorite" - OTHER = "Other" - PARTICULATES = "Particulates" - PATHOGEN = "Pathogen" - POWER_FAILURE = "Power failure" - TEMPERATURE = "Temperature" - TORNADO = "Tornado" - TSUNAMI = "Tsunami" - UNKNOWN = "Unknown" - VERMIN = "Vermin" - VOLCANO = "Volcano" - WIND = "Wind" - - -class VerisTaxonomyActionErrorVarietyEntry(str, Enum): - CAPACITY_SHORTAGE = "Capacity shortage" - CLASSIFICATION_ERROR = "Classification error" - DATA_ENTRY_ERROR = "Data entry error" - DISPOSAL_ERROR = "Disposal error" - GAFFE = "Gaffe" - LOSS = "Loss" - MAINTENANCE_ERROR = "Maintenance error" - MALFUNCTION = "Malfunction" - MISCONFIGURATION = "Misconfiguration" - MISDELIVERY = "Misdelivery" - MISINFORMATION = "Misinformation" - OMISSION = "Omission" - OTHER = "Other" - PHYSICAL_ACCIDENTS = "Physical accidents" - PROGRAMMING_ERROR = "Programming error" - PUBLISHING_ERROR = "Publishing error" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActionErrorVectorEntry(str, Enum): - CARELESSNESS = "Carelessness" - INADEQUATE_PERSONNEL = "Inadequate personnel" - INADEQUATE_PROCESSES = "Inadequate processes" - INADEQUATE_TECHNOLOGY = "Inadequate technology" - OTHER = "Other" - RANDOM_ERROR = "Random error" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActionHackingResultEntry(str, Enum): - ELEVATE = "Elevate" - EXFILTRATE = "Exfiltrate" - INFILTRATE = "Infiltrate" - - -class VerisTaxonomyActionHackingVarietyEntry(str, Enum): - ABUSE_OF_FUNCTIONALITY = "Abuse of functionality" - BRUTE_FORCE = "Brute force" - BUFFER_OVERFLOW = "Buffer overflow" - CSRF = "CSRF" - CACHE_POISONING = "Cache poisoning" - CRYPTANALYSIS = "Cryptanalysis" - DO_S = "DoS" - FOOTPRINTING = "Footprinting" - FORCED_BROWSING = "Forced browsing" - FORMAT_STRING_ATTACK = "Format string attack" - FUZZ_TESTING = "Fuzz testing" - HTTP_RESPONSE_SPLITTING = "HTTP Response Splitting" - HTTP_REQUEST_SMUGGLING = "HTTP request smuggling" - HTTP_REQUEST_SPLITTING = "HTTP request splitting" - HTTP_RESPONSE_SMUGGLING = "HTTP response smuggling" - INTEGER_OVERFLOWS = "Integer overflows" - LDAP_INJECTION = "LDAP injection" - MAIL_COMMAND_INJECTION = "Mail command injection" - MIT_M = "MitM" - NULL_BYTE_INJECTION = "Null byte injection" - OS_COMMANDING = "OS commanding" - OFFLINE_CRACKING = "Offline cracking" - OTHER = "Other" - PASS_THE_HASH = "Pass-the-hash" - PATH_TRAVERSAL = "Path traversal" - RFI = "RFI" - REVERSE_ENGINEERING = "Reverse engineering" - ROUTING_DETOUR = "Routing detour" - SQLI = "SQLi" - SSI_INJECTION = "SSI injection" - SESSION_FIXATION = "Session fixation" - SESSION_PREDICTION = "Session prediction" - SESSION_REPLAY = "Session replay" - SOAP_ARRAY_ABUSE = "Soap array abuse" - SPECIAL_ELEMENT_INJECTION = "Special element injection" - URL_REDIRECTOR_ABUSE = "URL redirector abuse" - UNKNOWN = "Unknown" - USE_OF_BACKDOOR_OR_C2 = "Use of backdoor or C2" - USE_OF_STOLEN_CREDS = "Use of stolen creds" - VIRTUAL_MACHINE_ESCAPE = "Virtual machine escape" - XML_ATTRIBUTE_BLOWUP = "XML attribute blowup" - XML_ENTITY_EXPANSION = "XML entity expansion" - XML_EXTERNAL_ENTITIES = "XML external entities" - XML_INJECTION = "XML injection" - XPATH_INJECTION = "XPath injection" - XQUERY_INJECTION = "XQuery injection" - XSS = "XSS" - - -class VerisTaxonomyActionHackingVectorEntry(str, Enum): - T_3RD_PARTY_DESKTOP = "3rd party desktop" - BACKDOOR_OR_C2 = "Backdoor or C2" - COMMAND_SHELL = "Command shell" - DESKTOP_SHARING = "Desktop sharing" - DESKTOP_SHARING_SOFTWARE = "Desktop sharing software" - OTHER = "Other" - PARTNER = "Partner" - PHYSICAL_ACCESS = "Physical access" - UNKNOWN = "Unknown" - VPN = "VPN" - WEB_APPLICATION = "Web application" - - -class VerisTaxonomyActionMalwareResultEntry(str, Enum): - ELEVATE = "Elevate" - EXFILTRATE = "Exfiltrate" - INFILTRATE = "Infiltrate" - - -class VerisTaxonomyActionMalwareVarietyEntry(str, Enum): - ADMINWARE = "Adminware" - ADWARE = "Adware" - BACKDOOR = "Backdoor" - BRUTE_FORCE = "Brute force" - C2 = "C2" - CAPTURE_APP_DATA = "Capture app data" - CAPTURE_STORED_DATA = "Capture stored data" - CLICK_FRAUD = "Click fraud" - CLIENT_SIDE_ATTACK = "Client-side attack" - DESTROY_DATA = "Destroy data" - DISABLE_CONTROLS = "Disable controls" - DO_S = "DoS" - DOWNLOADER = "Downloader" - EXPLOIT_VULN = "Exploit vuln" - EXPORT_DATA = "Export data" - MODIFY_DATA = "Modify data" - OTHER = "Other" - PACKET_SNIFFER = "Packet sniffer" - PASSWORD_DUMPER = "Password dumper" - RAM_SCRAPER = "Ram scraper" - RANSOMWARE = "Ransomware" - ROOTKIT = "Rootkit" - SQL_INJECTION = "SQL injection" - SCAN_NETWORK = "Scan network" - SPAM = "Spam" - SPYWARE_KEYLOGGER = "Spyware/Keylogger" - UNKNOWN = "Unknown" - WORM = "Worm" - - -class VerisTaxonomyActionMalwareVectorEntry(str, Enum): - DIRECT_INSTALL = "Direct install" - DOWNLOAD_BY_MALWARE = "Download by malware" - EMAIL_ATTACHMENT = "Email attachment" - EMAIL_AUTOEXECUTE = "Email autoexecute" - EMAIL_LINK = "Email link" - EMAIL_UNKNOWN = "Email unknown" - INSTANT_MESSAGING = "Instant messaging" - NETWORK_PROPAGATION = "Network propagation" - OTHER = "Other" - REMOTE_INJECTION = "Remote injection" - REMOVABLE_MEDIA = "Removable media" - SOFTWARE_UPDATE = "Software update" - UNKNOWN = "Unknown" - WEB_DOWNLOAD = "Web download" - WEB_DRIVE_BY = "Web drive-by" - - -class VerisTaxonomyActionMisuseResultEntry(str, Enum): - ELEVATE = "Elevate" - EXFILTRATE = "Exfiltrate" - INFILTRATE = "Infiltrate" - - -class VerisTaxonomyActionMisuseVarietyEntry(str, Enum): - DATA_MISHANDLING = "Data mishandling" - EMAIL_MISUSE = "Email misuse" - ILLICIT_CONTENT = "Illicit content" - KNOWLEDGE_ABUSE = "Knowledge abuse" - NET_MISUSE = "Net misuse" - OTHER = "Other" - POSSESSION_ABUSE = "Possession abuse" - PRIVILEGE_ABUSE = "Privilege abuse" - UNAPPROVED_HARDWARE = "Unapproved hardware" - UNAPPROVED_SOFTWARE = "Unapproved software" - UNAPPROVED_WORKAROUND = "Unapproved workaround" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActionMisuseVectorEntry(str, Enum): - LAN_ACCESS = "LAN access" - NON_CORPORATE = "Non-corporate" - OTHER = "Other" - PHYSICAL_ACCESS = "Physical access" - REMOTE_ACCESS = "Remote access" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActionPhysicalResultEntry(str, Enum): - ELEVATE = "Elevate" - EXFILTRATE = "Exfiltrate" - INFILTRATE = "Infiltrate" - - -class VerisTaxonomyActionPhysicalVarietyEntry(str, Enum): - ASSAULT = "Assault" - BYPASSED_CONTROLS = "Bypassed controls" - CONNECTION = "Connection" - DESTRUCTION = "Destruction" - DISABLED_CONTROLS = "Disabled controls" - OTHER = "Other" - SKIMMER = "Skimmer" - SNOOPING = "Snooping" - SURVEILLANCE = "Surveillance" - TAMPERING = "Tampering" - THEFT = "Theft" - UNKNOWN = "Unknown" - WIRETAPPING = "Wiretapping" - - -class VerisTaxonomyActionPhysicalVectorEntry(str, Enum): - OTHER = "Other" - PARTNER_FACILITY = "Partner facility" - PARTNER_VEHICLE = "Partner vehicle" - PERSONAL_RESIDENCE = "Personal residence" - PERSONAL_VEHICLE = "Personal vehicle" - PRIVILEGED_ACCESS = "Privileged access" - PUBLIC_FACILITY = "Public facility" - PUBLIC_VEHICLE = "Public vehicle" - UNCONTROLLED_LOCATION = "Uncontrolled location" - UNKNOWN = "Unknown" - VICTIM_GROUNDS = "Victim grounds" - VICTIM_PUBLIC_AREA = "Victim public area" - VICTIM_SECURE_AREA = "Victim secure area" - VICTIM_WORK_AREA = "Victim work area" - VISITOR_PRIVILEGES = "Visitor privileges" - - -class VerisTaxonomyActionSocialResultEntry(str, Enum): - ELEVATE = "Elevate" - EXFILTRATE = "Exfiltrate" - INFILTRATE = "Infiltrate" - - -class VerisTaxonomyActionSocialTargetEntry(str, Enum): - AUDITOR = "Auditor" - CALL_CENTER = "Call center" - CASHIER = "Cashier" - CUSTOMER = "Customer" - DEVELOPER = "Developer" - END_USER = "End-user" - EXECUTIVE = "Executive" - FINANCE = "Finance" - FORMER_EMPLOYEE = "Former employee" - GUARD = "Guard" - HELPDESK = "Helpdesk" - HUMAN_RESOURCES = "Human resources" - MAINTENANCE = "Maintenance" - MANAGER = "Manager" - OTHER = "Other" - PARTNER = "Partner" - SYSTEM_ADMIN = "System admin" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActionSocialVarietyEntry(str, Enum): - BAITING = "Baiting" - BRIBERY = "Bribery" - ELICITATION = "Elicitation" - EXTORTION = "Extortion" - FORGERY = "Forgery" - INFLUENCE = "Influence" - OTHER = "Other" - PHISHING = "Phishing" - PRETEXTING = "Pretexting" - PROPAGANDA = "Propaganda" - SCAM = "Scam" - SPAM = "Spam" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActionSocialVectorEntry(str, Enum): - DOCUMENTS = "Documents" - EMAIL = "Email" - IM = "IM" - IN_PERSON = "In-person" - OTHER = "Other" - PHONE = "Phone" - REMOVABLE_MEDIA = "Removable media" - SMS = "SMS" - SOCIAL_MEDIA = "Social media" - SOFTWARE = "Software" - UNKNOWN = "Unknown" - WEBSITE = "Website" - - -class VerisTaxonomyActionUnknownResultEntry(str, Enum): - ELEVATE = "Elevate" - EXFILTRATE = "Exfiltrate" - INFILTRATE = "Infiltrate" - - -class VerisTaxonomyActorExternalCountryEntry(str, Enum): - AD = "AD" - AE = "AE" - AF = "AF" - AG = "AG" - AI = "AI" - AL = "AL" - AM = "AM" - AO = "AO" - AQ = "AQ" - AR = "AR" - AS = "AS" - AT = "AT" - AU = "AU" - AW = "AW" - AX = "AX" - AZ = "AZ" - BA = "BA" - BB = "BB" - BD = "BD" - BE = "BE" - BF = "BF" - BG = "BG" - BH = "BH" - BI = "BI" - BJ = "BJ" - BL = "BL" - BM = "BM" - BN = "BN" - BO = "BO" - BQ = "BQ" - BR = "BR" - BS = "BS" - BT = "BT" - BV = "BV" - BW = "BW" - BY = "BY" - BZ = "BZ" - CA = "CA" - CC = "CC" - CD = "CD" - CF = "CF" - CG = "CG" - CH = "CH" - CI = "CI" - CK = "CK" - CL = "CL" - CM = "CM" - CN = "CN" - CO = "CO" - CR = "CR" - CU = "CU" - CV = "CV" - CW = "CW" - CX = "CX" - CY = "CY" - CZ = "CZ" - DE = "DE" - DJ = "DJ" - DK = "DK" - DM = "DM" - DO = "DO" - DZ = "DZ" - EC = "EC" - EE = "EE" - EG = "EG" - EH = "EH" - ER = "ER" - ES = "ES" - ET = "ET" - FI = "FI" - FJ = "FJ" - FK = "FK" - FM = "FM" - FO = "FO" - FR = "FR" - GA = "GA" - GB = "GB" - GD = "GD" - GE = "GE" - GF = "GF" - GG = "GG" - GH = "GH" - GI = "GI" - GL = "GL" - GM = "GM" - GN = "GN" - GP = "GP" - GQ = "GQ" - GR = "GR" - GS = "GS" - GT = "GT" - GU = "GU" - GW = "GW" - GY = "GY" - HK = "HK" - HM = "HM" - HN = "HN" - HR = "HR" - HT = "HT" - HU = "HU" - ID = "ID" - IE = "IE" - IL = "IL" - IM = "IM" - IN = "IN" - IO = "IO" - IQ = "IQ" - IR = "IR" - IS = "IS" - IT = "IT" - JE = "JE" - JM = "JM" - JO = "JO" - JP = "JP" - KE = "KE" - KG = "KG" - KH = "KH" - KI = "KI" - KM = "KM" - KN = "KN" - KP = "KP" - KR = "KR" - KW = "KW" - KY = "KY" - KZ = "KZ" - LA = "LA" - LB = "LB" - LC = "LC" - LI = "LI" - LK = "LK" - LR = "LR" - LS = "LS" - LT = "LT" - LU = "LU" - LV = "LV" - LY = "LY" - MA = "MA" - MC = "MC" - MD = "MD" - ME = "ME" - MF = "MF" - MG = "MG" - MH = "MH" - MK = "MK" - ML = "ML" - MM = "MM" - MN = "MN" - MO = "MO" - MP = "MP" - MQ = "MQ" - MR = "MR" - MS = "MS" - MT = "MT" - MU = "MU" - MV = "MV" - MW = "MW" - MX = "MX" - MY = "MY" - MZ = "MZ" - NA = "NA" - NC = "NC" - NE = "NE" - NF = "NF" - NG = "NG" - NI = "NI" - NL = "NL" - NO = "NO" - NP = "NP" - NR = "NR" - NU = "NU" - NZ = "NZ" - OM = "OM" - OTHER = "Other" - PA = "PA" - PE = "PE" - PF = "PF" - PG = "PG" - PH = "PH" - PK = "PK" - PL = "PL" - PM = "PM" - PN = "PN" - PR = "PR" - PS = "PS" - PT = "PT" - PW = "PW" - PY = "PY" - QA = "QA" - RE = "RE" - RO = "RO" - RS = "RS" - RU = "RU" - RW = "RW" - SA = "SA" - SB = "SB" - SC = "SC" - SD = "SD" - SE = "SE" - SG = "SG" - SH = "SH" - SI = "SI" - SJ = "SJ" - SK = "SK" - SL = "SL" - SM = "SM" - SN = "SN" - SO = "SO" - SR = "SR" - SS = "SS" - ST = "ST" - SV = "SV" - SX = "SX" - SY = "SY" - SZ = "SZ" - TC = "TC" - TD = "TD" - TF = "TF" - TG = "TG" - TH = "TH" - TJ = "TJ" - TK = "TK" - TL = "TL" - TM = "TM" - TN = "TN" - TO = "TO" - TR = "TR" - TT = "TT" - TV = "TV" - TW = "TW" - TZ = "TZ" - UA = "UA" - UG = "UG" - UM = "UM" - US = "US" - UY = "UY" - UZ = "UZ" - UNKNOWN = "Unknown" - VA = "VA" - VC = "VC" - VE = "VE" - VG = "VG" - VI = "VI" - VN = "VN" - VU = "VU" - WF = "WF" - WS = "WS" - YE = "YE" - YT = "YT" - ZA = "ZA" - ZM = "ZM" - ZW = "ZW" - - -class VerisTaxonomyActorExternalMotiveEntry(str, Enum): - CONVENIENCE = "Convenience" - ESPIONAGE = "Espionage" - FEAR = "Fear" - FINANCIAL = "Financial" - FUN = "Fun" - GRUDGE = "Grudge" - IDEOLOGY = "Ideology" - NA = "NA" - OTHER = "Other" - SECONDARY = "Secondary" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActorExternalVarietyEntry(str, Enum): - ACQUAINTANCE = "Acquaintance" - ACTIVIST = "Activist" - AUDITOR = "Auditor" - COMPETITOR = "Competitor" - CUSTOMER = "Customer" - FORCE_MAJEURE = "Force majeure" - FORMER_EMPLOYEE = "Former employee" - NATION_STATE = "Nation-state" - ORGANIZED_CRIME = "Organized crime" - OTHER = "Other" - STATE_AFFILIATED = "State-affiliated" - TERRORIST = "Terrorist" - UNAFFILIATED = "Unaffiliated" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActorInternalJobChangeEntry(str, Enum): - DEMOTED = "Demoted" - HIRED = "Hired" - JOB_EVAL = "Job eval" - LATERAL_MOVE = "Lateral move" - LET_GO = "Let go" - OTHER = "Other" - PASSED_OVER = "Passed over" - PERSONAL_ISSUES = "Personal issues" - PROMOTED = "Promoted" - REPRIMANDED = "Reprimanded" - RESIGNED = "Resigned" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActorInternalMotiveEntry(str, Enum): - CONVENIENCE = "Convenience" - ESPIONAGE = "Espionage" - FEAR = "Fear" - FINANCIAL = "Financial" - FUN = "Fun" - GRUDGE = "Grudge" - IDEOLOGY = "Ideology" - NA = "NA" - OTHER = "Other" - SECONDARY = "Secondary" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActorInternalVarietyEntry(str, Enum): - AUDITOR = "Auditor" - CALL_CENTER = "Call center" - CASHIER = "Cashier" - DEVELOPER = "Developer" - DOCTOR_OR_NURSE = "Doctor or nurse" - END_USER = "End-user" - EXECUTIVE = "Executive" - FINANCE = "Finance" - GUARD = "Guard" - HELPDESK = "Helpdesk" - HUMAN_RESOURCES = "Human resources" - MAINTENANCE = "Maintenance" - MANAGER = "Manager" - OTHER = "Other" - SYSTEM_ADMIN = "System admin" - UNKNOWN = "Unknown" - - -class VerisTaxonomyActorPartnerCountryEntry(str, Enum): - AD = "AD" - AE = "AE" - AF = "AF" - AG = "AG" - AI = "AI" - AL = "AL" - AM = "AM" - AO = "AO" - AQ = "AQ" - AR = "AR" - AS = "AS" - AT = "AT" - AU = "AU" - AW = "AW" - AX = "AX" - AZ = "AZ" - BA = "BA" - BB = "BB" - BD = "BD" - BE = "BE" - BF = "BF" - BG = "BG" - BH = "BH" - BI = "BI" - BJ = "BJ" - BL = "BL" - BM = "BM" - BN = "BN" - BO = "BO" - BQ = "BQ" - BR = "BR" - BS = "BS" - BT = "BT" - BV = "BV" - BW = "BW" - BY = "BY" - BZ = "BZ" - CA = "CA" - CC = "CC" - CD = "CD" - CF = "CF" - CG = "CG" - CH = "CH" - CI = "CI" - CK = "CK" - CL = "CL" - CM = "CM" - CN = "CN" - CO = "CO" - CR = "CR" - CU = "CU" - CV = "CV" - CW = "CW" - CX = "CX" - CY = "CY" - CZ = "CZ" - DE = "DE" - DJ = "DJ" - DK = "DK" - DM = "DM" - DO = "DO" - DZ = "DZ" - EC = "EC" - EE = "EE" - EG = "EG" - EH = "EH" - ER = "ER" - ES = "ES" - ET = "ET" - FI = "FI" - FJ = "FJ" - FK = "FK" - FM = "FM" - FO = "FO" - FR = "FR" - GA = "GA" - GB = "GB" - GD = "GD" - GE = "GE" - GF = "GF" - GG = "GG" - GH = "GH" - GI = "GI" - GL = "GL" - GM = "GM" - GN = "GN" - GP = "GP" - GQ = "GQ" - GR = "GR" - GS = "GS" - GT = "GT" - GU = "GU" - GW = "GW" - GY = "GY" - HK = "HK" - HM = "HM" - HN = "HN" - HR = "HR" - HT = "HT" - HU = "HU" - ID = "ID" - IE = "IE" - IL = "IL" - IM = "IM" - IN = "IN" - IO = "IO" - IQ = "IQ" - IR = "IR" - IS = "IS" - IT = "IT" - JE = "JE" - JM = "JM" - JO = "JO" - JP = "JP" - KE = "KE" - KG = "KG" - KH = "KH" - KI = "KI" - KM = "KM" - KN = "KN" - KP = "KP" - KR = "KR" - KW = "KW" - KY = "KY" - KZ = "KZ" - LA = "LA" - LB = "LB" - LC = "LC" - LI = "LI" - LK = "LK" - LR = "LR" - LS = "LS" - LT = "LT" - LU = "LU" - LV = "LV" - LY = "LY" - MA = "MA" - MC = "MC" - MD = "MD" - ME = "ME" - MF = "MF" - MG = "MG" - MH = "MH" - MK = "MK" - ML = "ML" - MM = "MM" - MN = "MN" - MO = "MO" - MP = "MP" - MQ = "MQ" - MR = "MR" - MS = "MS" - MT = "MT" - MU = "MU" - MV = "MV" - MW = "MW" - MX = "MX" - MY = "MY" - MZ = "MZ" - NA = "NA" - NC = "NC" - NE = "NE" - NF = "NF" - NG = "NG" - NI = "NI" - NL = "NL" - NO = "NO" - NP = "NP" - NR = "NR" - NU = "NU" - NZ = "NZ" - OM = "OM" - OTHER = "Other" - PA = "PA" - PE = "PE" - PF = "PF" - PG = "PG" - PH = "PH" - PK = "PK" - PL = "PL" - PM = "PM" - PN = "PN" - PR = "PR" - PS = "PS" - PT = "PT" - PW = "PW" - PY = "PY" - QA = "QA" - RE = "RE" - RO = "RO" - RS = "RS" - RU = "RU" - RW = "RW" - SA = "SA" - SB = "SB" - SC = "SC" - SD = "SD" - SE = "SE" - SG = "SG" - SH = "SH" - SI = "SI" - SJ = "SJ" - SK = "SK" - SL = "SL" - SM = "SM" - SN = "SN" - SO = "SO" - SR = "SR" - SS = "SS" - ST = "ST" - SV = "SV" - SX = "SX" - SY = "SY" - SZ = "SZ" - TC = "TC" - TD = "TD" - TF = "TF" - TG = "TG" - TH = "TH" - TJ = "TJ" - TK = "TK" - TL = "TL" - TM = "TM" - TN = "TN" - TO = "TO" - TR = "TR" - TT = "TT" - TV = "TV" - TW = "TW" - TZ = "TZ" - UA = "UA" - UG = "UG" - UM = "UM" - US = "US" - UY = "UY" - UZ = "UZ" - UNKNOWN = "Unknown" - VA = "VA" - VC = "VC" - VE = "VE" - VG = "VG" - VI = "VI" - VN = "VN" - VU = "VU" - WF = "WF" - WS = "WS" - YE = "YE" - YT = "YT" - ZA = "ZA" - ZM = "ZM" - ZW = "ZW" - - -class VerisTaxonomyActorPartnerMotiveEntry(str, Enum): - CONVENIENCE = "Convenience" - ESPIONAGE = "Espionage" - FEAR = "Fear" - FINANCIAL = "Financial" - FUN = "Fun" - GRUDGE = "Grudge" - IDEOLOGY = "Ideology" - NA = "NA" - OTHER = "Other" - SECONDARY = "Secondary" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAssetAssetsVarietyEntry(str, Enum): - E___OTHER = "E - Other" - E___TELEMATICS = "E - Telematics" - E___TELEMETRY = "E - Telemetry" - E___UNKNOWN = "E - Unknown" - M___DISK_DRIVE = "M - Disk drive" - M___DISK_MEDIA = "M - Disk media" - M___DOCUMENTS = "M - Documents" - M___FAX = "M - Fax" - M___FLASH_DRIVE = "M - Flash drive" - M___OTHER = "M - Other" - M___PAYMENT_CARD = "M - Payment card" - M___SMART_CARD = "M - Smart card" - M___TAPES = "M - Tapes" - M___UNKNOWN = "M - Unknown" - N___ACCESS_READER = "N - Access reader" - N___BROADBAND = "N - Broadband" - N___CAMERA = "N - Camera" - N___FIREWALL = "N - Firewall" - N___HSM = "N - HSM" - N___IDS = "N - IDS" - N___LAN = "N - LAN" - N___NAS = "N - NAS" - N___OTHER = "N - Other" - N___PBX = "N - PBX" - N___PLC = "N - PLC" - N___PRIVATE_WAN = "N - Private WAN" - N___PUBLIC_WAN = "N - Public WAN" - N___RTU = "N - RTU" - N___ROUTER_OR_SWITCH = "N - Router or switch" - N___SAN = "N - SAN" - N___TELEPHONE = "N - Telephone" - N___UNKNOWN = "N - Unknown" - N___VO_IP_ADAPTER = "N - VoIP adapter" - N___WLAN = "N - WLAN" - OTHER = "Other" - P___AUDITOR = "P - Auditor" - P___CALL_CENTER = "P - Call center" - P___CASHIER = "P - Cashier" - P___CUSTOMER = "P - Customer" - P___DEVELOPER = "P - Developer" - P___END_USER = "P - End-user" - P___EXECUTIVE = "P - Executive" - P___FINANCE = "P - Finance" - P___FORMER_EMPLOYEE = "P - Former employee" - P___GUARD = "P - Guard" - P___HELPDESK = "P - Helpdesk" - P___HUMAN_RESOURCES = "P - Human resources" - P___MAINTENANCE = "P - Maintenance" - P___MANAGER = "P - Manager" - P___OTHER = "P - Other" - P___PARTNER = "P - Partner" - P___SYSTEM_ADMIN = "P - System admin" - P___UNKNOWN = "P - Unknown" - S___AUTHENTICATION = "S - Authentication" - S___BACKUP = "S - Backup" - S___CODE_REPOSITORY = "S - Code repository" - S___CONFIGURATION_OR_PATCH_MANAGEMENT = "S - Configuration or patch management" - S___DCS = "S - DCS" - S___DHCP = "S - DHCP" - S___DNS = "S - DNS" - S___DATABASE = "S - Database" - S___DIRECTORY = "S - Directory" - S___FILE = "S - File" - S___ICS = "S - ICS" - S___LOG = "S - Log" - S___MAIL = "S - Mail" - S___MAINFRAME = "S - Mainframe" - S___OTHER = "S - Other" - S___POS_CONTROLLER = "S - POS controller" - S___PAYMENT_SWITCH = "S - Payment switch" - S___PRINT = "S - Print" - S___PROXY = "S - Proxy" - S___REMOTE_ACCESS = "S - Remote access" - S___UNKNOWN = "S - Unknown" - S___VM_HOST = "S - VM host" - S___WEB_APPLICATION = "S - Web application" - T___ATM = "T - ATM" - T___GAS_TERMINAL = "T - Gas terminal" - T___KIOSK = "T - Kiosk" - T___OTHER = "T - Other" - T___PED_PAD = "T - PED pad" - T___UNKNOWN = "T - Unknown" - U___AUTH_TOKEN = "U - Auth token" - U___DESKTOP = "U - Desktop" - U___LAPTOP = "U - Laptop" - U___MEDIA = "U - Media" - U___MOBILE_PHONE = "U - Mobile phone" - U___OTHER = "U - Other" - U___POS_TERMINAL = "U - POS terminal" - U___PERIPHERAL = "U - Peripheral" - U___TABLET = "U - Tablet" - U___TELEPHONE = "U - Telephone" - U___UNKNOWN = "U - Unknown" - U___VO_IP_PHONE = "U - VoIP phone" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAttributeAvailabilityVarietyEntry(str, Enum): - ACCELERATION = "Acceleration" - DEGRADATION = "Degradation" - DESTRUCTION = "Destruction" - INTERRUPTION = "Interruption" - LOSS = "Loss" - OBSCURATION = "Obscuration" - OTHER = "Other" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAttributeConfidentialityDataDisclosureEntry(str, Enum): - NO = "No" - POTENTIALLY = "Potentially" - UNKNOWN = "Unknown" - YES = "Yes" - - -class VerisTaxonomyAttributeConfidentialityDataVictimEntry(str, Enum): - CUSTOMER = "Customer" - EMPLOYEE = "Employee" - OTHER = "Other" - PARTNER = "Partner" - PATIENT = "Patient" - STUDENT = "Student" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAttributeConfidentialityStateEntry(str, Enum): - OTHER = "Other" - PRINTED = "Printed" - PROCESSED = "Processed" - STORED = "Stored" - STORED_ENCRYPTED = "Stored encrypted" - STORED_UNENCRYPTED = "Stored unencrypted" - TRANSMITTED = "Transmitted" - TRANSMITTED_ENCRYPTED = "Transmitted encrypted" - TRANSMITTED_UNENCRYPTED = "Transmitted unencrypted" - UNKNOWN = "Unknown" - - -class VerisTaxonomyAttributeIntegrityVarietyEntry(str, Enum): - ALTER_BEHAVIOR = "Alter behavior" - CREATED_ACCOUNT = "Created account" - DEFACEMENT = "Defacement" - FRAUDULENT_TRANSACTION = "Fraudulent transaction" - HARDWARE_TAMPERING = "Hardware tampering" - LOG_TAMPERING = "Log tampering" - MISREPRESENTATION = "Misrepresentation" - MODIFY_CONFIGURATION = "Modify configuration" - MODIFY_DATA = "Modify data" - MODIFY_PRIVILEGES = "Modify privileges" - OTHER = "Other" - REPURPOSE = "Repurpose" - SOFTWARE_INSTALLATION = "Software installation" - UNKNOWN = "Unknown" - - -class VerisTaxonomyImpactLossRatingEntry(str, Enum): - MAJOR = "Major" - MINOR = "Minor" - MODERATE = "Moderate" - NONE = "None" - UNKNOWN = "Unknown" - - -class VerisTaxonomyImpactLossVarietyEntry(str, Enum): - ASSET_AND_FRAUD = "Asset and fraud" - BRAND_DAMAGE = "Brand damage" - BUSINESS_DISRUPTION = "Business disruption" - COMPETITIVE_ADVANTAGE = "Competitive advantage" - LEGAL_AND_REGULATORY = "Legal and regulatory" - OPERATING_COSTS = "Operating costs" - OTHER = "Other" - RESPONSE_AND_RECOVERY = "Response and recovery" - - -class VerisTaxonomyTimelineCompromiseUnitEntry(str, Enum): - DAYS = "Days" - HOURS = "Hours" - MINUTES = "Minutes" - MONTHS = "Months" - NA = "NA" - NEVER = "Never" - SECONDS = "Seconds" - UNKNOWN = "Unknown" - WEEKS = "Weeks" - YEARS = "Years" - - -class VerisTaxonomyTimelineContainmentUnitEntry(str, Enum): - DAYS = "Days" - HOURS = "Hours" - MINUTES = "Minutes" - MONTHS = "Months" - NA = "NA" - NEVER = "Never" - SECONDS = "Seconds" - UNKNOWN = "Unknown" - WEEKS = "Weeks" - YEARS = "Years" - - -class VerisTaxonomyTimelineDiscoveryUnitEntry(str, Enum): - DAYS = "Days" - HOURS = "Hours" - MINUTES = "Minutes" - MONTHS = "Months" - NA = "NA" - NEVER = "Never" - SECONDS = "Seconds" - UNKNOWN = "Unknown" - WEEKS = "Weeks" - YEARS = "Years" - - -class VerisTaxonomyTimelineExfiltrationUnitEntry(str, Enum): - DAYS = "Days" - HOURS = "Hours" - MINUTES = "Minutes" - MONTHS = "Months" - NA = "NA" - NEVER = "Never" - SECONDS = "Seconds" - UNKNOWN = "Unknown" - WEEKS = "Weeks" - YEARS = "Years" - - -class VerisTaxonomyVictimRevenueIsoCurrencyCodeEntry(str, Enum): - AED = "AED" - AFN = "AFN" - ALL = "ALL" - AMD = "AMD" - ANG = "ANG" - AOA = "AOA" - ARS = "ARS" - AUD = "AUD" - AWG = "AWG" - AZN = "AZN" - BAM = "BAM" - BBD = "BBD" - BDT = "BDT" - BGN = "BGN" - BHD = "BHD" - BIF = "BIF" - BMD = "BMD" - BND = "BND" - BOB = "BOB" - BRL = "BRL" - BSD = "BSD" - BTN = "BTN" - BWP = "BWP" - BYR = "BYR" - BZD = "BZD" - CAD = "CAD" - CDF = "CDF" - CHF = "CHF" - CLP = "CLP" - CNY = "CNY" - COP = "COP" - CRC = "CRC" - CUC = "CUC" - CUP = "CUP" - CVE = "CVE" - CZK = "CZK" - DJF = "DJF" - DKK = "DKK" - DOP = "DOP" - DZD = "DZD" - EGP = "EGP" - ERN = "ERN" - ETB = "ETB" - EUR = "EUR" - FJD = "FJD" - FKP = "FKP" - GBP = "GBP" - GEL = "GEL" - GGP = "GGP" - GHS = "GHS" - GIP = "GIP" - GMD = "GMD" - GNF = "GNF" - GTQ = "GTQ" - GYD = "GYD" - HKD = "HKD" - HNL = "HNL" - HRK = "HRK" - HTG = "HTG" - HUF = "HUF" - IDR = "IDR" - ILS = "ILS" - IMP = "IMP" - INR = "INR" - IQD = "IQD" - IRR = "IRR" - ISK = "ISK" - JEP = "JEP" - JMD = "JMD" - JOD = "JOD" - JPY = "JPY" - KES = "KES" - KGS = "KGS" - KHR = "KHR" - KMF = "KMF" - KPW = "KPW" - KRW = "KRW" - KWD = "KWD" - KYD = "KYD" - KZT = "KZT" - LAK = "LAK" - LBP = "LBP" - LKR = "LKR" - LRD = "LRD" - LSL = "LSL" - LTL = "LTL" - LVL = "LVL" - LYD = "LYD" - MAD = "MAD" - MDL = "MDL" - MGA = "MGA" - MKD = "MKD" - MMK = "MMK" - MNT = "MNT" - MOP = "MOP" - MRO = "MRO" - MUR = "MUR" - MVR = "MVR" - MWK = "MWK" - MXN = "MXN" - MYR = "MYR" - MZN = "MZN" - NAD = "NAD" - NGN = "NGN" - NIO = "NIO" - NOK = "NOK" - NPR = "NPR" - NZD = "NZD" - OMR = "OMR" - PAB = "PAB" - PEN = "PEN" - PGK = "PGK" - PHP = "PHP" - PKR = "PKR" - PLN = "PLN" - PYG = "PYG" - QAR = "QAR" - RON = "RON" - RSD = "RSD" - RUB = "RUB" - RWF = "RWF" - SAR = "SAR" - SBD = "SBD" - SCR = "SCR" - SDG = "SDG" - SEK = "SEK" - SGD = "SGD" - SHP = "SHP" - SLL = "SLL" - SOS = "SOS" - SPL = "SPL" - SRD = "SRD" - STD = "STD" - SVC = "SVC" - SYP = "SYP" - SZL = "SZL" - THB = "THB" - TJS = "TJS" - TMT = "TMT" - TND = "TND" - TOP = "TOP" - TRY = "TRY" - TTD = "TTD" - TVD = "TVD" - TWD = "TWD" - TZS = "TZS" - UAH = "UAH" - UGX = "UGX" - USD = "USD" - UYU = "UYU" - UZS = "UZS" - VEF = "VEF" - VND = "VND" - VUV = "VUV" - WST = "WST" - XAF = "XAF" - XCD = "XCD" - XDR = "XDR" - XOF = "XOF" - XPF = "XPF" - YER = "YER" - ZAR = "ZAR" - ZMK = "ZMK" - ZWD = "ZWD" - - -class VerisTaxonomyAttributeAvailabilityDurationUnitEntry(str, Enum): - DAYS = "Days" - HOURS = "Hours" - MINUTES = "Minutes" - MONTHS = "Months" - NA = "NA" - NEVER = "Never" - SECONDS = "Seconds" - UNKNOWN = "Unknown" - WEEKS = "Weeks" - YEARS = "Years" - - -class VerisTaxonomyAttributeConfidentialityDataVarietyEntry(str, Enum): - BANK = "Bank" - CLASSIFIED = "Classified" - COPYRIGHTED = "Copyrighted" - CREDENTIALS = "Credentials" - DIGITAL_CERTIFICATE = "Digital certificate" - INTERNAL = "Internal" - MEDICAL = "Medical" - OTHER = "Other" - PAYMENT = "Payment" - PERSONAL = "Personal" - SECRETS = "Secrets" - SOURCE_CODE = "Source code" - SYSTEM = "System" - UNKNOWN = "Unknown" - VIRTUAL_CURRENCY = "Virtual currency" - - -class VerisTaxonomy(BaseModel): - """Model for the veris taxonomy.""" - - namespace: str = "veris" - description: str = """Vocabulary for Event Recording and Incident Sharing (VERIS)""" - version: int = 2 - exclusive: bool = False - predicates: List[VerisTaxonomyPredicate] = [] - confidence_entries: List[VerisTaxonomyConfidenceEntry] = [] - cost_corrective_action_entries: List[VerisTaxonomyCostCorrectiveActionEntry] = [] - discovery_method_entries: List[VerisTaxonomyDiscoveryMethodEntry] = [] - security_incident_entries: List[VerisTaxonomySecurityIncidentEntry] = [] - targeted_entries: List[VerisTaxonomyTargetedEntry] = [] - asset_accessibility_entries: List[VerisTaxonomyAssetAccessibilityEntry] = [] - asset_cloud_entries: List[VerisTaxonomyAssetCloudEntry] = [] - asset_country_entries: List[VerisTaxonomyAssetCountryEntry] = [] - asset_governance_entries: List[VerisTaxonomyAssetGovernanceEntry] = [] - asset_hosting_entries: List[VerisTaxonomyAssetHostingEntry] = [] - asset_management_entries: List[VerisTaxonomyAssetManagementEntry] = [] - asset_ownership_entries: List[VerisTaxonomyAssetOwnershipEntry] = [] - impact_iso_currency_code_entries: List[VerisTaxonomyImpactIsoCurrencyCodeEntry] = [] - impact_overall_rating_entries: List[VerisTaxonomyImpactOverallRatingEntry] = [] - victim_country_entries: List[VerisTaxonomyVictimCountryEntry] = [] - victim_employee_count_entries: List[VerisTaxonomyVictimEmployeeCountEntry] = [] - action_environmental_variety_entries: List[VerisTaxonomyActionEnvironmentalVarietyEntry] = [] - action_error_variety_entries: List[VerisTaxonomyActionErrorVarietyEntry] = [] - action_error_vector_entries: List[VerisTaxonomyActionErrorVectorEntry] = [] - action_hacking_result_entries: List[VerisTaxonomyActionHackingResultEntry] = [] - action_hacking_variety_entries: List[VerisTaxonomyActionHackingVarietyEntry] = [] - action_hacking_vector_entries: List[VerisTaxonomyActionHackingVectorEntry] = [] - action_malware_result_entries: List[VerisTaxonomyActionMalwareResultEntry] = [] - action_malware_variety_entries: List[VerisTaxonomyActionMalwareVarietyEntry] = [] - action_malware_vector_entries: List[VerisTaxonomyActionMalwareVectorEntry] = [] - action_misuse_result_entries: List[VerisTaxonomyActionMisuseResultEntry] = [] - action_misuse_variety_entries: List[VerisTaxonomyActionMisuseVarietyEntry] = [] - action_misuse_vector_entries: List[VerisTaxonomyActionMisuseVectorEntry] = [] - action_physical_result_entries: List[VerisTaxonomyActionPhysicalResultEntry] = [] - action_physical_variety_entries: List[VerisTaxonomyActionPhysicalVarietyEntry] = [] - action_physical_vector_entries: List[VerisTaxonomyActionPhysicalVectorEntry] = [] - action_social_result_entries: List[VerisTaxonomyActionSocialResultEntry] = [] - action_social_target_entries: List[VerisTaxonomyActionSocialTargetEntry] = [] - action_social_variety_entries: List[VerisTaxonomyActionSocialVarietyEntry] = [] - action_social_vector_entries: List[VerisTaxonomyActionSocialVectorEntry] = [] - action_unknown_result_entries: List[VerisTaxonomyActionUnknownResultEntry] = [] - actor_external_country_entries: List[VerisTaxonomyActorExternalCountryEntry] = [] - actor_external_motive_entries: List[VerisTaxonomyActorExternalMotiveEntry] = [] - actor_external_variety_entries: List[VerisTaxonomyActorExternalVarietyEntry] = [] - actor_internal_job_change_entries: List[VerisTaxonomyActorInternalJobChangeEntry] = [] - actor_internal_motive_entries: List[VerisTaxonomyActorInternalMotiveEntry] = [] - actor_internal_variety_entries: List[VerisTaxonomyActorInternalVarietyEntry] = [] - actor_partner_country_entries: List[VerisTaxonomyActorPartnerCountryEntry] = [] - actor_partner_motive_entries: List[VerisTaxonomyActorPartnerMotiveEntry] = [] - asset_assets_variety_entries: List[VerisTaxonomyAssetAssetsVarietyEntry] = [] - attribute_availability_variety_entries: List[VerisTaxonomyAttributeAvailabilityVarietyEntry] = [] - attribute_confidentiality_data_disclosure_entries: List[ - VerisTaxonomyAttributeConfidentialityDataDisclosureEntry - ] = [] - attribute_confidentiality_data_victim_entries: List[VerisTaxonomyAttributeConfidentialityDataVictimEntry] = [] - attribute_confidentiality_state_entries: List[VerisTaxonomyAttributeConfidentialityStateEntry] = [] - attribute_integrity_variety_entries: List[VerisTaxonomyAttributeIntegrityVarietyEntry] = [] - impact_loss_rating_entries: List[VerisTaxonomyImpactLossRatingEntry] = [] - impact_loss_variety_entries: List[VerisTaxonomyImpactLossVarietyEntry] = [] - timeline_compromise_unit_entries: List[VerisTaxonomyTimelineCompromiseUnitEntry] = [] - timeline_containment_unit_entries: List[VerisTaxonomyTimelineContainmentUnitEntry] = [] - timeline_discovery_unit_entries: List[VerisTaxonomyTimelineDiscoveryUnitEntry] = [] - timeline_exfiltration_unit_entries: List[VerisTaxonomyTimelineExfiltrationUnitEntry] = [] - victim_revenue_iso_currency_code_entries: List[VerisTaxonomyVictimRevenueIsoCurrencyCodeEntry] = [] - attribute_availability_duration_unit_entries: List[VerisTaxonomyAttributeAvailabilityDurationUnitEntry] = [] - attribute_confidentiality_data_variety_entries: List[VerisTaxonomyAttributeConfidentialityDataVarietyEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/vmray.py b/src/openmisp/models/taxonomies/vmray.py deleted file mode 100644 index bf2764b..0000000 --- a/src/openmisp/models/taxonomies/vmray.py +++ /dev/null @@ -1,52 +0,0 @@ -"""Taxonomy model for vmray.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class VmrayTaxonomyPredicate(str, Enum): - VERDICT = "verdict" - VTI_ANALYSIS_SCORE = "vti_analysis_score" - ARTIFACT = "artifact" - - -class VmrayTaxonomyVerdictEntry(str, Enum): - MALICIOUS = "malicious" - SUSPICIOUS = "suspicious" - CLEAN = "clean" - N_A = "n/a" - - -class VmrayTaxonomyVtiAnalysisScoreEntry(str, Enum): - T__1_5 = "-1/5" - T_1_5 = "1/5" - T_2_5 = "2/5" - T_3_5 = "3/5" - T_4_5 = "4/5" - T_5_5 = "5/5" - - -class VmrayTaxonomyArtifactEntry(str, Enum): - IOC = "ioc" - - -class VmrayTaxonomy(BaseModel): - """Model for the vmray taxonomy.""" - - namespace: str = "vmray" - description: str = """VMRay taxonomies to map VMRay Thread Identifier scores and artifacts.""" - version: int = 1 - exclusive: bool = False - predicates: List[VmrayTaxonomyPredicate] = [] - verdict_entries: List[VmrayTaxonomyVerdictEntry] = [] - vti_analysis_score_entries: List[VmrayTaxonomyVtiAnalysisScoreEntry] = [] - artifact_entries: List[VmrayTaxonomyArtifactEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/vocabulaire_des_probabilites_estimatives.py b/src/openmisp/models/taxonomies/vocabulaire_des_probabilites_estimatives.py deleted file mode 100644 index 13144a5..0000000 --- a/src/openmisp/models/taxonomies/vocabulaire_des_probabilites_estimatives.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Taxonomy model for Vocabulaire des probabilités estimatives.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class VocabulaireDesProbabilitesEstimativesTaxonomyPredicate(str, Enum): - DEGR__DE_PROBABILIT_ = "degré-de-probabilité" - - -class VocabulaireDesProbabilitesEstimativesTaxonomyDegrDeProbabilitEntry(str, Enum): - PRESQUE_AUCUNE_CHANCE = "presque-aucune-chance" - PROBABLEMENT_PAS = "probablement-pas" - CHANCES___PEU_PR_S_EGALES = "chances-à-peu-près-egales" - PROBABLE = "probable" - QUASI_CERTAINE = "quasi-certaine" - - -class VocabulaireDesProbabilitesEstimativesTaxonomy(BaseModel): - """Model for the Vocabulaire des probabilités estimatives taxonomy.""" - - namespace: str = "vocabulaire-des-probabilites-estimatives" - description: str = """Ce vocabulaire attribue des valeurs en pourcentage à certains énoncés de probabilité""" - version: int = 3 - exclusive: bool = True - predicates: List[VocabulaireDesProbabilitesEstimativesTaxonomyPredicate] = [] - degr__de_probabilit__entries: List[VocabulaireDesProbabilitesEstimativesTaxonomyDegrDeProbabilitEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/vulnerability.py b/src/openmisp/models/taxonomies/vulnerability.py deleted file mode 100644 index 432509a..0000000 --- a/src/openmisp/models/taxonomies/vulnerability.py +++ /dev/null @@ -1,55 +0,0 @@ -"""Taxonomy model for vulnerability.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class VulnerabilityTaxonomyPredicate(str, Enum): - SIGHTING = "sighting" - EXPLOITABILITY = "exploitability" - INFORMATION = "information" - - -class VulnerabilityTaxonomySightingEntry(str, Enum): - SEEN = "seen" - CONFIRMED = "confirmed" - EXPLOITED = "exploited" - PATCHED = "patched" - NOT_EXPLOITED = "not-exploited" - NOT_CONFIRMED = "not-confirmed" - NOT_PATCHED = "not-patched" - - -class VulnerabilityTaxonomyExploitabilityEntry(str, Enum): - INDUSTRIALISED = "industrialised" - CUSTOMISED = "customised" - DOCUMENTED = "documented" - THEORETICAL = "theoretical" - - -class VulnerabilityTaxonomyInformationEntry(str, Enum): - PO_C = "PoC" - REMEDIATION = "remediation" - ANNOTATION = "annotation" - - -class VulnerabilityTaxonomy(BaseModel): - """Model for the vulnerability taxonomy.""" - - namespace: str = "vulnerability" - description: str = """A taxonomy for describing vulnerabilities (software, hardware, or social) on different scales or with additional available information.""" - version: int = 3 - exclusive: bool = False - predicates: List[VulnerabilityTaxonomyPredicate] = [] - sighting_entries: List[VulnerabilityTaxonomySightingEntry] = [] - exploitability_entries: List[VulnerabilityTaxonomyExploitabilityEntry] = [] - information_entries: List[VulnerabilityTaxonomyInformationEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}" diff --git a/src/openmisp/models/taxonomies/workflow.py b/src/openmisp/models/taxonomies/workflow.py deleted file mode 100644 index f9f883d..0000000 --- a/src/openmisp/models/taxonomies/workflow.py +++ /dev/null @@ -1,68 +0,0 @@ -"""Taxonomy model for workflow to support analysis.""" - -from enum import Enum -from typing import List, Optional - -from pydantic import BaseModel - - -class WorkflowTaxonomyPredicate(str, Enum): - TODO = "todo" - STATE = "state" - - -class WorkflowTaxonomyTodoEntry(str, Enum): - EXPANSION = "expansion" - REVIEW = "review" - REVIEW_FOR_PRIVACY = "review-for-privacy" - REVIEW_BEFORE_PUBLICATION = "review-before-publication" - RELEASE_REQUESTED = "release-requested" - REVIEW_FOR_FALSE_POSITIVE = "review-for-false-positive" - REVIEW_THE_SOURCE_CREDIBILITY = "review-the-source-credibility" - ADD_MISSING_MISP_GALAXY_CLUSTER_VALUES = "add-missing-misp-galaxy-cluster-values" - CREATE_MISSING_MISP_GALAXY_CLUSTER = "create-missing-misp-galaxy-cluster" - CREATE_MISSING_MISP_GALAXY_CLUSTER_RELATIONSHIP = "create-missing-misp-galaxy-cluster-relationship" - CREATE_MISSING_MISP_GALAXY = "create-missing-misp-galaxy" - CREATE_MISSING_RELATIONSHIP = "create-missing-relationship" - ADD_CONTEXT = "add-context" - ADD_TAGGING = "add-tagging" - CHECK_PASSIVE_DNS_FOR_SHARED_HOSTING = "check-passive-dns-for-shared-hosting" - REVIEW_CLASSIFICATION = "review-classification" - REVIEW_THE_GRAMMAR = "review-the-grammar" - DO_NOT_DELETE = "do-not-delete" - ADD_MITRE_ATTACK_CLUSTER = "add-mitre-attack-cluster" - ADDITIONAL_TASK = "additional-task" - CREATE_EVENT = "create-event" - PRESERVE_EVIDENCE = "preserve-evidence" - REVIEW_RELEVANCE = "review-relevance" - REVIEW_COMPLETENESS = "review-completeness" - REVIEW_ACCURACY = "review-accuracy" - REVIEW_QUALITY = "review-quality" - - -class WorkflowTaxonomyStateEntry(str, Enum): - INCOMPLETE = "incomplete" - COMPLETE = "complete" - DRAFT = "draft" - ONGOING = "ongoing" - REJECTED = "rejected" - RELEASE = "release" - - -class WorkflowTaxonomy(BaseModel): - """Model for the workflow to support analysis taxonomy.""" - - namespace: str = "workflow" - description: str = """Workflow support language is a common language to support intelligence analysts to perform their analysis on data and information.""" - version: int = 14 - exclusive: bool = False - predicates: List[WorkflowTaxonomyPredicate] = [] - todo_entries: List[WorkflowTaxonomyTodoEntry] = [] - state_entries: List[WorkflowTaxonomyStateEntry] = [] - - @classmethod - def get_tag(cls, predicate: str, entry: Optional[str] = None) -> str: - """Get the full tag for a predicate and optional entry.""" - if entry: - return f"{cls.namespace}:{predicate}='{entry}'" - return f"{cls.namespace}:{predicate}"