// NewREST returns a new REST. func NewREST(s storage.Interface, oClient *oclient.Client) *REST { prefix := "/servicebrokers" store := &etcdgeneric.Etcd{ NewFunc: func() runtime.Object { return &servicebrokerapi.ServiceBroker{} }, NewListFunc: func() runtime.Object { return &servicebrokerapi.ServiceBrokerList{} }, KeyRootFunc: func(ctx kapi.Context) string { return prefix }, KeyFunc: func(ctx kapi.Context, name string) (string, error) { return etcdgeneric.NoNamespaceKeyFunc(ctx, prefix, name) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*servicebrokerapi.ServiceBroker).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return servicebroker.Matcher(label, field) }, QualifiedResource: servicebrokerapi.Resource("servicebroker"), CreateStrategy: servicebroker.SbStrategy, UpdateStrategy: servicebroker.SbStrategy, ReturnDeletedObject: false, Storage: s, } return &REST{ store: store, bsClient: oClient.BackingServices(backingserviceapi.BSNS), bsiClient: oClient.BackingServiceInstances(kapi.NamespaceAll), } }