Harness · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Harness Cloud and AI cost anomalies v2 API

8 actions 8 updates phrasing extends openapi/harness-cloud-and-ai-cost-anomalies-v2-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 8

$.info
$.paths['/ccm/api/anomaly/v2/list'].post
$.paths['/ccm/api/anomaly/v2/metrics'].post
$.paths['/ccm/api/anomaly/v2/summary'].post
$.paths['/ccm/api/anomaly/v2/metrics/time-series'].post
$.paths['/ccm/api/anomaly/v2/mean-resolution-time'].post
$.paths['/ccm/api/anomaly/v2/update/feedback'].put
$.paths['/ccm/api/anomaly/v2/update/status'].put

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