| 1 | import type { FlaskBaseResponse } from "@/types/flask.d" |
| 2 | import type { AvailableMonitoringAlert, CustomProvisionPriority, MonitoringAlert } from "@/types/monitoringAlerts.d" |
| 3 | import { HttpClient } from "../httpClient" |
| 4 | |
| 5 | export interface ProvisionsMonitoringAlertParams { |
| 6 | searchWithinLast: number |
| 7 | executeEvery: number |
| 8 | } |
| 9 | |
| 10 | export interface CustomProvisionPayload { |
| 11 | alert_name: string |
| 12 | alert_description: string |
| 13 | alert_priority: CustomProvisionPriority |
| 14 | search_query: string |
| 15 | streams: string[] |
| 16 | custom_fields: { |
| 17 | name: string |
| 18 | value: string |
| 19 | }[] |
| 20 | search_within_ms: number |
| 21 | execute_every_ms: number |
| 22 | } |
| 23 | |
| 24 | export default { |
| 25 | getAvailableMonitoringAlerts() { |
| 26 | return HttpClient.get<FlaskBaseResponse & { available_monitoring_alerts: AvailableMonitoringAlert[] }>( |
| 27 | `/monitoring_alert/available` |
| 28 | ) |
| 29 | }, |
| 30 | provisionsMonitoringAlert(alertName: string, params: ProvisionsMonitoringAlertParams) { |
| 31 | return HttpClient.post<FlaskBaseResponse>(`/monitoring_alert/provision`, { |
| 32 | search_within_last: params.searchWithinLast, |
| 33 | execute_every: params.executeEvery, |
| 34 | alert_name: alertName |
| 35 | }) |
| 36 | }, |
| 37 | customProvision(payload: CustomProvisionPayload) { |
| 38 | return HttpClient.post<FlaskBaseResponse>(`/monitoring_alert/provision/custom`, payload) |
| 39 | }, |
| 40 | listAll(signal?: AbortSignal) { |
| 41 | return HttpClient.get<FlaskBaseResponse & { monitoring_alerts: MonitoringAlert[] }>( |
| 42 | `/monitoring_alert/list`, |
| 43 | signal ? { signal } : {} |
| 44 | ) |
| 45 | }, |
| 46 | invoke(alertId: number) { |
| 47 | return HttpClient.post<FlaskBaseResponse>(`/monitoring_alert/invoke/${alertId}`) |
| 48 | }, |
| 49 | deleteAlert(alertId: number) { |
| 50 | return HttpClient.delete<FlaskBaseResponse>(`/monitoring_alert/single_alert/${alertId}`) |
| 51 | }, |
| 52 | purge() { |
| 53 | return HttpClient.delete<FlaskBaseResponse>(`/monitoring_alert/purge`) |
| 54 | } |
| 55 | } |