github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/builtin/providers/azurerm/network_security_rule.go (about)

     1  package azurerm
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  )
     7  
     8  func validateNetworkSecurityRuleProtocol(v interface{}, k string) (ws []string, errors []error) {
     9  	value := strings.ToLower(v.(string))
    10  	protocols := map[string]bool{
    11  		"tcp": true,
    12  		"udp": true,
    13  		"*":   true,
    14  	}
    15  
    16  	if !protocols[value] {
    17  		errors = append(errors, fmt.Errorf("Network Security Rule Protocol can only be Tcp, Udp or *"))
    18  	}
    19  	return
    20  }
    21  
    22  func validateNetworkSecurityRuleAccess(v interface{}, k string) (ws []string, errors []error) {
    23  	value := strings.ToLower(v.(string))
    24  	accessTypes := map[string]bool{
    25  		"allow": true,
    26  		"deny":  true,
    27  	}
    28  
    29  	if !accessTypes[value] {
    30  		errors = append(errors, fmt.Errorf("Network Security Rule Access can only be Allow or Deny"))
    31  	}
    32  	return
    33  }
    34  
    35  func validateNetworkSecurityRuleDirection(v interface{}, k string) (ws []string, errors []error) {
    36  	value := strings.ToLower(v.(string))
    37  	directions := map[string]bool{
    38  		"inbound":  true,
    39  		"outbound": true,
    40  	}
    41  
    42  	if !directions[value] {
    43  		errors = append(errors, fmt.Errorf("Network Security Rule Directions can only be Inbound or Outbound"))
    44  	}
    45  	return
    46  }