// Automatically generated by mockimpl. DO NOT EDIT!

package mock

import (
	"time"

	"github.com/fleetdm/fleet/v4/server/fleet"
)

var _ fleet.LabelStore = (*LabelStore)(nil)

type ApplyLabelSpecsFunc func(specs []*fleet.LabelSpec) error

type GetLabelSpecsFunc func() ([]*fleet.LabelSpec, error)

type GetLabelSpecFunc func(name string) (*fleet.LabelSpec, error)

type NewLabelFunc func(Label *fleet.Label, opts ...fleet.OptionalArg) (*fleet.Label, error)

type SaveLabelFunc func(label *fleet.Label) (*fleet.Label, error)

type DeleteLabelFunc func(name string) error

type LabelFunc func(lid uint) (*fleet.Label, error)

type ListLabelsFunc func(filter fleet.TeamFilter, opt fleet.ListOptions) ([]*fleet.Label, error)

type LabelQueriesForHostFunc func(host *fleet.Host, cutoff time.Time) (map[string]string, error)

type RecordLabelQueryExecutionsFunc func(host *fleet.Host, results map[uint]bool, t time.Time) error

type ListLabelsForHostFunc func(hid uint) ([]*fleet.Label, error)

type ListHostsInLabelFunc func(filter fleet.TeamFilter, lid uint, opt fleet.HostListOptions) ([]*fleet.Host, error)

type ListUniqueHostsInLabelsFunc func(filter fleet.TeamFilter, labels []uint) ([]*fleet.Host, error)

type SearchLabelsFunc func(filter fleet.TeamFilter, query string, omit ...uint) ([]*fleet.Label, error)

type LabelIDsByNameFunc func(labels []string) ([]uint, error)

type LabelStore struct {
	ApplyLabelSpecsFunc        ApplyLabelSpecsFunc
	ApplyLabelSpecsFuncInvoked bool

	GetLabelSpecsFunc        GetLabelSpecsFunc
	GetLabelSpecsFuncInvoked bool

	GetLabelSpecFunc        GetLabelSpecFunc
	GetLabelSpecFuncInvoked bool

	NewLabelFunc        NewLabelFunc
	NewLabelFuncInvoked bool

	SaveLabelFunc        SaveLabelFunc
	SaveLabelFuncInvoked bool

	DeleteLabelFunc        DeleteLabelFunc
	DeleteLabelFuncInvoked bool

	LabelFunc        LabelFunc
	LabelFuncInvoked bool

	ListLabelsFunc        ListLabelsFunc
	ListLabelsFuncInvoked bool

	LabelQueriesForHostFunc        LabelQueriesForHostFunc
	LabelQueriesForHostFuncInvoked bool

	RecordLabelQueryExecutionsFunc        RecordLabelQueryExecutionsFunc
	RecordLabelQueryExecutionsFuncInvoked bool

	ListLabelsForHostFunc        ListLabelsForHostFunc
	ListLabelsForHostFuncInvoked bool

	ListHostsInLabelFunc        ListHostsInLabelFunc
	ListHostsInLabelFuncInvoked bool

	ListUniqueHostsInLabelsFunc        ListUniqueHostsInLabelsFunc
	ListUniqueHostsInLabelsFuncInvoked bool

	SearchLabelsFunc        SearchLabelsFunc
	SearchLabelsFuncInvoked bool

	LabelIDsByNameFunc        LabelIDsByNameFunc
	LabelIDsByNameFuncInvoked bool
}

func (s *LabelStore) ApplyLabelSpecs(specs []*fleet.LabelSpec) error {
	s.ApplyLabelSpecsFuncInvoked = true
	return s.ApplyLabelSpecsFunc(specs)
}

func (s *LabelStore) GetLabelSpecs() ([]*fleet.LabelSpec, error) {
	s.GetLabelSpecsFuncInvoked = true
	return s.GetLabelSpecsFunc()
}

func (s *LabelStore) GetLabelSpec(name string) (*fleet.LabelSpec, error) {
	s.GetLabelSpecFuncInvoked = true
	return s.GetLabelSpecFunc(name)
}

func (s *LabelStore) NewLabel(Label *fleet.Label, opts ...fleet.OptionalArg) (*fleet.Label, error) {
	s.NewLabelFuncInvoked = true
	return s.NewLabelFunc(Label, opts...)
}

func (s *LabelStore) SaveLabel(label *fleet.Label) (*fleet.Label, error) {
	s.SaveLabelFuncInvoked = true
	return s.SaveLabelFunc(label)
}

func (s *LabelStore) DeleteLabel(name string) error {
	s.DeleteLabelFuncInvoked = true
	return s.DeleteLabelFunc(name)
}

func (s *LabelStore) Label(lid uint) (*fleet.Label, error) {
	s.LabelFuncInvoked = true
	return s.LabelFunc(lid)
}

func (s *LabelStore) ListLabels(filter fleet.TeamFilter, opt fleet.ListOptions) ([]*fleet.Label, error) {
	s.ListLabelsFuncInvoked = true
	return s.ListLabelsFunc(filter, opt)
}

func (s *LabelStore) LabelQueriesForHost(host *fleet.Host, cutoff time.Time) (map[string]string, error) {
	s.LabelQueriesForHostFuncInvoked = true
	return s.LabelQueriesForHostFunc(host, cutoff)
}

func (s *LabelStore) RecordLabelQueryExecutions(host *fleet.Host, results map[uint]bool, t time.Time) error {
	s.RecordLabelQueryExecutionsFuncInvoked = true
	return s.RecordLabelQueryExecutionsFunc(host, results, t)
}

func (s *LabelStore) ListLabelsForHost(hid uint) ([]*fleet.Label, error) {
	s.ListLabelsForHostFuncInvoked = true
	return s.ListLabelsForHostFunc(hid)
}

func (s *LabelStore) ListHostsInLabel(filter fleet.TeamFilter, lid uint, opt fleet.HostListOptions) ([]*fleet.Host, error) {
	s.ListHostsInLabelFuncInvoked = true
	return s.ListHostsInLabelFunc(filter, lid, opt)
}

func (s *LabelStore) ListUniqueHostsInLabels(filter fleet.TeamFilter, labels []uint) ([]*fleet.Host, error) {
	s.ListUniqueHostsInLabelsFuncInvoked = true
	return s.ListUniqueHostsInLabelsFunc(filter, labels)
}

func (s *LabelStore) SearchLabels(filter fleet.TeamFilter, query string, omit ...uint) ([]*fleet.Label, error) {
	s.SearchLabelsFuncInvoked = true
	return s.SearchLabelsFunc(filter, query, omit...)
}

func (s *LabelStore) LabelIDsByName(labels []string) ([]uint, error) {
	s.LabelIDsByNameFuncInvoked = true
	return s.LabelIDsByNameFunc(labels)
}
