@mitre-attack/attack-data-model
Version:
A TypeScript API for the MITRE ATT&CK data model
57 lines (54 loc) • 1.78 kB
TypeScript
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 };