Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness Recommendations API

13 actions 13 updates phrasing extends openapi/harness-recommendations-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 13

$.info
$.paths['/ccm/api/recommendation/overview/stats/applied'].post
$.paths['/ccm/api/recommendation/overview/change-inference-status'].post
$.paths['/ccm/api/recommendation/overview/change-state'].post
$.paths['/ccm/api/recommendation/overview/count'].post
$.paths['/ccm/api/recommendation/overview/filter-values'].post
$.paths['/ccm/api/recommendation/overview/supported-filters'].get
$.paths['/ccm/api/recommendation/overview/iacm'].post
$.paths['/ccm/api/recommendation/overview/list'].post
$.paths['/ccm/api/recommendation/overview/override-savings'].put
$.paths['/ccm/api/recommendation/overview/realized-savings'].post
$.paths['/ccm/api/recommendation/overview/resource-type/stats'].post
$.paths['/ccm/api/recommendation/overview/stats'].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 Recommendations API
  version: 1.0.0
extends: openapi/harness-recommendations-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: 12
- target: $.paths['/ccm/api/recommendation/overview/stats/applied'].post
  update:
    x-apievangelist-phrasing:
      intent: Get savings from applied recommendations by resource
      effect: read
      questions:
      - How much have we saved from cost recommendations we already applied, per resource type?
      - Which resource types delivered the biggest savings after applying recommendations?
      instructions:
      - text: Show applied recommendation savings by resource type for account {account}.
        slots:
          account: query.accountIdentifier
      - text: Get applied savings by resource type over the last {days} days.
        slots:
          days: requestBody.daysBack
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/change-inference-status'].post
  update:
    x-apievangelist-phrasing:
      intent: Verify or reject an inferred recommendation
      effect: write
      questions:
      - Can I mark an inferred cost recommendation as verified or rejected?
      - Is there a way to leave a comment when rejecting an inferred recommendation?
      instructions:
      - text: Set inference status of recommendation {rec} to {status}.
        slots:
          rec: requestBody.recommendationId
          status: requestBody.verificationStatus
      - text: Reject inferred recommendation {rec} with status {status} and comment {comment}.
        slots:
          rec: requestBody.recommendationId
          status: requestBody.verificationStatus
          comment: requestBody.comment
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/change-state'].post
  update:
    x-apievangelist-phrasing:
      intent: Mark a recommendation as applied or open
      effect: write
      questions:
      - How do I mark a cost recommendation as applied?
      - Can I record the savings I actually got when applying a recommendation?
      instructions:
      - text: Mark recommendation {rec} as {state}.
        slots:
          rec: query.recommendationId
          state: query.state
      - text: Set recommendation {rec} to {state} with applied savings {savings}.
        slots:
          rec: query.recommendationId
          state: query.state
          savings: requestBody.appliedSavings
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/count'].post
  update:
    x-apievangelist-phrasing:
      intent: Count cost recommendations
      effect: read
      questions:
      - How many cost recommendations do we have right now?
      - Can I count only recommendations above a minimum saving?
      instructions:
      - text: Count recommendations for account {account}.
        slots:
          account: query.accountIdentifier
      - text: Count recommendations saving at least {min}.
        slots:
          min: requestBody.minSaving
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/filter-values'].post
  update:
    x-apievangelist-phrasing:
      intent: List values for recommendation filters
      effect: read
      questions:
      - What values can I pick for each recommendation filter column?
      - Which clusters or namespaces show up as recommendation filter values?
      instructions:
      - text: Get recommendation filter values for columns {columns}.
        slots:
          columns: requestBody.columns
      - text: List distinct recommendation filter values in account {account}.
        slots:
          account: query.accountIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/supported-filters'].get
  update:
    x-apievangelist-phrasing:
      intent: List supported recommendation filter fields
      effect: read
      questions:
      - Which fields am I allowed to filter recommendations on?
      - What filter field IDs does the recommendations API support?
      instructions:
      - text: List supported recommendation filter fields for account {account}.
        slots:
          account: query.accountIdentifier
      - text: Show which filter IDs recommendations accept in account {account}.
        slots:
          account: query.accountIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/iacm'].post
  update:
    x-apievangelist-phrasing:
      intent: Get recommendations for IaCM-managed resources
      effect: read
      questions:
      - Can I get cost recommendations for resources managed by Terraform in IaCM?
      - Which recommendations apply to cloud resources identified by their ARNs?
      instructions:
      - text: Get recommendations for IaCM resources {resources}.
        slots:
          resources: requestBody.resources
      - text: Find recommendations in state {states} for IaCM resources {resources}.
        slots:
          states: requestBody.states
          resources: requestBody.resources
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/list'].post
  update:
    x-apievangelist-phrasing:
      intent: List cost recommendations
      effect: read
      questions:
      - What cost-saving recommendations are open for my cloud resources?
      - Can I list recommendations sorted by potential savings?
      - Which recommendations cost more than a given amount to leave in place?
      instructions:
      - text: List recommendations for account {account}.
        slots:
          account: query.accountIdentifier
      - text: List recommendations with minimum cost {cost}, sorted by {sort}.
        slots:
          cost: requestBody.minCost
          sort: requestBody.sortBy
      - text: Show {limit} recommendations including ignored ones set to {ignored}.
        slots:
          limit: requestBody.limit
          ignored: requestBody.includeIgnoredRecommendation
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/override-savings'].put
  update:
    x-apievangelist-phrasing:
      intent: Override a recommendation's savings figure
      effect: write
      questions:
      - Can I correct the savings amount shown on a recommendation?
      - Is it possible to override estimated savings with my own number?
      instructions:
      - text: Override savings on recommendation {rec} to {amount}.
        slots:
          rec: query.recommendationId
          amount: query.overriddenSavings
      - text: Set recommendation {rec} savings to {amount}.
        slots:
          rec: query.recommendationId
          amount: query.overriddenSavings
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/realized-savings'].post
  update:
    x-apievangelist-phrasing:
      intent: Get realized savings over time
      effect: read
      questions:
      - How have realized savings from applied recommendations grown over time?
      - Can I see realized savings aggregated by week or month?
      instructions:
      - text: Show realized savings as a time series aggregated by {period}.
        slots:
          period: query.timeAggregation
      - text: Get the realized savings timeline for account {account}.
        slots:
          account: query.accountIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/resource-type/stats'].post
  update:
    x-apievangelist-phrasing:
      intent: Get recommendation stats by resource type
      effect: read
      questions:
      - How are open recommendations spread across resource types?
      - Which resource type has the most potential savings in open recommendations?
      instructions:
      - text: Break down recommendation stats by resource type for account {account}.
        slots:
          account: query.accountIdentifier
      - text: Group recommendation statistics by resource type for the last {days} days.
        slots:
          days: requestBody.daysBack
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ccm/api/recommendation/overview/stats'].post
  update:
    x-apievangelist-phrasing:
      intent: Get overall recommendation statistics
      effect: read
      questions:
      - What are the total potential savings across all my recommendations?
      - Can I get summary statistics for recommendations matching a filter?
      instructions:
      - text: Get overall recommendation statistics for account {account}.
        slots:
          account: query.accountIdentifier
      - text: Summarize recommendation stats with minimum saving {min}.
        slots:
          min: requestBody.minSaving
      method: generated
      generated: '2026-09-26'