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