Soda Notification Rules API

Alert and notification rule management

OpenAPI Specification

soda-co-notification-rules-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Soda Cloud REST Attributes Notification Rules API
  description: The Soda Cloud REST API enables programmatic access to trigger data quality scans, retrieve check results, update incident status, manage datasets, datasources, contracts, runners, secrets, notification rules, and integrate data quality workflows into CI/CD pipelines. Supports EU and US cloud regions.
  version: 1.0.0
  contact:
    name: Soda Support
    url: https://soda.io
servers:
- url: https://cloud.soda.io
  description: EU Cloud
- url: https://cloud.us.soda.io
  description: US Cloud
security:
- basicAuth: []
tags:
- name: Notification Rules
  description: Alert and notification rule management
paths:
  /api/v1/notificationRules:
    get:
      summary: List notification rules
      operationId: listNotificationRules
      tags:
      - Notification Rules
      parameters:
      - name: size
        in: query
        schema:
          type: integer
          minimum: 10
          maximum: 1000
          default: 10
      - name: page
        in: query
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: Paginated list of notification rules
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      summary: Create notification rule
      description: Requires MANAGE_NOTIFICATION_RULES permission.
      operationId: createNotificationRule
      tags:
      - Notification Rules
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRuleRequest'
      responses:
        '200':
          description: Notification rule created
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v1/notificationRules/{notificationRuleId}:
    post:
      summary: Update notification rule
      description: Requires MANAGE_NOTIFICATION_RULES permission. Performs full replacement.
      operationId: updateNotificationRule
      tags:
      - Notification Rules
      parameters:
      - name: notificationRuleId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRuleRequest'
      responses:
        '200':
          description: Notification rule updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    delete:
      summary: Delete notification rule
      description: Requires MANAGE_NOTIFICATION_RULES permission.
      operationId: deleteNotificationRule
      tags:
      - Notification Rules
      parameters:
      - name: notificationRuleId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Rule deleted
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    NotificationRuleRequest:
      type: object
      required:
      - name
      - recipients
      - ruleType
      properties:
        name:
          type: string
        ruleType:
          type: string
          enum:
          - check
          - monitor
        status:
          type: string
          enum:
          - active
          - paused
        filter:
          type: object
        recipients:
          type: array
          items:
            type: object
        customization:
          type: object
  responses:
    Unauthorized:
      description: Unauthorized - authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Forbidden - insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'Base64-encoded API key ID and secret: base64(api_key_id:api_key_secret)'