API Reference
Rule
Describe the rule to be run
Inheritance
- Object
- Rule
Constructors
public Rule() #Inherited Methods
Properties
public PermissionRequired PermissionRequired { get; set; } #Permission required to run the rule
public ScriptBlock DataDescription { get; set; } #Description of the data
public ScriptBlock DataHighlights { get; set; } #Highlights of the data (table conditions)
public ScriptBlock DataDescriptionMarkdown { get; set; } #Description of the data in Markdown format
public ScriptBlock SolutionMarkdown { get; set; } #Resolution steps in Markdown format
public PowerShellModule[] RequiredModules { get; set; } #Required PowerShell modules for the script to run
public String[] SupportedSystems { get; set; } #Supported systems by the rule
public Nullable<PowerShellMethod> PreferredPowerShellMethod { get; set; } #PowerShell method to run the script
public Category[] Category { get; set; } #Categories associated with the rule
public RuleDataRequirements DataRequirements { get; set; } #Optional data requirements for this rule. Used by the pre-execution planner to stage datasets once and reuse across multiple rules.
public RuleGuidance Guidance { get; set; } #Optional inline guidance content (Summary/Why/How/References) for display in reports and export.
public String MatchProperty { get; set; } #Optional property path used to match entries for inclusion/exclusion (e.g., "SamAccountName", "UserPrincipalName"). Applies to C# rules first; PS support can be added later.
public List<String> Inclusions { get; set; } #Optional list of keys to include (acts as a pre-filter when provided).
public List<String> Exclusions { get; set; } #Optional list of keys to exclude (excluded items will be shown in report but not counted in tests).
public ReportHints ReportHints { get; set; } #Optional report hints that guide how typed results should be displayed (summary fields, sections). If not provided, the renderer falls back to smart flattening.
public Boolean IsDeprecated { get; set; } #Indicates this rule is deprecated and kept for backward compatibility. Engines and UIs may highlight or hide deprecated rules.
public RuleVisibility Visibility { get; set; } #Controls whether this rule should appear in interactive selectors and rule listings. Hidden rules stay discoverable programmatically (by explicit name) but are omitted from UX flows.
public List<RuleVendorRef> Crosswalk { get; set; } #Optional inline crosswalk references to vendor baselines or external docs (PingCastle/PurpleKnight). Author in the rule source so maintainers can see mappings at a glance.
public List<RuleLink> Links { get; set; } #Optional links to other TestimoX rules (e.g., domain-level rule confirmed by DC-local rule).
public List<String> Tags { get; set; } #Free-form tags for rule filtering and UI search (e.g., "laps", "acl", "heavy").
public RuleCost Cost { get; set; } #Rough execution cost hint used to exclude heavy rules in large environments.