Vendor main dependencies.
This commit is contained in:
parent
49a09ab7dd
commit
dd5e3fba01
2738 changed files with 1045689 additions and 0 deletions
4
vendor/gopkg.in/ns1/ns1-go.v2/rest/model/monitor/config.go
generated
vendored
Normal file
4
vendor/gopkg.in/ns1/ns1-go.v2/rest/model/monitor/config.go
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
package monitor
|
||||
|
||||
// Config is a flat mapping where values are simple (no slices/maps).
|
||||
type Config map[string]interface{}
|
2
vendor/gopkg.in/ns1/ns1-go.v2/rest/model/monitor/doc.go
generated
vendored
Normal file
2
vendor/gopkg.in/ns1/ns1-go.v2/rest/model/monitor/doc.go
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
// Package monitor contains definitions for NS1 monitoring jobs.
|
||||
package monitor
|
172
vendor/gopkg.in/ns1/ns1-go.v2/rest/model/monitor/job.go
generated
vendored
Normal file
172
vendor/gopkg.in/ns1/ns1-go.v2/rest/model/monitor/job.go
generated
vendored
Normal file
|
@ -0,0 +1,172 @@
|
|||
package monitor
|
||||
|
||||
// Job wraps an NS1 /monitoring/jobs resource
|
||||
type Job struct {
|
||||
ID string `json:"id,omitempty"`
|
||||
|
||||
// The id of the notification list to send notifications to.
|
||||
NotifyListID string `json:"notify_list"`
|
||||
|
||||
// Type of monitor to be run.
|
||||
// Available job types:
|
||||
// - http: Do an HTTP request against a webserver
|
||||
// - dns: Do a DNS lookup against a nameserver
|
||||
// - tcp: Connect to a TCP port on a host
|
||||
// - ping: Ping a host using ICMP packets
|
||||
Type string `json:"job_type"`
|
||||
|
||||
// Configuration dictionary(key/vals depend on the jobs' type).
|
||||
Config Config `json:"config"`
|
||||
|
||||
// The current status of the monitor.
|
||||
Status map[string]Status `json:"status,omitempty"`
|
||||
|
||||
// Rules for determining failure conditions.
|
||||
Rules []*Rule `json:"rules"`
|
||||
|
||||
// List of regions in which to run the monitor.
|
||||
// eg, ["dal", "sin", "sjc", "lga", "ams"]
|
||||
Regions []string `json:"regions"`
|
||||
|
||||
// Indicates if the job is active or temporarily disabled.
|
||||
Active bool `json:"active"`
|
||||
|
||||
// Frequency(in seconds), at which to run the monitor.
|
||||
Frequency int `json:"frequency"`
|
||||
|
||||
// The policy for determining the monitor's global status based
|
||||
// on the status of the job in all regions.
|
||||
// Available policies:
|
||||
// - quorum: Status change when majority status
|
||||
// - all: Status change only when all regions are in agreement
|
||||
// - one: Status change if any region changes
|
||||
Policy string `json:"policy"`
|
||||
|
||||
// Controls behavior of how the job is assigned to monitoring regions.
|
||||
// Currently this must be fixed — indicating monitoring regions are explicitly chosen.
|
||||
RegionScope string `json:"region_scope"`
|
||||
|
||||
// Freeform notes to be included in any notifications about this job,
|
||||
// e.g., instructions for operators who will receive the notifications.
|
||||
Notes string `json:"notes,omitempty"`
|
||||
|
||||
// A free-form display name for the monitoring job.
|
||||
Name string `json:"name"`
|
||||
|
||||
// Time(in seconds) between repeat notifications of a failed job.
|
||||
// Set to 0 to disable repeating notifications.
|
||||
NotifyRepeat int `json:"notify_repeat"`
|
||||
|
||||
// If true, on any apparent state change, the job is quickly re-run after
|
||||
// one second to confirm the state change before notification.
|
||||
RapidRecheck bool `json:"rapid_recheck"`
|
||||
|
||||
// Time(in seconds) after a failure to wait before sending a notification.
|
||||
NotifyDelay int `json:"notify_delay"`
|
||||
|
||||
// If true, notifications are sent for any regional failure (and failback if desired),
|
||||
// in addition to global state notifications.
|
||||
NotifyRegional bool `json:"notidy_regional"`
|
||||
|
||||
// If true, a notification is sent when a job returns to an "up" state.
|
||||
NotifyFailback bool `json:"notify_failback"`
|
||||
}
|
||||
|
||||
// Activate a monitoring job.
|
||||
func (j *Job) Activate() {
|
||||
j.Active = true
|
||||
|
||||
}
|
||||
|
||||
// Deactivate a monitoring job.
|
||||
func (j *Job) Deactivate() {
|
||||
j.Active = false
|
||||
}
|
||||
|
||||
// Result wraps an element of a JobType's "results" attribute
|
||||
type Result struct {
|
||||
Comparators []string `json:"comparators"`
|
||||
Metric bool `json:"metric"`
|
||||
Validator string `json:"validator"`
|
||||
ShortDesc string `json:"shortdesc"`
|
||||
Type string `json:"type"`
|
||||
Desc string `json:"desc"`
|
||||
}
|
||||
|
||||
// Status wraps an value of a Job's "status" attribute
|
||||
type Status struct {
|
||||
Since int `json:"since"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
// Rule wraps an element of a Job's "rules" attribute
|
||||
type Rule struct {
|
||||
Key string `json:"key"`
|
||||
Value interface{} `json:"value"`
|
||||
Comparison string `json:"comparison"`
|
||||
}
|
||||
|
||||
// NewHTTPConfig constructs/returns a job configuration for HTTP type jobs.
|
||||
// url is the URL to query. (Required)
|
||||
// method is the HTTP method(valid methods are HEAD, GET, and POST).
|
||||
// ua is the user agent text in the request header.
|
||||
// auth is the authorization header to use in request.
|
||||
// connTimeout is the timeout(in sec) to wait for query output.
|
||||
func NewHTTPConfig(url, method, ua, auth string, connTimeout int) *Config {
|
||||
return &Config{
|
||||
"url": url, // Required
|
||||
"method": method,
|
||||
"user_agent": ua,
|
||||
"auth": auth,
|
||||
"connection_timeout": connTimeout,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// NewDNSConfig constructs/returns a job configuration for DNS type jobs.
|
||||
// host is the IP address or hostname of the nameserver to query. (Required)
|
||||
// domain name to query. (Required)
|
||||
// port is the dns port to query on host.
|
||||
// t is the type of the DNS record type to query.
|
||||
// respTimeout is the timeout(in ms) after sending query to wait for the output.
|
||||
func NewDNSConfig(host, domain string, port int, t string, respTimeout int) *Config {
|
||||
return &Config{
|
||||
"host": host, // Required
|
||||
"domain": domain, // Required
|
||||
"port": port,
|
||||
"type": t,
|
||||
"response_timeout": respTimeout,
|
||||
}
|
||||
}
|
||||
|
||||
// NewTCPConfig constructs/returns a job configuration for TCP type jobs.
|
||||
// host is the IP address or hostname to connect to. (Required)
|
||||
// port is the tcp port to connect to on host. (Required)
|
||||
// connTimeout is the timeout(in ms) before giving up on trying to connect.
|
||||
// respTimeout is the timeout(in sec) after connecting to wait for output.
|
||||
// send is the string to send to the host upon connecting.
|
||||
// ssl determines whether to attempt negotiating an SSL connection.
|
||||
func NewTCPConfig(host string, port, connTimeout, respTimeout int, send string, ssl bool) *Config {
|
||||
return &Config{
|
||||
"host": host, // Required
|
||||
"port": port, // Required
|
||||
"connection_timeout": connTimeout,
|
||||
"response_timeout": respTimeout,
|
||||
"send": send,
|
||||
"ssl": ssl,
|
||||
}
|
||||
}
|
||||
|
||||
// NewPINGConfig constructs/returns a job configuration for PING type jobs.
|
||||
// host is the IP address or hostname to ping. (Required)
|
||||
// timeout is the timeout(in ms) before marking the host as failed.
|
||||
// count is the number of packets to send.
|
||||
// interval is the minimum time(in ms) to wait between sending each packet.
|
||||
func NewPINGConfig(host string, timeout, count, interval int) *Config {
|
||||
return &Config{
|
||||
"host": host, // Required
|
||||
"timeout": timeout,
|
||||
"count": count,
|
||||
"interval": interval,
|
||||
}
|
||||
}
|
72
vendor/gopkg.in/ns1/ns1-go.v2/rest/model/monitor/notify.go
generated
vendored
Normal file
72
vendor/gopkg.in/ns1/ns1-go.v2/rest/model/monitor/notify.go
generated
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
package monitor
|
||||
|
||||
// NotifyList wraps notifications.
|
||||
type NotifyList struct {
|
||||
ID string `json:"id,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Notifications []*Notification `json:"notify_list,omitempty"`
|
||||
}
|
||||
|
||||
// Notification represents endpoint to alert to.
|
||||
type Notification struct {
|
||||
Type string `json:"type,omitempty"`
|
||||
Config Config `json:"config,omitempty"`
|
||||
}
|
||||
|
||||
// NewNotifyList returns a notify list that alerts via the given notifications.
|
||||
func NewNotifyList(name string, nl ...*Notification) *NotifyList {
|
||||
if nl == nil {
|
||||
nl = []*Notification{}
|
||||
}
|
||||
|
||||
return &NotifyList{Name: name, Notifications: nl}
|
||||
}
|
||||
|
||||
// NewUserNotification returns a notification that alerts via user.
|
||||
func NewUserNotification(username string) *Notification {
|
||||
return &Notification{
|
||||
Type: "user",
|
||||
Config: Config{"user": username}}
|
||||
}
|
||||
|
||||
// NewEmailNotification returns a notification that alerts via email.
|
||||
func NewEmailNotification(email string) *Notification {
|
||||
return &Notification{
|
||||
Type: "email",
|
||||
Config: Config{"email": email}}
|
||||
}
|
||||
|
||||
// NewFeedNotification returns a notification that alerts via datafeed.
|
||||
func NewFeedNotification(sourceID string) *Notification {
|
||||
return &Notification{
|
||||
Type: "datafeed",
|
||||
Config: Config{"sourceid": sourceID}}
|
||||
}
|
||||
|
||||
// NewWebNotification returns a notification that alerts via webhook.
|
||||
func NewWebNotification(url string) *Notification {
|
||||
return &Notification{
|
||||
Type: "webhook",
|
||||
Config: Config{"url": url}}
|
||||
}
|
||||
|
||||
// NewPagerDutyNotification returns a notification that alerts via pagerduty.
|
||||
func NewPagerDutyNotification(key string) *Notification {
|
||||
return &Notification{
|
||||
Type: "pagerduty",
|
||||
Config: Config{"service_key": key}}
|
||||
}
|
||||
|
||||
// NewHipChatNotification returns a notification that alerts via hipchat.
|
||||
func NewHipChatNotification(token, room string) *Notification {
|
||||
return &Notification{
|
||||
Type: "hipchat",
|
||||
Config: Config{"token": token, "room": room}}
|
||||
}
|
||||
|
||||
// NewSlackNotification returns a notification that alerts via slack.
|
||||
func NewSlackNotification(url, username, channel string) *Notification {
|
||||
return &Notification{
|
||||
Type: "slack",
|
||||
Config: Config{"url": url, "username": username, "channel": channel}}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue