ControlUp Alerts API

Alerts let you receive notifications or automatically run an action when certain conditions occur on a device.

OpenAPI Specification

controlup-alerts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Controlup Alerts API
  version: '1.0'
  description: 'Operations tagged Alerts across 3 of this provider''s published API definitions: controlup-desktops-openapi.yml, controlup-dex-alerts-openapi.yml, controlup-synthetic-monitoring-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.controlup.com/edge/api
- url: https://api.controlup.com/events/v1/alerts
- url: https://api.controlup.com/synthetic-monitoring/v2/
tags:
- name: Alerts
  description: Alerts let you receive notifications or automatically run an action when certain conditions occur on a device.
paths:
  /alerts:
    servers:
    - url: https://api.controlup.com/edge/api
    get:
      summary: List all Alerts
      tags:
      - Alerts
      description: "Returns a list of configured alerts.\n\nYou can either:\n  * Use `query` to use an OpenSearch query. Note that you can't create an OpenSearch query using the request builder built into the documentation.\n  * Use the remaining query parameters to query alerts.\n"
      operationId: get-alerts
      parameters:
      - in: query
        name: query
        description: An OpenSearch query.
        schema:
          type: object
          default: false
      - in: query
        name: size
        description: The number of rows returned per page.
        schema:
          type: integer
          default: 10000
          maximum: 10000
      - in: query
        name: page
        description: The page returned. The number of rows per page is set with the `size` parameter.
        schema:
          type: integer
          default: 1
      - in: query
        name: from
        description: The index of the `rows` array to start returning data from. The array index starts at 0. For example, if you set `from` = 2, the first two rows are excluded.
        schema:
          type: integer
          example: 2
      - $ref: '#/components/parameters/FilterField'
      - $ref: '#/components/parameters/FilterType'
      - $ref: '#/components/parameters/FilterValue'
      - $ref: '#/components/parameters/SorterField'
      - $ref: '#/components/parameters/SorterDir'
      responses:
        '200':
          description: List of configured alerts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  rows:
                    type: array
                    items:
                      allOf:
                      - type: object
                        properties:
                          _id:
                            type: string
                            description: Unique identifier for the alert.
                            example: izWJPJcBOClmoe-Yecr0
                      - $ref: '#/components/schemas/Alert'
        '400':
          description: The provided query is invalid.
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
    post:
      summary: Create an Alert
      description: Creates a new Alert.
      tags:
      - Alerts
      operationId: create-alert
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - platform
              - index
              - filters
              - results_threshold
              - results_threshold_seconds
              - retrigger_interval
              - severity
              properties:
                name:
                  $ref: '#/components/schemas/Alert/properties/name'
                description:
                  $ref: '#/components/schemas/Alert/properties/description'
                severity:
                  $ref: '#/components/schemas/Alert/properties/severity'
                enabled:
                  $ref: '#/components/schemas/Alert/properties/enabled'
                platform:
                  $ref: '#/components/schemas/Alert/properties/platform'
                results_threshold_seconds:
                  $ref: '#/components/schemas/Alert/properties/results_threshold_seconds'
                results_threshold:
                  $ref: '#/components/schemas/Alert/properties/results_threshold'
                retrigger_interval:
                  $ref: '#/components/schemas/Alert/properties/retrigger_interval'
                index:
                  $ref: '#/components/schemas/Alert/properties/index'
                filters:
                  $ref: '#/components/schemas/Alert/properties/filters'
                webhook_url:
                  $ref: '#/components/schemas/Alert/properties/webhook_url'
                script_id:
                  $ref: '#/components/schemas/Alert/properties/script_id'
                user_script_id:
                  $ref: '#/components/schemas/Alert/properties/user_script_id'
                survey_id:
                  $ref: '#/components/schemas/Alert/properties/survey_id'
                email_addresses:
                  $ref: '#/components/schemas/Alert/properties/email_addresses'
                servicenow_raise_incident:
                  $ref: '#/components/schemas/Alert/properties/servicenow_raise_incident'
                servicenow_ticket_type:
                  $ref: '#/components/schemas/Alert/properties/servicenow_ticket_type'
                servicenow_impact:
                  $ref: '#/components/schemas/Alert/properties/servicenow_impact'
                servicenow_urgency:
                  $ref: '#/components/schemas/Alert/properties/servicenow_urgency'
                servicenow_autoclose_interval:
                  $ref: '#/components/schemas/Alert/properties/servicenow_autoclose_interval'
      responses:
        '200':
          description: Alert created.
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
  /alerts/{id}:
    servers:
    - url: https://api.controlup.com/edge/api
    get:
      summary: Retrieve Alert
      tags:
      - Alerts
      description: 'Returns an alert by its ID.

        '
      operationId: get-alert
      parameters:
      - in: path
        name: id
        description: ID of the alert to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Alert details.
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    _id:
                      type: string
                      description: Unique identifier for the alert.
                      example: izWJPJcBOClmoe-Yecr0
                - $ref: '#/components/schemas/Alert'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
    post:
      summary: Edit alert
      description: Edits an existing alert by its ID. Any parameters not passed are unchanged.
      tags:
      - Alerts
      operationId: edit-alert
      parameters:
      - in: path
        name: id
        description: ID of the alert to edit.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Alert'
      responses:
        '200':
          description: Alert edited
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
    delete:
      summary: Delete alert
      description: Deletes an existing alert by its ID.
      tags:
      - Alerts
      operationId: delete-alert
      parameters:
      - in: path
        name: id
        description: ID of the alert to delete.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Alert deleted
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
  /organizations/{orgId}/alert-configs:
    servers:
    - url: https://api.controlup.com/events/v1/alerts
    get:
      operationId: AlertsConfigsController_getAll
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIPaginatedResponse_AlertMetadataDTO-Array_'
        '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: Returns a list of configured alerts.
      summary: List all Alerts
      tags:
      - Alerts
      security:
      - apiKey: []
      parameters:
      - description: 'The page of results to return.

          The first page is page number 1.'
        in: query
        name: _page
        required: false
        schema:
          default: '1'
          format: int32
          type: integer
          minimum: 1
        example: 1
        style: form
      - description: The number of results returned per page.
        in: query
        name: _limit
        required: false
        schema:
          default: '10'
          format: int32
          type: integer
          minimum: 1
        example: 10
        style: form
      - description: Sorts results according to the specified field.
        in: query
        name: _sortBy
        required: false
        schema:
          default: id
          type: string
        example: id
        style: form
      - description: The sort order (ascending / descending) of the field specified by the `_sortBy` parameter.
        in: query
        name: _order
        required: false
        schema:
          default: asc
          type: string
          enum:
          - asc
          - desc
        example: asc
        style: form
      - description: 'A search filter that is applied to all fields.

          Only results that contain the specified string are returned.'
        in: query
        name: _search
        required: false
        schema:
          type: string
        style: form
      - 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: "JSON filter for narrowing results. Send this value as a URL-encoded JSON string.\n\nExample:\n```\n%7B%22and%22%3A%20%5B%7B%22filter%22%3A%20%7B%22key%22%3A%20%22type%22%2C%20%22op%22%3A%20%22equals%22%2C%20%22value%22%3A%20%22anomaly%22%7D%7D%2C%7B%22filter%22%3A%20%7B%22key%22%3A%20%22severity%22%2C%20%22op%22%3A%20%22equals%22%2C%20%22value%22%3A%20%22low%22%7D%7D%5D%7D\n```\n\nDecoded value:\n```\n{\n  \"and\": [\n    {\n      \"filter\": {\n        \"key\": \"type\",\n        \"op\": \"equals\",\n        \"value\": \"anomaly\"\n      }\n    },\n    {\n      \"filter\": {\n        \"key\": \"severity\",\n        \"op\": \"equals\",\n        \"value\": \"low\"\n      }\n    }\n  ]\n}\n```"
        in: query
        name: filters
        required: false
        schema:
          type: string
        style: form
  /alerts/scouts:
    servers:
    - url: https://api.controlup.com/synthetic-monitoring/v2/
    get:
      summary: List Scout IDs with alerts
      description: 'Returns a list of Scout IDs that have triggered an alert within the specified time frame. The default time frame is the last 24 hours.

        '
      operationId: honeycomb.api.get_scout_alerts
      security:
      - ApiKeyAuth:
        - read
      parameters:
      - in: query
        name: start
        description: Start date and time of the search.
        schema:
          type: string
          format: date-time
        example: '2021-01-01 13:21:55'
      - in: query
        name: end
        description: End date and time of the search.
        schema:
          type: string
          format: date-time
        example: '2021-02-01 10:24:55'
      tags:
      - Alerts
      responses:
        '200':
          $ref: '#/components/responses/AlertList'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/ServerError'
      x-codeSamples:
      - lang: cURL
        source: 'curl -X GET ''https://api.scoutbees.io/honeycomb/v2/alerts/scouts?start=2023-09-26 08:00:00&end=2023-09-27 01:30:00'' \

          -H ''x-scoutbees-key: API-key-here''

          '
  /alerts/{scoutId}:
    servers:
    - url: https://api.controlup.com/synthetic-monitoring/v2/
    get:
      summary: List alerts for a Scout
      description: Returns alerts generated within the specified time frame for a Scout. The default time frame is the last 24 hours.
      operationId: app.get_alert_for_scout
      security:
      - ApiKeyAuth:
        - read
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: string
        required: true
      - name: start
        in: query
        description: Start date and time of the search. The start date can be up to 1 year in the past. The total search duration from the start time to the end time can be a maximum of 24 hours.
        schema:
          type: string
          format: date-time
        example: '2023-09-26 08:00:00'
      - name: end
        in: query
        description: End date and time of the search.
        schema:
          type: string
          format: date-time
        example: '2023-09-27 01:30:00'
      - name: page
        in: query
        description: The page of alerts to return. Each page contains up to 100 alerts. If your request returns more than 100 alerts, then the response is paginated.
        schema:
          type: integer
      tags:
      - Alerts
      responses:
        '200':
          $ref: '#/components/responses/AlertItem'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/ServerError'
      x-codeSamples:
      - lang: cURL
        source: 'curl -X GET ''https://api.scoutbees.io/honeycomb/v2/alerts/7852?start=2023-09-26 08:00:00&end=2023-09-27 01:30:00'' \

          -H ''x-scoutbees-key: API-key-here''

          '
  /scouts/{scoutId}/alerts:
    servers:
    - url: https://api.controlup.com/synthetic-monitoring/v2/
    get:
      summary: List alert policies for a Scout
      description: Returns all alert policies configured for a Scout. Currently, each Scout supports only a single alert policy.
      operationId: app.get_scout_alert_policies
      security:
      - ApiKeyAuth:
        - read
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      tags:
      - Alerts
      responses:
        '200':
          $ref: '#/components/responses/AlertSummaryList'
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: 'curl -X GET ''https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts'' \

          -H ''x-scoutbees-key: API-key-here''

          '
    post:
      summary: Create alert policy
      description: Creates a new alert policy for a Scout. A Scout can have only one alert policy. If one already exists, you can update it or delete it. Alerts trigger when the Scout's test results meet certain conditions.
      operationId: app.create_scout_alert
      security:
      - ApiKeyAuth:
        - write
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      requestBody:
        $ref: '#/components/requestBodies/AlertCreate'
      tags:
      - Alerts
      responses:
        '201':
          description: Alert created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Whether the request was successful.
                  data:
                    type: object
                    properties:
                      alertId:
                        type: integer
                        description: ID of the created alert.
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts' \\\n-H 'x-scoutbees-key: API-key-here' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n    \"conditions\": {\n      \"field\": \"status\",\n      \"operator\": \"==\",\n      \"value\": \"failure\"\n    },\n    \"settings\": {\n      \"consecutiveMatchCount\": 2\n    }\n}'\n"
  /scouts/{scoutId}/alerts/{alertId}:
    servers:
    - url: https://api.controlup.com/synthetic-monitoring/v2/
    get:
      summary: Get alert policy details
      description: Returns detailed information about a specific alert policy for a Scout, including settings, notifications, and status.
      operationId: app.get_scout_alert
      security:
      - ApiKeyAuth:
        - read
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      - name: alertId
        in: path
        description: ID of the Scout's alert policy. Currently, each Scout supports only a single alert policy.
        schema:
          type: integer
        required: true
      tags:
      - Alerts
      responses:
        '200':
          $ref: '#/components/responses/AlertDetails'
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: 'curl -X GET ''https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts/123'' \

          -H ''x-scoutbees-key: API-key-here''

          '
    patch:
      summary: Update alert policy
      description: Updates an existing alert policy for a specific Scout. Any object not passed is unchanged.
      operationId: app.update_scout_alert
      security:
      - ApiKeyAuth:
        - write
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      - name: alertId
        in: path
        description: 'ID of the Scout''s alert policy. Currently, each Scout supports only a single alert policy.

          You can use [GET /scouts/{scoutId}/alerts](appget_scout_alert_policies) to get the ID of a Scout''s alert policy.

          '
        schema:
          type: integer
        required: true
      requestBody:
        $ref: '#/components/requestBodies/AlertUpdate'
      tags:
      - Alerts
      responses:
        '200':
          description: Alert was updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Whether the request was successful.
                  data:
                    type: object
                    properties:
                      alertId:
                        type: integer
                        description: ID of the updated alert.
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PATCH 'https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts/123' \\\n-H 'x-scoutbees-key: API-key-here' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n    \"disabled\": true,\n    \"conditions\": {\n      \"field\": \"status\",\n      \"operator\": \"==\",\n      \"value\": \"failure\"\n    },\n    \"settings\": {\n      \"consecutiveMatchCount\": 2\n    }\n}'\n"
    delete:
      summary: Delete alert policy
      description: Deletes an Scout's alert policy.
      operationId: app.delete_scout_alert
      security:
      - ApiKeyAuth:
        - write
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      - name: alertId
        in: path
        description: ID of the Scout's alert policy. Currently, each Scout supports only a single alert policy.
        schema:
          type: integer
        required: true
      tags:
      - Alerts
      responses:
        '204':
          description: Alert was deleted successfully
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts/123' \\\n-H 'x-scoutbees-key: API-key-here' \\\n-H 'Content-Type: application/json' \n"
components:
  schemas:
    AlertConditionGroupTraceroute:
      title: Condition Group
      description: 'Group of conditions or condition groups with AND/OR operators. Supports nesting up to 5 levels deep.

        '
      type: object
      required:
      - operator
      - rules
      properties:
        operator:
          type: string
          description: Logical operator for combining rules in this group.
          enum:
          - AND
          - OR
          example: AND
        rules:
          type: array
          description: "List of conditions or condition groups. Must contain at least \n1 and at most 5 items.\n"
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/AlertConditionObjectTraceroute'
          example:
          - field: status
            operator: ==
            value: failure
          - operator: OR
            rules:
            - field: latency
              operator: '>'
              value: 80
            - field: packetLoss
              operator: '>'
              value: 90
    AlertSummary:
      title: Alert Summary
      description: Summary information about an alert policy for a Scout.
      type: object
      properties:
        alertId:
          type: integer
          description: ID of the alert policy.
          example: 123
        scoutId:
          type: integer
          description: ID of the Scout.
          example: 7852
        subType:
          type: string
          description: Scout platform/subtype.
          enum:
          - citrix_gateway
          - citrix_cloud
          - citrix_storefront
          - avd
          - vmware_horizon
          - vmware_cloud
          - vmware_w1
          - vmware_secsrv
          - net_ping
          - net_traceroute
          - net_dns
          - net_http
          - siteload
          - shell
          - entra_id
          - ms_exchange
          - ms_teams
          - web_transactions
          example: net_http
        conditions:
          $ref: '#/components/schemas/AlertTerminalRuleResponse'
          description: "Alert conditions that must be met for the alert to trigger. \n\nThe response structure can vary as an alert policy can have multiple nested conditions in condition groups with AND/OR operators. \nSee the [POST /scouts/{scoutId}/alerts](appcreate_scout_alert) request body for more detailed information about the conditions object.\n"
        readableConditions:
          type: string
          description: Human-readable representation of the alert conditions.
          example: status == failure
      required:
      - alertId
      - scoutId
      - subType
      - conditions
    Alert:
      type: object
      properties:
        enabled:
          type: boolean
          description: Indicates if the alert is enabled.
          example: true
        platform:
          type: integer
          format: int32
          description: "OS platform. This determines which scripts are available to select as a followup action when the alert is triggered. This does not determine which devices can trigger the script. \n* 0 - No platform selected\n* 1 - Windows\n* 2 - macOS\n* 3 - Linux\n* 4 - ChromeOS \n"
          example: 1
        servicenow_raise_incident:
          type: string
          description: Indicates if the Alert raises a ServiceNow ticket when it activates. "true" means that a ticket is raised.
          example: 'true'
        servicenow_ticket_type:
          type: integer
          format: int32
          description: 'Type of ServiceNow ticket.

            * `1` = Incident

            * `2` = Event

            '
          example: 1
        servicenow_impact:
          type: integer
          format: int32
          description: 'Impact level for the ServiceNow ticket.

            * `1` = High

            * `2` = Medium

            * `3` = Low

            '
          example: 2
        servicenow_urgency:
          type: integer
          format: int32
          description: 'Urgency level for the ServiceNow ticket.

            * `1` = High

            * `2` = Medium

            * `3` = Low

            '
          example: 2
        servicenow_autoclose_interval:
          type: integer
          format: int32
          description: Auto-close interval for the ServiceNow ticket in seconds.
          example: 300
        name:
          type: string
          description: Name of the alert.
          example: My first alert
        description:
          type: string
          description: Description of the alert.
          example: Description of my first alert goes here
        index:
          type: string
          description: Index associated with the alert. The alerts conditions (located in `filters) must be based off of fields in the data index.
          example: device_status
        filters:
          type: array
          description: List of conditions for the alert to activate. Multiple conditions are combined using AND operators.
          items:
            type: object
            properties:
              field:
                type: string
                description: Field to filter on.
                example: cpuload
              type:
                type: string
                description: Type of comparison. Note that if you are filtering on a string field, you must use the "like" filter type.
                example: '>'
                enum:
                - '='
                - '!='
                - '>='
                - '>'
                - <=
                - <
                - like
              value:
                type: string
                description: Value to compare against. Numbers can be passed as strings.
                example: '1'
        results_threshold:
          type: integer
          format: int32
          description: The number of times that the conditions must be met within the time window (`results_threshold_seconds`) for the trigger to activate.
          example: 5
        results_threshold_seconds:
          type: integer
          format: int32
          description: The length of time in seconds that the alert system searches back to check whether the alert's activation conditions were met.
          example: 600
        retrigger_interval:
          type: integer
          format: int32
          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.
          example: 3600
        severity:
          type: integer
          format: int32
          description: 'Severity level of the alert.

            * 1 - Informational

            * 2 - Low

            * 3 - Medium

            * 4 - High

            * 5 - Critical

            '
          example: 4
        evaluation_mode:
          type: integer
          format: int32
          description: Internal use only.
          example: 1
        webhook_url:
          type:
          - string
          - 'null'
          format: uri
          description: URL for a webhook to be triggered.
          example: https://your-domain.com/webhook-endpoint
        script_id:
          type:
          - string
          - 'null'
          description: ID of a system script to run on devices that trigger the alert. You can use [GET /scripts](list-all-scripts) to see script IDs.
          example: fpwG-4oB1426LInH16YF
        user_script_id:
          type:
          - string
          - 'null'
          description: ID of a user script to run on devices that trigger the alert. You can use [GET /scripts](list-all-scripts) to see script IDs.
          example: fpwG-4oB1426LInH16YF
        script_arguments:
          type:
          - string
          - 'null'
          description: Internal use only.
        survey_id:
          type:
          - string
          - 'null'
          description: ID of an on-demand survey to run on devices that trigger the alert. You can use [GET /surveys](get-surveys) to see survey IDs.
          example: fpwG-4oB1426LInH16YF
        email_addresses:
          type: string
          description: A semicolon-separated list of email addresses to receive an email when the alert triggers.
          example: firstemail@gmail.com;secondemail@gmail.com
    SubType:
      type: object
      title: List of sub types of the
      properties:
        subType:
          description: The Scout's sub-type.
          type: string
          enum:
          - citrix
          - citrix_cloud
          - storefront
          - euc_avd
          - vmware
          - vmware_cloud
          - vmware_ws_one
          - vmware_sec_server
          - net_ping
          - net_traceroute
          - net_dns
          - net_http
          - net_siteload
          - app_shell
          - app_azure_ad
          - app_ms_exchange
          - app_ms_teams
  

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