// Copyright Contributors to the Open Cluster Management project
// Code generated by lister-gen. DO NOT EDIT.

package v1beta1

import (
	labels "k8s.io/apimachinery/pkg/labels"
	listers "k8s.io/client-go/listers"
	cache "k8s.io/client-go/tools/cache"
	addonv1beta1 "open-cluster-management.io/api/addon/v1beta1"
)

// ClusterManagementAddOnLister helps list ClusterManagementAddOns.
// All objects returned here must be treated as read-only.
type ClusterManagementAddOnLister interface {
	// List lists all ClusterManagementAddOns in the indexer.
	// Objects returned here must be treated as read-only.
	List(selector labels.Selector) (ret []*addonv1beta1.ClusterManagementAddOn, err error)
	// Get retrieves the ClusterManagementAddOn from the index for a given name.
	// Objects returned here must be treated as read-only.
	Get(name string) (*addonv1beta1.ClusterManagementAddOn, error)
	ClusterManagementAddOnListerExpansion
}

// clusterManagementAddOnLister implements the ClusterManagementAddOnLister interface.
type clusterManagementAddOnLister struct {
	listers.ResourceIndexer[*addonv1beta1.ClusterManagementAddOn]
}

// NewClusterManagementAddOnLister returns a new ClusterManagementAddOnLister.
func NewClusterManagementAddOnLister(indexer cache.Indexer) ClusterManagementAddOnLister {
	return &clusterManagementAddOnLister{listers.New[*addonv1beta1.ClusterManagementAddOn](indexer, addonv1beta1.Resource("clustermanagementaddon"))}
}
