Jamf
55 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 notes https //developer jamf com/jamf pro/reference/classic api 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 data body computer object required response data data body computer general object required response data data body computer general name string required response data data body computer general managed string optional response data data body computer general username string optional response data data body computer general management password string optional response data data body computer general model string optional response data data body computer general mac address string optional response data data body computer general udid string required response data data body computer general serial number string required response data path parameters id number required parameters for the create computer action input example {"data body" {"computer" {"general" {"name" "test computer name 2","managed" "true","username" "test user 2","management password" "sample12","model" "13 inch macbook pro (mid 2016)","mac address" "e0\ ac\ cb 97 36\ g4","udid" "55900bdc 347c 58b1 d249 f32244b11d47","serial number" "c02q7khtgfwq"}}},"path parameters" {"id" 42}} output parameter type description status code number http status code of the response reason string response reason phrase computer object output field computer computer id string unique identifier output 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, a 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 data body policy object required response data data body policy general object required response data data body policy general name string required response data data body policy general enabled boolean optional response data data body policy general trigger string optional response data data body policy general trigger checkin boolean optional response data data body policy general trigger enrollment complete boolean optional response data data body policy general trigger login boolean optional response data data body policy general trigger logout boolean optional response data data body policy general trigger network state changed boolean optional response data data body policy general trigger startup boolean optional response data data body policy general trigger other string optional response data data body policy general frequency string optional response data data body policy general location user only boolean optional response data data body policy general offline boolean optional response data data body policy general network limitations object optional response data data body policy general network limitations minimum network connection string optional response data data body policy general network limitations any ip address boolean optional response data data body policy general network requirements string optional response data path parameters id number required parameters for the create policy action input example {"data body" {"policy" {"general" {"name" "disk encryption test 1","enabled"\ true,"trigger" "once per computer","trigger checkin"\ false,"trigger enrollment complete"\ false,"trigger login"\ false,"trigger logout"\ false,"trigger network state changed"\ false,"trigger startup"\ false,"trigger other" "beaconstatechange","frequency" "once per computer","location user only"\ false,"offline"\ false,"network limitations" {"minimum network connection" "no minimum","any ip address"\ true},"network requirements" "any"}}},"path parameters" {"id" 36}} output parameter type description status code number http status code of the response reason string response reason phrase policy object output field policy policy id string unique identifier output 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, a 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 path parameters id number required parameters for the delete computer action input example {"path parameters" {"id" 2}} output parameter type description status code number http status code of the response reason string response reason phrase computer object output field computer computer id string unique identifier output 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, a 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 path parameters id number required parameters for the delete policy action input example {"path parameters" {"id" 1}} output parameter type description status code number http status code of the response reason string response reason phrase policy object output field policy policy id string unique identifier output 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, a 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 path parameters id number required parameters for the find computer by id action input example {"path parameters" {"id" 1}} output parameter type description status code number http status code of the response reason string response reason phrase computer object output field computer computer general object output field computer general computer general id number unique identifier computer general name string name of the resource computer general network adapter type string type of the resource computer general mac address string output field computer general mac address computer general alt network adapter type string type of the resource computer general alt mac address string output field computer general alt mac address computer general ip address string output field computer general ip address computer general last reported ip string output field computer general last reported ip computer general serial number string output field computer general serial number computer general udid string unique identifier computer general jamf version string output field computer general jamf version computer general platform string output field computer general platform computer general barcode 1 string output field computer general barcode 1 computer general barcode 2 string output field computer general barcode 2 computer general asset tag string output field computer general asset tag computer general remote management object output field computer general remote management computer general remote management managed boolean output field computer general remote management managed computer general remote management management username string name of the resource computer general remote management management password sha256 string output field computer general remote management management password sha256 computer general supervised boolean output field computer general supervised computer general mdm capable boolean output field computer general mdm capable output 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, accep 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 path parameters id number required parameters for the find policy by id action input example {"path parameters" {"id" 36}} output parameter type description status code number http status code of the response reason string response reason phrase policy object output field policy policy general object output field policy general policy general id number unique identifier policy general name string name of the resource policy general enabled boolean output field policy general enabled policy general trigger string output field policy general trigger policy general trigger checkin boolean output field policy general trigger checkin policy general trigger enrollment complete boolean output field policy general trigger enrollment complete policy general trigger login boolean output field policy general trigger login policy general trigger network state changed boolean output field policy general trigger network state changed policy general trigger startup boolean output field policy general trigger startup policy general trigger other string output field policy general trigger other policy general frequency string output field policy general frequency policy general retry event string output field policy general retry event policy general retry attempts number output field policy general retry attempts policy general notify on each failed retry boolean output field policy general notify on each failed retry policy general location user only boolean output field policy general location user only policy general target drive string output field policy general target drive policy general offline boolean output field policy general offline policy general category object output field policy general category policy general category id number unique identifier policy general category name string name of the resource policy general date time limitations object output field policy general date time limitations output 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, accep 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 parameters page number optional the page number to retrieve parameters page size number optional the number of items to return per page parameters sort string optional the field to sort by, with optional direction parameters 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 input example {"parameters" {"page" 0,"page size" 10,"sort" "datesent\ asc","filter" "status==pending"}} 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 results uuid string unique identifier results datesent string result of the operation results client object result of the operation results client managementid string unique identifier results client clienttype string type of the resource results commandstate string result of the operation results commandtype string type of the resource output 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 computers id number unique identifier computers name string name of the resource output 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, accep 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 policies id number unique identifier policies name string name of the resource output 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 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 optional response data commanddata 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 clientdata managementid string optional response data input example {"json body" {"commanddata" {"commandtype" "apply redemption code"},"clientdata" \[{"managementid" "test"}]}} output parameter type description status code number http status code of the response reason string response reason phrase output example {"status code" 200,"response headers" {},"reason" "ok","json body" \[{"id" "1","href" "https //yourjamfprourl jamf/api/v1/resource/1"}]} 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 path parameters id number required parameters for the update computer action data body object required response data data body computer object required response data data body computer general object optional response data data body computer general name string optional response data data body computer general managed string optional response data data body computer general username string optional response data data body computer general management password string optional response data data body computer general model string optional response data data body computer general mac address string optional response data data body computer general udid string optional response data data body computer general serial number string optional response data input example {"path parameters" {"id" 40},"data body" {"computer" {"general" {"name" "test computer name update","managed" "true","username" "laura","management password" "sample","model" "13 inch macbook pro (mid 2016)","mac address" "e0\ ac\ cb 97 36\ g4","udid" "55900bdc 347c 58b1 d249 f32244b11d59","serial number" "c02q7khtgfwa"}}}} 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 output 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=blo 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 data body policy object required response data data body policy general object optional response data data body policy general name string optional response data data body policy general enabled boolean optional response data data body policy general trigger string optional response data data body policy general trigger checkin boolean optional response data data body policy general trigger enrollment complete boolean optional response data data body policy general trigger login boolean optional response data data body policy general trigger logout boolean optional response data data body policy general trigger network state changed boolean optional response data data body policy general trigger startup boolean optional response data data body policy general trigger other string optional response data data body policy general frequency string optional response data data body policy general location user only boolean optional response data data body policy general offline boolean optional response data data body policy general network limitations object optional response data data body policy general network limitations minimum network connection string optional response data data body policy general network limitations any ip address boolean optional response data data body policy general network requirements string optional response data path parameters id number required parameters for the update policy action input example {"data body" {"policy" {"general" {"name" "disk encryption test update","enabled"\ true,"trigger" "once per computer","trigger checkin"\ false,"trigger enrollment complete"\ false,"trigger login"\ false,"trigger logout"\ false,"trigger network state changed"\ false,"trigger startup"\ false,"trigger other" "beaconstatechange","frequency" "once per computer","location user only"\ false,"offline"\ false,"network limitations" {"minimum network connection" "no minimum","any ip address"\ true},"network requirements" "any"}}},"path parameters" {"id" 36}} output parameter type description status code number http status code of the response reason string response reason phrase policy object output field policy policy id string unique identifier output 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, a 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 564 content type the media type of the resource text/xml;charset=utf 8 date the date and time at which the message was originated mon, 16 oct 2023 13 02 35 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