Jamf
56 min
the jamf connector facilitates the integration of jamf's device management capabilities with swimlane's security automation platform, enabling streamlined management and security enforcement for apple devices jamf is a comprehensive enterprise management software for the apple platform, simplifying it management for mac, ipad, iphone, and apple tv the jamf turbine connector enables seamless integration with swimlane turbine, allowing users to automate device enrollment, policy creation, and management tasks by leveraging this connector, security teams can efficiently manage and secure their apple device fleet, enforce compliance policies, and respond to incidents with automated workflows prerequisites to effectively utilize the jamf connector with swimlane, ensure you have the following prerequisites oauth 2 0 client credentials for secure authentication, which include url the base url for your jamf instance client id your specific client identifier for api access client secret a confidential secret key paired with your client id for authentication http basic authentication, which requires username your jamf account username password the password associated with your jamf account subdomain the unique subdomain of your jamf instance capabilities the jamf connector provides the following capabilities enroll/create computers create policy delete computer delete policy find computer by id find policy by id get info about mdm commands made by jamf list computers list policies post a command for creation and queuing update computer update policy additional information about capabilities when creating a new policy or enrolling a new computer, id's are always one more than the previous computer or policy attempting to use a higher number will result in the id being the next number in the sequence regardless they cannot be renumbered and even if a computer or policy has been deleted, that id remains unavailable id, udid, and serial number must all be unique for each computer name must be unique for each policy configurations http basic authentication authenticates using username and password configuration parameters parameter description type required username username string required password password string required subdomain subdomain of jamf string required verify ssl verify ssl certificate boolean optional http proxy a proxy to route requests through string optional oauth 2 0 client credentials authenticates using oauth 2 0 client credentials configuration parameters parameter description type required url a url to the target host string required token url string optional client id the client id string required client secret the client secret string required verify ssl verify ssl certificate boolean optional http proxy a proxy to route requests through string optional actions create computer enrolls a new computer in jamf by providing the necessary path parameters and data body endpoint url /computers/id/{{id}} method post input argument name type required description data body object required response data computer object required parameter for create computer general object required parameter for create computer name string required name of the resource managed string optional parameter for create computer username string optional name of the resource management password string optional parameter for create computer model string optional parameter for create computer mac address string optional parameter for create computer udid string required unique identifier serial number string required parameter for create computer id number required unique identifier output parameter type description status code number http status code of the response reason string response reason phrase computer object output field computer id string unique identifier example \[ { "status code" 201, "response headers" { "date" "mon, 16 oct 2023 13 02 35 gmt", "content type" "text/xml;charset=utf 8", "transfer encoding" "chunked", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "computer" {} } } ] create policy creates a new policy in jamf using the specified id, requiring both path parameters and data body inputs endpoint url /policies/id/{{id}} method post input argument name type required description data body object required response data policy object required parameter for create policy general object required parameter for create policy name string required name of the resource enabled boolean optional parameter for create policy trigger string optional parameter for create policy trigger checkin boolean optional parameter for create policy trigger enrollment complete boolean optional parameter for create policy trigger login boolean optional parameter for create policy trigger logout boolean optional parameter for create policy trigger network state changed boolean optional parameter for create policy trigger startup boolean optional parameter for create policy trigger other string optional parameter for create policy frequency string optional parameter for create policy location user only boolean optional parameter for create policy offline boolean optional parameter for create policy network limitations object optional parameter for create policy minimum network connection string optional parameter for create policy any ip address boolean optional parameter for create policy network requirements string optional parameter for create policy id number required unique identifier output parameter type description status code number http status code of the response reason string response reason phrase policy object output field policy id string unique identifier example \[ { "status code" 201, "response headers" { "date" "mon, 16 oct 2023 16 51 41 gmt", "content type" "text/xml;charset=utf 8", "transfer encoding" "chunked", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "policy" {} } } ] delete computer removes a specified computer from the jamf system using its unique id endpoint url /computers/id/{{id}} method delete input argument name type required description id number required unique identifier output parameter type description status code number http status code of the response reason string response reason phrase computer object output field computer id string unique identifier example \[ { "status code" 200, "response headers" { "date" "mon, 16 oct 2023 13 21 51 gmt", "content type" "text/xml;charset=utf 8", "transfer encoding" "chunked", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "computer" {} } } ] delete policy removes a specified policy from jamf using the unique identifier (id) provided as a path parameter endpoint url /policies/id/{{id}} method delete input argument name type required description id number required unique identifier output parameter type description status code number http status code of the response reason string response reason phrase policy object output field policy id string unique identifier example \[ { "status code" 200, "response headers" { "date" "mon, 16 oct 2023 17 08 40 gmt", "content type" "text/xml;charset=utf 8", "transfer encoding" "chunked", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "policy" {} } } ] find computer by id retrieve detailed information for a computer within jamf using its unique identifier endpoint url computers/id/{{id}} method get input argument name type required description id number required unique identifier output parameter type description status code number http status code of the response reason string response reason phrase computer object output field computer general object output field general id number unique identifier name string name of the resource network adapter type string type of the resource mac address string output field mac address alt network adapter type string type of the resource alt mac address string output field alt mac address ip address string output field ip address last reported ip string output field last reported ip serial number string output field serial number udid string unique identifier jamf version string output field jamf version platform string output field platform barcode 1 string output field barcode 1 barcode 2 string output field barcode 2 asset tag string output field asset tag remote management object output field remote management managed boolean output field managed management username string name of the resource management password sha256 string output field management password sha256 supervised boolean output field supervised mdm capable boolean output field mdm capable example \[ { "status code" 200, "response headers" { "date" "mon, 16 oct 2023 13 08 14 gmt", "content type" "text/plain;charset=utf 8", "content length" "3203", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "computer" {} } } ] find policy by id locate a specific policy within jamf using the unique identifier (id) provided as a path parameter endpoint url /policies/id/{{id}} method get input argument name type required description id number required unique identifier output parameter type description status code number http status code of the response reason string response reason phrase policy object output field policy general object output field general id number unique identifier name string name of the resource enabled boolean output field enabled trigger string output field trigger trigger checkin boolean output field trigger checkin trigger enrollment complete boolean output field trigger enrollment complete trigger login boolean output field trigger login trigger network state changed boolean output field trigger network state changed trigger startup boolean output field trigger startup trigger other string output field trigger other frequency string output field frequency retry event string output field retry event retry attempts number output field retry attempts notify on each failed retry boolean output field notify on each failed retry location user only boolean output field location user only target drive string output field target drive offline boolean output field offline category object output field category id number unique identifier name string name of the resource date time limitations object output field date time limitations example \[ { "status code" 200, "response headers" { "date" "mon, 16 oct 2023 17 00 07 gmt", "content type" "text/plain;charset=utf 8", "content length" "2948", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "policy" {} } } ] get info about mdm commands made by jamf retrieve details on mdm commands issued through jamf pro, including their statuses and associated devices endpoint url api/v2/mdm/commands method get input argument name type required description page number optional the page number to retrieve page size number optional the number of items to return per page sort string optional the field to sort by, with optional direction filter string optional query in the rsql format, allowing to filter, for a list of commands all url must contain minimum one filter field fields allowed in the query is uuid, clientmanagementid, command, status, clienttype, datesent, validafter, datecompleted, profileid, profileidentifier, and actives output parameter type description status code number http status code of the response reason string response reason phrase totalcount number count value results array result of the operation uuid string unique identifier datesent string output field datesent client object output field client managementid string unique identifier clienttype string type of the resource commandstate string output field commandstate commandtype string type of the resource example \[ { "status code" 200, "response headers" {}, "reason" "ok", "json body" { "totalcount" 1, "results" \[] } } ] list computer retrieve a list of all computers managed by jamf, including details such as device specifications and status endpoint url /computers method get output parameter type description status code number http status code of the response reason string response reason phrase computers array output field computers id number unique identifier name string name of the resource example \[ { "status code" 200, "response headers" { "date" "mon, 16 oct 2023 13 05 36 gmt", "content type" "text/plain;charset=utf 8", "content length" "1067", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "computers" \[] } } ] list policies retrieve a comprehensive list of all policies available within the jamf platform endpoint url /policies method get output parameter type description status code number http status code of the response reason string response reason phrase policies array output field policies id number unique identifier name string name of the resource example \[ { "status code" 200, "response headers" { "date" "mon, 16 oct 2023 17 02 04 gmt", "content type" "text/plain;charset=utf 8", "content length" "564", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "policies" \[] } } ] post a command for creation and queuing creates and queues an mdm command with the specified 'commanddata' for devices in jamf requires separate privileges per device type and command endpoint url api/v2/mdm/commands method post input argument name type required description commanddata object required response data commandtype string required the type of command to be sent this must be one of the supported mdm commands clientdata array optional an array of client data objects each object should contain a managementid for the device to which the command will be sent managementid string optional unique identifier output parameter type description status code number http status code of the response reason string response reason phrase example \[ { "status code" 200, "response headers" {}, "reason" "ok", "json body" \[ {} ] } ] update computer modifies the attributes of a specified computer within jamf by providing its unique id and updated data body endpoint url /computers/id/{{id}} method put input argument name type required description id number required unique identifier data body object required response data computer object required parameter for update computer general object optional parameter for update computer name string optional name of the resource managed string optional parameter for update computer username string optional name of the resource management password string optional parameter for update computer model string optional parameter for update computer mac address string optional parameter for update computer udid string optional unique identifier serial number string optional parameter for update computer output parameter type description status code number http status code of the response reason string response reason phrase response text string output field response text example \[ { "status code" 201, "response headers" { "date" "fri, 13 oct 2023 17 23 41 gmt", "content type" "text/html;charset=utf 8", "content length" "439", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;", "set cookie" "jpro ingress=595d0f1f6e37ed1f; path=/; httponly" }, "reason" "ok", "response text" "updated" } ] update policy updates an existing jamf policy using the specified id provided in the path parameters endpoint url /policies/id/{{id}} method put input argument name type required description data body object required response data policy object required parameter for update policy general object optional parameter for update policy name string optional name of the resource enabled boolean optional parameter for update policy trigger string optional parameter for update policy trigger checkin boolean optional parameter for update policy trigger enrollment complete boolean optional parameter for update policy trigger login boolean optional parameter for update policy trigger logout boolean optional parameter for update policy trigger network state changed boolean optional parameter for update policy trigger startup boolean optional parameter for update policy trigger other string optional parameter for update policy frequency string optional parameter for update policy location user only boolean optional parameter for update policy offline boolean optional parameter for update policy network limitations object optional parameter for update policy minimum network connection string optional parameter for update policy any ip address boolean optional parameter for update policy network requirements string optional parameter for update policy id number required unique identifier output parameter type description status code number http status code of the response reason string response reason phrase policy object output field policy id string unique identifier example \[ { "status code" 201, "response headers" { "date" "mon, 16 oct 2023 17 04 23 gmt", "content type" "text/xml;charset=utf 8", "transfer encoding" "chunked", "connection" "keep alive", "x frame options" "deny", "x content type options" "nosniff", "cache control" "no store, no cache, must revalidate, max age=0, post check=0, pre check=0", "permissions policy" "geolocation=(), fullscreen=(self)", "referrer policy" "strict origin when cross origin", "accept ranges" "bytes", "server" "jamf", "vary" "accept charset, accept encoding, accept language, accept", "x xss protection" "1; mode=block", "strict transport security" "max age=63072000; includesubdomains;" }, "reason" "", "json body" { "policy" {} } } ] response headers header description example accept ranges http response header accept ranges bytes cache control directives for caching mechanisms no store, no cache, must revalidate, max age=0, post check=0, pre check=0 connection http response header connection keep alive content length the length of the response body in bytes 439 content type the media type of the resource text/html;charset=utf 8 date the date and time at which the message was originated mon, 16 oct 2023 13 08 14 gmt permissions policy http response header permissions policy geolocation=(), fullscreen=(self) referrer policy http response header referrer policy strict origin when cross origin server information about the software used by the origin server jamf set cookie http response header set cookie jpro ingress=595d0f1f6e37ed1f; path=/; httponly strict transport security http response header strict transport security max age=63072000; includesubdomains; transfer encoding http response header transfer encoding chunked vary http response header vary accept charset, accept encoding, accept language, accept x content type options http response header x content type options nosniff x frame options http response header x frame options deny x xss protection http response header x xss protection 1; mode=block notes jamf documentation https //developer jamf com/jamf pro/reference/classic api