// Code generated by MockGen. DO NOT EDIT.
// Source: S3Client.go
//
// Generated by this command:
//
//	mockgen -source=S3Client.go -package=mock_awss3 -destination=./mock_awss3/mock_S3Client.go
//

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

import (
	context "context"
	reflect "reflect"

	v4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
	s3 "github.com/aws/aws-sdk-go-v2/service/s3"
	bizerr "github.com/tidbcloud/tidb-management-service/utilities/bizerr"
	gomock "go.uber.org/mock/gomock"
)

// MockPresignClient is a mock of PresignClient interface.
type MockPresignClient struct {
	ctrl     *gomock.Controller
	recorder *MockPresignClientMockRecorder
	isgomock struct{}
}

// MockPresignClientMockRecorder is the mock recorder for MockPresignClient.
type MockPresignClientMockRecorder struct {
	mock *MockPresignClient
}

// NewMockPresignClient creates a new mock instance.
func NewMockPresignClient(ctrl *gomock.Controller) *MockPresignClient {
	mock := &MockPresignClient{ctrl: ctrl}
	mock.recorder = &MockPresignClientMockRecorder{mock}
	return mock
}

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

// PresignGetObject mocks base method.
func (m *MockPresignClient) PresignGetObject(ctx context.Context, params *s3.GetObjectInput, optFns ...func(*s3.PresignOptions)) (*v4.PresignedHTTPRequest, bizerr.BizError) {
	m.ctrl.T.Helper()
	varargs := []any{ctx, params}
	for _, a := range optFns {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "PresignGetObject", varargs...)
	ret0, _ := ret[0].(*v4.PresignedHTTPRequest)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

// PresignGetObject indicates an expected call of PresignGetObject.
func (mr *MockPresignClientMockRecorder) PresignGetObject(ctx, params any, optFns ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, params}, optFns...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PresignGetObject", reflect.TypeOf((*MockPresignClient)(nil).PresignGetObject), varargs...)
}

// MockGetClient is a mock of GetClient interface.
type MockGetClient struct {
	ctrl     *gomock.Controller
	recorder *MockGetClientMockRecorder
	isgomock struct{}
}

// MockGetClientMockRecorder is the mock recorder for MockGetClient.
type MockGetClientMockRecorder struct {
	mock *MockGetClient
}

// NewMockGetClient creates a new mock instance.
func NewMockGetClient(ctrl *gomock.Controller) *MockGetClient {
	mock := &MockGetClient{ctrl: ctrl}
	mock.recorder = &MockGetClientMockRecorder{mock}
	return mock
}

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

// GetObject mocks base method.
func (m *MockGetClient) GetObject(ctx context.Context, params *s3.GetObjectInput, optFns ...func(*s3.Options)) (*s3.GetObjectOutput, bizerr.BizError) {
	m.ctrl.T.Helper()
	varargs := []any{ctx, params}
	for _, a := range optFns {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "GetObject", varargs...)
	ret0, _ := ret[0].(*s3.GetObjectOutput)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

// GetObject indicates an expected call of GetObject.
func (mr *MockGetClientMockRecorder) GetObject(ctx, params any, optFns ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, params}, optFns...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObject", reflect.TypeOf((*MockGetClient)(nil).GetObject), varargs...)
}

// PutObject mocks base method.
func (m *MockGetClient) PutObject(ctx context.Context, params *s3.PutObjectInput, optFns ...func(*s3.Options)) (*s3.PutObjectOutput, bizerr.BizError) {
	m.ctrl.T.Helper()
	varargs := []any{ctx, params}
	for _, a := range optFns {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "PutObject", varargs...)
	ret0, _ := ret[0].(*s3.PutObjectOutput)
	ret1, _ := ret[1].(bizerr.BizError)
	return ret0, ret1
}

// PutObject indicates an expected call of PutObject.
func (mr *MockGetClientMockRecorder) PutObject(ctx, params any, optFns ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, params}, optFns...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObject", reflect.TypeOf((*MockGetClient)(nil).PutObject), varargs...)
}
