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

package mock

import (
	context "context"

	aws_facade "github.com/tidbcloud/dataflow-service/app/internal/aws_facade"

	mock "github.com/stretchr/testify/mock"
)

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

// CancelJob provides a mock function with given fields: ctx, region, accountID, jobID
func (_m *BatchOpsClient) CancelJob(ctx context.Context, region string, accountID string, jobID string) error {
	ret := _m.Called(ctx, region, accountID, jobID)

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

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

	return r0
}

// CreateCopyJob provides a mock function with given fields: ctx, region, params
func (_m *BatchOpsClient) CreateCopyJob(ctx context.Context, region string, params *aws_facade.CreateCopyJobParams) (string, error) {
	ret := _m.Called(ctx, region, params)

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

	var r0 string
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, *aws_facade.CreateCopyJobParams) (string, error)); ok {
		return rf(ctx, region, params)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, *aws_facade.CreateCopyJobParams) string); ok {
		r0 = rf(ctx, region, params)
	} else {
		r0 = ret.Get(0).(string)
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, *aws_facade.CreateCopyJobParams) error); ok {
		r1 = rf(ctx, region, params)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// DescribeJob provides a mock function with given fields: ctx, region, accountID, jobID
func (_m *BatchOpsClient) DescribeJob(ctx context.Context, region string, accountID string, jobID string) (*aws_facade.JobStatus, error) {
	ret := _m.Called(ctx, region, accountID, jobID)

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

	var r0 *aws_facade.JobStatus
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string, string) (*aws_facade.JobStatus, error)); ok {
		return rf(ctx, region, accountID, jobID)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, string, string) *aws_facade.JobStatus); ok {
		r0 = rf(ctx, region, accountID, jobID)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*aws_facade.JobStatus)
		}
	}

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

	return r0, r1
}

// GenerateAndUploadManifest provides a mock function with given fields: ctx, region, accountID, sourceBucket, sourcePrefix, manifestBucket, manifestKey
func (_m *BatchOpsClient) GenerateAndUploadManifest(ctx context.Context, region string, accountID string, sourceBucket string, sourcePrefix string, manifestBucket string, manifestKey string) (string, error) {
	ret := _m.Called(ctx, region, accountID, sourceBucket, sourcePrefix, manifestBucket, manifestKey)

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

	var r0 string
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string, string, string, string, string) (string, error)); ok {
		return rf(ctx, region, accountID, sourceBucket, sourcePrefix, manifestBucket, manifestKey)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, string, string, string, string, string) string); ok {
		r0 = rf(ctx, region, accountID, sourceBucket, sourcePrefix, manifestBucket, manifestKey)
	} else {
		r0 = ret.Get(0).(string)
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, string, string, string, string, string) error); ok {
		r1 = rf(ctx, region, accountID, sourceBucket, sourcePrefix, manifestBucket, manifestKey)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GenerateServiceRole provides a mock function with given fields: ctx, accountID, projectId, clusterId
func (_m *BatchOpsClient) GenerateServiceRole(ctx context.Context, accountID string, projectId uint64, clusterId uint64) string {
	ret := _m.Called(ctx, accountID, projectId, clusterId)

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

	var r0 string
	if rf, ok := ret.Get(0).(func(context.Context, string, uint64, uint64) string); ok {
		r0 = rf(ctx, accountID, projectId, clusterId)
	} else {
		r0 = ret.Get(0).(string)
	}

	return r0
}

// UploadManifest provides a mock function with given fields: ctx, region, accountID, bucket, key, content
func (_m *BatchOpsClient) UploadManifest(ctx context.Context, region string, accountID string, bucket string, key string, content string) (string, error) {
	ret := _m.Called(ctx, region, accountID, bucket, key, content)

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

	var r0 string
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string, string, string, string) (string, error)); ok {
		return rf(ctx, region, accountID, bucket, key, content)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, string, string, string, string) string); ok {
		r0 = rf(ctx, region, accountID, bucket, key, content)
	} else {
		r0 = ret.Get(0).(string)
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, string, string, string, string) error); ok {
		r1 = rf(ctx, region, accountID, bucket, key, content)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// NewBatchOpsClient creates a new instance of BatchOpsClient. 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 NewBatchOpsClient(t interface {
	mock.TestingT
	Cleanup(func())
}) *BatchOpsClient {
	mock := &BatchOpsClient{}
	mock.Mock.Test(t)

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

	return mock
}
