// Code generated by MockGen. DO NOT EDIT.
// Source: gitlab.com/gitlab-org/api/client-go (interfaces: TerraformStatesServiceInterface)
//
// Generated by this command:
//
//	mockgen -typed -destination=terraform_states_mock.go -package=testing gitlab.com/gitlab-org/api/client-go TerraformStatesServiceInterface
//

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

import (
	io "io"
	reflect "reflect"

	gitlab "gitlab.com/gitlab-org/api/client-go"
	gomock "go.uber.org/mock/gomock"
)

// MockTerraformStatesServiceInterface is a mock of TerraformStatesServiceInterface interface.
type MockTerraformStatesServiceInterface struct {
	ctrl     *gomock.Controller
	recorder *MockTerraformStatesServiceInterfaceMockRecorder
	isgomock struct{}
}

// MockTerraformStatesServiceInterfaceMockRecorder is the mock recorder for MockTerraformStatesServiceInterface.
type MockTerraformStatesServiceInterfaceMockRecorder struct {
	mock *MockTerraformStatesServiceInterface
}

// NewMockTerraformStatesServiceInterface creates a new mock instance.
func NewMockTerraformStatesServiceInterface(ctrl *gomock.Controller) *MockTerraformStatesServiceInterface {
	mock := &MockTerraformStatesServiceInterface{ctrl: ctrl}
	mock.recorder = &MockTerraformStatesServiceInterfaceMockRecorder{mock}
	return mock
}

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

// Delete mocks base method.
func (m *MockTerraformStatesServiceInterface) Delete(pid any, name string, options ...gitlab.RequestOptionFunc) (*gitlab.Response, error) {
	m.ctrl.T.Helper()
	varargs := []any{pid, name}
	for _, a := range options {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Delete", varargs...)
	ret0, _ := ret[0].(*gitlab.Response)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Delete indicates an expected call of Delete.
func (mr *MockTerraformStatesServiceInterfaceMockRecorder) Delete(pid, name any, options ...any) *MockTerraformStatesServiceInterfaceDeleteCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{pid, name}, options...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockTerraformStatesServiceInterface)(nil).Delete), varargs...)
	return &MockTerraformStatesServiceInterfaceDeleteCall{Call: call}
}

// MockTerraformStatesServiceInterfaceDeleteCall wrap *gomock.Call
type MockTerraformStatesServiceInterfaceDeleteCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockTerraformStatesServiceInterfaceDeleteCall) Return(arg0 *gitlab.Response, arg1 error) *MockTerraformStatesServiceInterfaceDeleteCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockTerraformStatesServiceInterfaceDeleteCall) Do(f func(any, string, ...gitlab.RequestOptionFunc) (*gitlab.Response, error)) *MockTerraformStatesServiceInterfaceDeleteCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockTerraformStatesServiceInterfaceDeleteCall) DoAndReturn(f func(any, string, ...gitlab.RequestOptionFunc) (*gitlab.Response, error)) *MockTerraformStatesServiceInterfaceDeleteCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// Download mocks base method.
func (m *MockTerraformStatesServiceInterface) Download(pid any, name string, serial uint64, options ...gitlab.RequestOptionFunc) (io.Reader, *gitlab.Response, error) {
	m.ctrl.T.Helper()
	varargs := []any{pid, name, serial}
	for _, a := range options {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Download", varargs...)
	ret0, _ := ret[0].(io.Reader)
	ret1, _ := ret[1].(*gitlab.Response)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// Download indicates an expected call of Download.
func (mr *MockTerraformStatesServiceInterfaceMockRecorder) Download(pid, name, serial any, options ...any) *MockTerraformStatesServiceInterfaceDownloadCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{pid, name, serial}, options...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Download", reflect.TypeOf((*MockTerraformStatesServiceInterface)(nil).Download), varargs...)
	return &MockTerraformStatesServiceInterfaceDownloadCall{Call: call}
}

// MockTerraformStatesServiceInterfaceDownloadCall wrap *gomock.Call
type MockTerraformStatesServiceInterfaceDownloadCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockTerraformStatesServiceInterfaceDownloadCall) Return(arg0 io.Reader, arg1 *gitlab.Response, arg2 error) *MockTerraformStatesServiceInterfaceDownloadCall {
	c.Call = c.Call.Return(arg0, arg1, arg2)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockTerraformStatesServiceInterfaceDownloadCall) Do(f func(any, string, uint64, ...gitlab.RequestOptionFunc) (io.Reader, *gitlab.Response, error)) *MockTerraformStatesServiceInterfaceDownloadCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockTerraformStatesServiceInterfaceDownloadCall) DoAndReturn(f func(any, string, uint64, ...gitlab.RequestOptionFunc) (io.Reader, *gitlab.Response, error)) *MockTerraformStatesServiceInterfaceDownloadCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// DownloadLatest mocks base method.
func (m *MockTerraformStatesServiceInterface) DownloadLatest(pid any, name string, options ...gitlab.RequestOptionFunc) (io.Reader, *gitlab.Response, error) {
	m.ctrl.T.Helper()
	varargs := []any{pid, name}
	for _, a := range options {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "DownloadLatest", varargs...)
	ret0, _ := ret[0].(io.Reader)
	ret1, _ := ret[1].(*gitlab.Response)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// DownloadLatest indicates an expected call of DownloadLatest.
func (mr *MockTerraformStatesServiceInterfaceMockRecorder) DownloadLatest(pid, name any, options ...any) *MockTerraformStatesServiceInterfaceDownloadLatestCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{pid, name}, options...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DownloadLatest", reflect.TypeOf((*MockTerraformStatesServiceInterface)(nil).DownloadLatest), varargs...)
	return &MockTerraformStatesServiceInterfaceDownloadLatestCall{Call: call}
}

// MockTerraformStatesServiceInterfaceDownloadLatestCall wrap *gomock.Call
type MockTerraformStatesServiceInterfaceDownloadLatestCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockTerraformStatesServiceInterfaceDownloadLatestCall) Return(arg0 io.Reader, arg1 *gitlab.Response, arg2 error) *MockTerraformStatesServiceInterfaceDownloadLatestCall {
	c.Call = c.Call.Return(arg0, arg1, arg2)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockTerraformStatesServiceInterfaceDownloadLatestCall) Do(f func(any, string, ...gitlab.RequestOptionFunc) (io.Reader, *gitlab.Response, error)) *MockTerraformStatesServiceInterfaceDownloadLatestCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockTerraformStatesServiceInterfaceDownloadLatestCall) DoAndReturn(f func(any, string, ...gitlab.RequestOptionFunc) (io.Reader, *gitlab.Response, error)) *MockTerraformStatesServiceInterfaceDownloadLatestCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// Get mocks base method.
func (m *MockTerraformStatesServiceInterface) Get(projectFullPath, name string) (*gitlab.TerraformState, *gitlab.Response, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Get", projectFullPath, name)
	ret0, _ := ret[0].(*gitlab.TerraformState)
	ret1, _ := ret[1].(*gitlab.Response)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// Get indicates an expected call of Get.
func (mr *MockTerraformStatesServiceInterfaceMockRecorder) Get(projectFullPath, name any) *MockTerraformStatesServiceInterfaceGetCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockTerraformStatesServiceInterface)(nil).Get), projectFullPath, name)
	return &MockTerraformStatesServiceInterfaceGetCall{Call: call}
}

// MockTerraformStatesServiceInterfaceGetCall wrap *gomock.Call
type MockTerraformStatesServiceInterfaceGetCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockTerraformStatesServiceInterfaceGetCall) Return(arg0 *gitlab.TerraformState, arg1 *gitlab.Response, arg2 error) *MockTerraformStatesServiceInterfaceGetCall {
	c.Call = c.Call.Return(arg0, arg1, arg2)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockTerraformStatesServiceInterfaceGetCall) Do(f func(string, string) (*gitlab.TerraformState, *gitlab.Response, error)) *MockTerraformStatesServiceInterfaceGetCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockTerraformStatesServiceInterfaceGetCall) DoAndReturn(f func(string, string) (*gitlab.TerraformState, *gitlab.Response, error)) *MockTerraformStatesServiceInterfaceGetCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// List mocks base method.
func (m *MockTerraformStatesServiceInterface) List(projectFullPath string) ([]gitlab.TerraformState, *gitlab.Response, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "List", projectFullPath)
	ret0, _ := ret[0].([]gitlab.TerraformState)
	ret1, _ := ret[1].(*gitlab.Response)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// List indicates an expected call of List.
func (mr *MockTerraformStatesServiceInterfaceMockRecorder) List(projectFullPath any) *MockTerraformStatesServiceInterfaceListCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockTerraformStatesServiceInterface)(nil).List), projectFullPath)
	return &MockTerraformStatesServiceInterfaceListCall{Call: call}
}

// MockTerraformStatesServiceInterfaceListCall wrap *gomock.Call
type MockTerraformStatesServiceInterfaceListCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockTerraformStatesServiceInterfaceListCall) Return(arg0 []gitlab.TerraformState, arg1 *gitlab.Response, arg2 error) *MockTerraformStatesServiceInterfaceListCall {
	c.Call = c.Call.Return(arg0, arg1, arg2)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockTerraformStatesServiceInterfaceListCall) Do(f func(string) ([]gitlab.TerraformState, *gitlab.Response, error)) *MockTerraformStatesServiceInterfaceListCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockTerraformStatesServiceInterfaceListCall) DoAndReturn(f func(string) ([]gitlab.TerraformState, *gitlab.Response, error)) *MockTerraformStatesServiceInterfaceListCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// Lock mocks base method.
func (m *MockTerraformStatesServiceInterface) Lock(pid any, name string, options ...gitlab.RequestOptionFunc) (*gitlab.Response, error) {
	m.ctrl.T.Helper()
	varargs := []any{pid, name}
	for _, a := range options {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Lock", varargs...)
	ret0, _ := ret[0].(*gitlab.Response)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Lock indicates an expected call of Lock.
func (mr *MockTerraformStatesServiceInterfaceMockRecorder) Lock(pid, name any, options ...any) *MockTerraformStatesServiceInterfaceLockCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{pid, name}, options...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Lock", reflect.TypeOf((*MockTerraformStatesServiceInterface)(nil).Lock), varargs...)
	return &MockTerraformStatesServiceInterfaceLockCall{Call: call}
}

// MockTerraformStatesServiceInterfaceLockCall wrap *gomock.Call
type MockTerraformStatesServiceInterfaceLockCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockTerraformStatesServiceInterfaceLockCall) Return(arg0 *gitlab.Response, arg1 error) *MockTerraformStatesServiceInterfaceLockCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockTerraformStatesServiceInterfaceLockCall) Do(f func(any, string, ...gitlab.RequestOptionFunc) (*gitlab.Response, error)) *MockTerraformStatesServiceInterfaceLockCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockTerraformStatesServiceInterfaceLockCall) DoAndReturn(f func(any, string, ...gitlab.RequestOptionFunc) (*gitlab.Response, error)) *MockTerraformStatesServiceInterfaceLockCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// Unlock mocks base method.
func (m *MockTerraformStatesServiceInterface) Unlock(pid any, name string, options ...gitlab.RequestOptionFunc) (*gitlab.Response, error) {
	m.ctrl.T.Helper()
	varargs := []any{pid, name}
	for _, a := range options {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Unlock", varargs...)
	ret0, _ := ret[0].(*gitlab.Response)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Unlock indicates an expected call of Unlock.
func (mr *MockTerraformStatesServiceInterfaceMockRecorder) Unlock(pid, name any, options ...any) *MockTerraformStatesServiceInterfaceUnlockCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{pid, name}, options...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unlock", reflect.TypeOf((*MockTerraformStatesServiceInterface)(nil).Unlock), varargs...)
	return &MockTerraformStatesServiceInterfaceUnlockCall{Call: call}
}

// MockTerraformStatesServiceInterfaceUnlockCall wrap *gomock.Call
type MockTerraformStatesServiceInterfaceUnlockCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockTerraformStatesServiceInterfaceUnlockCall) Return(arg0 *gitlab.Response, arg1 error) *MockTerraformStatesServiceInterfaceUnlockCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockTerraformStatesServiceInterfaceUnlockCall) Do(f func(any, string, ...gitlab.RequestOptionFunc) (*gitlab.Response, error)) *MockTerraformStatesServiceInterfaceUnlockCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockTerraformStatesServiceInterfaceUnlockCall) DoAndReturn(f func(any, string, ...gitlab.RequestOptionFunc) (*gitlab.Response, error)) *MockTerraformStatesServiceInterfaceUnlockCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
