Documentation
¶
Index ¶
Constants ¶
const (
// Scheme is the identifying part of this service's configuration URL
Scheme = "opsgenie"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AlertPayload ¶
type AlertPayload struct {
Message string `json:"message"`
Alias string `json:"alias,omitempty"`
Description string `json:"description,omitempty"`
Responders []Entity `json:"responders,omitempty"`
VisibleTo []Entity `json:"visibleTo,omitempty"`
Actions []string `json:"actions,omitempty"`
Tags []string `json:"tags,omitempty"`
Details map[string]string `json:"details,omitempty"`
Entity string `json:"entity,omitempty"`
Source string `json:"source,omitempty"`
Priority string `json:"priority,omitempty"`
User string `json:"user,omitempty"`
Note string `json:"note,omitempty"`
}
AlertPayload represents the payload being sent to the OpsGenie API
See: https://docs.opsgenie.com/docs/alert-api#create-alert
Some fields contain complex values like arrays and objects. Because `params` are strings only we cannot pass in slices or maps. Instead we "preserve" the JSON in those fields. That way we can pass in complex types as JSON like so:
service.Send("An example alert message", &types.Params{
"alias": "Life is too short for no alias",
"description": "Every alert needs a description",
"responders": `[{"id":"4513b7ea-3b91-438f-b7e4-e3e54af9147c","type":"team"},{"name":"NOC","type":"team"}]`,
"visibleTo": `[{"id":"4513b7ea-3b91-438f-b7e4-e3e54af9147c","type":"team"},{"name":"rocket_team","type":"team"}]`,
"details": `{"key1": "value1", "key2": "value2"}`,
})
type Config ¶
type Config struct {
APIKey string `url:"path" desc:"The OpsGenie API key"`
Host string `url:"host" desc:"The OpsGenie API host. Use 'api.eu.opsgenie.com' for EU instances" default:"api.opsgenie.com"`
Port uint16 `url:"port" desc:"The OpsGenie API port." default:"443"`
Alias string `key:"alias" desc:"Client-defined identifier of the alert" optional:"true"`
Description string `key:"description" desc:"Description field of the alert" optional:"true"`
Responders []Entity `` /* 131-byte string literal not displayed */
VisibleTo []Entity `key:"visibleTo" desc:"Teams and users that the alert will become visible to without sending any notification" optional:"true"`
Actions []string `key:"actions" desc:"Custom actions that will be available for the alert" optional:"true"`
Tags []string `key:"tags" desc:"Tags of the alert" optional:"true"`
Details map[string]string `key:"details" desc:"Map of key-value pairs to use as custom properties of the alert" optional:"true"`
Entity string `` /* 138-byte string literal not displayed */
Source string `key:"source" desc:"Source field of the alert" optional:"true"`
Priority string `key:"priority" desc:"Priority level of the alert. Possible values are P1, P2, P3, P4 and P5" optional:"true"`
Note string `key:"note" desc:"Additional note that will be added while creating the alert" optional:"true"`
User string `key:"user" desc:"Display name of the request owner" optional:"true"`
Title string `key:"title" default:"" desc:"notification title, optionally set by the sender"`
}
Config for use within the opsgenie service
func (Config) Enums ¶
func (config Config) Enums() map[string]types.EnumFormatter
Enums returns an empty map because the OpsGenie service doesn't use Enums
type Entity ¶
type Entity struct {
Type string `json:"type"`
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Username string `json:"username,omitempty"`
}
Entity represents either a user or a team
The different variations are:
{ "id":"4513b7ea-3b91-438f-b7e4-e3e54af9147c", "type":"team" } { "name":"rocket_team", "type":"team" } { "id":"bb4d9938-c3c2-455d-aaab-727aa701c0d8", "type":"user" } { "username":"trinity@opsgenie.com", "type":"user" }
func (*Entity) GetPropValue ¶
GetPropValue serializes an entity
func (*Entity) SetFromProp ¶
SetFromProp deserializes an entity
type Service ¶
Service providing OpsGenie as a notification service
func (*Service) Initialize ¶
Initialize loads ServiceConfig from configURL and sets logger for this Service