Skip to content

Depot mdmadmx

Registers the ADMX template 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]

listMdmAdmx lists the ingested ADMX templates, by app name.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultMdmAdmxViewSuccess.
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 store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of MdmAdmxView
items[].appNamerequiredstring
items[].createdAtrequiredstring (date-time)
items[].createdByUserIdstring or null
items[].fileNamerequiredstring
items[].fileUidrequiredstring
items[].installNoderequiredstring
items[].policiesany

Arbitrary JSON.

items[].policyCountrequiredinteger
items[].productstring or null
items[].publicIdrequiredstring
items[].rowVersionrequiredinteger

int64.

items[].sha256requiredstring
items[].sourcerequiredstring
items[].updatedAtrequiredstring (date-time)
items[].versionstring 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/mdm/windows/admx?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTmdm:managetenant facehosteditmspremote

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

Source: [object Object]

uploadMdmAdmx ingests an ADMX template sent as multipart form data: file (the .admx), optionally adml (its en-US .adml, for display names), and optionally appName and fileUid, the ADMXInstall node names (by default the template’s namespace prefix and the file name).

A template that writes a protected registry location is refused.

Required, sent as multipart/form-data.

The body is object.

StatusBodyDescription
201application/json, MdmAdmxViewCreated.
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:manage.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
413application/problem+json, ProblemDetailsAn ADMX or ADML file can be at most 8 MiB.
500application/problem+json, ProblemDetailsNo client store in request context.

201 response body

FieldTypeDescription
appNamerequiredstring
createdAtrequiredstring (date-time)
createdByUserIdstring or null
fileNamerequiredstring
fileUidrequiredstring
installNoderequiredstring
policiesany

Arbitrary JSON.

policyCountrequiredinteger
productstring or null
publicIdrequiredstring
rowVersionrequiredinteger

int64.

sha256requiredstring
sourcerequiredstring
updatedAtrequiredstring (date-time)
versionstring or null
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/mdm/windows/admx' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-b 'outpost_console=<console-session>' \
--data '{}'

GETmdm:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

getMdmAdmx reads one ingested ADMX template with its policy index: every policy’s name, display name, class, category and the values it takes.

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

200 response body

FieldTypeDescription
appNamerequiredstring
createdAtrequiredstring (date-time)
createdByUserIdstring or null
fileNamerequiredstring
fileUidrequiredstring
installNoderequiredstring
policiesany

Arbitrary JSON.

policyCountrequiredinteger
productstring or null
publicIdrequiredstring
rowVersionrequiredinteger

int64.

sha256requiredstring
sourcerequiredstring
updatedAtrequiredstring (date-time)
versionstring 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 GET 'https://depot.example.com/api/v1/mdm/windows/admx/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETE /api/v1/mdm/windows/admx/{publicId}

Section titled “DELETE /api/v1/mdm/windows/admx/{publicId}”

DELETEmdm:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteMdmAdmx removes an ingested template.

Devices keep it until a profile change re-renders them; a profile still naming its policies shows an issue for each. rowVersion, when given, guards a concurrent change.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
rowVersionquerystringNo
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 mdm:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe template changed since you read it. Reload and try again.
500application/problem+json, ProblemDetailsNo client store in request context.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/mdm/windows/admx/<publicId>?rowVersion=<rowVersion>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/mdm/windows/admx/microsoft/{product}

Section titled “POST /api/v1/mdm/windows/admx/microsoft/{product}”

POSTmdm:managetenant facehosteditmspremote

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

Source: [object Object]

fetchMdmAdmx downloads Microsoft’s Edge or OneDrive template and ingests it under the app name Microsoft’s documentation uses (MSEdge, OneDriveNGSC).

Delete the ingested one first to take a newer template.

NameInTypeRequiredDescription
productpathstringYes
StatusBodyDescription
201application/json, MdmAdmxViewCreated.
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:manage.
404application/problem+json, ProblemDetailsOutpost fetches the edge and onedrive templates.
409application/problem+json, ProblemDetailsThe request conflicts with the current state.
500application/problem+json, ProblemDetailsNo client store in request context.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsThe request was refused.

201 response body

FieldTypeDescription
appNamerequiredstring
createdAtrequiredstring (date-time)
createdByUserIdstring or null
fileNamerequiredstring
fileUidrequiredstring
installNoderequiredstring
policiesany

Arbitrary JSON.

policyCountrequiredinteger
productstring or null
publicIdrequiredstring
rowVersionrequiredinteger

int64.

sha256requiredstring
sourcerequiredstring
updatedAtrequiredstring (date-time)
versionstring or null
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/mdm/windows/admx/microsoft/<product>' \
-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.