MDM Providers¶
MDM provider abstraction for Jamf Pro and Intune parameter parsing.
Auto-Detection¶
- get_provider(provider: str | None = None) MdmParamProvider[source]¶
Get the MDM parameter provider instance.
Detection order: 1. Explicit
providerargument (“jamf” or “intune”) 2.PYMDM_MDM_PROVIDERenvironment variable 3. Platform-based default: “jamf” on macOS, “intune” on Windows- Parameters:
provider (str | None, optional) – Explicit provider name, defaults to None (auto-detect)
- Returns:
MDM provider instance
- Return type:
MdmParamProvider
- Raises:
ValueError – If the provider name is not recognized
JamfParamParser¶
- class JamfParamParser[source]¶
Bases:
objectJamf Pro parameter parser.
Jamf Pro reserves parameters 0-3: - $0 = Script name - $1 = Mount point of the target drive - $2 = Computer name - $3 = Username of logged in user
User-defined parameters are $4 through $11 (indices 4-11 in sys.argv).
Satisfies the MdmParamProvider protocol.
IntuneParamProvider¶
- class IntuneParamProvider[source]¶
Bases:
objectIntune parameter provider.
Intune scripts can receive parameters in multiple ways: 1. Command-line arguments (sys.argv) – addressed by integer key 2. Environment variables – addressed by string key
Unlike Jamf, Intune does not reserve specific parameter indices. Integer keys map directly to sys.argv indices (0 = script name, 1+ = args). String keys are looked up as environment variables, optionally with an
INTUNE_prefix.Satisfies the MdmParamProvider protocol.
- Example:
>>> provider = IntuneParamProvider() >>> # Get from sys.argv[1] >>> value = provider.get(1) >>> # Get from environment variable >>> value = provider.get("WEBHOOK_URL")
- get(key: int | str) str | None[source]¶
Get a script parameter by key.
Integer keys are looked up in sys.argv. String keys are looked up as environment variables (with optional INTUNE_ prefix fallback).