fix swagger spec for receivers API response (#57124)

This commit is contained in:
Santiago
2022-10-17 16:58:55 -03:00
committed by GitHub
parent 888bdfd4ad
commit 6ad405e256
7 changed files with 53 additions and 15 deletions

View File

@@ -50,7 +50,7 @@ type Alertmanager interface {
GetAlertGroups(active, silenced, inhibited bool, filter []string, receiver string) (apimodels.AlertGroups, error)
// Receivers
GetReceivers(ctx context.Context) apimodels.Receivers
GetReceivers(ctx context.Context) []apimodels.Receiver
TestReceivers(ctx context.Context, c apimodels.TestReceiversConfigBodyParams) (*notifier.TestReceiversResult, error)
}

View File

@@ -3405,7 +3405,6 @@
"type": "object"
},
"gettableAlert": {
"description": "GettableAlert gettable alert",
"properties": {
"annotations": {
"$ref": "#/definitions/labelSet"
@@ -3467,7 +3466,6 @@
"type": "array"
},
"gettableSilence": {
"description": "GettableSilence gettable silence",
"properties": {
"comment": {
"description": "comment",
@@ -4474,6 +4472,17 @@
"produces": [
"application/json"
],
"responses": {
"receiversResponse": {
"description": "",
"schema": {
"items": {
"$ref": "#/definitions/receiver"
},
"type": "array"
}
}
},
"schemes": [
"http",
"https"

View File

@@ -144,10 +144,10 @@ import (
// swagger:route GET /api/alertmanager/grafana/config/api/v1/receivers alertmanager RouteGetGrafanaReceivers
//
// Get a list of all receivers.
// Get a list of all receivers
//
// Responses:
// 200: receivers
// 200: receiversResponse
// swagger:route POST /api/alertmanager/grafana/config/api/v1/receivers/test alertmanager RoutePostTestGrafanaReceivers
//
@@ -416,8 +416,11 @@ type AlertGroup = amv2.AlertGroup
// swagger:model receiver
type Receiver = amv2.Receiver
// swagger:model receivers
type Receivers = []amv2.Receiver
// swagger:response receiversResponse
type ReceiversResponse struct {
// in:body
Body []amv2.Receiver
}
// swagger:model integration
type Integration = amv2.Integration

View File

@@ -3278,6 +3278,7 @@
"type": "object"
},
"alertGroup": {
"description": "AlertGroup alert group",
"properties": {
"alerts": {
"description": "alerts",
@@ -3667,6 +3668,7 @@
"type": "array"
},
"postableSilence": {
"description": "PostableSilence postable silence",
"properties": {
"comment": {
"description": "comment",
@@ -4200,13 +4202,13 @@
},
"/api/alertmanager/grafana/config/api/v1/receivers": {
"get": {
"description": "Get a list of all receivers",
"operationId": "RouteGetGrafanaReceivers",
"responses": {
"200": {
"$ref": "#/responses/receivers"
"$ref": "#/responses/receiversResponse"
}
},
"summary": "Get a list of all receivers.",
"tags": [
"alertmanager"
]
@@ -6325,6 +6327,17 @@
"produces": [
"application/json"
],
"responses": {
"receiversResponse": {
"description": "",
"schema": {
"items": {
"$ref": "#/definitions/receiver"
},
"type": "array"
}
}
},
"schemes": [
"http",
"https"

View File

@@ -394,14 +394,14 @@
},
"/api/alertmanager/grafana/config/api/v1/receivers": {
"get": {
"description": "Get a list of all receivers",
"tags": [
"alertmanager"
],
"summary": "Get a list of all receivers.",
"operationId": "RouteGetGrafanaReceivers",
"responses": {
"200": {
"$ref": "#/responses/receivers"
"$ref": "#/responses/receiversResponse"
}
}
}
@@ -5817,6 +5817,7 @@
}
},
"alertGroup": {
"description": "AlertGroup alert group",
"type": "object",
"required": [
"alerts",
@@ -6213,6 +6214,7 @@
}
},
"postableSilence": {
"description": "PostableSilence postable silence",
"type": "object",
"required": [
"comment",
@@ -6365,6 +6367,17 @@
}
}
},
"responses": {
"receiversResponse": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/receiver"
}
}
}
},
"securityDefinitions": {
"basic": {
"type": "basic"

View File

@@ -199,11 +199,11 @@ func (am *Alertmanager) TestReceivers(ctx context.Context, c apimodels.TestRecei
return newTestReceiversResult(testAlert, append(invalid, results...), now), nil
}
func (am *Alertmanager) GetReceivers(ctx context.Context) apimodels.Receivers {
func (am *Alertmanager) GetReceivers(ctx context.Context) []apimodels.Receiver {
am.reloadConfigMtx.RLock()
defer am.reloadConfigMtx.RUnlock()
var apiReceivers apimodels.Receivers
var apiReceivers []apimodels.Receiver
for _, rcv := range am.receivers {
// Build integrations slice for each receiver.
var integrations []*models.Integration

View File

@@ -776,7 +776,7 @@ func TestNotificationChannels(t *testing.T) {
resp = getRequest(t, receiversURL, http.StatusOK) // nolint
b = getBody(t, resp.Body)
var receivers apimodels.Receivers
var receivers []apimodels.Receiver
err := json.Unmarshal([]byte(b), &receivers)
require.NoError(t, err)
for _, rcv := range receivers {
@@ -824,7 +824,7 @@ func TestNotificationChannels(t *testing.T) {
resp := getRequest(t, receiversURL, http.StatusOK) // nolint
b := getBody(t, resp.Body)
var receivers apimodels.Receivers
var receivers []apimodels.Receiver
err := json.Unmarshal([]byte(b), &receivers)
require.NoError(t, err)
for _, rcv := range receivers {