code: func (s *ServerConfig) CheckDefaults() error {
  	if s.AuthClient == nil {
  		return trace.BadParameter("auth client required")
  	}
  	if s.DataDir == "" {
  		return trace.BadParameter("missing parameter DataDir")
  	}
  	if s.UserAgent == nil {
  		return trace.BadParameter("user agent required to connect to remote host")
  	}
  	if s.TargetConn == nil {
  		return trace.BadParameter("connection to target connection required")
  	}
  	if s.SrcAddr == nil {
  		return trace.BadParameter("source address required to identify client")
  	}
  	if s.DstAddr == nil {
  		return trace.BadParameter("destination address required to connect to remote host")
  	}
  	if s.HostCertificate == nil {
  		return trace.BadParameter("host certificate required to act on behalf of remote host")
  	}
  	if s.Clock == nil {
  		s.Clock = clockwork.NewRealClock()
  	}
  
  	return nil
  }
docs: // CheckDefaults makes sure all required parameters are passed in.