# Policy evaluation violation printer ==========================================
# Constructs enriched violation objects for use in control packages.

package common.outputs

violation(policy_id, meta, message) := {
	"rule_id": policy_id,
	"title": meta.title,
	"description": meta.description,
	"message": message,
	"remediation": meta.remediation,
	"severity": meta.severity,
	"provider": data.providers[split(policy_id, "-")[2]],
	"category": data.categories[split(policy_id, "-")[3]],
	"references": meta.references,
	"summary": sprintf("%s %s %s", [policy_id, upper(meta.severity), message]),
}
