{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-cost-details-query-params-schema.json",
  "title": "CostDetailsQueryParams",
  "description": "Common query parameters for all cost details APIs",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/harness-cost-details-api-openapi.yml#/components/schemas/CostDetailsQueryParams",
  "type": "object",
  "properties": {
    "filters": {
      "type": "array",
      "description": "Filters to be applied on the response.",
      "items": {
        "$ref": "#/$defs/FieldFilter"
      }
    },
    "groupBy": {
      "type": "array",
      "description": "Fields on which the response will be grouped by.",
      "items": {
        "type": "string",
        "description": "List of all possible Fields",
        "enum": [
          "PERSPECTIVE_ID",
          "ANOMALY_ID",
          "WORKLOAD",
          "WORKLOAD_TYPE",
          "CLUSTER_ID",
          "CLUSTER_NAME",
          "CLUSTER_NAMESPACE",
          "CLUSTER_NAMESPACE_ID",
          "CLUSTER_WORKLOAD",
          "CLUSTER_WORKLOAD_ID",
          "CLUSTER_NODE",
          "CLUSTER_POD",
          "CLUSTER_PARENT_INSTANCE_ID",
          "CLUSTER_STORAGE",
          "CLUSTER_APPLICATION",
          "CLUSTER_ENVIRONMENT",
          "CLUSTER_SERVICE",
          "CLUSTER_CLOUD_PROVIDER",
          "CLUSTER_ECS_SERVICE",
          "CLUSTER_ECS_SERVICE_ID",
          "CLUSTER_ECS_TASK",
          "CLUSTER_ECS_TASK_ID",
          "CLUSTER_ECS_LAUNCH_TYPE",
          "CLUSTER_ECS_LAUNCH_TYPE_ID",
          "NAMESPACE",
          "SERVICE",
          "SERVICE_NAME",
          "GCP_PRODUCT",
          "GCP_PROJECT",
          "GCP_SKU_ID",
          "GCP_SKU_DESCRIPTION",
          "GCP_RESOURCE_GLOBAL_NAME",
          "AWS_ACCOUNT",
          "AWS_SERVICE",
          "AWS_INSTANCE_TYPE",
          "AWS_USAGE_TYPE",
          "AWS_BILLING_ENTITY",
          "AWS_LINE_ITEM_TYPE",
          "AWS_RESOURCE_ID",
          "AZURE_SUBSCRIPTION_GUID",
          "AZURE_METER_NAME",
          "AZURE_METER_CATEGORY",
          "AZURE_METER_SUBCATEGORY",
          "AZURE_RESOURCE_ID",
          "AZURE_RESOURCE_GROUP_NAME",
          "AZURE_RESOURCE_TYPE",
          "AZURE_RESOURCE",
          "AZURE_SERVICE_NAME",
          "AZURE_SERVICE_TIER",
          "AZURE_INSTANCE_ID",
          "AZURE_SUBSCRIPTION_NAME",
          "AZURE_PUBLISHER_NAME",
          "AZURE_PUBLISHER_TYPE",
          "AZURE_RESERVATION_ID",
          "AZURE_RESERVATION_NAME",
          "AZURE_FREQUENCY",
          "AZURE_CHARGE_TYPE",
          "AZURE_PRICING_MODEL",
          "AZURE_BENEFIT_NAME",
          "AZURE_RESOURCE_NAME",
          "OPENAI_PROJECT_ID",
          "OPENAI_MODEL",
          "OPENAI_USAGE_TYPE",
          "ANTHROPIC_PROJECT_ID",
          "ANTHROPIC_MODEL",
          "ANTHROPIC_USAGE_TYPE",
          "COMMON_PRODUCT",
          "COMMON_REGION",
          "COMMON_NONE",
          "CLOUD_PROVIDER",
          "STATUS",
          "REGION",
          "ANOMALY_TIME",
          "ACTUAL_COST",
          "EXPECTED_COST",
          "ANOMALOUS_SPEND",
          "COST_IMPACT",
          "ALL",
          "ANOMALOUS_SPEND_PERCENTAGE",
          "TOTAL_COST",
          "IDLE_COST",
          "UNALLOCATED_COST",
          "RULE_NAME",
          "RULE_SET_NAME",
          "POTENTIAL_SAVINGS",
          "LAST_EVALUATED_AT",
          "ANOMALY_STATUS",
          "RECOMMENDATIONS_COUNT",
          "ACTUAL_AMOUNT",
          "CRITICALITY",
          "DURATION",
          "UPDATED_AT",
          "UPDATED_BY",
          "UPDATED_AT_RELATIVE",
          "REPORTED_BY",
          "COST_CATEGORY_NAME",
          "COST_BUCKET_NAME",
          "UNIT_METRIC_NAME"
        ]
      }
    },
    "timeResolution": {
      "type": "string",
      "description": "Only applicable for Time Series Endpoints, defaults to DAY",
      "enum": [
        "HOUR",
        "DAY",
        "MONTH",
        "WEEK",
        "QUARTER",
        "YEAR"
      ]
    },
    "limit": {
      "type": "integer",
      "description": "Limit on the number of cost values returned, 0 by default.",
      "format": "int32"
    },
    "sortOrder": {
      "type": "string",
      "description": "Order of sorting on cost, Descending by default.",
      "enum": [
        "ASCENDING",
        "DESCENDING"
      ]
    },
    "offset": {
      "type": "integer",
      "description": "Offset on the cost values returned, 10 by default.",
      "format": "int32"
    },
    "skipRoundOff": {
      "type": "boolean",
      "description": "Skip Rounding off the cost values returned, false by default."
    },
    "viewParams": {
      "$ref": "#/$defs/ViewParams"
    }
  },
  "$defs": {
    "FieldFilter": {
      "type": "object",
      "properties": {
        "field": {
          "type": "string",
          "description": "List of all possible Fields",
          "enum": [
            "PERSPECTIVE_ID",
            "ANOMALY_ID",
            "WORKLOAD",
            "WORKLOAD_TYPE",
            "CLUSTER_ID",
            "CLUSTER_NAME",
            "CLUSTER_NAMESPACE",
            "CLUSTER_NAMESPACE_ID",
            "CLUSTER_WORKLOAD",
            "CLUSTER_WORKLOAD_ID",
            "CLUSTER_NODE",
            "CLUSTER_POD",
            "CLUSTER_PARENT_INSTANCE_ID",
            "CLUSTER_STORAGE",
            "CLUSTER_APPLICATION",
            "CLUSTER_ENVIRONMENT",
            "CLUSTER_SERVICE",
            "CLUSTER_CLOUD_PROVIDER",
            "CLUSTER_ECS_SERVICE",
            "CLUSTER_ECS_SERVICE_ID",
            "CLUSTER_ECS_TASK",
            "CLUSTER_ECS_TASK_ID",
            "CLUSTER_ECS_LAUNCH_TYPE",
            "CLUSTER_ECS_LAUNCH_TYPE_ID",
            "NAMESPACE",
            "SERVICE",
            "SERVICE_NAME",
            "GCP_PRODUCT",
            "GCP_PROJECT",
            "GCP_SKU_ID",
            "GCP_SKU_DESCRIPTION",
            "GCP_RESOURCE_GLOBAL_NAME",
            "AWS_ACCOUNT",
            "AWS_SERVICE",
            "AWS_INSTANCE_TYPE",
            "AWS_USAGE_TYPE",
            "AWS_BILLING_ENTITY",
            "AWS_LINE_ITEM_TYPE",
            "AWS_RESOURCE_ID",
            "AZURE_SUBSCRIPTION_GUID",
            "AZURE_METER_NAME",
            "AZURE_METER_CATEGORY",
            "AZURE_METER_SUBCATEGORY",
            "AZURE_RESOURCE_ID",
            "AZURE_RESOURCE_GROUP_NAME",
            "AZURE_RESOURCE_TYPE",
            "AZURE_RESOURCE",
            "AZURE_SERVICE_NAME",
            "AZURE_SERVICE_TIER",
            "AZURE_INSTANCE_ID",
            "AZURE_SUBSCRIPTION_NAME",
            "AZURE_PUBLISHER_NAME",
            "AZURE_PUBLISHER_TYPE",
            "AZURE_RESERVATION_ID",
            "AZURE_RESERVATION_NAME",
            "AZURE_FREQUENCY",
            "AZURE_CHARGE_TYPE",
            "AZURE_PRICING_MODEL",
            "AZURE_BENEFIT_NAME",
            "AZURE_RESOURCE_NAME",
            "OPENAI_PROJECT_ID",
            "OPENAI_MODEL",
            "OPENAI_USAGE_TYPE",
            "ANTHROPIC_PROJECT_ID",
            "ANTHROPIC_MODEL",
            "ANTHROPIC_USAGE_TYPE",
            "COMMON_PRODUCT",
            "COMMON_REGION",
            "COMMON_NONE",
            "CLOUD_PROVIDER",
            "STATUS",
            "REGION",
            "ANOMALY_TIME",
            "ACTUAL_COST",
            "EXPECTED_COST",
            "ANOMALOUS_SPEND",
            "COST_IMPACT",
            "ALL",
            "ANOMALOUS_SPEND_PERCENTAGE",
            "TOTAL_COST",
            "IDLE_COST",
            "UNALLOCATED_COST",
            "RULE_NAME",
            "RULE_SET_NAME",
            "POTENTIAL_SAVINGS",
            "LAST_EVALUATED_AT",
            "ANOMALY_STATUS",
            "RECOMMENDATIONS_COUNT",
            "ACTUAL_AMOUNT",
            "CRITICALITY",
            "DURATION",
            "UPDATED_AT",
            "UPDATED_BY",
            "UPDATED_AT_RELATIVE",
            "REPORTED_BY",
            "COST_CATEGORY_NAME",
            "COST_BUCKET_NAME",
            "UNIT_METRIC_NAME"
          ]
        },
        "operator": {
          "type": "string",
          "description": "List of all possible Operators",
          "enum": [
            "NOT_IN",
            "IN",
            "EQUALS",
            "NOT_NULL",
            "NULL",
            "LIKE",
            "GREATER_THAN",
            "LESS_THAN",
            "GREATER_THAN_EQUALS_TO",
            "LESS_THAN_EQUALS_TO",
            "AFTER",
            "BEFORE"
          ]
        },
        "values": {
          "type": "array",
          "description": "List of all values of the filter.",
          "items": {
            "type": "string",
            "description": "List of all values of the filter."
          }
        }
      },
      "description": "Filters return values as per the field, operator & List of string values provided"
    },
    "ViewParams": {
      "type": "object",
      "properties": {
        "viewTimeGranularity": {
          "type": "string",
          "description": "Granularity of Perspective timeseries data",
          "enum": [
            "DAY",
            "MONTH"
          ]
        },
        "isAITraceQuery": {
          "type": "boolean",
          "description": "When true, forces the query to use the AI Trace table (genai_aggregate_metrics)."
        }
      },
      "description": "Optional parameters for perspective GraphQL queries"
    }
  }
}