code: func (s *ProvisioningService) UpsertToken(p services.ProvisionToken) error {
  	if err := p.CheckAndSetDefaults(); err != nil {
  		return trace.Wrap(err)
  	}
  	if p.Expiry().IsZero() || p.Expiry().Sub(s.Clock().Now().UTC()) < time.Second {
  		p.SetTTL(s.Clock(), defaults.ProvisioningTokenTTL)
  	}
  	data, err := services.MarshalProvisionToken(p)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	item := backend.Item{
  		Key:     backend.Key(tokensPrefix, p.GetName()),
  		Value:   data,
  		Expires: p.Expiry(),
  		ID:      p.GetResourceID(),
  	}
  	_, err = s.Put(context.TODO(), item)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	return nil
  }
docs: // UpsertToken adds provisioning tokens for the auth server