code: func (t *ReverseTunnel) ConvertAndValidate() (services.ReverseTunnel, error) {
  	for i := range t.Addresses {
  		addr, err := utils.ParseHostPortAddr(t.Addresses[i], defaults.SSHProxyTunnelListenPort)
  		if err != nil {
  			return nil, trace.Wrap(err, "Invalid address for tunnel %v", t.DomainName)
  		}
  		t.Addresses[i] = addr.String()
  	}
  
  	out := services.NewReverseTunnel(t.DomainName, t.Addresses)
  	if err := out.Check(); err != nil {
  		return nil, trace.Wrap(err)
  	}
  	return out, nil
  }
docs: // ConvertAndValidate returns validated services.ReverseTunnel or nil and error otherwize