Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness NG SLOs API

8 actions 8 updates phrasing extends openapi/harness-ng-slos-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 8

$.info
$.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/identifier/{identifier}'].get
$.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/identifier/{identifier}'].put
$.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/identifier/{identifier}'].delete
$.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/composite-slo/onboarding-graph'].post
$.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/status-list'].post
$.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2'].get
$.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2'].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 NG SLOs API
  version: 1.0.0
extends: openapi/harness-ng-slos-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: 7
- target: $.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/identifier/{identifier}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an SLO's configuration
      effect: read
      questions:
      - What target and spec is defined on a particular SLO?
      - Can I fetch one service level objective by its identifier?
      instructions:
      - text: Get SLO {identifier} in {accountIdentifier}/{orgIdentifier}/{projectIdentifier}.
        slots:
          accountIdentifier: path.accountIdentifier
          orgIdentifier: path.orgIdentifier
          projectIdentifier: path.projectIdentifier
          identifier: path.identifier
      - text: Show the definition of SLO {identifier}.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/identifier/{identifier}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an SLO
      effect: write
      questions:
      - How do I change the target on an existing SLO?
      - Can I update which user journeys an SLO is tied to?
      instructions:
      - text: Update SLO {identifier} in {accountIdentifier}/{orgIdentifier}/{projectIdentifier} with target {sloTarget}.
        slots:
          accountIdentifier: path.accountIdentifier
          orgIdentifier: path.orgIdentifier
          projectIdentifier: path.projectIdentifier
          identifier: path.identifier
          sloTarget: requestBody.sloTarget
      - text: Rename SLO {identifier} to {name}.
        slots:
          identifier: path.identifier
          name: requestBody.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/identifier/{identifier}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an SLO
      effect: destructive
      questions:
      - How do I delete a service level objective?
      - Is deleting an SLO permanent?
      instructions:
      - text: Delete SLO {identifier} in {accountIdentifier}/{orgIdentifier}/{projectIdentifier}.
        slots:
          accountIdentifier: path.accountIdentifier
          orgIdentifier: path.orgIdentifier
          projectIdentifier: path.projectIdentifier
          identifier: path.identifier
      - text: Remove SLO {identifier}.
        slots:
          identifier: path.identifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/composite-slo/onboarding-graph'].post
  update:
    x-apievangelist-phrasing:
      intent: Preview the onboarding graph for a composite SLO
      effect: read
      questions:
      - What will a composite SLO look like before I save it?
      - Can I preview the combined graph of the SLOs in a composite SLO?
      instructions:
      - text: Preview the composite SLO graph in {accountIdentifier}/{orgIdentifier}/{projectIdentifier} for SLOs {serviceLevelObjectivesDetails}.
        slots:
          accountIdentifier: path.accountIdentifier
          orgIdentifier: path.orgIdentifier
          projectIdentifier: path.projectIdentifier
          serviceLevelObjectivesDetails: requestBody.serviceLevelObjectivesDetails
      - text: Show the onboarding graph for a {type} composite SLO using formula {sloFormulaType}.
        slots:
          type: requestBody.type
          sloFormulaType: requestBody.sloFormulaType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2/status-list'].post
  update:
    x-apievangelist-phrasing:
      intent: Get the SLO health list view
      effect: read
      questions:
      - Which SLOs are at risk of exhausting their error budget?
      - Can I see SLO health for one monitored service or environment?
      instructions:
      - text: Show SLO health in {accountIdentifier}/{orgIdentifier}/{projectIdentifier}.
        slots:
          accountIdentifier: path.accountIdentifier
          orgIdentifier: path.orgIdentifier
          projectIdentifier: path.projectIdentifier
      - text: Show the health of SLOs for monitored service {monitoredServiceIdentifier} with error budget risks {errorBudgetRisks}.
        slots:
          monitoredServiceIdentifier: requestBody.monitoredServiceIdentifier
          errorBudgetRisks: requestBody.errorBudgetRisks
      method: generated
      generated: '2026-09-26'
- target: $.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2'].get
  update:
    x-apievangelist-phrasing:
      intent: List all SLOs in a project
      effect: read
      questions:
      - What SLOs are defined in my project?
      - Can I list SLOs filtered by user journey?
      instructions:
      - text: List SLOs in {accountIdentifier}/{orgIdentifier}/{projectIdentifier}, page {offset} of size {pageSize}.
        slots:
          accountIdentifier: path.accountIdentifier
          orgIdentifier: path.orgIdentifier
          projectIdentifier: path.projectIdentifier
          offset: query.offset
          pageSize: query.pageSize
      - text: List SLOs for user journeys {userJourneys}, page {offset} size {pageSize}.
        slots:
          userJourneys: query.userJourneys
          offset: query.offset
          pageSize: query.pageSize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/cv/api/account/{accountIdentifier}/org/{orgIdentifier}/project/{projectIdentifier}/slo/v2'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an SLO
      effect: write
      questions:
      - How do I create a new service level objective?
      - What fields are required when saving a new SLO?
      instructions:
      - text: Create SLO {identifier} named {name} in {accountIdentifier}/{orgIdentifier}/{projectIdentifier} with target {sloTarget} and spec {spec}.
        slots:
          accountIdentifier: path.accountIdentifier
          orgIdentifier: path.orgIdentifier
          projectIdentifier: path.projectIdentifier
          identifier: requestBody.identifier
          name: requestBody.name
          sloTarget: requestBody.sloTarget
          spec: requestBody.spec
      - text: Save a new SLO called {name} for user journeys {userJourneyRefs}.
        slots:
          name: requestBody.name
          userJourneyRefs: requestBody.userJourneyRefs
      method: generated
      generated: '2026-09-26'