// Code generated by MockGen. DO NOT EDIT.
// Source: pkg/storage/object/s3/s3.go
//
// Generated by this command:
//
//	mockgen -source=pkg/storage/object/s3/s3.go -destination=pkg/mocks/mock_storage_object_s3.go -package=mocks
//

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

import (
	context "context"
	io "io"
	multipart "mime/multipart"
	reflect "reflect"
	time "time"

	s3 "github.com/aws/aws-sdk-go-v2/service/s3"
	gomock "go.uber.org/mock/gomock"
)

// MockS3ObjectStorage is a mock of S3ObjectStorage interface.
type MockS3ObjectStorage struct {
	ctrl     *gomock.Controller
	recorder *MockS3ObjectStorageMockRecorder
	isgomock struct{}
}

// MockS3ObjectStorageMockRecorder is the mock recorder for MockS3ObjectStorage.
type MockS3ObjectStorageMockRecorder struct {
	mock *MockS3ObjectStorage
}

// NewMockS3ObjectStorage creates a new mock instance.
func NewMockS3ObjectStorage(ctrl *gomock.Controller) *MockS3ObjectStorage {
	mock := &MockS3ObjectStorage{ctrl: ctrl}
	mock.recorder = &MockS3ObjectStorageMockRecorder{mock}
	return mock
}

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

// BucketExists mocks base method.
func (m *MockS3ObjectStorage) BucketExists(ctx context.Context, bucketName string) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "BucketExists", ctx, bucketName)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// BucketExists indicates an expected call of BucketExists.
func (mr *MockS3ObjectStorageMockRecorder) BucketExists(ctx, bucketName any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BucketExists", reflect.TypeOf((*MockS3ObjectStorage)(nil).BucketExists), ctx, bucketName)
}

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

// Copy indicates an expected call of Copy.
func (mr *MockS3ObjectStorageMockRecorder) Copy(ctx, sourceObjectKey, destinationObjectKey any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Copy", reflect.TypeOf((*MockS3ObjectStorage)(nil).Copy), ctx, sourceObjectKey, destinationObjectKey)
}

// CopyWithVisibility mocks base method.
func (m *MockS3ObjectStorage) CopyWithVisibility(ctx context.Context, sourceObjectKey, destinationObjectKey string, isPublic bool) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CopyWithVisibility", ctx, sourceObjectKey, destinationObjectKey, isPublic)
	ret0, _ := ret[0].(error)
	return ret0
}

// CopyWithVisibility indicates an expected call of CopyWithVisibility.
func (mr *MockS3ObjectStorageMockRecorder) CopyWithVisibility(ctx, sourceObjectKey, destinationObjectKey, isPublic any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CopyWithVisibility", reflect.TypeOf((*MockS3ObjectStorage)(nil).CopyWithVisibility), ctx, sourceObjectKey, destinationObjectKey, isPublic)
}

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

// Cut indicates an expected call of Cut.
func (mr *MockS3ObjectStorageMockRecorder) Cut(ctx, sourceObjectKey, destinationObjectKey any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Cut", reflect.TypeOf((*MockS3ObjectStorage)(nil).Cut), ctx, sourceObjectKey, destinationObjectKey)
}

// CutWithVisibility mocks base method.
func (m *MockS3ObjectStorage) CutWithVisibility(ctx context.Context, sourceObjectKey, destinationObjectKey string, isPublic bool) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CutWithVisibility", ctx, sourceObjectKey, destinationObjectKey, isPublic)
	ret0, _ := ret[0].(error)
	return ret0
}

// CutWithVisibility indicates an expected call of CutWithVisibility.
func (mr *MockS3ObjectStorageMockRecorder) CutWithVisibility(ctx, sourceObjectKey, destinationObjectKey, isPublic any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CutWithVisibility", reflect.TypeOf((*MockS3ObjectStorage)(nil).CutWithVisibility), ctx, sourceObjectKey, destinationObjectKey, isPublic)
}

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

// DeleteByKeys indicates an expected call of DeleteByKeys.
func (mr *MockS3ObjectStorageMockRecorder) DeleteByKeys(ctx, key any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteByKeys", reflect.TypeOf((*MockS3ObjectStorage)(nil).DeleteByKeys), ctx, key)
}

// DownloadToLocalfile mocks base method.
func (m *MockS3ObjectStorage) DownloadToLocalfile(ctx context.Context, objectKey, filePath string) (string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DownloadToLocalfile", ctx, objectKey, filePath)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// DownloadToLocalfile indicates an expected call of DownloadToLocalfile.
func (mr *MockS3ObjectStorageMockRecorder) DownloadToLocalfile(ctx, objectKey, filePath any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DownloadToLocalfile", reflect.TypeOf((*MockS3ObjectStorage)(nil).DownloadToLocalfile), ctx, objectKey, filePath)
}

// FindMatchingObjectKey mocks base method.
func (m *MockS3ObjectStorage) FindMatchingObjectKey(s3Objects *s3.ListObjectsOutput, partialKey string) string {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "FindMatchingObjectKey", s3Objects, partialKey)
	ret0, _ := ret[0].(string)
	return ret0
}

// FindMatchingObjectKey indicates an expected call of FindMatchingObjectKey.
func (mr *MockS3ObjectStorageMockRecorder) FindMatchingObjectKey(s3Objects, partialKey any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindMatchingObjectKey", reflect.TypeOf((*MockS3ObjectStorage)(nil).FindMatchingObjectKey), s3Objects, partialKey)
}

// GeneratePresignedUploadURL mocks base method.
func (m *MockS3ObjectStorage) GeneratePresignedUploadURL(ctx context.Context, key string, duration time.Duration) (string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GeneratePresignedUploadURL", ctx, key, duration)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GeneratePresignedUploadURL indicates an expected call of GeneratePresignedUploadURL.
func (mr *MockS3ObjectStorageMockRecorder) GeneratePresignedUploadURL(ctx, key, duration any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GeneratePresignedUploadURL", reflect.TypeOf((*MockS3ObjectStorage)(nil).GeneratePresignedUploadURL), ctx, key, duration)
}

// GetBinaryData mocks base method.
func (m *MockS3ObjectStorage) GetBinaryData(ctx context.Context, objectKey string) (io.ReadCloser, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetBinaryData", ctx, objectKey)
	ret0, _ := ret[0].(io.ReadCloser)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetBinaryData indicates an expected call of GetBinaryData.
func (mr *MockS3ObjectStorageMockRecorder) GetBinaryData(ctx, objectKey any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBinaryData", reflect.TypeOf((*MockS3ObjectStorage)(nil).GetBinaryData), ctx, objectKey)
}

// GetDownloadablePresignedURL mocks base method.
func (m *MockS3ObjectStorage) GetDownloadablePresignedURL(ctx context.Context, key string, duration time.Duration) (string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetDownloadablePresignedURL", ctx, key, duration)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetDownloadablePresignedURL indicates an expected call of GetDownloadablePresignedURL.
func (mr *MockS3ObjectStorageMockRecorder) GetDownloadablePresignedURL(ctx, key, duration any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDownloadablePresignedURL", reflect.TypeOf((*MockS3ObjectStorage)(nil).GetDownloadablePresignedURL), ctx, key, duration)
}

// GetObjectSize mocks base method.
func (m *MockS3ObjectStorage) GetObjectSize(ctx context.Context, key string) (int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetObjectSize", ctx, key)
	ret0, _ := ret[0].(int64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetObjectSize indicates an expected call of GetObjectSize.
func (mr *MockS3ObjectStorageMockRecorder) GetObjectSize(ctx, key any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectSize", reflect.TypeOf((*MockS3ObjectStorage)(nil).GetObjectSize), ctx, key)
}

// IsPublicBucket mocks base method.
func (m *MockS3ObjectStorage) IsPublicBucket() bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "IsPublicBucket")
	ret0, _ := ret[0].(bool)
	return ret0
}

// IsPublicBucket indicates an expected call of IsPublicBucket.
func (mr *MockS3ObjectStorageMockRecorder) IsPublicBucket() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsPublicBucket", reflect.TypeOf((*MockS3ObjectStorage)(nil).IsPublicBucket))
}

// ListAllObjects mocks base method.
func (m *MockS3ObjectStorage) ListAllObjects(ctx context.Context) (*s3.ListObjectsOutput, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListAllObjects", ctx)
	ret0, _ := ret[0].(*s3.ListObjectsOutput)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// ObjectExists mocks base method.
func (m *MockS3ObjectStorage) ObjectExists(ctx context.Context, key string) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ObjectExists", ctx, key)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ObjectExists indicates an expected call of ObjectExists.
func (mr *MockS3ObjectStorageMockRecorder) ObjectExists(ctx, key any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ObjectExists", reflect.TypeOf((*MockS3ObjectStorage)(nil).ObjectExists), ctx, key)
}

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

// UploadContent indicates an expected call of UploadContent.
func (mr *MockS3ObjectStorageMockRecorder) UploadContent(ctx, objectKey, content any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadContent", reflect.TypeOf((*MockS3ObjectStorage)(nil).UploadContent), ctx, objectKey, content)
}

// UploadContentFromMulipart mocks base method.
func (m *MockS3ObjectStorage) UploadContentFromMulipart(ctx context.Context, objectKey string, file multipart.File) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UploadContentFromMulipart", ctx, objectKey, file)
	ret0, _ := ret[0].(error)
	return ret0
}

// UploadContentFromMulipart indicates an expected call of UploadContentFromMulipart.
func (mr *MockS3ObjectStorageMockRecorder) UploadContentFromMulipart(ctx, objectKey, file any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadContentFromMulipart", reflect.TypeOf((*MockS3ObjectStorage)(nil).UploadContentFromMulipart), ctx, objectKey, file)
}

// UploadContentFromMulipartWithVisibility mocks base method.
func (m *MockS3ObjectStorage) UploadContentFromMulipartWithVisibility(ctx context.Context, objectKey string, file multipart.File, isPublic bool) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UploadContentFromMulipartWithVisibility", ctx, objectKey, file, isPublic)
	ret0, _ := ret[0].(error)
	return ret0
}

// UploadContentFromMulipartWithVisibility indicates an expected call of UploadContentFromMulipartWithVisibility.
func (mr *MockS3ObjectStorageMockRecorder) UploadContentFromMulipartWithVisibility(ctx, objectKey, file, isPublic any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadContentFromMulipartWithVisibility", reflect.TypeOf((*MockS3ObjectStorage)(nil).UploadContentFromMulipartWithVisibility), ctx, objectKey, file, isPublic)
}

// UploadContentWithVisibility mocks base method.
func (m *MockS3ObjectStorage) UploadContentWithVisibility(ctx context.Context, objectKey string, content []byte, isPublic bool) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UploadContentWithVisibility", ctx, objectKey, content, isPublic)
	ret0, _ := ret[0].(error)
	return ret0
}

// UploadContentWithVisibility indicates an expected call of UploadContentWithVisibility.
func (mr *MockS3ObjectStorageMockRecorder) UploadContentWithVisibility(ctx, objectKey, content, isPublic any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadContentWithVisibility", reflect.TypeOf((*MockS3ObjectStorage)(nil).UploadContentWithVisibility), ctx, objectKey, content, isPublic)
}
