go-api-sdk-jamfpro

module
v0.0.79 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2023 License: MIT

README

Getting Started with go-api-sdk-jamfpro

This guide will help you GET started with go-api-sdk-jamfpro, a Go SDK for interfacing with Jamf Pro.

Prerequisites

Ensure you have Go installed and set up on your system. If not, follow the instructions on the official Go website.

Installation

Install the go-api-sdk-jamfpro package using go get:

go **GET** github.com/deploymenttheory/go-api-sdk-jamfpro

Usage

sample code: examples

Configuring the HTTP Client

To effectively use the go-api-sdk-jamfpro SDK, you'll need to set up and configure the HTTP client. Here's a step-by-step guide:

1. Setting Constants

At the start of your main program, you can optionally define define some constants that will be used to configure the client for http client. If you don't set any then defaults from shared_api_client.go will be used.

const (
	maxConcurrentRequestsAllowed = 5 // Maximum allowed concurrent requests.
	defaultTokenLifespan         = 30 * time.Minute
	defaultBufferPeriod          = 5 * time.Minute
)

These constants are used to set the maximum number of concurrent requests the client can make, the lifespan of the token, and a buffer period.

  1. Loading OAuth Credentials The http client for this SDK supports both classic auth and Oauth with bearer token. Since the direction of travel is Oauth, in this example store your credentials in a JSON file for secure and easy access. The structure of the client auth json should be like this:
{
  "instanceName": "your_jamf_instance_name", // Required
  "clientID": "your_client_id", // Required
  "clientSecret": "your_client_secret", // Required
  "overrideBaseDomain": "optional_custom_domain.com" // Optional field
}

Replace your_jamf_instance_name, with your jamf pro instance name. e.g for mycompany.jamfcloud.com , use "mycompany". Replace your_client_id, and your_client_secret with your actual credentials.

In your Go program, load these credentials using:

configFilePath := "path_to_your/clientauth.json"
authConfig, err := http_client.LoadClientAuthConfig(configFilePath)
if err != nil {
	log.Fatalf("Failed to load client OAuth configuration: %v", err)
}
  1. Configuring the HTTP Client With the OAuth credentials loaded, you can now configure the HTTP client:
// Initialize a new default logger
logger := http_client.NewDefaultLogger()

// Set the desired log level on the logger
logger.SetLevel(http_client.LogLevelInfo) // LogLevel can be None, Warning, Info, or Debug

// Create the configuration for the HTTP client with the logger
config := http_client.Config{
	Logger: logger,
}

The Logger uses the SDK's default logger.

  1. Initializing the Jamf Pro Client Once the HTTP client is configured, initialize the Jamf Pro client:
client := jamfpro.NewClient(authConfig.InstanceName, config)

Then, set the OAuth credentials for the client's HTTP client:

oAuthCreds := http_client.OAuthCredentials{
	ClientID:     authConfig.ClientID,
	ClientSecret: authConfig.ClientSecret,
}
client.HTTP.SetOAuthCredentials(oAuthCreds)

With these steps, the HTTP client will be fully set up and ready to make requests to the Jamf Pro API. You can then proceed to use the client to perform various actions as demonstrated in the sample code provided.

Note: Remember to always keep your OAuth credentials confidential and never expose them in your code or public repositories.


URL Construction in the Client

The go-api-sdk-jamfpro SDK constructs URLs in a structured manner to ensure consistent and correct API endpoint accesses. Here's a breakdown of how it's done:

Instance Name:

The primary identifier for constructing URLs in the client is the InstanceName which represents the Jamf Pro instance. For example, for the URL mycompany.jamfcloud.com, the instance name would be mycompany.

Base Domain:

If OverrideBaseDomain is provided during http client initialization, this will override jamfcloud.com and will be used as the base domain for URL construction. Otherwise, the default domain defined in the http_client package (jamfcloud.com) will be used.

URL Construction in the Client URLs are constructed using the InstanceName and, optionally, the OverrideBaseDomain. If the OverrideBaseDomain is not specified, the default domain (jamfcloud.com) is used. The SDK automatically appends this domain to the InstanceName for API calls.

const (
	BaseDomain     = ".jamfcloud.com"
)
Endpoint Path:

Each API function in the SDK corresponds to a specific Jamf Pro API endpoint. The SDK appends this endpoint path to the constructed domain to derive the full URL.

URL Construction Example:

Given the InstanceName as mycompany and an endpoint path /JSSResource/accounts/userid/{id}, the full URL constructed by the client would be:

https://mycompany.jamfcloud.com/JSSResource/accounts/userid/{id}
Customizability:

The SDK is designed to be flexible. While it uses the jamfcloud.com domain by default, this can be updated to meet your requiremesnt for your environment.

Note:

Always ensure that the InstanceName is correctly set when initializing the client. Avoid including the full domain (e.g., .jamfcloud.com) in the InstanceName as the SDK will automatically append it.


Putting it all together

package main

import (
	"fmt"
	"log"

	"github.com/deploymenttheory/go-api-sdk-jamfpro/sdk/http_client" // Import http_client for logging
	"github.com/deploymenttheory/go-api-sdk-jamfpro/sdk/jamfpro"
)

func main() {
	// Define the path to the JSON configuration file
	configFilePath := "/path/to/your/clientauth.json"

	// Load the client OAuth credentials from the configuration file
	authConfig, err := jamfpro.LoadClientAuthConfig(configFilePath)
	if err != nil {
		log.Fatalf("Failed to load client OAuth configuration: %v", err)
	}

	// Instantiate the default logger and set the desired log level
	logger := http_client.NewDefaultLogger()
	logLevel := http_client.LogLevelInfo // LogLevelNone // LogLevelWarning // LogLevelInfo  // LogLevelDebug

	// Configuration for the jamfpro
	config := jamfpro.Config{
		InstanceName:       authConfig.InstanceName,
		OverrideBaseDomain: authConfig.OverrideBaseDomain,
		LogLevel:           logLevel,
		Logger:             logger,
		ClientID:           authConfig.ClientID,
		ClientSecret:       authConfig.ClientSecret,
	}

	// Create a new jamfpro client instance
	client, err := jamfpro.NewClient(config)
	if err != nil {
		log.Fatalf("Failed to create Jamf Pro client: %v", err)
	}
}

Go SDK for Jamf Pro API Progress Tracker

API Coverage Progress

Date: Nov-2023 Maintainer: [ShocOne]

Overview

This document tracks the progress of API endpoint coverage tests. As endpoints are tested, they will be marked as covered.

Coverage Legend

  • ✅ - Covered
  • ❌ - Not Covered
  • ⚠️ - Partially Covered

Endpoints

Accounts - /JSSResource/accounts

  • GET /userid/{id} - GetAccountByID retrieves the Account by its ID
  • GET /username/{username} - GetAccountByName retrieves the Account by its name
  • GET / - GetAccounts retrieves all user accounts
  • GET /groupid/{id} - GetAccountGroupByID retrieves the Account Group by its ID
  • GET /groupname/{id} - GetAccountGroupByName retrieves the Account Group by its name
  • POST / - CreateAccount creates a new Jamf Pro Account.
  • POST /groupid/0 - CreateAccountGroup creates a new Jamf Pro Account Group.
  • PUT /userid/{id} - UpdateAccountByID updates an existing Jamf Pro Account by ID
  • PUT /username/{id} - UpdateAccountByName updates an existing Jamf Pro Account by Name
  • PUT /groupid/{id} - UpdateAccountGroupByID updates an existing Jamf Pro Account Group by ID
  • PUT /groupname/{id} - UpdateAccountGroupByName updates an existing Jamf Pro Account Group by Name
  • DELETE /userid/{id} - DeleteAccountByID deletes an existing Jamf Pro Account by ID
  • DELETE /username/{username} - DeleteAccountByName deletes an existing Jamf Pro Account by Name
  • DELETE /groupid/{id} - DeleteAccountGroupByID deletes an existing Jamf Pro Account Group by ID
  • DELETE /groupname/{username} - DeleteAccountGroupByName deletes an existing Jamf Pro Account Group by Name

Activation Code - /JSSResource/activationcode

  • GET /JSSResource/activationcode - GetActivationCode retrieves the current activation code and organization name.
  • PUT /JSSResource/activationcode - UpdateActivationCode updates the activation code with a new organization name and code.

Jamf Pro API Integrations - /api/v1/api-integrations

  • GET /api/v1/api-integrations - GetApiIntegrations fetches all API integrations.
  • GET /api/v1/api-integrations/{id} - GetApiIntegrationByID fetches an API integration by its ID.
  • GET /api/v1/api-integrations followed by searching by name - GetApiIntegrationNameByID fetches an API integration by its display name and then retrieves its details using its ID.
  • POST /api/v1/api-integrations - CreateApiIntegration creates a new API integration.
  • POST /api/v1/api-integrations/{id}/client-credentials - CreateClientCredentialsByApiRoleID creates new client credentials for an API integration by its ID.
  • PUT /api/v1/api-integrations/{id} - UpdateApiIntegrationByID updates an API integration by its ID.
  • PUT /api/v1/api-integrations followed by searching by name - UpdateApiIntegrationByName updates an API integration based on its display name.
  • POST /api/v1/api-integrations/{id}/client-credentials (Used for updating) - UpdateClientCredentialsByApiIntegrationID updates client credentials for an API integration by its ID.
  • DELETE /api/v1/api-integrations/{id} - DeleteApiIntegrationByID deletes an API integration by its ID.
  • DELETE /api/v1/api-integrations followed by searching by name - DeleteApiIntegrationByName deletes an API integration by its display name.

Jamf Pro API Role Privileges - /api/v1/api-role-privileges

  • GET /api/v1/api-role-privileges - GetJamfAPIPrivileges fetches a list of Jamf API role privileges.
  • GET /api/v1/api-role-privileges/search?name={name}&limit={limit} - GetJamfAPIPrivilegesByName fetches a Jamf API role privileges by name.

Jamf Pro API Roles - /api/v1/api-roles

  • GET /api/v1/api-roles - GetJamfAPIRoles fetches all API roles.
  • GET /api/v1/api-roles/{id} - GetJamfApiRolesByID fetches a Jamf API role by its ID.
  • GET /api/v1/api-roles followed by searching by name - GetJamfApiRolesNameById fetches a Jamf API role by its display name and then retrieves its details using its ID.
  • POST /api/v1/api-roles - CreateJamfApiRole creates a new Jamf API role.
  • PUT /api/v1/api-roles/{id} - UpdateJamfApiRoleByID updates a Jamf API role by its ID.
  • PUT /api/v1/api-roles followed by searching by name - UpdateJamfApiRoleByName updates a Jamf API role based on its display name.
  • DELETE /api/v1/api-roles/{id} - DeleteJamfApiRoleByID deletes a Jamf API role by its ID.
  • DELETE /api/v1/api-roles followed by searching by name - DeleteJamfApiRoleByName deletes a Jamf API role by its display name.

Jamf Pro Classic API - Advanced Computer Searches

  • GET /JSSResource/advancedcomputersearches - GetAdvancedComputerSearches fetches all advanced computer searches.
  • GET /JSSResource/advancedcomputersearches/id/{id} - GetAdvancedComputerSearchByID fetches an advanced computer search by its ID.
  • GET /JSSResource/advancedcomputersearches/name/{name} - GetAdvancedComputerSearchesByName fetches advanced computer searches by their name.
  • POST /JSSResource/advancedcomputersearches - CreateAdvancedComputerSearch creates a new advanced computer search.
  • PUT /JSSResource/advancedcomputersearches/id/{id} - UpdateAdvancedComputerSearchByID updates an existing advanced computer search by its ID.
  • PUT /JSSResource/advancedcomputersearches/name/{name} - UpdateAdvancedComputerSearchByName updates an advanced computer search by its name.
  • DELETE /JSSResource/advancedcomputersearches/id/{id} - DeleteAdvancedComputerSearchByID deletes an advanced computer search by its ID.
  • DELETE /JSSResource/advancedcomputersearches/name/{name} - DeleteAdvancedComputerSearchByName deletes an advanced computer search by its name.

Jamf Pro Classic API - Advanced Mobile Device Searches

  • GET /JSSResource/advancedmobiledevicesearches - GetAdvancedMobileDeviceSearches fetches all advanced mobile device searches.
  • GET /JSSResource/advancedmobiledevicesearches/id/{id} - GetAdvancedMobileDeviceSearchByID fetches an advanced mobile device search by its ID.
  • GET /JSSResource/advancedmobiledevicesearches/name/{name} - GetAdvancedMobileDeviceSearchByName fetches advanced mobile device searches by their name.
  • POST /JSSResource/advancedmobiledevicesearches - CreateAdvancedMobileDeviceSearch creates a new advanced mobile device search.
  • PUT /JSSResource/advancedmobiledevicesearches/id/{id} - UpdateAdvancedMobileDeviceSearchByID updates an existing advanced mobile device search by its ID.
  • PUT /JSSResource/advancedmobiledevicesearches/name/{name} - UpdateAdvancedMobileDeviceSearchByName updates an advanced mobile device search by its name.
  • DELETE /JSSResource/advancedmobiledevicesearches/id/{id} - DeleteAdvancedMobileDeviceSearchByID deletes an advanced mobile device search by its ID.
  • DELETE /JSSResource/advancedmobiledevicesearches/name/{name} - DeleteAdvancedMobileDeviceSearchByName deletes an advanced mobile device search by its name.

Jamf Pro Classic API - Advanced User Searches

  • GET /JSSResource/advancedusersearches - GetAdvancedUserSearches fetches all advanced user searches.
  • GET /JSSResource/advancedusersearches/id/{id} - GetAdvancedUserSearchByID fetches an advanced user search by its ID.
  • GET /JSSResource/advancedusersearches/name/{name} - GetAdvancedUserSearchesByName fetches advanced user searches by their name.
  • POST /JSSResource/advancedusersearches - CreateAdvancedUserSearch creates a new advanced user search.
  • PUT /JSSResource/advancedusersearches/id/{id} - UpdateAdvancedUserSearchByID updates an existing advanced user search by its ID.
  • PUT /JSSResource/advancedusersearches/name/{name} - UpdateAdvancedUserSearchByName updates an advanced user search by its name.
  • DELETE /JSSResource/advancedusersearches/id/{id} - DeleteAdvancedUserSearchByID deletes an advanced user search by its ID.
  • DELETE /JSSResource/advancedusersearches/name/{name} - DeleteAdvancedUserSearchByName deletes an advanced user search by its name.

Allowed File Extensions - /JSSResource/allowedfileextensions

  • GET /JSSResource/allowedfileextensions - GetAllowedFileExtensions retrieves all allowed file extensions
  • GET /JSSResource/allowedfileextensions/id/{id} - GetAllowedFileExtensionByID retrieves the allowed file extension by its ID
  • GET /JSSResource/allowedfileextensions/extension/{extensionName} - GetAllowedFileExtensionByName retrieves the allowed file extension by its name
  • POST /JSSResource/allowedfileextensions/id/0 - CreateAllowedFileExtension creates a new allowed file extension
  • [] ❌ PUT /JSSResource/allowedfileextensions/id/{id} - UpdateAllowedFileExtensionByID (API doesn't support update)
  • DELETE /JSSResource/allowedfileextensions/id/{id} - DeleteAllowedFileExtensionByID deletes an existing allowed file extension by ID
  • DELETE /JSSResource/allowedfileextensions/extension/{extensionName} - DeleteAllowedFileExtensionByNameByID deletes an existing allowed file extension by resolving its name to an ID

BYO Profiles - /JSSResource/byoprofiles

  • GET /JSSResource/byoprofiles - GetBYOProfiles retrieves all BYO profiles.
  • GET /JSSResource/byoprofiles/id/{id} - GetBYOProfileByID retrieves a BYO profile by its ID.
  • GET /JSSResource/byoprofiles/name/{name} - GetBYOProfileByName retrieves a BYO profile by its name.
  • POST /JSSResource/byoprofiles/id/0 - CreateBYOProfile creates a new BYO profile.
  • PUT /JSSResource/byoprofiles/id/{id} - UpdateBYOProfileByID updates an existing BYO profile by its ID.
  • PUT /JSSResource/byoprofiles/name/{oldName} - UpdateBYOProfileByName updates an existing BYO profile by its name.
  • DELETE /JSSResource/byoprofiles/id/{id} - DeleteBYOProfileByID deletes an existing BYO profile by its ID.
  • DELETE /JSSResource/byoprofiles/name/{name} - DeleteBYOProfileByName deletes an existing BYO profile by its name.

Jamf Pro API - Categories

  • GET /api/v1/categories - GetCategories retrieves categories based on query parameters.
  • GET /api/v1/categories/{id} - GetCategoryByID retrieves a category by its ID.
  • GET /api/v1/categories/name/{name} - GetCategoryNameByID retrieves a category by its name and then retrieves its details using its ID.
  • POST /api/v1/categories - CreateCategory creates a new category.
  • PUT /api/v1/categories/{id} - UpdateCategoryByID updates an existing category by its ID.
  • PUT UpdateCategoryByNameByID updates a category by its name and then updates its details using its ID.
  • DELETE /api/v1/categories/{id} - DeleteCategoryByID deletes a category by its ID.
  • DELETE DeleteCategoryByNameByID deletes a category by its name after inferring its ID.
  • POST /api/v1/categories/delete-multiple - DeleteMultipleCategoriesByID deletes multiple categories by their IDs.

Jamf Pro Classic API - Computer Groups

  • GET /JSSResource/computergroups - GetComputerGroups fetches all computer groups.
  • GET /JSSResource/computergroups/id/{id} - GetComputerGroupByID fetches a computer group by its ID.
  • GET /JSSResource/computergroups/name/{name} - GetComputerGroupByName fetches a computer group by its name.
  • POST /JSSResource/computergroups/id/0 - CreateComputerGroup creates a new computer group.
  • PUT /JSSResource/computergroups/id/{id} - UpdateComputerGroupByID updates an existing computer group by its ID.
  • PUT /JSSResource/computergroups/name/{name} - UpdateComputerGroupByName updates a computer group by its name.
  • DELETE /JSSResource/computergroups/id/{id} - DeleteComputerGroupByID deletes a computer group by its ID.
  • DELETE /JSSResource/computergroups/name/{name} - DeleteComputerGroupByName deletes a computer group by its name.

Jamf Pro Classic API - Computer Extension Attributes

  • GET /JSSResource/computerextensionattributes - GetComputerExtensionAttributes gets a list of all computer extension attributes.
  • GET /JSSResource/computerextensionattributes/id/{id} - GetComputerExtensionAttributeByID retrieves a computer extension attribute by its ID.
  • GET /JSSResource/computerextensionattributes/name/{name} - GetComputerExtensionAttributeByName retrieves a computer extension attribute by its name.
  • POST /JSSResource/computerextensionattributes/id/0 - CreateComputerExtensionAttribute creates a new computer extension attribute.
  • PUT /JSSResource/computerextensionattributes/id/{id} - UpdateComputerExtensionAttributeByID updates an existing computer extension attribute by its ID.
  • PUT /JSSResource/computerextensionattributes/name/{name} - UpdateComputerExtensionAttributeByName updates a computer extension attribute by its name.
  • DELETE /JSSResource/computerextensionattributes/id/{id} - DeleteComputerExtensionAttributeByID deletes a computer extension attribute by its ID.
  • ⚠️ DELETE (Complex Operation) - DeleteComputerExtensionAttributeByNameByID deletes a computer extension attribute by its name (involves fetching ID by name first).

Departments - /JSSResource/departments

  • GET /JSSResource/departments - GetDepartments retrieves all departments
  • GET /JSSResource/departments/id/{id} - GetDepartmentByID retrieves the department by its ID
  • GET /JSSResource/departments/name/{name} - GetDepartmentByName retrieves the department by its name
  • POST /JSSResource/departments/id/0 - CreateDepartment creates a new department
  • PUT /JSSResource/departments/id/{id} - UpdateDepartmentByID updates an existing department
  • PUT /JSSResource/departments/name/{oldName} - UpdateDepartmentByName updates an existing department by its name
  • DELETE /JSSResource/departments/id/{id} - DeleteDepartmentByID deletes an existing department by its ID
  • DELETE /JSSResource/departments/name/{name} - DeleteDepartmentByName deletes an existing department by its name

macOS Configuration Profiles - /JSSResource/osxconfigurationprofiles

  • GET /JSSResource/osxconfigurationprofiles - GetMacOSConfigurationProfiles retrieves all macOS configuration profiles.
  • GET /JSSResource/osxconfigurationprofiles/id/{id} - GetMacOSConfigurationProfileByID retrieves the macOS configuration profile by its ID.
  • GET /JSSResource/osxconfigurationprofiles/name/{name} - GetMacOSConfigurationProfileByName retrieves the macOS configuration profile by its name.
  • POST /JSSResource/osxconfigurationprofiles/id/0 - CreateMacOSConfigurationProfile creates a new macOS configuration profile.
  • PUT /JSSResource/osxconfigurationprofiles/id/{id} - UpdateMacOSConfigurationProfileByID updates an existing macOS configuration profile by ID.
  • PUT /JSSResource/osxconfigurationprofiles/name/{name} - UpdateMacOSConfigurationProfileByName updates an existing macOS configuration profile by its name.
  • DELETE /JSSResource/osxconfigurationprofiles/id/{id} - DeleteMacOSConfigurationProfileByID deletes an existing macOS configuration profile by ID.
  • DELETE /JSSResource/osxconfigurationprofiles/name/{name} - DeleteMacOSConfigurationProfileByName deletes an existing macOS configuration profile by its name.

Policies - /JSSResource/policies

  • GET /JSSResource/policies - GetPolicies retrieves a list of all policies
  • GET /JSSResource/policies/id/{id} - GetPolicyByID retrieves the details of a policy by its ID
  • GET /JSSResource/policies/name/{name} - GetPolicyByName retrieves a policy by its name
  • GET /JSSResource/policies/category/{category} - GetPolicyByCategory retrieves policies by their category
  • GET /JSSResource/policies/createdBy/{createdBy} - GetPoliciesByType retrieves policies by the type of entity that created them
  • POST /JSSResource/policies/id/0 - CreatePolicy creates a new policy
  • PUT /JSSResource/policies/id/{id} - UpdatePolicyByID updates an existing policy by its ID
  • PUT /JSSResource/policies/name/{name} - UpdatePolicyByName updates an existing policy by its name
  • DELETE /JSSResource/policies/id/{id} - DeletePolicyByID deletes a policy by its ID
  • DELETE /JSSResource/policies/name/{name} - DeletePolicyByName deletes a policy by its name

Jamf Pro API - Self Service Branding macOS

  • GET /api/v1/self-service/branding/macos - GetSelfServiceBrandingMacOS fetches all self-service branding configurations for macOS.
  • GET /api/v1/self-service/branding/macos/{id} - GetSelfServiceBrandingMacOSByID fetches a self-service branding configuration for macOS by its ID.
  • GET /api/v1/self-service/branding/macos/name/{name} - GetSelfServiceBrandingMacOSByNameByID fetches a self-service branding configuration for macOS by its name.
  • POST /api/v1/self-service/branding/macos - CreateSelfServiceBrandingMacOS creates a new self-service branding configuration for macOS.
  • PUT /api/v1/self-service/branding/macos/{id} - UpdateSelfServiceBrandingMacOSByID updates an existing self-service branding configuration for macOS by its ID.
  • PUT - UpdateSelfServiceBrandingMacOSByName updates a self-service branding configuration for macOS by its name.
  • DELETE /api/v1/self-service/branding/macos/{id} - DeleteSelfServiceBrandingMacOSByID deletes a self-service branding configuration for macOS by its ID.
  • DELETE - DeleteSelfServiceBrandingMacOSByName deletes a self-service branding configuration for macOS by its name.

Scripts - /JSSResource/scripts

  • GET /JSSResource/scripts - GetScripts retrieves all scripts.
  • GET /JSSResource/scripts/id/{id} - GetScriptsByID retrieves the script details by its ID.
  • GET /JSSResource/scripts/name/{name} - GetScriptsByName retrieves the script details by its name.
  • POST /JSSResource/scripts/id/0 - CreateScriptByID creates a new script.
  • PUT /JSSResource/scripts/id/{id} - UpdateScriptByID updates an existing script by its ID.
  • PUT /JSSResource/scripts/name/{name} - UpdateScriptByName updates an existing script by its name.
  • DELETE /JSSResource/scripts/id/{id} - DeleteScriptByID deletes an existing script by its ID.
  • DELETE /JSSResource/scripts/name/{name} - DeleteScriptByName deletes an existing script by its name.

Jamf Pro Classic API - Sites

  • GET /JSSResource/sites - GetSites fetches all sites.
  • GET /JSSResource/sites/id/{id} - GetSiteByID fetches a site by its ID.
  • GET /JSSResource/sites/name/{name} - GetSiteByName fetches a site by its name.
  • POST /JSSResource/sites/id/0 - CreateSite creates a new site.
  • PUT /JSSResource/sites/id/{id} - UpdateSiteByID updates an existing site by its ID.
  • PUT /JSSResource/sites/name/{name} - UpdateSiteByName updates a site by its name.
  • DELETE /JSSResource/sites/id/{id} - DeleteSiteByID deletes a site by its ID.
  • DELETE /JSSResource/sites/name/{name} - DeleteSiteByName deletes a site by its name.

SSO Failover - /api/v1/sso/failover/generate

  • GET /api/v1/sso/failover - GetSSOFailoverSettings retrieves the current failover settings
  • PUT /api/v1/sso/failover/generate - UpdateFailoverUrl updates failover url, by changing failover key to new one, and returns new failover settings

Jamf Pro API - Volume Purchasing Subscriptions

This documentation provides details on the API endpoints available for managing Volume Purchasing Subscriptions within Jamf Pro.

Endpoints
  • GET /api/v1/volume-purchasing-subscriptions
    GetVolumePurchasingSubscriptions retrieves all volume purchasing subscriptions.

  • GET /api/v1/volume-purchasing-subscriptions/{id}
    GetVolumePurchasingSubscriptionByID fetches a single volume purchasing subscription by its ID.

  • POST /api/v1/volume-purchasing-subscriptions
    CreateVolumePurchasingSubscription creates a new volume purchasing subscription. If siteId is not included in the request, it defaults to siteId: "-1".

  • PUT /api/v1/volume-purchasing-subscriptions/{id}
    UpdateVolumePurchasingSubscriptionByID updates a volume purchasing subscription by its ID.

  • DELETE /api/v1/volume-purchasing-subscriptions/{id}
    DeleteVolumePurchasingSubscriptionByID deletes a volume purchasing subscription by its ID.

  • Custom Function
    GetVolumePurchasingSubscriptionByNameByID fetches a volume purchasing subscription by its display name and retrieves its details using its ID.

  • Custom Function
    UpdateVolumePurchasingSubscriptionByNameByID updates a volume purchasing subscription by its display name.

  • Custom Function
    DeleteVolumePurchasingSubscriptionByName deletes a volume purchasing subscription by its display name after resolving the name to an ID.

Jamf Pro API - Computer Inventory Collection Settings

This documentation outlines the API endpoints available for managing Computer Inventory Collection Settings in Jamf Pro.

Endpoints
  • GET /api/v1/computer-inventory-collection-settings
    GetComputerInventoryCollectionSettings retrieves the current computer inventory collection preferences and custom paths.

  • PATCH /api/v1/computer-inventory-collection-settings
    UpdateComputerInventoryCollectionSettings updates the computer inventory collection preferences.

  • POST /api/v1/computer-inventory-collection-settings/custom-path
    CreateComputerInventoryCollectionSettingsCustomPath creates a new custom path for the computer inventory collection settings.

  • DELETE /api/v1/computer-inventory-collection-settings/custom-path/{id}
    DeleteComputerInventoryCollectionSettingsCustomPathByID deletes a custom path by its ID.

Jamf Pro API - Jamf Pro Information

This documentation covers the API endpoints available for retrieving information about the Jamf Pro server.

Endpoints
  • GET /api/v2/jamf-pro-information
    GetJamfProInformation retrieves information about various services enabled on the Jamf Pro server, like VPP token, DEP account status, BYOD, and more.

Jamf Pro Classic API - Classes

This documentation provides details on the API endpoints available for managing classes within Jamf Pro using the Classic API which requires XML data structure support.

Endpoints

  • GET /JSSResource/classes
    GetClasses retrieves a list of all classes.

  • GET /JSSResource/classes/id/{id}
    GetClassesByID fetches a single class by its ID.

  • GET /JSSResource/classes/name/{name}
    GetClassesByName retrieves a class by its name.

  • POST /JSSResource/classes/id/0
    CreateClassesByID creates a new class with the provided details. Using ID 0 indicates creation as per API pattern. If siteId is not included, it defaults to siteId: "-1".

  • PUT /JSSResource/classes/id/{id}
    UpdateClassesByID updates an existing class with the given ID.

  • PUT /JSSResource/classes/name/{name}
    UpdateClassesByName updates an existing class with the given name.

  • DELETE /JSSResource/classes/id/{id}
    DeleteClassByID deletes a class by its ID.

  • DELETE /JSSResource/classes/name/{name}
    DeleteClassByName deletes a class by its name.

Jamf Pro Classic API - Computer Invitations

This documentation outlines the API endpoints available for managing computer invitations within Jamf Pro using the Classic API, which relies on XML data structures.

Endpoints

  • GET /JSSResource/computerinvitations GetComputerInvitations retrieves a list of all computer invitations.

  • GET /JSSResource/computerinvitations/id/{id} GetComputerInvitationByID fetches a single computer invitation by its ID.

  • GET /JSSResource/computerinvitations/invitation/{invitation} GetComputerInvitationsByInvitationID retrieves a computer invitation by its invitation ID.

  • POST /JSSResource/computerinvitations/id/0 CreateComputerInvitation creates a new computer invitation. Using ID 0 indicates creation as per API pattern. If siteId is not included, it defaults to using a siteId of -1, implying no specific site association.

  • [] ❌ PUT /JSSResource/computerinvitations/invitation/{invitation} There is no documented endpoint for updating a computer invitation by its invitation ID.

  • DELETE /JSSResource/computerinvitations/id/{id} DeleteComputerInvitationByID deletes a computer invitation by its ID.

  • [] ❌ DELETE /JSSResource/computerinvitations/invitation/{invitation} There is currently no SDK coverage for deleting an invitation by invitation ID

Jamf Pro Classic API - Disk Encryption Configurations

This documentation provides details on the API endpoints available for managing disk encryption configurations within Jamf Pro using the Classic API which requires XML data structure support.

Endpoints

  • GET /JSSResource/diskencryptionconfigurations
    GetDiskEncryptionConfigurations retrieves a serialized list of all disk encryption configurations.

  • GET /JSSResource/diskencryptionconfigurations/id/{id}
    GetDiskEncryptionConfigurationByID fetches a single disk encryption configuration by its ID.

  • GET /JSSResource/diskencryptionconfigurations/name/{name}
    GetDiskEncryptionConfigurationByName retrieves a disk encryption configuration by its name.

  • POST /JSSResource/diskencryptionconfigurations/id/0
    CreateDiskEncryptionConfiguration creates a new disk encryption configuration with the provided details. Using ID 0 indicates creation as per API pattern.

  • PUT /JSSResource/diskencryptionconfigurations/id/{id}
    UpdateDiskEncryptionConfigurationByID updates an existing disk encryption configuration with the given ID.

  • PUT /JSSResource/diskencryptionconfigurations/name/{name}
    UpdateDiskEncryptionConfigurationByName updates an existing disk encryption configuration with the given name.

  • DELETE /JSSResource/diskencryptionconfigurations/id/{id}
    DeleteDiskEncryptionConfigurationByID deletes a disk encryption configuration by its ID.

  • DELETE /JSSResource/diskencryptionconfigurations/name/{name}
    DeleteDiskEncryptionConfigurationByName deletes a disk encryption configuration by its name.

Jamf Pro Classic API - Distribution Points

This documentation provides details on the API endpoints available for managing distribution points within Jamf Pro using the Classic API, which requires XML data structure support.

Endpoints

  • GET /JSSResource/distributionpoints
    GetDistributionPoints retrieves a serialized list of all distribution points.

  • GET /JSSResource/distributionpoints/id/{id}
    GetDistributionPointByID fetches a single distribution point by its ID.

  • GET /JSSResource/distributionpoints/name/{name}
    GetDistributionPointByName retrieves a distribution point by its name.

  • POST /JSSResource/distributionpoints/id/0
    CreateDistributionPoint creates a new distribution point with the provided details. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/distributionpoints/id/{id}
    UpdateDistributionPointByID updates an existing distribution point by its ID.

  • PUT /JSSResource/distributionpoints/name/{name}
    UpdateDistributionPointByName updates an existing distribution point by its name.

  • DELETE /JSSResource/distributionpoints/id/{id}
    DeleteDistributionPointByID deletes a distribution point by its ID.

  • DELETE /JSSResource/distributionpoints/name/{name}
    DeleteDistributionPointByName deletes a distribution point by its name.

Jamf Pro Classic API - Directory Bindings

This documentation provides details on the API endpoints available for managing directory bindings within Jamf Pro using the Classic API, which requires XML data structure support.

Endpoints

  • GET /JSSResource/directorybindings GetDirectoryBindings retrieves a serialized list of all directory bindings.

  • GET /JSSResource/directorybindings/id/{id} GetDirectoryBindingByID fetches a single directory binding by its ID.

  • GET /JSSResource/directorybindings/name/{name} GetDirectoryBindingByName retrieves a directory binding by its name.

  • POST /JSSResource/directorybindings/id/0 CreateDirectoryBinding creates a new directory binding with the provided details. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/directorybindings/id/{id} UpdateDirectoryBindingByID updates an existing directory binding by its ID.

  • PUT /JSSResource/directorybindings/name/{name} `UpdateDirectoryBindingByName updates an existing directory binding by its name.

  • DELETE /JSSResource/directorybindings/id/{id} `DeleteDirectoryBindingByID deletes a directory binding by its ID.

  • DELETE /JSSResource/directorybindings/name/{name} DeleteDirectoryBindingByName deletes a directory binding by its name.

Jamf Pro Classic API - Computers

This documentation provides details on the API endpoints available for managing computers within Jamf Pro using the Classic API, which requires XML data structure support.

Endpoints

  • GET /JSSResource/computers GetComputers retrieves a serialized list of all computers.

  • GET /JSSResource/computers/id/{id} GetComputerByID fetches a single computer by its ID.

  • GET /JSSResource/computers/name/{name} GetComputerByName retrieves a computer by its name.

  • POST /JSSResource/computers/id/0 CreateComputer creates a new computer with the provided details. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/computers/id/{id} UpdateComputerByID updates an existing computer by its ID.

  • PUT /JSSResource/computers/name/{name} UpdateComputerByName updates an existing computer by its name.

  • DELETE /JSSResource/computers/id/{id} DeleteComputerByID deletes a computer by its ID.

  • DELETE /JSSResource/computers/name/{name} DeleteComputerByName deletes a computer by its name.

Jamf Pro Classic API - Dock Items

This documentation provides details on the API endpoints available for managing dock items within Jamf Pro using the Classic API, which requires XML data structure support.

Endpoints

  • GET /JSSResource/dockitems GetDockItems retrieves a serialized list of all dock items.

  • GET /JSSResource/dockitems/id/{id} GetDockItemsByID fetches a single dock item by its ID.

  • GET /JSSResource/dockitems/name/{name} GetDockItemsByName retrieves a dock item by its name.

  • POST /JSSResource/dockitems/id/0 CreateDockItems creates a new dock item with the provided details. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/dockitems/id/{id} UpdateDockItemsByID updates an existing dock item by its ID.

  • PUT /JSSResource/dockitems/name/{name} UpdateDockItemsByName updates an existing dock item by its name.

  • DELETE /JSSResource/dockitems/id/{id} DeleteDockItemsByID deletes a dock item by its ID.

  • DELETE /JSSResource/dockitems/name/{name} DeleteDockItemsByName deletes a dock item by its name.

Jamf Pro Classic API - eBooks

This documentation provides details on the API endpoints available for managing dock items within Jamf Pro using the Classic API, which requires XML data structure support.

Endpoints

  • GET /JSSResource/ebooks GetEbooks retrieves a serialized list of all ebooks.

  • GET /JSSResource/ebooks/id/{id} GetEbooksByID fetches a single ebook by its ID.

  • GET /JSSResource/ebooks/name/{name} GetEbooksByName retrieves an ebook by its name.

  • GET /JSSResource/ebooks/name/{name}/subset/{subset} GetEbooksByNameAndDataSubset retrieves a specific subset (General, Scope, or SelfService) of an ebook by its name.

  • POST /JSSResource/ebooks/id/0 CreateEbook creates a new ebook with the provided details. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/ebooks/id/{id} UpdateEbookByID updates an existing ebook by its ID.

  • PUT /JSSResource/ebooks/name/{name} UpdateEbookByName updates an existing ebook by its name.

  • DELETE /JSSResource/ebooks/id/{id} DeleteEbookByID deletes an ebook by its ID.

  • DELETE /JSSResource/ebooks/name/{name} DeleteEbookByName deletes an ebook by its name.

Jamf Pro Classic API - VPP Mac Applications

This documentation outlines the API endpoints available for managing VPP Mac applications within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/macapplications GetMacApplications retrieves a serialized list of all VPP Mac applications.

  • GET /JSSResource/macapplications/id/{id} GetMacApplicationByID fetches a single Mac application by its ID.

  • GET /JSSResource/macapplications/name/{name} GetMacApplicationByName retrieves a Mac application by its name.

  • GET /JSSResource/macapplications/name/{name}/subset/{subset} GetMacApplicationByNameAndDataSubset retrieves a specific subset (General, Scope, SelfService, VPPCodes, and VPP) of a Mac application by its name.

  • GET /JSSResource/macapplications/id/{id}/subset/{subset} GetMacApplicationByIDAndDataSubset retrieves a specific subset (General, Scope, SelfService, VPPCodes, and VPP) of a Mac application by its ID.

  • POST /JSSResource/macapplications/id/0 CreateMacApplication creates a new Mac application with the provided details. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/macapplications/id/{id} UpdateMacApplicationByID updates an existing Mac application by its ID.

  • PUT /JSSResource/macapplications/name/{name} UpdateMacApplicationByName updates an existing Mac application by its name.

  • DELETE /JSSResource/macapplications/id/{id} DeleteMacApplicationByID deletes a Mac application by its ID.

  • DELETE /JSSResource/macapplications/name/{name} DeleteMacApplicationByName deletes a Mac application by its name.

Jamf Pro Classic API - iBeacons

This documentation outlines the API endpoints available for managing iBeacons within Jamf Pro using the Classic API, which supports XML data structures

Endpoints

  • GET /JSSResource/ibeacons GetIBeacons retrieves a serialized list of all iBeacons.

  • GET /JSSResource/ibeacons/id/{id} GetIBeaconByID fetches a single iBeacon by its ID.

  • GET /JSSResource/ibeacons/name/{name} GetIBeaconByName retrieves an iBeacon by its name.

  • POST /JSSResource/ibeacons/id/0 CreateIBeacon creates a new iBeacon with the provided details. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/ibeacons/id/{id} UpdateIBeaconByID updates an existing iBeacon by its ID.

  • PUT /JSSResource/ibeacons/name/{name} UpdateIBeaconByName updates an existing iBeacon by its name.

  • DELETE /JSSResource/ibeacons/id/{id} DeleteIBeaconByID deletes an iBeacon by its ID.

  • DELETE /JSSResource/ibeacons/name/{name} DeleteIBeaconByName deletes an iBeacon by its name.

Jamf Pro Classic API - LDAP Servers

This documentation outlines the API endpoints available for managing LDAP servers within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/ldapservers GetLDAPServers retrieves a serialized list of all LDAP servers.

  • GET /JSSResource/ldapservers/id/{id} GetLDAPServerByID fetches a single LDAP server by its ID.

  • GET /JSSResource/ldapservers/name/{name} GetLDAPServerByName retrieves a LDAP server by its name.

  • GET /JSSResource/ldapservers/id/{id}/user/{user} GetLDAPServerByIDAndUserDataSubset retrieves user data for a specific LDAP server by its ID.

  • GET /JSSResource/ldapservers/id/{id}/group/{group} GetLDAPServerByIDAndGroupDataSubset retrieves group data for a specific LDAP server by its ID.

  • GET /JSSResource/ldapservers/id/{id}/group/{group}/user/{user} GetLDAPServerByIDAndUserMembershipInGroupDataSubset retrieves user group membership details for a specific LDAP server by its ID.

  • GET /JSSResource/ldapservers/name/{name}/user/{user} GetLDAPServerByNameAndUserDataSubset retrieves user data for a specific LDAP server by its name.

  • GET /JSSResource/ldapservers/name/{name}/group/{group} GetLDAPServerByNameAndGroupDataSubset retrieves group data for a specific LDAP server by its name.

  • GET /JSSResource/ldapservers/name/{name}/group/{group}/user/{user} GetLDAPServerByNameAndUserMembershipInGroupDataSubset retrieves user group membership details for a specific LDAP server by its name.

  • POST /JSSResource/ldapservers/id/0 CreateLDAPServer creates a new LDAP server with the provided details.

  • PUT /JSSResource/ldapservers/id/{id} UpdateLDAPServerByID updates an existing LDAP server by its ID.

  • PUT /JSSResource/ldapservers/name/{name} UpdateLDAPServerByName updates an existing LDAP server by its name.

  • DELETE /JSSResource/ldapservers/id/{id} DeleteLDAPServerByID deletes an LDAP server by its ID.

  • DELETE /JSSResource/ldapservers/name/{name} DeleteLDAPServerByName deletes an LDAP server by its name.

Jamf Pro Classic API - Licensed Software

This documentation outlines the API endpoints available for managing Licensed Software within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/licensedsoftware GetLicensedSoftware retrieves a serialized list of all Licensed Software.

  • GET /JSSResource/licensedsoftware/id/{id} GetLicensedSoftwareByID fetches details of a single Licensed Software item by its ID.

  • GET /JSSResource/licensedsoftware/name/{name} GetLicensedSoftwareByName retrieves details of a Licensed Software item by its name.

  • POST /JSSResource/licensedsoftware/id/0 CreateLicensedSoftware creates a new Licensed Software item. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/licensedsoftware/id/{id} UpdateLicensedSoftwareByID updates an existing Licensed Software item by its ID.

  • PUT /JSSResource/licensedsoftware/name/{name} UpdateLicensedSoftwareByName updates an existing Licensed Software item by its name.

  • DELETE /JSSResource/licensedsoftware/id/{id} DeleteLicensedSoftwareByID deletes a Licensed Software item by its ID.

  • DELETE /JSSResource/licensedsoftware/name/{name} DeleteLicensedSoftwareByName deletes a Licensed Software item by its name.

Jamf Pro Classic API - Mobile Device Applications

This documentation outlines the API endpoints available for managing Mobile Device Applications within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/mobiledeviceapplications GetMobileDeviceApplications retrieves a serialized list of all Mobile Device Applications.

  • GET /JSSResource/mobiledeviceapplications/id/{id} GetMobileDeviceApplicationByID fetches details of a single Mobile Device Application by its ID.

  • GET /JSSResource/mobiledeviceapplications/name/{name} GetMobileDeviceApplicationByName retrieves details of a Mobile Device Application by its name.

  • GET /JSSResource/mobiledeviceapplications/bundleid/{bundleid} GetMobileDeviceApplicationByAppBundleID fetches details of a Mobile Device Application by its Bundle ID.

  • GET /JSSResource/mobiledeviceapplications/bundleid/{bundleid}/version/{version} GetMobileDeviceApplicationByAppBundleIDAndVersion fetches details of a Mobile Device Application by its Bundle ID and specific version.

  • GET /JSSResource/mobiledeviceapplications/id/{id}/subset/{subset} GetMobileDeviceApplicationByIDAndDataSubset fetches a Mobile Device Application by its ID and a specified data subset.

  • GET /JSSResource/mobiledeviceapplications/name/{name}/subset/{subset} GetMobileDeviceApplicationByNameAndDataSubset fetches a Mobile Device Application by its name and a specified data subset.

  • POST /JSSResource/mobiledeviceapplications/id/0 CreateMobileDeviceApplication creates a new Mobile Device Application. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/mobiledeviceapplications/id/{id} UpdateMobileDeviceApplicationByID updates an existing Mobile Device Application by its ID.

  • PUT /JSSResource/mobiledeviceapplications/name/{name} UpdateMobileDeviceApplicationByName updates an existing Mobile Device Application by its name.

  • PUT /JSSResource/mobiledeviceapplications/bundleid/{bundleid} UpdateMobileDeviceApplicationByApplicationBundleID updates an existing Mobile Device Application by its Bundle ID.

  • PUT /JSSResource/mobiledeviceapplications/bundleid/{bundleid}/version/{version} UpdateMobileDeviceApplicationByIDAndAppVersion updates an existing Mobile Device Application by its ID and specific version.

  • DELETE /JSSResource/mobiledeviceapplications/id/{id} DeleteMobileDeviceApplicationByID deletes a Mobile Device Application by its ID.

  • DELETE /JSSResource/mobiledeviceapplications/name/{name} DeleteMobileDeviceApplicationByName deletes a Mobile Device Application by its name.

  • DELETE /JSSResource/mobiledeviceapplications/bundleid/{bundleid} DeleteMobileDeviceApplicationByBundleID deletes a Mobile Device Application by its Bundle ID.

  • DELETE /JSSResource/mobiledeviceapplications/bundleid/{bundleid}/version/{version} DeleteMobileDeviceApplicationByBundleIDAndVersion deletes a Mobile Device Application by its Bundle ID and specific version.

Jamf Pro Classic API - Mobile Device Configuration Profiles

This documentation outlines the API endpoints available for managing Mobile Device Configuration Profiles within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/mobiledeviceconfigurationprofiles GetMobileDeviceConfigurationProfiles retrieves a serialized list of all Mobile Device Configuration Profiles.

  • GET /JSSResource/mobiledeviceconfigurationprofiles/id/{id} GetMobileDeviceConfigurationProfileByID fetches details of a single Mobile Device Configuration Profile by its ID.

  • GET /JSSResource/mobiledeviceconfigurationprofiles/name/{name} GetMobileDeviceConfigurationProfileByName retrieves details of a Mobile Device Configuration Profile by its name.

  • GET /JSSResource/mobiledeviceconfigurationprofiles/id/{id}/subset/{subset} GetMobileDeviceConfigurationProfileByIDBySubset fetches a specific Mobile Device Configuration Profile by its ID and a specified subset.

  • GET /JSSResource/mobiledeviceconfigurationprofiles/name/{name}/subset/{subset} GetMobileDeviceConfigurationProfileByNameBySubset fetches a specific Mobile Device Configuration Profile by its name and a specified subset.

  • POST /JSSResource/mobiledeviceconfigurationprofiles/id/0 CreateMobileDeviceConfigurationProfile creates a new Mobile Device Configuration Profile. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/mobiledeviceconfigurationprofiles/id/{id} UpdateMobileDeviceConfigurationProfileByID updates an existing Mobile Device Configuration Profile by its ID.

  • PUT /JSSResource/mobiledeviceconfigurationprofiles/name/{name} UpdateMobileDeviceConfigurationProfileByName updates an existing Mobile Device Configuration Profile by its name.

  • DELETE /JSSResource/mobiledeviceconfigurationprofiles/id/{id} DeleteMobileDeviceConfigurationProfileByID deletes a Mobile Device Configuration Profile by its ID.

  • DELETE /JSSResource/mobiledeviceconfigurationprofiles/name/{name} DeleteMobileDeviceConfigurationProfileByName deletes a Mobile Device Configuration Profile by its name.

Jamf Pro Classic API - Mobile Extension Attributes

This documentation outlines the API endpoints available for managing Mobile Extension Attributes within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/mobiledeviceextensionattributes GetMobileExtensionAttributes retrieves a serialized list of all Mobile Extension Attributes.

  • GET /JSSResource/mobiledeviceextensionattributes/id/{id} GetMobileExtensionAttributeByID fetches details of a single Mobile Extension Attribute by its ID.

  • GET /JSSResource/mobiledeviceextensionattributes/name/{name} GetMobileExtensionAttributeByName retrieves details of a Mobile Extension Attribute by its name.

  • POST /JSSResource/mobiledeviceextensionattributes/id/0 CreateMobileExtensionAttribute creates a new Mobile Extension Attribute. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/mobiledeviceextensionattributes/id/{id} UpdateMobileExtensionAttributeByID updates an existing Mobile Extension Attribute by its ID.

  • PUT /JSSResource/mobiledeviceextensionattributes/name/{name} UpdateMobileExtensionAttributeByName updates an existing Mobile Extension Attribute by its name.

  • DELETE /JSSResource/mobiledeviceextensionattributes/id/{id} DeleteMobileExtensionAttributeByID deletes a Mobile Extension Attribute by its ID.

  • DELETE /JSSResource/mobiledeviceextensionattributes/name/{name} DeleteMobileExtensionAttributeByName deletes a Mobile Extension Attribute by its name.

Jamf Pro Classic API - Mobile Device Enrollment Profiles

This documentation outlines the API endpoints available for managing Mobile Device Enrollment Profiles within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/mobiledeviceenrollmentprofiles GetMobileDeviceEnrollmentProfiles retrieves a serialized list of all Mobile Device Enrollment Profiles.

  • GET /JSSResource/mobiledeviceenrollmentprofiles/id/{id} GetMobileDeviceEnrollmentProfileByID fetches details of a single Mobile Device Enrollment Profile by its ID.

  • GET /JSSResource/mobiledeviceenrollmentprofiles/name/{name} GetMobileDeviceEnrollmentProfileByName retrieves details of a Mobile Device Enrollment Profile by its name.

  • GET /JSSResource/mobiledeviceenrollmentprofiles/invitation/{invitation} GetProfileByInvitation fetches a Mobile Device Enrollment Profile by its invitation.

  • GET /JSSResource/mobiledeviceenrollmentprofiles/id/{id}/subset/{subset} GetMobileDeviceEnrollmentProfileByIDBySubset fetches a specific Mobile Device Enrollment Profile by its ID and a specified subset.

  • GET /JSSResource/mobiledeviceenrollmentprofiles/name/{name}/subset/{subset} GetMobileDeviceEnrollmentProfileByNameBySubset fetches a specific Mobile Device Enrollment Profile by its name and a specified subset.

  • POST /JSSResource/mobiledeviceenrollmentprofiles/id/0 CreateMobileDeviceEnrollmentProfile creates a new Mobile Device Enrollment Profile. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/mobiledeviceenrollmentprofiles/id/{id} UpdateMobileDeviceEnrollmentProfileByID updates an existing Mobile Device Enrollment Profile by its ID.

  • PUT /JSSResource/mobiledeviceenrollmentprofiles/name/{name} UpdateMobileDeviceEnrollmentProfileByName updates an existing Mobile Device Enrollment Profile by its name.

  • PUT /JSSResource/mobiledeviceenrollmentprofiles/invitation/{invitation} UpdateMobileDeviceEnrollmentProfileByInvitation updates an existing Mobile Device Enrollment Profile by its invitation.

  • DELETE /JSSResource/mobiledeviceenrollmentprofiles/id/{id} DeleteMobileDeviceEnrollmentProfileByID deletes a Mobile Device Enrollment Profile by its ID.

  • DELETE /JSSResource/mobiledeviceenrollmentprofiles/name/{name} DeleteMobileDeviceEnrollmentProfileByName deletes a Mobile Device Enrollment Profile by its name.

  • DELETE /JSSResource/mobiledeviceenrollmentprofiles/invitation/{invitation} DeleteMobileDeviceEnrollmentProfileByInvitation deletes a Mobile Device Enrollment Profile by its invitation.

Jamf Pro Classic API - Printers

This documentation outlines the API endpoints available for managing printers within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/printers GetPrinters retrieves a serialized list of all printers.

  • GET /JSSResource/printers/id/{id} GetPrinterByID fetches details of a single printer by its ID.

  • GET /JSSResource/printers/name/{name} GetPrinterByName retrieves details of a printer by its name.

  • POST /JSSResource/printers/id/0 CreatePrinters creates a new printer. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/printers/id/{id} UpdatePrinterByID updates an existing printer by its ID.

  • PUT /JSSResource/printers/name/{name} UpdatePrinterByName updates an existing printer by its name.

  • DELETE /JSSResource/printers/id/{id} DeletePrinterByID deletes a printer by its ID.

  • DELETE /JSSResource/printers/name/{name} DeletePrinterByName deletes a printer by its name.

Jamf Pro Classic API - Network Segments

This documentation outlines the API endpoints available for managing Network Segments within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/networksegments GetNetworkSegments retrieves a serialized list of all Network Segments.

  • GET /JSSResource/networksegments/id/{id} GetNetworkSegmentByID fetches details of a single Network Segment by its ID.

  • GET /JSSResource/networksegments/name/{name} GetNetworkSegmentByName retrieves details of a Network Segment by its name.

  • POST /JSSResource/networksegments/id/0 CreateNetworkSegment creates a new Network Segment. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/networksegments/id/{id} UpdateNetworkSegmentByID updates an existing Network Segment by its ID.

  • PUT /JSSResource/networksegments/name/{name} UpdateNetworkSegmentByName updates an existing Network Segment by its name.

  • DELETE /JSSResource/networksegments/id/{id} DeleteNetworkSegmentByID deletes a Network Segment by its ID.

  • DELETE /JSSResource/networksegments/name/{name} DeleteNetworkSegmentByName deletes a Network Segment by its name.

Jamf Pro Classic API - Mobile Device Groups

This documentation outlines the API endpoints available for managing Mobile Device Groups within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/mobiledevicegroups GetMobileDeviceGroups retrieves a serialized list of all Mobile Device Groups.

  • GET /JSSResource/mobiledevicegroups/id/{id} GetMobileDeviceGroupByID fetches details of a single Mobile Device Group by its ID.

  • GET /JSSResource/mobiledevicegroups/name/{name} GetMobileDeviceGroupByName retrieves details of a Mobile Device Group by its name.

  • POST /JSSResource/mobiledevicegroups/id/0 CreateMobileDeviceGroup creates a new Mobile Device Group. The ID 0 in the endpoint indicates creation.

  • PUT /JSSResource/mobiledevicegroups/id/{id} UpdateMobileDeviceGroupByID updates an existing Mobile Device Group by its ID.

  • PUT /JSSResource/mobiledevicegroups/name/{name} UpdateMobileDeviceGroupByName updates an existing Mobile Device Group by its name.

  • DELETE /JSSResource/mobiledevicegroups/id/{id} DeleteMobileDeviceGroupByID deletes a Mobile Device Group by its ID.

  • DELETE /JSSResource/mobiledevicegroups/name/{name} DeleteMobileDeviceGroupByName deletes a Mobile Device Group by its name.

Jamf Pro Classic API - Mobile Device Provisioning Profiles

This documentation outlines the API endpoints available for managing Mobile Device Provisioning Profiles within Jamf Pro using the Classic API, which supports XML data structures.

Endpoints

  • GET /JSSResource/mobiledeviceprovisioningprofiles GetMobileDeviceProvisioningProfiles retrieves a serialized list of all Mobile Device Provisioning Profiles.

  • GET /JSSResource/mobiledeviceprovisioningprofiles/id/{id} GetMobileDeviceProvisioningProfileByID fetches a specific Mobile Device Provisioning Profile by its ID.

  • GET /JSSResource/mobiledeviceprovisioningprofiles/name/{name} GetMobileDeviceProvisioningProfileByName fetches a specific Mobile Device Provisioning Profile by its name.

  • GET /JSSResource/mobiledeviceprovisioningprofiles/uuid/{uuid} GetMobileDeviceProvisioningProfileByUUID fetches a specific Mobile Device Provisioning Profile by its UUID.

  • POST /JSSResource/mobiledeviceprovisioningprofiles/id/{id} CreateMobileDeviceProvisioningProfileByID creates a new Mobile Device Provisioning Profile by its ID.

  • POST /JSSResource/mobiledeviceprovisioningprofiles/name/{name} CreateMobileDeviceProvisioningProfileByName creates a new Mobile Device Provisioning Profile by its name.

  • POST /JSSResource/mobiledeviceprovisioningprofiles/uuid/{uuid} CreateMobileDeviceProvisioningProfileByUUID creates a new Mobile Device Provisioning Profile by its UUID.

  • PUT /JSSResource/mobiledeviceprovisioningprofiles/id/{id} UpdateMobileDeviceProvisioningProfileByID updates an existing Mobile Device Provisioning Profile by its ID.

  • PUT /JSSResource/mobiledeviceprovisioningprofiles/name/{name} UpdateMobileDeviceProvisioningProfileByName updates an existing Mobile Device Provisioning Profile by its name.

  • PUT /JSSResource/mobiledeviceprovisioningprofiles/uuid/{uuid} UpdateMobileDeviceProvisioningProfileByUUID updates an existing Mobile Device Provisioning Profile by its UUID.

  • DELETE /JSSResource/mobiledeviceprovisioningprofiles/id/{id} DeleteMobileDeviceProvisioningProfileByID deletes a Mobile Device Provisioning Profile by its ID.

  • DELETE /JSSResource/mobiledeviceprovisioningprofiles/name/{name} DeleteMobileDeviceProvisioningProfileByName deletes a Mobile Device Provisioning Profile by its name.

  • DELETE /JSSResource/mobiledeviceprovisioningprofiles/uuid/{uuid} DeleteMobileDeviceProvisioningProfileByUUID deletes a Mobile Device Provisioning Profile by its UUID.

Jamf Pro API - Buildings

This documentation outlines the API endpoints available for managing Buildings within Jamf Pro using the API, which supports JSON data structures.

Endpoints

  • GET /api/v1/buildings GetBuildings retrieves a serialized list of all buildings.

  • GET /api/v1/buildings/{id} GetBuildingByID fetches a specific building by its ID.

  • GET /api/v1/buildings/{id}/history GetBuildingResourceHistoryByID retrieves the resource history of a specific building by its ID.

  • POST /api/v1/buildings CreateBuilding creates a new building.

  • PUT /api/v1/buildings/{id} UpdateBuildingByID updates an existing building by its ID.

  • POST /api/v1/buildings/{id}/history CreateBuildingResourceHistoryByID updates the resource history of a building by its ID.

  • DELETE /api/v1/buildings/{id} DeleteBuildingByID deletes a building by its ID.

  • POST /api/v1/buildings/delete-multiple DeleteMultipleBuildingsByID deletes multiple buildings by their IDs.

  • POST /api/v1/buildings/{id}/history/export

Progress Summary

  • Total Endpoints: 377
  • Covered: 358
  • Not Covered: 19
  • Partially Covered: 0

Notes

  • No preview api endpoints will be covered by this sdk. Only generally available endpoints will be covered.

Directories

Path Synopsis
examples
main_delete_by_id.go
main_delete_by_name.go
certificate_authority/GetActiveCertificateAuthority
get_active_certificate_authority_main.go
get_active_certificate_authority_main.go
migration
jamfpro
jcds2.go Jamf Pro Api Work in progress.
jcds2.go Jamf Pro Api Work in progress.
sdk
http_client
http_client.go
http_client.go
jamfpro
classicapi_computer_extension_attributes.go Jamf Pro Classic Api - Computer Extension Attributes api reference: https://developer.jamf.com/jamf-pro/reference/computerextensionattributes Classic API requires the structs to support an XML data structure.
classicapi_computer_extension_attributes.go Jamf Pro Classic Api - Computer Extension Attributes api reference: https://developer.jamf.com/jamf-pro/reference/computerextensionattributes Classic API requires the structs to support an XML data structure.
utils
utilities.go For utility/helper functions to support the jamf pro package
utilities.go For utility/helper functions to support the jamf pro package
tools

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL