# README

Grafana Alert

To create a Grafana alert:

data := grafana_alerts.GrafanaAlertQuery{
    DatasourceUid: "__expr__",
    Model:         json.RawMessage(`{"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":[]},"reducer":{"params":[],"type":"avg"},"type":"query"}],"datasource":{"type":"__expr__","uid":"__expr__"},"expression":"1 == 1","hide":false,"intervalMs":1000,"maxDataPoints":43200,"refId":"A","type":"math"}`),
    RefId:         "A",
    RelativeTimeRange: grafana_alerts.RelativeTimeRangeObj{
    From: 0,
    To:   0,
    },
}

createGrafanaAlert := grafana_alerts.GrafanaAlertRule{
    Annotations:  map[string]string{"key_test": "value_test"},
    Condition:    "A",
    Data:         []*grafana_alerts.GrafanaAlertQuery{&data},
    FolderUID:    os.Getenv(envGrafanaFolderUid),
    NoDataState:  grafana_alerts.NoDataOk,
    ExecErrState: grafana_alerts.ErrOK,
    OrgID:        1,
    RuleGroup:    "rule_group_1",
    Title:        "test_alert",
    For:          int64(3),
}

client, err := grafana_alerts.New(apiToken, server.URL)
grafanaAlert, err := client.CreateGrafanaAlertRule(createGrafanaAlert)
functionfunc name
create alertfunc (c *GrafanaAlertClient) CreateGrafanaAlertRule(payload GrafanaAlertRule) (*GrafanaAlertRule, error)
update alertfunc (c *GrafanaAlertClient) UpdateGrafanaAlertRule(payload GrafanaAlertRule) error
delete alert by uidfunc (c *GrafanaAlertClient) DeleteGrafanaAlertRule(uid string) error
get alert by uidfunc (c *GrafanaAlertClient) GetGrafanaAlertRule(uid string) (*GrafanaAlertRule, error)
list alertsfunc (c *GrafanaAlertClient) ListGrafanaAlertRules() ([]GrafanaAlertRule, error)