github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/newrelic/validation.go (about)

     1  package newrelic
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/hashicorp/terraform/helper/schema"
     7  )
     8  
     9  func float64Gte(gte float64) schema.SchemaValidateFunc {
    10  	return func(i interface{}, k string) (s []string, es []error) {
    11  		v, ok := i.(float64)
    12  		if !ok {
    13  			es = append(es, fmt.Errorf("expected type of %s to be float64", k))
    14  			return
    15  		}
    16  
    17  		if v >= gte {
    18  			return
    19  		}
    20  
    21  		es = append(es, fmt.Errorf("expected %s to be greater than or equal to %v, got %v", k, gte, v))
    22  		return
    23  	}
    24  }
    25  
    26  func intInSlice(valid []int) schema.SchemaValidateFunc {
    27  	return func(i interface{}, k string) (s []string, es []error) {
    28  		v, ok := i.(int)
    29  		if !ok {
    30  			es = append(es, fmt.Errorf("expected type of %s to be int", k))
    31  			return
    32  		}
    33  
    34  		for _, p := range valid {
    35  			if v == p {
    36  				return
    37  			}
    38  		}
    39  
    40  		es = append(es, fmt.Errorf("expected %s to be one of %v, got %v", k, valid, v))
    41  		return
    42  	}
    43  }