github.com/projectcalico/api@v0.0.0-20231218190037-9183ab93f33e/pkg/client/informers_generated/externalversions/generic.go (about) 1 // Copyright (c) 2023 Tigera, Inc. All rights reserved. 2 3 // Code generated by informer-gen. DO NOT EDIT. 4 5 package externalversions 6 7 import ( 8 "fmt" 9 10 v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" 11 schema "k8s.io/apimachinery/pkg/runtime/schema" 12 cache "k8s.io/client-go/tools/cache" 13 ) 14 15 // GenericInformer is type of SharedIndexInformer which will locate and delegate to other 16 // sharedInformers based on type 17 type GenericInformer interface { 18 Informer() cache.SharedIndexInformer 19 Lister() cache.GenericLister 20 } 21 22 type genericInformer struct { 23 informer cache.SharedIndexInformer 24 resource schema.GroupResource 25 } 26 27 // Informer returns the SharedIndexInformer. 28 func (f *genericInformer) Informer() cache.SharedIndexInformer { 29 return f.informer 30 } 31 32 // Lister returns the GenericLister. 33 func (f *genericInformer) Lister() cache.GenericLister { 34 return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) 35 } 36 37 // ForResource gives generic access to a shared informer of the matching type 38 // TODO extend this to unknown resources with a client pool 39 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { 40 switch resource { 41 // Group=projectcalico.org, Version=v3 42 case v3.SchemeGroupVersion.WithResource("bgpconfigurations"): 43 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().BGPConfigurations().Informer()}, nil 44 case v3.SchemeGroupVersion.WithResource("bgpfilters"): 45 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().BGPFilters().Informer()}, nil 46 case v3.SchemeGroupVersion.WithResource("bgppeers"): 47 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().BGPPeers().Informer()}, nil 48 case v3.SchemeGroupVersion.WithResource("blockaffinities"): 49 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().BlockAffinities().Informer()}, nil 50 case v3.SchemeGroupVersion.WithResource("caliconodestatuses"): 51 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().CalicoNodeStatuses().Informer()}, nil 52 case v3.SchemeGroupVersion.WithResource("clusterinformations"): 53 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().ClusterInformations().Informer()}, nil 54 case v3.SchemeGroupVersion.WithResource("felixconfigurations"): 55 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().FelixConfigurations().Informer()}, nil 56 case v3.SchemeGroupVersion.WithResource("globalnetworkpolicies"): 57 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalNetworkPolicies().Informer()}, nil 58 case v3.SchemeGroupVersion.WithResource("globalnetworksets"): 59 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalNetworkSets().Informer()}, nil 60 case v3.SchemeGroupVersion.WithResource("hostendpoints"): 61 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().HostEndpoints().Informer()}, nil 62 case v3.SchemeGroupVersion.WithResource("ipamconfigurations"): 63 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().IPAMConfigurations().Informer()}, nil 64 case v3.SchemeGroupVersion.WithResource("ippools"): 65 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().IPPools().Informer()}, nil 66 case v3.SchemeGroupVersion.WithResource("ipreservations"): 67 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().IPReservations().Informer()}, nil 68 case v3.SchemeGroupVersion.WithResource("kubecontrollersconfigurations"): 69 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().KubeControllersConfigurations().Informer()}, nil 70 case v3.SchemeGroupVersion.WithResource("networkpolicies"): 71 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().NetworkPolicies().Informer()}, nil 72 case v3.SchemeGroupVersion.WithResource("networksets"): 73 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().NetworkSets().Informer()}, nil 74 case v3.SchemeGroupVersion.WithResource("profiles"): 75 return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().Profiles().Informer()}, nil 76 77 } 78 79 return nil, fmt.Errorf("no informer found for %v", resource) 80 }