code: func (c *SDConfig) UnmarshalYAML(unmarshal func(interface{}) error) error {
  	*c = DefaultSDConfig
  	type plain SDConfig
  	err := unmarshal((*plain)(c))
  	if err != nil {
  		return err
  	}
  	if c.Region == "" {
  		sess, err := session.NewSession()
  		if err != nil {
  			return err
  		}
  		metadata := ec2metadata.New(sess)
  		region, err := metadata.Region()
  		if err != nil {
  			return errors.New("EC2 SD configuration requires a region")
  		}
  		c.Region = region
  	}
  	for _, f := range c.Filters {
  		if len(f.Values) == 0 {
  			return errors.New("EC2 SD configuration filter values cannot be empty")
  		}
  	}
  	return nil
  }
docs: // UnmarshalYAML implements the yaml.Unmarshaler interface.