Skip to content
Richard Glaser edited this page Mar 26, 2021 · 31 revisions

Welcome to the python-jamf wiki!

Introduction

python-jamf is a Python 3 module to access the Jamf Pro Classic API. The Classic API is the primary tool for programmatic access to data on a Jamf Pro server to allow integrations with other utilities or systems. The concept behind it is to have a class or simply a collection of data (variables) and methods (functions) that maps directly to the API (https://example.com:8443/api).

The python-jamf API class doesn't hide anything from you. It handles the URL requests, authentication, and converts between XML/JSON to Python dictionaries/lists.

The python-jamf module also provides undocumented access to Jamf Admin functionality used for uploading items to Jamf Distribution Points.

Supported Jamf Records

Currently, the python-jamf supports 56 Jamf records like Buildings, Categories, Computers, OSXConfigurationProfiles, and Policies for example.

Each record is a Python object, but they are generic. Objects do not have member variables for Jamf data. All Jamf Pro data is stored as a Python dictionary that is accessed with the data() method. Lists of records and individual records use the same object type as well. So all class names are plural, regardless if they represent a list of objects or one object.

Design Decisions

Almost all of our design decisions were based on our primary goal to make this project as minimal as possible but to be as functional as possible. The reason why we value minimalism so much is that we wanted to be able to create python-jamf as quickly as possible but maintain it with minimal effort.

Jamf Pro Classic API

The Classic API supports Basic Authentication and uses the standard User Accounts and Groups functionality of Jamf Pro. The Create, Read, Update and Delete privileges for an account or group within Jamf Pro correspond respectively with the POST, GET, PUT and DELETE HTTP methods.

See the Classic API Overview documentation for more details.

Jamf Pro Universal API

At JNUC 2016, Jamf announced the Jamf Pro Universal API (aka Jamf Pro API). This API is the underlying framework that Jamf Pro uses to display information in much of its web interface. In the longterm, the Jamf Pro API is supposed to meet and exceed the functionality of the Classic API. But, due to the expansive Classic API framework currently in place, the Jamf Pro API project will take some time to update according to jamf. So, the python-jamf module currently integrates the Classic API as the Jamf Pro API is lacking in features and functionality that is needed, but we plan on integrating support for the new Jamf Pro API when it meets the python-jamf requirements.

Searching the wiki

To search this wiki use the "Search" field in the GitHub navigation bar above. Then on the search results page select the "Wiki" option or click here and search.