code: func parseTLS(itf interface{}, opts *Options) error {
  	m, ok := itf.(map[string]interface{})
  	if !ok {
  		return fmt.Errorf("expected TLS to be a map/struct, got %v", itf)
  	}
  	for k, v := range m {
  		name := strings.ToLower(k)
  		switch name {
  		case "client_cert":
  			if err := checkType(k, reflect.String, v); err != nil {
  				return err
  			}
  			opts.ClientCert = v.(string)
  		case "client_key":
  			if err := checkType(k, reflect.String, v); err != nil {
  				return err
  			}
  			opts.ClientKey = v.(string)
  		case "client_ca", "client_cacert":
  			if err := checkType(k, reflect.String, v); err != nil {
  				return err
  			}
  			opts.ClientCA = v.(string)
  		}
  	}
  	return nil
  }
docs: // parseTLS updates `opts` with TLS config