{"openapi":"3.1.1","paths":{"/admins":{"get":{"description":"Return the list of admin users for your company. Each entry is either an employee (with an id) or an external user (identified by email only).","operationId":"getAdmins","parameters":[],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAdmins_Output"}}}}},"summary":"Get all admins","tags":["Admins"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/company":{"get":{"description":"Return the company associated with the API key. Only accessible with a Company API key.","operationId":"getMyCompany","parameters":[],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCompany_Output"}}}}},"summary":"Get the authenticated company","tags":["Company"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/workspace/companies":{"get":{"description":"Return the list of companies in your workspace. Only accessible with a Workspace API key.","operationId":"getCompanies","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCompanies_Output"}}}}},"summary":"Get all companies in the workspace","tags":["Workspace"],"x-primo-access-level":"read","x-primo-access-scope":["workspace"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Workspace","className":"badge-workspace","color":"#6366F1"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-workspace\">Scope: Workspace</span>"}}},"/workspace/companies/{companyId}":{"get":{"description":"Return the company details for the given company ID. Only accessible with a Workspace API key.","operationId":"getCompany","parameters":[{"name":"companyId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCompany_Output"}}}}},"summary":"Get a company by ID","tags":["Workspace"],"x-primo-access-level":"read","x-primo-access-scope":["workspace"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Workspace","className":"badge-workspace","color":"#6366F1"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-workspace\">Scope: Workspace</span>"}}},"/devices":{"get":{"description":"Return the list of devices for your company.","operationId":"getDevices","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDevices_Output"}}}}},"summary":"Get all devices","tags":["Devices"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}},"post":{"description":"Create a new device in your company.","operationId":"createDevice","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeviceBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDevice_Output"}}}}},"summary":"Create a device","tags":["Devices"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/devices/{deviceId}":{"get":{"description":"Return the device details for the given device ID.","operationId":"getDevice","parameters":[{"name":"deviceId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDevice_Output"}}}}},"summary":"Get a device by ID","tags":["Devices"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}},"patch":{"description":"Update the device for the given device ID. Currently supports updating the device assignee (ownerId).","operationId":"updateDevice","parameters":[{"name":"deviceId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDevice_Output"}}}}},"summary":"Update a device","tags":["Devices"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/devices/{deviceId}/lock":{"post":{"description":"Lock the device for the given device ID.\n\n**Supported platforms:** macOS, Windows, Linux\n\n**Important:** The lock command will be executed the next time the device comes online.\n\n**Platform-specific behavior:**\n- **macOS**: Locks the device with a 6-digit PIN. The PIN is stored and can be retrieved via the unlock endpoint.\n- **Windows/Linux**: Locks the device without a PIN.\n\n**Not supported:** iOS, Android, Chrome OS","operationId":"lockDevice","parameters":[{"name":"deviceId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LockDevice_Output"}}}}},"summary":"Lock a device","tags":["Devices"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/devices/{deviceId}/unlock":{"post":{"description":"Unlock the device for the given device ID.\n\n**Supported platforms:** macOS, Windows, Linux\n\n**Platform-specific behavior:**\n- **macOS**: Returns the 6-digit unlock PIN that was generated during the lock operation. The user must enter this PIN manually on the device to unlock it.\n- **Windows/Linux**: Sends an unlock command to the device.\n\n**Not supported:** iOS, Android, Chrome OS","operationId":"unlockDevice","parameters":[{"name":"deviceId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnlockDevice_Output"}}}}},"summary":"Unlock a device","tags":["Devices"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/devices/{deviceId}/wipe":{"post":{"description":"Wipe the device for the given device ID.\n\n**Supported platforms:** macOS, iOS, Windows, Linux\n\n**Platform-specific behavior:**\n- **Windows**: Accepts optional `wipeType` parameter:\n  - `SOFT` (default): Attempts to wipe the device once. If it fails, the device reboots to its initial state.\n  - `HARD`: Attempts to wipe the device repeatedly until successful.\n    - ⚠️ **Warning:** If the wipe keeps failing, this can leave the device in an unusable state, requiring a reinstallation via USB key.\n- **macOS/iOS/Linux**: Performs a full device erase. The `wipeType` parameter is ignored.\n\n**Not supported:** Android, Chrome OS","operationId":"wipeDevice","parameters":[{"name":"deviceId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WipeDeviceBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WipeDevice_Output"}}}}},"summary":"Wipe a device","tags":["Devices"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/device-groups":{"get":{"description":"Return the list of device groups for your company (id, name).","operationId":"getDeviceGroups","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDeviceGroups_Output"}}}}},"summary":"Get all device groups","tags":["DeviceGroups"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/device-groups/{deviceGroupId}":{"get":{"description":"Return the device group with the targeted device IDs for the given device group ID.","operationId":"getDeviceGroup","parameters":[{"name":"deviceGroupId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDeviceGroup_Output"}}}}},"summary":"Get a device group by ID","tags":["DeviceGroups"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/employees":{"get":{"description":"Return the list of employees for your company.","operationId":"getEmployees","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetEmployees_Output"}}}}},"summary":"Get all employees","tags":["Employees"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}},"post":{"description":"Create a new employee in your company.","operationId":"createEmployee","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployeeBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetEmployee_Output"}}}}},"summary":"Create an employee","tags":["Employees"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/employees/{employeeId}":{"get":{"description":"Return the employee details for the given employee ID.","operationId":"getEmployee","parameters":[{"name":"employeeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetEmployee_Output"}}}}},"summary":"Get an employee by ID","tags":["Employees"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/accessories":{"get":{"description":"Return the list of accessories for your company.","operationId":"getAccessories","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAccessories_Output"}}}}},"summary":"Get all accessories","tags":["Accessories"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}},"post":{"description":"Create an accessory for your company.","operationId":"createAccessory","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccessoryBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAccessory_Output"}}}}},"summary":"Create an accessory","tags":["Accessories"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/accessories/{accessoryId}":{"get":{"description":"Return the accessory details for the given accessory ID.","operationId":"getAccessory","parameters":[{"name":"accessoryId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAccessory_Output"}}}}},"summary":"Get an accessory by ID","tags":["Accessories"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}},"put":{"description":"Update an existing accessory for your company.","operationId":"updateAccessory","parameters":[{"name":"accessoryId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccessoryBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAccessory_Output"}}}}},"summary":"Update an accessory","tags":["Accessories"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/tickets":{"get":{"description":"Return a paginated list of tickets for your company.","operationId":"getTickets","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}},{"name":"status","required":false,"in":"query","schema":{"type":"string","enum":["PENDING","IN_PROGRESS","COMPLETED","CANCELLED"]}},{"name":"priority","required":false,"in":"query","schema":{"type":"string","enum":["LOW","MEDIUM","HIGH"]}},{"name":"searchTerm","required":false,"in":"query","schema":{"minLength":1,"type":"string"}},{"name":"assigneeEmployeeId","required":false,"in":"query","schema":{"type":"string"}},{"name":"sortBy","required":false,"in":"query","schema":{"type":"string","enum":["status","priority","reference","title","tasksCount"]}},{"name":"sortDirection","required":false,"in":"query","schema":{"type":"string","enum":["ASC","DESC"]}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTickets_Output"}}}}},"summary":"Get all tickets","tags":["Tickets"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}},"post":{"description":"Create a ticket for your company.","operationId":"createTicket","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTicketBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOutput_Output"}}}}},"summary":"Create a ticket","tags":["Tickets"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/tickets/{ticketId}":{"get":{"description":"Return details for a specific ticket.","operationId":"getTicket","parameters":[{"name":"ticketId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOutput_Output"}}}}},"summary":"Get a ticket by ID","tags":["Tickets"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/tickets/{ticketId}/status":{"post":{"description":"Update the status of an existing ticket.","operationId":"updateTicketStatus","parameters":[{"name":"ticketId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTicketStatusBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOutput_Output"}}}}},"summary":"Update ticket status","tags":["Tickets"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/tickets/{ticketId}/assignee":{"post":{"description":"Assign a ticket to an employee.","operationId":"updateTicketAssignee","parameters":[{"name":"ticketId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTicketAssigneeBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOutput_Output"}}}}},"summary":"Update ticket assignee","tags":["Tickets"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/tickets/{ticketId}/priority":{"post":{"description":"Update the priority of an existing ticket.","operationId":"updateTicketPriority","parameters":[{"name":"ticketId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTicketPriorityBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOutput_Output"}}}}},"summary":"Update ticket priority","tags":["Tickets"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/tickets/{ticketId}/comments":{"post":{"description":"Create a comment on a ticket.","operationId":"createTicketComment","parameters":[{"name":"ticketId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTicketCommentBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketCommentOutput_Output"}}}}},"summary":"Create a ticket comment","tags":["Tickets"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}},"/softwares":{"get":{"description":"Return the list of softwares for your company with id, name, platform, source, installation type, and target method.","operationId":"getSoftwares","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSoftwares_Output"}}}}},"summary":"Get all softwares","tags":["Softwares"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/softwares/{softwareId}":{"get":{"description":"Return software details for the given software ID, including targeting details.","operationId":"getSoftware","parameters":[{"name":"softwareId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get a software by ID","tags":["Softwares"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/mdm-controls":{"get":{"description":"Return the list of MDM controls for your company with id, name, type, platform, tags, enabled, and target method.","operationId":"getMdmControls","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMdmControls_Output"}}}}},"summary":"Get all MDM controls","tags":["MdmControls"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/mdm-controls/{mdmControlId}":{"get":{"description":"Return MDM control details for the given control ID, including target details and configuration payload.","operationId":"getMdmControl","parameters":[{"name":"mdmControlId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get an MDM control by ID","tags":["MdmControls"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/saas":{"get":{"description":"Return the list of approved SaaS applications for your company.","operationId":"getSaas","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":9007199254740991,"default":1,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"Number of items per page (max 100)","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSaas_Output"}}}}},"summary":"Get all SaaS","tags":["Saas"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/saas/{saasId}":{"get":{"description":"Return the SaaS details for the given company SaaS application ID.","operationId":"getSaasById","parameters":[{"name":"saasId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSaasById_Output"}}}}},"summary":"Get a SaaS by ID","tags":["Saas"],"x-primo-access-level":"read","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Read","className":"badge-read","color":"#0F766E"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-read\">Key: Read</span><span className=\"badge-company\">Scope: Company</span>"}}},"/saas/{saasId}/contract":{"put":{"description":"Replace the contract configuration for the given SaaS. All prices must be expressed for one billing period defined by `billingFrequency` (not annualized).\n\n**`flat_rate` mode** — a single recurring amount covers the whole subscription:\n- `flatRatePrice` must be set.\n- `unlicensedPricePerSeat`, `unlicensedMinimumSeatsBilled`, `licenses[].pricePerSeat` and `licenses[].minimumSeatsBilled` must all be `null`.\n\n**`per_licence` mode** — pricing is broken down per license type:\n- `flatRatePrice` must be `null`.\n- `unlicensedPricePerSeat`, `unlicensedMinimumSeatsBilled`, `licenses[].pricePerSeat` and `licenses[].minimumSeatsBilled` must all be set.\n\nThe `licenses` array must exactly match the licenses defined in the SaaS: every entry must have the same `remoteId` and `name` as the corresponding SaaS license (retrieve them via `getSaasById`).","operationId":"updateSaasContract","parameters":[{"name":"saasId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSaasContractBody"}}}},"responses":{"default":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaasContractResource_Output"}}}}},"summary":"Update a SaaS contract","tags":["Saas"],"x-primo-access-level":"write","x-primo-access-scope":["company"],"x-badges":[{"name":"Key: Write","className":"badge-write","color":"#B42318"},{"name":"Scope: Company","className":"badge-company","color":"#0284C7"}],"x-mint":{"content":"<span className=\"badge-write\">Key: Write</span><span className=\"badge-company\">Scope: Company</span>"}}}},"info":{"title":"Public API - BETA","description":"Read docs on https://docs.getprimo.com/","version":"1.0","contact":{}},"tags":[],"servers":[{"url":"https://api.getprimo.com"}],"components":{"securitySchemes":{"apikey":{"scheme":"bearer","bearerFormat":"API key","type":"http","description":"Use your Primo API key in the Authorization header as `Bearer <API_KEY>`."}},"schemas":{"GetAdmins_Output":{"type":"object","properties":{"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"employee"},"id":{"type":"string"},"email":{"type":"string"},"roleName":{"type":"string"}},"required":["type","id","email","roleName"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"external"},"email":{"type":"string"},"roleName":{"type":"string"}},"required":["type","email","roleName"],"additionalProperties":false}]}}},"required":["data"],"additionalProperties":false},"GetCompany_Output":{"type":"object","properties":{"id":{"type":"string","description":"Unique company identifier"},"name":{"type":"string","description":"Company display name"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","createdAt","updatedAt"],"additionalProperties":false},"GetCompanies_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"Unique company identifier","type":"string"},"name":{"description":"Company display name","type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"GetDevices_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"description":"The ID of the employee assigned to this device","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"serialNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"computerName":{"description":"**Deprecated** — use `name` instead. This field will be removed on 2026-04-13.","deprecated":true,"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"type":{"anyOf":[{"type":"string","enum":["LAPTOP","TABLET","SMARTPHONE"]},{"type":"null"}]},"platform":{"anyOf":[{"type":"string","enum":["ANDROID","IOS","MACOS","WINDOWS","LINUX","CHROME_OS","IPADOS","UNKNOWN"]},{"type":"null"}]},"brand":{"anyOf":[{"type":"string"},{"type":"null"}]},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}]},"modelName":{"anyOf":[{"type":"string"},{"type":"null"}]},"modelIdentifier":{"anyOf":[{"type":"string"},{"type":"null"}]},"year":{"anyOf":[{"type":"number"},{"type":"null"}]},"osVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"osName":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"isEnrolled":{"type":"boolean"},"enrolledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"disenrolledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"lockWipeStatus":{"description":"Current lock/wipe status of the device. LOCKING/LOCKED for lock operations, UNLOCKING for unlock in progress, WIPING/WIPED for wipe operations. Null when device is in normal state.","anyOf":[{"type":"string","enum":["LOCKED","LOCKING","UNLOCKING","WIPED","WIPING"]},{"type":"null"}]},"edrProvider":{"description":"EDR provider protecting the device: SENTINELONE, THREATDOWN, or null when no EDR (e.g. no EDR configured, or device not yet protected).","anyOf":[{"type":"string","enum":["SENTINELONE","THREATDOWN"]},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","tags","isEnrolled","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"GetDevice_Output":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"description":"The ID of the employee assigned to this device","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"serialNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"computerName":{"description":"**Deprecated** — use `name` instead. This field will be removed on 2026-04-13.","deprecated":true,"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"type":{"anyOf":[{"type":"string","enum":["LAPTOP","TABLET","SMARTPHONE"]},{"type":"null"}]},"platform":{"anyOf":[{"type":"string","enum":["ANDROID","IOS","MACOS","WINDOWS","LINUX","CHROME_OS","IPADOS","UNKNOWN"]},{"type":"null"}]},"brand":{"anyOf":[{"type":"string"},{"type":"null"}]},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}]},"modelName":{"anyOf":[{"type":"string"},{"type":"null"}]},"modelIdentifier":{"anyOf":[{"type":"string"},{"type":"null"}]},"year":{"anyOf":[{"type":"number"},{"type":"null"}]},"osVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"osName":{"anyOf":[{"type":"string"},{"type":"null"}]},"buildVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"isEnrolled":{"type":"boolean"},"enrolledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"disenrolledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"lockWipeStatus":{"description":"Current lock/wipe status of the device. LOCKING/LOCKED for lock operations, UNLOCKING for unlock in progress, WIPING/WIPED for wipe operations. Null when device is in normal state.","anyOf":[{"type":"string","enum":["LOCKED","LOCKING","UNLOCKING","WIPED","WIPING"]},{"type":"null"}]},"edrProvider":{"description":"EDR provider protecting the device: SENTINELONE, THREATDOWN, or null when no EDR (e.g. no EDR configured, or device not yet protected).","anyOf":[{"type":"string","enum":["SENTINELONE","THREATDOWN"]},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","tags","isEnrolled","createdAt","updatedAt"],"additionalProperties":false},"CreateDeviceBody":{"type":"object","properties":{"serialNumber":{"description":"Serial number of the device","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"description":"Display name of the device","anyOf":[{"type":"string"},{"type":"null"}]},"platform":{"description":"Operating system platform (e.g. MACOS, WINDOWS, LINUX, IOS, ANDROID, CHROMEOS)","anyOf":[{"type":"string","enum":["ANDROID","IOS","MACOS","WINDOWS","LINUX","CHROME_OS","IPADOS","UNKNOWN"]},{"type":"null"}]},"type":{"description":"Device type (LAPTOP, TABLET, SMARTPHONE)","anyOf":[{"type":"string","enum":["LAPTOP","TABLET","SMARTPHONE"]},{"type":"null"}]},"brand":{"description":"Brand or manufacturer name","anyOf":[{"type":"string"},{"type":"null"}]},"modelName":{"description":"Model name of the device","anyOf":[{"type":"string"},{"type":"null"}]},"year":{"description":"Year the device was manufactured","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"ownerId":{"description":"ID of the employee to assign this device to","anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"description":"List of tags","type":"array","items":{"type":"string"}}}},"UpdateDeviceBody":{"type":"object","properties":{"ownerId":{"description":"ID of the employee to assign this device to, or null to unassign","anyOf":[{"type":"string","pattern":"^[a-f\\d]{24}$"},{"type":"null"}]}},"required":["ownerId"]},"LockDevice_Output":{"type":"object","properties":{"success":{"type":"boolean","const":true},"platform":{"type":"string","description":"The platform of the locked device","enum":["ANDROID","IOS","MACOS","WINDOWS","LINUX","CHROME_OS","IPADOS","UNKNOWN"]},"message":{"type":"string","description":"A human-readable description of the lock operation"}},"required":["success","platform","message"],"additionalProperties":false},"UnlockDevice_Output":{"type":"object","properties":{"success":{"type":"boolean","const":true},"platform":{"type":"string","description":"The platform of the unlocked device","enum":["ANDROID","IOS","MACOS","WINDOWS","LINUX","CHROME_OS","IPADOS","UNKNOWN"]},"unlockPin":{"description":"Unlock PIN to enter on the device (macOS only). Null for platforms where unlock is handled remotely.","anyOf":[{"type":"string"},{"type":"null"}]},"message":{"type":"string","description":"A human-readable description of the unlock operation"}},"required":["success","platform","message"],"additionalProperties":false},"WipeDeviceBody":{"type":"object","properties":{"wipeType":{"description":"Type of wipe to perform. Only applicable for Windows devices. SOFT resets the device but preserves user data, HARD performs a complete factory reset. Ignored for other platforms.","type":"string","enum":["SOFT","HARD"]}}},"WipeDevice_Output":{"type":"object","properties":{"success":{"type":"boolean","const":true},"platform":{"type":"string","description":"The platform of the wiped device","enum":["ANDROID","IOS","MACOS","WINDOWS","LINUX","CHROME_OS","IPADOS","UNKNOWN"]},"wipeType":{"description":"The type of wipe that was performed. Only present for Windows devices (SOFT or HARD). Null for other platforms.","anyOf":[{"type":"string","enum":["SOFT","HARD"]},{"type":"null"}]},"message":{"type":"string","description":"A human-readable description of the wipe operation"}},"required":["success","platform","message"],"additionalProperties":false},"GetDeviceGroups_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"Device group ID","type":"string"},"name":{"description":"Device group name","type":"string"}},"required":["id","name"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"GetDeviceGroup_Output":{"type":"object","properties":{"id":{"type":"string","description":"Device group ID"},"name":{"type":"string","description":"Device group name"},"deviceIds":{"type":"array","description":"IDs of devices targeted by this device group","items":{"type":"string"}}},"required":["id","name","deviceIds"],"additionalProperties":false},"GetEmployees_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"teams":{"type":"array","items":{"type":"string"}},"jobs":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"string"}},"workLocation":{"anyOf":[{"type":"string"},{"type":"null"}]},"legalEntity":{"anyOf":[{"type":"string"},{"type":"null"}]},"managerId":{"anyOf":[{"type":"string"},{"type":"null"}]},"startDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"terminationDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"deviceIds":{"type":"array","items":{"type":"string"}},"accessoryIds":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","firstName","lastName","email","teams","jobs","groups","deviceIds","accessoryIds","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"CreateEmployeeBody":{"type":"object","properties":{"firstName":{"description":"First name of the employee","type":"string","minLength":1},"lastName":{"description":"Last name of the employee","type":"string","minLength":1},"email":{"description":"Work email address of the employee","type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"startDate":{"description":"Employment start date (ISO 8601)","anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"managerId":{"description":"ID of the manager employee","anyOf":[{"type":"string"},{"type":"null"}]},"teams":{"description":"List of team names","type":"array","items":{"type":"string"}},"jobs":{"description":"List of job titles","type":"array","items":{"type":"string"}},"groups":{"description":"List of group names","type":"array","items":{"type":"string"}},"workLocation":{"description":"Work location name","anyOf":[{"type":"string"},{"type":"null"}]},"legalEntity":{"description":"Legal entity name","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["firstName","lastName","email"]},"GetEmployee_Output":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"teams":{"type":"array","items":{"type":"string"}},"jobs":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"string"}},"workLocation":{"anyOf":[{"type":"string"},{"type":"null"}]},"legalEntity":{"anyOf":[{"type":"string"},{"type":"null"}]},"managerId":{"anyOf":[{"type":"string"},{"type":"null"}]},"startDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"terminationDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"deviceIds":{"type":"array","items":{"type":"string"}},"accessoryIds":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","firstName","lastName","email","teams","jobs","groups","deviceIds","accessoryIds","createdAt","updatedAt"],"additionalProperties":false},"GetAccessories_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"description":"Employee ID currently assigned to this accessory","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"type":{"type":"string","enum":["MONITOR","KEYBOARD","MOUSE","MOUSEPAD","WEBCAM","HEADSET","SPEAKER","CABLE_ADAPTER","HUB","CHARGER","STORAGE_DEVICE","LAPTOP_CASE","ERGONOMIC","SHIPPING_MATERIAL","FIDO_KEY","ACCESS_CARD","NETWORK_DEVICE","FIREWALL","ROUTER","SWITCH","OTHER"]},"brand":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"serialNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"description":{"description":"Free-form accessory description","anyOf":[{"type":"string"},{"type":"null"}]},"condition":{"description":"Current accessory condition. Null when condition is not specified.","anyOf":[{"type":"string","enum":["NEW","GOOD","DAMAGED","UNUSABLE"]},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","type","tags","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"GetAccessory_Output":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"description":"Employee ID currently assigned to this accessory","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"type":{"type":"string","enum":["MONITOR","KEYBOARD","MOUSE","MOUSEPAD","WEBCAM","HEADSET","SPEAKER","CABLE_ADAPTER","HUB","CHARGER","STORAGE_DEVICE","LAPTOP_CASE","ERGONOMIC","SHIPPING_MATERIAL","FIDO_KEY","ACCESS_CARD","NETWORK_DEVICE","FIREWALL","ROUTER","SWITCH","OTHER"]},"brand":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"serialNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"description":{"description":"Free-form accessory description","anyOf":[{"type":"string"},{"type":"null"}]},"condition":{"description":"Current accessory condition. Null when condition is not specified.","anyOf":[{"type":"string","enum":["NEW","GOOD","DAMAGED","UNUSABLE"]},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","type","tags","createdAt","updatedAt"],"additionalProperties":false},"CreateAccessoryBody":{"type":"object","properties":{"ownerId":{"description":"Employee ID to assign the accessory to","anyOf":[{"type":"string","pattern":"^[a-f\\d]{24}$"},{"type":"null"}]},"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["MONITOR","KEYBOARD","MOUSE","MOUSEPAD","WEBCAM","HEADSET","SPEAKER","CABLE_ADAPTER","HUB","CHARGER","STORAGE_DEVICE","LAPTOP_CASE","ERGONOMIC","SHIPPING_MATERIAL","FIDO_KEY","ACCESS_CARD","NETWORK_DEVICE","FIREWALL","ROUTER","SWITCH","OTHER"]},"brand":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"serialNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"condition":{"description":"Accessory condition. Set to null to clear the current condition.","anyOf":[{"type":"string","enum":["NEW","GOOD","DAMAGED","UNUSABLE"]},{"type":"null"}]}},"required":["name","type"]},"UpdateAccessoryBody":{"type":"object","properties":{"ownerId":{"anyOf":[{"type":"string","pattern":"^[a-f\\d]{24}$"},{"type":"null"}]},"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["MONITOR","KEYBOARD","MOUSE","MOUSEPAD","WEBCAM","HEADSET","SPEAKER","CABLE_ADAPTER","HUB","CHARGER","STORAGE_DEVICE","LAPTOP_CASE","ERGONOMIC","SHIPPING_MATERIAL","FIDO_KEY","ACCESS_CARD","NETWORK_DEVICE","FIREWALL","ROUTER","SWITCH","OTHER"]},"brand":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"serialNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"condition":{"anyOf":[{"type":"string","enum":["NEW","GOOD","DAMAGED","UNUSABLE"]},{"type":"null"}]}},"required":["ownerId","name","type","brand","model","serialNumber","tags","description","condition"]},"GetTickets_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"reference":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["PENDING","IN_PROGRESS","COMPLETED","CANCELLED"]},"priority":{"anyOf":[{"type":"string","enum":["LOW","MEDIUM","HIGH"]},{"type":"null"}]},"assignee":{"anyOf":[{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"EMAIL"},"email":{"type":"string"}},"required":["type","email"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"EMPLOYEE"},"employeeId":{"type":"string"}},"required":["type","employeeId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"EXTERNAL_ADMIN"},"userId":{"type":"string"}},"required":["type","userId"],"additionalProperties":false}]},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","reference","title","status","priority","assignee","dueDate","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"TicketOutput_Output":{"type":"object","properties":{"id":{"type":"string"},"reference":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["PENDING","IN_PROGRESS","COMPLETED","CANCELLED"]},"priority":{"anyOf":[{"type":"string","enum":["LOW","MEDIUM","HIGH"]},{"type":"null"}]},"assignee":{"anyOf":[{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"EMAIL"},"email":{"type":"string"}},"required":["type","email"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"EMPLOYEE"},"employeeId":{"type":"string"}},"required":["type","employeeId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"EXTERNAL_ADMIN"},"userId":{"type":"string"}},"required":["type","userId"],"additionalProperties":false}]},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"comments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"string"},"creator":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"EMPLOYEE"},"employeeId":{"type":"string"}},"required":["type","employeeId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"EXTERNAL_ADMIN"},"userId":{"type":"string"}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"EMAIL"},"email":{"type":"string"}},"required":["type","email"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"PRIMO"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"API"}},"required":["type"],"additionalProperties":false}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","text","creator","createdAt"],"additionalProperties":false}}},"required":["id","reference","title","status","priority","assignee","dueDate","createdAt","updatedAt","description","comments"],"additionalProperties":false},"CreateTicketBody":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"default":null,"anyOf":[{"type":"string"},{"type":"null"}]},"assigneeEmployeeId":{"type":"string"},"priority":{"default":null,"anyOf":[{"type":"string","enum":["LOW","MEDIUM","HIGH"]},{"type":"null"}]},"dueDate":{"default":null,"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]}},"required":["title"]},"UpdateTicketStatusBody":{"type":"object","properties":{"status":{"type":"string","enum":["PENDING","IN_PROGRESS","COMPLETED","CANCELLED"]}},"required":["status"]},"UpdateTicketAssigneeBody":{"type":"object","properties":{"assigneeEmployeeId":{"type":"string","minLength":1}},"required":["assigneeEmployeeId"]},"UpdateTicketPriorityBody":{"type":"object","properties":{"priority":{"anyOf":[{"type":"string","enum":["LOW","MEDIUM","HIGH"]},{"type":"null"}]}},"required":["priority"]},"CreateTicketCommentBody":{"type":"object","properties":{"text":{"type":"string","minLength":1}},"required":["text"]},"TicketCommentOutput_Output":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"string"},"creator":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"EMPLOYEE"},"employeeId":{"type":"string"}},"required":["type","employeeId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"EXTERNAL_ADMIN"},"userId":{"type":"string"}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"EMAIL"},"email":{"type":"string"}},"required":["type","email"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"PRIMO"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"API"}},"required":["type"],"additionalProperties":false}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","text","creator","createdAt"],"additionalProperties":false},"GetSoftwares_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"platform":{"type":"string","enum":["macos","windows","ios","ipados","android","linux","chromeos","unknown"]},"source":{"type":"string","enum":["fma","appStore","customPackage","androidStore"]},"installationType":{"type":"string","enum":["manual","automatic"]},"autoUpdatePackage":{"type":"boolean"},"autoInstallUpdate":{"type":"boolean"},"targetMethod":{"type":"string","enum":["All","DeviceGroup"]}},"required":["id","name","platform","source","installationType","autoUpdatePackage","autoInstallUpdate","targetMethod"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"GetMdmControls_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["malwarebyte_macos","malwarebyte_windows","malwarebyte_linux","recoveryOs_macos","softwareUpdate_macos","appBlocking_macos","wifi_macos","wifi_ios","wifi_ipados","wifi_windows","wifi_android","wifi_linux","adminUserManagement_macos","adminUserManagement_windows","adminUserPasswordRotation_macos","adminUserPasswordRotation_windows","deviceNaming_macos","deviceNaming_windows","deviceNaming_linux","googleChrome_macos","googleChrome_windows","firewall_macos","firewall_windows","usbBlocking_macos","usbBlocking_windows","usbBlocking_linux","entraSSO_macos","oktaSSO_macos","customFile_macos","customFile_ios","customFile_ipados","customFile_windows","customFile_android","passwordPolicy_macos","passwordPolicy_windows","passwordPolicy_ios","passwordPolicy_ipados","passwordPolicy_android","sentinelOne_macos","sentinelOne_windows","sentinelOne_windows_arm64","sentinelOne_linux_deb","sentinelOne_linux_deb_arm64","sentinelOne_linux_rpm","sentinelOne_linux_rpm_arm64","diskEncryption_all","osUpdate_macos","osUpdate_windows","osUpdate_ios","osUpdate_ipados","rustdesk_macos","rustdesk_windows","disableProfilesPane_macos","screenCapture_macos","disableAirdrop_macos"]},"platform":{"type":"string","enum":["macos","windows","ios","ipados","android","linux","chromeos","unknown"]},"tags":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"},"targetMethod":{"type":"string","enum":["All","DeviceGroup","CustomTarget"]}},"required":["id","name","type","platform","tags","enabled","targetMethod"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"GetSaas_Output":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"connectionStatus":{"type":"string","enum":["CONNECTED","DISCONNECTED","PENDING","NOT_CONNECTED","NOT_CONNECTABLE"]},"identitiesCount":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","name","tags","connectionStatus","identitiesCount"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"totalElements":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPage":{"type":"integer","minimum":1,"maximum":100}},"required":["totalElements","totalPages","page","perPage"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false},"GetSaasById_Output":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"connectionStatus":{"type":"string","enum":["CONNECTED","DISCONNECTED","PENDING","NOT_CONNECTED","NOT_CONNECTABLE"]},"identitiesCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"identities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"employeeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"type":"string"},"groups":{"type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"string"}},"licenses":{"type":"array","items":{"type":"string"}}},"required":["id","employeeId","email","groups","roles","licenses"],"additionalProperties":false}},"recentEvents":{"type":"array","description":"The 20 most synchronization-related recent events for this SaaS integration.","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"description":"Type of event that occurred on this SaaS integration.","type":"string","enum":["USER_PROVISIONED","USER_UPDATED","USER_GROUPS_REPLACED","USER_ROLES_REPLACED","USER_LICENSES_REPLACED","USER_ORGANIZATION_UNITS_REPLACED","USER_DEPROVISIONED","SYNCED","GROUPS_SYNCED","ROLES_SYNCED","LICENSES_SYNCED","ORGANIZATION_UNITS_SYNCED","API_CONNECTED","API_DISCONNECTED","AI_AGENT_CONFIGURED","AI_AGENT_DISCONNECTED","SSO_CONNECTED","SSO_DISCONNECTED","SSO_REQUESTED","USER_ACTIVITIES_DISCOVERED"]},"status":{"description":"Outcome status of the event.","type":"string","enum":["PENDING","CANCELLED","SUCCESS","FAILED"]},"createdAt":{"description":"ISO 8601 date-time when the event was created.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"employeeId":{"description":"Employee involved in the event, if applicable.","anyOf":[{"type":"string"},{"type":"null"}]},"contextType":{"description":"Context in which the event occurred.","anyOf":[{"type":"string","enum":["ONBOARDING","OFFBOARDING","SYNC","USER_ACTIVITIES_DISCOVERY"]},{"type":"null"}]},"errorMessage":{"description":"Error message if the event failed, null otherwise.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","status","createdAt","employeeId","contextType","errorMessage"],"additionalProperties":false}},"contract":{"description":"Billing contract currently configured for this SaaS.","anyOf":[{"type":"object","properties":{"pricingMode":{"description":"Contract pricing mode. Use `flat_rate` for one recurring amount or `per_licence` for license-based pricing.","anyOf":[{"type":"string","enum":["per_licence","flat_rate"]},{"type":"null"}]},"currency":{"description":"ISO currency code used for all contract prices.","anyOf":[{"type":"string","enum":["EUR","GBP","USD","CHF","CAD"]},{"type":"null"}]},"billingFrequency":{"description":"Billing period used by every price in this contract: monthly, quarterly, or annual.","anyOf":[{"type":"string","enum":["monthly","quarterly","annual"]},{"type":"null"}]},"flatRatePrice":{"description":"Recurring flat-rate amount billed for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `flat_rate`; must be `null` when `pricingMode` is `per_licence`.","anyOf":[{"type":"number"},{"type":"null"}]},"unlicensedPricePerSeat":{"description":"Price billed per unlicensed seat for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"number"},{"type":"null"}]},"unlicensedMinimumSeatsBilled":{"description":"Minimum number of unlicensed seats billed during one billing period. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"licenses":{"description":"Priced contract lines, one entry per SaaS license. Required when `pricingMode` is `per_licence`; all `pricePerSeat` and `minimumSeatsBilled` values must be `null` when `pricingMode` is `flat_rate`. The list must exactly match the licenses defined in the SaaS (same `remoteId` and `name` for every entry).","type":"array","items":{"type":"object","properties":{"remoteId":{"description":"License remote identifier used to map this priced contract line to a SaaS license.","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"description":"Human-readable license name for this contract line.","type":"string"},"pricePerSeat":{"description":"Price billed per seat for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"number"},{"type":"null"}]},"minimumSeatsBilled":{"description":"Minimum number of seats billed for this license during one billing period. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["remoteId","name","pricePerSeat","minimumSeatsBilled"],"additionalProperties":false}}},"required":["pricingMode","currency","billingFrequency","flatRatePrice","unlicensedPricePerSeat","unlicensedMinimumSeatsBilled","licenses"],"additionalProperties":false},{"type":"null"}]},"finance":{"type":"object","description":"Derived financial metrics computed from the configured contract.","properties":{"yearlyCost":{"description":"Total SaaS cost annualized from the contract billing frequency.","anyOf":[{"type":"number"},{"type":"null"}]},"unusedYearlyCost":{"description":"Annualized cost of billed but unused seats derived from the current contract configuration.","anyOf":[{"type":"number"},{"type":"null"}]},"unusedSeatsCount":{"description":"Number of billed seats currently unused based on the contract minimums and assigned identities.","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["yearlyCost","unusedYearlyCost","unusedSeatsCount"],"additionalProperties":false},"licenses":{"type":"array","description":"SaaS license catalog used to map contract pricing lines with the SaaS licenses.","items":{"type":"object","properties":{"remoteId":{"description":"License remote identifier used to map a SaaS license to a priced contract line.","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"description":"Human-readable license name.","type":"string"}},"required":["remoteId","name"],"additionalProperties":false}}},"required":["id","name","tags","connectionStatus","identitiesCount","identities","recentEvents","contract","finance","licenses"],"additionalProperties":false},"UpdateSaasContractBody":{"type":"object","properties":{"pricingMode":{"description":"Contract pricing mode. Use `flat_rate` for one recurring amount or `per_licence` for license-based pricing.","anyOf":[{"type":"string","enum":["per_licence","flat_rate"]},{"type":"null"}]},"currency":{"description":"ISO currency code used for all contract prices.","anyOf":[{"type":"string","enum":["EUR","GBP","USD","CHF","CAD"]},{"type":"null"}]},"billingFrequency":{"description":"Billing period used by every price in this contract: monthly, quarterly, or annual.","anyOf":[{"type":"string","enum":["monthly","quarterly","annual"]},{"type":"null"}]},"flatRatePrice":{"description":"Recurring flat-rate amount billed for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `flat_rate`; must be `null` when `pricingMode` is `per_licence`.","anyOf":[{"type":"number"},{"type":"null"}]},"unlicensedPricePerSeat":{"description":"Price billed per unlicensed seat for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"number"},{"type":"null"}]},"unlicensedMinimumSeatsBilled":{"description":"Minimum number of unlicensed seats billed during one billing period. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"licenses":{"description":"Priced contract lines, one entry per SaaS license. Required when `pricingMode` is `per_licence`; all `pricePerSeat` and `minimumSeatsBilled` values must be `null` when `pricingMode` is `flat_rate`. The list must exactly match the licenses defined in the SaaS (same `remoteId` and `name` for every entry).","type":"array","items":{"type":"object","properties":{"remoteId":{"description":"License remote identifier used to map this priced contract line to a SaaS license.","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"description":"Human-readable license name for this contract line.","type":"string"},"pricePerSeat":{"description":"Price billed per seat for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"number"},{"type":"null"}]},"minimumSeatsBilled":{"description":"Minimum number of seats billed for this license during one billing period. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["remoteId","name","pricePerSeat","minimumSeatsBilled"]}}},"required":["pricingMode","currency","billingFrequency","flatRatePrice","unlicensedPricePerSeat","unlicensedMinimumSeatsBilled","licenses"]},"SaasContractResource_Output":{"type":"object","properties":{"contract":{"description":"Billing contract currently configured for this SaaS.","anyOf":[{"type":"object","properties":{"pricingMode":{"description":"Contract pricing mode. Use `flat_rate` for one recurring amount or `per_licence` for license-based pricing.","anyOf":[{"type":"string","enum":["per_licence","flat_rate"]},{"type":"null"}]},"currency":{"description":"ISO currency code used for all contract prices.","anyOf":[{"type":"string","enum":["EUR","GBP","USD","CHF","CAD"]},{"type":"null"}]},"billingFrequency":{"description":"Billing period used by every price in this contract: monthly, quarterly, or annual.","anyOf":[{"type":"string","enum":["monthly","quarterly","annual"]},{"type":"null"}]},"flatRatePrice":{"description":"Recurring flat-rate amount billed for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `flat_rate`; must be `null` when `pricingMode` is `per_licence`.","anyOf":[{"type":"number"},{"type":"null"}]},"unlicensedPricePerSeat":{"description":"Price billed per unlicensed seat for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"number"},{"type":"null"}]},"unlicensedMinimumSeatsBilled":{"description":"Minimum number of unlicensed seats billed during one billing period. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"licenses":{"description":"Priced contract lines, one entry per SaaS license. Required when `pricingMode` is `per_licence`; all `pricePerSeat` and `minimumSeatsBilled` values must be `null` when `pricingMode` is `flat_rate`. The list must exactly match the licenses defined in the SaaS (same `remoteId` and `name` for every entry).","type":"array","items":{"type":"object","properties":{"remoteId":{"description":"License remote identifier used to map this priced contract line to a SaaS license.","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"description":"Human-readable license name for this contract line.","type":"string"},"pricePerSeat":{"description":"Price billed per seat for one billing period defined by `billingFrequency`. Not annualized. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"number"},{"type":"null"}]},"minimumSeatsBilled":{"description":"Minimum number of seats billed for this license during one billing period. Required when `pricingMode` is `per_licence`; must be `null` when `pricingMode` is `flat_rate`.","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["remoteId","name","pricePerSeat","minimumSeatsBilled"],"additionalProperties":false}}},"required":["pricingMode","currency","billingFrequency","flatRatePrice","unlicensedPricePerSeat","unlicensedMinimumSeatsBilled","licenses"],"additionalProperties":false},{"type":"null"}]},"finance":{"type":"object","description":"Derived financial metrics computed from the configured contract.","properties":{"yearlyCost":{"description":"Total SaaS cost annualized from the contract billing frequency.","anyOf":[{"type":"number"},{"type":"null"}]},"unusedYearlyCost":{"description":"Annualized cost of billed but unused seats derived from the current contract configuration.","anyOf":[{"type":"number"},{"type":"null"}]},"unusedSeatsCount":{"description":"Number of billed seats currently unused based on the contract minimums and assigned identities.","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["yearlyCost","unusedYearlyCost","unusedSeatsCount"],"additionalProperties":false},"licenses":{"type":"array","description":"SaaS license catalog used to map contract pricing lines with the SaaS licenses.","items":{"type":"object","properties":{"remoteId":{"description":"License remote identifier used to map a SaaS license to a priced contract line.","anyOf":[{"type":"string"},{"type":"null"}]},"name":{"description":"Human-readable license name.","type":"string"}},"required":["remoteId","name"],"additionalProperties":false}}},"required":["contract","finance","licenses"],"additionalProperties":false}}},"security":[{"apikey":[]}]}