Skip to content

Depot mdmapns

Registers the tenant APNs 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]

getMdmApns shows this client’s Apple push certificate: the active one, a request waiting for Apple’s certificate, and the strategies available.

StatusBodyDescription
200application/json, ApnsStatusViewSuccess.
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, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsDevice management credentials are not available on this Depot.

200 response body

FieldTypeDescription
activeApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

active.appleAccountOwnerstring or null
active.createdAtrequiredstring (date-time)
active.notAfterstring (date-time) or null
active.publicIdrequiredstring
active.sourcerequiredstring
active.staterequiredstring
active.topicstring or null
allowedStrategiesrequiredarray of string
expiresInDaysinteger or null
pendingApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

pending.appleAccountOwnerstring or null
pending.createdAtrequiredstring (date-time)
pending.notAfterstring (date-time) or null
pending.publicIdrequiredstring
pending.sourcerequiredstring
pending.staterequiredstring
pending.topicstring or null
strategyrequiredstring
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/apple/apns' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTmdm:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

uploadMdmApnsCertificate completes a push certificate request with the certificate Apple issued.

A renewal must keep the existing push topic.

Required, sent as application/json.

FieldTypeDescription
acknowledgeReenrollrequiredboolean
certPemrequiredstring
replaceTopicrequiredboolean
StatusBodyDescription
200application/json, ApnsStatusViewSuccess.
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 push certificate changed while you were working. Reload and try again.
422application/problem+json, ProblemDetailsThe practice has no shared push certificate yet. Set one up under Device management > Credential vault in the MSP console first.
429application/problem+json, ProblemDetailsToo many requests to Outpost. Try again in a few minutes.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsDevice management credentials are not available on this Depot.

200 response body

FieldTypeDescription
activeApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

active.appleAccountOwnerstring or null
active.createdAtrequiredstring (date-time)
active.notAfterstring (date-time) or null
active.publicIdrequiredstring
active.sourcerequiredstring
active.staterequiredstring
active.topicstring or null
allowedStrategiesrequiredarray of string
expiresInDaysinteger or null
pendingApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

pending.appleAccountOwnerstring or null
pending.createdAtrequiredstring (date-time)
pending.notAfterstring (date-time) or null
pending.publicIdrequiredstring
pending.sourcerequiredstring
pending.staterequiredstring
pending.topicstring or null
strategyrequiredstring
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/apple/apns/certificate' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"acknowledgeReenroll": false,
"certPem": "string",
"replaceTopic": false
}'

POSTmdm:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

createMdmApnsCsr starts a new or renewed Apple push certificate: Outpost generates the key, Outpost’s vendor certificate signs the request, and the answer is the file to upload at Apple’s push certificates portal.

Required, sent as application/json.

FieldTypeDescription
appleAccountOwnerstring or null
StatusBodyDescription
200application/json, ApnsCsrViewSuccess.
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 push certificate changed while you were working. Reload and try again.
422application/problem+json, ProblemDetailsThe practice has no shared push certificate yet. Set one up under Device management > Credential vault in the MSP console first.
429application/problem+json, ProblemDetailsToo many requests to Outpost. Try again in a few minutes.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsDevice management credentials are not available on this Depot.

200 response body

FieldTypeDescription
pendingrequiredApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

pending.appleAccountOwnerstring or null
pending.createdAtrequiredstring (date-time)
pending.notAfterstring (date-time) or null
pending.publicIdrequiredstring
pending.sourcerequiredstring
pending.staterequiredstring
pending.topicstring or null
plistB64requiredstring
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/apple/apns/csr' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"appleAccountOwner": "string"
}'

GETmdm:readtenant facehosteditmspremoteIdempotent

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

Source: [object Object]

getMdmApnsRenewalCheck says when the push certificate expires and how to renew it without changing its topic.

StatusBodyDescription
200application/json, ApnsRenewalCheckViewSuccess.
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, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsDevice management credentials are not available on this Depot.

200 response body

FieldTypeDescription
appleAccountOwnerstring or null
expiresInDaysinteger or null
notAfterstring (date-time) or null
pendingCsrrequiredboolean
renewalDuerequiredboolean
stepsrequiredarray of string
topicstring 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/apple/apns/renewal-check' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/mdm/apple/apns/use-outpost-generated

Section titled “POST /api/v1/mdm/apple/apns/use-outpost-generated”

POSTmdm:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

useMdmApnsOutpostGenerated asks Outpost staff to create this client’s push certificate (IT departments only).

If the client already has a push certificate, every enrolled Apple device would have to enroll again, so acknowledgeReenroll is required.

Required, sent as application/json.

FieldTypeDescription
acknowledgeReenrollrequiredboolean
appleAccountOwnerstring or null
StatusBodyDescription
200application/json, ApnsStatusViewSuccess.
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 push certificate changed while you were working. Reload and try again.
422application/problem+json, ProblemDetailsThe practice has no shared push certificate yet. Set one up under Device management > Credential vault in the MSP console first.
429application/problem+json, ProblemDetailsToo many requests to Outpost. Try again in a few minutes.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsDevice management credentials are not available on this Depot.

200 response body

FieldTypeDescription
activeApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

active.appleAccountOwnerstring or null
active.createdAtrequiredstring (date-time)
active.notAfterstring (date-time) or null
active.publicIdrequiredstring
active.sourcerequiredstring
active.staterequiredstring
active.topicstring or null
allowedStrategiesrequiredarray of string
expiresInDaysinteger or null
pendingApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

pending.appleAccountOwnerstring or null
pending.createdAtrequiredstring (date-time)
pending.notAfterstring (date-time) or null
pending.publicIdrequiredstring
pending.sourcerequiredstring
pending.staterequiredstring
pending.topicstring or null
strategyrequiredstring
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/apple/apns/use-outpost-generated' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"acknowledgeReenroll": false,
"appleAccountOwner": "string"
}'

POST /api/v1/mdm/apple/apns/use-practice-fallback

Section titled “POST /api/v1/mdm/apple/apns/use-practice-fallback”

POSTmdm:managetenant facehosteditmspremoteIdempotent

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

Source: [object Object]

useMdmApnsPracticeFallback points this client at the practice’s shared push certificate (MSP practices only).

If the client already has its own certificate, every enrolled Apple device would have to enroll again, so acknowledgeReenroll is required.

Required, sent as application/json.

FieldTypeDescription
acknowledgeReenrollrequiredboolean
appleAccountOwnerstring or null
StatusBodyDescription
200application/json, ApnsStatusViewSuccess.
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 push certificate changed while you were working. Reload and try again.
422application/problem+json, ProblemDetailsThe practice has no shared push certificate yet. Set one up under Device management > Credential vault in the MSP console first.
429application/problem+json, ProblemDetailsToo many requests to Outpost. Try again in a few minutes.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsDevice management credentials are not available on this Depot.

200 response body

FieldTypeDescription
activeApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

active.appleAccountOwnerstring or null
active.createdAtrequiredstring (date-time)
active.notAfterstring (date-time) or null
active.publicIdrequiredstring
active.sourcerequiredstring
active.staterequiredstring
active.topicstring or null
allowedStrategiesrequiredarray of string
expiresInDaysinteger or null
pendingApnsCertView

apnsCertView is the wire ApnsCert (contract 7.3).

pending.appleAccountOwnerstring or null
pending.createdAtrequiredstring (date-time)
pending.notAfterstring (date-time) or null
pending.publicIdrequiredstring
pending.sourcerequiredstring
pending.staterequiredstring
pending.topicstring or null
strategyrequiredstring
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/apple/apns/use-practice-fallback' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"acknowledgeReenroll": false,
"appleAccountOwner": "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.