code: func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST {
  	resource := api.Resource("events")
  	opts, err := optsGetter.GetRESTOptions(resource)
  	if err != nil {
  		panic(err) // TODO: Propagate error up
  	}
  
  	store := &genericregistry.Store{
  		NewFunc:       func() runtime.Object { return &api.Event{} },
  		NewListFunc:   func() runtime.Object { return &api.EventList{} },
  		PredicateFunc: event.MatchEvent,
  		TTLFunc: func(runtime.Object, uint64, bool) (uint64, error) {
  			return ttl, nil
  		},
  		DefaultQualifiedResource: resource,
  
  		CreateStrategy: event.Strategy,
  		UpdateStrategy: event.Strategy,
  		DeleteStrategy: event.Strategy,
  
  		TableConvertor: printerstorage.TableConvertor{TableGenerator: printers.NewTableGenerator().With(printersinternal.AddHandlers)},
  	}
  	options := &generic.StoreOptions{RESTOptions: opts, AttrFunc: event.GetAttrs} // Pass in opts to use UndecoratedStorage
  	if err := store.CompleteWithOptions(options); err != nil {
  		panic(err) // TODO: Propagate error up
  	}
  	return &REST{store}
  }
docs: // NewREST returns a RESTStorage object that will work against events.