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)'