{
  "$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"
      ]
    }
  }
}