code: func (s *PresenceService) UpsertReverseTunnel(tunnel services.ReverseTunnel) error {
  	if err := tunnel.Check(); err != nil {
  		return trace.Wrap(err)
  	}
  	value, err := services.GetReverseTunnelMarshaler().MarshalReverseTunnel(tunnel)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	_, err = s.Put(context.TODO(), backend.Item{
  		Key:     backend.Key(reverseTunnelsPrefix, tunnel.GetName()),
  		Value:   value,
  		Expires: tunnel.Expiry(),
  		ID:      tunnel.GetResourceID(),
  	})
  	return trace.Wrap(err)
  }
docs: // UpsertReverseTunnel upserts reverse tunnel entry temporarily or permanently