Skip to content

Depot ticketconfig

Registers the client desk vocabulary and its MSP-default state on the tenant service-desk 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.

GETticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

getDeskConfigState reads this client’s desk settings.

StatusBodyDescription
200application/json, DeskConfigStateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:manage.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
appliedAtstring (date-time) or null
appliedMspVersionrequiredinteger

int64.

categoriesOverriddenrequiredboolean
mspVersioninteger or null

int64.

notificationsOverriddenrequiredboolean
sourceDefaultsOverriddenrequiredboolean
statusesOverriddenrequiredboolean
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/desk-config' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

revertDeskArea hands one area back to the MSP defaults: the override flag is cleared (which releases this client’s own rows in the area to the sync) and the MSP snapshot is applied.

Refused with 409 when it would drop a status or category this client made that open tickets still use and the MSP set does not have.

NameInTypeRequiredDescription
areapathstringYes
StatusBodyDescription
200application/json, DeskConfigStateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket: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.
503application/problem+json, ProblemDetailsThe MSP desk defaults are not available here.

200 response body

FieldTypeDescription
appliedAtstring (date-time) or null
appliedMspVersionrequiredinteger

int64.

categoriesOverriddenrequiredboolean
mspVersioninteger or null

int64.

notificationsOverriddenrequiredboolean
sourceDefaultsOverriddenrequiredboolean
statusesOverriddenrequiredboolean
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/desk-config/<area>/revert' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETticket:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listTicketCategories lists this client’s ticket categories.

StatusBodyDescription
200application/json, PagedResultTicketCategoryDefViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of TicketCategoryDefView
items[].coderequiredstring
items[].descriptionrequiredstring
items[].isSystemrequiredboolean
items[].namerequiredstring
items[].originrequiredstring
items[].publicIdrequiredstring
items[].sortOrderrequiredinteger
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/ticket-categories' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTticket:managetenant facehosteditmspremote

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

Source: [object Object]

createTicketCategory creates one of this client’s ticket categories.

Required, sent as application/json.

FieldTypeDescription
codestring or null
descriptionstring or null
namestring or null
sortOrderinteger or null
StatusBodyDescription
201application/json, TicketCategoryDefViewCreated.
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 ticket:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
coderequiredstring
descriptionrequiredstring
isSystemrequiredboolean
namerequiredstring
originrequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
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/ticket-categories' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"code": "string",
"description": "string",
"name": "string",
"sortOrder": 0
}'

PATCH /api/v1/ticket-categories/{categoryID}

Section titled “PATCH /api/v1/ticket-categories/{categoryID}”

PATCHticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

patchTicketCategory changes one of this client’s ticket categories.

NameInTypeRequiredDescription
categoryIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
codestring or null
descriptionstring or null
namestring or null
sortOrderinteger or null
StatusBodyDescription
200application/json, TicketCategoryDefViewSuccess.
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 ticket: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.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
coderequiredstring
descriptionrequiredstring
isSystemrequiredboolean
namerequiredstring
originrequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
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/ticket-categories/<categoryID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"code": "string",
"description": "string",
"name": "string",
"sortOrder": 0
}'

DELETE /api/v1/ticket-categories/{categoryID}

Section titled “DELETE /api/v1/ticket-categories/{categoryID}”

DELETEticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteTicketCategory removes one of this client’s ticket categories: 422 for a built-in, 409 while open tickets carry it or an auto-ticket source files into it.

NameInTypeRequiredDescription
categoryIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
422application/problem+json, ProblemDetailsA built-in category cannot be deleted.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/ticket-categories/<categoryID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTticket:managetenant facehosteditmspremote

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

Source: [object Object]

Create ticket queue

Required, sent as application/json.

FieldTypeDescription
defaultAssigneeIdstring or null
defaultGroupIdstring or null
defaultSlaPolicyIdstring or null
descriptionstring or null
isDefaultboolean or null
namestring or null
sortOrderinteger or null
StatusBodyDescription
201application/json, TicketQueueAdminViewCreated.
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 ticket:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
defaultAssigneeIdrequiredstring
defaultGroupIdrequiredstring
defaultSlaPolicyIdrequiredstring
descriptionrequiredstring
isDefaultrequiredboolean
namerequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
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/ticket-queues' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"defaultAssigneeId": "string",
"defaultGroupId": "string",
"defaultSlaPolicyId": "string",
"description": "string",
"isDefault": false,
"name": "string",
"sortOrder": 0
}'

GETticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Get ticket queue admin

NameInTypeRequiredDescription
queueIDpathstringYesA uuid.
StatusBodyDescription
200application/json, TicketQueueAdminViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket: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.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
defaultAssigneeIdrequiredstring
defaultGroupIdrequiredstring
defaultSlaPolicyIdrequiredstring
descriptionrequiredstring
isDefaultrequiredboolean
namerequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
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/ticket-queues/<queueID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

patchTicketQueue is READ-MODIFY-WRITE.

UpdateTicketQueue assigns the description, the three default targets and the default flag unconditionally, so a body built from the request alone would clear every default a queue held whenever somebody renamed it.

NameInTypeRequiredDescription
queueIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
defaultAssigneeIdstring or null
defaultGroupIdstring or null
defaultSlaPolicyIdstring or null
descriptionstring or null
isDefaultboolean or null
namestring or null
sortOrderinteger or null
StatusBodyDescription
200application/json, TicketQueueAdminViewSuccess.
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 ticket: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.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
defaultAssigneeIdrequiredstring
defaultGroupIdrequiredstring
defaultSlaPolicyIdrequiredstring
descriptionrequiredstring
isDefaultrequiredboolean
namerequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
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/ticket-queues/<queueID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"defaultAssigneeId": "string",
"defaultGroupId": "string",
"defaultSlaPolicyId": "string",
"description": "string",
"isDefault": false,
"name": "string",
"sortOrder": 0
}'

DELETEticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteTicketQueue refuses the two deletions that leave a desk unable to file a ticket.

A ticket created with no route goes to the default queue, and the delete is a SOFT delete that leaves every existing ticket pointing at a queue the console no longer lists. Neither case errors anywhere: tickets simply stop arriving where anybody is looking, which is discovered days later by a customer.

NameInTypeRequiredDescription
queueIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThat is the default queue. Make another queue the default first, or tickets filed with no route will have nowhere to go.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/ticket-queues/<queueID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listTicketQueuesAdmin serves the queue administration list.

There is no “enabled” filter, and it is not an omission: “TicketQueue” has no such column. A queue is retired by deleting it, which is the soft delete every read here already excludes, so a filter for it would be a control that narrowed nothing while its chip claimed otherwise.

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, order, updatedNoSort key.
StatusBodyDescription
200application/json, PagedResultTicketQueueAdminViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:manage.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of TicketQueueAdminView
items[].createdAtrequiredstring (date-time)
items[].defaultAssigneeIdrequiredstring
items[].defaultGroupIdrequiredstring
items[].defaultSlaPolicyIdrequiredstring
items[].descriptionrequiredstring
items[].isDefaultrequiredboolean
items[].namerequiredstring
items[].publicIdrequiredstring
items[].sortOrderrequiredinteger
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/ticket-queues/admin?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>'

GETticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listTicketSourceDefaults lists this client’s source defaults.

StatusBodyDescription
200application/json, PagedResultTicketSourceDefaultViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:manage.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of TicketSourceDefaultView
items[].categorystring or null
items[].originrequiredstring
items[].sourcerequiredstring
items[].subcategorystring or null
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/ticket-source-defaults' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/ticket-source-defaults/{source}

Section titled “PUT /api/v1/ticket-source-defaults/{source}”

PUTticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

putTicketSourceDefault replaces one of this client’s source defaults.

A null category files that source’s tickets as “incident”.

NameInTypeRequiredDescription
sourcepathstringYes

Required, sent as application/json.

FieldTypeDescription
categorystring or null
subcategorystring or null
StatusBodyDescription
200application/json, TicketSourceDefaultViewSuccess.
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 ticket:manage.
404application/problem+json, ProblemDetailsNo auto-ticket source has that name.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
categorystring or null
originrequiredstring
sourcerequiredstring
subcategorystring 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 PUT 'https://depot.example.com/api/v1/ticket-source-defaults/<source>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"category": "string",
"subcategory": "string"
}'

GETticket:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listTicketStatuses lists this client’s ticket statuses.

StatusBodyDescription
200application/json, PagedResultTicketStatusDefViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of TicketStatusDefView
items[].categoryrequiredstring
items[].coderequiredstring
items[].isSystemrequiredboolean
items[].namerequiredstring
items[].originrequiredstring
items[].publicIdrequiredstring
items[].sortOrderrequiredinteger
items[].stopsSlaClockrequiredboolean
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/ticket-statuses' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTticket:managetenant facehosteditmspremote

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

Source: [object Object]

createTicketStatus creates one of this client’s ticket statuses.

Required, sent as application/json.

FieldTypeDescription
categorystring or null
codestring or null
namestring or null
sortOrderinteger or null
stopsSlaClockboolean or null
StatusBodyDescription
201application/json, TicketStatusDefViewCreated.
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 ticket:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
categoryrequiredstring
coderequiredstring
isSystemrequiredboolean
namerequiredstring
originrequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
stopsSlaClockrequiredboolean
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/ticket-statuses' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"category": "string",
"code": "string",
"name": "string",
"sortOrder": 0,
"stopsSlaClock": false
}'

PATCHticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

patchTicketStatus changes one of this client’s ticket statuses.

A system status may be renamed and reordered but keeps its category: the product’s behaviour hangs off the six built-ins being one per category.

NameInTypeRequiredDescription
statusIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
categorystring or null
codestring or null
namestring or null
sortOrderinteger or null
stopsSlaClockboolean or null
StatusBodyDescription
200application/json, TicketStatusDefViewSuccess.
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 ticket: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.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
categoryrequiredstring
coderequiredstring
isSystemrequiredboolean
namerequiredstring
originrequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
stopsSlaClockrequiredboolean
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/ticket-statuses/<statusID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"category": "string",
"code": "string",
"name": "string",
"sortOrder": 0,
"stopsSlaClock": false
}'

DELETEticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteTicketStatus removes one of this client’s ticket statuses: 422 for a built-in, 409 while open tickets are in it (they would sit in a status no picker offers).

NameInTypeRequiredDescription
statusIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
422application/problem+json, ProblemDetailsA built-in status cannot be deleted.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/ticket-statuses/<statusID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETticket:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listTicketSubcategories lists this client’s ticket subcategories, of one category with ?category=&lt;code>.

NameInTypeRequiredDescription
categoryquerystringNo
StatusBodyDescription
200application/json, PagedResultTicketSubcategoryDefViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of TicketSubcategoryDefView
items[].categoryrequiredstring
items[].coderequiredstring
items[].descriptionrequiredstring
items[].namerequiredstring
items[].originrequiredstring
items[].publicIdrequiredstring
items[].sortOrderrequiredinteger
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/ticket-subcategories?category=<category>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTticket:managetenant facehosteditmspremote

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

Source: [object Object]

createTicketSubcategory creates one of this client’s ticket subcategories.

Required, sent as application/json.

FieldTypeDescription
categorystring or null
codestring or null
descriptionstring or null
namestring or null
sortOrderinteger or null
StatusBodyDescription
201application/json, TicketSubcategoryDefViewCreated.
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 ticket:manage.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
categoryrequiredstring
coderequiredstring
descriptionrequiredstring
namerequiredstring
originrequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
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/ticket-subcategories' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"category": "string",
"code": "string",
"description": "string",
"name": "string",
"sortOrder": 0
}'

PATCH /api/v1/ticket-subcategories/{subcategoryID}

Section titled “PATCH /api/v1/ticket-subcategories/{subcategoryID}”

PATCHticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

patchTicketSubcategory changes one of this client’s ticket subcategories.

The category and code are immutable.

NameInTypeRequiredDescription
subcategoryIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
categorystring or null
codestring or null
descriptionstring or null
namestring or null
sortOrderinteger or null
StatusBodyDescription
200application/json, TicketSubcategoryDefViewSuccess.
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 ticket: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.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
categoryrequiredstring
coderequiredstring
descriptionrequiredstring
namerequiredstring
originrequiredstring
publicIdrequiredstring
sortOrderrequiredinteger
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/ticket-subcategories/<subcategoryID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"category": "string",
"code": "string",
"description": "string",
"name": "string",
"sortOrder": 0
}'

DELETE /api/v1/ticket-subcategories/{subcategoryID}

Section titled “DELETE /api/v1/ticket-subcategories/{subcategoryID}”

DELETEticket:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteTicketSubcategory removes one of this client’s ticket subcategories; 409 while open tickets carry it or a source default names it.

NameInTypeRequiredDescription
subcategoryIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket: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.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/ticket-subcategories/<subcategoryID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTticket:writetenant facehosteditmspremote

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

Source: [object Object]

createTicketView stores a saved filter owned by whoever asked for it, unless they asked for a shared one and hold the permission to publish.

Required, sent as application/json.

FieldTypeDescription
columnsany

Arbitrary JSON.

conditionany

Arbitrary JSON.

descriptionstring or null
namestring or null
sharedboolean or null
showCountboolean or null
sortany

Arbitrary JSON.

sortOrderinteger or null
StatusBodyDescription
201application/json, TicketSavedViewViewCreated.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

201 response body

FieldTypeDescription
countrequiredinteger
namerequiredstring
publicIdrequiredstring
queryrequiredobject
sharedrequiredboolean
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/ticket-views' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"columns": "string",
"condition": "string",
"description": "string",
"name": "string",
"shared": false,
"showCount": false,
"sort": "string",
"sortOrder": 0
}'

PATCHticket:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Patch ticket view

NameInTypeRequiredDescription
viewIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
columnsany

Arbitrary JSON.

conditionany

Arbitrary JSON.

descriptionstring or null
namestring or null
sharedboolean or null
showCountboolean or null
sortany

Arbitrary JSON.

sortOrderinteger or null
StatusBodyDescription
200application/json, TicketSavedViewViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.

200 response body

FieldTypeDescription
countrequiredinteger
namerequiredstring
publicIdrequiredstring
queryrequiredobject
sharedrequiredboolean
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/ticket-views/<viewID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"columns": "string",
"condition": "string",
"description": "string",
"name": "string",
"shared": false,
"showCount": false,
"sort": "string",
"sortOrder": 0
}'

DELETEticket:writetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

Delete ticket view

NameInTypeRequiredDescription
viewIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold the required permission.
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.
507application/problem+json, ProblemDetailsThe storage profile for this client is over its configured quota. Raise the quota or remove attachments.
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/ticket-views/<viewID>' \
-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.