ControlUp Alerts - Devices API

The Alerts - Devices API from ControlUp — 2 operation(s) for alerts - devices.

Business capability
IT Operations Management BC-600.40

Operations 4

GET /organizations/{orgId}/alert-configs/desktop/{id} Retrieve a Devices Alert #
PATCH /organizations/{orgId}/alert-configs/desktop/{id} Update a Devices alert #
DELETE /organizations/{orgId}/alert-configs/desktop/{id} Delete a Devices alert #
POST /organizations/{orgId}/alert-configs/desktop Create a Devices alert #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/controlup-alerts-devices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

controlup-alerts-devices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dex Alerts Alerts - Devices API
  version: 1.0.0
  description: Dex API Description
  contact: {}
servers:
- url: https://api.controlup.com/events/v1/alerts
tags:
- name: Alerts - Devices
paths:
  /organizations/{orgId}/alert-configs/desktop/{id}:
    get:
      operationId: AlertsDesktopController_getAlertById
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DesktopAlertConfigDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Retrieves details of a specific Devices alert configuration.
      summary: Retrieve a Devices Alert
      tags:
      - Alerts - Devices
      security:
      - apiKey: []
      parameters:
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ID of the Devices alert to update. You can use [List all alerts](alertsconfigscontroller_getall) to get alert IDs.
        in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
    patch:
      operationId: AlertsDesktopController_updateAlertConfiguration
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DesktopAlertConfigDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Updates an existing Devices alert. Only sent parameters are changed.
      summary: Update a Devices alert
      tags:
      - Alerts - Devices
      security:
      - apiKey: []
      parameters:
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ID of the Devices alert to update. You can use [List all alerts](alertsconfigscontroller_getall) to get alert IDs.
        in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      requestBody:
        description: Updated Devices alert configuration details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Partial_CreateDesktopAlertDTO_'
              description: Updated Devices alert configuration details
    delete:
      operationId: AlertsDesktopController_deleteAlertConfiguration
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedActionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Deletes a Devices alert.
      summary: Delete a Devices alert
      tags:
      - Alerts - Devices
      security:
      - apiKey: []
      parameters:
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: ID of the Devices alert to delete. You can use [List all alerts](alertsconfigscontroller_getall) to get alert IDs.
        in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
  /organizations/{orgId}/alert-configs/desktop:
    post:
      operationId: AlertsDesktopController_createDesktopAlert
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DesktopAlertConfigDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Creates a new Devices alert.
      summary: Create a Devices alert
      tags:
      - Alerts - Devices
      security:
      - apiKey: []
      parameters:
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      requestBody:
        description: Desktop alert configuration details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Omit_DesktopAlertConfigDTO.sourceName-or-id_'
              description: Desktop alert configuration details
components:
  schemas:
    UUID:
      type: string
      format: uuid
      description: 'Stringified UUIDv4.

        See [RFC 4112](https://tools.ietf.org/html/rfc4122)'
      pattern: ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$
    ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden_:
      properties:
        message:
          $ref: '#/components/schemas/ErrorMessage.Forbidden'
        code:
          $ref: '#/components/schemas/ErrorCode.Forbidden'
        status:
          $ref: '#/components/schemas/HttpStatusCode.FORBIDDEN'
        data:
          additionalProperties: true
          type: object
      required:
      - status
      - code
      - message
      type: object
    ErrorMessage.Forbidden:
      enum:
      - Forbidden
      type: string
    ErrorCode.Forbidden:
      enum:
      - 4
      type: number
    Omit_DesktopAlertConfigDTO.sourceName-or-id_:
      $ref: '#/components/schemas/Pick_DesktopAlertConfigDTO.Exclude_keyofDesktopAlertConfigDTO.sourceName-or-id__'
      description: Construct a type with the properties of T except for those in type K.
    ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes_:
      properties:
        message:
          $ref: '#/components/schemas/BadRequestErrorMessages'
        code:
          $ref: '#/components/schemas/BadRequestErrorCodes'
        status:
          $ref: '#/components/schemas/HttpStatusCode.BAD_REQUEST'
        data:
          additionalProperties: true
          type: object
      required:
      - status
      - code
      - message
      type: object
    DesktopAlertMetricCondition:
      type: string
      enum:
      - '='
      - '!='
      - '>='
      - '>'
      - <=
      - <
      - like
    HttpStatusCode.NOT_FOUND:
      enum:
      - 404
      type: number
    Partial_CreateDesktopAlertDTO_:
      properties:
        integrations:
          properties:
            servicenow:
              properties:
                customFields:
                  $ref: '#/components/schemas/ServiceNowCustomFields'
                subcategory:
                  type: string
                category:
                  type: string
                closeNotes:
                  type: string
                closeCode:
                  type: string
                settings:
                  properties:
                    autoUpdateTicketState:
                      type: string
                    eventMapping:
                      properties:
                        resource:
                          type: string
                        node:
                          type: string
                        alertDescription:
                          type: string
                      type: object
                  type: object
                eventSource:
                  type: string
                eventType:
                  type: string
                autoResolveIntervalSeconds:
                  type: number
                  format: double
                  description: 'The duration, in seconds, the system waits after an alert condition has cleared before automatically resolving the associated ServiceNow ticket.

                    If omitted, the ticket does not automatically resolve.'
                urgency:
                  type: integer
                  format: int32
                  description: Urgency level of the ServiceNow ticket.
                impact:
                  type: integer
                  format: int32
                  description: Impact level of the ServiceNow ticket.
                ticketType:
                  $ref: '#/components/schemas/ServiceNowTicketType'
                  description: Type of ServiceNow ticket created. (1 - Incident, 2 - Event)
                enabled:
                  type: boolean
                  description: Whether the ServiceNow integration is enabled.
              required:
              - urgency
              - impact
              - ticketType
              - enabled
              type: object
              description: ServiceNow integration configuration.
          type: object
          description: Integrations with third-party software.
        selfServiceNotification:
          properties:
            scriptLabel:
              type:
              - string
              - 'null'
              description: Custom label for the "Run Script" button shown in the Connect / self-service notification. If empty, a default label is used.
            scriptId:
              type:
              - string
              - 'null'
              description: ID of a system script offered to the end user through the ControlUp Connect notification. Independent from `actions.systemScriptId`.
            message:
              type:
              - string
              - 'null'
              description: Custom message displayed to the end user when the self-service notification triggers.
            enabled:
              type: boolean
              description: Whether to trigger a self-service notification on the end user's device when the alert fires.
          required:
          - enabled
          type: object
          description: ControlUp Connect / end-user self-service notification settings.
        tags:
          items:
            type: string
          type: array
          description: 'List of device tags to filter which devices can trigger this alert.

            If empty or omitted, the alert applies to all devices.

            If set, the alert triggers only for devices that have at least one matching tag.'
        notifications:
          properties:
            webhookUrl:
              allOf:
              - $ref: '#/components/schemas/URI'
              description: Destination URL to receive a notification when the alert triggers. Set to null to clear.
            emailAddresses:
              items:
                $ref: '#/components/schemas/Email'
              type: array
              description: A list of email addresses to receive a notification when the alert triggers.
          type: object
          description: Notifications to send when the alert triggers.
        actions:
          properties:
            surveyId:
              type: string
              description: ID of an on-demand survey to run. You can use [List all surveys](get-surveys) to get survey IDs.
            userScriptId:
              type: string
              description: 'ID of a user script to run. You can use [List all scripts](list-all-scripts) to get script IDs.

                The script must match the platform in the `platform` parameter.'
            systemScriptId:
              type: string
              description: 'ID of a system script to run. You can use [List all scripts](list-all-scripts) to get script IDs.

                The script must match the platform in the `platform` parameter.'
          type: object
          description: Followup actions to run on devices that trigger the alert.
        retriggerIntervalSeconds:
          type: number
          format: double
          description: 'The minimum duration between subsequent alert activations.

            If the retrigger interval duration has not passed since the last alert activation, then the alert won''t activate even if all conditions are met.'
        hitsTimeWindowSeconds:
          type: number
          format: double
          description: The time window in seconds for the `hitsNumber` parameter.
        hitsNumber:
          type: number
          format: double
          description: The number of times that the alert conditions (`metrics`) must be met within the specified time window (hitsTimeWindowSeconds) for the alert to trigger.
        metrics:
          items:
            $ref: '#/components/schemas/DesktopAlertMetric'
          type: array
          description: List of conditions that must be met for the alert to trigger. Multiple conditions are combined with AND operators.
        index:
          type: string
          description: 'The data index used for the alert. The alert conditions in the `metrics` object must be based on fields within this data index.

            You can use [List all data indices](get-data-indices) to get a list of indices, and [Get a data index](get-data-index) to see the data within an index.'
        platform:
          $ref: '#/components/schemas/DesktopPlatform'
          description: 'OS platform for followup action script execution. Scripts configured in the actions object must match the platform in this parameter.

            Note that this parameter does not control which devices can trigger the alert.

            If you don''t want the alert to trigger a script, you can set this to 0.

            (0 - No platform selected, 1 - Windows, 2 - macOS, 3 - Linux, 4 - ChromeOS)'
        enabled:
          type: boolean
          description: Whether the alert is enabled.
        severity:
          $ref: '#/components/schemas/Severity'
          description: The alert's severity level.
        description:
          type: string
          description: The alert's description.
        name:
          type: string
          description: The alert's name.
      type: object
      description: Make all properties in T optional
    ServiceNowCustomFields:
      description: Custom fields dictionary type for ServiceNow integration.
      properties: {}
      type: object
      additionalProperties:
        type: string
    ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__:
      properties:
        metadata:
          $ref: '#/components/schemas/ErrorResponseMetadata'
        error:
          $ref: '#/components/schemas/ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized_'
      required:
      - error
      - metadata
      type: object
    ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound_:
      properties:
        message:
          $ref: '#/components/schemas/ErrorMessage.NotFound'
        code:
          $ref: '#/components/schemas/ErrorCode.NotFound'
        status:
          $ref: '#/components/schemas/HttpStatusCode.NOT_FOUND'
        data:
          additionalProperties: true
          type: object
      required:
      - status
      - code
      - message
      type: object
    Pick_DesktopAlertConfigDTO.Exclude_keyofDesktopAlertConfigDTO.sourceName-or-id__:
      properties:
        integrations:
          properties:
            servicenow:
              properties:
                customFields:
                  $ref: '#/components/schemas/ServiceNowCustomFields'
                subcategory:
                  type: string
                category:
                  type: string
                closeNotes:
                  type: string
                closeCode:
                  type: string
                settings:
                  properties:
                    autoUpdateTicketState:
                      type: string
                    eventMapping:
                      properties:
                        resource:
                          type: string
                        node:
                          type: string
                        alertDescription:
                          type: string
                      type: object
                  type: object
                eventSource:
                  type: string
                eventType:
                  type: string
                autoResolveIntervalSeconds:
                  type: number
                  format: double
                  description: 'The duration, in seconds, the system waits after an alert condition has cleared before automatically resolving the associated ServiceNow ticket.

                    If omitted, the ticket does not automatically resolve.'
                urgency:
                  type: integer
                  format: int32
                  description: Urgency level of the ServiceNow ticket.
                impact:
                  type: integer
                  format: int32
                  description: Impact level of the ServiceNow ticket.
                ticketType:
                  $ref: '#/components/schemas/ServiceNowTicketType'
                  description: Type of ServiceNow ticket created. (1 - Incident, 2 - Event)
                enabled:
                  type: boolean
                  description: Whether the ServiceNow integration is enabled.
              required:
              - urgency
              - impact
              - ticketType
              - enabled
              type: object
              description: ServiceNow integration configuration.
          type: object
          description: Integrations with third-party software.
        selfServiceNotification:
          properties:
            scriptLabel:
              type:
              - string
              - 'null'
              description: Custom label for the "Run Script" button shown in the Connect / self-service notification. If empty, a default label is used.
            scriptId:
              type:
              - string
              - 'null'
              description: ID of a system script offered to the end user through the ControlUp Connect notification. Independent from `actions.systemScriptId`.
            message:
              type:
              - string
              - 'null'
              description: Custom message displayed to the end user when the self-service notification triggers.
            enabled:
              type: boolean
              description: Whether to trigger a self-service notification on the end user's device when the alert fires.
          required:
          - enabled
          type: object
          description: ControlUp Connect / end-user self-service notification settings.
        tags:
          items:
            type: string
          type: array
          description: 'List of device tags to filter which devices can trigger this alert.

            If empty or omitted, the alert applies to all devices.

            If set, the alert triggers only for devices that have at least one matching tag.'
        notifications:
          properties:
            webhookUrl:
              allOf:
              - $ref: '#/components/schemas/URI'
              description: Destination URL to receive a notification when the alert triggers. Set to null to clear.
            emailAddresses:
              items:
                $ref: '#/components/schemas/Email'
              type: array
              description: A list of email addresses to receive a notification when the alert triggers.
          type: object
          description: Notifications to send when the alert triggers.
        actions:
          properties:
            surveyId:
              type: string
              description: ID of an on-demand survey to run. You can use [List all surveys](get-surveys) to get survey IDs.
            userScriptId:
              type: string
              description: 'ID of a user script to run. You can use [List all scripts](list-all-scripts) to get script IDs.

                The script must match the platform in the `platform` parameter.'
            systemScriptId:
              type: string
              description: 'ID of a system script to run. You can use [List all scripts](list-all-scripts) to get script IDs.

                The script must match the platform in the `platform` parameter.'
          type: object
          description: Followup actions to run on devices that trigger the alert.
        retriggerIntervalSeconds:
          type: number
          format: double
          description: 'The minimum duration between subsequent alert activations.

            If the retrigger interval duration has not passed since the last alert activation, then the alert won''t activate even if all conditions are met.'
        hitsTimeWindowSeconds:
          type: number
          format: double
          description: The time window in seconds for the `hitsNumber` parameter.
        hitsNumber:
          type: number
          format: double
          description: The number of times that the alert conditions (`metrics`) must be met within the specified time window (hitsTimeWindowSeconds) for the alert to trigger.
        metrics:
          items:
            $ref: '#/components/schemas/DesktopAlertMetric'
          type: array
          description: List of conditions that must be met for the alert to trigger. Multiple conditions are combined with AND operators.
        index:
          type: string
          description: 'The data index used for the alert. The alert conditions in the `metrics` object must be based on fields within this data index.

            You can use [List all data indices](get-data-indices) to get a list of indices, and [Get a data index](get-data-index) to see the data within an index.'
        platform:
          $ref: '#/components/schemas/DesktopPlatform'
          description: 'OS platform for followup action script execution. Scripts configured in the actions object must match the platform in this parameter.

            Note that this parameter does not control which devices can trigger the alert.

            If you don''t want the alert to trigger a script, you can set this to 0.

            (0 - No platform selected, 1 - Windows, 2 - macOS, 3 - Linux, 4 - ChromeOS)'
        enabled:
          type: boolean
          description: Whether the alert is enabled.
        severity:
          $ref: '#/components/schemas/Severity'
          description: The alert's severity level.
        description:
          type: string
          description: The alert's description.
        name:
          type: string
          description: The alert's name.
      required:
      - name
      - severity
      - enabled
      - platform
      - index
      - metrics
      - hitsNumber
      - hitsTimeWindowSeconds
      - retriggerIntervalSeconds
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized_:
      properties:
        message:
          $ref: '#/components/schemas/ErrorMessage.Unauthorized'
        code:
          $ref: '#/components/schemas/ErrorCode.Unauthorized'
        status:
          $ref: '#/components/schemas/HttpStatusCode.UNAUTHORIZED'
        data:
          additionalProperties: true
          type: object
      required:
      - status
      - code
      - message
      type: object
    Severity:
      enum:
      - informational
      - low
      - medium
      - high
      - critical
      type: string
    ErrorCode.Unauthorized:
      enum:
      - 3
      type: number
    ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError_:
      properties:
        message:
          $ref: '#/components/schemas/ErrorMessage.InternalServerError'
        code:
          $ref: '#/components/schemas/ErrorCode.InternalServerError'
        status:
          $ref: '#/components/schemas/HttpStatusCode.INTERNAL_SERVER_ERROR'
        data:
          additionalProperties: true
          type: object
      required:
      - status
      - code
      - message
      type: object
    DesktopAlertMetric:
      properties:
        metric:
          type: string
          description: 'The name of the metric (field) to use for the condition.

            You must enter the name of the field as it appears in the data index.'
        condition:
          $ref: '#/components/schemas/DesktopAlertMetricCondition'
          description: Type of comparison. Note that a condition based on a string field must use the `like` condition.
        value:
          type: string
          description: Value to compare against. Numbers can be passed as strings.
      required:
      - value
      - condition
      - metric
      type: object
    DesktopAlertConfigDTO:
      properties:
        integrations:
          properties:
            servicenow:
              properties:
                customFields:
                  $ref: '#/components/schemas/ServiceNowCustomFields'
                subcategory:
                  type: string
                category:
                  type: string
                closeNotes:
                  type: string
                closeCode:
                  type: string
                settings:
                  properties:
                    autoUpdateTicketState:
                      type: string
                    eventMapping:
                      properties:
                        resource:
                          type: string
                        node:
                          type: string
                        alertDescription:
                          type: string
                      type: object
                  type: object
                eventSource:
                  type: string
                eventType:
                  type: string
                autoResolveIntervalSeconds:
                  type: number
                  format: double
                  description: 'The duration, in seconds, the system waits after an alert condition has cleared before automatically resolving the associated ServiceNow ticket.

                    If omitted, the ticket does not automatically resolve.'
                urgency:
                  type: integer
                  format: int32
                  description: Urgency level of the ServiceNow ticket.
                impact:
                  type: integer
                  format: int32
                  description: Impact level of the ServiceNow ticket.
                ticketType:
                  $ref: '#/componen

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/controlup/refs/heads/main/openapi/controlup-alerts-devices-api-openapi.yml