143 lines
4.0 KiB
Go
143 lines
4.0 KiB
Go
package definitions
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
)
|
|
|
|
// swagger:route GET /v1/provisioning/contact-points provisioning stable RouteGetContactpoints
|
|
//
|
|
// Get all the contact points.
|
|
//
|
|
// Responses:
|
|
// 200: ContactPoints
|
|
|
|
// swagger:route GET /v1/provisioning/contact-points/export provisioning stable RouteGetContactpointsExport
|
|
//
|
|
// Export all contact points in provisioning file format.
|
|
//
|
|
// Produces:
|
|
// - application/json
|
|
// - application/yaml
|
|
// - application/terraform+hcl
|
|
// - text/yaml
|
|
// - text/hcl
|
|
//
|
|
// Responses:
|
|
// 200: AlertingFileExport
|
|
// 403: PermissionDenied
|
|
|
|
// swagger:route POST /v1/provisioning/contact-points provisioning stable RoutePostContactpoints
|
|
//
|
|
// Create a contact point.
|
|
//
|
|
// Consumes:
|
|
// - application/json
|
|
//
|
|
// Responses:
|
|
// 202: EmbeddedContactPoint
|
|
// 400: ValidationError
|
|
|
|
// swagger:route PUT /v1/provisioning/contact-points/{UID} provisioning stable RoutePutContactpoint
|
|
//
|
|
// Update an existing contact point.
|
|
//
|
|
// Consumes:
|
|
// - application/json
|
|
//
|
|
// Responses:
|
|
// 202: Ack
|
|
// 400: ValidationError
|
|
|
|
// swagger:route DELETE /v1/provisioning/contact-points/{UID} provisioning stable RouteDeleteContactpoints
|
|
//
|
|
// Delete a contact point.
|
|
//
|
|
// Consumes:
|
|
// - application/json
|
|
//
|
|
// Responses:
|
|
// 202: description: The contact point was deleted successfully.
|
|
|
|
// swagger:parameters RoutePutContactpoint RouteDeleteContactpoints
|
|
type ContactPointUIDReference struct {
|
|
// UID is the contact point unique identifier
|
|
// in:path
|
|
UID string
|
|
}
|
|
|
|
// swagger:parameters RouteGetContactpoints RouteGetContactpointsExport
|
|
type ContactPointParams struct {
|
|
// Filter by name
|
|
// in: query
|
|
// required: false
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// swagger:parameters RoutePostContactpoints RoutePutContactpoint
|
|
type ContactPointPayload struct {
|
|
// in:body
|
|
Body EmbeddedContactPoint
|
|
}
|
|
|
|
// swagger:model
|
|
type ContactPoints []EmbeddedContactPoint
|
|
|
|
// swagger:parameters RoutePostContactpoints RoutePutContactpoint
|
|
type ContactPointHeaders struct {
|
|
// in:header
|
|
XDisableProvenance string `json:"X-Disable-Provenance"`
|
|
}
|
|
|
|
// EmbeddedContactPoint is the contact point type that is used
|
|
// by grafanas embedded alertmanager implementation.
|
|
// swagger:model
|
|
type EmbeddedContactPoint struct {
|
|
// UID is the unique identifier of the contact point. The UID can be
|
|
// set by the user.
|
|
// required: false
|
|
// minLength: 1
|
|
// maxLength: 40
|
|
// pattern: ^[a-zA-Z0-9\-\_]+$
|
|
// example: my_external_reference
|
|
UID string `json:"uid"`
|
|
// Name is used as grouping key in the UI. Contact points with the
|
|
// same name will be grouped in the UI.
|
|
// example: webhook_1
|
|
Name string `json:"name" binding:"required"`
|
|
// required: true
|
|
// example: webhook
|
|
// enum: alertmanager,dingding,discord,email,googlechat,kafka,line,opsgenie,pagerduty,pushover,sensugo,slack,teams,telegram,threema,victorops,webhook,wecom
|
|
Type string `json:"type" binding:"required"`
|
|
// required: true
|
|
Settings *simplejson.Json `json:"settings" binding:"required"`
|
|
// example: false
|
|
DisableResolveMessage bool `json:"disableResolveMessage"`
|
|
// readonly: true
|
|
Provenance string `json:"provenance,omitempty"`
|
|
}
|
|
|
|
// ContactPointExport is the provisioned file export of alerting.ContactPointV1.
|
|
type ContactPointExport struct {
|
|
OrgID int64 `json:"orgId" yaml:"orgId"`
|
|
Name string `json:"name" yaml:"name"`
|
|
Receivers []ReceiverExport `json:"receivers" yaml:"receivers"`
|
|
}
|
|
|
|
// ReceiverExport is the provisioned file export of alerting.ReceiverV1.
|
|
type ReceiverExport struct {
|
|
UID string `json:"uid" yaml:"uid"`
|
|
Type string `json:"type" yaml:"type"`
|
|
Settings RawMessage `json:"settings" yaml:"settings"`
|
|
DisableResolveMessage bool `json:"disableResolveMessage" yaml:"disableResolveMessage"`
|
|
}
|
|
|
|
const RedactedValue = "[REDACTED]"
|
|
|
|
func (e *EmbeddedContactPoint) ResourceID() string {
|
|
return e.UID
|
|
}
|
|
|
|
func (e *EmbeddedContactPoint) ResourceType() string {
|
|
return "contactPoint"
|
|
}
|