Repository navigation
Pro Command Renames
In v1.29.0 the jamf-cli pro resource command names changed source: they come from the Jamf Pro API's own OpenAPI tags and URL paths instead of the filename each resource's paths were split into. 163 resources became 135: 38 renamed, 24 merged, 13 split.
100 former names resolve to their replacement until 2027-03-09 and warn on stderr. Three refuse. Names in the protect, school, security and platform namespaces did not move, and the 53 Classic API (/JSSResource) resources keep theirs. One exception to watch: pro classic-ldap is a modern Pro API resource at /v1/classic-ldap/{id}, renamed from pro classic-ldaps. The Classic API's LDAP resource is pro classic-ldap-servers, which is unchanged.
Find your symptom, then read that section.
| Symptom | Exit code | Section |
|---|---|---|
It works, and prints warning: … is a deprecated name
|
unchanged | The migration window |
`pro X Y` no longer exists: the operation moved … |
2 | 48 invocations an alias cannot cover |
`pro X Y` no longer names this operation … |
2 | 3 verbs whose meaning moved |
`pro X` no longer exists: … with no replacement named |
1 | 3 withdrawn names |
| It exits 0 and prints help text where it used to print data | 0 | 3 former leaves that are now command groups |
Each of the 100 retired names prints a warning on stderr naming its replacement, then runs:
$ jamf-cli pro icons get 1
warning: `icons` is a deprecated name for `icon` and stops working after 2027-03-09. Use `pro icon`.
{
"id": 1,
"url": "https://euw2.ics.services.jamfcloud.com/icon/hash_ff1733d65bba..."
}
stdout is unchanged, so a pipeline keeps working. Neither --quiet nor --no-hints suppresses the warning, and it fires wherever a global flag sits, so jamf-cli pro -p ci-svc icons get 1 warns too.
After 2027-03-09 the aliases are deleted and all 100 names answer unknown command at exit 2.
Retired names and curated short aliases both appear in the aliases field of jamf-cli commands -o json, which does not separate them. The warning does: a retired name warns, a curated short alias does not. pro jcds and pro jcds-files are curated short aliases, so they do not expire and do not warn.
96 names, each a cobra alias on its replacement. Each warns and works.
| Was | Is now |
|---|---|
pro access-managements |
pro enrollment |
pro account-preferences |
pro jamf-pro-account-preferences |
pro activation-codes |
pro activation-code |
pro api-roles-privileges |
pro api-role-privileges |
pro app-installer-deployments |
pro app-installers-deployments |
pro app-installer-titles |
pro app-installers-titles |
pro app-requests |
pro app-request |
pro authentications |
pro api-authentication |
pro cache |
pro cache-settings |
pro certificate-authorities |
pro certificate-authority |
pro change-passwords |
pro jamf-pro-user-account-settings |
pro classic-ldaps |
pro classic-ldap |
pro cloud-azure-defaults |
pro cloud-azure |
pro cloud-azures |
pro cloud-azure |
pro cloud-distribution-points |
pro cloud-distribution-point |
pro cloud-id-p-configurations |
pro cloud-idp |
pro cloud-id-p-histories |
pro cloud-idp |
pro cloud-id-p-test-searches |
pro cloud-idp |
pro cloud-informations |
pro cloud-information |
pro cloud-ldap-connections |
pro cloud-ldap |
pro cloud-ldap-defaults |
pro cloud-ldap |
pro cloud-ldap-key-stores |
pro cloud-ldap |
pro cloud-ldap-mappings |
pro cloud-ldap |
pro cloud-ldaps |
pro cloud-ldap |
pro computer-prestage-scopes |
pro computer-prestages |
pro computer-smart-groups |
pro computer-inventory |
pro computers-inventory |
pro computer-inventory |
pro country-codes |
pro app-store-country-codes |
pro csas |
pro csa |
pro dashboards |
pro dashboard |
pro database-connections |
pro jamf-pro-initialization |
pro ddm-status |
pro declarative-device-management |
pro ddm-syncs |
pro declarative-device-management |
pro device-compliance-informations |
pro conditional-access |
pro device-enrollment-instance-sync-states |
pro device-enrollments |
pro device-enrollment-instances |
pro device-enrollments |
pro digi-cert-settings |
pro digicert |
pro distribution-points |
pro distribution-point |
pro dss-proxies |
pro declarative-device-management |
pro enrollment-customization-panels |
pro enrollment-customization |
pro enrollment-customizations |
pro enrollment-customization |
pro enrollment-settings |
pro enrollment |
pro erase-device-computers |
pro computer-inventory |
pro erase-device-mobiles |
pro mobile-devices |
pro health-checks |
pro health-check |
pro icons |
pro icon |
pro inventory-informations |
pro inventory-information |
pro inventory-preloads |
pro inventory-preload |
pro jamf-connect-deployment-tasks |
pro jamf-connect |
pro jamf-connects |
pro jamf-connect |
pro jamf-packages |
pro jamf-package |
pro jamf-pro-informations |
pro jamf-pro-information |
pro jamf-pro-versions |
pro jamf-pro-version |
pro jamf-protect-deployment-tasks |
pro jamf-protect |
pro jamf-protect-plans |
pro jamf-protect |
pro jamf-remote-assist-session-histories |
pro jamf-remote-assist |
pro last-logins |
pro last-login |
pro ldap-rs |
pro ldap |
pro local-admin-passwords |
pro local-admin-password |
pro log-flushings |
pro log-flushing |
pro mac-os-managed-software-updates |
pro macos-managed-software-updates |
pro mdm-commands |
pro mdm |
pro mdm-renewals |
pro mdm-renewal |
pro mobile-device-enrollment-profiles |
pro mobile-device-enrollment-profile |
pro mobile-device-inventory-details |
pro mobile-devices |
pro mobile-device-prestage-scopes |
pro mobile-device-prestages |
pro mobile-device-prestage-sync-states |
pro mobile-device-prestages |
pro mobile-device-smart-groups |
pro mobile-devices |
pro notifications |
pro jamf-pro-notifications |
pro oauth-token-sessions |
pro sso-oauth-session-tokens |
pro oidcs |
pro oidc |
pro onboarding-configuration |
pro onboarding |
pro onboardings |
pro onboarding |
pro package-deployments |
pro mdm |
pro patch-policy-logs |
pro patch-policies |
pro patch-titles |
pro patch-management |
pro reenrollment |
pro re-enrollment |
pro remove-computer-mdm-profiles |
pro computer-inventory |
pro remove-mobile-device-mdm-profiles |
pro mobile-devices |
pro renew-mdm-profiles |
pro mdm |
pro return-to-service-configurations |
pro return-to-service |
pro schedulers |
pro scheduler |
pro self-service-branding-images |
pro self-service |
pro service-discovery |
pro service-discovery-enrollment |
pro slasas |
pro slasa |
pro sso-failovers |
pro sso-settings |
pro static-computer-groups |
pro computer-groups-static-groups |
pro systems |
pro jamf-pro-initialization |
pro teacher-settings |
pro teacher-app |
pro team-viewer-remote-administrations |
pro team-viewer-remote-administration |
pro user-accounts |
pro accounts |
pro user-preferences |
pro jamf-pro-user-account-settings |
pro user-smart-groups |
pro users |
pro venafis |
pro venafi |
pro vpp-locations |
pro volume-purchasing-locations |
pro vpp-subscriptions |
pro volume-purchasing-subscriptions |
These four resolve to a nested command. Each warns and works.
| Was | Is now |
|---|---|
pro account-driven-user-enrollment-session-token-settings |
pro enrollment adue-session-token-settings |
pro app-installer-global-settings |
pro app-installers global-settings |
pro self-service-settings |
pro self-service settings |
pro sso-settings-cert |
pro sso-settings cert |
These three have no command to alias to, so they refuse at exit 1. --help on any of them prints a Removed line carrying the same reason, at exit 0.
$ jamf-cli pro servers
`pro servers` no longer exists: `/settings/issueTomcatSslCertificate` was an
unversioned legacy endpoint with no replacement in the versioned API
$ jamf-cli pro remote-administration-configurations
`pro remote-administration-configurations` no longer exists: the bare
`/preview/remote-administration-configurations` collection is no longer ingested;
the family under it ships as `pro team-viewer-remote-administration`
$ jamf-cli pro redeploy-jamf-management-frameworks
`pro redeploy-jamf-management-frameworks` no longer exists: the redeploy action
moved to `pro computer-inventory redeploy-framework` (aliased `comp`), which
targets by serial, name or group
An alias maps one resource name to one replacement. Two cases escape it: a resource that split, and an operation whose name derives from a path segment that now sits under a different resource. In both the alias resolves the resource and the subcommand does not exist, so all 48 answer at exit 2 with the new invocation named:
$ jamf-cli pro policy-properties policy-properties
`pro policy-properties policy-properties` no longer exists: the operation moved
when command names started coming from the spec
hint: the endpoint is unchanged; run `jamf-cli pro policy-properties get`
Both spellings reach the refusal: the old resource name through its alias, and the new name as typed. pro schedulers triggers and pro scheduler triggers both name pro scheduler-jobs triggers. The endpoint is unchanged in all 48 cases, and the refusals retire with the aliases on 2027-03-09.
45 are in the table below. The other three are verbs whose meaning moved, in 3 verbs whose meaning moved.
Two refusals name two replacements each, because two pairs of old invocations collapse onto one name once the alias resolves and each pair's endpoints went to different places:
$ jamf-cli pro enrollment-settings list
warning: `enrollment-settings` is a deprecated name for `enrollment` and stops working after 2027-03-09. Use `pro enrollment`.
`pro enrollment list` no longer exists: the operation moved when command names
started coming from the spec
hint: two commands share the old name: `jamf-cli pro enrollment access-management` and
`jamf-cli pro enrollment-access-groups list`
pro mobile-device-prestages delete-multiple and pro mobile-device-prestage-scopes delete-multiple answer the same way, naming attachments-delete-multiple and scope-delete-multiple. Pick by the endpoint in the table.
| Was | Is now | Endpoint |
|---|---|---|
pro access-managements list |
pro enrollment access-management |
GET /v4/enrollment/access-management |
pro activation-codes patch |
pro activation-code organization-name patch |
PATCH /v1/activation-code/organization-name |
pro api-roles-privileges api-role-privileges |
pro api-role-privileges list |
GET /v1/api-role-privileges |
pro app-requests create |
pro app-request-form-input-fields create |
POST /v1/app-request/form-input-fields |
pro app-requests delete |
pro app-request-form-input-fields delete |
DELETE /v1/app-request/form-input-fields/{id} |
pro app-requests list |
pro app-request-form-input-fields list |
GET /v1/app-request/form-input-fields |
pro app-requests settings |
pro app-request get |
GET /v1/app-request/settings |
pro app-requests update-settings |
pro app-request update |
PUT /v1/app-request/settings |
pro cloud-distribution-points cloud-distribution-point |
pro cloud-distribution-point list |
GET /v1/cloud-distribution-point |
pro computer-inventory-collection-settings create |
pro computer-inventory-collection-settings-custom-path create |
POST /v2/computer-inventory-collection-settings/custom-path |
pro computer-inventory-collection-settings delete |
pro computer-inventory-collection-settings-custom-path delete |
DELETE /v2/computer-inventory-collection-settings/custom-path/{id} |
pro csas delete |
pro csa token delete |
DELETE /v1/csa/token |
pro enrollment-languages filtered-language-codes |
pro enrollment filtered-language-codes |
GET /v3/enrollment/filtered-language-codes |
pro enrollment-languages language-codes |
pro enrollment language-codes |
GET /v3/enrollment/language-codes |
pro enrollment-settings create |
pro enrollment-access-groups create |
POST /v3/enrollment/access-groups |
pro enrollment-settings delete |
pro enrollment-access-groups delete |
DELETE /v3/enrollment/access-groups/{id} |
pro enrollment-settings enrollment |
pro enrollment get |
GET /v4/enrollment |
pro enrollment-settings list |
pro enrollment-access-groups list |
GET /v3/enrollment/access-groups |
pro enrollment-settings update-enrollment |
pro enrollment update |
PUT /v4/enrollment |
pro health-checks health-check |
pro health-check list |
GET /v1/health-check |
pro jamf-connects jamf-connect |
pro jamf-connect list |
GET /v1/jamf-connect |
pro jamf-connects update |
pro jamf-connect-config-profiles update |
PUT /v1/jamf-connect/config-profiles/{id} |
pro jcds delete |
pro jamf-cloud-distribution-service-files delete |
DELETE /v1/jcds/files/{fileName} |
pro jcds files |
pro jamf-cloud-distribution-service-files create |
POST /v1/jcds/files |
pro jcds get |
pro jamf-cloud-distribution-service-files get |
GET /v1/jcds/files/{fileName} |
pro jcds list |
pro jamf-cloud-distribution-service-files list |
GET /v1/jcds/files |
pro local-admin-passwords update |
pro local-admin-password settings update |
PUT /v2/local-admin-password/settings |
pro log-flushings delete |
pro log-flushing-task delete |
DELETE /v1/log-flushing/task/{id} |
pro log-flushings get |
pro log-flushing-task get |
GET /v1/log-flushing/task/{id} |
pro log-flushings log-flushing |
pro log-flushing list |
GET /v1/log-flushing |
pro log-flushings task |
pro log-flushing-task create |
POST /v1/log-flushing/task |
pro managed-software-updates-plans abandon |
pro managed-software-updates-plans feature-toggle abandon |
POST /v1/managed-software-updates/plans/feature-toggle/abandon |
pro managed-software-updates-plans status |
pro managed-software-updates-plans feature-toggle status |
GET /v1/managed-software-updates/plans/feature-toggle/status |
pro managed-software-updates-plans update |
pro managed-software-updates-plans feature-toggle update |
PUT /v1/managed-software-updates/plans/feature-toggle |
pro mdm-renewals patch |
pro mdm-renewal-device-common-details patch |
PATCH /v1/mdm-renewal/device-common-details |
pro mobile-device-prestage-scopes delete-multiple |
pro mobile-device-prestages scope-delete-multiple |
POST /v2/mobile-device-prestages/{id}/scope/delete-multiple |
pro mobile-device-prestages delete-multiple |
pro mobile-device-prestages attachments-delete-multiple |
POST /v3/mobile-device-prestages/{id}/attachments/delete-multiple |
pro policy-properties policy-properties |
pro policy-properties get |
GET /v1/policy-properties |
pro policy-properties update-policy-properties |
pro policy-properties update |
PUT /v1/policy-properties |
pro schedulers summary |
pro scheduler list |
GET /v1/scheduler/summary |
pro schedulers triggers |
pro scheduler-jobs triggers |
GET /v1/scheduler/jobs/{jobKey}/triggers |
pro self-service-plus get |
pro self-service-plus settings get |
GET /v1/self-service-plus/settings |
pro self-service-plus update |
pro self-service-plus settings update |
PUT /v1/self-service-plus/settings |
pro sso-failovers list |
pro sso-settings failover |
GET /v1/sso/failover |
pro sso-settings-cert cert |
pro sso-settings cert create |
POST /v2/sso/cert |
enrollment-customization-panels and enrollment-customization are one resource now, and its plain create, update and delete address the customization: POST /v2/enrollment-customizations and PUT/DELETE /v2/enrollment-customizations/{id}. The three panel writes under the panels spelling are refused at exit 2:
$ jamf-cli pro enrollment-customization-panels update 1 2
warning: `enrollment-customization-panels` is a deprecated name for `enrollment-customization` and stops working after 2027-03-09. Use `pro enrollment-customization`.
`pro enrollment-customization-panels update` no longer names this operation:
`enrollment-customization-panels` and `enrollment-customization` are one resource
now, and its plain verbs are the resource's own
hint: run `jamf-cli pro enrollment-customization ldap-update`
| Was | Is now | Endpoint |
|---|---|---|
pro enrollment-customization-panels create |
pro enrollment-customization ldap-create |
POST /v1/enrollment-customization/{id}/ldap |
pro enrollment-customization-panels update |
pro enrollment-customization ldap-update |
PUT /v1/enrollment-customization/{id}/ldap/{panel-id} |
pro enrollment-customization-panels delete |
pro enrollment-customization all-delete |
DELETE /v1/enrollment-customization/{id}/all/{panel-id} |
The panel reads under that spelling (all, ldap, sso, text, markdown, parse-markdown) are unchanged.
These three paths resolve, exit 0 and print usage text where they returned data before. A job piping one of them into jq gets a usage message.
| Was (returned data) | Is now | The data is at |
|---|---|---|
pro csas token |
the pro csa token group |
pro csa token get |
pro local-admin-passwords settings |
the pro local-admin-password settings group |
pro local-admin-password settings get |
pro managed-software-updates-plans feature-toggle |
the … feature-toggle group |
pro managed-software-updates-plans feature-toggle get |
Passing --output/-o, --field, --select or --out-file to one of the three exits 2 and names the leaf:
$ jamf-cli pro csas token -o json
warning: `csas` is a deprecated name for `csa` and stops working after 2027-03-09. Use `pro csa`.
`pro csa token` is a command group and returns no data; it returned data before
the sub-resource split
hint: run `jamf-cli pro csa token get`
A bare invocation prints help, as any command group in this CLI does, and a typo beneath one is unchanged. The exit-2 refusal retires with the aliases on 2027-03-09; the command groups are permanent.
A sub-path carrying PUT, PATCH or DELETE on the sub-path itself is a command of its own. A POST-only sub-path stays flat, and so does a sub-path holding all of its group's operations: pro app-request get and pro service-discovery-enrollment get keep their shape.
| New command | Endpoint |
|---|---|
pro activation-code organization-name |
/v1/activation-code/organization-name |
pro app-installers global-settings |
/v1/app-installers/global-settings |
pro csa token |
/v1/csa/token |
pro enrollment adue-session-token-settings |
/v1/adue-session-token-settings |
pro local-admin-password settings |
/v2/local-admin-password/settings |
pro managed-software-updates-plans feature-toggle |
/v1/managed-software-updates/plans/feature-toggle |
pro self-service settings |
/v1/self-service/settings |
pro self-service-plus settings |
/v1/self-service-plus/settings |
pro sso-settings cert |
/v2/sso/cert |
Their verbs are plain, so pro sso-settings cert get|create|update|delete and pro sso-settings cert download|parse. The invocations the split moved are in the 48-invocation table.
Two SSO commands moved with it:
-
pro sso-settings downloadsends the SAML metadata,GET /v3/sso/metadata/download. For the certificate, runpro sso-settings cert download. -
pro sso-settings deleteno longer exists. To delete the SSO certificate, runpro sso-settings cert delete.
A resource's plain verbs are its root's, and a sub-path's write is qualified by the segment that owns it. The HTTP method separates two operations that share one path. 19 writes v1.28.0 dropped ship as a result.
Three are the enrollment-customization CRUD: create, update and delete, on POST /v2/enrollment-customizations and PUT/DELETE /v2/enrollment-customizations/{id}.
Four are the prestage scope writes: create-scope and update-scope on pro computer-prestages, and the same pair on pro mobile-device-prestages.
The remaining twelve:
| Command | Endpoint |
|---|---|
pro enrollment-customization sso-create / sso-update / sso-delete
|
POST …/{id}/sso, PUT/DELETE …/{id}/sso/{panel-id}
|
pro enrollment-customization text-create / text-update / text-delete
|
the same three on …/{id}/text
|
pro enrollment-customization ldap-delete |
DELETE /v1/enrollment-customization/{id}/ldap/{panel-id} |
pro packages manifest-delete |
DELETE /v1/packages/{id}/manifest |
pro venafi proxy-trust-store-create / proxy-trust-store-delete
|
POST/DELETE /v1/pki/venafi/{id}/proxy-trust-store
|
pro patch-software-title-configurations dashboard-delete |
DELETE /v3/patch-software-title-configurations/{id}/dashboard |
pro computer-inventory attachments-delete |
DELETE /v4/computers-inventory/{id}/attachments/{attachmentId} |
apply is synthesized from a resource's list, create and update. Those three no longer co-reside on pro app-requests, pro enrollment-settings or pro managed-software-updates-plans, so none of the three ships an apply and each answers unknown command at exit 2.
Two of the splits carry the verb instead: pro app-request-form-input-fields apply and pro enrollment-access-groups apply. /v1/managed-software-updates/plans publishes no update endpoint, so use pro managed-software-updates-plans create.
The gateway withdrew these nine from its published API, and each is superseded. The CLI stopped sending them in v1.29.0.
| Endpoint | Use instead |
|---|---|
GET/POST/PUT/DELETE /v1/inventory-preload{,/{id}} (5) |
pro inventory-preload-records, which serves the v2 paths under records/
|
GET /preview/remote-administration-configurations |
pro team-viewer-remote-administration, which serves the family under that collection |
POST /settings/issueTomcatSslCertificate |
nothing: the versioned API has no replacement |
POST /v1/computer-inventory/{id}/{erase,remove-mdm-profile} (2) |
pro comp erase and pro comp remove-mdm, which target by serial, name or group |
jamf-cli commands -o json is authoritative for the binary you have; this page is a snapshot of v1.29.0.
# Every pro resource name this binary ships, one per line.
jamf-cli commands -o json --no-hints \
| jq -r '.[].command' \
| grep -E '^pro [a-z0-9-]+$' | cut -d' ' -f2 | sort -u > /tmp/jamf-current.txt
# Every pro resource token your scripts name.
grep -rhoE '\bpro[^A-Za-z0-9-]+[a-z0-9-]{3,}' ./scripts \
| grep -oE '[a-z0-9-]{3,}$' | sort -u > /tmp/jamf-used.txt
# What you use that is not a shipped resource name.
comm -23 /tmp/jamf-used.txt /tmp/jamf-current.txtThe jq pipe reads command names only: the aliases field mixes the 100 expiring names in with the curated short ones. The cost is that curated short aliases (comp, computers, cat, dept, scr, bld, dev, pdev, pdg, ddm, jcds, jcds-files, smart-computer-groups) come back as false positives. They are permanent, so ignore them and look the rest up in the renamed-resources table.
The grep is loose about what separates pro from the resource token, so it catches a quoted argv list (["jamf-cli", "pro", "vpp-locations", "list"]) as well as a shell line. It does not catch a resource name held in a variable.
The stderr warning is the per-invocation signal, and the only one that separates an expiring alias from a permanent one. Neither --quiet nor --no-hints suppresses it, so this holds however the job is invoked.
Wrap the call so the warning fails the job and the command's own exit code still reaches the caller:
run_checked() {
err=$(mktemp)
"$@" 2>"$err"; rc=$?
cat "$err" >&2
if grep -q 'deprecated name' "$err"; then
echo "retired jamf-cli name in: $*" >&2
rm -f "$err"; return 1
fi
rm -f "$err"; return $rc
}
run_checked jamf-cli pro dashboards list # returns 1, prints the warning
run_checked jamf-cli pro dashboard list # returns whatever the command returnedout=$(jamf-cli … 2>&1 >/dev/null) with a case on the string is the one-liner, and it discards the exit code.
For a read-only sweep, append --help instead of running the command: it reaches the alias without authenticating or sending a request. The four nested aliases and the three withdrawn names print their notice under --help. The 96 plain aliases print no warning under help, so --help is no substitute for check 1.
grep -rn 'csas token\|local-admin-passwords settings\|managed-software-updates-plans feature-toggle' ./scriptsA hit that also passes -o, --output, --field, --select or --out-file exits 2 with the leaf named. A hit without one of those prints help text at exit 0. See 3 former leaves that are now command groups.
- Jamf Pro Commands: the current command surface
- Error Handling & Exit Codes: what 1, 2 and 8 mean
-
CI/CD & Scripting:
JAMF_CLI_ARGS, exit-code handling, machine-readable output -
Platform API GA Migration: the separate gateway-profile migration, if you also run
auth-method: platform
Repository · Issues · Releases
jamf-cli Wiki
- Home
- Community
- Getting Started
- CLI Reference
- Product Commands
- Workflows
- Configuration
- Reference
Products
- Jamf Pro:
jamf-cli pro - Jamf Platform API:
jamf-cli pro(blueprints, benchmarks, DDM reports) - Jamf Platform:
jamf-cli platform(AI Governance, Jamf Account, audit) - Jamf Protect:
jamf-cli protect - Jamf School:
jamf-cli school - Jamf Security Cloud:
jamf-cli security