RunWhen slxs API
The slxs API from RunWhen — 16 operation(s) for slxs.
The slxs API from RunWhen — 16 operation(s) for slxs.
openapi: 3.1.0
info:
title: papi alert-query-proxy slxs API
description: RunWhen Platform API
version: 2.0.0
tags:
- name: slxs
paths:
/api/v1/workspaces/{workspace_name}/slxs:
get:
tags:
- slxs
summary: List SLXs for a workspace
description: "List SLXs for a workspace with optional filters.\n\nArgs:\n workspace_name: The workspace name.\n request: The incoming request (used to build pagination URLs).\n session: Database session.\n current_user: The authenticated user.\n search: Optional search string.\n tags: Optional tags to filter by.\n resource_path_prefix: Optional resource path prefix filter.\n resource_type: Optional resource type filter.\n owners: Optional owner filter.\n limit: Maximum number of results (default 100, max 250).\n offset: Number of results to skip.\n\nReturns:\n Paginated list of SLXs."
operationId: list_workspace_slxs_api_v1_workspaces__workspace_name__slxs_get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: search
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Search in name, short_name, or alias
title: Search
description: Search in name, short_name, or alias
- name: tags
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Filter by tags (any match)
title: Tags
description: Filter by tags (any match)
- name: resource_path_prefix
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by resource path prefix (e.g. 'kubernetes/cluster-01')
title: Resource Path Prefix
description: Filter by resource path prefix (e.g. 'kubernetes/cluster-01')
- name: resource_type
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by resource type (e.g. 'Deployment')
title: Resource Type
description: Filter by resource type (e.g. 'Deployment')
- name: owners
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Filter by owners (any match)
title: Owners
description: Filter by owners (any match)
- name: limit
in: query
required: false
schema:
type: integer
maximum: 250
minimum: 1
description: Maximum number of results
default: 100
title: Limit
description: Maximum number of results
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Number of results to skip
default: 0
title: Offset
description: Number of results to skip
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SlxListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v1/workspaces/{workspace_name}/slxs/{slx_short_name}:
get:
tags:
- slxs
summary: Get an SLX by short name
description: 'Get an SLX by its short name within a workspace.
When history/resolution are provided, enriches the response with live
Cortex metrics for SLI charts and SLO error budget charts.'
operationId: get_workspace_slx_api_v1_workspaces__workspace_name__slxs__slx_short_name__get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: history
in: query
required: false
schema:
type: string
pattern: ^\d+[smhd]$
description: PromQL time range for SLI metrics
default: 5m
title: History
description: PromQL time range for SLI metrics
- name: resolution
in: query
required: false
schema:
type: string
pattern: ^\d+[smhd]$
description: PromQL step interval for SLI metrics
default: 30s
title: Resolution
description: PromQL step interval for SLI metrics
- name: window
in: query
required: false
schema:
type: string
pattern: ^(month|\d+[d])$
description: 'EBR window: ''month'' for calendar month or Nd for rolling N days'
default: month
title: Window
description: 'EBR window: ''month'' for calendar month or Nd for rolling N days'
- name: detail
in: query
required: false
schema:
type: string
description: Detail level (accepted for Django parity)
default: 'False'
title: Detail
description: Detail level (accepted for Django parity)
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SlxResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v1/workspaces/{workspace_name}/slxs/{slx_short_name}/metrics:
get:
tags:
- slxs
summary: Get lightweight metrics for SLX chart widgets
description: 'Lightweight metrics endpoint for chart widgets.
Only fires the Cortex queries the requesting chart actually needs.
SLO resolution is always derived from ``window`` — callers must not send it.
Validation rules (400 Bad Request):
- types=sli,slo + any of history/resolution/window present
- types=slo + history present
- types=sli + window present
- SLI (history, resolution) not in the 8-pair allowlist
- SLO window not matching ^(month|since[1-3]|since6)$'
operationId: get_workspace_slx_metrics_api_v1_workspaces__workspace_name__slxs__slx_short_name__metrics_get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: types
in: query
required: true
schema:
type: string
description: 'Cortex query types: sli, slo, or sli,slo'
title: Types
description: 'Cortex query types: sli, slo, or sli,slo'
- name: history
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: SLI history window (e.g. 5m, 1h)
title: History
description: SLI history window (e.g. 5m, 1h)
- name: resolution
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: SLI step interval (e.g. 30s, 6m)
title: Resolution
description: SLI step interval (e.g. 30s, 6m)
- name: window
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: SLO calendar window (month, since1-since6)
title: Window
description: SLO calendar window (month, since1-since6)
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SlxMetricsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v1/workspaces/{workspace_name}/slxs/{slx_short_name}/file-upload-url/{session_id}/{path}:
get:
tags:
- slxs
summary: Get a signed URL for uploading a file
description: "Get a signed URL for uploading a file to workspace storage.\n\nThis endpoint is used by the robot-runtime platform library when\nuploading files from task runs.\n\nArgs:\n workspace_name: The workspace name.\n slx_short_name: The SLX short name.\n session_id: The run session ID.\n path: The file path/name to upload.\n session: Database session.\n current_user: The authenticated user.\n\nReturns:\n A signed URL that can be used to PUT the file content.\n\nRaises:\n HTTPException: 404 if workspace or SLX not found.\n HTTPException: 500 if signed URL generation fails."
operationId: get_file_upload_url_api_v1_workspaces__workspace_name__slxs__slx_short_name__file_upload_url__session_id___path__get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: session_id
in: path
required: true
schema:
type: string
description: The session ID
title: Session Id
description: The session ID
- name: path
in: path
required: true
schema:
type: string
description: The file path/name to upload
title: Path
description: The file path/name to upload
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/FileUploadUrlResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v1/workspaces/{workspace_name}/slxs/{slx_short_name}/files/{session_id}:
get:
tags:
- slxs
summary: List files for an SLX session
description: "List files for an SLX session in workspace storage.\n\nArgs:\n workspace_name: The workspace name.\n slx_short_name: The SLX short name.\n session_id: The run session ID.\n session: Database session.\n current_user: The authenticated user.\n\nReturns:\n List of filenames."
operationId: list_slx_files_api_v1_workspaces__workspace_name__slxs__slx_short_name__files__session_id__get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: session_id
in: path
required: true
schema:
type: string
description: The session ID
title: Session Id
description: The session ID
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
type: string
title: Response List Slx Files Api V1 Workspaces Workspace Name Slxs Slx Short Name Files Session Id Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v1/workspaces/{workspace_name}/slxs/{slx_short_name}/files/{session_id}/{path}:
get:
tags:
- slxs
summary: Get a file for an SLX session
description: "Get a file for an SLX session from workspace storage.\n\nArgs:\n workspace_name: The workspace name.\n slx_short_name: The SLX short name.\n session_id: The run session ID.\n path: The file path/name to retrieve.\n size_limit_bytes: Maximum file size to read (default 240MB).\n raw: If True, return plain text response instead of JSON.\n session: Database session.\n current_user: The authenticated user.\n\nReturns:\n File contents as JSON {\"contents\": str} or plain text."
operationId: get_slx_file_api_v1_workspaces__workspace_name__slxs__slx_short_name__files__session_id___path__get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: session_id
in: path
required: true
schema:
type: string
description: The session ID
title: Session Id
description: The session ID
- name: path
in: path
required: true
schema:
type: string
description: The file path/name
title: Path
description: The file path/name
- name: sizeLimitBytes
in: query
required: false
schema:
type: integer
description: Max file size in bytes
default: 240000000
title: Sizelimitbytes
description: Max file size in bytes
- name: raw
in: query
required: false
schema:
type: boolean
description: Return raw text instead of JSON wrapper
default: false
title: Raw
description: Return raw text instead of JSON wrapper
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v1/workspaces/{workspace_name}/slxs/{slx_short_name}/runbook/runs/task-outputs:
get:
tags:
- slxs
summary: Get task outputs by task name across recent RunRequests
description: 'Get task outputs for a task name across recent RunRequests.
Returns outputs from the report.jsonl files of matching RunRequests.'
operationId: get_task_outputs_by_task_api_v1_workspaces__workspace_name__slxs__slx_short_name__runbook_runs_task_outputs_get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: task_name
in: query
required: true
schema:
type: string
description: Task name to filter by
title: Task Name
description: Task name to filter by
- name: created__gte
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
description: RunRequests created after this time
title: Created Gte
description: RunRequests created after this time
- name: created__lte
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
description: RunRequests created before this time
title: Created Lte
description: RunRequests created before this time
- name: outputs_limit
in: query
required: false
schema:
type: integer
maximum: 50
minimum: 1
description: Max RunRequests to fetch
default: 10
title: Outputs Limit
description: Max RunRequests to fetch
- name: exclude_issue_outputs
in: query
required: false
schema:
type: boolean
description: Exclude issue-type outputs
default: true
title: Exclude Issue Outputs
description: Exclude issue-type outputs
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Get Task Outputs By Task Api V1 Workspaces Workspace Name Slxs Slx Short Name Runbook Runs Task Outputs Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v1/workspaces/{workspace_name}/slxs/{slx_short_name}/runbook/runs/{run_request_id}/task-outputs:
get:
tags:
- slxs
summary: Get task outputs for a specific RunRequest
description: 'Get task outputs for a specific RunRequest.
Returns outputs from the report.jsonl file.'
operationId: get_task_outputs_api_v1_workspaces__workspace_name__slxs__slx_short_name__runbook_runs__run_request_id__task_outputs_get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: run_request_id
in: path
required: true
schema:
type: integer
description: RunRequest ID
title: Run Request Id
description: RunRequest ID
- name: task_name
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Optional task name filter
title: Task Name
description: Optional task name filter
- name: exclude_issue_outputs
in: query
required: false
schema:
type: boolean
description: Exclude issue-type outputs
default: true
title: Exclude Issue Outputs
description: Exclude issue-type outputs
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Get Task Outputs Api V1 Workspaces Workspace Name Slxs Slx Short Name Runbook Runs Run Request Id Task Outputs Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v3/workspaces/{workspace_name}/slxs:
get:
tags:
- slxs
summary: List SLXs for a workspace
description: "List SLXs for a workspace with optional filters.\n\nArgs:\n workspace_name: The workspace name.\n request: The incoming request (used to build pagination URLs).\n session: Database session.\n current_user: The authenticated user.\n search: Optional search string.\n tags: Optional tags to filter by.\n resource_path_prefix: Optional resource path prefix filter.\n resource_type: Optional resource type filter.\n owners: Optional owner filter.\n limit: Maximum number of results (default 100, max 250).\n offset: Number of results to skip.\n\nReturns:\n Paginated list of SLXs."
operationId: list_workspace_slxs_api_v3_workspaces__workspace_name__slxs_get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: search
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Search in name, short_name, or alias
title: Search
description: Search in name, short_name, or alias
- name: tags
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Filter by tags (any match)
title: Tags
description: Filter by tags (any match)
- name: resource_path_prefix
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by resource path prefix (e.g. 'kubernetes/cluster-01')
title: Resource Path Prefix
description: Filter by resource path prefix (e.g. 'kubernetes/cluster-01')
- name: resource_type
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by resource type (e.g. 'Deployment')
title: Resource Type
description: Filter by resource type (e.g. 'Deployment')
- name: owners
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Filter by owners (any match)
title: Owners
description: Filter by owners (any match)
- name: limit
in: query
required: false
schema:
type: integer
maximum: 250
minimum: 1
description: Maximum number of results
default: 100
title: Limit
description: Maximum number of results
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Number of results to skip
default: 0
title: Offset
description: Number of results to skip
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SlxListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v3/workspaces/{workspace_name}/slxs/{slx_short_name}:
get:
tags:
- slxs
summary: Get an SLX by short name
description: 'Get an SLX by its short name within a workspace.
When history/resolution are provided, enriches the response with live
Cortex metrics for SLI charts and SLO error budget charts.'
operationId: get_workspace_slx_api_v3_workspaces__workspace_name__slxs__slx_short_name__get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: history
in: query
required: false
schema:
type: string
pattern: ^\d+[smhd]$
description: PromQL time range for SLI metrics
default: 5m
title: History
description: PromQL time range for SLI metrics
- name: resolution
in: query
required: false
schema:
type: string
pattern: ^\d+[smhd]$
description: PromQL step interval for SLI metrics
default: 30s
title: Resolution
description: PromQL step interval for SLI metrics
- name: window
in: query
required: false
schema:
type: string
pattern: ^(month|\d+[d])$
description: 'EBR window: ''month'' for calendar month or Nd for rolling N days'
default: month
title: Window
description: 'EBR window: ''month'' for calendar month or Nd for rolling N days'
- name: detail
in: query
required: false
schema:
type: string
description: Detail level (accepted for Django parity)
default: 'False'
title: Detail
description: Detail level (accepted for Django parity)
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SlxResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v3/workspaces/{workspace_name}/slxs/{slx_short_name}/metrics:
get:
tags:
- slxs
summary: Get lightweight metrics for SLX chart widgets
description: 'Lightweight metrics endpoint for chart widgets.
Only fires the Cortex queries the requesting chart actually needs.
SLO resolution is always derived from ``window`` — callers must not send it.
Validation rules (400 Bad Request):
- types=sli,slo + any of history/resolution/window present
- types=slo + history present
- types=sli + window present
- SLI (history, resolution) not in the 8-pair allowlist
- SLO window not matching ^(month|since[1-3]|since6)$'
operationId: get_workspace_slx_metrics_api_v3_workspaces__workspace_name__slxs__slx_short_name__metrics_get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: types
in: query
required: true
schema:
type: string
description: 'Cortex query types: sli, slo, or sli,slo'
title: Types
description: 'Cortex query types: sli, slo, or sli,slo'
- name: history
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: SLI history window (e.g. 5m, 1h)
title: History
description: SLI history window (e.g. 5m, 1h)
- name: resolution
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: SLI step interval (e.g. 30s, 6m)
title: Resolution
description: SLI step interval (e.g. 30s, 6m)
- name: window
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: SLO calendar window (month, since1-since6)
title: Window
description: SLO calendar window (month, since1-since6)
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SlxMetricsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v3/workspaces/{workspace_name}/slxs/{slx_short_name}/file-upload-url/{session_id}/{path}:
get:
tags:
- slxs
summary: Get a signed URL for uploading a file
description: "Get a signed URL for uploading a file to workspace storage.\n\nThis endpoint is used by the robot-runtime platform library when\nuploading files from task runs.\n\nArgs:\n workspace_name: The workspace name.\n slx_short_name: The SLX short name.\n session_id: The run session ID.\n path: The file path/name to upload.\n session: Database session.\n current_user: The authenticated user.\n\nReturns:\n A signed URL that can be used to PUT the file content.\n\nRaises:\n HTTPException: 404 if workspace or SLX not found.\n HTTPException: 500 if signed URL generation fails."
operationId: get_file_upload_url_api_v3_workspaces__workspace_name__slxs__slx_short_name__file_upload_url__session_id___path__get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: session_id
in: path
required: true
schema:
type: string
description: The session ID
title: Session Id
description: The session ID
- name: path
in: path
required: true
schema:
type: string
description: The file path/name to upload
title: Path
description: The file path/name to upload
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/FileUploadUrlResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v3/workspaces/{workspace_name}/slxs/{slx_short_name}/files/{session_id}:
get:
tags:
- slxs
summary: List files for an SLX session
description: "List files for an SLX session in workspace storage.\n\nArgs:\n workspace_name: The workspace name.\n slx_short_name: The SLX short name.\n session_id: The run session ID.\n session: Database session.\n current_user: The authenticated user.\n\nReturns:\n List of filenames."
operationId: list_slx_files_api_v3_workspaces__workspace_name__slxs__slx_short_name__files__session_id__get
parameters:
- name: workspace_name
in: path
required: true
schema:
type: string
title: Workspace Name
- name: slx_short_name
in: path
required: true
schema:
type: string
title: Slx Short Name
- name: session_id
in: path
required: true
schema:
type: string
description: The session ID
title: Session Id
description: The session ID
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
type: string
title: Response List Slx Files Api V3 Workspaces Workspace Name Slxs Slx Short Name Files Session Id Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
/api/v3/workspaces/{workspace_name}/slxs/{slx_short_name}/files/{session_id}/{path}:
get:
tags:
- slxs
summary: Get a file for an SLX session
description: "Get a file for an SLX session from workspace storage.\n\nArgs:\n workspace_name: The workspace
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/runwhen/refs/heads/main/openapi/runwhen-slxs-api-openapi.yml