Get the compliance alert a ticket was opened for, with its full remediation context
Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as getComplianceAlertDetails — the alert, its MDM control with the configuration in clear, the device on both sides and the enforcement facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with getTicket. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.
GET
/
compliance
/
tickets
/
{ticketId}
/
alert
/
details
Get the compliance alert a ticket was opened for, with its full remediation context
How this control is enforced on this device. A key is present only when the control carries that artifact, and a control can carry several. All keys absent means the enforcement happens outside MDM — read device.primo.
Show child attributes
⌘I
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Primo Documentation","colors":{"primary":"#232D32","light":"#8D9AA1","dark":"#141A1E"},"logo":{"light":"https://mintcdn.com/primo/ScCUJrxVXMw2Xoed/logo/light.svg?fit=max\u0026auto=format\u0026n=ScCUJrxVXMw2Xoed\u0026q=85\u0026s=768eec9f1a23fe9fa9696734ed4a9a92","dark":"https://mintcdn.com/primo/ScCUJrxVXMw2Xoed/logo/dark.svg?fit=max\u0026auto=format\u0026n=ScCUJrxVXMw2Xoed\u0026q=85\u0026s=bff005d415af04ec8f45e24102265641"},"favicon":"https://mintcdn.com/primo/5V4RjqQ8usvnl1zn/images/icon_webclipPrimo@2x2.png?fit=max\u0026auto=format\u0026n=5V4RjqQ8usvnl1zn\u0026q=85\u0026s=31eefefb479d386832d2f2fdbdfb99ed","api":{"playground":{"display":"interactive","proxy":false}},"appearance":{"default":"system"},"background":{"color":{"light":"#FAFAFA","dark":"#141A1E"}},"seo":{"indexing":"navigable"},"fonts":{"family":"Oracle","weight":400,"source":"https://cdn.prod.website-files.com/6410a18d09fd5347adff42aa/6410c8db766e96df6861fa52_ABCOracleVariable.woff","format":"woff"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"href":""}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"primo","hasAudioNarration":false,"actualSubdomain":"primo","customDomains":["docs.getprimo.com"],"gitSource":{"type":"github","owner":"getprimo","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4858221d44d6b52dcb222","collectionId":"e34f6e82-ae7a-43d3-98ac-59c7d0ae8d9c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4858221d44d6b52dcb222"},"feedback":{"thumbs":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae48592e7bd3811c808dcfe","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"en","tag":"Developers","count":279},{"language":"en","tag":"API Reference","count":276},{"language":"en","tag":"Documentation","count":126},{"language":"en","tag":"Device Management","count":76},{"language":"en","tag":"Devices","count":56},{"language":"en","tag":"Saas","count":43},{"language":"en","tag":"Controls","count":25},{"language":"en","tag":"Onboardings","count":24},{"language":"en","tag":"Offboardings","count":20},{"language":"en","tag":"Changelog","count":19}],"searchSettings":{"showContentSnippets":true,"isFiltersEnabled":false}},"assistantConfig":{"deflection":{"enabled":true,"email":"support@getprimo.com","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"#content-area{max-width:50rem}.badge-read{background:#0f766e;color:#fff;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;margin-right:4px;display:inline-block}.badge-write{background:#b42318}.badge-company,.badge-workspace,.badge-write{color:#fff;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;margin-right:4px;display:inline-block}.badge-company{background:#0284c7}.badge-workspace{background:#6366f1}.primo-hero-pattern{background:url(/images/home/hero-pattern-light.svg) right top/760px 640px no-repeat}.dark .primo-hero-pattern{background-image:url(/images/home/hero-pattern-dark.svg)}@media (max-width:1023px){.primo-hero-pattern{display:none}}.changelog-same-day,.update-container:has(.changelog-same-day) [data-component-part=update-label],.update-container:has(.changelog-same-day) a[href^=\"#\"][aria-label^=\"Navigate to changelog\"]{display:none}[data-component-part=update-content]>.changelog-same-day+*{margin-top:0}@media (min-width:1024px){.update-container [data-component-part=update-label]{margin-top:2.5px}.update-container:has(.changelog-same-day) [data-component-part=update-tag-list]{margin-top:6.5px}}"}],"page":{"pagePath":"api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context","slug":"/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context","pageMetadata":{"title":"Get the compliance alert a ticket was opened for, with its full remediation context","description":"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as `getComplianceAlertDetails` — the alert, its MDM control with the configuration in clear, the device on both sides and the `enforcement` facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with `getTicket`. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /compliance/tickets/{ticketId}/alert/details","href":"/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as \", _jsx(_components.code, {\n children: \"getComplianceAlertDetails\"\n }), \" — the alert, its MDM control with the configuration in clear, the device on both sides and the \", _jsx(_components.code, {\n children: \"enforcement\"\n }), \" facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with \", _jsx(_components.code, {\n children: \"getTicket\"\n }), \". A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsxs(_Fragment,{children:[_jsx(`span`,{className:`badge-read`,children:`Key: Read`}),`\n`,_jsx(`span`,{className:`badge-company`,children:`Scope: Company`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get the compliance alert a ticket was opened for, with its full remediation context","description":"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as `getComplianceAlertDetails` — the alert, its MDM control with the configuration in clear, the device on both sides and the `enforcement` facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with `getTicket`. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /compliance/tickets/{ticketId}/alert/details","href":"/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as `getComplianceAlertDetails` — the alert, its MDM control with the configuration in clear, the device on both sides and the `enforcement` facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with `getTicket`. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.","operationId":"getComplianceAlertDetailsForTicket","parameters":["9a2cb1ce-47b6-4ec4-8c83-4ed333690ea7"],"responses":{"default":"460359d2-4adf-46e7-9fb5-efff8c7b342c"},"summary":"Get the compliance alert a ticket was opened for, with its full remediation context","tags":["Compliance"],"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":"\u003cspan className=\"badge-read\">Key: Read\u003c/span>\u003cspan className=\"badge-company\">Scope: Company\u003c/span>"},"method":"get","type":"path","servers":["50d3319f-7e18-4b50-882b-d21ea159b983"],"security":["7d0cc4ae-eb39-4e0a-a840-f618309b7ec3"],"path":"/compliance/tickets/{ticketId}/alert/details","baseUrlOptions":["https://api.getprimo.com"],"title":"Get the compliance alert a ticket was opened for, with its full remediation context","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"9a2cb1ce-47b6-4ec4-8c83-4ed333690ea7":{"name":"ticketId","required":true,"in":"path","schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"responses":{"460359d2-4adf-46e7-9fb5-efff8c7b342c":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"alert":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"alert.id","typeLabel":"string"},"deviceId":{"type":"string","isRequired":true,"uniqueKey":"alert.deviceId","typeLabel":"string"},"deviceName":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"alert.deviceName.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"alert.deviceName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"alert.deviceName","typeLabel":"string | null"},"devicePlatform":{"oneOf":[{"type":"string","enum":["ANDROID","IOS","IPADOS","MACOS","WINDOWS","LINUX","CHROME_OS","UNKNOWN"],"isRequired":true,"uniqueKey":"alert.devicePlatform.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","isRequired":true,"uniqueKey":"alert.devicePlatform.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"alert.devicePlatform","typeLabel":"enum\u003cstring> | null"},"owner":{"oneOf":[{"type":"object","description":"Employee the alerting device is assigned to.","required":["id","firstName","lastName"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"alert.owner.oneOf.0.id","typeLabel":"string"},"firstName":{"type":"string","isRequired":true,"uniqueKey":"alert.owner.oneOf.0.firstName","typeLabel":"string"},"lastName":{"type":"string","isRequired":true,"uniqueKey":"alert.owner.oneOf.0.lastName","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"alert.owner.oneOf.0","typeLabel":"object"},{"type":"null","description":"Employee the alerting device is assigned to.","isRequired":true,"uniqueKey":"alert.owner.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"alert.owner","typeLabel":"object | null"},"complianceRuleId":{"type":"string","isRequired":true,"uniqueKey":"alert.complianceRuleId","typeLabel":"string"},"ruleType":{"oneOf":[{"type":"string","description":"Type of the compliance rule behind the alert.","isRequired":true,"uniqueKey":"alert.ruleType.oneOf.0","typeLabel":"string"},{"type":"null","description":"Type of the compliance rule behind the alert.","isRequired":true,"uniqueKey":"alert.ruleType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"alert.ruleType","typeLabel":"string | null"},"mdmControlId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"alert.mdmControlId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"alert.mdmControlId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"alert.mdmControlId","typeLabel":"string | null"},"status":{"type":"string","enum":["PROTECTED","UNPROTECTED","SCAN_ONLY","PENDING","MOBILE_PROTECTION","UNKNOWN","FAILED","NOT_ENCRYPTED","MISSING_RECOVERY_KEY","ENCRYPTED","ACTION_REQUIRED","GRACE_PERIOD","UP_TO_DATE","NOT_UP_TO_DATE","ENFORCED","ERROR","CREATION_PENDING","DEMOTION_PENDING","CREATED","CREATION_FAILED","SUCCESS","UNSUPPORTED","INSTALLED","MDM_ON","MDM_OFF","MDM_ON_IN_ANOTHER_MDM","READY_ZTD","MISSING_AGENT","ONLINE","OFFLINE","OFFLINE_7_DAYS","ENABLED","DISABLED","MISSING_BYPASS_CODE","MEETS_REQUIREMENTS","BELOW_MINIMUM_VERSION","UNSUPPORTED_OS_EDITION"],"isRequired":true,"uniqueKey":"alert.status","typeLabel":"enum\u003cstring>"},"additionalStatus":{"oneOf":[{"type":"string","description":"Narrows `status` when several situations share it. Null when `status` already says everything — a compliant device, or a status only one situation can produce — and on rows computed before this field existed. PROFILE_DELIVERY_PENDING: The MDM profile is queued for delivery; the device has not acknowledged it yet. PROFILE_VERIFYING: The MDM profile was installed and the MDM is verifying it applied. PROFILE_NOT_ON_DEVICE: The MDM has no record of this profile on the device; it was never scoped to it. A resend needs a prior delivery, so refresh the device and re-check the control targeting instead. PROFILE_DELIVERY_FAILED: The device rejected the MDM profile. `detail` carries the MDM error. CONTROL_MISSING_PROFILE: The control has no profile to deploy; this is a Primo configuration issue, not a device issue. POLICY_NOT_EVALUATED: The device has not reported a result for the compliance check yet. POLICY_NOT_ON_DEVICE: The compliance check is not attached to this device in the MDM. POLICY_FAILED: The compliance check attached to the control fails on the device. CONTROL_MISSING_POLICY: The control has no compliance check attached; this is a Primo configuration issue. RECOVERY_OS_STATUS_UNKNOWN: Primo has not computed the recovery OS state of this device yet. RECOVERY_OS_PROTECTION_PENDING: The recovery OS password command was sent and awaits the device. RECOVERY_OS_PROTECTION_FAILED: The device rejected the recovery OS password command. RECOVERY_OS_NOT_PROTECTED: Recovery OS has no password set. RECOVERY_OS_STATUS_UNRECOGNIZED: The device reports a recovery OS state Primo does not know. `detail` carries the raw value. SENTINEL_ONE_AGENT_NOT_INSTALLED: The SentinelOne agent is not installed on the device. SENTINEL_ONE_AGENT_INSTALLED_NOT_REGISTERED: The SentinelOne agent is installed but the device is not registered in the SentinelOne console. MALWAREBYTES_AGENT_NOT_INSTALLED: The Malwarebytes agent is not in the device software inventory and Fleet reports no install under way. MALWAREBYTES_INSTALL_IN_PROGRESS: Fleet is installing the Malwarebytes agent on this device; wait for the next inventory sync. `detail` carries the date of the last install attempt. MALWAREBYTES_INSTALL_FAILED: Fleet tried to install the Malwarebytes agent on this device and failed. `detail` carries the date of the attempt; the alert details carry the installer output. MALWAREBYTES_ENDPOINT_NOT_FOUND: The Malwarebytes agent is installed but the device has no endpoint in the Malwarebytes console; the agent is not registered to the company account. MALWAREBYTES_REGISTRATION_IN_PROGRESS: The agent was installed less than an hour ago and registers itself with the token the install carried; wait for the console to sync. `detail` carries the install date. RUSTDESK_INSTALL_NOT_STARTED: No RustDesk installation was recorded for this device yet. RUSTDESK_INSTALL_IN_PROGRESS: The RustDesk installation is in progress. RUSTDESK_INSTALL_FAILED: The RustDesk installation failed on the device. ADMIN_ACCOUNT_CREATION_QUEUED: The managed admin account creation is queued: no creation command has been dispatched to this device yet. ADMIN_ACCOUNT_CREATION_IN_PROGRESS: The managed admin account creation was dispatched and awaits the device. ADMIN_ACCOUNT_PRE_EXISTING: An account with the policy username already exists on the device and was not created by Primo. `detail` carries the username. NO_MANAGED_ADMIN_TO_ROTATE: No local admin account with the policy username exists on the device, nothing to rotate. PASSWORD_ROTATION_UP_TO_DATE: The admin password was rotated within the configured frequency. ADMIN_PASSWORD_UNKNOWN: The admin account was not created by Primo and Primo does not hold its password yet: the next rotation replaces it. `detail` carries the username. NO_SECURE_TOKEN_ADMIN_TO_ROTATE: macOS only: Primo cannot change this password. A reset needs another local admin holding a SecureToken whose password Primo stores, and the device has none. `detail` carries the username. DEVICE_NAME_SUGGESTION_NOT_GENERATED: Primo has not generated the expected name for this device yet. `detail` carries the last failed attempt, if any. DEVICE_NAME_ALREADY_USED: Primo gave up naming this device: the name its rule produces is held by another device of the company. `detail` carries the name and the id of that device — retire it or rename it, then regenerate the name. DEVICE_NAME_SUGGESTION_FAILED: Primo gave up naming this device after repeated invalid AI outputs. `detail` carries the failure type; regenerate the name once the rule is fixed. DEVICE_RENAME_NOT_DISPATCHED: The device name differs from the convention and no rename command is in flight. `detail` carries expected vs actual. DEVICE_RENAME_COMMAND_IN_PROGRESS: A rename command was sent and awaits the device. `detail` carries expected vs actual. DEVICE_OFFLINE_LESS_THAN_7_DAYS: The device has not checked in for less than 7 days. `detail` carries the last check-in. DEVICE_LAST_SEEN_UNKNOWN: The MDM reports no valid last check-in date for this device.","enum":["MALWAREBYTES_AGENT_NOT_INSTALLED","MALWAREBYTES_INSTALL_IN_PROGRESS","MALWAREBYTES_INSTALL_FAILED","MALWAREBYTES_ENDPOINT_NOT_FOUND","MALWAREBYTES_REGISTRATION_IN_PROGRESS","RECOVERY_OS_STATUS_UNKNOWN","RECOVERY_OS_PROTECTION_PENDING","RECOVERY_OS_PROTECTION_FAILED","RECOVERY_OS_NOT_PROTECTED","RECOVERY_OS_STATUS_UNRECOGNIZED","PROFILE_DELIVERY_PENDING","PROFILE_VERIFYING","PROFILE_NOT_ON_DEVICE","PROFILE_DELIVERY_FAILED","CONTROL_MISSING_PROFILE","POLICY_NOT_EVALUATED","POLICY_NOT_ON_DEVICE","POLICY_FAILED","CONTROL_MISSING_POLICY","ADMIN_ACCOUNT_CREATION_QUEUED","ADMIN_ACCOUNT_CREATION_IN_PROGRESS","ADMIN_ACCOUNT_PRE_EXISTING","NO_MANAGED_ADMIN_TO_ROTATE","PASSWORD_ROTATION_UP_TO_DATE","ADMIN_PASSWORD_UNKNOWN","NO_SECURE_TOKEN_ADMIN_TO_ROTATE","DEVICE_NAME_SUGGESTION_NOT_GENERATED","DEVICE_NAME_ALREADY_USED","DEVICE_NAME_SUGGESTION_FAILED","DEVICE_RENAME_NOT_DISPATCHED","DEVICE_RENAME_COMMAND_IN_PROGRESS","SENTINEL_ONE_AGENT_NOT_INSTALLED","SENTINEL_ONE_AGENT_INSTALLED_NOT_REGISTERED","RUSTDESK_INSTALL_NOT_STARTED","RUSTDESK_INSTALL_IN_PROGRESS","RUSTDESK_INSTALL_FAILED","DEVICE_OFFLINE_LESS_THAN_7_DAYS","DEVICE_LAST_SEEN_UNKNOWN"],"isRequired":true,"uniqueKey":"alert.additionalStatus.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Narrows `status` when several situations share it. Null when `status` already says everything — a compliant device, or a status only one situation can produce — and on rows computed before this field existed. PROFILE_DELIVERY_PENDING: The MDM profile is queued for delivery; the device has not acknowledged it yet. PROFILE_VERIFYING: The MDM profile was installed and the MDM is verifying it applied. PROFILE_NOT_ON_DEVICE: The MDM has no record of this profile on the device; it was never scoped to it. A resend needs a prior delivery, so refresh the device and re-check the control targeting instead. PROFILE_DELIVERY_FAILED: The device rejected the MDM profile. `detail` carries the MDM error. CONTROL_MISSING_PROFILE: The control has no profile to deploy; this is a Primo configuration issue, not a device issue. POLICY_NOT_EVALUATED: The device has not reported a result for the compliance check yet. POLICY_NOT_ON_DEVICE: The compliance check is not attached to this device in the MDM. POLICY_FAILED: The compliance check attached to the control fails on the device. CONTROL_MISSING_POLICY: The control has no compliance check attached; this is a Primo configuration issue. RECOVERY_OS_STATUS_UNKNOWN: Primo has not computed the recovery OS state of this device yet. RECOVERY_OS_PROTECTION_PENDING: The recovery OS password command was sent and awaits the device. RECOVERY_OS_PROTECTION_FAILED: The device rejected the recovery OS password command. RECOVERY_OS_NOT_PROTECTED: Recovery OS has no password set. RECOVERY_OS_STATUS_UNRECOGNIZED: The device reports a recovery OS state Primo does not know. `detail` carries the raw value. SENTINEL_ONE_AGENT_NOT_INSTALLED: The SentinelOne agent is not installed on the device. SENTINEL_ONE_AGENT_INSTALLED_NOT_REGISTERED: The SentinelOne agent is installed but the device is not registered in the SentinelOne console. MALWAREBYTES_AGENT_NOT_INSTALLED: The Malwarebytes agent is not in the device software inventory and Fleet reports no install under way. MALWAREBYTES_INSTALL_IN_PROGRESS: Fleet is installing the Malwarebytes agent on this device; wait for the next inventory sync. `detail` carries the date of the last install attempt. MALWAREBYTES_INSTALL_FAILED: Fleet tried to install the Malwarebytes agent on this device and failed. `detail` carries the date of the attempt; the alert details carry the installer output. MALWAREBYTES_ENDPOINT_NOT_FOUND: The Malwarebytes agent is installed but the device has no endpoint in the Malwarebytes console; the agent is not registered to the company account. MALWAREBYTES_REGISTRATION_IN_PROGRESS: The agent was installed less than an hour ago and registers itself with the token the install carried; wait for the console to sync. `detail` carries the install date. RUSTDESK_INSTALL_NOT_STARTED: No RustDesk installation was recorded for this device yet. RUSTDESK_INSTALL_IN_PROGRESS: The RustDesk installation is in progress. RUSTDESK_INSTALL_FAILED: The RustDesk installation failed on the device. ADMIN_ACCOUNT_CREATION_QUEUED: The managed admin account creation is queued: no creation command has been dispatched to this device yet. ADMIN_ACCOUNT_CREATION_IN_PROGRESS: The managed admin account creation was dispatched and awaits the device. ADMIN_ACCOUNT_PRE_EXISTING: An account with the policy username already exists on the device and was not created by Primo. `detail` carries the username. NO_MANAGED_ADMIN_TO_ROTATE: No local admin account with the policy username exists on the device, nothing to rotate. PASSWORD_ROTATION_UP_TO_DATE: The admin password was rotated within the configured frequency. ADMIN_PASSWORD_UNKNOWN: The admin account was not created by Primo and Primo does not hold its password yet: the next rotation replaces it. `detail` carries the username. NO_SECURE_TOKEN_ADMIN_TO_ROTATE: macOS only: Primo cannot change this password. A reset needs another local admin holding a SecureToken whose password Primo stores, and the device has none. `detail` carries the username. DEVICE_NAME_SUGGESTION_NOT_GENERATED: Primo has not generated the expected name for this device yet. `detail` carries the last failed attempt, if any. DEVICE_NAME_ALREADY_USED: Primo gave up naming this device: the name its rule produces is held by another device of the company. `detail` carries the name and the id of that device — retire it or rename it, then regenerate the name. DEVICE_NAME_SUGGESTION_FAILED: Primo gave up naming this device after repeated invalid AI outputs. `detail` carries the failure type; regenerate the name once the rule is fixed. DEVICE_RENAME_NOT_DISPATCHED: The device name differs from the convention and no rename command is in flight. `detail` carries expected vs actual. DEVICE_RENAME_COMMAND_IN_PROGRESS: A rename command was sent and awaits the device. `detail` carries expected vs actual. DEVICE_OFFLINE_LESS_THAN_7_DAYS: The device has not checked in for less than 7 days. `detail` carries the last check-in. DEVICE_LAST_SEEN_UNKNOWN: The MDM reports no valid last check-in date for this device.","isRequired":true,"uniqueKey":"alert.additionalStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"alert.additionalStatus","typeLabel":"enum\u003cstring> | null"},"detail":{"oneOf":[{"type":"string","description":"Raw evidence behind `additionalStatus` when one exists (an MDM error, an upstream protection status, a date, a name). Human readable, not stable.","isRequired":true,"uniqueKey":"alert.detail.oneOf.0","typeLabel":"string"},{"type":"null","description":"Raw evidence behind `additionalStatus` when one exists (an MDM error, an upstream protection status, a date, a name). Human readable, not stable.","isRequired":true,"uniqueKey":"alert.detail.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"alert.detail","typeLabel":"string | null"},"hasAlert":{"type":"boolean","isRequired":true,"uniqueKey":"alert.hasAlert","typeLabel":"boolean"},"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))$","isRequired":true,"uniqueKey":"alert.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"description":"When the compliance of the device was last checked.","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))$","isRequired":true,"uniqueKey":"alert.updatedAt","typeLabel":"string\u003cdate-time>"},"statusSince":{"oneOf":[{"type":"string","description":"When the device was first observed carrying the current status. Resets on every status change, including between two non-compliant statuses. Null until the device syncs for the first time.","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))$","isRequired":true,"uniqueKey":"alert.statusSince.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the device was first observed carrying the current status. Resets on every status change, including between two non-compliant statuses. Null until the device syncs for the first time.","isRequired":true,"uniqueKey":"alert.statusSince.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"alert.statusSince","typeLabel":"string\u003cdate-time> | null"}},"required":["id","deviceId","deviceName","devicePlatform","owner","complianceRuleId","ruleType","mdmControlId","status","additionalStatus","detail","hasAlert","createdAt","updatedAt","statusSince"],"additionalProperties":false,"isRequired":true,"uniqueKey":"alert","typeLabel":"object"},"mdmControl":{"oneOf":[{"type":"object","description":"The MDM control behind the alert — null for built-in checks (enrollment, online, iCloud lock, Primo requirement).","required":["id","name","category","type","identifier","enabled","profileFleetId","configurationPayload"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.name","typeLabel":"string"},"category":{"type":"string","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.category","typeLabel":"string"},"type":{"type":"string","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.type","typeLabel":"string"},"identifier":{"type":"string","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.identifier","typeLabel":"string"},"enabled":{"type":"boolean","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.enabled","typeLabel":"boolean"},"profileFleetId":{"oneOf":[{"type":"string","description":"MDM identifier of the profile this control deploys — matches an entry of device.fleet.profiles.","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.profileFleetId.oneOf.0","typeLabel":"string"},{"type":"null","description":"MDM identifier of the profile this control deploys — matches an entry of device.fleet.profiles.","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.profileFleetId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"mdmControl.oneOf.0.profileFleetId","typeLabel":"string | null"},"configurationPayload":{"oneOf":[{"type":"object","description":"The Primo configuration the control enforces on the device, secret values included.","additionalProperties":{"oneOf":[{}],"uniqueKey":"mdmControl.oneOf.0.configurationPayload.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"mdmControl.oneOf.0.configurationPayload.oneOf.0","typeLabel":"object"},{"type":"null","description":"The Primo configuration the control enforces on the device, secret values included.","isRequired":true,"uniqueKey":"mdmControl.oneOf.0.configurationPayload.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"mdmControl.oneOf.0.configurationPayload","typeLabel":"object | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"mdmControl.oneOf.0","typeLabel":"object"},{"type":"null","description":"The MDM control behind the alert — null for built-in checks (enrollment, online, iCloud lock, Primo requirement).","isRequired":true,"uniqueKey":"mdmControl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"mdmControl","typeLabel":"object | null"},"device":{"type":"object","properties":{"fleet":{"oneOf":[{"type":"object","description":"Live MDM state of the device — null when the device is no longer enrolled, or when your company has no MDM instance to read it from.","required":["fleetHostId","uuid","displayName","hardwareSerial","status","seenTime","detailUpdatedAt","refetchRequested","uptime","lastRestartedAt","orbitVersion","platform","osVersion","build","codeName","gigsDiskSpaceAvailable","mdm","encryption","profiles","labelNames","idpUsername","idpFullName","bootstrapPackageStatus","bootstrapPackageDetail"],"properties":{"fleetHostId":{"description":"MDM identifier of the host — the join key for MDM operations.","type":"number","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.fleetHostId","typeLabel":"number"},"uuid":{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.uuid","typeLabel":"string"},"displayName":{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.displayName","typeLabel":"string"},"hardwareSerial":{"description":"Can be an empty string — never use it as a join key.","type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.hardwareSerial","typeLabel":"string"},"status":{"description":"Liveness — caps any device-side remediation.","type":"string","enum":["online","offline","missing","new"],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.status","typeLabel":"enum\u003cstring>"},"seenTime":{"description":"When the device last checked in.","type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.seenTime","typeLabel":"string"},"detailUpdatedAt":{"oneOf":[{"type":"string","description":"How fresh the inventory below is.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.detailUpdatedAt.oneOf.0","typeLabel":"string"},{"type":"null","description":"How fresh the inventory below is.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.detailUpdatedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.detailUpdatedAt","typeLabel":"string | null"},"refetchRequested":{"description":"True when a refresh of this host is already queued.","type":"boolean","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.refetchRequested","typeLabel":"boolean"},"uptime":{"oneOf":[{"type":"number","description":"Nanoseconds since boot.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.uptime.oneOf.0","typeLabel":"number"},{"type":"null","description":"Nanoseconds since boot.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.uptime.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.uptime","typeLabel":"number | null"},"lastRestartedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.lastRestartedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.lastRestartedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.lastRestartedAt","typeLabel":"string | null"},"orbitVersion":{"oneOf":[{"type":"string","description":"null means the device does not run the MDM agent.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.orbitVersion.oneOf.0","typeLabel":"string"},{"type":"null","description":"null means the device does not run the MDM agent.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.orbitVersion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.orbitVersion","typeLabel":"string | null"},"platform":{"description":"Raw MDM platform: darwin | windows | ubuntu | debian | fedora…","type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.platform","typeLabel":"string"},"osVersion":{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.osVersion","typeLabel":"string"},"build":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.build.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.build.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.build","typeLabel":"string | null"},"codeName":{"oneOf":[{"type":"string","description":"OS code name; the edition string on Windows.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.codeName.oneOf.0","typeLabel":"string"},{"type":"null","description":"OS code name; the edition string on Windows.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.codeName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.codeName","typeLabel":"string | null"},"gigsDiskSpaceAvailable":{"oneOf":[{"type":"number","description":"Absolute free space in GB.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.gigsDiskSpaceAvailable.oneOf.0","typeLabel":"number"},{"type":"null","description":"Absolute free space in GB.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.gigsDiskSpaceAvailable.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.gigsDiskSpaceAvailable","typeLabel":"number | null"},"mdm":{"type":"object","properties":{"enrollmentStatus":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.enrollmentStatus.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.enrollmentStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.enrollmentStatus","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.name","typeLabel":"string | null"},"serverUrl":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.serverUrl.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.serverUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.serverUrl","typeLabel":"string | null"},"connectedToFleet":{"type":"boolean","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.connectedToFleet","typeLabel":"boolean"},"depProfileError":{"type":"boolean","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.depProfileError","typeLabel":"boolean"},"deviceStatus":{"oneOf":[{"type":"string","description":"unlocked | locked | wiped","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.deviceStatus.oneOf.0","typeLabel":"string"},{"type":"null","description":"unlocked | locked | wiped","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.deviceStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.deviceStatus","typeLabel":"string | null"},"pendingAction":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.pendingAction.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.pendingAction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.pendingAction","typeLabel":"string | null"},"lastEnrolledAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastEnrolledAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastEnrolledAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastEnrolledAt","typeLabel":"string | null"},"lastMdmEnrolledAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastMdmEnrolledAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastMdmEnrolledAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastMdmEnrolledAt","typeLabel":"string | null"},"lastMdmCheckedInAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastMdmCheckedInAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastMdmCheckedInAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm.lastMdmCheckedInAt","typeLabel":"string | null"}},"required":["enrollmentStatus","name","serverUrl","connectedToFleet","depProfileError","deviceStatus","pendingAction","lastEnrolledAt","lastMdmEnrolledAt","lastMdmCheckedInAt"],"additionalProperties":false,"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.mdm","typeLabel":"object"},"encryption":{"type":"object","properties":{"diskEncryptionEnabled":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.diskEncryptionEnabled.oneOf.0","typeLabel":"boolean"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.diskEncryptionEnabled.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.diskEncryptionEnabled","typeLabel":"boolean | null"},"encryptionKeyAvailable":{"oneOf":[{"type":"boolean","description":"Whether a recovery key is escrowed. The key itself is never returned.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.encryptionKeyAvailable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether a recovery key is escrowed. The key itself is never returned.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.encryptionKeyAvailable.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.encryptionKeyAvailable","typeLabel":"boolean | null"},"osSettingsStatus":{"oneOf":[{"type":"string","description":"verified | verifying | pending | action_required | failed","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.osSettingsStatus.oneOf.0","typeLabel":"string"},{"type":"null","description":"verified | verifying | pending | action_required | failed","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.osSettingsStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.osSettingsStatus","typeLabel":"string | null"},"osSettingsDetail":{"oneOf":[{"type":"string","description":"The root cause when encryption is not verified.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.osSettingsDetail.oneOf.0","typeLabel":"string"},{"type":"null","description":"The root cause when encryption is not verified.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.osSettingsDetail.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.osSettingsDetail","typeLabel":"string | null"},"appleActionRequired":{"oneOf":[{"type":"string","description":"What FileVault is waiting for on a Mac. `log_out` and `rotate_key`: the end user logs out and back in. `turn_on_encryption`: the key is set to be escrowed but FileVault is not enforced and the disk is not encrypted, so no prompt reaches the end user; it is an admin setting to change.","enum":["rotate_key","log_out","turn_on_encryption"],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.appleActionRequired.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"What FileVault is waiting for on a Mac. `log_out` and `rotate_key`: the end user logs out and back in. `turn_on_encryption`: the key is set to be escrowed but FileVault is not enforced and the disk is not encrypted, so no prompt reaches the end user; it is an admin setting to change.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.appleActionRequired.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption.appleActionRequired","typeLabel":"enum\u003cstring> | null"}},"required":["diskEncryptionEnabled","encryptionKeyAvailable","osSettingsStatus","osSettingsDetail","appleActionRequired"],"additionalProperties":false,"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.encryption","typeLabel":"object"},"profiles":{"description":"All configuration profiles and their delivery status.","type":"array","items":{"type":"object","properties":{"profileUuid":{"description":"MDM identifier of the profile. Not a valid UUID despite the name — pass verbatim.","type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].profileUuid","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].name","typeLabel":"string"},"status":{"oneOf":[{"type":"string","description":"MDM delivery status of the profile on the device.","enum":["verified","verifying","pending","failed"],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"MDM delivery status of the profile on the device.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].status","typeLabel":"enum\u003cstring> | null"},"operationType":{"oneOf":[{"type":"string","enum":["install","remove"],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].operationType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].operationType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].operationType","typeLabel":"enum\u003cstring> | null"},"detail":{"description":"Delivery error detail reported by MDM when the profile failed.","type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].detail","typeLabel":"string"},"scope":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].scope.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX].scope","typeLabel":"string | null"}},"required":["profileUuid","name","status","operationType","detail","scope"],"additionalProperties":false,"uniqueKey":"device.fleet.oneOf.0.profiles.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.profiles","typeLabel":"object[]"},"labelNames":{"description":"MDM label names the device belongs to.","type":"array","items":{"type":"string","uniqueKey":"device.fleet.oneOf.0.labelNames.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.labelNames","typeLabel":"string[]"},"idpUsername":{"oneOf":[{"type":"string","description":"Identity-provider account the MDM associates with the device.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.idpUsername.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identity-provider account the MDM associates with the device.","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.idpUsername.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.idpUsername","typeLabel":"string | null"},"idpFullName":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.idpFullName.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.idpFullName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.idpFullName","typeLabel":"string | null"},"bootstrapPackageStatus":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.bootstrapPackageStatus.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.bootstrapPackageStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.bootstrapPackageStatus","typeLabel":"string | null"},"bootstrapPackageDetail":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.bootstrapPackageDetail.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.fleet.oneOf.0.bootstrapPackageDetail.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet.oneOf.0.bootstrapPackageDetail","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"device.fleet.oneOf.0","typeLabel":"object"},{"type":"null","description":"Live MDM state of the device — null when the device is no longer enrolled, or when your company has no MDM instance to read it from.","isRequired":true,"uniqueKey":"device.fleet.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.fleet","typeLabel":"object | null"},"primo":{"description":"Device state Primo tracks itself, outside of MDM.","type":"object","properties":{"scriptsEnabled":{"oneOf":[{"type":"boolean","description":"Whether MDM scripts can run on the device — null when unknown. Primo-verified, not the unreliable agent-reported flag: no script remediation when false.","isRequired":true,"uniqueKey":"device.primo.scriptsEnabled.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether MDM scripts can run on the device — null when unknown. Primo-verified, not the unreliable agent-reported flag: no script remediation when false.","isRequired":true,"uniqueKey":"device.primo.scriptsEnabled.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.scriptsEnabled","typeLabel":"boolean | null"},"naming":{"oneOf":[{"type":"object","description":"Expected versus actual device naming — the gap is what a deviceNaming alert reports.","required":["name","computerName","hostname","computerNameSuggestion","hostnameSuggestion","mdmCommandInProgress","lastMDMCommandRunAt","aiSuggestionFailure"],"properties":{"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.name","typeLabel":"string | null"},"computerName":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.computerName.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.computerName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.computerName","typeLabel":"string | null"},"hostname":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.hostname.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.hostname.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.hostname","typeLabel":"string | null"},"computerNameSuggestion":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.computerNameSuggestion.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.computerNameSuggestion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.computerNameSuggestion","typeLabel":"string | null"},"hostnameSuggestion":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.hostnameSuggestion.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.hostnameSuggestion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.hostnameSuggestion","typeLabel":"string | null"},"mdmCommandInProgress":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.mdmCommandInProgress.oneOf.0","typeLabel":"boolean"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.mdmCommandInProgress.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.mdmCommandInProgress","typeLabel":"boolean | null"},"lastMDMCommandRunAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.lastMDMCommandRunAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.lastMDMCommandRunAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.lastMDMCommandRunAt","typeLabel":"string | null"},"aiSuggestionFailure":{"oneOf":[{"type":"object","description":"Why Primo could not generate the expected name — null when it never failed. After 3 attempts it stops trying; on NAME_COLLISION, conflictingDeviceId is the device holding attemptedName.","required":["attempts","lastAttemptAt","failureType","attemptedName","conflictingDeviceId"],"properties":{"attempts":{"type":"number","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.attempts","typeLabel":"number"},"lastAttemptAt":{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.lastAttemptAt","typeLabel":"string"},"failureType":{"oneOf":[{"type":"string","enum":["EMPTY_OUTPUT","NAME_COLLISION","SCHEMA_PARSE_ERROR"],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.failureType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.failureType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.failureType","typeLabel":"enum\u003cstring> | null"},"attemptedName":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.attemptedName.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.attemptedName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.attemptedName","typeLabel":"string | null"},"conflictingDeviceId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.conflictingDeviceId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.conflictingDeviceId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0.conflictingDeviceId","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.0","typeLabel":"object"},{"type":"null","description":"Why Primo could not generate the expected name — null when it never failed. After 3 attempts it stops trying; on NAME_COLLISION, conflictingDeviceId is the device holding attemptedName.","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0.aiSuggestionFailure","typeLabel":"object | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"device.primo.naming.oneOf.0","typeLabel":"object"},{"type":"null","description":"Expected versus actual device naming — the gap is what a deviceNaming alert reports.","isRequired":true,"uniqueKey":"device.primo.naming.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.naming","typeLabel":"object | null"},"malwarebytes":{"oneOf":[{"type":"object","required":["protectionStatus","hasAgentInstalled","hasAlerts","lastActive"],"properties":{"protectionStatus":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0.protectionStatus.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0.protectionStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0.protectionStatus","typeLabel":"string | null"},"hasAgentInstalled":{"type":"boolean","isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0.hasAgentInstalled","typeLabel":"boolean"},"hasAlerts":{"type":"boolean","isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0.hasAlerts","typeLabel":"boolean"},"lastActive":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0.lastActive.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0.lastActive.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0.lastActive","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.malwarebytes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.malwarebytes","typeLabel":"object | null"},"sentinelOne":{"oneOf":[{"type":"object","required":["installed","registeredAt","lastActiveDate","scanFinishedAt","uninstalledAt","infected"],"properties":{"installed":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.installed.oneOf.0","typeLabel":"boolean"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.installed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.installed","typeLabel":"boolean | null"},"registeredAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.registeredAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.registeredAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.registeredAt","typeLabel":"string | null"},"lastActiveDate":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.lastActiveDate.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.lastActiveDate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.lastActiveDate","typeLabel":"string | null"},"scanFinishedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.scanFinishedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.scanFinishedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.scanFinishedAt","typeLabel":"string | null"},"uninstalledAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.uninstalledAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.uninstalledAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.uninstalledAt","typeLabel":"string | null"},"infected":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.infected.oneOf.0","typeLabel":"boolean"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.infected.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0.infected","typeLabel":"boolean | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.sentinelOne.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.sentinelOne","typeLabel":"object | null"},"encryption":{"oneOf":[{"type":"object","required":["encrypted","recoveryKeyRemotelyAvailable"],"properties":{"encrypted":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"device.primo.encryption.oneOf.0.encrypted.oneOf.0","typeLabel":"boolean"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.encryption.oneOf.0.encrypted.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.encryption.oneOf.0.encrypted","typeLabel":"boolean | null"},"recoveryKeyRemotelyAvailable":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"device.primo.encryption.oneOf.0.recoveryKeyRemotelyAvailable.oneOf.0","typeLabel":"boolean"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.encryption.oneOf.0.recoveryKeyRemotelyAvailable.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.encryption.oneOf.0.recoveryKeyRemotelyAvailable","typeLabel":"boolean | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"device.primo.encryption.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.encryption.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.encryption","typeLabel":"object | null"},"recoveryOsStatus":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.recoveryOsStatus.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.recoveryOsStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.recoveryOsStatus","typeLabel":"string | null"},"localUsers":{"description":"Local accounts on the device, with their creation status and password-rotation state.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].id","typeLabel":"string"},"username":{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].username","typeLabel":"string"},"rights":{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].rights","typeLabel":"string"},"accountType":{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].accountType","typeLabel":"string"},"creationStatus":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].creationStatus.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].creationStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].creationStatus","typeLabel":"string | null"},"creationSource":{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].creationSource","typeLabel":"string"},"groupName":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].groupName.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].groupName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].groupName","typeLabel":"string | null"},"passwordChangePending":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].passwordChangePending.oneOf.0","typeLabel":"boolean"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].passwordChangePending.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].passwordChangePending","typeLabel":"boolean | null"},"passwordChangedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].passwordChangedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].passwordChangedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].passwordChangedAt","typeLabel":"string | null"},"createdAt":{"type":"string","isRequired":true,"uniqueKey":"device.primo.localUsers.items.[INDEX].createdAt","typeLabel":"string"}},"required":["id","username","rights","accountType","creationStatus","creationSource","groupName","passwordChangePending","passwordChangedAt","createdAt"],"additionalProperties":false,"uniqueKey":"device.primo.localUsers.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"device.primo.localUsers","typeLabel":"object[]"}},"required":["scriptsEnabled","naming","malwarebytes","sentinelOne","encryption","recoveryOsStatus","localUsers"],"additionalProperties":false,"isRequired":true,"uniqueKey":"device.primo","typeLabel":"object"}},"required":["fleet","primo"],"additionalProperties":false,"isRequired":true,"uniqueKey":"device","typeLabel":"object"},"enforcement":{"type":"object","description":"How this control is enforced on this device. A key is present only when the control carries that artifact, and a control can carry several. All keys absent means the enforcement happens outside MDM — read `device.primo`.","properties":{"profile":{"type":"object","properties":{"fleetId":{"type":"string","isRequired":true,"uniqueKey":"enforcement.profile.fleetId","typeLabel":"string"},"resendable":{"description":"Whether resendDeviceProfile would be accepted for this profile right now — false for a declaration (which has no per-device redelivery) and while a delivery is already in flight (pending / verifying).","type":"boolean","isRequired":true,"uniqueKey":"enforcement.profile.resendable","typeLabel":"boolean"},"delivery":{"oneOf":[{"type":"object","description":"Delivery state of the profile enforcing this control on this device — null when the profile never reached the device.","required":["profileUuid","name","status","operationType","detail","scope"],"properties":{"profileUuid":{"description":"MDM identifier of the profile. Not a valid UUID despite the name — pass verbatim.","type":"string","isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.profileUuid","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.name","typeLabel":"string"},"status":{"oneOf":[{"type":"string","description":"MDM delivery status of the profile on the device.","enum":["verified","verifying","pending","failed"],"isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"MDM delivery status of the profile on the device.","isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.status","typeLabel":"enum\u003cstring> | null"},"operationType":{"oneOf":[{"type":"string","enum":["install","remove"],"isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.operationType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.operationType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.operationType","typeLabel":"enum\u003cstring> | null"},"detail":{"description":"Delivery error detail reported by MDM when the profile failed.","type":"string","isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.detail","typeLabel":"string"},"scope":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.scope.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0.scope","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.0","typeLabel":"object"},{"type":"null","description":"Delivery state of the profile enforcing this control on this device — null when the profile never reached the device.","isRequired":true,"uniqueKey":"enforcement.profile.delivery.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.profile.delivery","typeLabel":"object | null"},"content":{"oneOf":[{"type":"string","description":"The rendered configuration profile deployed to the device.","isRequired":true,"uniqueKey":"enforcement.profile.content.oneOf.0","typeLabel":"string"},{"type":"null","description":"The rendered configuration profile deployed to the device.","isRequired":true,"uniqueKey":"enforcement.profile.content.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.profile.content","typeLabel":"string | null"}},"required":["fleetId","resendable","delivery","content"],"additionalProperties":false,"uniqueKey":"enforcement.profile","typeLabel":"object"},"script":{"type":"object","properties":{"scriptId":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"enforcement.script.scriptId.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.script.scriptId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.script.scriptId","typeLabel":"number | null"},"source":{"oneOf":[{"type":"string","description":"The enforcement script deployed to the device.","isRequired":true,"uniqueKey":"enforcement.script.source.oneOf.0","typeLabel":"string"},{"type":"null","description":"The enforcement script deployed to the device.","isRequired":true,"uniqueKey":"enforcement.script.source.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.script.source","typeLabel":"string | null"},"lastExecution":{"oneOf":[{"type":"object","required":["status","executedAt","exitCode","output"],"properties":{"status":{"type":"string","enum":["ran","pending","error"],"isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0.status","typeLabel":"enum\u003cstring>"},"executedAt":{"type":"string","isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0.executedAt","typeLabel":"string"},"exitCode":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0.exitCode.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0.exitCode.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0.exitCode","typeLabel":"number | null"},"output":{"oneOf":[{"type":"string","description":"Tail of the script output (truncated).","isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0.output.oneOf.0","typeLabel":"string"},{"type":"null","description":"Tail of the script output (truncated).","isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0.output.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0.output","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.script.lastExecution.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.script.lastExecution","typeLabel":"object | null"},"policies":{"description":"Compliance checks attached to this control.","type":"array","items":{"type":"object","properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].id","typeLabel":"number"},"name":{"type":"string","isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].name","typeLabel":"string"},"query":{"description":"The osquery check evaluated on the device.","type":"string","isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].query","typeLabel":"string"},"resolution":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].resolution.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].resolution.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].resolution","typeLabel":"string | null"},"response":{"oneOf":[{"type":"string","description":"Latest device response for the check — empty or null when not yet evaluated.","enum":["pass","fail",""],"isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].response.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Latest device response for the check — empty or null when not yet evaluated.","isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].response.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.script.policies.items.[INDEX].response","typeLabel":"enum\u003cstring> | null"}},"required":["id","name","query","resolution","response"],"additionalProperties":false,"uniqueKey":"enforcement.script.policies.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"enforcement.script.policies","typeLabel":"object[]"}},"required":["scriptId","source","lastExecution","policies"],"additionalProperties":false,"uniqueKey":"enforcement.script","typeLabel":"object"},"software":{"type":"object","properties":{"appId":{"description":"The software this control installs — inspect it with getDeviceSoftware.","type":"string","isRequired":true,"uniqueKey":"enforcement.software.appId","typeLabel":"string"},"install":{"oneOf":[{"type":"object","description":"Install state of that software on this device — null when no install record exists.","required":["softwareId","softwareName","status","installedVersion","availableVersion","lastInstalledAt"],"properties":{"softwareId":{"type":"string","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.softwareId","typeLabel":"string"},"softwareName":{"type":"string","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.softwareName","typeLabel":"string"},"status":{"type":"string","enum":["installed","failed","in_progress","not_installed"],"isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.status","typeLabel":"enum\u003cstring>"},"installedVersion":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.installedVersion.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.installedVersion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.installedVersion","typeLabel":"string | null"},"availableVersion":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.availableVersion.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.availableVersion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.availableVersion","typeLabel":"string | null"},"lastInstalledAt":{"oneOf":[{"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))$","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.lastInstalledAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.lastInstalledAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0.lastInstalledAt","typeLabel":"string\u003cdate-time> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.0","typeLabel":"object"},{"type":"null","description":"Install state of that software on this device — null when no install record exists.","isRequired":true,"uniqueKey":"enforcement.software.install.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.install","typeLabel":"object | null"},"lastInstallResult":{"oneOf":[{"type":"object","description":"Fleet's record of the last install attempt, read only when the install failed — null otherwise, and when Fleet no longer holds it.","required":["installUuid","status","output","preInstallQueryOutput","postInstallScriptOutput","updatedAt"],"properties":{"installUuid":{"type":"string","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.installUuid","typeLabel":"string"},"status":{"oneOf":[{"type":"string","enum":["installed","pending_install","failed_install"],"isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.status","typeLabel":"enum\u003cstring> | null"},"output":{"oneOf":[{"type":"string","description":"What the install script printed — the last 4000 characters.","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.output.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the install script printed — the last 4000 characters.","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.output.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.output","typeLabel":"string | null"},"preInstallQueryOutput":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.preInstallQueryOutput.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.preInstallQueryOutput.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.preInstallQueryOutput","typeLabel":"string | null"},"postInstallScriptOutput":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.postInstallScriptOutput.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.postInstallScriptOutput.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.postInstallScriptOutput","typeLabel":"string | null"},"updatedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.updatedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.updatedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0.updatedAt","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"enforcement.software.lastInstallResult.oneOf.0","typeLabel":"object"},{"type":"null","description":"Fleet's record of the last install attempt, read only when the install failed — null otherwise, and when Fleet no longer holds it.","uniqueKey":"enforcement.software.lastInstallResult.oneOf.1","typeLabel":"null"}],"uniqueKey":"enforcement.software.lastInstallResult","typeLabel":"object | null"}},"required":["appId","install"],"additionalProperties":false,"uniqueKey":"enforcement.software","typeLabel":"object"},"command":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"enforcement.command.id","typeLabel":"string"},"command":{"type":"string","isRequired":true,"uniqueKey":"enforcement.command.command","typeLabel":"string"},"status":{"type":"string","isRequired":true,"uniqueKey":"enforcement.command.status","typeLabel":"string"},"type":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.command.type.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.command.type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.command.type","typeLabel":"string | null"},"source":{"type":"string","isRequired":true,"uniqueKey":"enforcement.command.source","typeLabel":"string"},"initiator":{"type":"string","isRequired":true,"uniqueKey":"enforcement.command.initiator","typeLabel":"string"},"remoteId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.command.remoteId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.command.remoteId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.command.remoteId","typeLabel":"string | null"},"payload":{"description":"What was sent to the device — the script itself for script commands.","isRequired":true,"uniqueKey":"enforcement.command.payload","typeLabel":"any"},"result":{"description":"What the device answered.","isRequired":true,"uniqueKey":"enforcement.command.result","typeLabel":"any"},"uuid":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"enforcement.command.uuid.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"enforcement.command.uuid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"enforcement.command.uuid","typeLabel":"string | 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))$","isRequired":true,"uniqueKey":"enforcement.command.createdAt","typeLabel":"string\u003cdate-time>"},"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))$","isRequired":true,"uniqueKey":"enforcement.command.updatedAt","typeLabel":"string\u003cdate-time>"}},"required":["id","command","status","type","source","initiator","remoteId","payload","result","uuid","createdAt","updatedAt"],"additionalProperties":false,"uniqueKey":"enforcement.command","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"enforcement","typeLabel":"object"}},"required":["alert","mdmControl","device","enforcement"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"alert":{"id":"\u003cstring>","deviceId":"\u003cstring>","deviceName":"\u003cstring>","devicePlatform":"ANDROID","owner":{"id":"\u003cstring>","firstName":"\u003cstring>","lastName":"\u003cstring>"},"complianceRuleId":"\u003cstring>","ruleType":"\u003cstring>","mdmControlId":"\u003cstring>","status":"PROTECTED","additionalStatus":"MALWAREBYTES_AGENT_NOT_INSTALLED","detail":"\u003cstring>","hasAlert":true,"createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z","statusSince":"2023-11-07T05:31:56Z"},"mdmControl":{"id":"\u003cstring>","name":"\u003cstring>","category":"\u003cstring>","type":"\u003cstring>","identifier":"\u003cstring>","enabled":true,"profileFleetId":"\u003cstring>","configurationPayload":{}},"device":{"fleet":{"fleetHostId":123,"uuid":"\u003cstring>","displayName":"\u003cstring>","hardwareSerial":"\u003cstring>","status":"online","seenTime":"\u003cstring>","detailUpdatedAt":"\u003cstring>","refetchRequested":true,"uptime":123,"lastRestartedAt":"\u003cstring>","orbitVersion":"\u003cstring>","platform":"\u003cstring>","osVersion":"\u003cstring>","build":"\u003cstring>","codeName":"\u003cstring>","gigsDiskSpaceAvailable":123,"mdm":{"enrollmentStatus":"\u003cstring>","name":"\u003cstring>","serverUrl":"\u003cstring>","connectedToFleet":true,"depProfileError":true,"deviceStatus":"\u003cstring>","pendingAction":"\u003cstring>","lastEnrolledAt":"\u003cstring>","lastMdmEnrolledAt":"\u003cstring>","lastMdmCheckedInAt":"\u003cstring>"},"encryption":{"diskEncryptionEnabled":true,"encryptionKeyAvailable":true,"osSettingsStatus":"\u003cstring>","osSettingsDetail":"\u003cstring>","appleActionRequired":"rotate_key"},"profiles":[{"profileUuid":"\u003cstring>","name":"\u003cstring>","status":"verified","operationType":"install","detail":"\u003cstring>","scope":"\u003cstring>"}],"labelNames":["\u003cstring>"],"idpUsername":"\u003cstring>","idpFullName":"\u003cstring>","bootstrapPackageStatus":"\u003cstring>","bootstrapPackageDetail":"\u003cstring>"},"primo":{"scriptsEnabled":true,"naming":{"name":"\u003cstring>","computerName":"\u003cstring>","hostname":"\u003cstring>","computerNameSuggestion":"\u003cstring>","hostnameSuggestion":"\u003cstring>","mdmCommandInProgress":true,"lastMDMCommandRunAt":"\u003cstring>","aiSuggestionFailure":{"attempts":123,"lastAttemptAt":"\u003cstring>","failureType":"EMPTY_OUTPUT","attemptedName":"\u003cstring>","conflictingDeviceId":"\u003cstring>"}},"malwarebytes":{"protectionStatus":"\u003cstring>","hasAgentInstalled":true,"hasAlerts":true,"lastActive":"\u003cstring>"},"sentinelOne":{"installed":true,"registeredAt":"\u003cstring>","lastActiveDate":"\u003cstring>","scanFinishedAt":"\u003cstring>","uninstalledAt":"\u003cstring>","infected":true},"encryption":{"encrypted":true,"recoveryKeyRemotelyAvailable":true},"recoveryOsStatus":"\u003cstring>","localUsers":[{"id":"\u003cstring>","username":"\u003cstring>","rights":"\u003cstring>","accountType":"\u003cstring>","creationStatus":"\u003cstring>","creationSource":"\u003cstring>","groupName":"\u003cstring>","passwordChangePending":true,"passwordChangedAt":"\u003cstring>","createdAt":"\u003cstring>"}]}},"enforcement":{"profile":{"fleetId":"\u003cstring>","resendable":true,"delivery":{"profileUuid":"\u003cstring>","name":"\u003cstring>","status":"verified","operationType":"install","detail":"\u003cstring>","scope":"\u003cstring>"},"content":"\u003cstring>"},"script":{"scriptId":123,"source":"\u003cstring>","lastExecution":{"status":"ran","executedAt":"\u003cstring>","exitCode":123,"output":"\u003cstring>"},"policies":[{"id":123,"name":"\u003cstring>","query":"\u003cstring>","resolution":"\u003cstring>","response":"pass"}]},"software":{"appId":"\u003cstring>","install":{"softwareId":"\u003cstring>","softwareName":"\u003cstring>","status":"installed","installedVersion":"\u003cstring>","availableVersion":"\u003cstring>","lastInstalledAt":"2023-11-07T05:31:56Z"},"lastInstallResult":{"installUuid":"\u003cstring>","status":"installed","output":"\u003cstring>","preInstallQueryOutput":"\u003cstring>","postInstallScriptOutput":"\u003cstring>","updatedAt":"\u003cstring>"}},"command":{"id":"\u003cstring>","command":"\u003cstring>","status":"\u003cstring>","type":"\u003cstring>","source":"\u003cstring>","initiator":"\u003cstring>","remoteId":"\u003cstring>","payload":"\u003cunknown>","result":"\u003cunknown>","uuid":"\u003cstring>","createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z"}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"7d0cc4ae-eb39-4e0a-a840-f618309b7ec3":{"apikey":{"scheme":"bearer","bearerFormat":"API key","type":"http","description":"Use your Primo API key in the Authorization header as `Bearer \u003cAPI_KEY>`.","scopes":[],"schemeName":"apikey"}}},"servers":{"50d3319f-7e18-4b50-882b-d21ea159b983":{"url":"https://api.getprimo.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"scheme":"bearer","bearerFormat":"API key","type":"http","description":"Use your Primo API key in the Authorization header as `Bearer \u003cAPI_KEY>`.","scopes":[],"schemeName":"apikey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use your Primo API key in the Authorization header as `Bearer \u003cAPI_KEY>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apikey","name":"Authorization"}],"title":"apikey"}]},"originalFileLocation":"https://api.getprimo.com/openapi.json"},"subdomain":"primo","siteName":"Primo Documentation","title":"Get the compliance alert a ticket was opened for, with its full remediation context - Primo Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context","matchLevel":0}}},"lastModified":"2026-10-30T10:36:56.099Z","originalFileLocation":"api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as getComplianceAlertDetails — the alert, its MDM control with the configuration in clear, the device on both sides and the enforcement facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with getTicket. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Primo Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get the compliance alert a ticket was opened for, with its full remediation context - Primo Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as getComplianceAlertDetails — the alert, its MDM control with the configuration in clear, the device on both sides and the enforcement facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with getTicket. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Primo Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://primo.mintlify.app/_mintlify/api/og/v2?division=Compliance\u0026amp;title=Get+the+compliance+alert+a+ticket+was+opened+for%2C+with+its+full+remediation+context\u0026amp;description=Start+here+when+working+a+compliance+ticket%3A+it+answers+what+this+ticket+is+about.+Return+the+same+payload+as+%60getComplianceAlertDetails%60+%E2%80%94+the+alert%2C+its+MDM+c\u0026amp;theme=1a34693c49992bd87ad438c4\u0026amp;signature=a8d636043c7950c3a6044f0f0dbf39f60032c3c11405a501c3a1d694aa4900b1\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get the compliance alert a ticket was opened for, with its full remediation context - Primo Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as getComplianceAlertDetails — the alert, its MDM control with the configuration in clear, the device on both sides and the enforcement facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with getTicket. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://primo.mintlify.app/_mintlify/api/og/v2?division=Compliance\u0026amp;title=Get+the+compliance+alert+a+ticket+was+opened+for%2C+with+its+full+remediation+context\u0026amp;description=Start+here+when+working+a+compliance+ticket%3A+it+answers+what+this+ticket+is+about.+Return+the+same+payload+as+%60getComplianceAlertDetails%60+%E2%80%94+the+alert%2C+its+MDM+c\u0026amp;theme=1a34693c49992bd87ad438c4\u0026amp;signature=a8d636043c7950c3a6044f0f0dbf39f60032c3c11405a501c3a1d694aa4900b1\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/primo/lgSlZfpa2Z4VaaaL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Primo Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#232D32\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getprimo.com/#organization\",\"name\":\"Primo Documentation\",\"url\":\"https://docs.getprimo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/primo/ScCUJrxVXMw2Xoed/logo/light.svg?fit=max\u0026auto=format\u0026n=ScCUJrxVXMw2Xoed\u0026q=85\u0026s=768eec9f1a23fe9fa9696734ed4a9a92\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getprimo.com#website\",\"name\":\"Primo Documentation\",\"url\":\"https://docs.getprimo.com\",\"publisher\":{\"@id\":\"https://docs.getprimo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context#webpage\",\"url\":\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context\",\"name\":\"Get the compliance alert a ticket was opened for, with its full remediation context\",\"description\":\"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as getComplianceAlertDetails — the alert, its MDM control with the configuration in clear, the device on both sides and the enforcement facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with getTicket. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.\",\"dateModified\":\"2026-10-30T10:36:56.099Z\",\"isPartOf\":{\"@id\":\"https://docs.getprimo.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.getprimo.com/api-reference/admins/get-all-admins\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compliance\",\"item\":\"https://docs.getprimo.com/api-reference/compliance/get-all-active-compliance-alerts\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get the compliance alert a ticket was opened for, with its full remediation context\",\"item\":\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context#apireference\",\"headline\":\"Get the compliance alert a ticket was opened for, with its full remediation context\",\"name\":\"Get the compliance alert a ticket was opened for, with its full remediation context\",\"description\":\"Start here when working a compliance ticket: it answers what this ticket is about. Return the same payload as getComplianceAlertDetails — the alert, its MDM control with the configuration in clear, the device on both sides and the enforcement facets to remediate — for the alert that opened the ticket, so there is no need to guess it from the device or the title. The response carries nothing from the ticket itself; read the ticket with getTicket. A 404 is final and means there is nothing to remediate here — either the ticket is not a compliance ticket, or its alert is no longer raised because the device came back into compliance; a retry returns the same 404 and no other endpoint finds the alert. A compliance ticket is closed automatically by the compliance computation once the device complies.\",\"url\":\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getprimo.com/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context#webpage\"},\"dateModified\":\"2026-10-30T10:36:56.099Z\",\"publisher\":{\"@id\":\"https://docs.getprimo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getprimo.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Primo Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Primo Documentation","nav":{"global":null,"languages":[{"language":"en","default":true,"tabs":[{"tab":"Documentation","icon":"notebook","pages":[{"title":"Documentation","href":""}]},{"tab":"Guides","icon":"briefcase","pages":[{"title":"Guides","href":"/guides/device-management/resolve-login-issue"}]},{"tab":"Maintenance","icon":"wrench","pages":[{"title":"Maintenance","href":"/maintenance/overview"}]},{"tab":"Changelog","icon":"megaphone","pages":[{"title":"Changelog","href":"/changelog/2026/october"}]},{"tab":"Developers","icon":"code","groups":[{"group":"Get started","icon":"compass","pages":[{"title":"Create API keys for Primo","sidebarTitle":"Primo API keys","href":"/api/create-primo-api-key"},{"title":"Create API keys for Fleet","sidebarTitle":"Fleet API keys","href":"/api/create-fleet-api-key"},{"title":"Connect to our MCP","sidebarTitle":"MCP server","href":"/get-started/primo-mcp-server"}]},{"group":"API Reference","icon":"code-simple","pages":[{"group":"Admins","pages":[{"title":"Get all admins","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /admins","href":"/api-reference/admins/get-all-admins"},{"title":"Email the company admins","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /admins/email","href":"/api-reference/admins/email-the-company-admins"},{"title":"Email an admin a recap","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /admins/recap-email","href":"/api-reference/admins/email-an-admin-a-recap"}]},{"group":"Company","pages":[{"title":"Get the authenticated company","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /company","href":"/api-reference/company/get-the-authenticated-company"},{"title":"Get the company metrics report","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /company/metrics","href":"/api-reference/company/get-the-company-metrics-report"}]},{"group":"CustomFields","pages":[{"title":"List custom fields","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /custom-fields","href":"/api-reference/customfields/list-custom-fields"},{"title":"Create a custom field","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /custom-fields","href":"/api-reference/customfields/create-a-custom-field"},{"title":"Get a custom field by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /custom-fields/{customFieldId}","href":"/api-reference/customfields/get-a-custom-field-by-id"},{"title":"Update a custom field","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /custom-fields/{customFieldId}","href":"/api-reference/customfields/update-a-custom-field"},{"title":"Archive a custom field","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /custom-fields/{customFieldId}/archive","href":"/api-reference/customfields/archive-a-custom-field"}]},{"group":"Workspace","pages":[{"title":"Get all companies in the workspace","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /workspace/companies","href":"/api-reference/workspace/get-all-companies-in-the-workspace"},{"title":"Create a company in the workspace","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /workspace/companies","href":"/api-reference/workspace/create-a-company-in-the-workspace"},{"title":"Get a company by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /workspace/companies/{companyId}","href":"/api-reference/workspace/get-a-company-by-id"},{"title":"Update the options of a draft company","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /workspace/companies/{companyId}/options","href":"/api-reference/workspace/update-the-options-of-a-draft-company"},{"title":"Activate a draft company","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /workspace/companies/{companyId}/activate","href":"/api-reference/workspace/activate-a-draft-company"}]},{"group":"WorkspaceCatalog","pages":[{"title":"Create products in the workspace catalog","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /workspace/catalog/products/batch","href":"/api-reference/workspacecatalog/create-products-in-the-workspace-catalog"}]},{"group":"Devices","pages":[{"title":"Get all devices (deprecated)","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices","href":"/api-reference/devices/get-all-devices-deprecated"},{"title":"Create a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices","href":"/api-reference/devices/create-a-device"},{"title":"Update several devices","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /devices","href":"/api-reference/devices/update-several-devices"},{"title":"Export devices as CSV","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/export","href":"/api-reference/devices/export-devices-as-csv"},{"title":"Export the device and employee inventory as CSV","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/inventory/export","href":"/api-reference/devices/export-the-device-and-employee-inventory-as-csv"},{"title":"Get the device search filter catalog","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/filters-options","href":"/api-reference/devices/get-the-device-search-filter-catalog"},{"title":"Get a device by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}","href":"/api-reference/devices/get-a-device-by-id"},{"title":"Delete a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /devices/{deviceId}","href":"/api-reference/devices/delete-a-device"},{"title":"Update a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /devices/{deviceId}","href":"/api-reference/devices/update-a-device"},{"title":"Lock a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/lock","href":"/api-reference/devices/lock-a-device"},{"title":"Unlock a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/unlock","href":"/api-reference/devices/unlock-a-device"},{"title":"Wipe a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/wipe","href":"/api-reference/devices/wipe-a-device"},{"title":"Run a script on one device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/run-script","href":"/api-reference/devices/run-a-script-on-one-device"},{"title":"List a device's script history","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/script-executions","href":"/api-reference/devices/list-a-devices-script-history"},{"title":"Retire a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/retire","href":"/api-reference/devices/retire-a-device"},{"title":"Reboot a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/reboot","href":"/api-reference/devices/reboot-a-device"},{"title":"Disenroll a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/disenroll","href":"/api-reference/devices/disenroll-a-device"},{"title":"Move a device to stock","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/move-to-stock","href":"/api-reference/devices/move-a-device-to-stock"},{"title":"Move a device to in-use","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/move-to-in-use","href":"/api-reference/devices/move-a-device-to-in-use"},{"title":"Put a device back in stock","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/put-back-in-stock","href":"/api-reference/devices/put-a-device-back-in-stock"},{"title":"Update a device owner","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/owner","href":"/api-reference/devices/update-a-device-owner"},{"title":"Update device tags","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/tags","href":"/api-reference/devices/update-device-tags"},{"title":"Get device events","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/events","href":"/api-reference/devices/get-device-events"},{"title":"List local user accounts on a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/users","href":"/api-reference/devices/list-local-user-accounts-on-a-device"},{"title":"List local user accounts on multiple devices","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/users","href":"/api-reference/devices/list-local-user-accounts-on-multiple-devices"},{"title":"Get device code history","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/code-history","href":"/api-reference/devices/get-device-code-history"},{"title":"Get device reachability","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/reachability","href":"/api-reference/devices/get-device-reachability"},{"title":"Get code history for multiple devices","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/code-history","href":"/api-reference/devices/get-code-history-for-multiple-devices"},{"title":"Get device custom fields","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/custom-fields","href":"/api-reference/devices/get-device-custom-fields"},{"title":"Get custom fields for multiple devices","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/custom-fields","href":"/api-reference/devices/get-custom-fields-for-multiple-devices"},{"title":"Set a device custom field value","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /devices/{deviceId}/custom-fields/{customFieldId}","href":"/api-reference/devices/set-a-device-custom-field-value"},{"title":"Clear a device custom field value","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /devices/{deviceId}/custom-fields/{customFieldId}","href":"/api-reference/devices/clear-a-device-custom-field-value"},{"title":"Get devices, optionally narrowed by a filter","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/search","href":"/api-reference/devices/get-devices-optionally-narrowed-by-a-filter"},{"title":"Count devices for up to 20 filters in one call","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/count","href":"/api-reference/devices/count-devices-for-up-to-20-filters-in-one-call"},{"title":"Set device custom field values in batch","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/custom-fields/batch","href":"/api-reference/devices/set-device-custom-field-values-in-batch"},{"title":"List software on a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/software","href":"/api-reference/devices/list-software-on-a-device"},{"title":"List the MDM controls that apply to a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/mdm-controls","href":"/api-reference/devices/list-the-mdm-controls-that-apply-to-a-device"},{"title":"Get software install logs on a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/software/{softwareId}/install-logs","href":"/api-reference/devices/get-software-install-logs-on-a-device"},{"title":"Install a software on a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/software/{softwareId}/install","href":"/api-reference/devices/install-a-software-on-a-device"},{"title":"Uninstall a software from a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/software/{softwareId}/uninstall","href":"/api-reference/devices/uninstall-a-software-from-a-device"},{"title":"Sync a device software state","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/software/sync","href":"/api-reference/devices/sync-a-device-software-state"},{"title":"List past activities for a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/activities","href":"/api-reference/devices/list-past-activities-for-a-device"},{"title":"List upcoming activities for a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/activities/upcoming","href":"/api-reference/devices/list-upcoming-activities-for-a-device"},{"title":"Cancel a queued activity on a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /devices/{deviceId}/activities/upcoming/{activityUuid}","href":"/api-reference/devices/cancel-a-queued-activity-on-a-device"},{"title":"Resend one MDM control's configuration profile to one device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/mdm-controls/{mdmControlId}/resend-profile","href":"/api-reference/devices/resend-one-mdm-controls-configuration-profile-to-one-device"},{"title":"Refresh Primo's record of a device from the MDM","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/sync","href":"/api-reference/devices/refresh-primos-record-of-a-device-from-the-mdm"},{"title":"Ask a device to report its state back to the MDM","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /devices/{deviceId}/refetch","href":"/api-reference/devices/ask-a-device-to-report-its-state-back-to-the-mdm"},{"title":"List MDM commands for a device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/commands","href":"/api-reference/devices/list-mdm-commands-for-a-device"},{"title":"Get results for an MDM command","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /devices/{deviceId}/commands/{commandUuid}/results","href":"/api-reference/devices/get-results-for-an-mdm-command"}]},{"group":"Scripts","pages":[{"title":"List the saved scripts","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /scripts","href":"/api-reference/scripts/list-the-saved-scripts"},{"title":"List script runs","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /script-runs","href":"/api-reference/scripts/list-script-runs"},{"title":"Run a script on a target","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /script-runs","href":"/api-reference/scripts/run-a-script-on-a-target"},{"title":"Count the devices a script run would reach","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /script-runs/preview-target-count","href":"/api-reference/scripts/count-the-devices-a-script-run-would-reach"},{"title":"List the per-device results of a script run","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /script-runs/{runId}/executions","href":"/api-reference/scripts/list-the-per-device-results-of-a-script-run"},{"title":"Get a script run","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /script-runs/{runId}","href":"/api-reference/scripts/get-a-script-run"},{"title":"Get a saved script and its source","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /scripts/{scriptId}","href":"/api-reference/scripts/get-a-saved-script-and-its-source"},{"title":"Add a Primo remediation kit to Fleet","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /scripts/remediation-kits","href":"/api-reference/scripts/add-a-primo-remediation-kit-to-fleet"},{"title":"Read what a remediation kit's reports found on each device","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /scripts/remediation-kits/{kit}/findings","href":"/api-reference/scripts/read-what-a-remediation-kits-reports-found-on-each-device"}]},{"group":"MdmControls","pages":[{"title":"Get all MDM controls","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /mdm-controls","href":"/api-reference/mdmcontrols/get-all-mdm-controls"},{"title":"Create an MDM control","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /mdm-controls","href":"/api-reference/mdmcontrols/create-an-mdm-control"},{"title":"Get the MDM control type catalog","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /mdm-controls/catalog","href":"/api-reference/mdmcontrols/get-the-mdm-control-type-catalog"},{"title":"Get an MDM control by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /mdm-controls/{mdmControlId}","href":"/api-reference/mdmcontrols/get-an-mdm-control-by-id"},{"title":"Delete an MDM control","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /mdm-controls/{mdmControlId}","href":"/api-reference/mdmcontrols/delete-an-mdm-control"},{"title":"Update an MDM control","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /mdm-controls/{mdmControlId}","href":"/api-reference/mdmcontrols/update-an-mdm-control"},{"title":"Update an MDM control's tags","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /mdm-controls/{mdmControlId}/tags","href":"/api-reference/mdmcontrols/update-an-mdm-controls-tags"}]},{"group":"DeviceGroups","pages":[{"title":"Get all device groups","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /device-groups","href":"/api-reference/devicegroups/get-all-device-groups"},{"title":"Create a device group","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /device-groups","href":"/api-reference/devicegroups/create-a-device-group"},{"title":"Get what uses a device group","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /device-groups/{deviceGroupId}/relations","href":"/api-reference/devicegroups/get-what-uses-a-device-group"},{"title":"Get the device group filter catalog","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /device-groups/filters-options","href":"/api-reference/devicegroups/get-the-device-group-filter-catalog"},{"title":"Get a device group by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /device-groups/{deviceGroupId}","href":"/api-reference/devicegroups/get-a-device-group-by-id"},{"title":"Update a device group","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /device-groups/{deviceGroupId}","href":"/api-reference/devicegroups/update-a-device-group"},{"title":"Delete a device group","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /device-groups/{deviceGroupId}","href":"/api-reference/devicegroups/delete-a-device-group"},{"title":"Check a device group target before creating the group","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /device-groups/validate-target","href":"/api-reference/devicegroups/check-a-device-group-target-before-creating-the-group"}]},{"group":"Employees","pages":[{"title":"Get employees, optionally narrowed by a search","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /employees","href":"/api-reference/employees/get-employees-optionally-narrowed-by-a-search"},{"title":"Create an employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /employees","href":"/api-reference/employees/create-an-employee"},{"title":"Get an employee by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /employees/{employeeId}","href":"/api-reference/employees/get-an-employee-by-id"},{"title":"Update an employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /employees/{employeeId}","href":"/api-reference/employees/update-an-employee"},{"title":"Get employee custom fields","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /employees/{employeeId}/custom-fields","href":"/api-reference/employees/get-employee-custom-fields"},{"title":"Hide an employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /employees/{employeeId}/hide","href":"/api-reference/employees/hide-an-employee"},{"title":"Set an employee custom field value","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /employees/{employeeId}/custom-fields/{customFieldId}","href":"/api-reference/employees/set-an-employee-custom-field-value"},{"title":"Clear an employee custom field value","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /employees/{employeeId}/custom-fields/{customFieldId}","href":"/api-reference/employees/clear-an-employee-custom-field-value"},{"title":"Unhide an employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /employees/{employeeId}/unhide","href":"/api-reference/employees/unhide-an-employee"},{"title":"Send an MDM enrollment request to an employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /employees/{employeeId}/send-enrollment-request","href":"/api-reference/employees/send-an-mdm-enrollment-request-to-an-employee"}]},{"group":"EquipmentPolicy","pages":[{"title":"Get the equipment policy","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /equipment-policy","href":"/api-reference/equipmentpolicy/get-the-equipment-policy"},{"title":"Get the computed equipment policy result","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /equipment-policy/result","href":"/api-reference/equipmentpolicy/get-the-computed-equipment-policy-result"}]},{"group":"PurchasingPolicy","pages":[{"title":"Get the purchasing policy","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /purchasing-policy","href":"/api-reference/purchasingpolicy/get-the-purchasing-policy"}]},{"group":"Accessories","pages":[{"title":"Get accessories, optionally narrowed to stock and to one type","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /accessories","href":"/api-reference/accessories/get-accessories-optionally-narrowed-to-stock-and-to-one-type"},{"title":"Create an accessory","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /accessories","href":"/api-reference/accessories/create-an-accessory"},{"title":"Get an accessory by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /accessories/{accessoryId}","href":"/api-reference/accessories/get-an-accessory-by-id"},{"title":"Update an accessory","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /accessories/{accessoryId}","href":"/api-reference/accessories/update-an-accessory"},{"title":"Get accessory custom fields","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /accessories/{accessoryId}/custom-fields","href":"/api-reference/accessories/get-accessory-custom-fields"},{"title":"Set an accessory custom field value","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /accessories/{accessoryId}/custom-fields/{customFieldId}","href":"/api-reference/accessories/set-an-accessory-custom-field-value"},{"title":"Clear an accessory custom field value","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /accessories/{accessoryId}/custom-fields/{customFieldId}","href":"/api-reference/accessories/clear-an-accessory-custom-field-value"},{"title":"Assign an accessory to an employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /accessories/{accessoryId}/assign","href":"/api-reference/accessories/assign-an-accessory-to-an-employee"},{"title":"Archive an accessory","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /accessories/{accessoryId}/archive","href":"/api-reference/accessories/archive-an-accessory"}]},{"group":"Compliance","pages":[{"title":"Get all active compliance alerts","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /compliance/alerts","href":"/api-reference/compliance/get-all-active-compliance-alerts"},{"title":"Get compliance alerts, optionally narrowed by a filter","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /compliance/alerts/search","href":"/api-reference/compliance/get-compliance-alerts-optionally-narrowed-by-a-filter"},{"title":"Get the full remediation context of one compliance alert","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /compliance/alerts/{alertId}/details","href":"/api-reference/compliance/get-the-full-remediation-context-of-one-compliance-alert"},{"title":"Get the full remediation context of several compliance alerts","description":"Return, for MULTIPLE compliance alerts in one call, the same payload as `getComplianceAlertDetails` — the alert, its MDM control with the configuration in clear, the device on both sides and the `enforcement` facets — as `items`, in the order of `alertIds` (up to 25 per call, from `getComplianceAlerts` or `searchComplianceAlerts`). Prefer this over calling `getComplianceAlertDetails` once per alert. An id that matches no alert of your company is listed in `notFoundAlertIds` instead of failing the call: the check no longer applies to that device, and asking again returns the same answer. Each alert weighs 3 to 8 KB, more when its control carries a large profile or script.","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /compliance/alerts/details","href":"/api-reference/compliance/get-the-full-remediation-context-of-several-compliance-alerts"},{"title":"Get the compliance alert a ticket was opened for, with its full remediation context","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /compliance/tickets/{ticketId}/alert/details","href":"/api-reference/compliance/get-the-compliance-alert-a-ticket-was-opened-for-with-its-full-remediation-context"},{"title":"Get the compliance alert filter catalog","description":"Return every criterion a compliance alert filter accepts — each with its `key`, `valueType`, allowed operations and live company values (the devices, platforms and owners that currently have an alert). This is the vocabulary for `searchComplianceAlerts`: use a criterion `key` as the filter key and one of its `values` inside the clause (`{\"\u003ckey>\":{\"operationType\":\"INCLUDE\",\"values\":[\"\u003cvalue>\"]}}`). Call this first whenever you are unsure a criterion or a value exists — `searchComplianceAlerts` rejects an unknown key with 400. `ownerId` values are employee ids; resolve their names with `getEmployees`.","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /compliance/alerts/filters-options","href":"/api-reference/compliance/get-the-compliance-alert-filter-catalog"},{"title":"Get all compliance alert rules","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /compliance/alert-rules","href":"/api-reference/compliance/get-all-compliance-alert-rules"},{"title":"Create or upsert a compliance alert rule","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /compliance/alert-rules","href":"/api-reference/compliance/create-or-upsert-a-compliance-alert-rule"},{"title":"Update a compliance alert rule","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /compliance/alert-rules/{ruleId}","href":"/api-reference/compliance/update-a-compliance-alert-rule"}]},{"group":"Tasks","pages":[{"title":"Get all tasks","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /tasks","href":"/api-reference/tasks/get-all-tasks"},{"title":"Create a task","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tasks","href":"/api-reference/tasks/create-a-task"},{"title":"Schedule a dormant task for later on a ticket you work","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tasks/schedule","href":"/api-reference/tasks/schedule-a-dormant-task-for-later-on-a-ticket-you-work"},{"title":"Update task status","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tasks/{taskId}/status","href":"/api-reference/tasks/update-task-status"},{"title":"Update task assignee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tasks/{taskId}/assignee","href":"/api-reference/tasks/update-task-assignee"}]},{"group":"Tickets","pages":[{"title":"Get all tickets","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /tickets","href":"/api-reference/tickets/get-all-tickets"},{"title":"Create a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets","href":"/api-reference/tickets/create-a-ticket"},{"title":"Count tickets for up to 20 queries in one call","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets/count","href":"/api-reference/tickets/count-tickets-for-up-to-20-queries-in-one-call"},{"title":"Get a ticket by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /tickets/{ticketId}","href":"/api-reference/tickets/get-a-ticket-by-id"},{"title":"Delete a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /tickets/{ticketId}","href":"/api-reference/tickets/delete-a-ticket"},{"title":"Update a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /tickets/{ticketId}","href":"/api-reference/tickets/update-a-ticket"},{"title":"Update ticket status","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets/{ticketId}/status","href":"/api-reference/tickets/update-ticket-status"},{"title":"Update ticket assignee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets/{ticketId}/assignee","href":"/api-reference/tickets/update-ticket-assignee"},{"title":"Update the AI agent on a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets/{ticketId}/ai-agent","href":"/api-reference/tickets/update-the-ai-agent-on-a-ticket"},{"title":"Update ticket priority","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets/{ticketId}/priority","href":"/api-reference/tickets/update-ticket-priority"},{"title":"Create a ticket comment","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets/{ticketId}/comments","href":"/api-reference/tickets/create-a-ticket-comment"},{"title":"Link a related object to a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets/{ticketId}/related","href":"/api-reference/tickets/link-a-related-object-to-a-ticket"},{"title":"Unlink a related object from a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /tickets/{ticketId}/related/{linkId}","href":"/api-reference/tickets/unlink-a-related-object-from-a-ticket"},{"title":"List subscribers of a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /tickets/{ticketId}/subscribers","href":"/api-reference/tickets/list-subscribers-of-a-ticket"},{"title":"Add subscribers to a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /tickets/{ticketId}/subscribers","href":"/api-reference/tickets/add-subscribers-to-a-ticket"},{"title":"Remove a subscriber from a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /tickets/{ticketId}/subscribers","href":"/api-reference/tickets/remove-a-subscriber-from-a-ticket"}]},{"group":"TicketTags","pages":[{"title":"List ticket tags","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ticket-tags","href":"/api-reference/tickettags/list-ticket-tags"},{"title":"Create a ticket tag","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /ticket-tags","href":"/api-reference/tickettags/create-a-ticket-tag"},{"title":"Delete a ticket tag","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /ticket-tags/{tagId}","href":"/api-reference/tickettags/delete-a-ticket-tag"},{"title":"Update a ticket tag","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /ticket-tags/{tagId}","href":"/api-reference/tickettags/update-a-ticket-tag"}]},{"group":"Softwares","pages":[{"title":"Get all softwares","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /software","href":"/api-reference/softwares/get-all-softwares"},{"title":"List vulnerabilities","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /software/vulnerabilities","href":"/api-reference/softwares/list-vulnerabilities"},{"title":"Get a vulnerability by CVE","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /software/vulnerability/{cve}","href":"/api-reference/softwares/get-a-vulnerability-by-cve"},{"title":"Get a software by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /software/{softwareId}","href":"/api-reference/softwares/get-a-software-by-id"},{"title":"Update a software","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /software/{softwareId}","href":"/api-reference/softwares/update-a-software"},{"title":"Delete a software","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /software/{softwareId}","href":"/api-reference/softwares/delete-a-software"},{"title":"List devices targeted by a software","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /software/{softwareId}/devices","href":"/api-reference/softwares/list-devices-targeted-by-a-software"},{"title":"Sync the company software catalog","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /software/sync","href":"/api-reference/softwares/sync-the-company-software-catalog"},{"title":"Simulate a software target count","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /software/simulate-target-count","href":"/api-reference/softwares/simulate-a-software-target-count"},{"title":"Get target device counts for softwares","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /software/target-counts","href":"/api-reference/softwares/get-target-device-counts-for-softwares"},{"title":"Update a software's install scripts","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /software/{softwareId}/scripts","href":"/api-reference/softwares/update-a-softwares-install-scripts"},{"title":"Get install status counts for softwares","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /software/device-counts","href":"/api-reference/softwares/get-install-status-counts-for-softwares"}]},{"group":"BillingProfiles","pages":[{"title":"Get all billing profiles","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /billing-profiles","href":"/api-reference/billingprofiles/get-all-billing-profiles"}]},{"group":"AiUsage","pages":[{"title":"Get the company AI credit usage","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-usage","href":"/api-reference/aiusage/get-the-company-ai-credit-usage"}]},{"group":"AiTools","pages":[{"title":"Get the AI tools overview of the company","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-tools/overview","href":"/api-reference/aitools/get-the-ai-tools-overview-of-the-company"},{"title":"Get the AI tools found on the devices","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-tools/tools","href":"/api-reference/aitools/get-the-ai-tools-found-on-the-devices"},{"title":"Get one AI tool and the devices it is on","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-tools/tools/{toolKey}","href":"/api-reference/aitools/get-one-ai-tool-and-the-devices-it-is-on"},{"title":"Get the devices with their AI tools counts","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-tools/devices","href":"/api-reference/aitools/get-the-devices-with-their-ai-tools-counts"},{"title":"Get one device's AI inventory","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-tools/devices/{deviceId}","href":"/api-reference/aitools/get-one-devices-ai-inventory"},{"title":"Get the AI risk findings","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-tools/findings","href":"/api-reference/aitools/get-the-ai-risk-findings"},{"title":"Open the ticket of an AI finding","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /ai-tools/findings/{deviceId}/{findingKey}/ticket","href":"/api-reference/aitools/open-the-ticket-of-an-ai-finding"},{"title":"Get the AI finding an AI tools ticket was opened for","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-tools/tickets/{ticketId}/details","href":"/api-reference/aitools/get-the-ai-finding-an-ai-tools-ticket-was-opened-for"},{"title":"Get the AI tools settings of the company","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /ai-tools/settings","href":"/api-reference/aitools/get-the-ai-tools-settings-of-the-company"},{"title":"Change the AI tools settings of the company","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /ai-tools/settings","href":"/api-reference/aitools/change-the-ai-tools-settings-of-the-company"},{"title":"Approve or block an AI tool, or mark it not reviewed","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /ai-tools/tools/{toolKey}/policy","href":"/api-reference/aitools/approve-or-block-an-ai-tool-or-mark-it-not-reviewed"},{"title":"Approve or block several AI tools, or mark them not reviewed","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /ai-tools/tools/policy","href":"/api-reference/aitools/approve-or-block-several-ai-tools-or-mark-them-not-reviewed"}]},{"group":"Orders","pages":[{"title":"Get orders, optionally narrowed to one employee or one reference","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /orders","href":"/api-reference/orders/get-orders-optionally-narrowed-to-one-employee-or-one-reference"},{"title":"Create an order","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /orders","href":"/api-reference/orders/create-an-order"},{"title":"Get an order by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /orders/{orderId}","href":"/api-reference/orders/get-an-order-by-id"},{"title":"Get order custom fields","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /orders/{orderId}/custom-fields","href":"/api-reference/orders/get-order-custom-fields"},{"title":"Set an order custom field value","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /orders/{orderId}/custom-fields/{customFieldId}","href":"/api-reference/orders/set-an-order-custom-field-value"},{"title":"Clear an order custom field value","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /orders/{orderId}/custom-fields/{customFieldId}","href":"/api-reference/orders/clear-an-order-custom-field-value"},{"title":"Create an equipment order intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /equipment-order-intents","href":"/api-reference/orders/create-an-equipment-order-intent"},{"title":"Update an equipment order intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /equipment-order-intents/{intentId}","href":"/api-reference/orders/update-an-equipment-order-intent"},{"title":"Execute an equipment order intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /equipment-order-intents/{intentId}/execute","href":"/api-reference/orders/execute-an-equipment-order-intent"}]},{"group":"Saas","pages":[{"title":"Get all SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /saas","href":"/api-reference/saas/get-all-saas"},{"title":"Get the SaaS identities of an employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /employees/{employeeId}/saas-identities","href":"/api-reference/saas/get-the-saas-identities-of-an-employee"},{"title":"Get the SaaS identities no employee owns, across every application","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /saas-identities/unlinked","href":"/api-reference/saas/get-the-saas-identities-no-employee-owns-across-every-application"},{"title":"Link SaaS identities to the employees who own them","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas-identities/batch-link","href":"/api-reference/saas/link-saas-identities-to-the-employees-who-own-them"},{"title":"Get a SaaS by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /saas/{saasId}","href":"/api-reference/saas/get-a-saas-by-id"},{"title":"Get the issues flagged for a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /saas/{saasId}/issues","href":"/api-reference/saas/get-the-issues-flagged-for-a-saas"},{"title":"Update a SaaS contract","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /saas/{saasId}/contract","href":"/api-reference/saas/update-a-saas-contract"},{"title":"Update a SaaS provisioning rule draft","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /saas/{saasId}/rule","href":"/api-reference/saas/update-a-saas-provisioning-rule-draft"},{"title":"Publish a SaaS provisioning rule","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/rule/publish","href":"/api-reference/saas/publish-a-saas-provisioning-rule"},{"title":"Preview the SaaS accounts the rules grant to a person","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/identities/preview","href":"/api-reference/saas/preview-the-saas-accounts-the-rules-grant-to-a-person"},{"title":"Preview the issues the rule draft of a SaaS raises","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/issues/preview","href":"/api-reference/saas/preview-the-issues-the-rule-draft-of-a-saas-raises"},{"title":"Ask for an account to be created on a SaaS application","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/provision","href":"/api-reference/saas/ask-for-an-account-to-be-created-on-a-saas-application"},{"title":"Create a SaaS account task on a ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/provisioning-intents","href":"/api-reference/saas/create-a-saas-account-task-on-a-ticket"},{"title":"Deprovision a SaaS identity","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/deprovision","href":"/api-reference/saas/deprovision-a-saas-identity"},{"title":"Reset the password of an employee's identity on a SaaS application","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/reset-password","href":"/api-reference/saas/reset-the-password-of-an-employees-identity-on-a-saas-application"},{"title":"Create a SaaS identity directly, with no provisioning ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/identities","href":"/api-reference/saas/create-a-saas-identity-directly-with-no-provisioning-ticket"},{"title":"Update or remove the owner of a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /saas/{saasId}/owner","href":"/api-reference/saas/update-or-remove-the-owner-of-a-saas"},{"title":"Update the approval status of a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /saas/{saasId}/approval-status","href":"/api-reference/saas/update-the-approval-status-of-a-saas"},{"title":"Add a SaaS identity to a group","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/identities/{identityId}/groups/{remoteId}","href":"/api-reference/saas/add-a-saas-identity-to-a-group"},{"title":"Remove a SaaS identity from a group","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas/{saasId}/identities/{identityId}/groups/{remoteId}","href":"/api-reference/saas/remove-a-saas-identity-from-a-group"},{"title":"Give a SaaS identity a role","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/identities/{identityId}/roles/{remoteId}","href":"/api-reference/saas/give-a-saas-identity-a-role"},{"title":"Take a role off a SaaS identity","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas/{saasId}/identities/{identityId}/roles/{remoteId}","href":"/api-reference/saas/take-a-role-off-a-saas-identity"},{"title":"Give a SaaS identity a licence","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/identities/{identityId}/licenses/{remoteId}","href":"/api-reference/saas/give-a-saas-identity-a-licence"},{"title":"Take a licence off a SaaS identity","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas/{saasId}/identities/{identityId}/licenses/{remoteId}","href":"/api-reference/saas/take-a-licence-off-a-saas-identity"},{"title":"Put a SaaS identity in an organization unit","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/identities/{identityId}/organization-units/{remoteId}","href":"/api-reference/saas/put-a-saas-identity-in-an-organization-unit"},{"title":"Take a SaaS identity out of an organization unit","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas/{saasId}/identities/{identityId}/organization-units/{remoteId}","href":"/api-reference/saas/take-a-saas-identity-out-of-an-organization-unit"},{"title":"Add a license to a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/licences","href":"/api-reference/saas/add-a-license-to-a-saas"},{"title":"Rename a license of a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /saas/{saasId}/licences/{remoteId}","href":"/api-reference/saas/rename-a-license-of-a-saas"},{"title":"Remove a license from a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas/{saasId}/licences/{remoteId}","href":"/api-reference/saas/remove-a-license-from-a-saas"},{"title":"Add a role to a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/roles","href":"/api-reference/saas/add-a-role-to-a-saas"},{"title":"Rename a role of a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /saas/{saasId}/roles/{remoteId}","href":"/api-reference/saas/rename-a-role-of-a-saas"},{"title":"Remove a role from a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas/{saasId}/roles/{remoteId}","href":"/api-reference/saas/remove-a-role-from-a-saas"},{"title":"Add a group to a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/groups","href":"/api-reference/saas/add-a-group-to-a-saas"},{"title":"Rename a group of a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /saas/{saasId}/groups/{remoteId}","href":"/api-reference/saas/rename-a-group-of-a-saas"},{"title":"Remove a group from a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas/{saasId}/groups/{remoteId}","href":"/api-reference/saas/remove-a-group-from-a-saas"},{"title":"Add an organization unit to a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/organization-units","href":"/api-reference/saas/add-an-organization-unit-to-a-saas"},{"title":"Rename an organization unit of a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /saas/{saasId}/organization-units/{remoteId}","href":"/api-reference/saas/rename-an-organization-unit-of-a-saas"},{"title":"Remove an organization unit from a SaaS","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas/{saasId}/organization-units/{remoteId}","href":"/api-reference/saas/remove-an-organization-unit-from-a-saas"},{"title":"Archive a SaaS application user","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas-application-users/{saasApplicationUserId}","href":"/api-reference/saas/archive-a-saas-application-user"},{"title":"Permanently delete a SaaS application user","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /saas-application-users/{saasApplicationUserId}/permanent","href":"/api-reference/saas/permanently-delete-a-saas-application-user"},{"title":"Archive several SaaS application users","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas-application-users/batch-archive","href":"/api-reference/saas/archive-several-saas-application-users"},{"title":"Permanently delete several SaaS application users","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas-application-users/batch-delete","href":"/api-reference/saas/permanently-delete-several-saas-application-users"},{"title":"Create several SaaS identities directly, with no provisioning ticket","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas/{saasId}/identities/batch","href":"/api-reference/saas/create-several-saas-identities-directly-with-no-provisioning-ticket"}]},{"group":"Catalog","pages":[{"title":"List catalog countries","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /catalog/countries","href":"/api-reference/catalog/list-catalog-countries"},{"title":"Search catalog products","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /catalog/{countryCode}/products/search","href":"/api-reference/catalog/search-catalog-products"},{"title":"Get catalog filter options","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /catalog/{countryCode}/filter-options","href":"/api-reference/catalog/get-catalog-filter-options"},{"title":"Get a catalog product","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /catalog/{countryCode}/products/{productId}","href":"/api-reference/catalog/get-a-catalog-product"},{"title":"Get several catalog products","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /catalog/{countryCode}/products/by-ids","href":"/api-reference/catalog/get-several-catalog-products"},{"title":"List shipping countries","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /shipping-countries","href":"/api-reference/catalog/list-shipping-countries"},{"title":"List company addresses for a shipping country","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /shipping-countries/{countryCode}/addresses","href":"/api-reference/catalog/list-company-addresses-for-a-shipping-country"},{"title":"List the catalog favorites of a country","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /catalog/{countryCode}/favorites","href":"/api-reference/catalog/list-the-catalog-favorites-of-a-country"},{"title":"Pin a catalog product as a favorite","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json put /catalog/{countryCode}/products/{productId}/favorite","href":"/api-reference/catalog/pin-a-catalog-product-as-a-favorite"},{"title":"Unpin a catalog product from the favorites","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json delete /catalog/{countryCode}/products/{productId}/favorite","href":"/api-reference/catalog/unpin-a-catalog-product-from-the-favorites"}]},{"group":"Shipments","pages":[{"title":"Get shipments, optionally narrowed to one employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /shipments","href":"/api-reference/shipments/get-shipments-optionally-narrowed-to-one-employee"},{"title":"Create a shipment","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /shipments","href":"/api-reference/shipments/create-a-shipment"},{"title":"Get a shipment by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /shipments/{shipmentId}","href":"/api-reference/shipments/get-a-shipment-by-id"}]},{"group":"KnowledgeBaseItems","pages":[{"title":"List the company knowledge base items","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /knowledge-base-items","href":"/api-reference/knowledgebaseitems/list-the-company-knowledge-base-items"},{"title":"Get a knowledge base item","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /knowledge-base-items/{id}","href":"/api-reference/knowledgebaseitems/get-a-knowledge-base-item"}]},{"group":"Onboardings","pages":[{"title":"Get all onboardings","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /onboardings","href":"/api-reference/onboardings/get-all-onboardings"},{"title":"Create an onboarding for an existing employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /onboardings","href":"/api-reference/onboardings/create-an-onboarding-for-an-existing-employee"},{"title":"Get the onboarding settings","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /onboarding-settings","href":"/api-reference/onboardings/get-the-onboarding-settings"},{"title":"Update the onboarding settings","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /onboarding-settings","href":"/api-reference/onboardings/update-the-onboarding-settings"},{"title":"Get an onboarding by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /onboardings/{onboardingId}","href":"/api-reference/onboardings/get-an-onboarding-by-id"},{"title":"Complete onboardings in bulk","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /onboardings/complete","href":"/api-reference/onboardings/complete-onboardings-in-bulk"},{"title":"Complete an onboarding","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /onboardings/{onboardingId}/complete","href":"/api-reference/onboardings/complete-an-onboarding"},{"title":"Ignore onboardings in bulk","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /onboardings/ignore","href":"/api-reference/onboardings/ignore-onboardings-in-bulk"},{"title":"Ignore an onboarding","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /onboardings/{onboardingId}/ignore","href":"/api-reference/onboardings/ignore-an-onboarding"},{"title":"Execute the equipment step of an onboarding","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /onboardings/{onboardingId}/equipment","href":"/api-reference/onboardings/execute-the-equipment-step-of-an-onboarding"},{"title":"Create an email account intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /email-account-intents","href":"/api-reference/onboardings/create-an-email-account-intent"},{"title":"Update an email account intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /email-account-intents/{intentId}","href":"/api-reference/onboardings/update-an-email-account-intent"},{"title":"Execute an email account intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /email-account-intents/{intentId}/execute","href":"/api-reference/onboardings/execute-an-email-account-intent"},{"title":"Create an employee creation intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /employee-creation-intents","href":"/api-reference/onboardings/create-an-employee-creation-intent"},{"title":"Update an employee creation intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /employee-creation-intents/{intentId}","href":"/api-reference/onboardings/update-an-employee-creation-intent"},{"title":"Execute an employee creation intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /employee-creation-intents/{intentId}/execute","href":"/api-reference/onboardings/execute-an-employee-creation-intent"},{"title":"Get a SaaS selection intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /saas-selection-intents/{intentId}","href":"/api-reference/onboardings/get-a-saas-selection-intent"},{"title":"Execute a SaaS selection intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /saas-selection-intents/{intentId}/execute","href":"/api-reference/onboardings/execute-a-saas-selection-intent"},{"title":"Get an email account selection intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /email-account-selection-intents/{intentId}","href":"/api-reference/onboardings/get-an-email-account-selection-intent"},{"title":"Execute an email account selection intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /email-account-selection-intents/{intentId}/execute","href":"/api-reference/onboardings/execute-an-email-account-selection-intent"}]},{"group":"Offboardings","pages":[{"title":"Get all offboardings","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /offboardings","href":"/api-reference/offboardings/get-all-offboardings"},{"title":"Start the offboarding of an employee","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /offboardings","href":"/api-reference/offboardings/start-the-offboarding-of-an-employee"},{"title":"Get an offboarding by ID","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /offboardings/{offboardingId}","href":"/api-reference/offboardings/get-an-offboarding-by-id"},{"title":"Ignore an offboarding","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /offboardings/{offboardingId}/ignore","href":"/api-reference/offboardings/ignore-an-offboarding"},{"title":"Create an offboarding confirmation intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /offboarding-confirmation-intents","href":"/api-reference/offboardings/create-an-offboarding-confirmation-intent"},{"title":"Update an offboarding confirmation intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /offboarding-confirmation-intents/{intentId}","href":"/api-reference/offboardings/update-an-offboarding-confirmation-intent"},{"title":"Execute an offboarding confirmation intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /offboarding-confirmation-intents/{intentId}/execute","href":"/api-reference/offboardings/execute-an-offboarding-confirmation-intent"},{"title":"Create an offboarding access selection intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /offboarding-access-selection-intents","href":"/api-reference/offboardings/create-an-offboarding-access-selection-intent"},{"title":"Get an offboarding access selection intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /offboarding-access-selection-intents/{intentId}","href":"/api-reference/offboardings/get-an-offboarding-access-selection-intent"},{"title":"Update an offboarding access selection intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /offboarding-access-selection-intents/{intentId}","href":"/api-reference/offboardings/update-an-offboarding-access-selection-intent"},{"title":"Execute an offboarding access selection intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /offboarding-access-selection-intents/{intentId}/execute","href":"/api-reference/offboardings/execute-an-offboarding-access-selection-intent"},{"title":"Create a device handling intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /device-handling-intents","href":"/api-reference/offboardings/create-a-device-handling-intent"},{"title":"Get a device handling intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json get /device-handling-intents/{intentId}","href":"/api-reference/offboardings/get-a-device-handling-intent"},{"title":"Update a device handling intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /device-handling-intents/{intentId}","href":"/api-reference/offboardings/update-a-device-handling-intent"},{"title":"Execute a device handling intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /device-handling-intents/{intentId}/execute","href":"/api-reference/offboardings/execute-a-device-handling-intent"},{"title":"Create a return shipment intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /return-shipment-intents","href":"/api-reference/offboardings/create-a-return-shipment-intent"},{"title":"Update a return shipment intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json patch /return-shipment-intents/{intentId}","href":"/api-reference/offboardings/update-a-return-shipment-intent"},{"title":"Execute a return shipment intent","deprecated":null,"version":null,"openapi":"https://api.getprimo.com/openapi.json post /return-shipment-intents/{intentId}/execute","href":"/api-reference/offboardings/execute-a-return-shipment-intent"}]}]}]}]}]},"basePath":"","title":"Get the compliance alert a ticket was opened for, with its full remediation context - Primo Documentation","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}