grafana_bak/pkg/services/ngalert/api/tooling/definitions/provisioning_contactpoints.go
2025-04-01 10:38:02 +09:00

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"
}