{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-list-activity-resource-changes-response-schema.json", "title": "ListActivityResourceChangesResponse", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/harness-activities-api-openapi.yml#/components/schemas/ListActivityResourceChangesResponse", "type": "object", "properties": { "data_sources": { "$ref": "#/$defs/ResourceCollection" }, "drift_changes": { "$ref": "#/$defs/ChangedResourceCollection" }, "has_dependency_graph": { "type": "boolean", "description": "Whether dependency graph data is available" }, "outputs": { "$ref": "#/$defs/ChangedOutputCollection" }, "pipeline_execution": { "type": "string", "description": "the identifier of the pipeline execution changes were made from." }, "pipeline_stage": { "type": "string", "description": "the identifier of the pipeline stage execution changes were made from." }, "planned_changes": { "$ref": "#/$defs/ChangedResourceCollection" }, "resources": { "$ref": "#/$defs/ResourceCollection" }, "risk_assessment": { "$ref": "#/$defs/RiskAssessment" }, "stage_id": { "type": "string", "description": "The stage ID" }, "workspace_id": { "type": "string", "description": "identifier of the workspace associated with the data" } }, "required": [ "pipeline_execution", "drift_changes", "planned_changes", "resources", "data_sources", "outputs", "workspace_id", "stage_id" ], "$defs": { "ChangedOutputCollection": { "type": "array", "items": { "$ref": "#/$defs/HarnessIacmChangedOutput" } }, "ChangedResourceCollection": { "type": "array", "items": { "$ref": "#/$defs/HarnessIacmChangedResource" } }, "HarnessIacmChangedOutput": { "type": "object", "properties": { "change": { "type": "string", "description": "Change made to this resource.", "enum": [ "added", "changed", "deleted", "unchanged" ] }, "expression": { "type": "string", "description": "JEXL expression for dynamic output resolution" }, "name": { "type": "string", "description": "Name associated with the output." }, "new": { "type": "string", "description": "Updated value" }, "old": { "type": "string", "description": "Previous value." }, "sensitive": { "type": "boolean", "description": "Indicates whether this value is sensitive" }, "stack_path": { "type": "string", "description": "Stack path for Terragrunt workspaces" } }, "description": "Represents an individual output variable.", "required": [ "change", "name", "value", "sensitive" ] }, "HarnessIacmChangedResource": { "type": "object", "properties": { "change": { "type": "string", "description": "Change made to this resource.", "enum": [ "added", "changed", "deleted", "unchanged", "imported", "removed" ] }, "change_count": { "type": "integer", "description": "Count of changes made to this resource.", "format": "int64" }, "changes": { "type": "object", "description": "New values for this resource", "additionalProperties": { "$ref": "#/$defs/ValueChange" } }, "drift": { "type": "boolean", "description": "Indicates whether this resource is experiencing drift" }, "module": { "type": "string", "description": "Module associated with the resource." }, "name": { "type": "string", "description": "Name associated with the resource." }, "provider": { "type": "string", "description": "Cloud provider associated with the resource." }, "type": { "type": "string", "description": "Type of the provisioned resource." } }, "description": "Represents a change to an individual provisioned resource.", "required": [ "provider", "type", "name", "module", "drift", "change", "change_count", "changes", "mode", "path_id", "resource_id", "attributes", "drift_status", "drift_attributes", "sensitive_attributes" ] }, "HarnessIacmResource": { "type": "object", "properties": { "attributes": { "type": "object", "description": "A map of values related to the resource", "additionalProperties": true }, "createdAt": { "type": "integer", "description": "Timestamp when the resource was created.", "format": "int64" }, "drift_attributes": { "type": "object", "description": "A map of values related to the resource", "additionalProperties": true }, "drift_status": { "type": "string", "description": "Indicates if this resource is experiencing drift.", "enum": [ "changed", "deleted", "unchanged" ] }, "lastSyncedAt": { "type": "integer", "description": "Timestamp when the resource was last updated.", "format": "int64" }, "mode": { "type": "string", "description": "Mode associated with the resource.", "enum": [ "resource", "data", "output" ] }, "module": { "type": "string", "description": "Module associated with the resource." }, "monthly_cost": { "type": "number", "description": "Current period cost from CCM (null if no cost data).", "format": "double" }, "monthly_saving": { "type": "number", "description": "Monthly potential saving from CCM (null if no cost data).", "format": "double" }, "name": { "type": "string", "description": "Name associated with the resource." }, "path_id": { "type": "string", "description": "Path associated with the resource. Could be namespace, environment or stack id." }, "provider": { "type": "string", "description": "Cloud provider associated with the resource." }, "recommendation_count": { "type": "integer", "description": "Number of CCM recommendations for this resource (null if no cost data).", "format": "int64" }, "resource_id": { "type": "string", "description": "Unique identifier for the resource from the cloud provider." }, "sensitive_attributes": { "type": "array", "items": {}, "description": "A list of the sensitive attribute keys " }, "type": { "type": "string", "description": "Type of the provisioned resource." } }, "description": "Represents an individual provisioned resource.", "required": [ "provider", "type", "name", "module", "mode", "path_id", "resource_id", "attributes", "drift_status", "drift_attributes", "sensitive_attributes" ] }, "OverallRiskSummary": { "type": "object", "properties": { "overall_level": { "type": "string", "description": "Risk level category", "enum": [ "LOW", "MEDIUM", "HIGH" ] }, "overall_score": { "type": "integer", "description": "Overall deployment risk score from 1 to 10", "format": "int64", "minimum": 1, "maximum": 10 }, "reason": { "type": "string", "description": "Human-readable explanation of the score" } }, "description": "Deployment-wide risk assessment.", "required": [ "overall_score", "overall_level", "reason" ] }, "ResourceCollection": { "type": "array", "items": { "$ref": "#/$defs/HarnessIacmResource" } }, "ResourceRisk": { "type": "object", "properties": { "risk_factors": { "type": "array", "items": { "type": "string" }, "description": "List of risk factors" }, "risk_level": { "type": "string", "description": "Risk level category", "enum": [ "LOW", "MEDIUM", "HIGH" ] }, "risk_mitigation": { "type": "array", "items": { "type": "string" }, "description": "Mitigation recommendations (absent when no risk factors)" }, "risk_score": { "type": "integer", "description": "Risk score from 1 to 10", "format": "int64", "minimum": 1, "maximum": 10 } }, "description": "Risk assessment for an individual resource", "required": [ "risk_score", "risk_level", "risk_factors" ] }, "RiskAssessment": { "type": "object", "properties": { "overall_risk_summary": { "$ref": "#/$defs/OverallRiskSummary" }, "resource_risks": { "type": "object", "description": "Risk data keyed by resource address", "additionalProperties": { "$ref": "#/$defs/ResourceRisk" } } }, "description": "Risk assessment containing overall summary and per-resource risks", "required": [ "overall_risk_summary", "resource_risks" ] }, "ValueChange": { "type": "object", "properties": { "change": { "type": "string", "description": "Change made to this resource.", "enum": [ "added", "changed", "deleted", "unchanged" ] }, "drift": { "type": "boolean", "description": "Indicates whether this attribute is experiencing drift" }, "new": { "type": "string", "description": "Updated value" }, "old": { "type": "string", "description": "Previous value." }, "sensitive": { "type": "boolean", "description": "Indicates whether this value is sensitive" } }, "required": [ "change", "drift", "sensitive" ] } } }