mirror of
				https://github.com/taigrr/wtf
				synced 2025-01-18 04:03:14 -08:00 
			
		
		
		
	* Upgrade godo to latest * Fix a bunch of issues found by * Running staticcheck on a codebase for the first time is a sobering experience * go mod tidy * More static improvements Signed-off-by: Chris Cummer <chriscummer@me.com>
		
			
				
	
	
		
			60 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package newrelic
 | |
| 
 | |
| // AlertCondition describes what triggers an alert for a specific policy.
 | |
| type AlertCondition struct {
 | |
| 	Enabled     bool                 `json:"enabled,omitempty"`
 | |
| 	Entities    []string             `json:"entities,omitempty"`
 | |
| 	ID          int                  `json:"id,omitempty"`
 | |
| 	Metric      string               `json:"metric,omitempty"`
 | |
| 	Name        string               `json:"name,omitempty"`
 | |
| 	RunbookURL  string               `json:"runbook_url,omitempty"`
 | |
| 	Terms       []AlertConditionTerm `json:"terms,omitempty"`
 | |
| 	Type        string               `json:"type,omitempty"`
 | |
| 	UserDefined AlertUserDefined     `json:"user_defined,omitempty"`
 | |
| }
 | |
| 
 | |
| // AlertConditionTerm defines thresholds that trigger an AlertCondition.
 | |
| type AlertConditionTerm struct {
 | |
| 	Duration     string `json:"duration,omitempty"`
 | |
| 	Operator     string `json:"operator,omitempty"`
 | |
| 	Priority     string `json:"priority,omitempty"`
 | |
| 	Threshold    string `json:"threshold,omitempty"`
 | |
| 	TimeFunction string `json:"time_function,omitempty"`
 | |
| }
 | |
| 
 | |
| // AlertUserDefined describes user-defined behavior for an AlertCondition.
 | |
| type AlertUserDefined struct {
 | |
| 	Metric        string `json:"metric,omitempty"`
 | |
| 	ValueFunction string `json:"value_function,omitempty"`
 | |
| }
 | |
| 
 | |
| // AlertConditionOptions define filters for GetAlertConditions.
 | |
| type AlertConditionOptions struct {
 | |
| 	policyID int
 | |
| 	Page     int
 | |
| }
 | |
| 
 | |
| func (o *AlertConditionOptions) String() string {
 | |
| 	if o == nil {
 | |
| 		return ""
 | |
| 	}
 | |
| 	return encodeGetParams(map[string]interface{}{
 | |
| 		"policy_id": o.policyID,
 | |
| 		"page":      o.Page,
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // GetAlertConditions will return any AlertCondition defined for a given
 | |
| // policy, optionally filtered by AlertConditionOptions.
 | |
| func (c *Client) GetAlertConditions(policy int, options *AlertConditionOptions) ([]AlertCondition, error) {
 | |
| 	resp := &struct {
 | |
| 		Conditions []AlertCondition `json:"conditions,omitempty"`
 | |
| 	}{}
 | |
| 	options.policyID = policy
 | |
| 	err := c.doGet("alerts_conditions.json", options, resp)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return resp.Conditions, nil
 | |
| }
 |