# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Harness Enforcement API version: 1.0.0 extends: openapi/harness-enforcement-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 5 - target: $.paths['/v1/org/{org}/project/{project}/enforcement/{enforcement-id}/summary'].get update: x-apievangelist-phrasing: intent: Get an SBOM policy enforcement summary effect: read questions: - How many allow-list and deny-list violations did an SBOM enforcement run find? - Did a given policy enforcement pass or fail? instructions: - text: Get enforcement summary {enforcement-id} in {org}/{project}. slots: enforcement-id: path.enforcement-id org: path.org project: path.project - text: Show the pass/fail outcome of enforcement {enforcement-id}. slots: enforcement-id: path.enforcement-id method: generated generated: '2026-09-26' - target: $.paths['/v1/org/{org}/project/{project}/enforcement/{enforcement-id}/policy-violations'].get update: x-apievangelist-phrasing: intent: List policy violations from an enforcement effect: read questions: - Which components violated SBOM policy in a particular enforcement run? - Can I search violations by text or filter to one image layer? instructions: - text: List policy violations for enforcement {enforcement-id} in {org}/{project}. slots: enforcement-id: path.enforcement-id org: path.org project: path.project - text: Find violations in enforcement {enforcement-id} matching {search_text}. slots: enforcement-id: path.enforcement-id search_text: query.search_text method: generated generated: '2026-09-26' - target: $.paths['/v1/org/{org}/project/{project}/normalised-sbom-component'].post update: x-apievangelist-phrasing: intent: List normalized SBOM components for an artifact effect: read questions: - What components are in the normalized SBOM for an image? - Can I page through SBOM components for an artifact by registry URL and name? instructions: - text: List normalized SBOM components for {type} artifact {name} from {registry_url} in {org}/{project}. slots: type: requestBody.type name: requestBody.name registry_url: requestBody.registry_url org: path.org project: path.project - text: Show SBOM components of image {name} tag {tag}. slots: name: requestBody.name tag: requestBody.tag method: generated generated: '2026-09-26' - target: $.paths['/v1/org/{org}/project/{project}/enforcement-result'].post update: x-apievangelist-phrasing: intent: Record a policy enforcement violation effect: write questions: - How does a pipeline record an individual component's policy violation? - Can an enforcement result be marked as exempted? instructions: - text: Save a {violation_type} violation for image {image_name} under enforcement {enforcement_id} in {org}/{project}. slots: violation_type: requestBody.violation_type image_name: requestBody.image_name enforcement_id: requestBody.enforcement_id org: path.org project: path.project - text: Record violation details {violation_details} for artifact {artifact_id}. slots: violation_details: requestBody.violation_details artifact_id: requestBody.artifact_id method: generated generated: '2026-09-26' - target: $.paths['/v1/org/{org}/project/{project}/enforcement-summary'].post update: x-apievangelist-phrasing: intent: Record an enforcement run summary effect: write questions: - How is the overall result of an SBOM enforcement run stored? - What counts go into a saved enforcement summary? instructions: - text: Save enforcement summary {enforcement_id} with status {status} in {org}/{project}. slots: enforcement_id: requestBody.enforcement_id status: requestBody.status org: path.org project: path.project - text: Record {deny_list_violation_count} deny-list and {allow_list_violation_count} allow-list violations for pipeline run {pipeline_execution_id}. slots: deny_list_violation_count: requestBody.deny_list_violation_count allow_list_violation_count: requestBody.allow_list_violation_count pipeline_execution_id: requestBody.pipeline_execution_id method: generated generated: '2026-09-26'