Get Pipeline Event
Try it
GET
/v0/pipelines/{pipeline_name}/events/{event_id}Get a specific pipeline monitor event.
The identifiers of the events can be retrieved via GET /v0/pipelines/\<pipeline>/events.
The most recent approximately 720 (default) events are retained.
This endpoint can return a 404 for an event that no longer exists due to a cleanup.
Authentication
JSON web token (JWT) or API keyBearer token
Parameters
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
event_id | string | Yes | Pipeline monitor event identifier or `latest` |
pipeline_name | string | Yes | Unique pipeline name |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
selector | PipelineMonitorEventFieldSelector | No | The `selector` parameter limits which fields are returned. Limiting which fields is particularly handy for instance when frequently monitoring over low bandwidth connections while being only interested in status. |
Response
200
application/json- objectPipeline monitor event information which has a selected subset of optional fields. If an optional field is not selected (i.e., is `None`), it will not be serialized.
deployment_errorobjectdeployment_has_errorbooleanrequireddeployment_resources_desired_statusstringrequireddeployment_resources_statusstringrequiredPipeline resources status. ```text /start (early start failed) ┌───────────────────┐ │ ▼ Stopped ◄────────── Stopping /start │ ▲ │ │ /stop?force=true │ │ OR: timeout (from Provisioning) ▼ │ OR: fatal runtime or resource error ⌛Provisioning ────────────│ OR: runtime status is Suspended │ │ │ │ ▼ │ Provisioned ─────────────┘ ``` ### Desired and actual status We use the desired state model to manage the lifecycle of a pipeline. In this model, the pipeline has two status attributes associated with it: the **desired** status, which represents what the user would like the pipeline to do, and the **current** status, which represents the actual (last observed) status of the pipeline. The pipeline runner service continuously monitors the desired status field to decide where to steer the pipeline towards. There are two desired statuses: - `Provisioned` (set by invoking `/start`) - `Stopped` (set by invoking `/stop?force=true`) The user can monitor the current status of the pipeline via the `GET /v0/pipelines/{name}` endpoint. In a typical scenario, the user first sets the desired status, e.g., by invoking the `/start` endpoint, and then polls the `GET /v0/pipelines/{name}` endpoint to monitor the actual status of the pipeline until its `deployment_resources_status` attribute changes to `Provisioned` indicating that the pipeline has been successfully provisioned, or `Stopped` with `deployment_error` being set.deployment_resources_status_detailsobjectdeployment_runtime_desired_statusobjectdeployment_runtime_statusobjectdeployment_runtime_status_detailsobjectevent_idstring (uuid)requiredPipeline monitor event identifier.program_statusstringrequiredProgram compilation status.recorded_atstring (date-time)requiredstorage_statusstringrequiredStorage status. The storage status can only transition when the resources status is `Stopped`. ```text Cleared ───┐ ▲ │ /clear │ │ │ │ Clearing │ ▲ │ │ │ InUse ◄───┘ ```storage_status_detailsobject
400
application/json- objectInformation returned by REST API endpoints on error.
detailsobjectrequiredDetailed error metadata. The contents of this field is determined by `error_code`.error_codestringrequiredError code is a string that specifies this error type.messagestringrequiredHuman-readable error message.
404
application/json- objectInformation returned by REST API endpoints on error.
detailsobjectrequiredDetailed error metadata. The contents of this field is determined by `error_code`.error_codestringrequiredError code is a string that specifies this error type.messagestringrequiredHuman-readable error message.
500
application/json- objectInformation returned by REST API endpoints on error.
detailsobjectrequiredDetailed error metadata. The contents of this field is determined by `error_code`.error_codestringrequiredError code is a string that specifies this error type.messagestringrequiredHuman-readable error message.
curl -X GET 'https://api.example.com/v0/pipelines/{pipeline_name}/events/{event_id}?selector=<selector>' \
-H 'Authorization: Bearer YOUR_TOKEN'const response = await fetch('https://api.example.com/v0/pipelines/{pipeline_name}/events/{event_id}?selector=<selector>', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
});
const data = await response.json();
console.log(data);interface ApiResponse {
// shape your response here
}
const response: Response = await fetch('https://api.example.com/v0/pipelines/{pipeline_name}/events/{event_id}?selector=<selector>', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
});
const data = (await response.json()) as ApiResponse;
console.log(data);import requests
url = "https://api.example.com/v0/pipelines/{pipeline_name}/events/{event_id}"
params = {
"selector": "<selector>"
}
headers = {
"Authorization": "Bearer YOUR_TOKEN"
}
response = requests.request("get", url, params=params, headers=headers)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.example.com/v0/pipelines/{pipeline_name}/events/{event_id}?selector=<selector>", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_TOKEN")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
}