Skip to content

Depot mspreports

Registers the practice-wide reporting surface on the MSP 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.

GETmsp facemspIdempotentdownload

Source: [object Object]

runMspCannedReport runs one shipped practice-wide report.

THE PERMISSION CHECK IS HERE rather than at the mount, because one route serves nine reports answering to seven different codes. The refusal names the code, so an operator who cannot open the vulnerability aggregate is told they need vuln:read rather than that the screen is broken.

NameInTypeRequiredDescription
namepathstringYes
clientsquerystringNo
formatquerystringNo
StatusBodyDescription
200application/octet-stream, string (binary)Success.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
402application/problem+json, ProblemDetailsThis report is not included in your plan.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsOutpost ships no practice report by that name.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.
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/msp/reports/<name>?clients=<clients>&format=<format>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETreport:readmsp facemspIdempotent

Source: [object Object]

Get msp report catalog

StatusBodyDescription
200application/json, ReportCatalogViewSuccess.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold report:read.
500application/problem+json, ProblemDetailsCould not evaluate permissions.

200 response body

FieldTypeDescription
datasetsrequiredarray of ReportCatalogEntryView
datasets[].columnsarray of ReportColumnView
datasets[].columns[].keyrequiredstring
datasets[].columns[].titlerequiredstring
datasets[].columns[].typerequiredstring
datasets[].featurestring
datasets[].frameworkstring
datasets[].maxRowsinteger
datasets[].namerequiredstring
datasets[].permissionrequiredstring
datasets[].planLockedboolean
datasets[].runnablerequiredboolean
datasets[].titlerequiredstring
reportsrequiredarray of ReportCatalogEntryView
reports[].columnsarray of ReportColumnView
reports[].columns[].keyrequiredstring
reports[].columns[].titlerequiredstring
reports[].columns[].typerequiredstring
reports[].featurestring
reports[].frameworkstring
reports[].maxRowsinteger
reports[].namerequiredstring
reports[].permissionrequiredstring
reports[].planLockedboolean
reports[].runnablerequiredboolean
reports[].titlerequiredstring
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/msp/reports/catalog' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/msp/reports/client-health-settings

Section titled “GET /api/v1/msp/reports/client-health-settings”

GETreport:readmsp facemspIdempotent

Source: [object Object]

Get client health settings

StatusBodyDescription
200application/json, ClientHealthSettingsViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
criticalAlertsRedrequiredinteger
hoursOverIncludedPercentAmberrequiredinteger
patchAmberPercentrequiredinteger
patchRedPercentrequiredinteger
prepaidLowHoursAmberrequiredinteger
redProjectMakesRedrequiredboolean
slaBreachedAmberrequiredinteger
slaBreachedRedrequiredinteger
staleAmberPercentrequiredinteger
staleRedPercentrequiredinteger
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/msp/reports/client-health-settings' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/msp/reports/client-health-settings

Section titled “PUT /api/v1/msp/reports/client-health-settings”

PUTreport:managemsp facemspIdempotent

Source: [object Object]

Update client health settings

Required, sent as application/json.

FieldTypeDescription
criticalAlertsRedrequiredinteger
hoursOverIncludedPercentAmberrequiredinteger
patchAmberPercentrequiredinteger
patchRedPercentrequiredinteger
prepaidLowHoursAmberrequiredinteger
redProjectMakesRedrequiredboolean
slaBreachedAmberrequiredinteger
slaBreachedRedrequiredinteger
staleAmberPercentrequiredinteger
staleRedPercentrequiredinteger
StatusBodyDescription
200application/json, ClientHealthSettingsViewSuccess.
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 report:manage.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
criticalAlertsRedrequiredinteger
hoursOverIncludedPercentAmberrequiredinteger
patchAmberPercentrequiredinteger
patchRedPercentrequiredinteger
prepaidLowHoursAmberrequiredinteger
redProjectMakesRedrequiredboolean
slaBreachedAmberrequiredinteger
slaBreachedRedrequiredinteger
staleAmberPercentrequiredinteger
staleRedPercentrequiredinteger
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/msp/reports/client-health-settings' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"criticalAlertsRed": 0,
"hoursOverIncludedPercentAmber": 0,
"patchAmberPercent": 0,
"patchRedPercent": 0,
"prepaidLowHoursAmber": 0,
"redProjectMakesRed": false,
"slaBreachedAmber": 0,
"slaBreachedRed": 0,
"staleAmberPercent": 0,
"staleRedPercent": 0
}'

GETreport:readmsp facemspIdempotent

Source: [object Object]

List msp report definitions

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, updatedNoSort key.
StatusBodyDescription
200application/json, PagedResultMspReportDefinitionViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
itemsrequiredarray of MspReportDefinitionView
items[].clientsrequiredarray of string
items[].createdAtrequiredstring (date-time)
items[].createdByUserIdstring
items[].descriptionrequiredstring
items[].namerequiredstring
items[].publicIdrequiredstring
items[].sectionsrequiredarray of ReportSectionRequest
items[].sections[].columnsrequiredarray of string
items[].sections[].datasetrequiredstring
items[].sections[].filtersrequiredarray of ReportFilterRequest
items[].sections[].filters[].columnrequiredstring
items[].sections[].filters[].oprequiredstring
items[].sections[].filters[].valuerequiredstring
items[].sections[].groupByrequiredstring
items[].sections[].limitrequiredinteger
items[].sections[].sortrequiredarray of ReportSortKeyRequest
items[].sections[].sort[].columnrequiredstring
items[].sections[].sort[].descrequiredboolean
items[].sections[].summaryrequiredboolean
items[].sections[].titlerequiredstring
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/msp/reports/definitions?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>'

POSTreport:managemsp facemsp

Source: [object Object]

Create msp report definition

Required, sent as application/json.

FieldTypeDescription
clientsrequiredarray of string
descriptionrequiredstring
namerequiredstring
sectionsrequiredarray of ReportSectionRequest
sections[].columnsrequiredarray of string
sections[].datasetrequiredstring
sections[].filtersrequiredarray of ReportFilterRequest
sections[].filters[].columnrequiredstring
sections[].filters[].oprequiredstring
sections[].filters[].valuerequiredstring
sections[].groupByrequiredstring
sections[].limitrequiredinteger
sections[].sortrequiredarray of ReportSortKeyRequest
sections[].sort[].columnrequiredstring
sections[].sort[].descrequiredboolean
sections[].summaryrequiredboolean
sections[].titlerequiredstring
StatusBodyDescription
201application/json, MspReportDefinitionViewCreated.
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 report:manage.
404application/problem+json, ProblemDetailsReport not found.
409application/problem+json, ProblemDetailsA report with that name already exists.
500application/problem+json, ProblemDetailsCould not save the report.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

201 response body

FieldTypeDescription
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
descriptionrequiredstring
namerequiredstring
publicIdrequiredstring
sectionsrequiredarray of ReportSectionRequest
sections[].columnsrequiredarray of string
sections[].datasetrequiredstring
sections[].filtersrequiredarray of ReportFilterRequest
sections[].filters[].columnrequiredstring
sections[].filters[].oprequiredstring
sections[].filters[].valuerequiredstring
sections[].groupByrequiredstring
sections[].limitrequiredinteger
sections[].sortrequiredarray of ReportSortKeyRequest
sections[].sort[].columnrequiredstring
sections[].sort[].descrequiredboolean
sections[].summaryrequiredboolean
sections[].titlerequiredstring
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/msp/reports/definitions' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"clients": [
"string"
],
"description": "string",
"name": "string",
"sections": [
{
"columns": [
"string"
],
"dataset": "string",
"filters": [
{
"column": "string",
"op": "string",
"value": "string"
}
],
"groupBy": "string",
"limit": 0,
"sort": [
{
"column": "string",
"desc": false
}
],
"summary": false,
"title": "string"
}
]
}'

GET /api/v1/msp/reports/definitions/{definitionId}

Section titled “GET /api/v1/msp/reports/definitions/{definitionId}”

GETreport:readmsp facemspIdempotent

Source: [object Object]

Get msp report definition

NameInTypeRequiredDescription
definitionIdpathstringYesA uuid.
StatusBodyDescription
200application/json, MspReportDefinitionViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the report.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
descriptionrequiredstring
namerequiredstring
publicIdrequiredstring
sectionsrequiredarray of ReportSectionRequest
sections[].columnsrequiredarray of string
sections[].datasetrequiredstring
sections[].filtersrequiredarray of ReportFilterRequest
sections[].filters[].columnrequiredstring
sections[].filters[].oprequiredstring
sections[].filters[].valuerequiredstring
sections[].groupByrequiredstring
sections[].limitrequiredinteger
sections[].sortrequiredarray of ReportSortKeyRequest
sections[].sort[].columnrequiredstring
sections[].sort[].descrequiredboolean
sections[].summaryrequiredboolean
sections[].titlerequiredstring
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/msp/reports/definitions/<definitionId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/msp/reports/definitions/{definitionId}

Section titled “PUT /api/v1/msp/reports/definitions/{definitionId}”

PUTreport:managemsp facemspIdempotent

Source: [object Object]

Update msp report definition

NameInTypeRequiredDescription
definitionIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
clientsrequiredarray of string
descriptionrequiredstring
namerequiredstring
sectionsrequiredarray of ReportSectionRequest
sections[].columnsrequiredarray of string
sections[].datasetrequiredstring
sections[].filtersrequiredarray of ReportFilterRequest
sections[].filters[].columnrequiredstring
sections[].filters[].oprequiredstring
sections[].filters[].valuerequiredstring
sections[].groupByrequiredstring
sections[].limitrequiredinteger
sections[].sortrequiredarray of ReportSortKeyRequest
sections[].sort[].columnrequiredstring
sections[].sort[].descrequiredboolean
sections[].summaryrequiredboolean
sections[].titlerequiredstring
StatusBodyDescription
200application/json, MspReportDefinitionViewSuccess.
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 report:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsA report with that name already exists.
500application/problem+json, ProblemDetailsCould not read the report.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
descriptionrequiredstring
namerequiredstring
publicIdrequiredstring
sectionsrequiredarray of ReportSectionRequest
sections[].columnsrequiredarray of string
sections[].datasetrequiredstring
sections[].filtersrequiredarray of ReportFilterRequest
sections[].filters[].columnrequiredstring
sections[].filters[].oprequiredstring
sections[].filters[].valuerequiredstring
sections[].groupByrequiredstring
sections[].limitrequiredinteger
sections[].sortrequiredarray of ReportSortKeyRequest
sections[].sort[].columnrequiredstring
sections[].sort[].descrequiredboolean
sections[].summaryrequiredboolean
sections[].titlerequiredstring
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/msp/reports/definitions/<definitionId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"clients": [
"string"
],
"description": "string",
"name": "string",
"sections": [
{
"columns": [
"string"
],
"dataset": "string",
"filters": [
{
"column": "string",
"op": "string",
"value": "string"
}
],
"groupBy": "string",
"limit": 0,
"sort": [
{
"column": "string",
"desc": false
}
],
"summary": false,
"title": "string"
}
]
}'

DELETE /api/v1/msp/reports/definitions/{definitionId}

Section titled “DELETE /api/v1/msp/reports/definitions/{definitionId}”

DELETEreport:managemsp facemspIdempotent

Source: [object Object]

Delete msp report definition

NameInTypeRequiredDescription
definitionIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the report.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.
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/msp/reports/definitions/<definitionId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/msp/reports/definitions/{definitionId}/run

Section titled “GET /api/v1/msp/reports/definitions/{definitionId}/run”

GETreport:readmsp facemspIdempotentdownload

Source: [object Object]

runMspReportDefinition runs a saved practice-wide report under the CALLER’s permissions, over the definition’s own client subset unless the request narrows it further.

NameInTypeRequiredDescription
definitionIdpathstringYesA uuid.
clientsquerystringNo
formatquerystringNo
StatusBodyDescription
200application/octet-stream, string (binary)Success.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
402application/problem+json, ProblemDetailsThis report is not included in your plan.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the report.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.
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/msp/reports/definitions/<definitionId>/run?clients=<clients>&format=<format>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTreport:readmsp facemspdownload

Source: [object Object]

Preview msp report definition

NameInTypeRequiredDescription
formatquerystringNo

Required, sent as application/json.

FieldTypeDescription
clientsrequiredarray of string
descriptionrequiredstring
namerequiredstring
sectionsrequiredarray of ReportSectionRequest
sections[].columnsrequiredarray of string
sections[].datasetrequiredstring
sections[].filtersrequiredarray of ReportFilterRequest
sections[].filters[].columnrequiredstring
sections[].filters[].oprequiredstring
sections[].filters[].valuerequiredstring
sections[].groupByrequiredstring
sections[].limitrequiredinteger
sections[].sortrequiredarray of ReportSortKeyRequest
sections[].sort[].columnrequiredstring
sections[].sort[].descrequiredboolean
sections[].summaryrequiredboolean
sections[].titlerequiredstring
StatusBodyDescription
200application/octet-stream, string (binary)Success.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
402application/problem+json, ProblemDetailsThis report is not included in your plan.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.
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/msp/reports/preview?format=<format>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"clients": [
"string"
],
"description": "string",
"name": "string",
"sections": [
{
"columns": [
"string"
],
"dataset": "string",
"filters": [
{
"column": "string",
"op": "string",
"value": "string"
}
],
"groupBy": "string",
"limit": 0,
"sort": [
{
"column": "string",
"desc": false
}
],
"summary": false,
"title": "string"
}
]
}'

GETreport:readmsp facemspIdempotent

Source: [object Object]

List msp report schedules

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, enabled, last, name, nextNoSort key.
StatusBodyDescription
200application/json, PagedResultMspReportScheduleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
itemsrequiredarray of MspReportScheduleView
items[].cannedReportstring
items[].clientsrequiredarray of string
items[].createdAtrequiredstring (date-time)
items[].createdByUserIdstring
items[].cronExprrequiredstring
items[].definitionIdstring
items[].enabledrequiredboolean
items[].graceSecondsrequiredinteger
items[].lastRunAtstring (date-time) or null
items[].missedRunPolicyrequiredstring
items[].namerequiredstring
items[].nextDueAtstring (date-time) or null
items[].pausedrequiredboolean
items[].pausedReasonstring
items[].publicIdrequiredstring
items[].recipientsrequiredarray of string
items[].timezonerequiredstring
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/msp/reports/schedules?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>'

POSTreport:schedulemsp facemsp

Source: [object Object]

Create msp report schedule

Required, sent as application/json.

FieldTypeDescription
cannedReportstring or null
clientsrequiredarray of string
cronExprstring or null
definitionIdstring or null
enabledboolean or null
graceSecondsinteger or null
missedRunPolicystring or null
namestring or null
recipientsrequiredarray of string
timezonestring or null
StatusBodyDescription
201application/json, MspReportScheduleViewCreated.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
402application/problem+json, ProblemDetailsThis report is not included in your plan.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsSchedule not found.
409application/problem+json, ProblemDetailsA schedule with that name already exists.
500application/problem+json, ProblemDetailsCould not save the schedule.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

201 response body

FieldTypeDescription
cannedReportstring
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
cronExprrequiredstring
definitionIdstring
enabledrequiredboolean
graceSecondsrequiredinteger
lastRunAtstring (date-time) or null
missedRunPolicyrequiredstring
namerequiredstring
nextDueAtstring (date-time) or null
pausedrequiredboolean
pausedReasonstring
publicIdrequiredstring
recipientsrequiredarray of string
timezonerequiredstring
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/msp/reports/schedules' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"cannedReport": "string",
"clients": [
"string"
],
"cronExpr": "string",
"definitionId": "string",
"enabled": false,
"graceSeconds": 0,
"missedRunPolicy": "string",
"name": "string",
"recipients": [
"string"
],
"timezone": "string"
}'

GET /api/v1/msp/reports/schedules/{scheduleId}

Section titled “GET /api/v1/msp/reports/schedules/{scheduleId}”

GETreport:readmsp facemspIdempotent

Source: [object Object]

Get msp report schedule

NameInTypeRequiredDescription
scheduleIdpathstringYesA uuid.
StatusBodyDescription
200application/json, MspReportScheduleViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the schedule.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
cannedReportstring
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
cronExprrequiredstring
definitionIdstring
enabledrequiredboolean
graceSecondsrequiredinteger
lastRunAtstring (date-time) or null
missedRunPolicyrequiredstring
namerequiredstring
nextDueAtstring (date-time) or null
pausedrequiredboolean
pausedReasonstring
publicIdrequiredstring
recipientsrequiredarray of string
timezonerequiredstring
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/msp/reports/schedules/<scheduleId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/msp/reports/schedules/{scheduleId}

Section titled “PUT /api/v1/msp/reports/schedules/{scheduleId}”

PUTreport:schedulemsp facemspIdempotent

Source: [object Object]

Update msp report schedule

NameInTypeRequiredDescription
scheduleIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
cannedReportstring or null
clientsrequiredarray of string
cronExprstring or null
definitionIdstring or null
enabledboolean or null
graceSecondsinteger or null
missedRunPolicystring or null
namestring or null
recipientsrequiredarray of string
timezonestring or null
StatusBodyDescription
200application/json, MspReportScheduleViewSuccess.
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 report:schedule.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsA schedule with that name already exists.
500application/problem+json, ProblemDetailsCould not read the schedule.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
cannedReportstring
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
cronExprrequiredstring
definitionIdstring
enabledrequiredboolean
graceSecondsrequiredinteger
lastRunAtstring (date-time) or null
missedRunPolicyrequiredstring
namerequiredstring
nextDueAtstring (date-time) or null
pausedrequiredboolean
pausedReasonstring
publicIdrequiredstring
recipientsrequiredarray of string
timezonerequiredstring
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/msp/reports/schedules/<scheduleId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"cannedReport": "string",
"clients": [
"string"
],
"cronExpr": "string",
"definitionId": "string",
"enabled": false,
"graceSeconds": 0,
"missedRunPolicy": "string",
"name": "string",
"recipients": [
"string"
],
"timezone": "string"
}'

DELETE /api/v1/msp/reports/schedules/{scheduleId}

Section titled “DELETE /api/v1/msp/reports/schedules/{scheduleId}”

DELETEreport:schedulemsp facemspIdempotent

Source: [object Object]

Delete msp report schedule

NameInTypeRequiredDescription
scheduleIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:schedule.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the schedule.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.
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/msp/reports/schedules/<scheduleId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/msp/reports/schedules/{scheduleId}/pause

Section titled “POST /api/v1/msp/reports/schedules/{scheduleId}/pause”

POSTreport:schedulemsp facemsp

Source: [object Object]

Pause msp report schedule

NameInTypeRequiredDescription
scheduleIdpathstringYesA uuid.
StatusBodyDescription
200application/json, MspReportScheduleViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:schedule.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the schedule.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
cannedReportstring
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
cronExprrequiredstring
definitionIdstring
enabledrequiredboolean
graceSecondsrequiredinteger
lastRunAtstring (date-time) or null
missedRunPolicyrequiredstring
namerequiredstring
nextDueAtstring (date-time) or null
pausedrequiredboolean
pausedReasonstring
publicIdrequiredstring
recipientsrequiredarray of string
timezonerequiredstring
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/msp/reports/schedules/<scheduleId>/pause' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/msp/reports/schedules/{scheduleId}/resume

Section titled “POST /api/v1/msp/reports/schedules/{scheduleId}/resume”

POSTreport:schedulemsp facemsp

Source: [object Object]

Resume msp report schedule

NameInTypeRequiredDescription
scheduleIdpathstringYesA uuid.
StatusBodyDescription
200application/json, MspReportScheduleViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:schedule.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the schedule.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
cannedReportstring
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
cronExprrequiredstring
definitionIdstring
enabledrequiredboolean
graceSecondsrequiredinteger
lastRunAtstring (date-time) or null
missedRunPolicyrequiredstring
namerequiredstring
nextDueAtstring (date-time) or null
pausedrequiredboolean
pausedReasonstring
publicIdrequiredstring
recipientsrequiredarray of string
timezonerequiredstring
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/msp/reports/schedules/<scheduleId>/resume' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/msp/reports/schedules/{scheduleId}/run-now

Section titled “POST /api/v1/msp/reports/schedules/{scheduleId}/run-now”

POSTreport:schedulemsp facemspIdempotent

Source: [object Object]

Run msp report schedule now

NameInTypeRequiredDescription
scheduleIdpathstringYesA uuid.
StatusBodyDescription
200application/json, MspReportScheduleViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:schedule.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis schedule is turned off, so nothing would be delivered. Turn it on first.
500application/problem+json, ProblemDetailsCould not read the schedule.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
cannedReportstring
clientsrequiredarray of string
createdAtrequiredstring (date-time)
createdByUserIdstring
cronExprrequiredstring
definitionIdstring
enabledrequiredboolean
graceSecondsrequiredinteger
lastRunAtstring (date-time) or null
missedRunPolicyrequiredstring
namerequiredstring
nextDueAtstring (date-time) or null
pausedrequiredboolean
pausedReasonstring
publicIdrequiredstring
recipientsrequiredarray of string
timezonerequiredstring
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 POST 'https://depot.example.com/api/v1/msp/reports/schedules/<scheduleId>/run-now' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/msp/reports/schedules/{scheduleId}/runs

Section titled “GET /api/v1/msp/reports/schedules/{scheduleId}/runs”

GETreport:readmsp facemspIdempotent

Source: [object Object]

List msp report schedule runs

NameInTypeRequiredDescription
scheduleIdpathstringYesA uuid.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultReportScheduleRunViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold report:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the schedule.
503application/problem+json, ProblemDetailsPractice-wide reports are not available on this Depot.

200 response body

FieldTypeDescription
itemsrequiredarray of ReportScheduleRunView
items[].dueAtrequiredstring (date-time)
items[].errorstring
items[].occurrenceKeyrequiredstring
items[].pdfBytesrequiredinteger

int64.

items[].ranAtrequiredstring (date-time)
items[].recipientCountrequiredinteger
items[].schedulePublicIdrequiredstring
items[].statusrequiredstring
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/msp/reports/schedules/<scheduleId>/runs?page=0&pageSize=0' \
-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.