For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

get

List all executions.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: 0zq
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: ci1
Query parameters
limitinteger · int64 · min: 1 · max: 1000Optional

Limit is the number of records to return for a page.

Default: 30Example: 30
pageinteger · int64 · min: 1Optional

Page is the page number to return relative to the page 'limit'.

Default: 1Example: 1
workspacestringOptional

Workspace identifier

Example: Esse dolor quaerat tempora modi.
pipeline_execution_idstringOptional

Pipeline identifier

Example: Esse praesentium consectetur.
statusstring[]Optional

Status of the execution

Example: ["Ab et voluptas qui assumenda.","Quod repellat delectus.","Provident inventore dolore voluptas."]
pipeline_namestringOptional

Pipeline name

Example: Deserunt mollitia quam ipsa omnis eveniet sed.
start_timeinteger · int64Optional

Specify the start time for the query

Example: 1691150743950
end_timeinteger · int64Optional

Specify the end time limit for the query

Example: 1691150743950
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: 0rj
Responses
200

OK response.

application/json
get/api/orgs/{org}/projects/{project}/executions
GET /api/orgs/{org}/projects/{project}/executions HTTP/1.1
Host: localhost:80
Harness-Account: 0rj
Accept: */*
[
  {
    "account": "yqs",
    "created": 4780141939160259000,
    "org": "h3k",
    "pipeline": "Asperiores minus possimus ipsa et voluptas id.",
    "pipeline_execution_id": "Cumque autem reiciendis voluptatibus.",
    "pipeline_stage_id": "Ullam voluptas itaque nostrum et.",
    "project": "g6",
    "status": "failure",
    "workspace": "Quia quasi et."
  },
  {
    "account": "yqs",
    "created": 4780141939160259000,
    "org": "h3k",
    "pipeline": "Asperiores minus possimus ipsa et voluptas id.",
    "pipeline_execution_id": "Cumque autem reiciendis voluptatibus.",
    "pipeline_stage_id": "Ullam voluptas itaque nostrum et.",
    "project": "g6",
    "status": "failure",
    "workspace": "Quia quasi et."
  }
]

Create execution

post

Create a new execution.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: z7
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: i
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: 0c5
Body
pipelinestringRequired

The unique identifier for the associated pipeline

Example: Dicta in eum expedita perferendis labore.
pipeline_execution_idstringRequired

The unique identifier for the associated pipeline execution

Example: Sed eos omnis.
pipeline_stage_idstringRequired

The unique identifier for the associated pipeline stage

Example: Ipsum dolor magnam aliquam quia.
workspacestringRequired

The unique identifier for the associated workspace

Example: Ut perferendis qui.
Responses
200

OK response.

application/json
accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: 6
createdinteger · int64Required

Created is the unix timestamp at which the resource was originally created in milliseconds.

Example: 2175544476779256000
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: mk
pipelinestringRequired

The unique identifier for the associated pipeline

Example: Voluptas dolorem et corporis et dignissimos aperiam.
pipeline_execution_idstringRequired

The unique identifier for the associated pipeline execution

Example: Tempore aperiam non.
pipeline_stage_idstringRequired

The unique identifier for the associated pipeline stage

Example: Sint aut atque magni sunt.
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: oin
statusstring · enumRequired

The overall status of the execution

Example: failurePossible values:
workspacestringRequired

The unique identifier for the associated workspace

Example: Ex nulla accusamus atque sit.
post/api/orgs/{org}/projects/{project}/executions
POST /api/orgs/{org}/projects/{project}/executions HTTP/1.1
Host: localhost:80
Harness-Account: 0c5
Content-Type: application/json
Accept: */*
Content-Length: 196

{
  "pipeline": "Eveniet magnam qui culpa earum dolorem.",
  "pipeline_execution_id": "Atque dolor.",
  "pipeline_stage_id": "Est nisi sed labore est adipisci.",
  "workspace": "Ut quaerat alias aut blanditiis."
}
{
  "account": "74y",
  "created": 5718818223221659000,
  "org": "w8",
  "pipeline": "Et nemo in.",
  "pipeline_execution_id": "Et vel fuga in et sit ut.",
  "pipeline_stage_id": "Delectus illum.",
  "project": "sy",
  "status": "success",
  "workspace": "Optio sit id."
}

Show execution

get

Show an individual execution.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: 0j
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: kby
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: t4z
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: 2
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: f
Responses
200

OK response.

application/json
accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: 8
createdinteger · int64Required

Created is the unix timestamp at which the resource was originally created in milliseconds.

Example: 5404381096582324000
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: l
pipelinestringRequired

The unique identifier for the associated pipeline

Example: Ut corrupti odio.
pipeline_execution_idstringRequired

The unique identifier for the associated pipeline execution

Example: Repellat quia omnis.
pipeline_stage_idstringRequired

The unique identifier for the associated pipeline stage

Example: Magni harum minima soluta veritatis.
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: n
statusstring · enumRequired

The overall status of the execution

Example: failurePossible values:
workspacestringRequired

The unique identifier for the associated workspace

Example: Veritatis quidem et ipsum blanditiis at ex.
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id} HTTP/1.1
Host: localhost:80
Harness-Account: f
Accept: */*
{
  "account": "ck",
  "created": 7904738397747059000,
  "org": "nr",
  "pipeline": "Blanditiis mollitia nam nobis ut.",
  "pipeline_execution_id": "Sunt reprehenderit corporis.",
  "pipeline_stage_id": "Blanditiis libero deserunt omnis.",
  "project": "859",
  "status": "success",
  "workspace": "Quia officia quisquam repellat."
}

Update execution

post

Modify an individual execution by adding audit data.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: c
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: oq
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: qk
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: 1on
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: w
Body
Responses
200

OK response.

No content

post/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/audit-event
POST /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/audit-event HTTP/1.1
Host: localhost:80
Harness-Account: w
Content-Type: application/json
Accept: */*
Content-Length: 118

{
  "audit": {
    "git_audit_data": {
      "hash": "vwk",
      "name": "Quos id consequatur corporis.",
      "repo_url": "3",
      "type": "branch, tag"
    }
  }
}

No content

Upload resource change page

post

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}:

planned_changes | unchanged | drift_changes -> ChangedResource[] resources | data_sources -> Resource[] outputs -> Output[]

Example body (category=planned_changes):

[
  {
    "provider": "AWS",
    "type": "aws_s3_bucket",
    "name": "app_bucket",
    "module": "root",
    "change": "added",
    "change_count": 1,
    "drift": false,
    "changes": {
      "bucket": { "change": "added", "old": "", "new": "my-bucket" }
    }
  }
]

Example body (category=resources):

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: 7
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: 1
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: r
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: 4
categorystring · enumRequired

Resource-change category the page belongs to

Example: planned_changesPossible values:
pageinteger · int64 · min: 1Required

1-indexed page number within the category

Example: 1
Query parameters
changestring · enumOptional

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.

Example: addedPossible values:
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: s6z
Content-Lengthinteger · int64Optional

Size in bytes of the uploaded page file.

Example: 4096
Responses
200

OK response.

No content

post/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/{category}/{page}
POST /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/{category}/{page} HTTP/1.1
Host: localhost:80
Harness-Account: s6z
Accept: */*

No content

List resource change rows

get

List one page of resource-change rows for an execution stage.

Served entirely from the indexed snapshot: every column the response carries is a scalar, so a list request reads no attribute data. Attribute documents are fetched one row at a time from get-resource-change-detail.

Pages are numbered and randomly addressable, because the table's page picker lets a caller jump straight to page 5 rather than walking there. Unfiltered, a page is a bare ordinal range over an index — ordinals are dense within a category — so page 40 costs what page 1 costs. Once a filter or search is applied ordinals stop being contiguous and the page has to be counted into, but by then the result set has narrowed to the point where there is little to count past.

Rows come back in stored order: change-type priority (deleted, added, changed, unchanged, removed, imported) then name. There is no sort parameter, because the columns filter rather than sort — the ordering is fixed at write time and identical for every caller.

Only committed snapshots are visible. A stage whose upload never completed, or that predates indexing, is a 404 and the caller should fall back to list-resource-changes.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: 61
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: le
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: y
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: brq
categorystring · enumRequired

Category to list rows from. One per tab in the table view.

Example: planned_changesPossible values:
Query parameters
providerstring[]Optional

Restrict to these providers. Repeat the parameter to select more than one; omit it for all.

Example: ["registry.opentofu.org/hashicorp/aws"]
typestring[]Optional

Restrict to these provider resource types. Repeat the parameter to select more than one; omit it for all.

Example: ["aws_instance"]
modulestring[]Optional

Restrict to these modules. Repeat the parameter to select more than one; omit it for all.

Example: ["root"]
searchstring · max: 256Optional

Case-insensitive substring match against the resource address and name.

Example: app_bucket
limitinteger · int64 · min: 1 · max: 1000Optional

Rows per page.

Default: 25Example: 25
pageinteger · int64 · min: 1Optional

1-indexed page number to fetch.

Default: 1Example: 1
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: b1e
Responses
200

OK response.

application/json
pageinteger · int64Required

1-indexed page number returned.

Example: 1
pageSizeinteger · int64Required

Maximum rows this page could hold.

Example: 25
totalItemsinteger · int64Required

Total rows matching these filters, ignoring paging.

Example: 131
totalPagesinteger · int64Required

Total pages matching these filters, so a client need not derive it.

Example: 6
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/{category}/rows
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/{category}/rows HTTP/1.1
Host: localhost:80
Harness-Account: b1e
Accept: */*
{
  "page": 1,
  "pageSize": 25,
  "rows": [
    {
      "category": "planned_changes",
      "change": "added",
      "change_count": 3,
      "detail_bytes": 2048,
      "drift": false,
      "mode": "resource",
      "module": "root",
      "name": "app_bucket",
      "ordinal": 17,
      "provider": "AWS",
      "resource_address": "module.app.aws_s3_bucket.app_bucket",
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive": false,
      "type": "aws_s3_bucket",
      "value": "i-0abc123"
    },
    {
      "category": "planned_changes",
      "change": "added",
      "change_count": 3,
      "detail_bytes": 2048,
      "drift": false,
      "mode": "resource",
      "module": "root",
      "name": "app_bucket",
      "ordinal": 17,
      "provider": "AWS",
      "resource_address": "module.app.aws_s3_bucket.app_bucket",
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive": false,
      "type": "aws_s3_bucket",
      "value": "i-0abc123"
    },
    {
      "category": "planned_changes",
      "change": "added",
      "change_count": 3,
      "detail_bytes": 2048,
      "drift": false,
      "mode": "resource",
      "module": "root",
      "name": "app_bucket",
      "ordinal": 17,
      "provider": "AWS",
      "resource_address": "module.app.aws_s3_bucket.app_bucket",
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive": false,
      "type": "aws_s3_bucket",
      "value": "i-0abc123"
    }
  ],
  "totalItems": 131,
  "totalPages": 6
}

Get resource change detail

get

Get one row's attribute document.

The row is addressed by category and ordinal, taken from a list-resource-change-rows response, not by resource address. A resource can appear both as drifted and as planned, so an address can match more than one row and an address-keyed panel would open an arbitrary one.

Only the bytes belonging to this row's attribute document are read, so the cost of a detail request is independent of how large the plan or the stored snapshot is.

A 404 means the row is not retrievable — an unknown ordinal, an uncommitted snapshot, or a snapshot whose attribute data has passed its retention window while the row survives. It is not an error worth retrying.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: 10z
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: s
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: wm
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: bd
categorystring · enumRequired

Category the row belongs to.

Example: planned_changesPossible values:
ordinalinteger · int64Required

Zero-based position of the row within its category, as returned by list-resource-change-rows.

Example: 17
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: p
Responses
200

OK response.

application/json
categorystring · enumRequired

Category this row belongs to.

Example: planned_changesPossible values:
changestring · enumOptional

Change made to this resource. Populated for planned_changes and drift_changes rows.

Example: addedPossible values:
change_countinteger · int64Optional

Count of changed attributes on this resource. Populated for planned_changes and drift_changes rows.

Example: 3
driftbooleanOptional

Whether this row came from drift detection rather than a plan. True exactly when category is drift_changes.

Example: false
modestring · enumOptional

Whether the row is a managed resource or a data source. Populated for resources rows.

Example: resourcePossible values:
modulestringRequired

Module associated with the resource.

Example: root
namestringRequired

Name associated with the resource, or the output name for outputs rows.

Example: app_bucket
ordinalinteger · int64Required

Zero-based position of this row within its category. Ordinals are per-category and stable for the life of the snapshot, which is what makes them safe to address the detail endpoint with.

Example: 17
providerstringRequired

Cloud provider associated with the resource.

Example: AWS
resource_addressstringRequired

Fully qualified address of the resource, module path included.

Example: module.app.aws_s3_bucket.app_bucket
resource_idstringOptional

Identifier for the resource from the cloud provider. Populated for resources rows.

Example: arn:aws:s3:::my-bucket
sensitivebooleanOptional

Whether this row's value is sensitive. Populated for outputs rows.

Example: false
sensitive_attributesstring[]Optional

Attribute keys whose values are sensitive and have been withheld.

Example: ["password"]
typestringRequired

Provider resource type.

Example: aws_s3_bucket
valuestringOptional

Output value. Populated for outputs rows, whose values are stored inline rather than behind a detail read.

Example: i-0abc123
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/{category}/rows/{ordinal}
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/{category}/rows/{ordinal} HTTP/1.1
Host: localhost:80
Harness-Account: p
Accept: */*
{
  "attributes": {
    "ami": "ami-830c94ec",
    "instance_type": "t2.micro"
  },
  "category": "planned_changes",
  "change": "added",
  "change_count": 3,
  "changes": {
    "Placeat corporis.": {
      "change": "added",
      "drift": true,
      "new": "new value",
      "old": "old value",
      "sensitive": true
    },
    "Vitae minus.": {
      "change": "added",
      "drift": true,
      "new": "new value",
      "old": "old value",
      "sensitive": true
    }
  },
  "drift": false,
  "mode": "resource",
  "module": "root",
  "name": "app_bucket",
  "ordinal": 17,
  "provider": "AWS",
  "resource_address": "module.app.aws_s3_bucket.app_bucket",
  "resource_id": "arn:aws:s3:::my-bucket",
  "sensitive": false,
  "sensitive_attributes": [
    "password"
  ],
  "type": "aws_s3_bucket",
  "value": "i-0abc123"
}

Commit resource changes

post

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:

{
  "PlannedTotal": 42,
  "PlannedByChangeType": { "added": 10, "changed": 8, "deleted": 2, "unchanged": 22 },
  "Drift": 3,
  "Resources": 120,
  "DataSources": 15,
  "Outputs": 6
}
Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: nr
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: 8k
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: b
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: q
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: ldw
Content-Lengthinteger · int64Optional

Size in bytes of the counts.json object.

Example: 256
Responses
200

OK response.

No content

post/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/counts
POST /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/counts HTTP/1.1
Host: localhost:80
Harness-Account: ldw
Accept: */*

No content

Get resource change filter counts

get

Get the count beside every filter option, across every dimension, in one request.

Unlike get-resource-change-counts, which returns fixed whole-snapshot badge totals, these counts are selection-aware: each one answers how many rows the list would hold if the caller also picked that option, so they move as the caller filters. Both endpoints stay — badges read the totals, the filter panel reads these.

Every dimension is counted with the other dimensions' filters applied but not its own. That is what lets a caller widen a selection: were they all counted under one shared predicate, selecting a single provider would make every other provider read zero.

The category filter accepts more than one value here even though the list endpoint takes a single category in its path, so a caller can scope the counts to the categories its tab shows.

Only committed snapshots are visible; an unindexed or incomplete stage is a 404.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: z1
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: e6a
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: t
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: d2
Query parameters
providerstring[]Optional

Restrict to these providers. Repeat the parameter to select more than one; omit it for all.

Example: ["registry.opentofu.org/hashicorp/aws"]
typestring[]Optional

Restrict to these provider resource types. Repeat the parameter to select more than one; omit it for all.

Example: ["aws_instance"]
modulestring[]Optional

Restrict to these modules. Repeat the parameter to select more than one; omit it for all.

Example: ["root"]
searchstring · max: 256Optional

Case-insensitive substring match against the resource address and name.

Example: app_bucket
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: 4t
Responses
200

OK response.

application/json
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/filter-counts
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/filter-counts HTTP/1.1
Host: localhost:80
Harness-Account: 4t
Accept: */*
{
  "categories": {
    "drift_changes": 0,
    "outputs": 0,
    "planned_changes": 131,
    "resources": 0
  },
  "change_types": {
    "added": 130,
    "changed": 0,
    "deleted": 1,
    "imported": 0,
    "removed": 0,
    "unchanged": 0
  },
  "modules": {
    "root": 131
  },
  "providers": {
    "registry.opentofu.org/hashicorp/aws": 131
  },
  "types": {
    "aws_default_vpc": 1,
    "aws_instance": 130
  }
}

List cost changes

get

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

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: 4
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: 5lq
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: jm
Query parameters
pipeline_stage_idstringOptionalDefault: ""Example: Quisquam et error quisquam possimus.
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: b0
Responses
200

OK response.

application/json
currencystringRequired

Currency of the costs

Example: Eos quidem quia ut distinctio sit.
diff_total_monthly_coststringRequired

Difference of cost between workspaces per month

Example: Molestiae eum id quam numquam ut voluptatem.
past_total_monthly_coststringRequired

Total cost of the resources per month for the last workspace

Example: Vel incidunt autem explicabo blanditiis saepe.
percentage_change_total_monthly_costinteger · int64Required

The change between the costs per month represented as a percentage

Example: 3661196640886916600
stage_execution_idstringRequired

The stage execution ID

Example: Ratione aut sed eius voluptatem aut.
stage_idstringRequired

The stage ID

Example: Qui non voluptas sint.
total_monthly_coststringRequired

Total cost of the resources per month

Example: Consequuntur voluptatem qui eos recusandae sequi.
workspace_idstringRequired

The workspace identifier

Example: Quo voluptatem facere.
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes HTTP/1.1
Host: localhost:80
Harness-Account: b0
Accept: */*
{
  "currency": "Ratione libero cum ab.",
  "diff": {
    "Reprehenderit rerum.": {
      "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
      "diff": [
        {
          "current_monthly_cost": "Et et quidem eos cumque est.",
          "diff_monthly_cost": "Nam eveniet.",
          "name": "Quam non aliquid a.",
          "percentage_change_monthly_cost": 1472505864337806600,
          "previous_monthly_cost": "Est quas ipsam.",
          "subresources": {
            "Eaque veniam vel.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            },
            "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            }
          }
        },
        {
          "current_monthly_cost": "Et et quidem eos cumque est.",
          "diff_monthly_cost": "Nam eveniet.",
          "name": "Quam non aliquid a.",
          "percentage_change_monthly_cost": 1472505864337806600,
          "previous_monthly_cost": "Est quas ipsam.",
          "subresources": {
            "Eaque veniam vel.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            },
            "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            }
          }
        },
        {
          "current_monthly_cost": "Et et quidem eos cumque est.",
          "diff_monthly_cost": "Nam eveniet.",
          "name": "Quam non aliquid a.",
          "percentage_change_monthly_cost": 1472505864337806600,
          "previous_monthly_cost": "Est quas ipsam.",
          "subresources": {
            "Eaque veniam vel.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            },
            "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            }
          }
        },
        {
          "current_monthly_cost": "Et et quidem eos cumque est.",
          "diff_monthly_cost": "Nam eveniet.",
          "name": "Quam non aliquid a.",
          "percentage_change_monthly_cost": 1472505864337806600,
          "previous_monthly_cost": "Est quas ipsam.",
          "subresources": {
            "Eaque veniam vel.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            },
            "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            }
          }
        }
      ],
      "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
      "percentage_change_monthly_cost": 1483941556618845000,
      "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
    },
    "Voluptas voluptatum veritatis repellendus eligendi quo qui.": {
      "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
      "diff": [
        {
          "current_monthly_cost": "Et et quidem eos cumque est.",
          "diff_monthly_cost": "Nam eveniet.",
          "name": "Quam non aliquid a.",
          "percentage_change_monthly_cost": 1472505864337806600,
          "previous_monthly_cost": "Est quas ipsam.",
          "subresources": {
            "Eaque veniam vel.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            },
            "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            }
          }
        },
        {
          "current_monthly_cost": "Et et quidem eos cumque est.",
          "diff_monthly_cost": "Nam eveniet.",
          "name": "Quam non aliquid a.",
          "percentage_change_monthly_cost": 1472505864337806600,
          "previous_monthly_cost": "Est quas ipsam.",
          "subresources": {
            "Eaque veniam vel.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            },
            "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            }
          }
        },
        {
          "current_monthly_cost": "Et et quidem eos cumque est.",
          "diff_monthly_cost": "Nam eveniet.",
          "name": "Quam non aliquid a.",
          "percentage_change_monthly_cost": 1472505864337806600,
          "previous_monthly_cost": "Est quas ipsam.",
          "subresources": {
            "Eaque veniam vel.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            },
            "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            }
          }
        },
        {
          "current_monthly_cost": "Et et quidem eos cumque est.",
          "diff_monthly_cost": "Nam eveniet.",
          "name": "Quam non aliquid a.",
          "percentage_change_monthly_cost": 1472505864337806600,
          "previous_monthly_cost": "Est quas ipsam.",
          "subresources": {
            "Eaque veniam vel.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            },
            "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
              "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
              "diff_monthly_cost": "Non vel quo ratione sed.",
              "percentage_change_monthly_cost": 3191980214133417500,
              "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
            }
          }
        }
      ],
      "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
      "percentage_change_monthly_cost": 1483941556618845000,
      "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
    }
  },
  "diff_total_monthly_cost": "Eaque vel ut recusandae nisi cupiditate.",
  "past_total_monthly_cost": "Corrupti ut voluptatem sit quod dolor.",
  "percentage_change_total_monthly_cost": 8711570858981204000,
  "stage_execution_id": "Et explicabo aut autem nam.",
  "stage_id": "Et sequi.",
  "total_monthly_cost": "Est maiores beatae hic.",
  "workspace_id": "Facilis enim ut vel ut cumque animi."
}

List cost changes for all stages

get

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

Pass pipeline_stage_id to narrow the result to a single stage. A matrix run has one stage per workspace, so a caller that is already looking at one of them - the approval step, for instance - should name it rather than filter the whole collection itself.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: ax
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: 1
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: uf
Query parameters
pipeline_stage_idstringOptionalDefault: ""Example: Fugiat eveniet omnis id.
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: 78q
Responses
200

OK response.

application/json

Contains the difference in cost of the resources that are changing

currencystringRequired

Currency of the costs

Example: Labore qui omnis eos illo.
diff_total_monthly_coststringRequired

Difference of cost between workspaces per month

Example: Est non voluptates commodi.
past_total_monthly_coststringRequired

Total cost of the resources per month for the last workspace

Example: Sit labore dolores ratione harum.
percentage_change_total_monthly_costinteger · int64Required

The change between the costs per month represented as a percentage

Example: 4780199348831702000
stage_execution_idstringRequired

The stage execution ID

Example: Repellat et consequuntur non eum aperiam perferendis.
stage_idstringRequired

The stage ID

Example: Aliquid sint ipsam aliquam.
total_monthly_coststringRequired

Total cost of the resources per month

Example: Eum officia aperiam consequatur.
workspace_idstringRequired

The workspace identifier

Example: Ut est quis.
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes-all-stages
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes-all-stages HTTP/1.1
Host: localhost:80
Harness-Account: 78q
Accept: */*
[
  {
    "currency": "Aut ad ab temporibus.",
    "diff": {
      "Cumque dolor velit ipsum dolores est ea.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      },
      "Eos explicabo iste tempore.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      },
      "Sequi corrupti.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      }
    },
    "diff_total_monthly_cost": "Nobis laudantium minima sequi officiis cupiditate earum.",
    "past_total_monthly_cost": "Eos porro debitis hic.",
    "percentage_change_total_monthly_cost": 6702656910381579000,
    "stage_execution_id": "Placeat odio a et ut.",
    "stage_id": "Dolor quaerat dolor quos.",
    "total_monthly_cost": "Qui velit et.",
    "workspace_id": "Quia est quo repellat est asperiores."
  },
  {
    "currency": "Aut ad ab temporibus.",
    "diff": {
      "Cumque dolor velit ipsum dolores est ea.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      },
      "Eos explicabo iste tempore.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      },
      "Sequi corrupti.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      }
    },
    "diff_total_monthly_cost": "Nobis laudantium minima sequi officiis cupiditate earum.",
    "past_total_monthly_cost": "Eos porro debitis hic.",
    "percentage_change_total_monthly_cost": 6702656910381579000,
    "stage_execution_id": "Placeat odio a et ut.",
    "stage_id": "Dolor quaerat dolor quos.",
    "total_monthly_cost": "Qui velit et.",
    "workspace_id": "Quia est quo repellat est asperiores."
  },
  {
    "currency": "Aut ad ab temporibus.",
    "diff": {
      "Cumque dolor velit ipsum dolores est ea.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      },
      "Eos explicabo iste tempore.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      },
      "Sequi corrupti.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      }
    },
    "diff_total_monthly_cost": "Nobis laudantium minima sequi officiis cupiditate earum.",
    "past_total_monthly_cost": "Eos porro debitis hic.",
    "percentage_change_total_monthly_cost": 6702656910381579000,
    "stage_execution_id": "Placeat odio a et ut.",
    "stage_id": "Dolor quaerat dolor quos.",
    "total_monthly_cost": "Qui velit et.",
    "workspace_id": "Quia est quo repellat est asperiores."
  },
  {
    "currency": "Aut ad ab temporibus.",
    "diff": {
      "Cumque dolor velit ipsum dolores est ea.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      },
      "Eos explicabo iste tempore.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      },
      "Sequi corrupti.": {
        "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
        "diff": [
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          },
          {
            "current_monthly_cost": "Et et quidem eos cumque est.",
            "diff_monthly_cost": "Nam eveniet.",
            "name": "Quam non aliquid a.",
            "percentage_change_monthly_cost": 1472505864337806600,
            "previous_monthly_cost": "Est quas ipsam.",
            "subresources": {
              "Eaque veniam vel.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              },
              "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                "diff_monthly_cost": "Non vel quo ratione sed.",
                "percentage_change_monthly_cost": 3191980214133417500,
                "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
              }
            }
          }
        ],
        "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
        "percentage_change_monthly_cost": 1483941556618845000,
        "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
      }
    },
    "diff_total_monthly_cost": "Nobis laudantium minima sequi officiis cupiditate earum.",
    "past_total_monthly_cost": "Eos porro debitis hic.",
    "percentage_change_total_monthly_cost": 6702656910381579000,
    "stage_execution_id": "Placeat odio a et ut.",
    "stage_id": "Dolor quaerat dolor quos.",
    "total_monthly_cost": "Qui velit et.",
    "workspace_id": "Quia est quo repellat est asperiores."
  }
]

List cost changes for all stages by modules

get

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

Pass pipeline_stage_id to narrow the result to a single stage, as with cost-changes-all-stages.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: ss
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: 1tc
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: oq7
Query parameters
stack_pathstringOptional

Optional module stack path filter

Default: ""Example: Cupiditate quaerat ullam sed consequatur et et.
pipeline_stage_idstringOptionalDefault: ""Example: Laudantium ipsa.
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: 2mi
Responses
200

OK response.

application/json

Changed costs grouped by module (stack path) for a single stage execution

stage_execution_idstringOptionalExample: Doloribus sed natus tempora.
stage_idstringOptionalExample: Accusamus accusamus nulla vitae.
workspace_idstringOptionalExample: Veritatis totam.
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes-all-stages-by-modules
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/cost-changes-all-stages-by-modules HTTP/1.1
Host: localhost:80
Harness-Account: 2mi
Accept: */*
[
  {
    "modules": {
      "Reprehenderit quod.": {
        "currency": "Aut ad ab temporibus.",
        "diff": {
          "Cumque dolor velit ipsum dolores est ea.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          },
          "Eos explicabo iste tempore.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          },
          "Sequi corrupti.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          }
        },
        "diff_total_monthly_cost": "Nobis laudantium minima sequi officiis cupiditate earum.",
        "past_total_monthly_cost": "Eos porro debitis hic.",
        "percentage_change_total_monthly_cost": 6702656910381579000,
        "stage_execution_id": "Placeat odio a et ut.",
        "stage_id": "Dolor quaerat dolor quos.",
        "total_monthly_cost": "Qui velit et.",
        "workspace_id": "Quia est quo repellat est asperiores."
      }
    },
    "stage_execution_id": "Quos ipsa commodi et.",
    "stage_id": "Aspernatur enim et.",
    "workspace_id": "Consequatur doloribus."
  },
  {
    "modules": {
      "Reprehenderit quod.": {
        "currency": "Aut ad ab temporibus.",
        "diff": {
          "Cumque dolor velit ipsum dolores est ea.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          },
          "Eos explicabo iste tempore.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          },
          "Sequi corrupti.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          }
        },
        "diff_total_monthly_cost": "Nobis laudantium minima sequi officiis cupiditate earum.",
        "past_total_monthly_cost": "Eos porro debitis hic.",
        "percentage_change_total_monthly_cost": 6702656910381579000,
        "stage_execution_id": "Placeat odio a et ut.",
        "stage_id": "Dolor quaerat dolor quos.",
        "total_monthly_cost": "Qui velit et.",
        "workspace_id": "Quia est quo repellat est asperiores."
      }
    },
    "stage_execution_id": "Quos ipsa commodi et.",
    "stage_id": "Aspernatur enim et.",
    "workspace_id": "Consequatur doloribus."
  },
  {
    "modules": {
      "Reprehenderit quod.": {
        "currency": "Aut ad ab temporibus.",
        "diff": {
          "Cumque dolor velit ipsum dolores est ea.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          },
          "Eos explicabo iste tempore.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          },
          "Sequi corrupti.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          }
        },
        "diff_total_monthly_cost": "Nobis laudantium minima sequi officiis cupiditate earum.",
        "past_total_monthly_cost": "Eos porro debitis hic.",
        "percentage_change_total_monthly_cost": 6702656910381579000,
        "stage_execution_id": "Placeat odio a et ut.",
        "stage_id": "Dolor quaerat dolor quos.",
        "total_monthly_cost": "Qui velit et.",
        "workspace_id": "Quia est quo repellat est asperiores."
      }
    },
    "stage_execution_id": "Quos ipsa commodi et.",
    "stage_id": "Aspernatur enim et.",
    "workspace_id": "Consequatur doloribus."
  },
  {
    "modules": {
      "Reprehenderit quod.": {
        "currency": "Aut ad ab temporibus.",
        "diff": {
          "Cumque dolor velit ipsum dolores est ea.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          },
          "Eos explicabo iste tempore.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          },
          "Sequi corrupti.": {
            "current_monthly_cost": "Doloremque animi non distinctio asperiores ut nostrum.",
            "diff": [
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              },
              {
                "current_monthly_cost": "Et et quidem eos cumque est.",
                "diff_monthly_cost": "Nam eveniet.",
                "name": "Quam non aliquid a.",
                "percentage_change_monthly_cost": 1472505864337806600,
                "previous_monthly_cost": "Est quas ipsam.",
                "subresources": {
                  "Eaque veniam vel.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  },
                  "Omnis magnam maxime nesciunt voluptatem qui aperiam.": {
                    "current_monthly_cost": "Pariatur vero aut quasi quo nulla.",
                    "diff_monthly_cost": "Non vel quo ratione sed.",
                    "percentage_change_monthly_cost": 3191980214133417500,
                    "previous_monthly_cost": "Consequatur natus fugiat aut et consequatur."
                  }
                }
              }
            ],
            "diff_monthly_cost": "Neque commodi minus voluptatum voluptatem nobis architecto.",
            "percentage_change_monthly_cost": 1483941556618845000,
            "previous_monthly_cost": "Officia dignissimos dolor magnam aut voluptatem commodi."
          }
        },
        "diff_total_monthly_cost": "Nobis laudantium minima sequi officiis cupiditate earum.",
        "past_total_monthly_cost": "Eos porro debitis hic.",
        "percentage_change_total_monthly_cost": 6702656910381579000,
        "stage_execution_id": "Placeat odio a et ut.",
        "stage_id": "Dolor quaerat dolor quos.",
        "total_monthly_cost": "Qui velit et.",
        "workspace_id": "Quia est quo repellat est asperiores."
      }
    },
    "stage_execution_id": "Quos ipsa commodi et.",
    "stage_id": "Aspernatur enim et.",
    "workspace_id": "Consequatur doloribus."
  }
]

Get dependency graph

get

Get dependency graph for an execution

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: u1
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: v70
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: x
Query parameters
pipeline_stage_idstringOptionalDefault: ""Example: Id et perferendis.
path_idstringOptional

Terragrunt path identifier for filtering module-specific graph

Example: dev
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: 4
Responses
200

OK response.

application/json
string · binaryOptional
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/dependency-graph
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/dependency-graph HTTP/1.1
Host: localhost:80
Harness-Account: 4
Accept: */*
binary

List resource changes

get

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

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: 8ia
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: 8dw
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: ho
Query parameters
exclude_statebooleanOptional

When true, exclude values from the state in the response

Default: falseExample: false
pipeline_stage_idstringOptionalDefault: ""Example: Ducimus similique mollitia non numquam tempore officiis.
path_idstringOptional

Terragrunt path identifier for filtering module-specific resources

Example: dev
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: v
Responses
200

OK response.

application/json
has_dependency_graphbooleanOptional

Whether dependency graph data is available

Example: true
pipeline_executionstringRequired

the identifier of the pipeline execution changes were made from.

Example: Veniam dicta itaque ut aut.
pipeline_stagestringOptional

the identifier of the pipeline stage execution changes were made from.

Example: Natus nesciunt dolorem provident.
stage_idstringRequired

The stage ID

Example: Et voluptates et.
workspace_idstringRequired

identifier of the workspace associated with the data

Example: Est molestiae aut blanditiis exercitationem.
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes HTTP/1.1
Host: localhost:80
Harness-Account: v
Accept: */*
{
  "data_sources": [
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    }
  ],
  "drift_changes": [
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    },
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    },
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    }
  ],
  "has_dependency_graph": true,
  "outputs": [
    {
      "change": "added",
      "expression": "<+outputs.instance_id>",
      "name": "instance_public_ip",
      "new": "new value",
      "old": "old value",
      "sensitive": true,
      "stack_path": "IaCM/TGOverride/environments/dev/ec2"
    },
    {
      "change": "added",
      "expression": "<+outputs.instance_id>",
      "name": "instance_public_ip",
      "new": "new value",
      "old": "old value",
      "sensitive": true,
      "stack_path": "IaCM/TGOverride/environments/dev/ec2"
    },
    {
      "change": "added",
      "expression": "<+outputs.instance_id>",
      "name": "instance_public_ip",
      "new": "new value",
      "old": "old value",
      "sensitive": true,
      "stack_path": "IaCM/TGOverride/environments/dev/ec2"
    }
  ],
  "pipeline_execution": "Tenetur minus accusamus iure est.",
  "pipeline_stage": "Beatae fugiat corporis quam nostrum qui expedita.",
  "planned_changes": [
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    },
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    },
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    }
  ],
  "resources": [
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    }
  ],
  "risk_assessment": {
    "overall_risk_summary": {
      "overall_level": "HIGH",
      "overall_score": 7,
      "reason": "Driven by highest-risk resource: aws_s3_bucket_public_access_block.secure (score: 8)"
    },
    "resource_risks": {
      "Distinctio vero eos sequi.": {
        "risk_factors": [
          "Corrupti ea quae qui eveniet sunt.",
          "Nobis qui commodi esse."
        ],
        "risk_level": "LOW",
        "risk_mitigation": [
          "Laboriosam consequatur nobis quibusdam rerum sed.",
          "Occaecati soluta deleniti nostrum.",
          "Et et praesentium.",
          "Eius ut dolor exercitationem officiis ut dignissimos."
        ],
        "risk_score": 6
      },
      "Ipsa voluptas eligendi quasi quia ut.": {
        "risk_factors": [
          "Corrupti ea quae qui eveniet sunt.",
          "Nobis qui commodi esse."
        ],
        "risk_level": "LOW",
        "risk_mitigation": [
          "Laboriosam consequatur nobis quibusdam rerum sed.",
          "Occaecati soluta deleniti nostrum.",
          "Et et praesentium.",
          "Eius ut dolor exercitationem officiis ut dignissimos."
        ],
        "risk_score": 6
      },
      "Ratione rerum numquam ut.": {
        "risk_factors": [
          "Corrupti ea quae qui eveniet sunt.",
          "Nobis qui commodi esse."
        ],
        "risk_level": "LOW",
        "risk_mitigation": [
          "Laboriosam consequatur nobis quibusdam rerum sed.",
          "Occaecati soluta deleniti nostrum.",
          "Et et praesentium.",
          "Eius ut dolor exercitationem officiis ut dignissimos."
        ],
        "risk_score": 6
      }
    }
  },
  "stage_id": "Repellat omnis facilis voluptatum magnam eos.",
  "workspace_id": "Et nobis et minus."
}

List resource changes for all stages

get

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

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: 7r
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: 9
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: 6
Query parameters
exclude_statebooleanOptional

When true, exclude values from the state in the response

Default: falseExample: true
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: f2g
Responses
200

OK response.

application/json

Contains changed resources and outputs.

has_dependency_graphbooleanOptional

Whether dependency graph data is available

Example: false
pipeline_executionstringRequired

the identifier of the pipeline execution changes were made from.

Example: Sequi eum porro sapiente.
pipeline_stagestringOptional

the identifier of the pipeline stage execution changes were made from.

Example: Voluptates aut magni voluptates natus dignissimos a.
stage_idstringRequired

The stage ID

Example: Necessitatibus iure.
workspace_idstringRequired

identifier of the workspace associated with the data

Example: Iste qui.
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes-all-stages
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes-all-stages HTTP/1.1
Host: localhost:80
Harness-Account: f2g
Accept: */*
[
  {
    "data_sources": [
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      }
    ],
    "drift_changes": [
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      },
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      },
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      }
    ],
    "has_dependency_graph": true,
    "outputs": [
      {
        "change": "added",
        "expression": "<+outputs.instance_id>",
        "name": "instance_public_ip",
        "new": "new value",
        "old": "old value",
        "sensitive": true,
        "stack_path": "IaCM/TGOverride/environments/dev/ec2"
      },
      {
        "change": "added",
        "expression": "<+outputs.instance_id>",
        "name": "instance_public_ip",
        "new": "new value",
        "old": "old value",
        "sensitive": true,
        "stack_path": "IaCM/TGOverride/environments/dev/ec2"
      },
      {
        "change": "added",
        "expression": "<+outputs.instance_id>",
        "name": "instance_public_ip",
        "new": "new value",
        "old": "old value",
        "sensitive": true,
        "stack_path": "IaCM/TGOverride/environments/dev/ec2"
      }
    ],
    "pipeline_execution": "Dicta non.",
    "pipeline_stage": "Quo eaque.",
    "planned_changes": [
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      },
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      },
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      }
    ],
    "resources": [
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      }
    ],
    "risk_assessment": {
      "overall_risk_summary": {
        "overall_level": "HIGH",
        "overall_score": 7,
        "reason": "Driven by highest-risk resource: aws_s3_bucket_public_access_block.secure (score: 8)"
      },
      "resource_risks": {
        "Adipisci culpa eum ea voluptates quia.": {
          "risk_factors": [
            "Animi est nostrum placeat aliquid magni laborum.",
            "Et natus assumenda aliquam delectus inventore deleniti.",
            "Qui dignissimos explicabo."
          ],
          "risk_level": "LOW",
          "risk_mitigation": [
            "Omnis quaerat.",
            "Quos libero modi placeat occaecati.",
            "Ipsum et dolorum itaque."
          ],
          "risk_score": 9
        },
        "Aut similique.": {
          "risk_factors": [
            "Animi est nostrum placeat aliquid magni laborum.",
            "Et natus assumenda aliquam delectus inventore deleniti.",
            "Qui dignissimos explicabo."
          ],
          "risk_level": "LOW",
          "risk_mitigation": [
            "Omnis quaerat.",
            "Quos libero modi placeat occaecati.",
            "Ipsum et dolorum itaque."
          ],
          "risk_score": 9
        },
        "Fugiat nesciunt sed.": {
          "risk_factors": [
            "Animi est nostrum placeat aliquid magni laborum.",
            "Et natus assumenda aliquam delectus inventore deleniti.",
            "Qui dignissimos explicabo."
          ],
          "risk_level": "LOW",
          "risk_mitigation": [
            "Omnis quaerat.",
            "Quos libero modi placeat occaecati.",
            "Ipsum et dolorum itaque."
          ],
          "risk_score": 9
        }
      }
    },
    "stage_id": "Velit et libero qui provident aut aut.",
    "workspace_id": "Quasi sit."
  },
  {
    "data_sources": [
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      }
    ],
    "drift_changes": [
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      },
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      },
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      }
    ],
    "has_dependency_graph": true,
    "outputs": [
      {
        "change": "added",
        "expression": "<+outputs.instance_id>",
        "name": "instance_public_ip",
        "new": "new value",
        "old": "old value",
        "sensitive": true,
        "stack_path": "IaCM/TGOverride/environments/dev/ec2"
      },
      {
        "change": "added",
        "expression": "<+outputs.instance_id>",
        "name": "instance_public_ip",
        "new": "new value",
        "old": "old value",
        "sensitive": true,
        "stack_path": "IaCM/TGOverride/environments/dev/ec2"
      },
      {
        "change": "added",
        "expression": "<+outputs.instance_id>",
        "name": "instance_public_ip",
        "new": "new value",
        "old": "old value",
        "sensitive": true,
        "stack_path": "IaCM/TGOverride/environments/dev/ec2"
      }
    ],
    "pipeline_execution": "Dicta non.",
    "pipeline_stage": "Quo eaque.",
    "planned_changes": [
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      },
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      },
      {
        "change": "added",
        "change_count": 10,
        "changes": {
          "Consequatur corporis cum perferendis illum architecto repudiandae.": {
            "change": "added",
            "drift": true,
            "new": "new value",
            "old": "old value",
            "sensitive": true
          }
        },
        "drift": true,
        "module": "full_stack",
        "name": "app_server",
        "provider": "AWS",
        "type": "S3 Bucket"
      }
    ],
    "resources": [
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      },
      {
        "attributes": {
          "ami": "ami-830c94ec",
          "instance_type": "t2.micro"
        },
        "createdAt": 1627590400,
        "drift_attributes": {
          "instance_type": "t2.nano"
        },
        "drift_status": "changed",
        "lastSyncedAt": 1627686800,
        "mode": "resource",
        "module": "full_stack",
        "monthly_cost": 0.6746256985802211,
        "monthly_saving": 0.09219667128621589,
        "name": "app_server",
        "path_id": "namespace",
        "provider": "AWS",
        "recommendation_count": 8649719887937091000,
        "resource_id": "arn:aws:s3:::my-bucket",
        "sensitive_attributes": [
          "instance_type"
        ],
        "type": "S3 Bucket"
      }
    ],
    "risk_assessment": {
      "overall_risk_summary": {
        "overall_level": "HIGH",
        "overall_score": 7,
        "reason": "Driven by highest-risk resource: aws_s3_bucket_public_access_block.secure (score: 8)"
      },
      "resource_risks": {
        "Adipisci culpa eum ea voluptates quia.": {
          "risk_factors": [
            "Animi est nostrum placeat aliquid magni laborum.",
            "Et natus assumenda aliquam delectus inventore deleniti.",
            "Qui dignissimos explicabo."
          ],
          "risk_level": "LOW",
          "risk_mitigation": [
            "Omnis quaerat.",
            "Quos libero modi placeat occaecati.",
            "Ipsum et dolorum itaque."
          ],
          "risk_score": 9
        },
        "Aut similique.": {
          "risk_factors": [
            "Animi est nostrum placeat aliquid magni laborum.",
            "Et natus assumenda aliquam delectus inventore deleniti.",
            "Qui dignissimos explicabo."
          ],
          "risk_level": "LOW",
          "risk_mitigation": [
            "Omnis quaerat.",
            "Quos libero modi placeat occaecati.",
            "Ipsum et dolorum itaque."
          ],
          "risk_score": 9
        },
        "Fugiat nesciunt sed.": {
          "risk_factors": [
            "Animi est nostrum placeat aliquid magni laborum.",
            "Et natus assumenda aliquam delectus inventore deleniti.",
            "Qui dignissimos explicabo."
          ],
          "risk_level": "LOW",
          "risk_mitigation": [
            "Omnis quaerat.",
            "Quos libero modi placeat occaecati.",
            "Ipsum et dolorum itaque."
          ],
          "risk_score": 9
        }
      }
    },
    "stage_id": "Velit et libero qui provident aut aut.",
    "workspace_id": "Quasi sit."
  }
]

Get resource change counts

get

Get resource-change badge totals for a sharded execution.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: cqt
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: h
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: 8g5
Query parameters
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: z
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: d
Responses
200

OK response.

application/json
addedinteger · int64Required

Count of added resources in planned changes.

Example: 1
changedinteger · int64Required

Count of changed resources in planned changes.

Example: 0
data_sourcesinteger · int64Required

Badge for data_sources filter.

Example: 0
deletedinteger · int64Required

Count of deleted resources in planned changes.

Example: 0
drift_addedinteger · int64Required

Count of added resources in drift changes.

Example: 0
drift_changedinteger · int64Required

Count of changed resources in drift changes.

Example: 1
drift_changesinteger · int64Required

Badge for drift_changes filter.

Example: 1
drift_deletedinteger · int64Required

Count of deleted resources in drift changes.

Example: 0
drift_importedinteger · int64Required

Count of imported resources in drift changes.

Example: 0
drift_removedinteger · int64Required

Count of removed resources in drift changes.

Example: 0
drift_unchangedinteger · int64Required

Count of unchanged resources in drift changes, which unlike planned unchanged rows are part of the drift_changes total.

Example: 0
importedinteger · int64Required

Count of imported resources in planned changes.

Example: 0
outputsinteger · int64Required

Badge for outputs filter.

Example: 1
planned_changesinteger · int64Required

Badge for planned_changes filter.

Example: 1
removedinteger · int64Required

Count of removed resources in planned changes.

Example: 0
resourcesinteger · int64Required

Badge for resources filter.

Example: 3
unchangedinteger · int64Required

Count of unchanged resources (own lazy-loaded filter).

Example: 2
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes/counts
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes/counts?pipeline_stage_id=z HTTP/1.1
Host: localhost:80
Harness-Account: d
Accept: */*
{
  "added": 1,
  "changed": 0,
  "data_sources": 0,
  "deleted": 0,
  "drift_added": 0,
  "drift_changed": 1,
  "drift_changes": 1,
  "drift_deleted": 0,
  "drift_imported": 0,
  "drift_removed": 0,
  "drift_unchanged": 0,
  "imported": 0,
  "outputs": 1,
  "planned_changes": 1,
  "removed": 0,
  "resources": 3,
  "unchanged": 2
}

Get resource change page

get

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.

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: c7
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: l
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: 6
categorystring · enumRequired

The category to paginate over.

Example: planned_changesPossible values:
Query parameters
pipeline_stage_idstring · min: 1 · max: 128Required

Pipeline execution stage ID

Example: 27
pageinteger · int64 · min: 1Optional

1-indexed page number to fetch.

Default: 1Example: 1
changestring · enumOptional

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.

Example: addedPossible values:
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: ii9
Responses
200

OK response.

application/json
filterstring · enumRequired

The filter this page belongs to.

Example: planned_changesPossible values:
pageinteger · int64Required

1-indexed page number returned.

Example: 1
pageSizeinteger · int64Required

Fixed page size.

Example: 25
totalItemsinteger · int64Required

Total items available in this filter.

Example: 11244
totalPagesinteger · int64Required

Total pages available in this filter.

Example: 450
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes/pages/{category}
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/resource-changes/pages/{category}?pipeline_stage_id=27 HTTP/1.1
Host: localhost:80
Harness-Account: ii9
Accept: */*
{
  "changed_resources": [
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    },
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    },
    {
      "change": "added",
      "change_count": 10,
      "changes": {
        "Consequatur corporis cum perferendis illum architecto repudiandae.": {
          "change": "added",
          "drift": true,
          "new": "new value",
          "old": "old value",
          "sensitive": true
        }
      },
      "drift": true,
      "module": "full_stack",
      "name": "app_server",
      "provider": "AWS",
      "type": "S3 Bucket"
    }
  ],
  "filter": "planned_changes",
  "outputs": [
    {
      "change": "added",
      "expression": "<+outputs.instance_id>",
      "name": "instance_public_ip",
      "new": "new value",
      "old": "old value",
      "sensitive": true,
      "stack_path": "IaCM/TGOverride/environments/dev/ec2"
    },
    {
      "change": "added",
      "expression": "<+outputs.instance_id>",
      "name": "instance_public_ip",
      "new": "new value",
      "old": "old value",
      "sensitive": true,
      "stack_path": "IaCM/TGOverride/environments/dev/ec2"
    },
    {
      "change": "added",
      "expression": "<+outputs.instance_id>",
      "name": "instance_public_ip",
      "new": "new value",
      "old": "old value",
      "sensitive": true,
      "stack_path": "IaCM/TGOverride/environments/dev/ec2"
    }
  ],
  "page": 1,
  "pageSize": 25,
  "resources": [
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    },
    {
      "attributes": {
        "ami": "ami-830c94ec",
        "instance_type": "t2.micro"
      },
      "createdAt": 1627590400,
      "drift_attributes": {
        "instance_type": "t2.nano"
      },
      "drift_status": "changed",
      "lastSyncedAt": 1627686800,
      "mode": "resource",
      "module": "full_stack",
      "monthly_cost": 0.6746256985802211,
      "monthly_saving": 0.09219667128621589,
      "name": "app_server",
      "path_id": "namespace",
      "provider": "AWS",
      "recommendation_count": 8649719887937091000,
      "resource_id": "arn:aws:s3:::my-bucket",
      "sensitive_attributes": [
        "instance_type"
      ],
      "type": "S3 Bucket"
    }
  ],
  "totalItems": 11244,
  "totalPages": 450
}

Get risk assessment

get

Get risk assessment for an execution

Path parameters
orgstring · min: 1 · max: 128Required

Org is the organisation identifier.

Example: f
projectstring · min: 1 · max: 128Required

Project is the project identifier.

Example: 8
pipeline_execution_idstring · min: 1 · max: 128Required

Pipeline execution ID

Example: gqr
Query parameters
pipeline_stage_idstringOptionalDefault: ""Example: Et consequatur dolorem.
path_idstringOptional

Terragrunt path identifier for filtering module-specific risk data

Example: dev
Header parameters
Harness-Accountstring · min: 1 · max: 128Required

Account is the internal customer account ID.

Example: po
Responses
200

OK response.

application/json
string · binaryOptional
get/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/risk-assessment
GET /api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/risk-assessment HTTP/1.1
Host: localhost:80
Harness-Account: po
Accept: */*
binary

Last updated

Was this helpful?