// Code generated by mockery v2.53.3. DO NOT EDIT.

package mock

import (
	context "context"

	mock "github.com/stretchr/testify/mock"
	dedicatedv1 "github.com/tidbcloud/infra-provider/api/tidbcloud/regional-server/v1"

	regionalapi "github.com/tidbcloud/dataflow-service/pkg/regional-api"

	v1 "github.com/tidbcloud/infra-api/api/v1"

	v1alpha1 "github.com/tidbcloud/eks-provider/api/v1alpha1"
)

// TCIDMHTTPClient is an autogenerated mock type for the TCIDMHTTPClient type
type TCIDMHTTPClient struct {
	mock.Mock
}

// CreateDMJobIgnoreExists provides a mock function with given fields: ctx, in
func (_m *TCIDMHTTPClient) CreateDMJobIgnoreExists(ctx context.Context, in *v1alpha1.DMJob) error {
	ret := _m.Called(ctx, in)

	if len(ret) == 0 {
		panic("no return value specified for CreateDMJobIgnoreExists")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, *v1alpha1.DMJob) error); ok {
		r0 = rf(ctx, in)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// CreateImportIgnoreExists provides a mock function with given fields: ctx, in
func (_m *TCIDMHTTPClient) CreateImportIgnoreExists(ctx context.Context, in *v1.Import) error {
	ret := _m.Called(ctx, in)

	if len(ret) == 0 {
		panic("no return value specified for CreateImportIgnoreExists")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, *v1.Import) error); ok {
		r0 = rf(ctx, in)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// CreatePrivateLinkEndpointIgnoreExists provides a mock function with given fields: ctx, in
func (_m *TCIDMHTTPClient) CreatePrivateLinkEndpointIgnoreExists(ctx context.Context, in *v1alpha1.PrivateLinkEndpoint) error {
	ret := _m.Called(ctx, in)

	if len(ret) == 0 {
		panic("no return value specified for CreatePrivateLinkEndpointIgnoreExists")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, *v1alpha1.PrivateLinkEndpoint) error); ok {
		r0 = rf(ctx, in)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// DelDMJobIgnoreNotExists provides a mock function with given fields: ctx, ns, name
func (_m *TCIDMHTTPClient) DelDMJobIgnoreNotExists(ctx context.Context, ns string, name string) error {
	ret := _m.Called(ctx, ns, name)

	if len(ret) == 0 {
		panic("no return value specified for DelDMJobIgnoreNotExists")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok {
		r0 = rf(ctx, ns, name)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// DelImportIgnoreNotExists provides a mock function with given fields: ctx, ns, name
func (_m *TCIDMHTTPClient) DelImportIgnoreNotExists(ctx context.Context, ns string, name string) error {
	ret := _m.Called(ctx, ns, name)

	if len(ret) == 0 {
		panic("no return value specified for DelImportIgnoreNotExists")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok {
		r0 = rf(ctx, ns, name)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// DeletePrivateLinkEndpointIgnoreExists provides a mock function with given fields: ctx, ns, name
func (_m *TCIDMHTTPClient) DeletePrivateLinkEndpointIgnoreExists(ctx context.Context, ns string, name string) error {
	ret := _m.Called(ctx, ns, name)

	if len(ret) == 0 {
		panic("no return value specified for DeletePrivateLinkEndpointIgnoreExists")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok {
		r0 = rf(ctx, ns, name)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// GetClusterRole provides a mock function with given fields: ctx, clusterID
func (_m *TCIDMHTTPClient) GetClusterRole(ctx context.Context, clusterID uint64) (*dedicatedv1.ClusterRole, error) {
	ret := _m.Called(ctx, clusterID)

	if len(ret) == 0 {
		panic("no return value specified for GetClusterRole")
	}

	var r0 *dedicatedv1.ClusterRole
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, uint64) (*dedicatedv1.ClusterRole, error)); ok {
		return rf(ctx, clusterID)
	}
	if rf, ok := ret.Get(0).(func(context.Context, uint64) *dedicatedv1.ClusterRole); ok {
		r0 = rf(ctx, clusterID)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*dedicatedv1.ClusterRole)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, uint64) error); ok {
		r1 = rf(ctx, clusterID)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetDMJob provides a mock function with given fields: ctx, ns, name
func (_m *TCIDMHTTPClient) GetDMJob(ctx context.Context, ns string, name string) (*v1alpha1.DMJob, error) {
	ret := _m.Called(ctx, ns, name)

	if len(ret) == 0 {
		panic("no return value specified for GetDMJob")
	}

	var r0 *v1alpha1.DMJob
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string) (*v1alpha1.DMJob, error)); ok {
		return rf(ctx, ns, name)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, string) *v1alpha1.DMJob); ok {
		r0 = rf(ctx, ns, name)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*v1alpha1.DMJob)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok {
		r1 = rf(ctx, ns, name)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetImport provides a mock function with given fields: ctx, ns, name
func (_m *TCIDMHTTPClient) GetImport(ctx context.Context, ns string, name string) (*v1.Import, error) {
	ret := _m.Called(ctx, ns, name)

	if len(ret) == 0 {
		panic("no return value specified for GetImport")
	}

	var r0 *v1.Import
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string) (*v1.Import, error)); ok {
		return rf(ctx, ns, name)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, string) *v1.Import); ok {
		r0 = rf(ctx, ns, name)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*v1.Import)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok {
		r1 = rf(ctx, ns, name)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetPrivateLinkEndpoint provides a mock function with given fields: ctx, ns, name
func (_m *TCIDMHTTPClient) GetPrivateLinkEndpoint(ctx context.Context, ns string, name string) (*v1alpha1.PrivateLinkEndpoint, error) {
	ret := _m.Called(ctx, ns, name)

	if len(ret) == 0 {
		panic("no return value specified for GetPrivateLinkEndpoint")
	}

	var r0 *v1alpha1.PrivateLinkEndpoint
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string) (*v1alpha1.PrivateLinkEndpoint, error)); ok {
		return rf(ctx, ns, name)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, string) *v1alpha1.PrivateLinkEndpoint); ok {
		r0 = rf(ctx, ns, name)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*v1alpha1.PrivateLinkEndpoint)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok {
		r1 = rf(ctx, ns, name)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ListVPCs provides a mock function with given fields: ctx, orgID, projectID, clusterID, statuses
func (_m *TCIDMHTTPClient) ListVPCs(ctx context.Context, orgID uint64, projectID uint64, clusterID uint64, statuses []regionalapi.VPCStatus) ([]regionalapi.RegionalNetwork, error) {
	ret := _m.Called(ctx, orgID, projectID, clusterID, statuses)

	if len(ret) == 0 {
		panic("no return value specified for ListVPCs")
	}

	var r0 []regionalapi.RegionalNetwork
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, uint64, uint64, uint64, []regionalapi.VPCStatus) ([]regionalapi.RegionalNetwork, error)); ok {
		return rf(ctx, orgID, projectID, clusterID, statuses)
	}
	if rf, ok := ret.Get(0).(func(context.Context, uint64, uint64, uint64, []regionalapi.VPCStatus) []regionalapi.RegionalNetwork); ok {
		r0 = rf(ctx, orgID, projectID, clusterID, statuses)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]regionalapi.RegionalNetwork)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, uint64, uint64, uint64, []regionalapi.VPCStatus) error); ok {
		r1 = rf(ctx, orgID, projectID, clusterID, statuses)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ProxyDELETE provides a mock function with given fields: ctx, url, header
func (_m *TCIDMHTTPClient) ProxyDELETE(ctx context.Context, url string, header map[string]string) ([]byte, error) {
	ret := _m.Called(ctx, url, header)

	if len(ret) == 0 {
		panic("no return value specified for ProxyDELETE")
	}

	var r0 []byte
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, map[string]string) ([]byte, error)); ok {
		return rf(ctx, url, header)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, map[string]string) []byte); ok {
		r0 = rf(ctx, url, header)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]byte)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, map[string]string) error); ok {
		r1 = rf(ctx, url, header)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ProxyGET provides a mock function with given fields: ctx, path, header
func (_m *TCIDMHTTPClient) ProxyGET(ctx context.Context, path string, header map[string]string) ([]byte, error) {
	ret := _m.Called(ctx, path, header)

	if len(ret) == 0 {
		panic("no return value specified for ProxyGET")
	}

	var r0 []byte
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, map[string]string) ([]byte, error)); ok {
		return rf(ctx, path, header)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, map[string]string) []byte); ok {
		r0 = rf(ctx, path, header)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]byte)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, map[string]string) error); ok {
		r1 = rf(ctx, path, header)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ProxyPOST provides a mock function with given fields: ctx, path, data, header
func (_m *TCIDMHTTPClient) ProxyPOST(ctx context.Context, path string, data interface{}, header map[string]string) ([]byte, error) {
	ret := _m.Called(ctx, path, data, header)

	if len(ret) == 0 {
		panic("no return value specified for ProxyPOST")
	}

	var r0 []byte
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, interface{}, map[string]string) ([]byte, error)); ok {
		return rf(ctx, path, data, header)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, interface{}, map[string]string) []byte); ok {
		r0 = rf(ctx, path, data, header)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]byte)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, interface{}, map[string]string) error); ok {
		r1 = rf(ctx, path, data, header)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ProxyPUT provides a mock function with given fields: ctx, path, data, header
func (_m *TCIDMHTTPClient) ProxyPUT(ctx context.Context, path string, data interface{}, header map[string]string) ([]byte, error) {
	ret := _m.Called(ctx, path, data, header)

	if len(ret) == 0 {
		panic("no return value specified for ProxyPUT")
	}

	var r0 []byte
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, interface{}, map[string]string) ([]byte, error)); ok {
		return rf(ctx, path, data, header)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, interface{}, map[string]string) []byte); ok {
		r0 = rf(ctx, path, data, header)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]byte)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, interface{}, map[string]string) error); ok {
		r1 = rf(ctx, path, data, header)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// SetResponseHandler provides a mock function with given fields: handler
func (_m *TCIDMHTTPClient) SetResponseHandler(handler regionalapi.ResponseHandler) regionalapi.TCIDMHTTPClient {
	ret := _m.Called(handler)

	if len(ret) == 0 {
		panic("no return value specified for SetResponseHandler")
	}

	var r0 regionalapi.TCIDMHTTPClient
	if rf, ok := ret.Get(0).(func(regionalapi.ResponseHandler) regionalapi.TCIDMHTTPClient); ok {
		r0 = rf(handler)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(regionalapi.TCIDMHTTPClient)
		}
	}

	return r0
}

// UpdateDMJob provides a mock function with given fields: ctx, in
func (_m *TCIDMHTTPClient) UpdateDMJob(ctx context.Context, in *v1alpha1.DMJob) error {
	ret := _m.Called(ctx, in)

	if len(ret) == 0 {
		panic("no return value specified for UpdateDMJob")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, *v1alpha1.DMJob) error); ok {
		r0 = rf(ctx, in)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// NewTCIDMHTTPClient creates a new instance of TCIDMHTTPClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
// The first argument is typically a *testing.T value.
func NewTCIDMHTTPClient(t interface {
	mock.TestingT
	Cleanup(func())
}) *TCIDMHTTPClient {
	mock := &TCIDMHTTPClient{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}
