From 8f27ec2521f789ded0dfa2dd2ce38db7f5aa5225 Mon Sep 17 00:00:00 2001 From: Tom Ratcliffe Date: Thu, 25 Apr 2024 16:09:36 +0100 Subject: [PATCH] Add silences RTK Query API --- .../alerting/unified/api/alertSilencesApi.ts | 65 +++++++++++++++++++ .../alerting/unified/api/alertingApi.ts | 1 + 2 files changed, 66 insertions(+) create mode 100644 public/app/features/alerting/unified/api/alertSilencesApi.ts diff --git a/public/app/features/alerting/unified/api/alertSilencesApi.ts b/public/app/features/alerting/unified/api/alertSilencesApi.ts new file mode 100644 index 00000000000..7ecf53ceac1 --- /dev/null +++ b/public/app/features/alerting/unified/api/alertSilencesApi.ts @@ -0,0 +1,65 @@ +import { Silence, SilenceCreatePayload } from 'app/plugins/datasource/alertmanager/types'; + +import { alertingApi } from './alertingApi'; + +export const alertSilencesApi = alertingApi.injectEndpoints({ + endpoints: (build) => ({ + getSilences: build.query< + Silence[], + { + datasourceUid: string; + } + >({ + query: ({ datasourceUid }) => ({ + url: `/api/alertmanager/${datasourceUid}/api/v2/silences`, + }), + providesTags: ['AlertSilences'], + }), + + getSilence: build.query< + Silence, + { + datasourceUid: string; + id: string; + } + >({ + query: ({ datasourceUid, id }) => ({ + url: `/api/alertmanager/${datasourceUid}/api/v2/silence/${id}`, + }), + providesTags: ['AlertSilences'], + }), + + createSilence: build.mutation< + { + silenceId: string; + }, + { + datasourceUid: string; + payload: SilenceCreatePayload; + } + >({ + query: ({ datasourceUid, payload }) => ({ + url: `/api/alertmanager/${datasourceUid}/api/v2/silences`, + method: 'POST', + data: payload, + }), + invalidatesTags: ['AlertSilences'], + }), + + expireSilence: build.mutation< + { + message: string; + }, + { + datasourceUid: string; + silenceId: string; + } + >({ + query: ({ datasourceUid, silenceId }) => ({ + url: `/api/alertmanager/${datasourceUid}/api/v2/silence/${silenceId}`, + method: 'DELETE', + }), + invalidatesTags: ['AlertSilences'], + }), + }), +}); diff --git a/public/app/features/alerting/unified/api/alertingApi.ts b/public/app/features/alerting/unified/api/alertingApi.ts index fce6b5b21f3..1ee809e24e3 100644 --- a/public/app/features/alerting/unified/api/alertingApi.ts +++ b/public/app/features/alerting/unified/api/alertingApi.ts @@ -40,6 +40,7 @@ export const alertingApi = createApi({ 'DataSourceSettings', 'GrafanaLabels', 'CombinedAlertRule', + 'AlertSilences', ], endpoints: () => ({}), });