Alerting: Receivers API (read only endpoints) (#81751)
* Add single receiver method * Add receiver permissions * Add single/multi GET endpoints for receivers * Remove stable tag from time intervals See end of PR description here: https://github.com/grafana/grafana/pull/81672
This commit is contained in:
@@ -19,10 +19,20 @@ import (
|
||||
)
|
||||
|
||||
type NotificationsApi interface {
|
||||
RouteGetReceiver(*contextmodel.ReqContext) response.Response
|
||||
RouteGetReceivers(*contextmodel.ReqContext) response.Response
|
||||
RouteNotificationsGetTimeInterval(*contextmodel.ReqContext) response.Response
|
||||
RouteNotificationsGetTimeIntervals(*contextmodel.ReqContext) response.Response
|
||||
}
|
||||
|
||||
func (f *NotificationsApiHandler) RouteGetReceiver(ctx *contextmodel.ReqContext) response.Response {
|
||||
// Parse Path Parameters
|
||||
nameParam := web.Params(ctx.Req)[":name"]
|
||||
return f.handleRouteGetReceiver(ctx, nameParam)
|
||||
}
|
||||
func (f *NotificationsApiHandler) RouteGetReceivers(ctx *contextmodel.ReqContext) response.Response {
|
||||
return f.handleRouteGetReceivers(ctx)
|
||||
}
|
||||
func (f *NotificationsApiHandler) RouteNotificationsGetTimeInterval(ctx *contextmodel.ReqContext) response.Response {
|
||||
// Parse Path Parameters
|
||||
nameParam := web.Params(ctx.Req)[":name"]
|
||||
@@ -34,6 +44,30 @@ func (f *NotificationsApiHandler) RouteNotificationsGetTimeIntervals(ctx *contex
|
||||
|
||||
func (api *API) RegisterNotificationsApiEndpoints(srv NotificationsApi, m *metrics.API) {
|
||||
api.RouteRegister.Group("", func(group routing.RouteRegister) {
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/notifications/receivers/{Name}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
requestmeta.SetSLOGroup(requestmeta.SLOGroupHighSlow),
|
||||
api.authorize(http.MethodGet, "/api/v1/notifications/receivers/{Name}"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
"/api/v1/notifications/receivers/{Name}",
|
||||
api.Hooks.Wrap(srv.RouteGetReceiver),
|
||||
m,
|
||||
),
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/notifications/receivers"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
requestmeta.SetSLOGroup(requestmeta.SLOGroupHighSlow),
|
||||
api.authorize(http.MethodGet, "/api/v1/notifications/receivers"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
"/api/v1/notifications/receivers",
|
||||
api.Hooks.Wrap(srv.RouteGetReceivers),
|
||||
m,
|
||||
),
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/notifications/time-intervals/{name}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
|
||||
Reference in New Issue
Block a user