grafana/pkg/services/ngalert/models/admin_configuration.go

50 lines
1.1 KiB
Go
Raw Normal View History

package models
import (
"errors"
)
type AlertmanagersChoice int
const (
AllAlertmanagers AlertmanagersChoice = iota
InternalAlertmanager
ExternalAlertmanagers
)
var alertmanagersChoiceMap = map[AlertmanagersChoice]string{
AllAlertmanagers: "all",
InternalAlertmanager: "internal",
ExternalAlertmanagers: "external",
}
// AdminConfiguration represents the ngalert administration configuration settings.
type AdminConfiguration struct {
ID int64 `xorm:"pk autoincr 'id'"`
OrgID int64 `xorm:"org_id"`
// SendAlertsTo indicates which set of alertmanagers will handle the alert.
SendAlertsTo AlertmanagersChoice `xorm:"send_alerts_to"`
CreatedAt int64 `xorm:"created"`
UpdatedAt int64 `xorm:"updated"`
}
// String implements the Stringer interface
func (amc AlertmanagersChoice) String() string {
return alertmanagersChoiceMap[amc]
}
func StringToAlertmanagersChoice(str string) (AlertmanagersChoice, error) {
if str == "" {
return AllAlertmanagers, nil
}
for k, v := range alertmanagersChoiceMap {
if str == v {
return k, nil
}
}
return 0, errors.New("invalid alertmanager choice")
}