Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness Enforcement API

6 actions 6 updates phrasing extends openapi/harness-enforcement-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Harness's API. It is a proposal applied on top of the contract, not a document Harness publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 6

$.info
$.paths['/v1/org/{org}/project/{project}/enforcement/{enforcement-id}/summary'].get
$.paths['/v1/org/{org}/project/{project}/enforcement/{enforcement-id}/policy-violations'].get
$.paths['/v1/org/{org}/project/{project}/normalised-sbom-component'].post
$.paths['/v1/org/{org}/project/{project}/enforcement-result'].post
$.paths['/v1/org/{org}/project/{project}/enforcement-summary'].post

OpenAPI Overlay

Raw ↑
# 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'