> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/api-reference/iacm/executions.md).

# Executions

Executions Service handles the API for workflow executions.

At this time it is a read-only API with no ability to directly create or edit executions. Instead these are triggered from the Workspaces Service.

## List executions

> List all executions.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions":{"get":{"tags":["executions"],"summary":"List executions","description":"List all executions.","operationId":"executions#list-executions","parameters":[{"name":"limit","in":"query","description":"Limit is the number of records to return for a page.","allowEmptyValue":true,"schema":{"type":"integer","description":"Limit is the number of records to return for a page.","default":30,"format":"int64","minimum":1,"maximum":1000}},{"name":"page","in":"query","description":"Page is the page number to return relative to the page 'limit'.","allowEmptyValue":true,"schema":{"type":"integer","description":"Page is the page number to return relative to the page 'limit'.","default":1,"format":"int64","minimum":1}},{"name":"workspace","in":"query","description":"Workspace identifier","allowEmptyValue":true,"schema":{"type":"string","description":"Workspace identifier"}},{"name":"pipeline_execution_id","in":"query","description":"Pipeline identifier","allowEmptyValue":true,"schema":{"type":"string","description":"Pipeline identifier"}},{"name":"status","in":"query","description":"Status of the execution","allowEmptyValue":true,"schema":{"type":"array","items":{"type":"string"},"description":"Status of the execution"}},{"name":"pipeline_name","in":"query","description":"Pipeline name","allowEmptyValue":true,"schema":{"type":"string","description":"Pipeline name"}},{"name":"start_time","in":"query","description":"Specify the start time for the query","allowEmptyValue":true,"schema":{"type":"integer","description":"Specify the start time for the query","format":"int64"}},{"name":"end_time","in":"query","description":"Specify the end time limit for the query","allowEmptyValue":true,"schema":{"type":"integer","description":"Specify the end time limit for the query","format":"int64"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecutionResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ExecutionResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmExecution"}},"HarnessIacmExecution":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline":{"type":"string","description":"The unique identifier for the associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for the associated pipeline execution"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"status":{"type":"string","description":"The overall status of the execution","enum":["none","success","failure"]},"workspace":{"type":"string","description":"The unique identifier for the associated workspace"}},"description":"ExecutionResource is the representation for a single workflow execution.","required":["status","created","account","org","project","pipeline_execution_id","pipeline_stage_id","workspace","pipeline"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Create execution

> Create a new execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions":{"post":{"tags":["executions"],"summary":"Create execution","description":"Create a new execution.","operationId":"executions#create-execution","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExecutionRequest"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExecutionResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"CreateExecutionRequest":{"type":"object","properties":{"pipeline":{"type":"string","description":"The unique identifier for the associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for the associated pipeline execution"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"workspace":{"type":"string","description":"The unique identifier for the associated workspace"}},"required":["pipeline_execution_id","pipeline_stage_id","workspace","pipeline"]},"CreateExecutionResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline":{"type":"string","description":"The unique identifier for the associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for the associated pipeline execution"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"status":{"type":"string","description":"The overall status of the execution","enum":["none","success","failure"]},"workspace":{"type":"string","description":"The unique identifier for the associated workspace"}},"required":["status","created","account","org","project","pipeline_execution_id","pipeline_stage_id","workspace","pipeline"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Show execution

> Show an individual execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}":{"get":{"tags":["executions"],"summary":"Show execution","description":"Show an individual execution.","operationId":"executions#show-execution","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"pipeline_stage_id","in":"path","description":"Pipeline execution stage ID","required":true,"schema":{"type":"string","description":"Pipeline execution stage ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShowExecutionResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ShowExecutionResponse":{"type":"object","properties":{"account":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128},"created":{"type":"integer","description":"Created is the unix timestamp at which the resource was originally created in milliseconds.","format":"int64"},"org":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128},"pipeline":{"type":"string","description":"The unique identifier for the associated pipeline"},"pipeline_execution_id":{"type":"string","description":"The unique identifier for the associated pipeline execution"},"pipeline_stage_id":{"type":"string","description":"The unique identifier for the associated pipeline stage"},"project":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128},"status":{"type":"string","description":"The overall status of the execution","enum":["none","success","failure"]},"workspace":{"type":"string","description":"The unique identifier for the associated workspace"}},"required":["status","created","account","org","project","pipeline_execution_id","pipeline_stage_id","workspace","pipeline"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Update execution

> Modify an individual execution by adding audit data.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/audit-event":{"post":{"tags":["executions"],"summary":"Update execution","description":"Modify an individual execution by adding audit data.","operationId":"executions#modify-execution","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"pipeline_stage_id","in":"path","description":"Pipeline execution stage ID","required":true,"schema":{"type":"string","description":"Pipeline execution stage ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExecutionRequest"}}}},"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UpdateExecutionRequest":{"type":"object","properties":{"audit":{"$ref":"#/components/schemas/Audit"}}},"Audit":{"type":"object","properties":{"git_audit_data":{"$ref":"#/components/schemas/GitAuditData"}}},"GitAuditData":{"type":"object","properties":{"hash":{"type":"string","description":"Hash of the git branch used","minLength":1,"maxLength":128},"name":{"type":"string","description":"The name of the branch or tag used"},"repo_url":{"type":"string","description":"Url of the repo used","minLength":1},"type":{"type":"string","description":"Type of fetch used to get the data","enum":["branch","tag"]}},"required":["hash","repo_url"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Upload resource change page

> Upload a single sharded resource-change page file for an execution stage.\
> \
> Resource-change data is split into categories (planned\_changes, drift\_changes,\
> resources, etc.) and each category is sharded into zero-based pages. The request\
> body is the raw page file (application/octet-stream) and is currently discarded.\
> \
> The planned\_changes and drift\_changes categories are uploaded twice: once as pages\
> of the whole category, and once as pages of a single change type, identified by the\
> change parameter. Rows in both categories are expected pre-sorted by change-type\
> priority (deleted, added, changed, unchanged, removed, imported).\
> \
> The body is a JSON array whose element shape depends on {category}:\
> \
> &#x20; planned\_changes | unchanged | drift\_changes  ->  ChangedResource\[]\
> &#x20; resources | data\_sources                     ->  Resource\[]\
> &#x20; outputs                                       ->  Output\[]\
> \
> Example body (category=planned\_changes):\
> \`\`\`json\
> \[\
> &#x20; {\
> &#x20;   "provider": "AWS",\
> &#x20;   "type": "aws\_s3\_bucket",\
> &#x20;   "name": "app\_bucket",\
> &#x20;   "module": "root",\
> &#x20;   "change": "added",\
> &#x20;   "change\_count": 1,\
> &#x20;   "drift": false,\
> &#x20;   "changes": {\
> &#x20;     "bucket": { "change": "added", "old": "", "new": "my-bucket" }\
> &#x20;   }\
> &#x20; }\
> ]\
> \`\`\`\
> \
> Example body (category=resources):\
> \`\`\`json\
> \[\
> &#x20; {\
> &#x20;   "provider": "AWS",\
> &#x20;   "type": "aws\_instance",\
> &#x20;   "name": "app\_server",\
> &#x20;   "module": "root",\
> &#x20;   "mode": "resource",\
> &#x20;   "path\_id": "namespace",\
> &#x20;   "resource\_id": "i-0abc123",\
> &#x20;   "attributes": { "instance\_type": "t2.micro" },\
> &#x20;   "drift\_status": "unchanged",\
> &#x20;   "drift\_attributes": {},\
> &#x20;   "sensitive\_attributes": \[]\
> &#x20; }\
> ]\
> \`\`\`

````json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/{category}/{page}":{"post":{"tags":["executions"],"summary":"Upload resource change page","description":"Upload a single sharded resource-change page file for an execution stage.\n\nResource-change data is split into categories (planned_changes, drift_changes,\nresources, etc.) and each category is sharded into zero-based pages. The request\nbody is the raw page file (application/octet-stream) and is currently discarded.\n\nThe planned_changes and drift_changes categories are uploaded twice: once as pages\nof the whole category, and once as pages of a single change type, identified by the\nchange parameter. Rows in both categories are expected pre-sorted by change-type\npriority (deleted, added, changed, unchanged, removed, imported).\n\nThe body is a JSON array whose element shape depends on {category}:\n\n  planned_changes | unchanged | drift_changes  ->  ChangedResource[]\n  resources | data_sources                     ->  Resource[]\n  outputs                                       ->  Output[]\n\nExample body (category=planned_changes):\n```json\n[\n  {\n    \"provider\": \"AWS\",\n    \"type\": \"aws_s3_bucket\",\n    \"name\": \"app_bucket\",\n    \"module\": \"root\",\n    \"change\": \"added\",\n    \"change_count\": 1,\n    \"drift\": false,\n    \"changes\": {\n      \"bucket\": { \"change\": \"added\", \"old\": \"\", \"new\": \"my-bucket\" }\n    }\n  }\n]\n```\n\nExample body (category=resources):\n```json\n[\n  {\n    \"provider\": \"AWS\",\n    \"type\": \"aws_instance\",\n    \"name\": \"app_server\",\n    \"module\": \"root\",\n    \"mode\": \"resource\",\n    \"path_id\": \"namespace\",\n    \"resource_id\": \"i-0abc123\",\n    \"attributes\": { \"instance_type\": \"t2.micro\" },\n    \"drift_status\": \"unchanged\",\n    \"drift_attributes\": {},\n    \"sensitive_attributes\": []\n  }\n]\n```","operationId":"executions#upload-resource-change-page","parameters":[{"name":"change","in":"query","description":"Change type this page is filtered to, for the per-change-type shards of planned_changes and drift_changes. Omit it for a page of the whole category.","allowEmptyValue":true,"schema":{"type":"string","description":"Change type this page is filtered to, for the per-change-type shards of planned_changes and drift_changes. Omit it for a page of the whole category.","enum":["added","changed","deleted","unchanged","removed","imported"]}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"pipeline_stage_id","in":"path","description":"Pipeline execution stage ID","required":true,"schema":{"type":"string","description":"Pipeline execution stage ID","minLength":1,"maxLength":128}},{"name":"category","in":"path","description":"Resource-change category the page belongs to","required":true,"schema":{"type":"string","description":"Resource-change category the page belongs to","enum":["planned_changes","unchanged","drift_changes","resources","data_sources","outputs"]}},{"name":"page","in":"path","description":"1-indexed page number within the category","required":true,"schema":{"type":"integer","description":"1-indexed page number within the category","format":"int64","minimum":1}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}},{"name":"Content-Length","in":"header","description":"Size in bytes of the uploaded page file.","allowEmptyValue":true,"schema":{"type":"integer","description":"Size in bytes of the uploaded page file.","format":"int64"}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
````

## Commit resource changes

> Upload the counts.json commit marker for an execution stage's resource changes.\
> \
> Sent after all category pages have been uploaded to signal the upload is\
> complete; the body is the counts.json object (application/octet-stream) and is\
> currently discarded. It carries the badge totals the UI needs without scanning\
> the paged files.\
> \
> Example body:\
> \`\`\`json\
> {\
> &#x20; "PlannedTotal": 42,\
> &#x20; "PlannedByChangeType": { "added": 10, "changed": 8, "deleted": 2, "unchanged": 22 },\
> &#x20; "Drift": 3,\
> &#x20; "Resources": 120,\
> &#x20; "DataSources": 15,\
> &#x20; "Outputs": 6\
> }\
> \`\`\`

````json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/counts":{"post":{"tags":["executions"],"summary":"Commit resource changes","description":"Upload the counts.json commit marker for an execution stage's resource changes.\n\nSent after all category pages have been uploaded to signal the upload is\ncomplete; the body is the counts.json object (application/octet-stream) and is\ncurrently discarded. It carries the badge totals the UI needs without scanning\nthe paged files.\n\nExample body:\n```json\n{\n  \"PlannedTotal\": 42,\n  \"PlannedByChangeType\": { \"added\": 10, \"changed\": 8, \"deleted\": 2, \"unchanged\": 22 },\n  \"Drift\": 3,\n  \"Resources\": 120,\n  \"DataSources\": 15,\n  \"Outputs\": 6\n}\n```","operationId":"executions#commit-resource-changes","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"pipeline_stage_id","in":"path","description":"Pipeline execution stage ID","required":true,"schema":{"type":"string","description":"Pipeline execution stage ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}},{"name":"Content-Length","in":"header","description":"Size in bytes of the counts.json object.","allowEmptyValue":true,"schema":{"type":"integer","description":"Size in bytes of the counts.json object.","format":"int64"}}],"responses":{"200":{"description":"OK response."},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
````

## List cost changes

> List cost changes from the latest plan and last applied state for the current execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes":{"get":{"tags":["executions"],"summary":"List cost changes","description":"List cost changes from the latest plan and last applied state for the current execution.","operationId":"executions#list-cost-changes","parameters":[{"name":"pipeline_stage_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","default":""}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCostChangesResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ListCostChangesResponse":{"type":"object","properties":{"currency":{"type":"string","description":"Currency of the costs"},"diff":{"type":"object","description":"Map of the type of resources and their costs.","additionalProperties":{"$ref":"#/components/schemas/HarnessIacmCostResourcesByType"}},"diff_total_monthly_cost":{"type":"string","description":"Difference of cost between workspaces per month"},"past_total_monthly_cost":{"type":"string","description":"Total cost of the resources per month for the last workspace"},"percentage_change_total_monthly_cost":{"type":"integer","description":"The change between the costs per month represented as a percentage","format":"int64"},"stage_execution_id":{"type":"string","description":"The stage execution ID"},"stage_id":{"type":"string","description":"The stage ID"},"total_monthly_cost":{"type":"string","description":"Total cost of the resources per month"},"workspace_id":{"type":"string","description":"The workspace identifier"}},"required":["currency","diff","total_monthly_cost","past_total_monthly_cost","diff_total_monthly_cost","percentage_change_total_monthly_cost","stage_id","stage_execution_id","workspace_id"]},"HarnessIacmCostResourcesByType":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff":{"$ref":"#/components/schemas/CostResourcesCollection"},"diff_monthly_cost":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"}},"required":["diff","current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"CostResourcesCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmCostResource"}},"HarnessIacmCostResource":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff_monthly_cost":{"type":"string"},"name":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"},"subresources":{"type":"object","description":"List of subresources for a resource","additionalProperties":{"$ref":"#/components/schemas/HarnessIacmCostSubresource"}}},"description":"Cost of the given resource","required":["name","current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"HarnessIacmCostSubresource":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff_monthly_cost":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"}},"description":"Cost of the given subresource","required":["current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List cost changes for all stages

> List cost changes for all stages from the latest plan and last applied state for the current execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes-all-stages":{"get":{"tags":["executions"],"summary":"List cost changes for all stages","description":"List cost changes for all stages from the latest plan and last applied state for the current execution.","operationId":"executions#list-cost-changes-all-stages","parameters":[{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangedCostsCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ChangedCostsCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedCosts"}},"HarnessIacmChangedCosts":{"type":"object","properties":{"currency":{"type":"string","description":"Currency of the costs"},"diff":{"type":"object","description":"Map of the type of resources and their costs.","additionalProperties":{"$ref":"#/components/schemas/HarnessIacmCostResourcesByType"}},"diff_total_monthly_cost":{"type":"string","description":"Difference of cost between workspaces per month"},"past_total_monthly_cost":{"type":"string","description":"Total cost of the resources per month for the last workspace"},"percentage_change_total_monthly_cost":{"type":"integer","description":"The change between the costs per month represented as a percentage","format":"int64"},"stage_execution_id":{"type":"string","description":"The stage execution ID"},"stage_id":{"type":"string","description":"The stage ID"},"total_monthly_cost":{"type":"string","description":"Total cost of the resources per month"},"workspace_id":{"type":"string","description":"The workspace identifier"}},"description":"Contains the difference in cost of the resources that are changing","required":["currency","diff","total_monthly_cost","past_total_monthly_cost","diff_total_monthly_cost","percentage_change_total_monthly_cost","stage_id","stage_execution_id","workspace_id"]},"HarnessIacmCostResourcesByType":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff":{"$ref":"#/components/schemas/CostResourcesCollection"},"diff_monthly_cost":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"}},"required":["diff","current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"CostResourcesCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmCostResource"}},"HarnessIacmCostResource":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff_monthly_cost":{"type":"string"},"name":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"},"subresources":{"type":"object","description":"List of subresources for a resource","additionalProperties":{"$ref":"#/components/schemas/HarnessIacmCostSubresource"}}},"description":"Cost of the given resource","required":["name","current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"HarnessIacmCostSubresource":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff_monthly_cost":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"}},"description":"Cost of the given subresource","required":["current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List cost changes for all stages by modules

> List cost changes per module (stack path) for all stages for the current execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes-all-stages-by-modules":{"get":{"tags":["executions"],"summary":"List cost changes for all stages by modules","description":"List cost changes per module (stack path) for all stages for the current execution.","operationId":"executions#list-cost-changes-all-stages-by-modules","parameters":[{"name":"stack_path","in":"query","description":"Optional module stack path filter","allowEmptyValue":true,"schema":{"type":"string","description":"Optional module stack path filter","default":""}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangedCostsByModuleResourceCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ChangedCostsByModuleResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedcostsbymoduleresource"}},"HarnessIacmChangedcostsbymoduleresource":{"type":"object","properties":{"modules":{"type":"object","description":"Map of module/stack path to its ChangedCosts","additionalProperties":{"$ref":"#/components/schemas/HarnessIacmChangedCosts"}},"stage_execution_id":{"type":"string"},"stage_id":{"type":"string"},"workspace_id":{"type":"string"}},"description":"Changed costs grouped by module (stack path) for a single stage execution","required":["modules"]},"HarnessIacmChangedCosts":{"type":"object","properties":{"currency":{"type":"string","description":"Currency of the costs"},"diff":{"type":"object","description":"Map of the type of resources and their costs.","additionalProperties":{"$ref":"#/components/schemas/HarnessIacmCostResourcesByType"}},"diff_total_monthly_cost":{"type":"string","description":"Difference of cost between workspaces per month"},"past_total_monthly_cost":{"type":"string","description":"Total cost of the resources per month for the last workspace"},"percentage_change_total_monthly_cost":{"type":"integer","description":"The change between the costs per month represented as a percentage","format":"int64"},"stage_execution_id":{"type":"string","description":"The stage execution ID"},"stage_id":{"type":"string","description":"The stage ID"},"total_monthly_cost":{"type":"string","description":"Total cost of the resources per month"},"workspace_id":{"type":"string","description":"The workspace identifier"}},"description":"Contains the difference in cost of the resources that are changing","required":["currency","diff","total_monthly_cost","past_total_monthly_cost","diff_total_monthly_cost","percentage_change_total_monthly_cost","stage_id","stage_execution_id","workspace_id"]},"HarnessIacmCostResourcesByType":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff":{"$ref":"#/components/schemas/CostResourcesCollection"},"diff_monthly_cost":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"}},"required":["diff","current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"CostResourcesCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmCostResource"}},"HarnessIacmCostResource":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff_monthly_cost":{"type":"string"},"name":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"},"subresources":{"type":"object","description":"List of subresources for a resource","additionalProperties":{"$ref":"#/components/schemas/HarnessIacmCostSubresource"}}},"description":"Cost of the given resource","required":["name","current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"HarnessIacmCostSubresource":{"type":"object","properties":{"current_monthly_cost":{"type":"string"},"diff_monthly_cost":{"type":"string"},"percentage_change_monthly_cost":{"type":"integer","format":"int64"},"previous_monthly_cost":{"type":"string"}},"description":"Cost of the given subresource","required":["current_monthly_cost","previous_monthly_cost","diff_monthly_cost","percentage_change_monthly_cost"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get dependency graph

> Get dependency graph for an execution

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/dependency-graph":{"get":{"tags":["executions"],"summary":"Get dependency graph","description":"Get dependency graph for an execution","operationId":"executions#get-dependency-graph","parameters":[{"name":"pipeline_stage_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","default":""}},{"name":"path_id","in":"query","description":"Terragrunt path identifier for filtering module-specific graph","allowEmptyValue":true,"schema":{"type":"string","description":"Terragrunt path identifier for filtering module-specific graph"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List resource changes

> List resource changes from the latest plan and state for this execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes":{"get":{"tags":["executions"],"summary":"List resource changes","description":"List resource changes from the latest plan and state for this execution.","operationId":"executions#list-resource-changes","parameters":[{"name":"exclude_state","in":"query","description":"When true, exclude values from the state in the response","allowEmptyValue":true,"schema":{"type":"boolean","description":"When true, exclude values from the state in the response","default":false}},{"name":"pipeline_stage_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","default":""}},{"name":"path_id","in":"query","description":"Terragrunt path identifier for filtering module-specific resources","allowEmptyValue":true,"schema":{"type":"string","description":"Terragrunt path identifier for filtering module-specific resources"}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResourceChangesResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ListResourceChangesResponse":{"type":"object","properties":{"data_sources":{"$ref":"#/components/schemas/ResourceCollection"},"drift_changes":{"$ref":"#/components/schemas/ChangedResourceCollection"},"has_dependency_graph":{"type":"boolean","description":"Whether dependency graph data is available"},"outputs":{"$ref":"#/components/schemas/OutputCollection2"},"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":"#/components/schemas/ChangedResourceCollection"},"resources":{"$ref":"#/components/schemas/ResourceCollection"},"risk_assessment":{"$ref":"#/components/schemas/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"]},"ResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmResource"}},"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"]},"ChangedResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedResource"}},"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":"#/components/schemas/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"]},"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"]},"OutputCollection2":{"$ref":"#/components/schemas/ChangedOutputCollection"},"ChangedOutputCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedOutput"}},"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"]},"RiskAssessment":{"type":"object","properties":{"overall_risk_summary":{"$ref":"#/components/schemas/OverallRiskSummary"},"resource_risks":{"type":"object","description":"Risk data keyed by resource address","additionalProperties":{"$ref":"#/components/schemas/ResourceRisk"}}},"description":"Risk assessment containing overall summary and per-resource risks","required":["overall_risk_summary","resource_risks"]},"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"]},"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"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## List resource changes for all stages

> List resource changes for all stages from the latest plan and state for this execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes-all-stages":{"get":{"tags":["executions"],"summary":"List resource changes for all stages","description":"List resource changes for all stages from the latest plan and state for this execution.","operationId":"executions#list-resource-changes-all-stages","parameters":[{"name":"exclude_state","in":"query","description":"When true, exclude values from the state in the response","allowEmptyValue":true,"schema":{"type":"boolean","description":"When true, exclude values from the state in the response","default":false}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangedResourcesCollection"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ChangedResourcesCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedResources"}},"HarnessIacmChangedResources":{"type":"object","properties":{"data_sources":{"$ref":"#/components/schemas/ResourceCollection"},"drift_changes":{"$ref":"#/components/schemas/ChangedResourceCollection"},"has_dependency_graph":{"type":"boolean","description":"Whether dependency graph data is available"},"outputs":{"$ref":"#/components/schemas/OutputCollection2"},"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":"#/components/schemas/ChangedResourceCollection"},"resources":{"$ref":"#/components/schemas/ResourceCollection"},"risk_assessment":{"$ref":"#/components/schemas/RiskAssessment"},"stage_id":{"type":"string","description":"The stage ID"},"workspace_id":{"type":"string","description":"identifier of the workspace associated with the data"}},"description":"Contains changed resources and outputs.","required":["pipeline_execution","drift_changes","planned_changes","resources","data_sources","outputs","workspace_id","stage_id"]},"ResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmResource"}},"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"]},"ChangedResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedResource"}},"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":"#/components/schemas/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"]},"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"]},"OutputCollection2":{"$ref":"#/components/schemas/ChangedOutputCollection"},"ChangedOutputCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedOutput"}},"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"]},"RiskAssessment":{"type":"object","properties":{"overall_risk_summary":{"$ref":"#/components/schemas/OverallRiskSummary"},"resource_risks":{"type":"object","description":"Risk data keyed by resource address","additionalProperties":{"$ref":"#/components/schemas/ResourceRisk"}}},"description":"Risk assessment containing overall summary and per-resource risks","required":["overall_risk_summary","resource_risks"]},"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"]},"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"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get resource change counts

> Get resource-change badge totals for a sharded execution.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes/counts":{"get":{"tags":["executions"],"summary":"Get resource change counts","description":"Get resource-change badge totals for a sharded execution.","operationId":"executions#get-resource-change-counts","parameters":[{"name":"pipeline_stage_id","in":"query","description":"Pipeline execution stage ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Pipeline execution stage ID","minLength":1,"maxLength":128}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetResourceChangeCountsResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"GetResourceChangeCountsResponse":{"type":"object","properties":{"added":{"type":"integer","description":"Count of added resources in planned changes.","format":"int64"},"changed":{"type":"integer","description":"Count of changed resources in planned changes.","format":"int64"},"data_sources":{"type":"integer","description":"Badge for data_sources filter.","format":"int64"},"deleted":{"type":"integer","description":"Count of deleted resources in planned changes.","format":"int64"},"drift_added":{"type":"integer","description":"Count of added resources in drift changes.","format":"int64"},"drift_changed":{"type":"integer","description":"Count of changed resources in drift changes.","format":"int64"},"drift_changes":{"type":"integer","description":"Badge for drift_changes filter.","format":"int64"},"drift_deleted":{"type":"integer","description":"Count of deleted resources in drift changes.","format":"int64"},"drift_imported":{"type":"integer","description":"Count of imported resources in drift changes.","format":"int64"},"drift_removed":{"type":"integer","description":"Count of removed resources in drift changes.","format":"int64"},"drift_unchanged":{"type":"integer","description":"Count of unchanged resources in drift changes, which unlike planned unchanged rows are part of the drift_changes total.","format":"int64"},"imported":{"type":"integer","description":"Count of imported resources in planned changes.","format":"int64"},"outputs":{"type":"integer","description":"Badge for outputs filter.","format":"int64"},"planned_changes":{"type":"integer","description":"Badge for planned_changes filter.","format":"int64"},"removed":{"type":"integer","description":"Count of removed resources in planned changes.","format":"int64"},"resources":{"type":"integer","description":"Badge for resources filter.","format":"int64"},"unchanged":{"type":"integer","description":"Count of unchanged resources (own lazy-loaded filter).","format":"int64"}},"required":["added","changed","deleted","unchanged","removed","imported","planned_changes","drift_changes","drift_added","drift_changed","drift_deleted","drift_unchanged","drift_removed","drift_imported","resources","data_sources","outputs"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```

## Get resource change page

> Get one fixed-size page of resource-changes for a given category.\
> \
> Rows in the planned\_changes and drift\_changes categories are ordered by change-type\
> priority (deleted, added, changed, unchanged, removed, imported), so page 1 holds\
> the most actionable rows and a client need not sort what it receives. Those two\
> categories also accept the change parameter, which pages over a single change type\
> with its own totals rather than filtering the rows a page happens to hold.

```json
{"openapi":"3.0.3","info":{"title":"Infrastructure as Code Management","version":"0.1.0"},"tags":[{"name":"executions","description":"Executions Service handles the API for workflow executions.\n\nAt this time it is a read-only API with no ability to directly create or edit\nexecutions. Instead these are triggered from the Workspaces Service."}],"servers":[{"url":"http://localhost:80"}],"paths":{"/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes/pages/{category}":{"get":{"tags":["executions"],"summary":"Get resource change page","description":"Get one fixed-size page of resource-changes for a given category.\n\nRows in the planned_changes and drift_changes categories are ordered by change-type\npriority (deleted, added, changed, unchanged, removed, imported), so page 1 holds\nthe most actionable rows and a client need not sort what it receives. Those two\ncategories also accept the change parameter, which pages over a single change type\nwith its own totals rather than filtering the rows a page happens to hold.","operationId":"executions#get-resource-change-page","parameters":[{"name":"pipeline_stage_id","in":"query","description":"Pipeline execution stage ID","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Pipeline execution stage ID","minLength":1,"maxLength":128}},{"name":"page","in":"query","description":"1-indexed page number to fetch.","allowEmptyValue":true,"schema":{"type":"integer","description":"1-indexed page number to fetch.","default":1,"format":"int64","minimum":1}},{"name":"change","in":"query","description":"Restrict the page to a single change type. Only valid for the planned_changes and drift_changes categories; omit it to page over the whole category. Use the unchanged category rather than change=unchanged with planned_changes.","allowEmptyValue":true,"schema":{"type":"string","description":"Restrict the page to a single change type. Only valid for the planned_changes and drift_changes categories; omit it to page over the whole category. Use the unchanged category rather than change=unchanged with planned_changes.","enum":["added","changed","deleted","unchanged","removed","imported"]}},{"name":"org","in":"path","description":"Org is the organisation identifier.","required":true,"schema":{"type":"string","description":"Org is the organisation identifier.","minLength":1,"maxLength":128}},{"name":"project","in":"path","description":"Project is the project identifier.","required":true,"schema":{"type":"string","description":"Project is the project identifier.","minLength":1,"maxLength":128}},{"name":"pipeline_execution_id","in":"path","description":"Pipeline execution ID","required":true,"schema":{"type":"string","description":"Pipeline execution ID","minLength":1,"maxLength":128}},{"name":"category","in":"path","description":"The category to paginate over.","required":true,"schema":{"type":"string","description":"The category to paginate over.","enum":["planned_changes","unchanged","drift_changes","resources","data_sources","outputs"]}},{"name":"Harness-Account","in":"header","description":"Account is the internal customer account ID.","allowEmptyValue":true,"required":true,"schema":{"type":"string","description":"Account is the internal customer account ID.","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetResourceChangePageResponse"}}}},"400":{"description":"BadRequestError: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"UnauthorizedError: Unauthorized response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ForbiddenError: Forbidden response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"NotFoundError: Not Found response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"408":{"description":"TimeoutError: Request Timeout response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"ConflictError: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"423":{"description":"LockedError: Locked response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"499":{"description":"ContextCancelledError:  response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"InternalServerError: Internal Server Error response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"BadGatewayError: Bad Gateway response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"GetResourceChangePageResponse":{"type":"object","properties":{"changed_resources":{"$ref":"#/components/schemas/ChangedResourceCollection"},"filter":{"type":"string","description":"The filter this page belongs to.","enum":["planned_changes","unchanged","drift_changes","resources","data_sources","outputs"]},"outputs":{"$ref":"#/components/schemas/OutputCollection2"},"page":{"type":"integer","description":"1-indexed page number returned.","format":"int64"},"pageSize":{"type":"integer","description":"Fixed page size.","format":"int64"},"resources":{"$ref":"#/components/schemas/ResourceCollection"},"totalItems":{"type":"integer","description":"Total items available in this filter.","format":"int64"},"totalPages":{"type":"integer","description":"Total pages available in this filter.","format":"int64"}},"required":["filter","page","totalItems","totalPages","pageSize"]},"ChangedResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedResource"}},"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":"#/components/schemas/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"]},"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"]},"OutputCollection2":{"$ref":"#/components/schemas/ChangedOutputCollection"},"ChangedOutputCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmChangedOutput"}},"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"]},"ResourceCollection":{"type":"array","items":{"$ref":"#/components/schemas/HarnessIacmResource"}},"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"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?"},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem."},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem."},"name":{"type":"string","description":"Name is the name of this class of errors."},"temporary":{"type":"boolean","description":"Is the error temporary?"},"timeout":{"type":"boolean","description":"Is the error a timeout?"}},"required":["name","id","message","temporary","timeout","fault"]}}}}
```
