> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getprimo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a compliance alert rule

> Update the non-compliant statuses of an existing compliance alert rule. Pass an empty array to disable alerts for this rule.

<span className="badge-write">Key: Write</span><span className="badge-company">Scope: Company</span>


## OpenAPI

````yaml https://api.getprimo.com/openapi.json put /compliance/alert-rules/{ruleId}
openapi: 3.1.1
info:
  title: Public API - BETA
  description: Read docs on https://docs.getprimo.com/
  version: '1.0'
  contact: {}
servers:
  - url: https://api.getprimo.com
security:
  - apikey: []
tags: []
paths:
  /compliance/alert-rules/{ruleId}:
    put:
      tags:
        - Compliance
      summary: Update a compliance alert rule
      description: >-
        Update the non-compliant statuses of an existing compliance alert rule.
        Pass an empty array to disable alerts for this rule.
      operationId: updateComplianceAlertRule
      parameters:
        - name: ruleId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateComplianceAlertRuleBody'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComplianceAlertRuleResponse_Output'
components:
  schemas:
    UpdateComplianceAlertRuleBody:
      type: object
      properties:
        nonCompliantStatus:
          description: >-
            Non-compliant device statuses that should trigger an alert for this
            rule. Only non-compliant statuses are accepted (compliant statuses
            like SUCCESS, ONLINE, ENCRYPTED, etc. are rejected). Pass an empty
            array to disable alerts.
          type: array
          items:
            type: string
            enum:
              - ACTIVE
              - NOT_PROTECTED
              - OFFLINE_7_DAYS
              - PENDING
              - PROTECTED
              - 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
              - INSTALLED
              - MDM_ON
              - MDM_OFF
              - MDM_ON_IN_ANOTHER_MDM
              - READY_ZTD
              - MISSING_AGENT
              - ONLINE
              - OFFLINE
              - ENABLED
              - DISABLED
              - MISSING_BYPASS_CODE
              - MEETS_REQUIREMENTS
              - BELOW_MINIMUM_VERSION
              - UNSUPPORTED_OS_EDITION
      required:
        - nonCompliantStatus
    ComplianceAlertRuleResponse_Output:
      type: object
      properties:
        rule:
          type: object
          properties:
            id:
              type: string
            type:
              type: string
              enum:
                - MDM_CONTROL_MALWAREBYTES
                - MDM_CONTROL_RECOVERY_OS
                - MDM_CONTROL_ENCRYPTION
                - MDM_CONTROL_OS_UPDATE
                - MDM_CONTROL_SOFTWARE_UPDATE
                - MDM_CONTROL_WIFI
                - MDM_CONTROL_ADMIN_USER_MANAGEMENT
                - MDM_CONTROL_ADMIN_USER_PASSWORD_ROTATION
                - MDM_CONTROL_DEVICE_NAMING
                - MDM_CONTROL_GOOGLE_CHROME
                - MDM_CONTROL_FIREWALL
                - MDM_CONTROL_USB_BLOCKING
                - MDM_CONTROL_ENTRA_SSO
                - MDM_CONTROL_OKTA_SSO
                - MDM_CONTROL_CUSTOM_FILE
                - MDM_CONTROL_PASSWORD_POLICY
                - MDM_CONTROL_SENTINEL_ONE
                - MDM_CONTROL_RUSTDESK
                - MDM_CONTROL_APP_BLOCKING
                - MDM_CONTROL_DISABLE_PROFILES_PANE
                - MDM_CONTROL_DISABLE_AIRDROP
                - MDM_CONTROL_SCREEN_CAPTURE
                - MDM_CONTROL_AIR_PRINT
                - MDM_CONTROL_PRIMO_SSO
                - MDM_CONTROL_WEB_CLIP
                - MDM_ENROLLMENT
                - MDM_ONLINE
                - MDM_ICLOUD_LOCK_STATUS
                - PRIMO_REQUIREMENT
            nonCompliantStatus:
              type: array
              items:
                type: string
                enum:
                  - ACTIVE
                  - NOT_PROTECTED
                  - OFFLINE_7_DAYS
                  - PENDING
                  - PROTECTED
                  - 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
                  - INSTALLED
                  - MDM_ON
                  - MDM_OFF
                  - MDM_ON_IN_ANOTHER_MDM
                  - READY_ZTD
                  - MISSING_AGENT
                  - ONLINE
                  - OFFLINE
                  - ENABLED
                  - DISABLED
                  - MISSING_BYPASS_CODE
                  - MEETS_REQUIREMENTS
                  - BELOW_MINIMUM_VERSION
                  - UNSUPPORTED_OS_EDITION
            config:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            createdAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            updatedAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          required:
            - id
            - type
            - nonCompliantStatus
            - config
            - createdAt
            - updatedAt
          additionalProperties: false
      required:
        - rule
      additionalProperties: false
  securitySchemes:
    apikey:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: >-
        Use your Primo API key in the Authorization header as `Bearer
        <API_KEY>`.

````