// Code generated by MockGen. DO NOT EDIT.
// Source: service.go
//
// Generated by this command:
//
//	mockgen -source=service.go -package=mock_cluster -destination=./mock_cluster/mock_service.go
//

// Package mock_cluster is a generated GoMock package.
package mock_cluster

import (
	context "context"
	reflect "reflect"

	nextgenv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/nextgen/v1"
	entity "github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/entity"
	repository "github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/domain/repository"
	common "github.com/tidbcloud/tidb-management-service/tidb-mgmt-service/pkg/common"
	gomock "go.uber.org/mock/gomock"
)

// MockService is a mock of Service interface.
type MockService struct {
	ctrl     *gomock.Controller
	recorder *MockServiceMockRecorder
	isgomock struct{}
}

// MockServiceMockRecorder is the mock recorder for MockService.
type MockServiceMockRecorder struct {
	mock *MockService
}

// NewMockService creates a new mock instance.
func NewMockService(ctrl *gomock.Controller) *MockService {
	mock := &MockService{ctrl: ctrl}
	mock.recorder = &MockServiceMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockService) EXPECT() *MockServiceMockRecorder {
	return m.recorder
}

// BatchMoveClusters mocks base method.
func (m *MockService) BatchMoveClusters(ctx context.Context, orgId, sourceProjectId, targetProjectId uint64, servicePlans []string) (int32, []string, []string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "BatchMoveClusters", ctx, orgId, sourceProjectId, targetProjectId, servicePlans)
	ret0, _ := ret[0].(int32)
	ret1, _ := ret[1].([]string)
	ret2, _ := ret[2].([]string)
	ret3, _ := ret[3].(error)
	return ret0, ret1, ret2, ret3
}

// BatchMoveClusters indicates an expected call of BatchMoveClusters.
func (mr *MockServiceMockRecorder) BatchMoveClusters(ctx, orgId, sourceProjectId, targetProjectId, servicePlans any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchMoveClusters", reflect.TypeOf((*MockService)(nil).BatchMoveClusters), ctx, orgId, sourceProjectId, targetProjectId, servicePlans)
}

// BindTags mocks base method.
func (m *MockService) BindTags(ctx context.Context, organizationID, clusterID uint64, canonicalTags []string) ([]entity.Tag, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "BindTags", ctx, organizationID, clusterID, canonicalTags)
	ret0, _ := ret[0].([]entity.Tag)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// BindTags indicates an expected call of BindTags.
func (mr *MockServiceMockRecorder) BindTags(ctx, organizationID, clusterID, canonicalTags any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BindTags", reflect.TypeOf((*MockService)(nil).BindTags), ctx, organizationID, clusterID, canonicalTags)
}

// CleanClusters mocks base method.
func (m *MockService) CleanClusters(ctx context.Context, organizationID uint64, needFinalBackup bool) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CleanClusters", ctx, organizationID, needFinalBackup)
	ret0, _ := ret[0].(error)
	return ret0
}

// CleanClusters indicates an expected call of CleanClusters.
func (mr *MockServiceMockRecorder) CleanClusters(ctx, organizationID, needFinalBackup any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanClusters", reflect.TypeOf((*MockService)(nil).CleanClusters), ctx, organizationID, needFinalBackup)
}

// CountClusters mocks base method.
func (m *MockService) CountClusters(ctx context.Context, filter *repository.ClusterFilter) (int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CountClusters", ctx, filter)
	ret0, _ := ret[0].(int64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// CountClusters indicates an expected call of CountClusters.
func (mr *MockServiceMockRecorder) CountClusters(ctx, filter any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountClusters", reflect.TypeOf((*MockService)(nil).CountClusters), ctx, filter)
}

// CreateCluster mocks base method.
func (m *MockService) CreateCluster(ctx context.Context, cluster *entity.Cluster, validateOnly bool) (*entity.Cluster, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateCluster", ctx, cluster, validateOnly)
	ret0, _ := ret[0].(*entity.Cluster)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// CreateCluster indicates an expected call of CreateCluster.
func (mr *MockServiceMockRecorder) CreateCluster(ctx, cluster, validateOnly any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCluster", reflect.TypeOf((*MockService)(nil).CreateCluster), ctx, cluster, validateOnly)
}

// DeleteCluster mocks base method.
func (m *MockService) DeleteCluster(ctx context.Context, clusterId uint64, validateOnly bool) (*entity.Cluster, *entity.ClusterCustomStatus, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteCluster", ctx, clusterId, validateOnly)
	ret0, _ := ret[0].(*entity.Cluster)
	ret1, _ := ret[1].(*entity.ClusterCustomStatus)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// DeleteCluster indicates an expected call of DeleteCluster.
func (mr *MockServiceMockRecorder) DeleteCluster(ctx, clusterId, validateOnly any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCluster", reflect.TypeOf((*MockService)(nil).DeleteCluster), ctx, clusterId, validateOnly)
}

// GetCluster mocks base method.
func (m *MockService) GetCluster(ctx context.Context, clusterId uint64, view entity.ClusterView, includeDeleted bool) (*entity.Cluster, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetCluster", ctx, clusterId, view, includeDeleted)
	ret0, _ := ret[0].(*entity.Cluster)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetCluster indicates an expected call of GetCluster.
func (mr *MockServiceMockRecorder) GetCluster(ctx, clusterId, view, includeDeleted any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCluster", reflect.TypeOf((*MockService)(nil).GetCluster), ctx, clusterId, view, includeDeleted)
}

// GetProviderRole mocks base method.
func (m *MockService) GetProviderRole(ctx context.Context, clusterId uint64) (*nextgenv1.ProviderRole, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetProviderRole", ctx, clusterId)
	ret0, _ := ret[0].(*nextgenv1.ProviderRole)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetProviderRole indicates an expected call of GetProviderRole.
func (mr *MockServiceMockRecorder) GetProviderRole(ctx, clusterId any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProviderRole", reflect.TypeOf((*MockService)(nil).GetProviderRole), ctx, clusterId)
}

// ListClusters mocks base method.
func (m *MockService) ListClusters(ctx context.Context, filter *repository.ClusterFilter, page *common.Page) ([]*entity.Cluster, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListClusters", ctx, filter, page)
	ret0, _ := ret[0].([]*entity.Cluster)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListClusters indicates an expected call of ListClusters.
func (mr *MockServiceMockRecorder) ListClusters(ctx, filter, page any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListClusters", reflect.TypeOf((*MockService)(nil).ListClusters), ctx, filter, page)
}

// MoveCluster mocks base method.
func (m *MockService) MoveCluster(ctx context.Context, orgId, clusterId, targetProjectId uint64, displayName string) (*entity.Cluster, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "MoveCluster", ctx, orgId, clusterId, targetProjectId, displayName)
	ret0, _ := ret[0].(*entity.Cluster)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// MoveCluster indicates an expected call of MoveCluster.
func (mr *MockServiceMockRecorder) MoveCluster(ctx, orgId, clusterId, targetProjectId, displayName any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MoveCluster", reflect.TypeOf((*MockService)(nil).MoveCluster), ctx, orgId, clusterId, targetProjectId, displayName)
}

// RestoreCluster mocks base method.
func (m *MockService) RestoreCluster(ctx context.Context, restoreClusterEntity *entity.RestoreCluster) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RestoreCluster", ctx, restoreClusterEntity)
	ret0, _ := ret[0].(error)
	return ret0
}

// RestoreCluster indicates an expected call of RestoreCluster.
func (mr *MockServiceMockRecorder) RestoreCluster(ctx, restoreClusterEntity any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreCluster", reflect.TypeOf((*MockService)(nil).RestoreCluster), ctx, restoreClusterEntity)
}

// RestoreStatus mocks base method.
func (m *MockService) RestoreStatus(ctx context.Context, clusterId string) (*entity.RestoreClusterStatus, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RestoreStatus", ctx, clusterId)
	ret0, _ := ret[0].(*entity.RestoreClusterStatus)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// RestoreStatus indicates an expected call of RestoreStatus.
func (mr *MockServiceMockRecorder) RestoreStatus(ctx, clusterId any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreStatus", reflect.TypeOf((*MockService)(nil).RestoreStatus), ctx, clusterId)
}

// SetRootPassword mocks base method.
func (m *MockService) SetRootPassword(ctx context.Context, clusterId uint64, rootPassword string) (*entity.Cluster, *entity.ClusterCustomStatus, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetRootPassword", ctx, clusterId, rootPassword)
	ret0, _ := ret[0].(*entity.Cluster)
	ret1, _ := ret[1].(*entity.ClusterCustomStatus)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// SetRootPassword indicates an expected call of SetRootPassword.
func (mr *MockServiceMockRecorder) SetRootPassword(ctx, clusterId, rootPassword any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRootPassword", reflect.TypeOf((*MockService)(nil).SetRootPassword), ctx, clusterId, rootPassword)
}

// UnbindTags mocks base method.
func (m *MockService) UnbindTags(ctx context.Context, organizationID, clusterID uint64, canonicalTags []string) ([]entity.Tag, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UnbindTags", ctx, organizationID, clusterID, canonicalTags)
	ret0, _ := ret[0].([]entity.Tag)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// UnbindTags indicates an expected call of UnbindTags.
func (mr *MockServiceMockRecorder) UnbindTags(ctx, organizationID, clusterID, canonicalTags any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnbindTags", reflect.TypeOf((*MockService)(nil).UnbindTags), ctx, organizationID, clusterID, canonicalTags)
}

// UpdateCluster mocks base method.
func (m *MockService) UpdateCluster(ctx context.Context, newCluster *entity.Cluster, validateOnly bool) (*entity.Cluster, *entity.ClusterCustomStatus, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateCluster", ctx, newCluster, validateOnly)
	ret0, _ := ret[0].(*entity.Cluster)
	ret1, _ := ret[1].(*entity.ClusterCustomStatus)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// UpdateCluster indicates an expected call of UpdateCluster.
func (mr *MockServiceMockRecorder) UpdateCluster(ctx, newCluster, validateOnly any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateCluster", reflect.TypeOf((*MockService)(nil).UpdateCluster), ctx, newCluster, validateOnly)
}

// UpdateClusterRuVersion mocks base method.
func (m *MockService) UpdateClusterRuVersion(ctx context.Context, clusterId uint64, ruVersion int32) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateClusterRuVersion", ctx, clusterId, ruVersion)
	ret0, _ := ret[0].(error)
	return ret0
}

// UpdateClusterRuVersion indicates an expected call of UpdateClusterRuVersion.
func (mr *MockServiceMockRecorder) UpdateClusterRuVersion(ctx, clusterId, ruVersion any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateClusterRuVersion", reflect.TypeOf((*MockService)(nil).UpdateClusterRuVersion), ctx, clusterId, ruVersion)
}
