code: func (r *Subresource) GetWithVeto(key string) (interface{}, error) {
  	if r.HasChange(key) {
  		old, new := r.GetChange(key)
  		return r.Get(key), fmt.Errorf("cannot change the value of %q - (old: %v new: %v)", key, old, new)
  	}
  	return r.Get(key), nil
  }
docs: // GetWithVeto returns the value specified by key, but returns an error if it
  // has changed. The intention here is to block changes to the resource in a
  // fashion that would otherwise result in forcing a new resource.