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.Servers) == 0 {
  		return errors.New("marathon_sd: must contain at least one Marathon server")
  	}
  	if len(c.AuthToken) > 0 && len(c.AuthTokenFile) > 0 {
  		return errors.New("marathon_sd: at most one of auth_token & auth_token_file must be configured")
  	}
  	if c.HTTPClientConfig.BasicAuth != nil && (len(c.AuthToken) > 0 || len(c.AuthTokenFile) > 0) {
  		return errors.New("marathon_sd: at most one of basic_auth, auth_token & auth_token_file must be configured")
  	}
  	if (len(c.HTTPClientConfig.BearerToken) > 0 || len(c.HTTPClientConfig.BearerTokenFile) > 0) && (len(c.AuthToken) > 0 || len(c.AuthTokenFile) > 0) {
  		return errors.New("marathon_sd: at most one of bearer_token, bearer_token_file, auth_token & auth_token_file must be configured")
  	}
  	return c.HTTPClientConfig.Validate()
  }
docs: // UnmarshalYAML implements the yaml.Unmarshaler interface.