Skip to content

Kandji-Community-SDKs/kandji-swift5-sdk

Repository files navigation

Swift5 API client for kandji_sdk

Welcome to the Kandji API Documentation

You can find your API URL in Settings > Access. The API URL will follow the below formats.

  • US - https://SubDomain.api.kandji.io

  • EU - https://SubDomain.api.eu.kandji.io

For information on how to obtain an API token, please refer to the following support article.

https://support.kandji.io/api

Rate Limit

The Kandji API currently has an API rate limit of 10,000 requests per hour per customer.

Request Methods

HTTP request methods supported by the Kandji API.

Method Definition
GET The GET method requests a representation of the specified resource.
POST The POST method submits an entity to the specified resource.
PATCH The PATCH method applies partial modifications to a resource.
DELETE The DELETE method deletes the specified resource.

Response codes

Not all response codes apply to every endpoint.

Code Response
200 OK
201 Created
204 No content
Typical response when sending the DELETE method.
400 Bad Request
"Command already running" - The command may already be running in a Pending state waiting on the device.
"Command is not allowed for current device" - The command may not be compatible with the target device.
"JSON parse error - Expecting ',' delimiter: line 3 column 2 (char 65)"
401 Unauthorized
This error can occur if the token is incorrect, was revoked, or the token has expired.
403 Forbidden
The request was understood but cannot be authorized.
404 Not found
Unable to locate the resource in the Kandji tenant.
415 Unsupported Media Type
The request contains a media type which the server or resource does not support.
500 Internal server error
503 Service unavailable
This error can occur if a file upload is still being processed via the custom apps API.

Data structure

The API returns all structured responses in JSON schema format.

Examples

Code examples using the API can be found in the Kandji support GitHub.

Overview

This API client was generated by the OpenAPI Generator project. By using the openapi-spec from a remote server, you can easily generate an API client.

Installation

Carthage

Run carthage update

CocoaPods

Run pod install

Documentation for API Endpoints

All URIs are relative to https://<sub_domain>.api.kandji.io

Class Method HTTP request Description
AutomatedDeviceEnrollmentIntegrationsAPI createAdeIntegration POST /api/v1/integrations/apple/ade/ Create ADE integration
AutomatedDeviceEnrollmentIntegrationsAPI deleteAdeIntegration DELETE /api/v1/integrations/apple/ade/{ade_token_id} Delete ADE integration
AutomatedDeviceEnrollmentIntegrationsAPI downloadAdePublicKey GET /api/v1/integrations/apple/ade/public_key/ Download ADE public key
AutomatedDeviceEnrollmentIntegrationsAPI getAdeDevice GET /api/v1/integrations/apple/ade/devices/{device_id} Get ADE device
AutomatedDeviceEnrollmentIntegrationsAPI getAdeIntegration GET /api/v1/integrations/apple/ade/{ade_token_id} Get ADE integration
AutomatedDeviceEnrollmentIntegrationsAPI listAdeDevices GET /api/v1/integrations/apple/ade/devices List ADE devices
AutomatedDeviceEnrollmentIntegrationsAPI listAdeIntegrations GET /api/v1/integrations/apple/ade List ADE integrations
AutomatedDeviceEnrollmentIntegrationsAPI listDevicesAssociatedToAdeToken GET /api/v1/integrations/apple/ade/{ade_token_id}/devices List devices associated to ADE token
AutomatedDeviceEnrollmentIntegrationsAPI renewAdeIntegration POST /api/v1/integrations/apple/ade/{ade_token_id}/renew Renew ADE integration
AutomatedDeviceEnrollmentIntegrationsAPI updateAdeDevice PATCH /api/v1/integrations/apple/ade/devices/{device_id} Update ADE device
AutomatedDeviceEnrollmentIntegrationsAPI updateAdeIntegration PATCH /api/v1/integrations/apple/ade/{ade_token_id} Update ADE integration
BlueprintsAPI assignLibraryItem POST /api/v1/blueprints/{blueprint_id}/assign-library-item Assign Library Item
BlueprintsAPI createBlueprint POST /api/v1/blueprints Create Blueprint
BlueprintsAPI deleteBlueprint DELETE /api/v1/blueprints/{blueprint_id} Delete Blueprint
BlueprintsAPI getBlueprint GET /api/v1/blueprints/{blueprint_id} Get Blueprint
BlueprintsAPI getBlueprintTemplates GET /api/v1/blueprints/templates/ Get Blueprint Templates
BlueprintsAPI getManualEnrollmentProfile GET /api/v1/blueprints/{blueprint_id}/ota-enrollment-profile Get Manual Enrollment Profile
BlueprintsAPI listBlueprints GET /api/v1/blueprints List Blueprints
BlueprintsAPI listLibraryItems GET /api/v1/blueprints/{blueprint_id}/list-library-items List Library Items
BlueprintsAPI removeLibraryItem POST /api/v1/blueprints/{blueprint_id}/remove-library-item Remove Library Item
BlueprintsAPI updateBlueprint PATCH /api/v1/blueprints/{blueprint_id} Update Blueprint
CustomAppsAPI createCustomApp POST /api/v1/library/custom-apps Create Custom App
CustomAppsAPI deleteCustomApp DELETE /api/v1/library/custom-apps/{library_item_id} Delete Custom App
CustomAppsAPI getCustomApp GET /api/v1/library/custom-apps/{library_item_id} Get Custom App
CustomAppsAPI listCustomApps GET /api/v1/library/custom-apps List Custom Apps
CustomAppsAPI updateCustomApp PATCH /api/v1/library/custom-apps/{library_item_id} Update Custom App
CustomAppsAPI uploadCustomApp POST /api/v1/library/custom-apps/upload Upload Custom App
CustomProfilesAPI createCustomProfile POST /api/v1/library/custom-profiles Create Custom Profile
CustomProfilesAPI deleteCustomProfile DELETE /api/v1/library/custom-profiles/{library_item_id} Delete Custom Profile
CustomProfilesAPI getCustomProfile GET /api/v1/library/custom-profiles/{library_item_id} Get Custom Profile
CustomProfilesAPI listCustomProfiles GET /api/v1/library/custom-profiles List Custom Profiles
CustomProfilesAPI updateCustomProfile PATCH /api/v1/library/custom-profiles/{library_item_id} Update Custom Profile
CustomScriptsAPI createCustomScript POST /api/v1/library/custom-scripts Create Custom Script
CustomScriptsAPI deleteCustomScript DELETE /api/v1/library/custom-scripts/{library_item_id} Delete Custom Script
CustomScriptsAPI getCustomScript GET /api/v1/library/custom-scripts/{library_item_id} Get Custom Script
CustomScriptsAPI listCustomScripts GET /api/v1/library/custom-scripts List Custom Scripts
CustomScriptsAPI updateCustomScript PATCH /api/v1/library/custom-scripts/{library_item_id} Update Custom Script
DeviceActionsAPI clearPasscode POST /api/v1/devices/{device_id}/action/clearpasscode Clear Passcode
DeviceActionsAPI deleteDevice DELETE /api/v1/devices/{device_id} Delete Device
DeviceActionsAPI deleteUser POST /api/v1/devices/{device_id}/action/deleteuser Delete User
DeviceActionsAPI eraseDevice POST /api/v1/devices/{device_id}/action/erase Erase Device
DeviceActionsAPI getDeviceCommands GET /api/v1/devices/{device_id}/commands Get Device Commands
DeviceActionsAPI lockDevice POST /api/v1/devices/{device_id}/action/lock Lock Device
DeviceActionsAPI reinstallAgent POST /api/v1/devices/{device_id}/action/reinstallagent Reinstall Agent
DeviceActionsAPI remoteDesktop POST /api/v1/devices/{device_id}/action/remotedesktop Remote Desktop
DeviceActionsAPI renewMdmProfile POST /api/v1/devices/{device_id}/action/renewmdmprofile Renew MDM Profile
DeviceActionsAPI restartDevice POST /api/v1/devices/{device_id}/action/restart Restart Device
DeviceActionsAPI sendBlankpush POST /api/v1/devices/{device_id}/action/blankpush Send Blankpush
DeviceActionsAPI setName POST /api/v1/devices/{device_id}/action/setname Set Name
DeviceActionsAPI shutdown POST /api/v1/devices/{device_id}/action/shutdown Shutdown
DeviceActionsAPI unlockAccount POST /api/v1/devices/{device_id}/action/unlockaccount Unlock Account
DeviceActionsAPI updateInventory POST /api/v1/devices/{device_id}/action/updateinventory Update Inventory
DeviceInformationAPI cancelLostMode DELETE /api/v1/devices/{device_id}/details/lostmode Cancel Lost Mode
DeviceInformationAPI getDeviceActivity GET /api/v1/devices/{device_id}/activity Get Device Activity
DeviceInformationAPI getDeviceApps GET /api/v1/devices/{device_id}/apps Get Device Apps
DeviceInformationAPI getDeviceDetails GET /api/v1/devices/{device_id}/details Get Device Details
DeviceInformationAPI getDeviceLibraryItems GET /api/v1/devices/{device_id}/library-items Get Device Library Items
DeviceInformationAPI getDeviceLostModeDetails GET /api/v1/devices/{device_id}/details/lostmode Get Device Lost Mode details
DeviceInformationAPI getDeviceParameters GET /api/v1/devices/{device_id}/parameters Get Device Parameters
DeviceInformationAPI getDeviceStatus GET /api/v1/devices/{device_id}/status Get Device Status
DeviceInformationAPI listDevices GET /api/v1/devices List Devices
DeviceSecretsAPI getActivationLockBypassCode GET /api/v1/devices/{device_id}/secrets/bypasscode Get Activation Lock Bypass Code
DeviceSecretsAPI getFilevaultRecoveryKey GET /api/v1/devices/{device_id}/secrets/filevaultkey Get FileVault Recovery Key
DeviceSecretsAPI getRecoveryLockPassword GET /api/v1/devices/{device_id}/secrets/recoverypassword Get Recovery Lock Password
DeviceSecretsAPI getUnlockPin GET /api/v1/devices/{device_id}/secrets/unlockpin Get Unlock Pin
InHouseAppsAPI createInhouseApp POST /api/v1/library/ipa-apps Create In-House App
InHouseAppsAPI deleteInhouseApp DELETE /api/v1/library/ipa-apps/{library_item_id} Delete In-House App
InHouseAppsAPI getInhouseApp GET /api/v1/library/ipa-apps/{library_item_id} Get In-House App
InHouseAppsAPI listInhouseApps GET /api/v1/library/ipa-apps List In-House Apps
InHouseAppsAPI updateInhouseApp PATCH /api/v1/library/ipa-apps/{library_item_id} Update In-House App
InHouseAppsAPI uploadInhouseApp POST /api/v1/library/ipa-apps/upload Upload In-House App
InHouseAppsAPI uploadInhouseAppStatus GET /api/v1/library/ipa-apps/upload/{pending_upload_id}/status Upload In-House App Status
LibraryItemsAPI getLibraryItemActivity GET /api/v1/library/library-items/{library_item_id}/activity Get Library Item Activity
LibraryItemsAPI getLibraryItemStatuses GET /api/v1/library/library-items/{library_item_id}/status Get Library Item Statuses
LostModeAPI disableLostMode POST /api/v1/devices/{device_id}/action/disablelostmode Disable Lost Mode
LostModeAPI enableLostMode POST /api/v1/devices/{device_id}/action/enablelostmode Enable Lost Mode
LostModeAPI playLostModeSound POST /api/v1/devices/{device_id}/action/playlostmodesound Play Lost Mode Sound
LostModeAPI updateLocation POST /api/v1/devices/{device_id}/action/updatelocation Update Location
NotesAPI createDeviceNote POST /api/v1/devices/{device_id}/notes Create Device Note
NotesAPI deleteDeviceNote DELETE /api/v1/devices/{device_id}/notes/{note_id} Delete Device Note
NotesAPI getDeviceNotes GET /api/v1/devices/{device_id}/notes Get Device Notes
NotesAPI retrieveDeviceNote GET /api/v1/devices/{device_id}/notes/{note_id} Retrieve Device Note
NotesAPI updateDeviceNote PATCH /api/v1/devices/{device_id}/notes/{note_id} Update Device Note
PrismAPI activationLock GET /api/v1/prism/activation_lock Activation lock
PrismAPI applicationFirewall GET /api/v1/prism/application_firewall Application firewall
PrismAPI applications GET /api/v1/prism/apps Applications
PrismAPI certificates GET /api/v1/prism/certificates Certificates
PrismAPI count GET /api/v1/prism/count Count
PrismAPI desktopAndScreensaver GET /api/v1/prism/desktop_and_screensaver Desktop and Screensaver
PrismAPI deviceInformation GET /api/v1/prism/device_information Device information
PrismAPI filevault GET /api/v1/prism/filevault FileVault
PrismAPI gatekeeperAndXprotect GET /api/v1/prism/gatekeeper_and_xprotect Gatekeeper and XProtect
PrismAPI getCategoryExport GET /api/v1/prism/export/{export_id} Get category export
PrismAPI installedProfiles GET /api/v1/prism/installed_profiles Installed profiles
PrismAPI kernelExtensions GET /api/v1/prism/kernel_extensions Kernel Extensions
PrismAPI launchAgentsAndDaemons GET /api/v1/prism/launch_agents_and_daemons Launch Agents and Daemons
PrismAPI localUsers GET /api/v1/prism/local_users Local users
PrismAPI requestCategoryExport POST /api/v1/prism/export Request category export
PrismAPI startupSettings GET /api/v1/prism/startup_settings Startup settings
PrismAPI systemExtensions GET /api/v1/prism/system_extensions System Extensions
PrismAPI transparencyDatabase GET /api/v1/prism/transparency_database Transparency database
SelfServiceAPI listSelfServiceCategories GET /api/v1/self-service/categories List Self Service Categories
SettingsAPI licensing GET /api/v1/settings/licensing Licensing
TagsAPI createTag POST /api/v1/tags Create Tag
TagsAPI deleteTag DELETE /api/v1/tags/{tag_id} Delete Tag
TagsAPI getTags GET /api/v1/tags Get Tags
TagsAPI updateTag PATCH /api/v1/tags/{tag_id} Update Tag
ThreatsAPI getThreatDetails GET /api/v1/threat-details Get Threat Details
UsersAPI getUser GET /api/v1/users/{user_id} Get User
UsersAPI listUsers GET /api/v1/users List Users

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

bearer

  • Type: HTTP Bearer Token authentication (API Token)

How do I migrate from the Swift 5 generator to the swift 6 generator?

https://openapi-generator.tech/docs/faq-generators#how-do-i-migrate-from-the-swift-5-generator-to-the-swift-6-generator

How do I implement bearer token authentication with URLSession on the Swift 5 API client?

https://openapi-generator.tech/docs/faq-generators#how-do-i-implement-bearer-token-authentication-with-urlsession-on-the-swift-5-api-client

Author