github.com/verrazzano/verrazzano-monitoring-operator@v0.0.30/pkg/client/informers/externalversions/generic.go (about) 1 // Copyright (c) 2020, 2022, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 // Code generated by informer-gen. DO NOT EDIT. 5 6 package externalversions 7 8 import ( 9 "fmt" 10 11 v1 "github.com/verrazzano/verrazzano-monitoring-operator/pkg/apis/vmcontroller/v1" 12 schema "k8s.io/apimachinery/pkg/runtime/schema" 13 cache "k8s.io/client-go/tools/cache" 14 ) 15 16 // GenericInformer is type of SharedIndexInformer which will locate and delegate to other 17 // sharedInformers based on type 18 type GenericInformer interface { 19 Informer() cache.SharedIndexInformer 20 Lister() cache.GenericLister 21 } 22 23 type genericInformer struct { 24 informer cache.SharedIndexInformer 25 resource schema.GroupResource 26 } 27 28 // Informer returns the SharedIndexInformer. 29 func (f *genericInformer) Informer() cache.SharedIndexInformer { 30 return f.informer 31 } 32 33 // Lister returns the GenericLister. 34 func (f *genericInformer) Lister() cache.GenericLister { 35 return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) 36 } 37 38 // ForResource gives generic access to a shared informer of the matching type 39 // TODO extend this to unknown resources with a client pool 40 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { 41 switch resource { 42 // Group=verrazzano.io, Version=v1 43 case v1.SchemeGroupVersion.WithResource("verrazzanomonitoringinstances"): 44 return &genericInformer{resource: resource.GroupResource(), informer: f.Verrazzano().V1().VerrazzanoMonitoringInstances().Informer()}, nil 45 46 } 47 48 return nil, fmt.Errorf("no informer found for %v", resource) 49 }