mirror of
				https://github.com/taigrr/wtf
				synced 2025-01-18 04:03:14 -08:00 
			
		
		
		
	The NewRelic module relies on yfronto/newrelic, which no longer exists. yfronto deleted that directory quite awhile ago, and since then it has been vendored. But vendoring a missing repository creates problems when trying to update the vendored code. This PR brings the yfronto/newrelic code into the mainline. Signed-off-by: Chris Cummer <chriscummer@me.com>
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package newrelic
 | |
| 
 | |
| import (
 | |
| 	"strconv"
 | |
| )
 | |
| 
 | |
| // NotificationChannelLinks describes object links for notification channels.
 | |
| type NotificationChannelLinks struct {
 | |
| 	NotificationChannels []int `json:"notification_channels,omitempty"`
 | |
| 	User                 int   `json:"user,omitempty"`
 | |
| }
 | |
| 
 | |
| // NotificationChannel describes a New Relic notification channel.
 | |
| type NotificationChannel struct {
 | |
| 	ID           int                      `json:"id,omitempty"`
 | |
| 	Type         string                   `json:"type,omitempty"`
 | |
| 	DowntimeOnly bool                     `json:"downtime_only,omitempty"`
 | |
| 	URL          string                   `json:"url,omitempty"`
 | |
| 	Name         string                   `json:"name,omitempty"`
 | |
| 	Description  string                   `json:"description,omitempty"`
 | |
| 	Email        string                   `json:"email,omitempty"`
 | |
| 	Subdomain    string                   `json:"subdomain,omitempty"`
 | |
| 	Service      string                   `json:"service,omitempty"`
 | |
| 	MobileAlerts bool                     `json:"mobile_alerts,omitempty"`
 | |
| 	EmailAlerts  bool                     `json:"email_alerts,omitempty"`
 | |
| 	Room         string                   `json:"room,omitempty"`
 | |
| 	Links        NotificationChannelLinks `json:"links,omitempty"`
 | |
| }
 | |
| 
 | |
| // NotificationChannelsFilter provides filters for
 | |
| // NotificationChannelsOptions.
 | |
| type NotificationChannelsFilter struct {
 | |
| 	Type []string
 | |
| 	IDs  []int
 | |
| }
 | |
| 
 | |
| // NotificationChannelsOptions is an optional means of filtering when calling
 | |
| // GetNotificationChannels.
 | |
| type NotificationChannelsOptions struct {
 | |
| 	Filter NotificationChannelsFilter
 | |
| 	Page   int
 | |
| }
 | |
| 
 | |
| func (o *NotificationChannelsOptions) String() string {
 | |
| 	if o == nil {
 | |
| 		return ""
 | |
| 	}
 | |
| 	return encodeGetParams(map[string]interface{}{
 | |
| 		"filter[type]": o.Filter.Type,
 | |
| 		"filter[ids]":  o.Filter.IDs,
 | |
| 		"page":         o.Page,
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // GetNotificationChannel will return the NotificationChannel with  particular ID.
 | |
| func (c *Client) GetNotificationChannel(id int) (*NotificationChannel, error) {
 | |
| 	resp := &struct {
 | |
| 		NotificationChannel *NotificationChannel `json:"notification_channel,omitempty"`
 | |
| 	}{}
 | |
| 	err := c.doGet("notification_channels/"+strconv.Itoa(id)+".json", nil, resp)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return resp.NotificationChannel, nil
 | |
| }
 | |
| 
 | |
| // GetNotificationChannels will return a slice of NotificationChannel items,
 | |
| // optionally filtering by NotificationChannelsOptions.
 | |
| func (c *Client) GetNotificationChannels(options *NotificationChannelsOptions) ([]NotificationChannel, error) {
 | |
| 	resp := &struct {
 | |
| 		NotificationChannels []NotificationChannel `json:"notification_channels,omitempty"`
 | |
| 	}{}
 | |
| 	err := c.doGet("notification_channels.json", options, resp)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return resp.NotificationChannels, nil
 | |
| }
 |