Skip to content
RIchard Glaser edited this page Jul 12, 2023 · 20 revisions

Here, we aim to compile a list of frequently asked questions (FAQs) regarding python-jamf. This section will provide answers and information to address some of the common queries you may have about this tool.

How do I find which version of python-jamf I am using?

To obtain the version of python-jamf installed, execute the following command:

jctl --version The output will be similar to the following:

jctl --version
jctl 1.1.19
python_jamf 0.8.3 (0.8.3 required)

This command will display the version of python-jamf along with any relevant information, such as the required version for proper functionality.

How do I find out all the python-jamf available options?

Since python-jamf is a Python library and doesn't have a dedicated man page or help documentation, you can refer to its project's official website or GitHub repository for information on the available options and functionality. The documentation should provide detailed explanations, usage examples, and descriptions of the various features and methods provided by the python-jamf library.

Where are the logs?

python-jamf is a specific Python library that provides a set of tools and functions for interacting with Jamf Pro, a popular device management platform for Apple devices. With python-jamf, MacAdmins (or developers) can automate and streamline administrative tasks related to managing Apple devices, such as macOS and iOS devices, within an organization.

By default, python-jamf logs information to the console. However, MacAdmins (or developers) have the flexibility to configure the logging output to different destinations, such as files or external log management systems, by utilizing the logging configuration options provided by the Python logging module. Python includes a logging module in its standard library, which offers a versatile framework for generating log messages within Python programs. However, due to prioritization and constraints in terms of time and resources, we have not dedicated efforts to support logging with python-jamf so far.

If you consider this feature to be crucial, please submit an issue on the GitHub repository. We will make an attempt to address this functionality in the future.

What is an API?

An API, or Application Programming Interface, in the context of Jamf Pro, refers to a set of rules and protocols that allow different software applications to interact and communicate with the Jamf Pro device management platform. The Jamf Pro API provides a standardized way for developers to programmatically access and manipulate data and functionality within Jamf Pro.

By utilizing the Jamf Pro API, MacAdmins (or developers) can create custom scripts, applications, or integrations that interact with Jamf Pro to automate administrative tasks, retrieve information about managed devices, update settings, deploy software packages, and perform various other operations.

The Jamf Pro API is typically based on REST (Representational State Transfer) principles, which means it uses standard HTTP methods (such as GET, POST, PUT, DELETE) to perform operations on resources (such as devices, configurations, policies) represented by URLs.

Developers can make HTTP requests to the appropriate endpoints provided by the Jamf Pro API, including authentication credentials and relevant data in the requests, and receive responses in formats like JSON or XML. These responses contain the requested data or confirmation of the performed action.

By leveraging the Jamf Pro API, MacAdmins (or developers) can integrate Jamf Pro with other systems, build custom interfaces, automate workflows, and extend the capabilities of Jamf Pro to suit the specific needs of their organization.

Jamf Pro currently has support for two APIs, "Jamf Pro Classic" and "Jamf Pro Universal" APIs, or Application Programming Interfaces.

Jamf Pro Classic

The Classic API is based on the standard User Accounts and Groups functionality of Jamf Pro. It supports Basic Authentication and utilizes the CRUD (Create, Read, Update, Delete) privileges to correspond with the HTTP methods: POST, GET, PUT, and DELETE. The Classic API offers a range of endpoints and functionality for interacting with Jamf Pro. You can refer to the Classic API Overview documentation for more detailed information.

Jamf Pro Universal

Announced at JNUC 2016, the Jamf Pro Universal (aka Jamf Pro) API, also known as the Jamf Pro API, serves as the underlying framework for displaying information in much of the Jamf Pro web interface. The Jamf Pro API is intended to eventually surpass the functionality of the Classic API. However, according to the information available at that time, the Jamf Pro API project was still under development and would take time to update and incorporate all the features of the Classic API. The python-jamf Python library currently integrates the Classic API due to the Jamf Pro API's limited features and functionality.

However, there were plans to integrate support for the Jamf Pro Universal API in the future, once it met the requirements and became more finalized and usable.

Clone this wiki locally