code: func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
  	store := &genericregistry.Store{
  		NewFunc:                  func() runtime.Object { return &api.PersistentVolume{} },
  		NewListFunc:              func() runtime.Object { return &api.PersistentVolumeList{} },
  		PredicateFunc:            persistentvolume.MatchPersistentVolumes,
  		DefaultQualifiedResource: api.Resource("persistentvolumes"),
  
  		CreateStrategy:      persistentvolume.Strategy,
  		UpdateStrategy:      persistentvolume.Strategy,
  		DeleteStrategy:      persistentvolume.Strategy,
  		ReturnDeletedObject: true,
  
  		TableConvertor: printerstorage.TableConvertor{TableGenerator: printers.NewTableGenerator().With(printersinternal.AddHandlers)},
  	}
  	options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: persistentvolume.GetAttrs}
  	if err := store.CompleteWithOptions(options); err != nil {
  		panic(err) // TODO: Propagate error up
  	}
  
  	statusStore := *store
  	statusStore.UpdateStrategy = persistentvolume.StatusStrategy
  
  	return &REST{store}, &StatusREST{store: &statusStore}
  }
docs: // NewREST returns a RESTStorage object that will work against persistent volumes.