A proposal's rollback: whether one can be asked for, and exactly what it does to each host (DAWG-120). What the portal's confirmation says.
GET
/v1/orgs/{org}/proposals/{proposal_id}/rollback
const url = 'https://api.updawg.net/v1/orgs/example/proposals/example/rollback';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.updawg.net/v1/orgs/example/proposals/example/rollbackParameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”org
required
string
Organization slug.
proposal_id
required
string
The prp_… id.
Responses
Section titled “Responses”The rollback, asked for or not.
Media typeapplication/json
A proposal’s rollback.
object
blocked
Why one cannot be asked for now. Absent when it can, or when it has been.
string | null
hosts
required
The hosts it restores, each to the snapshot it took before this proposal changed it.
Array<object>
object
host_id
required
string
hostname
required
string
job_status
The rollback job’s status once it is signed: queued, delivered,
running, succeeded, failed, rejected_by_host, expired.
string | null
snapshot_id
required
string
requested
skipped
required
Hosts the proposal changed that it cannot restore, and why.
Array<object>
object
host_id
required
string
hostname
required
string
reason
required
string
Examplegenerated
{ "blocked": "example", "hosts": [ { "host_id": "example", "hostname": "example", "job_status": "example", "snapshot_id": "example" } ], "requested": { "at": "2026-04-15T12:00:00Z", "by": "example", "email": "example", "name": "example" }, "skipped": [ { "host_id": "example", "hostname": "example", "reason": "example" } ]}No session.
Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{ "detail": "example", "status": 1, "title": "example", "type": "example"}No such proposal here.
Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{ "detail": "example", "status": 1, "title": "example", "type": "example"}Over the organization’s request limit. Retry-After says when to try again; RateLimit-Limit is the burst.
Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{ "detail": "example", "status": 1, "title": "example", "type": "example"}