// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/tidbcloud/devops/pkg/infra/clients/accountcli (interfaces: Client)
//
// Generated by this command:
//
//	mockgen -destination client_mock.go -package=accountcli github.com/tidbcloud/devops/pkg/infra/clients/accountcli Client
//

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

import (
	context "context"
	reflect "reflect"

	gin "github.com/gin-gonic/gin"
	account "github.com/tidbcloud/account/idl/pbgen/proto/account"
	gomock "go.uber.org/mock/gomock"
)

// MockClient is a mock of Client interface.
type MockClient struct {
	ctrl     *gomock.Controller
	recorder *MockClientMockRecorder
	isgomock struct{}
}

// MockClientMockRecorder is the mock recorder for MockClient.
type MockClientMockRecorder struct {
	mock *MockClient
}

// NewMockClient creates a new mock instance.
func NewMockClient(ctrl *gomock.Controller) *MockClient {
	mock := &MockClient{ctrl: ctrl}
	mock.recorder = &MockClientMockRecorder{mock}
	return mock
}

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

// AddImpersonateUser mocks base method.
func (m *MockClient) AddImpersonateUser(ctx context.Context, tenantID uint64, userEmail string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AddImpersonateUser", ctx, tenantID, userEmail)
	ret0, _ := ret[0].(error)
	return ret0
}

// AddImpersonateUser indicates an expected call of AddImpersonateUser.
func (mr *MockClientMockRecorder) AddImpersonateUser(ctx, tenantID, userEmail any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddImpersonateUser", reflect.TypeOf((*MockClient)(nil).AddImpersonateUser), ctx, tenantID, userEmail)
}

// AddUserToProject mocks base method.
func (m *MockClient) AddUserToProject(ctx context.Context, tenantID, projectID, userID, projectRole, applicant string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AddUserToProject", ctx, tenantID, projectID, userID, projectRole, applicant)
	ret0, _ := ret[0].(error)
	return ret0
}

// AddUserToProject indicates an expected call of AddUserToProject.
func (mr *MockClientMockRecorder) AddUserToProject(ctx, tenantID, projectID, userID, projectRole, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddUserToProject", reflect.TypeOf((*MockClient)(nil).AddUserToProject), ctx, tenantID, projectID, userID, projectRole, applicant)
}

// AddUserToTenant mocks base method.
func (m *MockClient) AddUserToTenant(ctx context.Context, tenantID, userID, orgRole, applicant string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AddUserToTenant", ctx, tenantID, userID, orgRole, applicant)
	ret0, _ := ret[0].(error)
	return ret0
}

// AddUserToTenant indicates an expected call of AddUserToTenant.
func (mr *MockClientMockRecorder) AddUserToTenant(ctx, tenantID, userID, orgRole, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddUserToTenant", reflect.TypeOf((*MockClient)(nil).AddUserToTenant), ctx, tenantID, userID, orgRole, applicant)
}

// CreateFeatureWhitelist mocks base method.
func (m *MockClient) CreateFeatureWhitelist(ctx context.Context, featureWl *FeatureWhitelistInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateFeatureWhitelist", ctx, featureWl)
	ret0, _ := ret[0].(error)
	return ret0
}

// CreateFeatureWhitelist indicates an expected call of CreateFeatureWhitelist.
func (mr *MockClientMockRecorder) CreateFeatureWhitelist(ctx, featureWl any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateFeatureWhitelist", reflect.TypeOf((*MockClient)(nil).CreateFeatureWhitelist), ctx, featureWl)
}

// DeleteFeatureWhitelist mocks base method.
func (m *MockClient) DeleteFeatureWhitelist(ctx context.Context, name string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteFeatureWhitelist", ctx, name)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteFeatureWhitelist indicates an expected call of DeleteFeatureWhitelist.
func (mr *MockClientMockRecorder) DeleteFeatureWhitelist(ctx, name any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteFeatureWhitelist", reflect.TypeOf((*MockClient)(nil).DeleteFeatureWhitelist), ctx, name)
}

// DeleteImpersonateUser mocks base method.
func (m *MockClient) DeleteImpersonateUser(ctx context.Context, tenantID uint64, userEmail string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteImpersonateUser", ctx, tenantID, userEmail)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteImpersonateUser indicates an expected call of DeleteImpersonateUser.
func (mr *MockClientMockRecorder) DeleteImpersonateUser(ctx, tenantID, userEmail any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteImpersonateUser", reflect.TypeOf((*MockClient)(nil).DeleteImpersonateUser), ctx, tenantID, userEmail)
}

// DeleteProjectByID mocks base method.
func (m *MockClient) DeleteProjectByID(ctx context.Context, tenantID, projectID, applicant string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteProjectByID", ctx, tenantID, projectID, applicant)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteProjectByID indicates an expected call of DeleteProjectByID.
func (mr *MockClientMockRecorder) DeleteProjectByID(ctx, tenantID, projectID, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProjectByID", reflect.TypeOf((*MockClient)(nil).DeleteProjectByID), ctx, tenantID, projectID, applicant)
}

// DeleteTenant mocks base method.
func (m *MockClient) DeleteTenant(ctx context.Context, id uint64, applicant string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteTenant", ctx, id, applicant)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteTenant indicates an expected call of DeleteTenant.
func (mr *MockClientMockRecorder) DeleteTenant(ctx, id, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTenant", reflect.TypeOf((*MockClient)(nil).DeleteTenant), ctx, id, applicant)
}

// DeleteUser mocks base method.
func (m *MockClient) DeleteUser(ctx context.Context, userID, applicant string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteUser", ctx, userID, applicant)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteUser indicates an expected call of DeleteUser.
func (mr *MockClientMockRecorder) DeleteUser(ctx, userID, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUser", reflect.TypeOf((*MockClient)(nil).DeleteUser), ctx, userID, applicant)
}

// GetImpersonateUser mocks base method.
func (m *MockClient) GetImpersonateUser(ctx context.Context, email string) (uint64, bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetImpersonateUser", ctx, email)
	ret0, _ := ret[0].(uint64)
	ret1, _ := ret[1].(bool)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// GetImpersonateUser indicates an expected call of GetImpersonateUser.
func (mr *MockClientMockRecorder) GetImpersonateUser(ctx, email any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetImpersonateUser", reflect.TypeOf((*MockClient)(nil).GetImpersonateUser), ctx, email)
}

// GetProject mocks base method.
func (m *MockClient) GetProject(ctx context.Context, id uint64) (*account.Project, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetProject", ctx, id)
	ret0, _ := ret[0].(*account.Project)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetProject indicates an expected call of GetProject.
func (mr *MockClientMockRecorder) GetProject(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProject", reflect.TypeOf((*MockClient)(nil).GetProject), ctx, id)
}

// GetProjectUsers mocks base method.
func (m *MockClient) GetProjectUsers(ctx context.Context, tenantID, projectID string, query GetUsersReq, applicant string) (*GetUsersResp, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetProjectUsers", ctx, tenantID, projectID, query, applicant)
	ret0, _ := ret[0].(*GetUsersResp)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetProjectUsers indicates an expected call of GetProjectUsers.
func (mr *MockClientMockRecorder) GetProjectUsers(ctx, tenantID, projectID, query, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectUsers", reflect.TypeOf((*MockClient)(nil).GetProjectUsers), ctx, tenantID, projectID, query, applicant)
}

// GetProjectUsersByProjectID mocks base method.
func (m *MockClient) GetProjectUsersByProjectID(ctx context.Context, projectId uint64) ([]*account.User, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetProjectUsersByProjectID", ctx, projectId)
	ret0, _ := ret[0].([]*account.User)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetProjectUsersByProjectID indicates an expected call of GetProjectUsersByProjectID.
func (mr *MockClientMockRecorder) GetProjectUsersByProjectID(ctx, projectId any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProjectUsersByProjectID", reflect.TypeOf((*MockClient)(nil).GetProjectUsersByProjectID), ctx, projectId)
}

// GetProxyHandler mocks base method.
func (m *MockClient) GetProxyHandler(getProxyPath func(*gin.Context) string) gin.HandlerFunc {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetProxyHandler", getProxyPath)
	ret0, _ := ret[0].(gin.HandlerFunc)
	return ret0
}

// GetProxyHandler indicates an expected call of GetProxyHandler.
func (mr *MockClientMockRecorder) GetProxyHandler(getProxyPath any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProxyHandler", reflect.TypeOf((*MockClient)(nil).GetProxyHandler), getProxyPath)
}

// GetTenant mocks base method.
func (m *MockClient) GetTenant(ctx context.Context, id uint64) (*account.Org, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetTenant", ctx, id)
	ret0, _ := ret[0].(*account.Org)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetTenant indicates an expected call of GetTenant.
func (mr *MockClientMockRecorder) GetTenant(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTenant", reflect.TypeOf((*MockClient)(nil).GetTenant), ctx, id)
}

// GetTenantUsers mocks base method.
func (m *MockClient) GetTenantUsers(ctx context.Context, tenantID string, query GetUsersReq, applicant string) (*GetUsersResp, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetTenantUsers", ctx, tenantID, query, applicant)
	ret0, _ := ret[0].(*GetUsersResp)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetTenantUsers indicates an expected call of GetTenantUsers.
func (mr *MockClientMockRecorder) GetTenantUsers(ctx, tenantID, query, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTenantUsers", reflect.TypeOf((*MockClient)(nil).GetTenantUsers), ctx, tenantID, query, applicant)
}

// GetUserFromToken mocks base method.
func (m *MockClient) GetUserFromToken(ctx context.Context, token string) (*account.GetUserByTokenResponse, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetUserFromToken", ctx, token)
	ret0, _ := ret[0].(*account.GetUserByTokenResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetUserFromToken indicates an expected call of GetUserFromToken.
func (mr *MockClientMockRecorder) GetUserFromToken(ctx, token any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserFromToken", reflect.TypeOf((*MockClient)(nil).GetUserFromToken), ctx, token)
}

// ListFeatureWhitelists mocks base method.
func (m *MockClient) ListFeatureWhitelists(ctx context.Context, req *ListFeatureWhitelistsReq) (*ListFeatureWhitelistsResp, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListFeatureWhitelists", ctx, req)
	ret0, _ := ret[0].(*ListFeatureWhitelistsResp)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListFeatureWhitelists indicates an expected call of ListFeatureWhitelists.
func (mr *MockClientMockRecorder) ListFeatureWhitelists(ctx, req any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFeatureWhitelists", reflect.TypeOf((*MockClient)(nil).ListFeatureWhitelists), ctx, req)
}

// ListProjects mocks base method.
func (m *MockClient) ListProjects(ctx context.Context, in *account.ProjectFilter) ([]*account.Project, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListProjects", ctx, in)
	ret0, _ := ret[0].([]*account.Project)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListProjects indicates an expected call of ListProjects.
func (mr *MockClientMockRecorder) ListProjects(ctx, in any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjects", reflect.TypeOf((*MockClient)(nil).ListProjects), ctx, in)
}

// ListTenants mocks base method.
func (m *MockClient) ListTenants(ctx context.Context, in *account.OrgFilter) ([]*account.Org, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListTenants", ctx, in)
	ret0, _ := ret[0].([]*account.Org)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListTenants indicates an expected call of ListTenants.
func (mr *MockClientMockRecorder) ListTenants(ctx, in any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTenants", reflect.TypeOf((*MockClient)(nil).ListTenants), ctx, in)
}

// RemoveUserFromProject mocks base method.
func (m *MockClient) RemoveUserFromProject(ctx context.Context, tenantID, projectID, userID, applicant string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RemoveUserFromProject", ctx, tenantID, projectID, userID, applicant)
	ret0, _ := ret[0].(error)
	return ret0
}

// RemoveUserFromProject indicates an expected call of RemoveUserFromProject.
func (mr *MockClientMockRecorder) RemoveUserFromProject(ctx, tenantID, projectID, userID, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveUserFromProject", reflect.TypeOf((*MockClient)(nil).RemoveUserFromProject), ctx, tenantID, projectID, userID, applicant)
}

// RemoveUserFromTenant mocks base method.
func (m *MockClient) RemoveUserFromTenant(ctx context.Context, tenantID, userID, applicant string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RemoveUserFromTenant", ctx, tenantID, userID, applicant)
	ret0, _ := ret[0].(error)
	return ret0
}

// RemoveUserFromTenant indicates an expected call of RemoveUserFromTenant.
func (mr *MockClientMockRecorder) RemoveUserFromTenant(ctx, tenantID, userID, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveUserFromTenant", reflect.TypeOf((*MockClient)(nil).RemoveUserFromTenant), ctx, tenantID, userID, applicant)
}

// SendEmail mocks base method.
func (m *MockClient) SendEmail(ctx context.Context, req *account.SendEmailReq) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SendEmail", ctx, req)
	ret0, _ := ret[0].(error)
	return ret0
}

// SendEmail indicates an expected call of SendEmail.
func (mr *MockClientMockRecorder) SendEmail(ctx, req any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEmail", reflect.TypeOf((*MockClient)(nil).SendEmail), ctx, req)
}

// SendEmailByLabels mocks base method.
func (m *MockClient) SendEmailByLabels(ctx context.Context, req *account.SendEmailByLabelsReq) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SendEmailByLabels", ctx, req)
	ret0, _ := ret[0].(error)
	return ret0
}

// SendEmailByLabels indicates an expected call of SendEmailByLabels.
func (mr *MockClientMockRecorder) SendEmailByLabels(ctx, req any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEmailByLabels", reflect.TypeOf((*MockClient)(nil).SendEmailByLabels), ctx, req)
}

// UpdateFeatureWhitelist mocks base method.
func (m *MockClient) UpdateFeatureWhitelist(ctx context.Context, featureWl *FeatureWhitelistInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateFeatureWhitelist", ctx, featureWl)
	ret0, _ := ret[0].(error)
	return ret0
}

// UpdateFeatureWhitelist indicates an expected call of UpdateFeatureWhitelist.
func (mr *MockClientMockRecorder) UpdateFeatureWhitelist(ctx, featureWl any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateFeatureWhitelist", reflect.TypeOf((*MockClient)(nil).UpdateFeatureWhitelist), ctx, featureWl)
}

// UpdateTenant mocks base method.
func (m *MockClient) UpdateTenant(ctx context.Context, req *UpdateTenantReq, tenantID, applicant string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateTenant", ctx, req, tenantID, applicant)
	ret0, _ := ret[0].(error)
	return ret0
}

// UpdateTenant indicates an expected call of UpdateTenant.
func (mr *MockClientMockRecorder) UpdateTenant(ctx, req, tenantID, applicant any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTenant", reflect.TypeOf((*MockClient)(nil).UpdateTenant), ctx, req, tenantID, applicant)
}

// UpdateTenantKind mocks base method.
func (m *MockClient) UpdateTenantKind(ctx context.Context, id uint64, kind account.OrgKind) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateTenantKind", ctx, id, kind)
	ret0, _ := ret[0].(error)
	return ret0
}

// UpdateTenantKind indicates an expected call of UpdateTenantKind.
func (mr *MockClientMockRecorder) UpdateTenantKind(ctx, id, kind any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTenantKind", reflect.TypeOf((*MockClient)(nil).UpdateTenantKind), ctx, id, kind)
}
