github.com/tigera/api@v0.0.0-20240320170621-278e89a8c5fb/pkg/client/informers_generated/externalversions/generic.go (about)

     1  // Copyright (c) 2024 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/tigera/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("alertexceptions"):
    43  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().AlertExceptions().Informer()}, nil
    44  	case v3.SchemeGroupVersion.WithResource("authenticationreviews"):
    45  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().AuthenticationReviews().Informer()}, nil
    46  	case v3.SchemeGroupVersion.WithResource("authorizationreviews"):
    47  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().AuthorizationReviews().Informer()}, nil
    48  	case v3.SchemeGroupVersion.WithResource("bgpconfigurations"):
    49  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().BGPConfigurations().Informer()}, nil
    50  	case v3.SchemeGroupVersion.WithResource("bgpfilters"):
    51  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().BGPFilters().Informer()}, nil
    52  	case v3.SchemeGroupVersion.WithResource("bgppeers"):
    53  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().BGPPeers().Informer()}, nil
    54  	case v3.SchemeGroupVersion.WithResource("blockaffinities"):
    55  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().BlockAffinities().Informer()}, nil
    56  	case v3.SchemeGroupVersion.WithResource("caliconodestatuses"):
    57  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().CalicoNodeStatuses().Informer()}, nil
    58  	case v3.SchemeGroupVersion.WithResource("clusterinformations"):
    59  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().ClusterInformations().Informer()}, nil
    60  	case v3.SchemeGroupVersion.WithResource("deeppacketinspections"):
    61  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().DeepPacketInspections().Informer()}, nil
    62  	case v3.SchemeGroupVersion.WithResource("egressgatewaypolicies"):
    63  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().EgressGatewayPolicies().Informer()}, nil
    64  	case v3.SchemeGroupVersion.WithResource("externalnetworks"):
    65  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().ExternalNetworks().Informer()}, nil
    66  	case v3.SchemeGroupVersion.WithResource("felixconfigurations"):
    67  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().FelixConfigurations().Informer()}, nil
    68  	case v3.SchemeGroupVersion.WithResource("globalalerts"):
    69  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalAlerts().Informer()}, nil
    70  	case v3.SchemeGroupVersion.WithResource("globalalerttemplates"):
    71  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalAlertTemplates().Informer()}, nil
    72  	case v3.SchemeGroupVersion.WithResource("globalnetworkpolicies"):
    73  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalNetworkPolicies().Informer()}, nil
    74  	case v3.SchemeGroupVersion.WithResource("globalnetworksets"):
    75  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalNetworkSets().Informer()}, nil
    76  	case v3.SchemeGroupVersion.WithResource("globalreports"):
    77  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalReports().Informer()}, nil
    78  	case v3.SchemeGroupVersion.WithResource("globalreporttypes"):
    79  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalReportTypes().Informer()}, nil
    80  	case v3.SchemeGroupVersion.WithResource("globalthreatfeeds"):
    81  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().GlobalThreatFeeds().Informer()}, nil
    82  	case v3.SchemeGroupVersion.WithResource("hostendpoints"):
    83  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().HostEndpoints().Informer()}, nil
    84  	case v3.SchemeGroupVersion.WithResource("ipamconfigurations"):
    85  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().IPAMConfigurations().Informer()}, nil
    86  	case v3.SchemeGroupVersion.WithResource("ippools"):
    87  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().IPPools().Informer()}, nil
    88  	case v3.SchemeGroupVersion.WithResource("ipreservations"):
    89  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().IPReservations().Informer()}, nil
    90  	case v3.SchemeGroupVersion.WithResource("kubecontrollersconfigurations"):
    91  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().KubeControllersConfigurations().Informer()}, nil
    92  	case v3.SchemeGroupVersion.WithResource("licensekeys"):
    93  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().LicenseKeys().Informer()}, nil
    94  	case v3.SchemeGroupVersion.WithResource("managedclusters"):
    95  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().ManagedClusters().Informer()}, nil
    96  	case v3.SchemeGroupVersion.WithResource("networkpolicies"):
    97  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().NetworkPolicies().Informer()}, nil
    98  	case v3.SchemeGroupVersion.WithResource("networksets"):
    99  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().NetworkSets().Informer()}, nil
   100  	case v3.SchemeGroupVersion.WithResource("packetcaptures"):
   101  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().PacketCaptures().Informer()}, nil
   102  	case v3.SchemeGroupVersion.WithResource("policyrecommendationscopes"):
   103  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().PolicyRecommendationScopes().Informer()}, nil
   104  	case v3.SchemeGroupVersion.WithResource("profiles"):
   105  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().Profiles().Informer()}, nil
   106  	case v3.SchemeGroupVersion.WithResource("remoteclusterconfigurations"):
   107  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().RemoteClusterConfigurations().Informer()}, nil
   108  	case v3.SchemeGroupVersion.WithResource("securityeventwebhooks"):
   109  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().SecurityEventWebhooks().Informer()}, nil
   110  	case v3.SchemeGroupVersion.WithResource("stagedglobalnetworkpolicies"):
   111  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().StagedGlobalNetworkPolicies().Informer()}, nil
   112  	case v3.SchemeGroupVersion.WithResource("stagedkubernetesnetworkpolicies"):
   113  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().StagedKubernetesNetworkPolicies().Informer()}, nil
   114  	case v3.SchemeGroupVersion.WithResource("stagednetworkpolicies"):
   115  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().StagedNetworkPolicies().Informer()}, nil
   116  	case v3.SchemeGroupVersion.WithResource("tiers"):
   117  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().Tiers().Informer()}, nil
   118  	case v3.SchemeGroupVersion.WithResource("uisettings"):
   119  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().UISettings().Informer()}, nil
   120  	case v3.SchemeGroupVersion.WithResource("uisettingsgroups"):
   121  		return &genericInformer{resource: resource.GroupResource(), informer: f.Projectcalico().V3().UISettingsGroups().Informer()}, nil
   122  
   123  	}
   124  
   125  	return nil, fmt.Errorf("no informer found for %v", resource)
   126  }