7e4327d254
* Add validator for mute timing and make it provisionable
* Add tests to ensure prometheus validators are running and errors are propagated
* Internal API for manipulating mute timings
* Define and generate API layer
* Wire up generated code
* Implement API handlers
* Tests for golang layer
* Fix reference bug
* Fix linter and auth tests
* Resolve semantic errors and regenerate
* Remove pointless comment
* Extract out provisioning path param keys, simplify
* Expected number of paths
(cherry picked from commit 909ebcf979)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
81 lines
2.9 KiB
Go
81 lines
2.9 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/api/response"
|
|
"github.com/grafana/grafana/pkg/models"
|
|
apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions"
|
|
)
|
|
|
|
// ForkedProvisioningApi always forwards requests to a Grafana backend.
|
|
// We do not currently support provisioning of external systems through Grafana's API.
|
|
type ForkedProvisioningApi struct {
|
|
svc *ProvisioningSrv
|
|
}
|
|
|
|
// NewForkedProvisioningApi creates a new ForkedProvisioningApi instance.
|
|
func NewForkedProvisioningApi(svc *ProvisioningSrv) *ForkedProvisioningApi {
|
|
return &ForkedProvisioningApi{
|
|
svc: svc,
|
|
}
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteGetPolicyTree(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteGetPolicyTree(ctx)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRoutePutPolicyTree(ctx *models.ReqContext, route apimodels.Route) response.Response {
|
|
return f.svc.RoutePutPolicyTree(ctx, route)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteGetContactpoints(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteGetContactPoints(ctx)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRoutePostContactpoints(ctx *models.ReqContext, cp apimodels.EmbeddedContactPoint) response.Response {
|
|
return f.svc.RoutePostContactPoint(ctx, cp)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRoutePutContactpoint(ctx *models.ReqContext, cp apimodels.EmbeddedContactPoint) response.Response {
|
|
return f.svc.RoutePutContactPoint(ctx, cp)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteDeleteContactpoints(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteDeleteContactPoint(ctx)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteGetTemplates(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteGetTemplates(ctx)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteGetTemplate(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteGetTemplate(ctx)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRoutePutTemplate(ctx *models.ReqContext, body apimodels.MessageTemplateContent) response.Response {
|
|
return f.svc.RoutePutTemplate(ctx, body)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteDeleteTemplate(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteDeleteTemplate(ctx)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteGetMuteTiming(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteGetMuteTiming(ctx)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteGetMuteTimings(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteGetMuteTimings(ctx)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRoutePostMuteTiming(ctx *models.ReqContext, mt apimodels.MuteTimeInterval) response.Response {
|
|
return f.svc.RoutePostMuteTiming(ctx, mt)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRoutePutMuteTiming(ctx *models.ReqContext, mt apimodels.MuteTimeInterval) response.Response {
|
|
return f.svc.RoutePutMuteTiming(ctx, mt)
|
|
}
|
|
|
|
func (f *ForkedProvisioningApi) forkRouteDeleteMuteTiming(ctx *models.ReqContext) response.Response {
|
|
return f.svc.RouteDeleteMuteTiming(ctx)
|
|
}
|