// Copyright 2022 Antrea Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

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

package v1alpha1

import (
	internalinterfaces "antrea.io/antrea/multicluster/pkg/client/informers/externalversions/internalinterfaces"
)

// Interface provides access to all the informers in this group version.
type Interface interface {
	// ClusterInfoImports returns a ClusterInfoImportInformer.
	ClusterInfoImports() ClusterInfoImportInformer
	// ClusterSets returns a ClusterSetInformer.
	ClusterSets() ClusterSetInformer
	// Gateways returns a GatewayInformer.
	Gateways() GatewayInformer
	// LabelIdentities returns a LabelIdentityInformer.
	LabelIdentities() LabelIdentityInformer
	// MemberClusterAnnounces returns a MemberClusterAnnounceInformer.
	MemberClusterAnnounces() MemberClusterAnnounceInformer
	// ResourceExports returns a ResourceExportInformer.
	ResourceExports() ResourceExportInformer
	// ResourceImports returns a ResourceImportInformer.
	ResourceImports() ResourceImportInformer
}

type version struct {
	factory          internalinterfaces.SharedInformerFactory
	namespace        string
	tweakListOptions internalinterfaces.TweakListOptionsFunc
}

// New returns a new Interface.
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
	return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
}

// ClusterInfoImports returns a ClusterInfoImportInformer.
func (v *version) ClusterInfoImports() ClusterInfoImportInformer {
	return &clusterInfoImportInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// ClusterSets returns a ClusterSetInformer.
func (v *version) ClusterSets() ClusterSetInformer {
	return &clusterSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// Gateways returns a GatewayInformer.
func (v *version) Gateways() GatewayInformer {
	return &gatewayInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// LabelIdentities returns a LabelIdentityInformer.
func (v *version) LabelIdentities() LabelIdentityInformer {
	return &labelIdentityInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
}

// MemberClusterAnnounces returns a MemberClusterAnnounceInformer.
func (v *version) MemberClusterAnnounces() MemberClusterAnnounceInformer {
	return &memberClusterAnnounceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// ResourceExports returns a ResourceExportInformer.
func (v *version) ResourceExports() ResourceExportInformer {
	return &resourceExportInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// ResourceImports returns a ResourceImportInformer.
func (v *version) ResourceImports() ResourceImportInformer {
	return &resourceImportInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}
