@mitre-attack/attack-data-model
Version:
A TypeScript API for the MITRE ATT&CK data model
48 lines (45 loc) • 1.51 kB
TypeScript
import { z } from 'zod/v4';
/**
* Schema for validating individual ATT&CK domain values.
*
* ATT&CK domains represent different technology environments covered by the framework.
*
* @example
* ```typescript
* attackDomainSchema.parse('enterprise-attack'); // Valid
* attackDomainSchema.parse('mobile-attack'); // Valid
* attackDomainSchema.parse('cloud-attack'); // Invalid - not a valid domain
* ```
*/
declare const attackDomainSchema: z.ZodEnum<{
"enterprise-attack": "enterprise-attack";
"mobile-attack": "mobile-attack";
"ics-attack": "ics-attack";
}>;
/**
* Type representing a single ATT&CK domain.
*/
type AttackDomain = z.infer<typeof attackDomainSchema>;
/**
* Schema for validating ATT&CK domains (`x_mitre_domains`).
*
* An array of technology domains to which the ATT&CK object belongs. At least one
* domain must be specified.
*
* @example
* ```typescript
* xMitreDomainsSchema.parse(['enterprise-attack']); // Valid
* xMitreDomainsSchema.parse(['enterprise-attack', 'mobile-attack']); // Valid
* xMitreDomainsSchema.parse([]); // Invalid - at least one domain required
* ```
*/
declare const xMitreDomainsSchema: z.ZodArray<z.ZodEnum<{
"enterprise-attack": "enterprise-attack";
"mobile-attack": "mobile-attack";
"ics-attack": "ics-attack";
}>>;
/**
* Type representing a list of ATT&CK domains.
*/
type XMitreDomains = z.infer<typeof xMitreDomainsSchema>;
export { type AttackDomain, type XMitreDomains, attackDomainSchema, xMitreDomainsSchema };