github.com/kubernetes-incubator/kube-aws@v0.16.4/pkg/api/cidr_range.go (about) 1 package api 2 3 import ( 4 "fmt" 5 "net" 6 ) 7 8 // CIDRRanges represents IP network ranges in CIDR notation 9 type CIDRRanges []CIDRRange 10 11 // CIDRRange represents an IP network range in CIDR notation 12 // See http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-cidrip 13 type CIDRRange struct { 14 str string 15 } 16 17 func DefaultCIDRRanges() CIDRRanges { 18 return CIDRRanges{ 19 {"0.0.0.0/0"}, 20 } 21 } 22 23 func (c *CIDRRange) UnmarshalYAML(unmarshal func(interface{}) error) error { 24 var cidr string 25 if err := unmarshal(&cidr); err != nil { 26 return fmt.Errorf("failed to parse CIDR range: %v", err) 27 } 28 29 _, _, err := net.ParseCIDR(cidr) 30 if err != nil { 31 return fmt.Errorf("failed to parse CIDR range: %v", err) 32 } 33 34 *c = CIDRRange{str: cidr} 35 36 return nil 37 } 38 39 // String returns the string representation of this CIDR range 40 func (c CIDRRange) String() string { 41 return c.str 42 }