/*Package api contains base API implementation of unified alerting * *Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) * *Do not manually edit these files, please find ngalert/api/swagger-codegen/ for commands on how to generate them. */ package api import ( "net/http" "github.com/go-macaron/binding" "github.com/grafana/grafana/pkg/api/response" "github.com/grafana/grafana/pkg/api/routing" "github.com/grafana/grafana/pkg/middleware" "github.com/grafana/grafana/pkg/models" apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" ) type AlertmanagerApiService interface { RouteCreateSilence(*models.ReqContext, apimodels.PostableSilence) response.Response RouteDeleteAlertingConfig(*models.ReqContext) response.Response RouteDeleteSilence(*models.ReqContext) response.Response RouteGetAMAlertGroups(*models.ReqContext) response.Response RouteGetAMAlerts(*models.ReqContext) response.Response RouteGetAlertingConfig(*models.ReqContext) response.Response RouteGetSilence(*models.ReqContext) response.Response RouteGetSilences(*models.ReqContext) response.Response RoutePostAMAlerts(*models.ReqContext, apimodels.PostableAlerts) response.Response RoutePostAlertingConfig(*models.ReqContext, apimodels.PostableUserConfig) response.Response } func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApiService, metrics *Metrics) { api.RouteRegister.Group("", func(group routing.RouteRegister) { group.Post( toMacaronPath("/api/alertmanager/{Recipient}/api/v2/silences"), binding.Bind(apimodels.PostableSilence{}), Instrument( http.MethodPost, "/api/alertmanager/{Recipient}/api/v2/silences", srv.RouteCreateSilence, metrics, ), ) group.Delete( toMacaronPath("/api/alertmanager/{Recipient}/config/api/v1/alerts"), Instrument( http.MethodDelete, "/api/alertmanager/{Recipient}/config/api/v1/alerts", srv.RouteDeleteAlertingConfig, metrics, ), ) group.Delete( toMacaronPath("/api/alertmanager/{Recipient}/api/v2/silence/{SilenceId}"), Instrument( http.MethodDelete, "/api/alertmanager/{Recipient}/api/v2/silence/{SilenceId}", srv.RouteDeleteSilence, metrics, ), ) group.Get( toMacaronPath("/api/alertmanager/{Recipient}/api/v2/alerts/groups"), Instrument( http.MethodGet, "/api/alertmanager/{Recipient}/api/v2/alerts/groups", srv.RouteGetAMAlertGroups, metrics, ), ) group.Get( toMacaronPath("/api/alertmanager/{Recipient}/api/v2/alerts"), Instrument( http.MethodGet, "/api/alertmanager/{Recipient}/api/v2/alerts", srv.RouteGetAMAlerts, metrics, ), ) group.Get( toMacaronPath("/api/alertmanager/{Recipient}/config/api/v1/alerts"), Instrument( http.MethodGet, "/api/alertmanager/{Recipient}/config/api/v1/alerts", srv.RouteGetAlertingConfig, metrics, ), ) group.Get( toMacaronPath("/api/alertmanager/{Recipient}/api/v2/silence/{SilenceId}"), Instrument( http.MethodGet, "/api/alertmanager/{Recipient}/api/v2/silence/{SilenceId}", srv.RouteGetSilence, metrics, ), ) group.Get( toMacaronPath("/api/alertmanager/{Recipient}/api/v2/silences"), Instrument( http.MethodGet, "/api/alertmanager/{Recipient}/api/v2/silences", srv.RouteGetSilences, metrics, ), ) group.Post( toMacaronPath("/api/alertmanager/{Recipient}/api/v2/alerts"), binding.Bind(apimodels.PostableAlerts{}), Instrument( http.MethodPost, "/api/alertmanager/{Recipient}/api/v2/alerts", srv.RoutePostAMAlerts, metrics, ), ) group.Post( toMacaronPath("/api/alertmanager/{Recipient}/config/api/v1/alerts"), binding.Bind(apimodels.PostableUserConfig{}), Instrument( http.MethodPost, "/api/alertmanager/{Recipient}/config/api/v1/alerts", srv.RoutePostAlertingConfig, metrics, ), ) }, middleware.ReqSignedIn) }