BUILDING Parts of this page describe what is not built yet, and each says so.
RunService
Beta. A change to anything on this page is announced at least 90 days before it takes effect.
Run
Run
Authenticate with a bearer credential. For automation use a service principal: its secret, or the short-lived token a CI job exchanges for it. A personal API token also works, but it belongs to a person and is not for automation. A service principal can hold only the actions pipeline.
Every call names its project by slug and, where an environment matters, the environment by name. The calls that only read (every Get and List except Get
A call that is not released yet is marked so below. It answers Unimplemented with the reason not_
Calls
23 calls. A call marked Not released yet is published and answers not_built until the control plane
serves it. GET says the call may also be sent as a GET, with the request in the message query parameter.
| Call | GET | Today |
|---|---|---|
Cancel |
No | Not released yet |
Cancel |
No | Released |
Confirm |
No | Not released yet |
Get |
Yes | Not released yet |
Get |
Yes | Released |
Get |
No | Released |
Get |
Yes | Not released yet |
Get |
Yes | Released |
Get |
Yes | Not released yet |
List |
Yes | Not released yet |
List |
Yes | Not released yet |
List |
Yes | Released |
List |
Yes | Not released yet |
List |
Yes | Released |
List |
Yes | Released |
List |
Yes | Not released yet |
Place |
No | Released |
Preview |
No | Not released yet |
Release |
No | Released |
Repair |
No | Not released yet |
Resume |
No | Not released yet |
Start |
No | Not released yet |
Start |
No | Released |
CancelBackfill
Not released yet: it answers not_built. It is sent as a POST.
Cancel
Request: Cancel. Response: Cancel.
Path: /
CancelRun
Released. It is sent as a POST.
Cancel
Request: Cancel. Response: Cancel.
Path: /
ConfirmBackfill
Not released yet: it answers not_built. It is sent as a POST.
Confirm
Request: Confirm. Response: Confirm.
Path: /
GetBackfill
Not released yet: it answers not_built. It may also be sent as a GET.
Get
Request: Get. Response: Get.
Path: /
GetPipeline
Released. It may also be sent as a GET.
Get
Request: Get. Response: Get.
Path: /
GetPipelineFile
Released. It is sent as a POST.
Get
Request: Get. Response: Get.
Path: /
GetPipelineSchedule
Not released yet: it answers not_built. It may also be sent as a GET.
Get
Request: Get. Response: Get.
Path: /
GetRun
Released. It may also be sent as a GET.
Get
Request: Get. Response: Get.
Path: /
GetRunMetrics
Not released yet: it answers not_built. It may also be sent as a GET.
Get
Request: Get. Response: Get.
Path: /
ListAssetMaterializations
Not released yet: it answers not_built. It may also be sent as a GET.
List
Request: List. Response: List.
Path: /
ListBackfills
Not released yet: it answers not_built. It may also be sent as a GET.
List
Request: List. Response: List.
Path: /
ListHolds
Released. It may also be sent as a GET.
List
It answers unimplemented while emergency holds are not switched on for this control plane.
Request: List. Response: List.
Path: /
ListPartitions
Not released yet: it answers not_built. It may also be sent as a GET.
List
Request: List. Response: List.
Path: /
ListPipelines
Released. It may also be sent as a GET.
List
Request: List. Response: List.
Path: /
ListRuns
Released. It may also be sent as a GET.
List
Request: List. Response: List.
Path: /
ListScheduleTicks
Not released yet: it answers not_built. It may also be sent as a GET.
List
Request: List. Response: List.
Path: /
PlaceHold
Released. It is sent as a POST.
Place
It answers unimplemented while emergency holds are not switched on for this control plane.
Request: Place. Response: Place.
Path: /
PreviewSchedule
Not released yet: it answers not_built. It is sent as a POST.
Preview
Request: Preview. Response: Preview.
Path: /
ReleaseHold
Released. It is sent as a POST.
Release
It answers unimplemented while emergency holds are not switched on for this control plane.
Request: Release. Response: Release.
Path: /
RepairRun
Not released yet: it answers not_built. It is sent as a POST.
Repair
Request: Repair. Response: Repair.
Path: /
ResumeBackfill
Not released yet: it answers not_built. It is sent as a POST.
Resume
Request: Resume. Response: Resume.
Path: /
StartBackfill
Not released yet: it answers not_built. It is sent as a POST.
Start
Request: Start. Response: Start.
Path: /
StartRun
Released. It is sent as a POST.
Start
Today no data plane reports that it can run a pipeline's tasks, so a start is refused with failed_
Request: Start. Response: Start.
Path: /
Messages
Each field is named as it is written in JSON. A request may leave out a field it does not need. A response leaves out a field that has its default value, so read a field that is missing as that default.
AssetMaterialization
| Field | Type |
|---|---|
asset |
string |
run |
string |
at |
timestamp (an RFC 3339 string) |
Backfill
| Field | Type |
|---|---|
id |
string |
pipeline |
string |
status |
string |
BackfillPartition
| Field | Type |
|---|---|
key |
string |
status |
string |
run |
string |
BackfillTrigger
| Field | Type |
|---|---|
backfill |
string |
partition |
string |
index |
integer |
count |
integer |
CancelBackfillRequest
| Field | Type |
|---|---|
project |
string |
backfill |
string |
cancel |
boolean |
reason |
string |
idempotency |
string |
CancelBackfillResponse
| Field | Type |
|---|---|
backfill |
Backfill |
CancelRunRequest
| Field | Type |
|---|---|
project |
string |
run |
string |
reason |
string |
idempotency |
string |
CancelRunResponse
| Field | Type |
|---|---|
run |
Run |
ConfirmBackfillRequest
| Field | Type | Meaning |
|---|---|---|
project |
string | No description |
backfill |
string | No description |
estimate |
string | estimate_ |
ConfirmBackfillResponse
| Field | Type |
|---|---|
backfill |
Backfill |
GetBackfillRequest
| Field | Type |
|---|---|
project |
string |
backfill |
string |
GetBackfillResponse
| Field | Type |
|---|---|
backfill |
Backfill |
GetPipelineFileRequest
Get
| Field | Type | Meaning |
|---|---|---|
project |
string | No description |
environment |
string | No description |
name |
string | name is the pipeline, as Get |
path |
string | path is exactly the Pipeline |
sha256 |
string | sha256 is the Pipeline |
GetPipelineFileResponse
Get
THE REASONS A REFUSAL CARRIES, in the rl-error-reason header, and the ONLY ones. Every one but file_
Two more refusals carry no file reason. A caller without pipeline.
| Field | Type | Meaning |
|---|---|---|
content |
string | content is the file's text: valid UTF-8, no NUL, at most 262144 bytes. Never truncated: a file over the limit is refused (file_ |
sha256 |
string | sha256 is the SHA-256 of the bytes read, 64 lowercase hex characters. It equals the request's: the control plane checked. |
commit |
string | commit_ |
GetPipelineRequest
| Field | Type |
|---|---|
project |
string |
environment |
string |
name |
string |
GetPipelineResponse
| Field | Type | Meaning |
|---|---|---|
pipeline |
Pipeline |
No description |
spec |
string | spec_ |
source |
Pipeline |
source is what the control plane read from the pipeline's folder in git: the files beside pipeline. |
observed |
int64 (a string of digits) | observed_ |
parameters |
Pipeline |
parameters are the pipeline's declared parameters, read from the applied declaration: what a run may be started with, for the pipeline page, the start form and rl. UNSET means they could not be read (the stored declaration is unreadable, or the control plane is older than this field); SET AND EMPTY means the pipeline declares none. A declaration proposed in a change set and not yet applied is not here. |
automation |
Pipeline |
automation is the upstream trigger in full. UNSET when the pipeline declares none, its declaration could not be read, or the environment's tables could not be listed to resolve it. |
GetPipelineScheduleRequest
| Field | Type |
|---|---|
project |
string |
environment |
string |
pipeline |
string |
GetPipelineScheduleResponse
| Field | Type |
|---|---|
schedule |
Pipeline |
GetRunMetricsRequest
Get
| Field | Type |
|---|---|
project |
string |
GetRunMetricsResponse
Get
No fields.
GetRunRequest
| Field | Type |
|---|---|
project |
string |
run |
string |
GetRunResponse
| Field | Type |
|---|---|
run |
Run |
Hold
| Field | Type | Meaning |
|---|---|---|
id |
string | No description |
kind |
string | kind is why runs are held: emergency, for a hold a person placed. The set of words may grow. |
reason |
string | No description |
scope |
string | scope is what the hold covers: org, project, environment or pipeline. |
project |
string | project, environment and pipeline name what the hold covers; each is empty where the scope is wider. |
environment |
string | No description |
pipeline |
string | No description |
placed |
string | placed_ |
placed |
timestamp (an RFC 3339 string) | No description |
expires |
timestamp (an RFC 3339 string) | expires_ |
cancel |
boolean | cancel_ |
active |
boolean | active is true while the hold is not released and not expired. |
released |
timestamp (an RFC 3339 string) | No description |
released |
string | released_ |
release |
string | No description |
ListAssetMaterializationsRequest
| Field | Type |
|---|---|
project |
string |
environment |
string |
pipeline |
string |
page |
integer |
page |
string |
ListAssetMaterializationsResponse
| Field | Type |
|---|---|
materializations |
list of Asset |
next |
string |
ListBackfillsRequest
| Field | Type |
|---|---|
project |
string |
environment |
string |
pipeline |
string |
page |
integer |
page |
string |
ListBackfillsResponse
| Field | Type |
|---|---|
backfills |
list of Backfill |
next |
string |
ListHoldsRequest
| Field | Type | Meaning |
|---|---|---|
project |
string | No description |
environment |
string | environment narrows the list to the holds that bear on one environment of the project. |
page |
integer | No description |
page |
string | No description |
active |
boolean | active_ |
ListHoldsResponse
| Field | Type |
|---|---|
holds |
list of Hold |
next |
string |
ListPartitionsRequest
| Field | Type |
|---|---|
project |
string |
backfill |
string |
page |
integer |
page |
string |
ListPartitionsResponse
| Field | Type |
|---|---|
partitions |
list of Backfill |
next |
string |
ListPipelinesRequest
| Field | Type |
|---|---|
project |
string |
environment |
string |
page |
integer |
page |
string |
ListPipelinesResponse
| Field | Type |
|---|---|
pipelines |
list of Pipeline |
next |
string |
ListRunsRequest
| Field | Type | Meaning |
|---|---|---|
project |
string | No description |
environment |
string | No description |
pipeline |
string | No description |
statuses |
list of Run |
No description |
triggers |
list of Trigger |
No description |
principal |
string | No description |
since |
timestamp (an RFC 3339 string) | No description |
until |
timestamp (an RFC 3339 string) | No description |
backfill |
string | No description |
root |
string | No description |
view |
Run |
No description |
page |
integer | No description |
page |
string | No description |
storage |
string | storage_ |
ListRunsResponse
| Field | Type |
|---|---|
runs |
list of Run |
next |
string |
ListScheduleTicksRequest
| Field | Type |
|---|---|
project |
string |
environment |
string |
pipeline |
string |
page |
integer |
page |
string |
ListScheduleTicksResponse
| Field | Type |
|---|---|
ticks |
list of Schedule |
next |
string |
PipelineAutomation
Pipeline
| Field | Type | Meaning |
|---|---|---|
condition |
string | condition is eager (start a run when a watched table is written, once the writes have gone quiet and no run is in the way) or on_ |
registered |
boolean | registered says an evaluator holds this generation of the declaration. UNSET means it could not be read. False means nothing evaluates the trigger yet: the declaration is accepted and stored, and no run is started by a table being written. It is false on a control plane that does not run the evaluator, and until the pipeline's next pass after the evaluator is turned on. |
PipelineAutomationDetail
Pipeline
| Field | Type | Meaning |
|---|---|---|
watches |
list of string | watches are the tables the trigger watches, as dotted names (layer. |
watches |
boolean | watches_ |
unresolved |
list of string | unresolved are the names the declaration lists that are not tables this environment declares, as the caller can see them: a table in a layer the caller cannot see is listed here for that caller. |
debounce |
duration (a string such as "30s") | debounce is how long the writes must have been quiet before a run starts; the default (five minutes) is counted when the declaration says none, so it is always set. |
max |
duration (a string such as "30s") | max_ |
PipelineFile
Pipeline
| Field | Type | Meaning |
|---|---|---|
path |
string | path is relative to the pipeline's folder, with forward slashes. |
role |
string | role is what kind of file it is: sql, python, scala, design (DESIGN. |
size |
int64 (a string of digits) | size_ |
sha256 |
string | sha256 is the SHA-256 of the file's bytes, as 64 lowercase hex characters. |
used |
list of string | used_ |
problem |
string | problem is empty or one word: too_ |
generated |
string | generated_ |
PipelineParameter
Pipeline
| Field | Type | Meaning |
|---|---|---|
name |
string | No description |
type |
string | type is string, integer, decimal, boolean, date, timestamp or enum. |
description |
string | No description |
required |
boolean | required means a run cannot start without a value. A required parameter has no default. |
default |
string | default_ |
max |
integer | max_ |
pattern |
string | No description |
min |
string | min and max are the bounds of an integer, decimal, date or timestamp, and scale a decimal's most digits after the point. Unset when left out. |
max |
string | No description |
scale |
integer | No description |
values |
list of string | values are an enum's choices, in declaration order. |
PipelineParameters
Pipeline
| Field | Type |
|---|---|
parameters |
list of Pipeline |
PipelineSchedule
| Field | Type |
|---|---|
pipeline |
string |
PipelineSource
Pipeline
| Field | Type | Meaning |
|---|---|---|
digest |
string | digest is one fingerprint of every file in the folder, as "v1:" or "v2:" and 64 lowercase hex characters. The tag is "v2:" for a folder that holds a flow file (flows/ |
generation |
int64 (a string of digits) | generation is the generation of the pipeline this folder was read with. |
files |
list of Pipeline |
files are the folder's files in a fixed order: the design document, then flow files, then SQL, then Python, then Scala, then other, and by path within each. At most 100 are listed; warnings says when the folder is larger. |
warnings |
list of string | warnings are facts about the folder as a whole. A word is one of: too_ |
PipelineSummary
Pipeline
| Field | Type | Meaning |
|---|---|---|
name |
string | No description |
owner |
string | No description |
paused |
boolean | paused is true when the schedule is paused. A manual or API start still runs. |
cron |
string | cron and timezone are the declared schedule, empty for a pipeline with none. |
timezone |
string | No description |
next |
timestamp (an RFC 3339 string) | No description |
recent |
list of Run |
recent_ |
latest |
Run |
No description |
latest |
timestamp (an RFC 3339 string) | No description |
succeeded30d |
integer | succeeded_ |
finished30d |
integer | No description |
median |
duration (a string such as "30s") | No description |
ready |
boolean | ready is false until the controller has read the declaration and every table it writes is ready; it does not yet mean a run can start. ready_ |
ready |
string | No description |
automation |
Pipeline |
automation is the upstream trigger the pipeline declares: it starts the pipeline when a table it watches is written by another pipeline. UNSET means the pipeline declares none, or its declaration could not be read. A pipeline can have a schedule too. |
PlaceHoldRequest
| Field | Type | Meaning |
|---|---|---|
project |
string | No description |
environment |
string | No description |
pipeline |
string | No description |
reason |
string | reason is why, 3 to 500 characters; it is in the audit log and shown on every run the hold holds. |
idempotency |
string | No description |
expires |
integer | expires_ |
cancel |
boolean | cancel_ |
PlaceHoldResponse
| Field | Type | Meaning |
|---|---|---|
hold |
Hold | No description |
runs |
integer | With cancel_ |
runs |
integer | No description |
runs |
integer | No description |
PreviewScheduleRequest
| Field | Type |
|---|---|
project |
string |
cron |
string |
timezone |
string |
count |
integer |
PreviewScheduleResponse
| Field | Type |
|---|---|
fires |
list of Schedule |
ReleaseHoldRequest
| Field | Type | Meaning |
|---|---|---|
project |
string | project is empty for an organisation-wide hold. |
hold |
string | No description |
idempotency |
string | idempotency_ |
reason |
string | reason is why it is released early, up to 500 characters; empty is recorded as "released early". |
ReleaseHoldResponse
| Field | Type |
|---|---|
hold |
Hold |
RepairRunRequest
| Field | Type | Meaning |
|---|---|---|
project |
string | No description |
run |
string | No description |
mode |
string | mode (FAILED_ |
task |
list of string | No description |
version |
string | No description |
idempotency |
string | No description |
RepairRunResponse
| Field | Type |
|---|---|
run |
Run |
RepairTrigger
| Field | Type |
|---|---|
repaired |
string |
ResumeBackfillRequest
| Field | Type |
|---|---|
project |
string |
backfill |
string |
idempotency |
string |
ResumeBackfillResponse
| Field | Type |
|---|---|
backfill |
Backfill |
Run
Run is one execution of a pipeline's declared graph, as the control plane last heard of it.
| Field | Type | Meaning |
|---|---|---|
id |
string | No description |
project |
string | No description |
environment |
string | No description |
pipeline |
string | No description |
status |
Run |
No description |
error |
string | error_ |
cancel |
string | cancel_ |
trigger |
Trigger | No description |
idempotency |
string | No description |
parameters |
list of Run |
parameters are the values the run was started with, in name order, with the type and where each came from. Get |
created |
timestamp (an RFC 3339 string) | No description |
admitted |
timestamp (an RFC 3339 string) | No description |
started |
timestamp (an RFC 3339 string) | No description |
finished |
timestamp (an RFC 3339 string) | No description |
hold |
Run |
hold is set while the run is held, and says why. |
plane |
string | plane_ |
train |
string | No description |
config |
string | config_ |
config |
int64 (a string of digits) | No description |
root |
string | root_ |
parent |
string | No description |
tasks |
list of Run |
tasks are carried by Get |
task |
integer | task_ |
parameter |
timestamp (an RFC 3339 string) | parameter_ |
RunAttempt
Run
| Field | Type | Meaning |
|---|---|---|
number |
integer | No description |
status |
Attempt |
No description |
cause |
string | cause is why the attempt exists (first, user_ |
queued |
timestamp (an RFC 3339 string) | No description |
started |
timestamp (an RFC 3339 string) | No description |
finished |
timestamp (an RFC 3339 string) | No description |
engine |
string | engine and engine_ |
engine |
string | No description |
error |
string | No description |
rows |
int64 (a string of digits) | No description |
bytes |
int64 (a string of digits) | No description |
cpu |
number | No description |
peak |
int64 (a string of digits) | No description |
RunHold
Run
| Field | Type | Meaning |
|---|---|---|
kind |
string | kind is why the run is held, for example emergency, trial_ |
hold |
string | No description |
placed |
string | No description |
reason |
string | No description |
expires |
timestamp (an RFC 3339 string) | No description |
blocking |
string | No description |
RunParameter
Run
| Field | Type |
|---|---|
name |
string |
type |
string |
value |
string |
secret |
boolean |
source |
string |
RunTask
Run
| Field | Type | Meaning |
|---|---|---|
key |
string | No description |
name |
string | name is resolved from the run's own revision, so a rename never rewrites history. |
depends |
list of string | No description |
status |
Task |
No description |
error |
string | No description |
max |
integer | No description |
timeout |
duration (a string such as "30s") | No description |
attempts |
list of Run |
No description |
ScheduleFire
| Field | Type |
|---|---|
at |
timestamp (an RFC 3339 string) |
ScheduleTick
| Field | Type |
|---|---|
scheduled |
timestamp (an RFC 3339 string) |
outcome |
string |
reason |
string |
ScheduleTrigger
| Field | Type | Meaning |
|---|---|---|
scheduled |
timestamp (an RFC 3339 string) | scheduled_ |
StartBackfillRequest
| Field | Type | Meaning |
|---|---|---|
project |
string | No description |
environment |
string | No description |
pipeline |
string | No description |
idempotency |
string | No description |
validate |
boolean | validate_ |
StartBackfillResponse
| Field | Type |
|---|---|
backfill |
Backfill |
StartRunRequest
| Field | Type | Meaning |
|---|---|---|
project |
string | No description |
environment |
string | No description |
pipeline |
string | No description |
idempotency |
string | idempotency_ |
parameters |
map of string to string | parameters are the values for the pipeline's declared parameters, as text in each type's spelling. A pipeline that declares none takes none. Start |
assets |
list of string | assets will limit the run to these assets and what they need. It is not accepted yet: leave it empty to start the whole pipeline, or the request is refused with invalid_ |
partition |
string | partition_ |
StartRunResponse
| Field | Type |
|---|---|
run |
Run |
replayed |
boolean |
StorageEventTrigger
Storage
| Field | Type | Meaning |
|---|---|---|
rule |
string | rule is the rule's resource name, projects/ |
rule |
string | rule_ |
rule |
string | No description |
batch |
string | batch is the batch's resource name, projects/ |
batch |
string | No description |
files |
integer | files is the number of the batch's new events: the files the rule recorded for the first time. A repeated delivery of a file, and a file the rule had already processed, are not counted. bytes is the size of those new events that had one: an event with no size (a deleted file) counts in files and adds nothing to bytes. |
bytes |
int64 (a string of digits) | No description |
first |
timestamp (an RFC 3339 string) | first_ |
last |
timestamp (an RFC 3339 string) | No description |
close |
string | close_ |
Trigger
Trigger is why a run exists: its kind and who caused it, with the facts of that kind.
| Field | Type | Meaning |
|---|---|---|
kind |
Trigger |
No description |
principal |
string | principal is `user:<id>`, `token:<id>`, `agent:<id>`, `service:<id>` (a service principal) or `system:<name>`. |
UpstreamTrigger
| Field | Type |
|---|---|
run |
string |
pipeline |
string |
asset |
string |
WebhookRunTrigger
Webhook
| Field | Type |
|---|---|
endpoint |
string |
webhook |
string |
Values
An enumeration is sent and read as one of these words. A client should treat a word it does not know as something newer than itself.
AttemptStatus
Attempt
ATTEMPT_, ATTEMPT_, ATTEMPT_, ATTEMPT_, ATTEMPT_, ATTEMPT_, ATTEMPT_
RunStatus
Run
RUN_, RUN_, RUN_, RUN_, RUN_, RUN_, RUN_, RUN_, RUN_, RUN_
RunView
Run
RUN_, RUN_, RUN_
TaskStatus
Task
TASK_, TASK_, TASK_, TASK_, TASK_, TASK_, TASK_, TASK_, TASK_, TASK_, TASK_
TriggerKind
Trigger
TRIGGER_, TRIGGER_, TRIGGER_, TRIGGER_, TRIGGER_, TRIGGER_, TRIGGER_, TRIGGER_, TRIGGER_, TRIGGER_