Versions_CompareVersions
const url = 'https://junction-api.qualiastudios.dev/v1/accounts/example/datasets/example/versions:compare';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/versions:compare \ --header 'X-API-Key: <X-API-Key>'What came in, went out or changed revision between two refs of one dataset, and why. Paged over the changed episodes.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The dataset id.
Query Parameters
Section titled “Query Parameters ”The ref measured from: a tag, stable or a digest prefix. Empty
means the newest tag (everything is new when there is none).
The ref measured to; empty means head.
At most this many changed episodes; 0 means 100, the maximum is 1000.
From a previous response’s next_page_token.
Responses
Section titled “ Responses ”OK
Response for Versions.CompareVersions.
object
One page of changed episodes.
One episode that came in or went out.
object
Accounts/{account}/datasets/{dataset}/episodes/{episode}, in this dataset’s scope.
Added or removed.
Why.
The source it came through (mixtures).
Present on immutable cut pieces. Identifies their original take and their order within its cut, so replacements can be paired across this flat direction/episode-ordered list (and across pages). The take uses this comparison’s dataset scope, just as episode does.
object
Accounts/{account}/datasets/{dataset}/episodes/{episode}: the take it was cut from.
The take’s index in its upload (Episode.index of the take).
Its place among the take’s pieces, from 1.
How many pieces the take was cut into.
Where it starts, in seconds of the take’s recording.
Where it ends, in seconds of the take’s recording.
Empty on the last page.
The resolved base (“1.0”, or empty when there was none).
Digest of the base.
Digest of the target.
Episodes added, across every page.
Episodes removed, across every page.
Episodes in both at a different revision, across every page.
Added, removed and changed counted per reason, “RULING” -> n, for the dialog’s summary.
object
A note drafted from the diff, for the tag dialog to pre-fill.
The tag name the dialog offers: the next minor (“1.0” first). Majors are a person’s call.
Example
{ "changes": [ { "direction": "DIRECTION_UNSPECIFIED", "reason": "REASON_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": [ {} ]}