ControlUp Alerts - Devices API

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

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:
    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: '#/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)'
        id:
          type: string
          description: The alert's ID.
        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
      - id
      - platform
      - index
      - metrics
      - hitsNumber
      - hitsTimeWindowSeconds
      - retriggerIntervalSeconds
      type: object
      additionalProperties: true
    ? ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__
    : properties:
        metadata:
          $ref: '#/components/schemas/ErrorResponseMetadata'
        error:
          $ref: '#/components/schemas/ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError_'
      required:
      - error
      - metadata
      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
    DeletedActionResponse:
      properties:
        affectedRows:
          type: number
          format: double
      required:
      - affectedRows
      type: object
    DesktopPlatform:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      type: number
    ErrorCode.NotFound:
      enum:
      - 5
      type: number
    HttpStatusCode.INTERNAL_SERVER_ERROR:
      enum:
      - 500
      type: number
    ErrorMessage.Unauthorized:
      enum:
      - Unauthorized
      type: string
    ErrorCode.Unauthorized:
      enum:
      - 3
      type: number
    BadRequestErrorMessages:
      enum:
      - Bad Request
      - Invalid Params
      - Unique Field Violation
      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.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
    HttpStatusCode.UNAUTHORIZED:
      enum:
      - 401
      type: number
    BadRequestErrorCodes:
      enum:
      - 2
      - 14
      - 50
      type: number
    ServiceNowCustomFields:
      description: Custom fields dictionary type for ServiceNow integration.
      properties: {}
      type: object
      additionalProperties:
        type: string
    ErrorResponseMetadata:
      properties:
        cuRequestId:
          type: string
        orgId:
          type: string
        userId:
          type: string
        userIp:
          type: string
      required:
      - userIp
      - userId
      - orgId
      - cuRequestId
      type: object
    ErrorMessage.InternalServerError:
      enum:
      - Internal Server Error
      type: string
    DesktopAlertMetricCondition:
      type: string
      enum:
      - '='
      - '!='
      - '>='
      - '>'
      - <=
      - <
      - like
    ErrorMessage.Forbidden:
      enum:
      - Forbidden
      type: string
    ErrorMessage.NotFound:
      enum:
      - Not Found
      type: string
    ErrorCode.InternalServerError:
      enum:
      - 6
      type: number
    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
    HttpStatusCode.FORBIDDEN:
      enum:
      - 403
      type: number
    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.
    URI:
      type: string
      example: http://example.com
      format: uri
      description: Valid URI.
      pattern: ^(http(s)?:\/\/.)?(www\.)?([-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6})|(localhost)\b([-a-zA-Z0-9@:%_\+.~#?&\/=]*)$
    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
    ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__:
      properties:
        metadata:
          $ref: '#/components/schemas/ErrorResponseMetadata'
        error:
          $ref: '#/components/schemas/ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound_'
      required:
      - error
      - metadata
      type: object
    HttpStatusCode.BAD_REQUEST:
      enum:
      - 400
      type: number
    Email:
      type: string
      format: email
      description: Valid email address.
      pattern: ^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
    ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__:
      properties:
        metadata:
          $ref: '#/components/schemas/ErrorResponseMetadata'
        error:
          $ref: '#/components/schemas/ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes_'
      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: '#/com

# --- 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