Summary

  • Added bulk alert management to the Labs API. New create-alerts, update-alerts, and delete-alerts endpoints let clients manage up to 30, 30, and 20 alerts per request across six alert types: Dag success, Dag failure, Dag duration, Dag timeliness, task duration, and task failure.

Added

  • Endpoints

    • POST /organizations/{organizationId}/create-alerts (LabsCreateAlerts): Bulk create up to 30 alerts. Takes a CreateAlertsRequest and returns an AlertsList.
    • POST /organizations/{organizationId}/update-alerts (LabsUpdateAlerts): Bulk update up to 30 alerts. Takes an UpdateAlertsRequest and returns an AlertsList.
    • POST /organizations/{organizationId}/delete-alerts (LabsDeleteAlerts): Bulk delete up to 20 alerts. Takes a DeleteAlertsRequest. Returns 204 with no response body.
  • Schemas

    • Alert, AlertsList, AlertNotificationChannel, AlertRules, BasicSubjectProfile: Response shapes for an alert, a list of alerts, a notification channel, an alert’s rules, and the profile of the user or API token that created or updated an alert.
    • CreateAlertsRequest, UpdateAlertsRequest, DeleteAlertsRequest: Bulk request wrappers. CreateAlertsRequest and UpdateAlertsRequest each wrap a list of CreateAlertRequest or UpdateAlertRequest, a type-discriminated union over the six alert types. DeleteAlertsRequest wraps a list of alertIds.
    • Per-type request, properties, and rules schemas: each of the six alert types (DAG_SUCCESS, DAG_FAILURE, DAG_DURATION, DAG_TIMELINESS, TASK_DURATION, and TASK_FAILURE) gets its own create and update request, properties, and rules schemas, for example CreateDagDurationAlertRequest, CreateDagDurationAlertProperties, and CreateDagDurationAlertRules for Dag duration alerts. Each type’s properties schema holds its type-specific configuration, for example dagDurationSeconds for Dag duration alerts or dagDeadline and daysOfWeek for Dag timeliness alerts.
    • PatternMatch, PatternMatchRequest: Scope an alert to specific Dag or task IDs using an entityType (DAG_ID or TASK_ID) and operatorType (IS, IS_NOT, INCLUDES, or EXCLUDES).