alerts_state.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package models
  2. import (
  3. "time"
  4. )
  5. type AlertState struct {
  6. Id int64 `json:"-"`
  7. OrgId int64 `json:"-"`
  8. AlertId int64 `json:"alertId"`
  9. NewState string `json:"newState"`
  10. Created time.Time `json:"created"`
  11. Info string `json:"info"`
  12. }
  13. var (
  14. VALID_STATES = []string{
  15. AlertStateOk,
  16. AlertStateWarn,
  17. AlertStateCritical,
  18. AlertStateAcknowledged,
  19. AlertStateMaintenance,
  20. }
  21. AlertStateOk = "OK"
  22. AlertStateWarn = "WARN"
  23. AlertStateCritical = "CRITICAL"
  24. AlertStateAcknowledged = "ACKNOWLEDGED"
  25. AlertStateMaintenance = "MAINTENANCE"
  26. AlertStatePending = "PENDING"
  27. )
  28. func (this *UpdateAlertStateCommand) IsValidState() bool {
  29. for _, v := range VALID_STATES {
  30. if this.NewState == v {
  31. return true
  32. }
  33. }
  34. return false
  35. }
  36. // Commands
  37. type UpdateAlertStateCommand struct {
  38. AlertId int64 `json:"alertId" binding:"Required"`
  39. NewState string `json:"newState" binding:"Required"`
  40. Info string `json:"info"`
  41. Result *AlertRule
  42. }
  43. // Queries
  44. type GetAlertsStateQuery struct {
  45. OrgId int64 `json:"orgId" binding:"Required"`
  46. AlertId int64 `json:"alertId" binding:"Required"`
  47. Result *[]AlertState
  48. }