// Automatically generated by MockGen. DO NOT EDIT!
// Source: strategy.go

package install

import (
	context "context"

	gomock "github.com/golang/mock/gomock"
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	types "k8s.io/apimachinery/pkg/types"
	v10 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
)

// Mock of APIServiceInterface interface
type MockAPIServiceInterface struct {
	ctrl     *gomock.Controller
	recorder *_MockAPIServiceInterfaceRecorder
}

// Recorder for MockAPIServiceInterface (not exported)
type _MockAPIServiceInterfaceRecorder struct {
	mock *MockAPIServiceInterface
}

func NewMockAPIServiceInterface(ctrl *gomock.Controller) *MockAPIServiceInterface {
	mock := &MockAPIServiceInterface{ctrl: ctrl}
	mock.recorder = &_MockAPIServiceInterfaceRecorder{mock}
	return mock
}

func (_m *MockAPIServiceInterface) EXPECT() *_MockAPIServiceInterfaceRecorder {
	return _m.recorder
}

func (_m *MockAPIServiceInterface) Get(ctx context.Context, name string, options v1.GetOptions) (*v10.APIService, error) {
	ret := _m.ctrl.Call(_m, "Get", ctx, name, options)
	ret0, _ := ret[0].(*v10.APIService)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

func (_mr *_MockAPIServiceInterfaceRecorder) Get(arg0, arg1, arg2 interface{}) *gomock.Call {
	return _mr.mock.ctrl.RecordCall(_mr.mock, "Get", arg0, arg1, arg2)
}

func (_m *MockAPIServiceInterface) Create(ctx context.Context, apiService *v10.APIService, opts v1.CreateOptions) (*v10.APIService, error) {
	ret := _m.ctrl.Call(_m, "Create", ctx, apiService, opts)
	ret0, _ := ret[0].(*v10.APIService)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

func (_mr *_MockAPIServiceInterfaceRecorder) Create(arg0, arg1, arg2 interface{}) *gomock.Call {
	return _mr.mock.ctrl.RecordCall(_mr.mock, "Create", arg0, arg1, arg2)
}

func (_m *MockAPIServiceInterface) Delete(ctx context.Context, name string, options v1.DeleteOptions) error {
	ret := _m.ctrl.Call(_m, "Delete", ctx, name, options)
	ret0, _ := ret[0].(error)
	return ret0
}

func (_mr *_MockAPIServiceInterfaceRecorder) Delete(arg0, arg1, arg2 interface{}) *gomock.Call {
	return _mr.mock.ctrl.RecordCall(_mr.mock, "Delete", arg0, arg1, arg2)
}

func (_m *MockAPIServiceInterface) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (*v10.APIService, error) {
	_s := []interface{}{ctx, name, pt, data, opts}
	for _, _x := range subresources {
		_s = append(_s, _x)
	}
	ret := _m.ctrl.Call(_m, "Patch", _s...)
	ret0, _ := ret[0].(*v10.APIService)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

func (_mr *_MockAPIServiceInterfaceRecorder) Patch(arg0, arg1, arg2, arg3, arg4 interface{}, arg5 ...interface{}) *gomock.Call {
	_s := append([]interface{}{arg0, arg1, arg2, arg3, arg4}, arg5...)
	return _mr.mock.ctrl.RecordCall(_mr.mock, "Patch", _s...)
}
