# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Harness Cloud and AI cost anomalies v2 API version: 1.0.0 extends: openapi/harness-cloud-and-ai-cost-anomalies-v2-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/anomaly/v2/list'].post update: x-apievangelist-phrasing: intent: List cloud cost anomalies effect: read questions: - Which unexpected cloud cost spikes has Harness detected in my account? - Can I include anomalies I previously whitelisted in the list? - What cost anomalies show up within a specific perspective? instructions: - text: List cost anomalies for account {account}. slots: account: query.accountIdentifier - text: List cost anomalies matching filters {filters} in account {account}. slots: filters: requestBody.anomalyFilterPropertiesDTO account: query.accountIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ccm/api/anomaly/v2/metrics'].post update: x-apievangelist-phrasing: intent: Get metrics for each type of cost anomaly effect: read questions: - How many cost anomalies of each type do I have, and what's their cost impact? - What are the anomaly metrics broken down by anomaly type? instructions: - text: Get anomaly metrics by type for account {account}. slots: account: query.accountIdentifier - text: Break down cost anomaly metrics by type for perspective query {perspective} (account {account}). slots: perspective: requestBody.perspectiveQueryDTO account: query.accountIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ccm/api/anomaly/v2/summary'].post update: x-apievangelist-phrasing: intent: Summarize cost anomaly metrics effect: read questions: - What's the headline summary of my cost anomalies right now? - Can I get a single rolled-up summary of anomaly totals for a perspective? instructions: - text: Summarize cost anomaly metrics for account {account}. slots: account: query.accountIdentifier - text: Give me the rolled-up anomaly summary for filters {filters} in account {account}. slots: filters: requestBody.anomalyFilterPropertiesDTO account: query.accountIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ccm/api/anomaly/v2/metrics/time-series'].post update: x-apievangelist-phrasing: intent: Chart cost anomaly metrics per day effect: read questions: - How have cost anomalies trended day by day? - Can I see a daily time series of anomalies for each anomaly type? instructions: - text: Get the daily anomaly time series for account {account}. slots: account: query.accountIdentifier - text: Plot per-day anomaly metrics using filters {filters} for account {account}. slots: filters: requestBody.anomalyFilterPropertiesDTO account: query.accountIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ccm/api/anomaly/v2/mean-resolution-time'].post update: x-apievangelist-phrasing: intent: Get the mean time to resolve cost anomalies effect: read questions: - How long does my team take on average to resolve a cost anomaly? - What's the mean resolution time for anomalies in one perspective? instructions: - text: Get the mean anomaly resolution time for account {account}. slots: account: query.accountIdentifier - text: Calculate average time to resolve anomalies matching {filters} in account {account}. slots: filters: requestBody.anomalyFilterPropertiesDTO account: query.accountIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ccm/api/anomaly/v2/update/feedback'].put update: x-apievangelist-phrasing: intent: Give feedback on a detected cost anomaly effect: write questions: - How do I tell Harness whether a flagged cost anomaly was real or a false alarm? - Can I record feedback on a specific anomaly? instructions: - text: Mark anomaly {anomaly} with feedback {feedback} in account {account}. slots: anomaly: query.anomalyId feedback: query.feedback account: query.accountIdentifier - text: Flag cost anomaly {anomaly} as a false alarm in account {account}. slots: anomaly: query.anomalyId account: query.accountIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ccm/api/anomaly/v2/update/status'].put update: x-apievangelist-phrasing: intent: Change the status of a cost anomaly effect: write questions: - How do I mark a cost anomaly as resolved or archived? - Can I update the status of one anomaly by ID? instructions: - text: Set anomaly {anomaly} to status {status} in account {account}. slots: anomaly: query.anomalyId status: query.status account: query.accountIdentifier - text: Resolve cost anomaly {anomaly} for account {account}. slots: anomaly: query.anomalyId account: query.accountIdentifier method: generated generated: '2026-09-26'