Skip to content

Releases: deploymenttheory/go-api-sdk-jamfpro

v0.0.24

20 Oct 12:52
35adc96
Compare
Choose a tag to compare

Clean up of the http client and moving consts' to the jamfpro api caller

v0.0.23

15 Oct 08:19
a40e3c2
Compare
Choose a tag to compare

Simplified http client initialisation so that more options are handled directly within the jamf pro package -> shared_api_client.go. These can be over ridden if desired still from a caller package.

v0.0.22

14 Oct 16:24
e1ae4f6
Compare
Choose a tag to compare

Added error handling for validating the existence of the instance name in the http_client package and added validation for the existence of oauth credentials in the jamf pro package.

updated examples to handle client initialisation failures

v0.0.21

11 Oct 17:34
Compare
Choose a tag to compare

Initial commit and api coverage

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
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 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.
Activation Code - /JSSResource/activationcode
✅ GET /JSSResource/activationcode - GetActivationCode retrieves the current activation code.
✅ PUT /JSSResource/activationcode - UpdateActivationCode updates the activation code.
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
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.
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.
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.
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