Viridi Notification Rule Controller API

The notification-rule-controller API from Viridi — 3 operation(s) for notification-rule-controller.

Operations 4

POST /api/notification/rule Save notification rule (saveNotificationRule) #
GET /api/notification/rules Get notification rules (getNotificationRules) #
GET /api/notification/rule/{id} Get notification rule by id (getNotificationRuleById) #
DELETE /api/notification/rule/{id} Delete notification rule (deleteNotificationRule) #

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/viridi-parente-notification-rule-controller-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

viridi-parente-notification-rule-controller-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ThingsBoard REST Notification Rule Controller API
  description: ThingsBoard open-source IoT platform REST API documentation.
  contact:
    name: ThingsBoard team
    url: https://thingsboard.io
    email: info@thingsboard.io
  license:
    name: Apache License Version 2.0
    url: https://github.com/thingsboard/thingsboard/blob/master/LICENSE
  version: 3.7.0
servers:
- url: https://vista.viridiparente.com
  description: Generated server url
tags:
- name: notification-rule-controller
paths:
  /api/notification/rule:
    post:
      tags:
      - notification-rule-controller
      summary: Save notification rule (saveNotificationRule)
      description: 'Creates or updates notification rule.


        Mandatory properties are `name`, `templateId` (of a template with `notificationType` matching to rule''s `triggerType`), `triggerType`, `triggerConfig` and `recipientConfig`. Additionally, you may specify rule `description` inside of `additionalConfig`.


        Trigger type of the rule cannot be changed. Available trigger types for tenant: `ENTITY_ACTION`, `ALARM`, `ALARM_COMMENT`, `ALARM_ASSIGNMENT`, `DEVICE_ACTIVITY`, `RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT`.

        For sysadmin, there are following trigger types available: `ENTITIES_LIMIT`, `API_USAGE_LIMIT`, `NEW_PLATFORM_VERSION`.


        Here is an example of notification rule to send notification when a device, asset or customer is created or deleted:

        ```json

        {

        "name": "Entity action",

        "templateId": {

        "entityType": "NOTIFICATION_TEMPLATE",

        "id": "32117320-d785-11ed-a06c-21dd57dd88ca"

        },

        "triggerType": "ENTITY_ACTION",

        "triggerConfig": {

        "entityTypes": [

        "CUSTOMER",

        "DEVICE",

        "ASSET"

        ],

        "created": true,

        "updated": false,

        "deleted": true,

        "triggerType": "ENTITY_ACTION"

        },

        "recipientsConfig": {

        "targets": [

        "320f2930-d785-11ed-a06c-21dd57dd88ca"

        ],

        "triggerType": "ENTITY_ACTION"

        },

        "additionalConfig": {

        "description": "Send notification to tenant admins or customer users when a device, asset or customer is created"

        },

        "templateName": "Entity action notification",

        "deliveryMethods": [

        "WEB"

        ]

        }

        ```


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: saveNotificationRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRule'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationRule'
  /api/notification/rules:
    get:
      tags:
      - notification-rule-controller
      summary: Get notification rules (getNotificationRules)
      description: 'Returns the page of notification rules.


        You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See the ''Model'' tab of the Response Class for more details.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getNotificationRules
      parameters:
      - name: pageSize
        in: query
        description: Maximum amount of entities in a one page
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Sequence number of page starting from 0
        required: true
        schema:
          type: integer
          format: int32
      - name: textSearch
        in: query
        description: Case-insensitive 'substring' filter based on rule's name
        required: false
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property of entity to sort by
        required: false
        schema:
          type: string
      - name: sortOrder
        in: query
        description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDataNotificationRuleInfo'
  /api/notification/rule/{id}:
    get:
      tags:
      - notification-rule-controller
      summary: Get notification rule by id (getNotificationRuleById)
      description: 'Fetches notification rule info by rule''s id.

        In addition to regular notification rule fields, there are `templateName` and `deliveryMethods` in the response.


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: getNotificationRuleById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationRuleInfo'
    delete:
      tags:
      - notification-rule-controller
      summary: Delete notification rule (deleteNotificationRule)
      description: 'Deletes notification rule by id.

        Cancels all related scheduled notification requests (e.g. due to escalation table)


        Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.'
      operationId: deleteNotificationRule
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
components:
  schemas:
    TaskProcessingFailureNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
    RateLimitsNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          apis:
            type: array
            items:
              type: string
              enum:
              - ENTITY_EXPORT
              - ENTITY_IMPORT
              - NOTIFICATION_REQUESTS
              - NOTIFICATION_REQUESTS_PER_RULE
              - REST_REQUESTS_PER_TENANT
              - REST_REQUESTS_PER_CUSTOMER
              - WS_UPDATES_PER_SESSION
              - CASSANDRA_QUERIES
              - EDGE_EVENTS
              - EDGE_EVENTS_PER_EDGE
              - EDGE_UPLINK_MESSAGES
              - EDGE_UPLINK_MESSAGES_PER_EDGE
              - PASSWORD_RESET
              - TWO_FA_VERIFICATION_CODE_SEND
              - TWO_FA_VERIFICATION_CODE_CHECK
              - TRANSPORT_MESSAGES_PER_TENANT
              - TRANSPORT_MESSAGES_PER_DEVICE
              - TRANSPORT_MESSAGES_PER_GATEWAY
              - TRANSPORT_MESSAGES_PER_GATEWAY_DEVICE
              - EMAILS
            uniqueItems: true
    NotificationRule:
      properties:
        id:
          $ref: '#/components/schemas/NotificationRuleId'
        createdTime:
          type: integer
          format: int64
        tenantId:
          $ref: '#/components/schemas/TenantId'
        name:
          type: string
        enabled:
          type: boolean
        templateId:
          $ref: '#/components/schemas/NotificationTemplateId'
        triggerType:
          type: string
          enum:
          - ENTITY_ACTION
          - ALARM
          - ALARM_COMMENT
          - ALARM_ASSIGNMENT
          - DEVICE_ACTIVITY
          - RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT
          - EDGE_CONNECTION
          - EDGE_COMMUNICATION_FAILURE
          - NEW_PLATFORM_VERSION
          - ENTITIES_LIMIT
          - API_USAGE_LIMIT
          - RATE_LIMITS
          - TASK_PROCESSING_FAILURE
        triggerConfig:
          oneOf:
          - $ref: '#/components/schemas/AlarmAssignmentNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/AlarmCommentNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/AlarmNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/ApiUsageLimitNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/DeviceActivityNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/EdgeCommunicationFailureNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/EdgeConnectionNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/EntitiesLimitNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/EntityActionNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/NewPlatformVersionNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/RateLimitsNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/RuleEngineComponentLifecycleEventNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/TaskProcessingFailureNotificationRuleTriggerConfig'
        recipientsConfig:
          oneOf:
          - $ref: '#/components/schemas/EscalatedNotificationRuleRecipientsConfig'
        additionalConfig:
          $ref: '#/components/schemas/NotificationRuleConfig'
      required:
      - name
      - recipientsConfig
      - templateId
      - triggerConfig
      - triggerType
    NotificationRuleTriggerConfig:
      discriminator:
        propertyName: triggerType
      properties:
        triggerType:
          type: string
          enum:
          - ENTITY_ACTION
          - ALARM
          - ALARM_COMMENT
          - ALARM_ASSIGNMENT
          - DEVICE_ACTIVITY
          - RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT
          - EDGE_CONNECTION
          - EDGE_COMMUNICATION_FAILURE
          - NEW_PLATFORM_VERSION
          - ENTITIES_LIMIT
          - API_USAGE_LIMIT
          - RATE_LIMITS
          - TASK_PROCESSING_FAILURE
    NewPlatformVersionNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
    NotificationRuleRecipientsConfig:
      discriminator:
        propertyName: triggerType
      properties:
        triggerType:
          type: string
          enum:
          - ENTITY_ACTION
          - ALARM
          - ALARM_COMMENT
          - ALARM_ASSIGNMENT
          - DEVICE_ACTIVITY
          - RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT
          - EDGE_CONNECTION
          - EDGE_COMMUNICATION_FAILURE
          - NEW_PLATFORM_VERSION
          - ENTITIES_LIMIT
          - API_USAGE_LIMIT
          - RATE_LIMITS
          - TASK_PROCESSING_FAILURE
      required:
      - triggerType
    AlarmAssignmentNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          alarmTypes:
            type: array
            items:
              type: string
            uniqueItems: true
          alarmSeverities:
            type: array
            items:
              type: string
              enum:
              - CRITICAL
              - MAJOR
              - MINOR
              - WARNING
              - INDETERMINATE
            uniqueItems: true
          alarmStatuses:
            type: array
            items:
              type: string
              enum:
              - ANY
              - ACTIVE
              - CLEARED
              - ACK
              - UNACK
            uniqueItems: true
          notifyOn:
            type: array
            items:
              type: string
              enum:
              - ASSIGNED
              - UNASSIGNED
            uniqueItems: true
      required:
      - notifyOn
    AlarmNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          alarmTypes:
            type: array
            items:
              type: string
            uniqueItems: true
          alarmSeverities:
            type: array
            items:
              type: string
              enum:
              - CRITICAL
              - MAJOR
              - MINOR
              - WARNING
              - INDETERMINATE
            uniqueItems: true
          notifyOn:
            type: array
            items:
              type: string
              enum:
              - CREATED
              - SEVERITY_CHANGED
              - ACKNOWLEDGED
              - CLEARED
            uniqueItems: true
          clearRule:
            $ref: '#/components/schemas/ClearRule'
      required:
      - notifyOn
    NotificationRuleId:
      properties:
        id:
          type: string
          format: uuid
          description: ID of the entity, time-based UUID v1
          example: 784f394c-42b6-435a-983c-b7beff2784f9
        entityType:
          type: string
          description: string
          enum:
          - NOTIFICATION_RULE
          example: NOTIFICATION_RULE
      required:
      - entityType
      - id
    EscalatedNotificationRuleRecipientsConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleRecipientsConfig'
      - type: object
        properties:
          escalationTable:
            type: object
            additionalProperties:
              type: array
              items:
                type: string
                format: uuid
      required:
      - escalationTable
      - triggerType
    NotificationTemplateId:
      properties:
        id:
          type: string
          format: uuid
          description: ID of the entity, time-based UUID v1
          example: 784f394c-42b6-435a-983c-b7beff2784f9
        entityType:
          type: string
          description: string
          enum:
          - NOTIFICATION_TEMPLATE
          example: NOTIFICATION_TEMPLATE
      required:
      - entityType
      - id
    EntityActionNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          entityTypes:
            type: array
            items:
              type: string
              enum:
              - TENANT
              - CUSTOMER
              - USER
              - DASHBOARD
              - ASSET
              - DEVICE
              - ALARM
              - RULE_CHAIN
              - RULE_NODE
              - ROLE
              - ENTITY_VIEW
              - WIDGETS_BUNDLE
              - WIDGET_TYPE
              - TENANT_PROFILE
              - DEVICE_PROFILE
              - ASSET_PROFILE
              - API_USAGE_STATE
              - TB_RESOURCE
              - OTA_PACKAGE
              - EDGE
              - RPC
              - QUEUE
              - NOTIFICATION_TARGET
              - NOTIFICATION_TEMPLATE
              - NOTIFICATION_REQUEST
              - NOTIFICATION
              - NOTIFICATION_RULE
              - QUEUE_STATS
            uniqueItems: true
          created:
            type: boolean
          updated:
            type: boolean
          deleted:
            type: boolean
    NotificationRuleConfig:
      properties:
        description:
          type: string
    RuleEngineComponentLifecycleEventNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          ruleChains:
            type: array
            items:
              type: string
              format: uuid
            uniqueItems: true
          ruleChainEvents:
            type: array
            items:
              type: string
              enum:
              - CREATED
              - STARTED
              - ACTIVATED
              - SUSPENDED
              - UPDATED
              - STOPPED
              - DELETED
              - FAILED
              - DEACTIVATED
            uniqueItems: true
          onlyRuleChainLifecycleFailures:
            type: boolean
          trackRuleNodeEvents:
            type: boolean
          ruleNodeEvents:
            type: array
            items:
              type: string
              enum:
              - CREATED
              - STARTED
              - ACTIVATED
              - SUSPENDED
              - UPDATED
              - STOPPED
              - DELETED
              - FAILED
              - DEACTIVATED
            uniqueItems: true
          onlyRuleNodeLifecycleFailures:
            type: boolean
    AlarmCommentNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          alarmTypes:
            type: array
            items:
              type: string
            uniqueItems: true
          alarmSeverities:
            type: array
            items:
              type: string
              enum:
              - CRITICAL
              - MAJOR
              - MINOR
              - WARNING
              - INDETERMINATE
            uniqueItems: true
          alarmStatuses:
            type: array
            items:
              type: string
              enum:
              - ANY
              - ACTIVE
              - CLEARED
              - ACK
              - UNACK
            uniqueItems: true
          onlyUserComments:
            type: boolean
          notifyOnCommentUpdate:
            type: boolean
    ClearRule:
      properties:
        alarmStatuses:
          type: array
          items:
            type: string
            enum:
            - ANY
            - ACTIVE
            - CLEARED
            - ACK
            - UNACK
          uniqueItems: true
    DeviceActivityNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          devices:
            type: array
            items:
              type: string
              format: uuid
            uniqueItems: true
          deviceProfiles:
            type: array
            items:
              type: string
              format: uuid
            uniqueItems: true
          notifyOn:
            type: array
            items:
              type: string
              enum:
              - ACTIVE
              - INACTIVE
            uniqueItems: true
      required:
      - notifyOn
    EntitiesLimitNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          entityTypes:
            type: array
            items:
              type: string
              enum:
              - TENANT
              - CUSTOMER
              - USER
              - DASHBOARD
              - ASSET
              - DEVICE
              - ALARM
              - RULE_CHAIN
              - RULE_NODE
              - ROLE
              - ENTITY_VIEW
              - WIDGETS_BUNDLE
              - WIDGET_TYPE
              - TENANT_PROFILE
              - DEVICE_PROFILE
              - ASSET_PROFILE
              - API_USAGE_STATE
              - TB_RESOURCE
              - OTA_PACKAGE
              - EDGE
              - RPC
              - QUEUE
              - NOTIFICATION_TARGET
              - NOTIFICATION_TEMPLATE
              - NOTIFICATION_REQUEST
              - NOTIFICATION
              - NOTIFICATION_RULE
              - QUEUE_STATS
            uniqueItems: true
          threshold:
            type: number
            format: float
            maximum: 1
    EdgeConnectionNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          edges:
            type: array
            items:
              type: string
              format: uuid
            uniqueItems: true
          notifyOn:
            type: array
            items:
              type: string
              enum:
              - CONNECTED
              - DISCONNECTED
            uniqueItems: true
    NotificationRuleInfo:
      properties:
        id:
          $ref: '#/components/schemas/NotificationRuleId'
        createdTime:
          type: integer
          format: int64
        tenantId:
          $ref: '#/components/schemas/TenantId'
        name:
          type: string
        enabled:
          type: boolean
        templateId:
          $ref: '#/components/schemas/NotificationTemplateId'
        triggerType:
          type: string
          enum:
          - ENTITY_ACTION
          - ALARM
          - ALARM_COMMENT
          - ALARM_ASSIGNMENT
          - DEVICE_ACTIVITY
          - RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT
          - EDGE_CONNECTION
          - EDGE_COMMUNICATION_FAILURE
          - NEW_PLATFORM_VERSION
          - ENTITIES_LIMIT
          - API_USAGE_LIMIT
          - RATE_LIMITS
          - TASK_PROCESSING_FAILURE
        triggerConfig:
          oneOf:
          - $ref: '#/components/schemas/AlarmAssignmentNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/AlarmCommentNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/AlarmNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/ApiUsageLimitNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/DeviceActivityNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/EdgeCommunicationFailureNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/EdgeConnectionNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/EntitiesLimitNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/EntityActionNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/NewPlatformVersionNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/RateLimitsNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/RuleEngineComponentLifecycleEventNotificationRuleTriggerConfig'
          - $ref: '#/components/schemas/TaskProcessingFailureNotificationRuleTriggerConfig'
        recipientsConfig:
          oneOf:
          - $ref: '#/components/schemas/EscalatedNotificationRuleRecipientsConfig'
        additionalConfig:
          $ref: '#/components/schemas/NotificationRuleConfig'
        templateName:
          type: string
        deliveryMethods:
          type: array
          items:
            type: string
            enum:
            - WEB
            - EMAIL
            - SMS
            - SLACK
            - MICROSOFT_TEAMS
            - MOBILE_APP
      required:
      - name
      - recipientsConfig
      - templateId
      - triggerConfig
      - triggerType
    ApiUsageLimitNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          apiFeatures:
            type: array
            items:
              type: string
              enum:
              - TRANSPORT
              - DB
              - RE
              - JS
              - TBEL
              - EMAIL
              - SMS
              - ALARM
            uniqueItems: true
          notifyOn:
            type: array
            items:
              type: string
              enum:
              - ENABLED
              - WARNING
              - DISABLED
            uniqueItems: true
    PageDataNotificationRuleInfo:
      properties:
        data:
          type: array
          description: Array of the entities
          items:
            $ref: '#/components/schemas/NotificationRuleInfo'
          readOnly: true
        totalPages:
          type: integer
          format: int32
          description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria
          readOnly: true
        totalElements:
          type: integer
          format: int64
          description: Total number of elements in all available pages
          readOnly: true
        hasNext:
          type: boolean
          description: '''false'' value indicates the end of the result set'
          readOnly: true
    EdgeCommunicationFailureNotificationRuleTriggerConfig:
      allOf:
      - $ref: '#/components/schemas/NotificationRuleTriggerConfig'
      - type: object
        properties:
          edges:
            type: array
            items:
              type: string
              format: uuid
            uniqueItems: true
    TenantId:
      properties:
        id:
          type: string
          format: uuid
          description: ID of the entity, time-based UUID v1
          example: 784f394c-42b6-435a-983c-b7beff2784f9
        entityType:
          type: string
          description: string
          enum:
          - TENANT
          example: TENANT
      required:
      - entityType
      - id
  securitySchemes:
    HTTP_login_form:
      type: http
      description: Enter Username / Password
      scheme: loginPassword
      bearerFormat: /api/auth/login|X-Authorization