Skip to content

Depot statuscomponents

Registers the component routes on the TENANT mux.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

GETincident:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

listStatusComponents answers the component list, searched, sorted and paged.

THE ENVELOPE IS A CHANGE OF SHAPE: this used to be a bare array, on the argument that a pager over a list nobody scrolls is a control that only ever hides something. That argument survives - the default page is larger than any real component list - but a search toolbar has to be able to say how many rows its term matched, and it cannot do that over a response with no total in it.

ponytail: the search, the sort and the cut all happen in Go over the store’s whole-table read, because the set is a few dozen rows an operator wrote by hand and ListStatusComponents is also the public status page’s and the notification fan-out’s read. The upgrade path is a StatusComponentFilter pushed into the store when some tenant proves the ceiling wrong.

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of created, name, page, status, updatedNoSort key.
StatusBodyDescription
200application/json, PagedResultStatusComponentViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold incident:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of StatusComponentView
items[].createdAtrequiredstring (date-time)
items[].descriptionstring
items[].groupNamestring
items[].namerequiredstring
items[].publicIdrequiredstring
items[].showUptimerequiredboolean
items[].sortOrderrequiredinteger
items[].statusrequiredstring
items[].updatedAtrequiredstring (date-time)
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/status-components?dir=asc&page=0&pageSize=0&q=<q>&sort=created' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTincident:managetenant facehosteditmspremote

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Create status component

Required, sent as application/json.

FieldTypeDescription
descriptionstring or null
groupNamestring or null
namestring or null
showUptimeboolean or null
sortOrderinteger or null
statusstring or null
StatusBodyDescription
201application/json, StatusComponentViewCreated.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold incident:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsA component with that name already exists.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
descriptionstring
groupNamestring
namerequiredstring
publicIdrequiredstring
showUptimerequiredboolean
sortOrderrequiredinteger
statusrequiredstring
updatedAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/status-components' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"description": "string",
"groupName": "string",
"name": "string",
"showUptime": false,
"sortOrder": 0,
"status": "string"
}'

GET /api/v1/status-components/{componentId}

Section titled “GET /api/v1/status-components/{componentId}”

GETincident:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Get status component

NameInTypeRequiredDescription
componentIdpathstringYesA uuid.
StatusBodyDescription
200application/json, StatusComponentViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold incident:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
descriptionstring
groupNamestring
namerequiredstring
publicIdrequiredstring
showUptimerequiredboolean
sortOrderrequiredinteger
statusrequiredstring
updatedAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/status-components/<componentId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCH /api/v1/status-components/{componentId}

Section titled “PATCH /api/v1/status-components/{componentId}”

PATCHincident:managetenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Patch status component

NameInTypeRequiredDescription
componentIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
descriptionstring or null
groupNamestring or null
namestring or null
showUptimeboolean or null
sortOrderinteger or null
statusstring or null
StatusBodyDescription
200application/json, StatusComponentViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold incident:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsA component with that name already exists.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
descriptionstring
groupNamestring
namerequiredstring
publicIdrequiredstring
showUptimerequiredboolean
sortOrderrequiredinteger
statusrequiredstring
updatedAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X PATCH 'https://depot.example.com/api/v1/status-components/<componentId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"description": "string",
"groupName": "string",
"name": "string",
"showUptime": false,
"sortOrder": 0,
"status": "string"
}'

DELETE /api/v1/status-components/{componentId}

Section titled “DELETE /api/v1/status-components/{componentId}”

DELETEincident:managetenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

deleteStatusComponent removes a component outright, and its impacts with it.

See the file header for why this one is a hard delete.

NameInTypeRequiredDescription
componentIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold incident:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/status-components/<componentId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.