Generate an MDM package

Generates the tenant's MDM package for the requested {mdm, os} target. Ordering (§3.6) fails
closed before any token mint: resolve+validate the target (400, incl. an unsupported (mdm, os)
pair and a missing os on the generic path — before any fetch, so a client error can never
arrive disguised as the 503) → derive env (503) → fetch template (503) → verify placeholder count
(500) → resolve packaging token (409 not-onboarded / 503 key-unavailable / 500 decrypt) →
substitute + guards (500) → audit → 200 envelope.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Request body for POST mdm-package. Carries the deployment target only — the company
(D77) and env (from the serving instance) are never request parameters.


Resolution of these two fields is Mine.Portal.Module.Aispm.Services.AispmMdmPackageRequestResolver, which implements
mdm-os-dimension.md §5's table: every input shape has exactly one outcome, including the two
omissions (an omitted mdm resolves to generic; an omitted os is a 400 there and a
channel default otherwise).

string | null

The MDM channel: generic, intune, jamf, or kandji. Optional since
D252 — omitting it means generic
, whose package deploys through ANY MDM that can
run a shell or PowerShell script. Name a channel only where it changes something; today only
jamf does (its token arrives via the policy $4 field).


An UNKNOWN non-empty value is a 400, deliberately NOT treated as generic: a typo of
jamf would otherwise yield a package with the token embedded where the Jamf policy expects
to supply it.

string | null

The target operating system: macos or windows. Optional for a NAMED channel — it
defaults to that channel's default OS (M:Mine.Portal.Module.Aispm.Services.AispmMdmTarget.DefaultOsFor(System.String)), which is what
keeps every pre-T153 caller working unchanged. REQUIRED when the resolved channel is
generic
(i.e. whenever Mine.Portal.Module.Aispm.Api.Portal.AispmMdmPackageRequest.Mdm is omitted): no vendor is named, so nothing
implies a platform, and a wrong-language package passes every output guard and still breaks every
device. An OS the channel is not supported on is a 400, raised in the validation step so it can
never reach the fetcher and surface as a 503.

Headers
string
enum
Defaults to application/json-patch+json

Generated from available request content types

Allowed:
Response
200

Success

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here!