Skip to content

Depot alertchannels

Registers the channel CRUD 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.

GETalert:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

List alert channels

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
kindquerystring, one of email, google_chat, pagerduty, slack, teams, webhookNoComma-separated set. An unrecognised value is refused.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of kind, name, updatedNoSort key.
StatusBodyDescription
200application/json, PagedResultAlertChannelViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold alert:manage.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of AlertChannelView
items[].configrequiredany

Arbitrary JSON.

items[].createdAtrequiredstring (date-time)
items[].enabledrequiredboolean
items[].kindrequiredstring
items[].lastProbeAtstring (date-time) or null
items[].lastProbeErrorstring
items[].maxPerHourrequiredinteger
items[].namerequiredstring
items[].publicIdrequiredstring
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/alert-channels?dir=asc&kind=email&page=0&pageSize=0&q=<q>&sort=kind' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTalert:managetenant facehosteditmspremote

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

Source: [object Object]

Create alert channel

Required, sent as application/json.

FieldTypeDescription
configrequiredany

Arbitrary JSON.

enabledboolean or null
kindstring or null
maxPerHourinteger or null
namestring or null
StatusBodyDescription
201application/json, AlertChannelViewCreated.
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 alert:manage.
404application/problem+json, ProblemDetailsNotification channel not found.
409application/problem+json, ProblemDetailsA channel with that name already exists.
422application/problem+json, ProblemDetailsPush channels arrive with the Outpost mobile app.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
configrequiredany

Arbitrary JSON.

createdAtrequiredstring (date-time)
enabledrequiredboolean
kindrequiredstring
lastProbeAtstring (date-time) or null
lastProbeErrorstring
maxPerHourrequiredinteger
namerequiredstring
publicIdrequiredstring
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/alert-channels' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"config": "string",
"enabled": false,
"kind": "string",
"maxPerHour": 0,
"name": "string"
}'

GETalert:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get alert channel

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

200 response body

FieldTypeDescription
configrequiredany

Arbitrary JSON.

createdAtrequiredstring (date-time)
enabledrequiredboolean
kindrequiredstring
lastProbeAtstring (date-time) or null
lastProbeErrorstring
maxPerHourrequiredinteger
namerequiredstring
publicIdrequiredstring
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/alert-channels/<channelId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUTalert:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Update alert channel

NameInTypeRequiredDescription
channelIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
configrequiredany

Arbitrary JSON.

enabledboolean or null
kindstring or null
maxPerHourinteger or null
namestring or null
StatusBodyDescription
200application/json, AlertChannelViewSuccess.
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 alert:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsA channel with that name already exists.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
configrequiredany

Arbitrary JSON.

createdAtrequiredstring (date-time)
enabledrequiredboolean
kindrequiredstring
lastProbeAtstring (date-time) or null
lastProbeErrorstring
maxPerHourrequiredinteger
namerequiredstring
publicIdrequiredstring
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 PUT 'https://depot.example.com/api/v1/alert-channels/<channelId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"config": "string",
"enabled": false,
"kind": "string",
"maxPerHour": 0,
"name": "string"
}'

DELETEalert:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete alert channel

NameInTypeRequiredDescription
channelIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold alert:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
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/alert-channels/<channelId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/alert-channels/{channelId}/test

Section titled “POST /api/v1/alert-channels/{channelId}/test”

POSTalert:managetenant facehosteditmspremote

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

Source: [object Object]

testAlertChannel sends a synthetic notification through the real senders and waits for the answer.

A FAILURE IS A 200, not an error status. “We tried and the destination said no” is the successful outcome of a test: the operator asked a question and got an answer, and the answer belongs in the body next to the detail they need to fix it. A 502 here would be the console reporting its own request failed.

NameInTypeRequiredDescription
channelIdpathstringYesA uuid.
StatusBodyDescription
200application/json, ChannelTestResultViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold alert:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsNotification sending is not available on this server.

200 response body

FieldTypeDescription
detailrequiredstring
statusrequiredstring
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/alert-channels/<channelId>/test' \
-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.