Harness · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Harness Perspectives API
8 actions
8 updates
phrasing
extends
openapi/harness-perspectives-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 8
$.info
$.paths['/ccm/api/perspective'].get
$.paths['/ccm/api/perspective'].put
$.paths['/ccm/api/perspective'].post
$.paths['/ccm/api/perspective'].delete
$.paths['/ccm/api/perspective/getAllPerspectives'].get
$.paths['/ccm/api/perspective/lastPeriodCost'].get
$.paths['/ccm/api/perspective/lastYearMonthlyCost'].get
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 Perspectives API
version: 1.0.0
extends: openapi/harness-perspectives-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['/ccm/api/perspective'].get
update:
x-apievangelist-phrasing:
intent: Get a cloud cost perspective
effect: read
questions:
- What rules and data sources make up a particular cost perspective?
- Can I view one perspective's definition by its id?
instructions:
- text: Show cost perspective {perspectiveId}.
slots:
perspectiveId: query.perspectiveId
- text: Get the rules and visualization settings of perspective {perspectiveId}.
slots:
perspectiveId: query.perspectiveId
method: generated
generated: '2026-09-26'
- target: $.paths['/ccm/api/perspective'].put
update:
x-apievangelist-phrasing:
intent: Update a cost perspective
effect: write
questions:
- How do I change the rules or time range of an existing perspective?
- Can I move a perspective into a different folder?
instructions:
- text: Rename perspective {uuid} to {name}.
slots:
uuid: requestBody.uuid
name: requestBody.name
- text: Move perspective {uuid} into folder {folderId}.
slots:
uuid: requestBody.uuid
folderId: requestBody.folderId
method: generated
generated: '2026-09-26'
- target: $.paths['/ccm/api/perspective'].post
update:
x-apievangelist-phrasing:
intent: Create or clone a cost perspective
effect: write
questions:
- How do I build a new cloud cost perspective in Harness CCM?
- Can I clone an existing perspective instead of starting from scratch?
instructions:
- text: Create a cost perspective named {name}.
slots:
name: requestBody.name
- text: Clone perspective {uuid} as {name}, with clone set to {clone}.
slots:
uuid: requestBody.uuid
name: requestBody.name
clone: query.clone
method: generated
generated: '2026-09-26'
- target: $.paths['/ccm/api/perspective'].delete
update:
x-apievangelist-phrasing:
intent: Delete a cost perspective
effect: destructive
questions:
- How do I remove a cost perspective I no longer need?
- Is deleting a perspective done by its id?
instructions:
- text: Delete cost perspective {perspectiveId}.
slots:
perspectiveId: query.perspectiveId
- text: Remove perspective {perspectiveId} from my account.
slots:
perspectiveId: query.perspectiveId
method: generated
generated: '2026-09-26'
- target: $.paths['/ccm/api/perspective/getAllPerspectives'].get
update:
x-apievangelist-phrasing:
intent: List all cost perspectives
effect: read
questions:
- Which cost perspectives exist in my account?
- Can I search or sort perspectives by name or cloud provider?
instructions:
- text: List my cost perspectives, {pageSize} per page, page {pageNo}.
slots:
pageSize: query.pageSize
pageNo: query.pageNo
- text: Search perspectives for {searchKey}.
slots:
searchKey: query.searchKey
method: generated
generated: '2026-09-26'
- target: $.paths['/ccm/api/perspective/lastPeriodCost'].get
update:
x-apievangelist-phrasing:
intent: Get a perspective's cost for the last period
effect: read
questions:
- What did a perspective cost in the previous period?
- Can I compare this month's perspective spend with last month's?
instructions:
- text: Get the last {period} cost for perspective {perspectiveId} from {startTime}.
slots:
period: query.period
perspectiveId: query.perspectiveId
startTime: query.startTime
- text: Show the previous-period spend of perspective {perspectiveId}, period {period}, starting {startTime}.
slots:
perspectiveId: query.perspectiveId
period: query.period
startTime: query.startTime
method: generated
generated: '2026-09-26'
- target: $.paths['/ccm/api/perspective/lastYearMonthlyCost'].get
update:
x-apievangelist-phrasing:
intent: Get a perspective's last 12 months of cost
effect: read
questions:
- What has a perspective cost month by month over the past year?
- Can I break down twelve months of perspective cost?
instructions:
- text: Show twelve months of monthly cost for perspective {perspectiveId} from {startTime}, period {period}, type {type}, breakdown {breakdown}.
slots:
perspectiveId: query.perspectiveId
startTime: query.startTime
period: query.period
type: query.type
breakdown: query.breakdown
- text: Get last year's monthly spend for perspective {perspectiveId} broken down by {breakdown}.
slots:
perspectiveId: query.perspectiveId
breakdown: query.breakdown
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/harness-perspectives-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.