Discard the draft
Puts the draft back to what is published: every change since is lost (studios open on the scene can still undo it). draftRevision is required (in the body, or as If-Match; sent both ways, they must name the same draft, else 422 INVALID_INPUT): the draft you reviewed; if it changed after that, nothing is discarded (code CONFLICT with currentRevision: read it again; status 409 for the body’s draftRevision, 412 for If-Match). From then on the draft is based on that version, a revert too: publishing it unchanged answers unchanged. dryRun: true says what would be lost (lost, as resource paths) and discards nothing. 409 NOT_PUBLISHED when nothing is published.
Authorizations
A Streamloop API key (sl_…). It carries no workspace: send X-Workspace-Id too (400 WORKSPACE_REQUIRED otherwise).
Headers
The revision (ETag) you read — one, or a comma-separated list of which any current one matches — compared strongly (a weak W/"…" tag never matches): refused with 412 PRECONDITION_FAILED if the resource changed since or no longer exists (the problem carries currentRevision, null when it is gone, and for a layer frameRevision: either is taken). A layer takes its own revision or that of the frame/<id> it is in. *: it must exist. Checked atomically with the write: of two writes sent at once with the same revision, one lands and the other is 412.
Retry safely: the key (per caller, workspace, method and path) is taken before the request runs, and its first answer is replayed for 24 hours, with Idempotency-Replayed: true — a repeat sent while the first still runs waits for it. The same key with a different body is 422 IDEMPOTENCY_KEY_REUSED. A 5xx is not kept: the retry runs.
200The workspace to act in. Required with an API key; otherwise the session's own.
Path Parameters
The scene's id (scn_…)
^scn_