// Code generated by lister-gen. DO NOT EDIT.

package v1alpha1

import (
	workflowv1alpha1 "github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1"
	labels "k8s.io/apimachinery/pkg/labels"
	listers "k8s.io/client-go/listers"
	cache "k8s.io/client-go/tools/cache"
)

// WorkflowTaskSetLister helps list WorkflowTaskSets.
// All objects returned here must be treated as read-only.
type WorkflowTaskSetLister interface {
	// List lists all WorkflowTaskSets in the indexer.
	// Objects returned here must be treated as read-only.
	List(selector labels.Selector) (ret []*workflowv1alpha1.WorkflowTaskSet, err error)
	// WorkflowTaskSets returns an object that can list and get WorkflowTaskSets.
	WorkflowTaskSets(namespace string) WorkflowTaskSetNamespaceLister
	WorkflowTaskSetListerExpansion
}

// workflowTaskSetLister implements the WorkflowTaskSetLister interface.
type workflowTaskSetLister struct {
	listers.ResourceIndexer[*workflowv1alpha1.WorkflowTaskSet]
}

// NewWorkflowTaskSetLister returns a new WorkflowTaskSetLister.
func NewWorkflowTaskSetLister(indexer cache.Indexer) WorkflowTaskSetLister {
	return &workflowTaskSetLister{listers.New[*workflowv1alpha1.WorkflowTaskSet](indexer, workflowv1alpha1.Resource("workflowtaskset"))}
}

// WorkflowTaskSets returns an object that can list and get WorkflowTaskSets.
func (s *workflowTaskSetLister) WorkflowTaskSets(namespace string) WorkflowTaskSetNamespaceLister {
	return workflowTaskSetNamespaceLister{listers.NewNamespaced[*workflowv1alpha1.WorkflowTaskSet](s.ResourceIndexer, namespace)}
}

// WorkflowTaskSetNamespaceLister helps list and get WorkflowTaskSets.
// All objects returned here must be treated as read-only.
type WorkflowTaskSetNamespaceLister interface {
	// List lists all WorkflowTaskSets in the indexer for a given namespace.
	// Objects returned here must be treated as read-only.
	List(selector labels.Selector) (ret []*workflowv1alpha1.WorkflowTaskSet, err error)
	// Get retrieves the WorkflowTaskSet from the indexer for a given namespace and name.
	// Objects returned here must be treated as read-only.
	Get(name string) (*workflowv1alpha1.WorkflowTaskSet, error)
	WorkflowTaskSetNamespaceListerExpansion
}

// workflowTaskSetNamespaceLister implements the WorkflowTaskSetNamespaceLister
// interface.
type workflowTaskSetNamespaceLister struct {
	listers.ResourceIndexer[*workflowv1alpha1.WorkflowTaskSet]
}
