Skip to content

Depot assets msp

Registers the /msp/assets routes on the control-plane 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.

GETassets:readmsp facemspIdempotent

Source: [object Object]

list is every client’s assets plus the practice’s own.

NameInTypeRequiredDescription
categoryquerystring, one of accessory, component, desktop, laptop, license, monitor, network, other, peripheral, phone, printer, server, tabletNoComma-separated set. An unrecognised value is refused.
clientquerystringNo
dirquerystring, one of asc, descNoSort direction.
holderKindquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
sortquerystring, one of name, purchased, state, tag, warrantyNoSort key.
statequerystring, one of deployed, disposed, in_repair, in_stock, lost, purchased, retired, rmaNoComma-separated set. An unrecognised value is refused.
unlinkedquerystringNo
warrantyBeforequerystringNo
StatusBodyDescription
200application/json, PsaFanOutPageAssetViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold assets:read.
500application/problem+json, ProblemDetailsCould not list clients.
503application/problem+json, ProblemDetailsThis Depot cannot reach its clients.

200 response body

FieldTypeDescription
itemsrequiredarray of AssetView
items[].assetTagstring or null
items[].categoryrequiredstring
items[].clientIdstring or null
items[].clientNamestring or null
items[].createdAtrequiredstring
items[].disposalMethodstring or null
items[].endpointAgentIdstring or null
items[].endpointLinkKindstring or null
items[].endpointNamestring or null
items[].holderIdstring or null
items[].holderKindstring or null
items[].holderNamestring or null
items[].landedCostCentsrequiredinteger

int64.

items[].manufacturerrequiredstring
items[].modelrequiredstring
items[].namerequiredstring
items[].notesrequiredstring
items[].poNumberstring or null
items[].publicIdrequiredstring
items[].purchaseCostCentsrequiredinteger

int64.

items[].purchaseOrderIdstring or null
items[].purchasedOnstring or null
items[].rowVersionrequiredinteger

int64.

items[].salesOrderIdstring or null
items[].salesOrderNumberstring or null
items[].serialNumberrequiredstring
items[].siteIdstring or null
items[].siteNamestring or null
items[].sourcerequiredstring
items[].staterequiredstring
items[].stateChangedAtrequiredstring
items[].stockItemIdstring or null
items[].stockLocationIdstring or null
items[].stockLocationNamestring or null
items[].updatedAtrequiredstring
items[].warrantyCheckedAtstring or null
items[].warrantyEndsOnstring or null
items[].warrantyErrorrequiredstring
items[].warrantySourcestring or null
items[].warrantyStartsOnstring or null
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
totalClientsrequiredinteger
unavailableClientsrequiredarray of string
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/assets?category=accessory&client=<client>&dir=asc&holderKind=<holderKind>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTassets:writemsp facemspIdempotent

Source: [object Object]

deploy moves practice-held hardware into a client’s register (the row, its history and its custody records keep their ids) and marks it deployed.

NameInTypeRequiredDescription
idpathstringYesA uuid.

Required, sent as application/json.

The body is any.

StatusBodyDescription
200application/json, AssetViewSuccess.
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 assets:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThat change conflicts with the current state.
412application/problem+json, ProblemDetailsThis asset changed since it was read. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot cannot reach its clients.

200 response body

FieldTypeDescription
assetTagstring or null
categoryrequiredstring
clientIdstring or null
clientNamestring or null
createdAtrequiredstring
disposalMethodstring or null
endpointAgentIdstring or null
endpointLinkKindstring or null
endpointNamestring or null
holderIdstring or null
holderKindstring or null
holderNamestring or null
landedCostCentsrequiredinteger

int64.

manufacturerrequiredstring
modelrequiredstring
namerequiredstring
notesrequiredstring
poNumberstring or null
publicIdrequiredstring
purchaseCostCentsrequiredinteger

int64.

purchaseOrderIdstring or null
purchasedOnstring or null
rowVersionrequiredinteger

int64.

salesOrderIdstring or null
salesOrderNumberstring or null
serialNumberrequiredstring
siteIdstring or null
siteNamestring or null
sourcerequiredstring
staterequiredstring
stateChangedAtrequiredstring
stockItemIdstring or null
stockLocationIdstring or null
stockLocationNamestring or null
updatedAtrequiredstring
warrantyCheckedAtstring or null
warrantyEndsOnstring or null
warrantyErrorrequiredstring
warrantySourcestring or null
warrantyStartsOnstring or null
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/assets/<id>/deploy' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

GETassets:readmsp facemspIdempotent

Source: [object Object]

forecast is the refresh forecast across every client, the practice’s RefreshAgeMonths applied to all of them.

NameInTypeRequiredDescription
clientquerystringNo
horizonDaysquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PsaFanOutPageMspForecastViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold assets:read.
500application/problem+json, ProblemDetailsCould not list clients.
503application/problem+json, ProblemDetailsThis Depot cannot reach its clients.

200 response body

FieldTypeDescription
itemsrequiredarray of MspForecastView
items[].assetrequiredAssetView
items[].asset.assetTagstring or null
items[].asset.categoryrequiredstring
items[].asset.clientIdstring or null
items[].asset.clientNamestring or null
items[].asset.createdAtrequiredstring
items[].asset.disposalMethodstring or null
items[].asset.endpointAgentIdstring or null
items[].asset.endpointLinkKindstring or null
items[].asset.endpointNamestring or null
items[].asset.holderIdstring or null
items[].asset.holderKindstring or null
items[].asset.holderNamestring or null
items[].asset.landedCostCentsrequiredinteger

int64.

items[].asset.manufacturerrequiredstring
items[].asset.modelrequiredstring
items[].asset.namerequiredstring
items[].asset.notesrequiredstring
items[].asset.poNumberstring or null
items[].asset.publicIdrequiredstring
items[].asset.purchaseCostCentsrequiredinteger

int64.

items[].asset.purchaseOrderIdstring or null
items[].asset.purchasedOnstring or null
items[].asset.rowVersionrequiredinteger

int64.

items[].asset.salesOrderIdstring or null
items[].asset.salesOrderNumberstring or null
items[].asset.serialNumberrequiredstring
items[].asset.siteIdstring or null
items[].asset.siteNamestring or null
items[].asset.sourcerequiredstring
items[].asset.staterequiredstring
items[].asset.stateChangedAtrequiredstring
items[].asset.stockItemIdstring or null
items[].asset.stockLocationIdstring or null
items[].asset.stockLocationNamestring or null
items[].asset.updatedAtrequiredstring
items[].asset.warrantyCheckedAtstring or null
items[].asset.warrantyEndsOnstring or null
items[].asset.warrantyErrorrequiredstring
items[].asset.warrantySourcestring or null
items[].asset.warrantyStartsOnstring or null
items[].clientIdstring or null
items[].clientNamestring or null
items[].dueOnrequiredstring
items[].reasonrequiredstring
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
totalClientsrequiredinteger
unavailableClientsrequiredarray of string
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/assets/forecast?client=<client>&horizonDays=<horizonDays>&page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTcrm:writemsp facemsp

Source: [object Object]

replacementQuote drafts a quote for the client with one line per asset to replace.

Prices are left for the salesperson; the draft is never sent.

Required, sent as application/json.

The body is any.

StatusBodyDescription
201application/json, objectCreated.
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 crm:write.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot cannot reach its clients.
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/assets/replacement-quote' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

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.