Skip to content

Depot mdmmerge

Registers the merge-candidate routes.

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

GETmdm:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

listMdmMergeCandidates lists possible device merges, pending ones unless state says otherwise.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
statequerystring, one of accepted, pending, rejected, supersededNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, PagedResultMergeCandidateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mdm:read.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
itemsrequiredarray of MergeCandidateView
items[].acceptedAgentIdstring or null
items[].candidateAgentIdsrequiredarray of string
items[].createdAtrequiredstring (date-time)
items[].decidedAtstring (date-time) or null
items[].endpointsrequiredarray of MergeEndpointSummary
items[].endpoints[].agentIdrequiredstring
items[].endpoints[].aliasrequiredstring
items[].endpoints[].hasAgentrequiredboolean
items[].endpoints[].hostnamerequiredstring
items[].endpoints[].lastSeenAtstring (date-time) or null
items[].endpoints[].manufacturerrequiredstring
items[].endpoints[].modelrequiredstring
items[].endpoints[].osNamerequiredstring
items[].endpoints[].serialNumberrequiredstring
items[].enrollmentIdrequiredstring
items[].enrollmentTypestring or null
items[].matchBasisrequiredstring
items[].mdmAgentIdrequiredstring
items[].publicIdrequiredstring
items[].rowVersionrequiredinteger

int64.

items[].staterequiredstring
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/mdm/merge-candidates?page=0&pageSize=0&state=accepted' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/mdm/merge-candidates/{publicId}/accept

Section titled “POST /api/v1/mdm/merge-candidates/{publicId}/accept”

POSTmdm:enrolltenant facehosteditmspremoteIdempotent

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

Source: [object Object]

acceptMdmMergeCandidate merges the device’s MDM-only record into one of the candidate endpoints.

The enrollment, its commands and its timeline move onto that endpoint and the MDM-only record is removed.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
rowVersionrequiredinteger

int64.

StatusBodyDescription
200application/json, MergeCandidateViewSuccess.
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 mdm:enroll.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis merge candidate was already decided or changed, or the endpoint cannot take the enrollment. Reload and try again.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
acceptedAgentIdstring or null
candidateAgentIdsrequiredarray of string
createdAtrequiredstring (date-time)
decidedAtstring (date-time) or null
endpointsrequiredarray of MergeEndpointSummary
endpoints[].agentIdrequiredstring
endpoints[].aliasrequiredstring
endpoints[].hasAgentrequiredboolean
endpoints[].hostnamerequiredstring
endpoints[].lastSeenAtstring (date-time) or null
endpoints[].manufacturerrequiredstring
endpoints[].modelrequiredstring
endpoints[].osNamerequiredstring
endpoints[].serialNumberrequiredstring
enrollmentIdrequiredstring
enrollmentTypestring or null
matchBasisrequiredstring
mdmAgentIdrequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

staterequiredstring
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/mdm/merge-candidates/<publicId>/accept' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"rowVersion": 0
}'

POST /api/v1/mdm/merge-candidates/{publicId}/reject

Section titled “POST /api/v1/mdm/merge-candidates/{publicId}/reject”

POSTmdm:enrolltenant facehosteditmspremoteIdempotent

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

Source: [object Object]

rejectMdmMergeCandidate records that the device is not any of the candidate endpoints.

Nothing moves.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
rowVersionrequiredinteger

int64.

StatusBodyDescription
200application/json, MergeCandidateViewSuccess.
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 mdm:enroll.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis merge candidate was already decided or changed, or the endpoint cannot take the enrollment. Reload and try again.
500application/problem+json, ProblemDetailsNo client context in request.

200 response body

FieldTypeDescription
acceptedAgentIdstring or null
candidateAgentIdsrequiredarray of string
createdAtrequiredstring (date-time)
decidedAtstring (date-time) or null
endpointsrequiredarray of MergeEndpointSummary
endpoints[].agentIdrequiredstring
endpoints[].aliasrequiredstring
endpoints[].hasAgentrequiredboolean
endpoints[].hostnamerequiredstring
endpoints[].lastSeenAtstring (date-time) or null
endpoints[].manufacturerrequiredstring
endpoints[].modelrequiredstring
endpoints[].osNamerequiredstring
endpoints[].serialNumberrequiredstring
enrollmentIdrequiredstring
enrollmentTypestring or null
matchBasisrequiredstring
mdmAgentIdrequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

staterequiredstring
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/mdm/merge-candidates/<publicId>/reject' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"rowVersion": 0
}'

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.