# Commit resource changes

Upload the counts.json commit marker for an execution stage's resource changes.

Sent after all category pages have been uploaded to signal the upload is
complete; the body is the counts.json object (application/octet-stream) and is
currently discarded. It carries the badge totals the UI needs without scanning
the paged files.

Example body:
json
{
  "PlannedTotal": 42,
  "PlannedByChangeType": { "added": 10, "changed": 8, "deleted": 2, "unchanged": 22 },
  "Drift": 3,
  "Resources": 120,
  "DataSources": 15,
  "Outputs": 6
}

Endpoint: POST /iacm/api/orgs/{org}/projects/{project}/executions/{pipeline_execution_id}/{pipeline_stage_id}/resource-changes/counts
Version: 1.0
Security: x-api-key

## Query parameters:

  - `generation_id` (string)
    Optional upload generation ID. Omit for legacy unversioned uploads.
    Example: "Quos eaque iste cum ut at."

## Path parameters:

  - `org` (string, required)
    Org is the organisation identifier.
    Example: "5"

  - `project` (string, required)
    Project is the project identifier.
    Example: "u"

  - `pipeline_execution_id` (string, required)
    Pipeline execution ID
    Example: "4"

  - `pipeline_stage_id` (string, required)
    Pipeline execution stage ID
    Example: "27"

## Header parameters:

  - `Harness-Account` (string, required)
    Account is the internal customer account ID.
    Example: "q"

  - `Content-Length` (integer)
    Size in bytes of the counts.json object.
    Example: 256

## Response 400 fields (application/vnd.goa.error):

  - `fault` (boolean, required)
    Is the error a server-side fault?
    Example: true

  - `id` (string, required)
    ID is a unique identifier for this particular occurrence of the problem.
    Example: "123abc"

  - `message` (string, required)
    Message is a human-readable explanation specific to this occurrence of the problem.
    Example: "parameter 'p' must be an integer"

  - `name` (string, required)
    Name is the name of this class of errors.
    Example: "bad_request"

  - `temporary` (boolean, required)
    Is the error temporary?
    Example: true

  - `timeout` (boolean, required)
    Is the error a timeout?


## Response 200 fields
