code: func NewProvisionToken(token string, roles teleport.Roles, expires time.Time) (ProvisionToken, error) {
  	t := &ProvisionTokenV2{
  		Kind:    KindToken,
  		Version: V2,
  		Metadata: Metadata{
  			Name:      token,
  			Expires:   &expires,
  			Namespace: defaults.Namespace,
  		},
  		Spec: ProvisionTokenSpecV2{
  			Roles: roles,
  		},
  	}
  	if err := t.CheckAndSetDefaults(); err != nil {
  		return nil, trace.Wrap(err)
  	}
  	return t, nil
  }
docs: // NewProvisionToken returns a new instance of provision token resource