Episodes_GetEpisodeDraft
const url = 'https://junction-api.qualiastudios.dev/v1/accounts/example/datasets/example/episodes/example/draft';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
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://junction-api.qualiastudios.dev/v1/accounts/example/datasets/example/episodes/example/draft \ --header 'X-API-Key: <X-API-Key>'The take’s draft, through any dataset that reads the take. NOT_FOUND when it has none.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The dataset id.
The episode id.
Responses
Section titled “ Responses ”OK
An edit of a take drawn and not yet in a version: one per take, read the same through every dataset that reads the take. It is never applied to the dataset: head keeps the take as recorded, and only a version made from a Publish preview holds the edit. Written by whoever holds the take’s edit lease (Episode.lease), or, while no other person holds one, by any caller with write access, a person or an API key. It stays when its author’s lease ends, for whoever edits the take next, and through a re-ingest of the take.
Served by qds-api.
object
Accounts/{account}/datasets/{dataset}/episodes/{episode}/draft
What a version published from it holds.
object
The take as pieces, in time order and not overlapping, within the recording; at most 512 kept. Stored end to end over the recording: what lies between the pieces sent is stored as dropped pieces.
A stretch of the take as drawn.
object
Start, in seconds from the start of the recording.
End, in seconds.
Whether the stretch is kept: one kept piece is a trim, two or more a split.
Tags the episode this piece becomes carries (a marker split’s labels), beside the take’s own. Kept only on a kept piece; at most 64, each non-empty, without surrounding whitespace, at most 1024 bytes.
Subtask spans, bounded as UpdateEpisodes bounds Episode.subtasks.
One subtask span.
object
Start, in seconds from the start of the recording.
End, in seconds.
The subtask’s one name (also one of the episode’s tags).
Proposed, accepted or rejected.
Who proposed it.
The Episode.revision the drawing began on.
The editor as read when drawing began (the take’s trim and subtasks then), so a return can tell what moved under the drawing.
object
The take as pieces, in time order and not overlapping, within the recording; at most 512 kept. Stored end to end over the recording: what lies between the pieces sent is stored as dropped pieces.
A stretch of the take as drawn.
object
Start, in seconds from the start of the recording.
End, in seconds.
Whether the stretch is kept: one kept piece is a trim, two or more a split.
Tags the episode this piece becomes carries (a marker split’s labels), beside the take’s own. Kept only on a kept piece; at most 64, each non-empty, without surrounding whitespace, at most 1024 bytes.
Subtask spans, bounded as UpdateEpisodes bounds Episode.subtasks.
One subtask span.
object
Start, in seconds from the start of the recording.
End, in seconds.
The subtask’s one name (also one of the episode’s tags).
Proposed, accepted or rejected.
Who proposed it.
Reserved for re-splits: the split take’s pieces the drawing began on.
Always OPEN.
Who drew it first: a person, or an API key acting for none.
object
What kind of actor it is.
The person’s user id when kind is PERSON; empty otherwise.
The person’s display name at the time, for rendering without a lookup.
The rule code, or for a MODEL the Qualia model tier (e.g. “qualia-vlm”; “qualia” for any other model), when not a person.
The run a model or rule finding came from, when it has one.
The API key’s id when a person acted through one; empty for a session. Never the key itself.
Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.
object
How the principal authenticated.
The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.
The initiator’s display name at the time, never their email.
The user id of the key’s creator at the time. Not who used the key.
Who owned the key at the time.
The owning space’s id (a workspace or the organization) when
credential_owner is SPACE.
Who last changed the drawing: a person, or an API key acting for none.
object
What kind of actor it is.
The person’s user id when kind is PERSON; empty otherwise.
The person’s display name at the time, for rendering without a lookup.
The rule code, or for a MODEL the Qualia model tier (e.g. “qualia-vlm”; “qualia” for any other model), when not a person.
The run a model or rule finding came from, when it has one.
The API key’s id when a person acted through one; empty for a session. Never the key itself.
Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.
object
How the principal authenticated.
The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.
The initiator’s display name at the time, never their email.
The user id of the key’s creator at the time. Not who used the key.
Who owned the key at the time.
The owning space’s id (a workspace or the organization) when
credential_owner is SPACE.
When it was first saved.
When it was last saved.
Changes with every save of the draft. Sent back on UpdateEpisodeDraft
and DeleteEpisodeDraft, and as UpdateEpisodesRequest.Edit’s
expected_draft_etag.
Example
{ "drawing": { "subtasks": [ { "review": "REVIEW_UNSPECIFIED", "origin": "ORIGIN_UNSPECIFIED" } ] }, "base": { "subtasks": [ { "review": "REVIEW_UNSPECIFIED", "origin": "ORIGIN_UNSPECIFIED" } ] }, "state": "STATE_UNSPECIFIED", "createActor": { "kind": "KIND_UNSPECIFIED", "attribution": { "authentication": "AUTHENTICATION_UNSPECIFIED", "credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED" } }, "updateActor": { "kind": "KIND_UNSPECIFIED", "attribution": { "authentication": "AUTHENTICATION_UNSPECIFIED", "credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED" } }}default
Section titled “default ”Default error response
A refusal from the API itself.
object
The gRPC code name in upper case, e.g. NOT_FOUND.
Whether the same call may succeed if retried.
Empty, except when a dataset copy or move is refused: then one google.rpc.ErrorInfo with the refusal’s reason code, its domain and, in metadata, the datasets it names.
object
A refusal from the gateway before the call reaches the API, for example 401 bad or missing API key, 403 key lacks the scope or environment closed, 413 body too large.
object
What went wrong.
Example generated
{ "code": "example", "message": "example", "retryable": true, "details": [ {} ]}