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 len(c.Names) == 0 {
  		return errors.New("DNS-SD config must contain at least one SRV record name")
  	}
  	switch strings.ToUpper(c.Type) {
  	case "SRV":
  	case "A", "AAAA":
  		if c.Port == 0 {
  			return errors.New("a port is required in DNS-SD configs for all record types except SRV")
  		}
  	default:
  		return errors.Errorf("invalid DNS-SD records type %s", c.Type)
  	}
  	return nil
  }
docs: // UnmarshalYAML implements the yaml.Unmarshaler interface.