UNPKG

@mitre-attack/attack-data-model

Version:

A TypeScript API for the MITRE ATT&CK data model

57 lines (54 loc) 1.78 kB
import { z } from 'zod'; /** * Schema for validating kill chain names. * * Kill chain names identify which ATT&CK framework variant the phase belongs to. * * @example * ```typescript * killChainNameSchema.parse('mitre-attack'); // Valid - Enterprise ATT&CK * killChainNameSchema.parse('mitre-mobile-attack'); // Valid - Mobile ATT&CK * killChainNameSchema.parse('lockheed-martin'); // Invalid - not an ATT&CK kill chain * ``` */ declare const killChainNameSchema: z.ZodEnum<{ "mitre-attack": "mitre-attack"; "mitre-mobile-attack": "mitre-mobile-attack"; "mitre-ics-attack": "mitre-ics-attack"; }>; /** * Schema for validating kill chain phase objects. * * Represents a specific phase within an ATT&CK kill chain (e.g., "initial-access", * "execution"). Phase names should be all lowercase and use hyphens as word separators. * * @example * ```typescript * killChainPhaseSchema.parse({ * kill_chain_name: 'mitre-attack', * phase_name: 'initial-access' * }); // Valid * * killChainPhaseSchema.parse({ * kill_chain_name: 'mitre-attack', * phase_name: 'Initial Access' * }); // Invalid - should be lowercase with hyphens * ``` */ declare const killChainPhaseSchema: z.ZodObject<{ phase_name: z.ZodString; kill_chain_name: z.ZodEnum<{ "mitre-attack": "mitre-attack"; "mitre-mobile-attack": "mitre-mobile-attack"; "mitre-ics-attack": "mitre-ics-attack"; }>; }, z.core.$strict>; /** * Type representing a kill chain name. */ type KillChainName = z.infer<typeof killChainNameSchema>; /** * Type representing a kill chain phase object. */ type KillChainPhase = z.infer<typeof killChainPhaseSchema>; export { type KillChainName, type KillChainPhase, killChainNameSchema, killChainPhaseSchema };