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.
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
# 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'