{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-anomaly-request-dto-schema.json", "title": "AnomalyRequestDTO", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/harness-anomalies-api-openapi.yml#/components/schemas/AnomalyRequestDTO", "type": "object", "properties": { "anomalyFilterPropertiesDTO": { "$ref": "#/$defs/AnomalyFilterProperties" }, "perspectiveQueryDTO": { "$ref": "#/$defs/PerspectiveQueryDTO" }, "showWhitelistedAnomalies": { "type": "boolean" } }, "$defs": { "AnomalyFilterProperties": { "type": "object", "properties": { "k8sClusterNames": { "type": "array", "description": "This is the list of Cluster Names on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Cluster Names on which filter will be applied." } }, "k8sNamespaces": { "type": "array", "description": "This is the list of Namespaces on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Namespaces on which filter will be applied." } }, "k8sWorkloadNames": { "type": "array", "description": "This is the list of Workload Names on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Workload Names on which filter will be applied." } }, "k8sServiceNames": { "type": "array", "description": "This is the list of Service Names on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Service Names on which filter will be applied." } }, "gcpProjects": { "type": "array", "description": "This is the list of GCP Projects on which filter will be applied.", "items": { "type": "string", "description": "This is the list of GCP Projects on which filter will be applied." } }, "gcpProducts": { "type": "array", "description": "This is the list of GCP Products on which filter will be applied.", "items": { "type": "string", "description": "This is the list of GCP Products on which filter will be applied." } }, "gcpSKUDescriptions": { "type": "array", "description": "This is the list of GCP SKU Descriptions on which filter will be applied.", "items": { "type": "string", "description": "This is the list of GCP SKU Descriptions on which filter will be applied." } }, "awsAccounts": { "type": "array", "description": "This is the list of AWS Accounts on which filter will be applied.", "items": { "type": "string", "description": "This is the list of AWS Accounts on which filter will be applied." } }, "awsServices": { "type": "array", "description": "This is the list of AWS Services on which filter will be applied.", "items": { "type": "string", "description": "This is the list of AWS Services on which filter will be applied." } }, "awsUsageTypes": { "type": "array", "description": "This is the list of AWS Usage Types on which filter will be applied.", "items": { "type": "string", "description": "This is the list of AWS Usage Types on which filter will be applied." } }, "azureSubscriptionGuids": { "type": "array", "description": "This is the list of Azure Subscription Guids on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Azure Subscription Guids on which filter will be applied." } }, "azureResourceGroups": { "type": "array", "description": "This is the list of Azure Resource Groups on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Azure Resource Groups on which filter will be applied." } }, "azureMeterCategories": { "type": "array", "description": "This is the list of Azure Meter Categories on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Azure Meter Categories on which filter will be applied." } }, "openaiProjectIds": { "type": "array", "description": "This is the list of OpenAI Project IDs on which filter will be applied.", "items": { "type": "string", "description": "This is the list of OpenAI Project IDs on which filter will be applied." } }, "openaiModels": { "type": "array", "description": "This is the list of OpenAI Models on which filter will be applied.", "items": { "type": "string", "description": "This is the list of OpenAI Models on which filter will be applied." } }, "openaiUsageTypes": { "type": "array", "description": "This is the list of OpenAI Usage Types on which filter will be applied.", "items": { "type": "string", "description": "This is the list of OpenAI Usage Types on which filter will be applied." } }, "anthropicProjectIds": { "type": "array", "description": "This is the list of Anthropic Project IDs on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Anthropic Project IDs on which filter will be applied." } }, "anthropicModels": { "type": "array", "description": "This is the list of Anthropic Models on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Anthropic Models on which filter will be applied." } }, "anthropicUsageTypes": { "type": "array", "description": "This is the list of Anthropic Usage Types on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Anthropic Usage Types on which filter will be applied." } }, "minActualAmount": { "type": "number", "description": "Fetch anomalies with Actual Amount greater-than or equal-to minActualAmount", "format": "double" }, "minAnomalousSpend": { "type": "number", "description": "Fetch anomalies with Anomalous Spend greater-than or equal-to minAnomalousSpend", "format": "double" }, "timeFilters": { "type": "array", "description": "List of filters to be applied on Anomaly Time", "items": { "$ref": "#/$defs/CCMTimeFilter" } }, "orderBy": { "type": "array", "description": "The order by condition for anomaly query", "items": { "$ref": "#/$defs/CCMSort" } }, "groupBy": { "type": "array", "description": "The group by clause for anomaly query", "items": { "$ref": "#/$defs/CCMGroupBy" } }, "aggregations": { "type": "array", "description": "The aggregations for anomaly query", "items": { "$ref": "#/$defs/CCMAggregation" } }, "searchText": { "type": "array", "description": "The search text entered to filter out rows", "items": { "type": "string", "description": "The search text entered to filter out rows" } }, "offset": { "type": "integer", "description": "Query Offset", "format": "int32" }, "limit": { "type": "integer", "description": "Query Limit", "format": "int32" }, "status": { "type": "array", "description": "This is the status of the anomaly [ACTIVE/IGNORED/ARCHIVED/RESOLVED]", "items": { "type": "string", "description": "This is the status of the anomaly [ACTIVE/IGNORED/ARCHIVED/RESOLVED]", "enum": [ "ACTIVE", "IGNORED", "ARCHIVED", "RESOLVED" ] } }, "anomalyIds": { "type": "array", "description": "This is the list of anomaly IDs on which filter will be applied.", "items": { "type": "string", "description": "This is the list of anomaly IDs on which filter will be applied." } }, "costCategoryDTOs": { "type": "array", "description": "Get anomalies for resources in particular cost bucket of given cost category", "items": { "$ref": "#/$defs/CCMCostCategoryDTO" } }, "costCategories": { "type": "array", "description": "Get anomalies detected for given cost categories", "items": { "type": "string", "description": "Get anomalies detected for given cost categories" } }, "perspectiveIds": { "type": "array", "description": "List of Perspective IDs to filter anomalies by. Anomalies matching ANY perspective will be returned.", "items": { "type": "string", "description": "List of Perspective IDs to filter anomalies by. Anomalies matching ANY perspective will be returned." } }, "anomalyView": { "type": "string", "enum": [ "RESOURCE", "COST_BUCKET", "UNIT_COST" ] }, "unitMetricNames": { "type": "array", "description": "This is the list of Unit Metric Names on which filter will be applied.", "items": { "type": "string", "description": "This is the list of Unit Metric Names on which filter will be applied." } }, "tags": { "type": "object", "additionalProperties": { "type": "string", "description": "Filter tags as a key-value pair." }, "description": "Filter tags as a key-value pair." }, "filterType": { "type": "string", "enum": [ "Anomaly" ] } }, "description": "Properties of the Anomaly Filter defined in Harness" }, "CCMAggregation": { "type": "object", "properties": { "operationType": { "type": "string", "enum": [ "SUM", "MAX", "MIN", "AVG", "COUNT" ] }, "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" ] } }, "description": "Fields which will be aggregated in the response" }, "CCMCostCategoryDTO": { "type": "object", "properties": { "costCategory": { "type": "string" }, "costBucket": { "type": "string" } }, "description": "This object will contain cost category and it's bucket value" }, "CCMGroupBy": { "type": "object", "properties": { "groupByField": { "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" ] } }, "description": "The group by clause for anomaly query" }, "CCMSort": { "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" ] }, "order": { "type": "string", "enum": [ "ASCENDING", "DESCENDING" ] } }, "description": "The order by condition for Rule Set query" }, "CCMTimeFilter": { "type": "object", "properties": { "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" ] }, "timestamp": { "type": "integer", "format": "int64" } }, "description": "Time" }, "PerspectiveQueryDTO": { "type": "object", "properties": { "filters": { "type": "array", "description": "The filters for perspective query", "items": { "$ref": "#/$defs/QLCEViewFilterWrapper" } }, "groupBy": { "type": "array", "description": "The group by clause for perspective query", "items": { "$ref": "#/$defs/QLCEViewGroupBy" } } }, "description": "The query object for perspective cost anomalies" }, "QLCEViewFieldInput": { "type": "object", "properties": { "fieldId": { "type": "string" }, "fieldName": { "type": "string" }, "identifier": { "type": "string", "description": "Perspective filter Category, CLUSTER means Kubernetes", "enum": [ "CLUSTER", "AWS", "GCP", "AZURE", "OPENAI", "ANTHROPIC", "AI", "AI_TRACE", "EXTERNAL_DATA", "COMMON", "CUSTOM", "BUSINESS_MAPPING", "LABEL", "LABEL_V2" ] }, "identifierName": { "type": "string" } } }, "QLCEViewFilter": { "type": "object", "properties": { "field": { "$ref": "#/$defs/QLCEViewFieldInput" }, "operator": { "type": "string", "enum": [ "NOT_IN", "IN", "EQUALS", "NOT_NULL", "NULL", "LIKE", "SEARCH" ] }, "values": { "type": "array", "items": { "type": "string" } } } }, "QLCEViewFilterWrapper": { "type": "object", "properties": { "idFilter": { "$ref": "#/$defs/QLCEViewFilter" }, "timeFilter": { "$ref": "#/$defs/QLCEViewTimeFilter" }, "timeRangeTypeFilter": { "type": "string", "enum": [ "LAST_MONTH", "CURRENT_MONTH" ] }, "viewMetadataFilter": { "$ref": "#/$defs/QLCEViewMetadataFilter" }, "ruleFilter": { "$ref": "#/$defs/QLCEViewRule" } }, "description": "Get Recommendations for a perspective" }, "QLCEViewGroupBy": { "type": "object", "properties": { "entityGroupBy": { "$ref": "#/$defs/QLCEViewFieldInput" }, "timeTruncGroupBy": { "$ref": "#/$defs/QLCEViewTimeTruncGroupBy" } } }, "QLCEViewMetadataFilter": { "type": "object", "properties": { "viewId": { "type": "string" }, "isPreview": { "type": "boolean" }, "preview": { "type": "boolean" } } }, "QLCEViewRule": { "type": "object", "properties": { "conditions": { "type": "array", "items": { "$ref": "#/$defs/QLCEViewFilter" } } } }, "QLCEViewTimeFilter": { "type": "object", "properties": { "field": { "$ref": "#/$defs/QLCEViewFieldInput" }, "operator": { "type": "string", "enum": [ "AFTER", "BEFORE" ] }, "value": { "type": "number" } } }, "QLCEViewTimeTruncGroupBy": { "type": "object", "properties": { "resolution": { "type": "string", "enum": [ "HOUR", "DAY", "MONTH", "WEEK", "QUARTER", "YEAR" ] } } } } }