// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License"). You may
// not use this file except in compliance with the License. A copy of the
// License is located at
//
//     http://aws.amazon.com/apache2.0/
//
// or in the "license" file accompanying this file. This file is distributed
// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
// express or implied. See the License for the specific language governing
// permissions and limitations under the License.
//

// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/aws/amazon-ecs-agent/ecs-agent/acs/session (interfaces: ENIHandler,ResourceHandler,CredentialsMetadataSetter,PayloadMessageHandler,ManifestMessageIDAccessor,TaskComparer,SequenceNumberAccessor,TaskStopper)

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

import (
	reflect "reflect"

	ecsacs "github.com/aws/amazon-ecs-agent/ecs-agent/acs/model/ecsacs"
	resource "github.com/aws/amazon-ecs-agent/ecs-agent/api/attachment/resource"
	networkinterface "github.com/aws/amazon-ecs-agent/ecs-agent/netlib/model/networkinterface"
	gomock "github.com/golang/mock/gomock"
)

// MockENIHandler is a mock of ENIHandler interface.
type MockENIHandler struct {
	ctrl     *gomock.Controller
	recorder *MockENIHandlerMockRecorder
}

// MockENIHandlerMockRecorder is the mock recorder for MockENIHandler.
type MockENIHandlerMockRecorder struct {
	mock *MockENIHandler
}

// NewMockENIHandler creates a new mock instance.
func NewMockENIHandler(ctrl *gomock.Controller) *MockENIHandler {
	mock := &MockENIHandler{ctrl: ctrl}
	mock.recorder = &MockENIHandlerMockRecorder{mock}
	return mock
}

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

// HandleENIAttachment mocks base method.
func (m *MockENIHandler) HandleENIAttachment(arg0 *networkinterface.ENIAttachment) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "HandleENIAttachment", arg0)
	ret0, _ := ret[0].(error)
	return ret0
}

// HandleENIAttachment indicates an expected call of HandleENIAttachment.
func (mr *MockENIHandlerMockRecorder) HandleENIAttachment(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleENIAttachment", reflect.TypeOf((*MockENIHandler)(nil).HandleENIAttachment), arg0)
}

// MockResourceHandler is a mock of ResourceHandler interface.
type MockResourceHandler struct {
	ctrl     *gomock.Controller
	recorder *MockResourceHandlerMockRecorder
}

// MockResourceHandlerMockRecorder is the mock recorder for MockResourceHandler.
type MockResourceHandlerMockRecorder struct {
	mock *MockResourceHandler
}

// NewMockResourceHandler creates a new mock instance.
func NewMockResourceHandler(ctrl *gomock.Controller) *MockResourceHandler {
	mock := &MockResourceHandler{ctrl: ctrl}
	mock.recorder = &MockResourceHandlerMockRecorder{mock}
	return mock
}

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

// HandleResourceAttachment mocks base method.
func (m *MockResourceHandler) HandleResourceAttachment(arg0 *resource.ResourceAttachment) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "HandleResourceAttachment", arg0)
}

// HandleResourceAttachment indicates an expected call of HandleResourceAttachment.
func (mr *MockResourceHandlerMockRecorder) HandleResourceAttachment(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleResourceAttachment", reflect.TypeOf((*MockResourceHandler)(nil).HandleResourceAttachment), arg0)
}

// MockCredentialsMetadataSetter is a mock of CredentialsMetadataSetter interface.
type MockCredentialsMetadataSetter struct {
	ctrl     *gomock.Controller
	recorder *MockCredentialsMetadataSetterMockRecorder
}

// MockCredentialsMetadataSetterMockRecorder is the mock recorder for MockCredentialsMetadataSetter.
type MockCredentialsMetadataSetterMockRecorder struct {
	mock *MockCredentialsMetadataSetter
}

// NewMockCredentialsMetadataSetter creates a new mock instance.
func NewMockCredentialsMetadataSetter(ctrl *gomock.Controller) *MockCredentialsMetadataSetter {
	mock := &MockCredentialsMetadataSetter{ctrl: ctrl}
	mock.recorder = &MockCredentialsMetadataSetterMockRecorder{mock}
	return mock
}

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

// SetExecRoleCredentialsMetadata mocks base method.
func (m *MockCredentialsMetadataSetter) SetExecRoleCredentialsMetadata(arg0 *ecsacs.IAMRoleCredentialsMessage) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetExecRoleCredentialsMetadata", arg0)
	ret0, _ := ret[0].(error)
	return ret0
}

// SetExecRoleCredentialsMetadata indicates an expected call of SetExecRoleCredentialsMetadata.
func (mr *MockCredentialsMetadataSetterMockRecorder) SetExecRoleCredentialsMetadata(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetExecRoleCredentialsMetadata", reflect.TypeOf((*MockCredentialsMetadataSetter)(nil).SetExecRoleCredentialsMetadata), arg0)
}

// SetTaskRoleCredentialsMetadata mocks base method.
func (m *MockCredentialsMetadataSetter) SetTaskRoleCredentialsMetadata(arg0 *ecsacs.IAMRoleCredentialsMessage) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetTaskRoleCredentialsMetadata", arg0)
	ret0, _ := ret[0].(error)
	return ret0
}

// SetTaskRoleCredentialsMetadata indicates an expected call of SetTaskRoleCredentialsMetadata.
func (mr *MockCredentialsMetadataSetterMockRecorder) SetTaskRoleCredentialsMetadata(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTaskRoleCredentialsMetadata", reflect.TypeOf((*MockCredentialsMetadataSetter)(nil).SetTaskRoleCredentialsMetadata), arg0)
}

// MockPayloadMessageHandler is a mock of PayloadMessageHandler interface.
type MockPayloadMessageHandler struct {
	ctrl     *gomock.Controller
	recorder *MockPayloadMessageHandlerMockRecorder
}

// MockPayloadMessageHandlerMockRecorder is the mock recorder for MockPayloadMessageHandler.
type MockPayloadMessageHandlerMockRecorder struct {
	mock *MockPayloadMessageHandler
}

// NewMockPayloadMessageHandler creates a new mock instance.
func NewMockPayloadMessageHandler(ctrl *gomock.Controller) *MockPayloadMessageHandler {
	mock := &MockPayloadMessageHandler{ctrl: ctrl}
	mock.recorder = &MockPayloadMessageHandlerMockRecorder{mock}
	return mock
}

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

// ProcessMessage mocks base method.
func (m *MockPayloadMessageHandler) ProcessMessage(arg0 *ecsacs.PayloadMessage, arg1 func(*ecsacs.AckRequest, []*ecsacs.IAMRoleCredentialsAckRequest)) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ProcessMessage", arg0, arg1)
	ret0, _ := ret[0].(error)
	return ret0
}

// ProcessMessage indicates an expected call of ProcessMessage.
func (mr *MockPayloadMessageHandlerMockRecorder) ProcessMessage(arg0, arg1 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProcessMessage", reflect.TypeOf((*MockPayloadMessageHandler)(nil).ProcessMessage), arg0, arg1)
}

// MockManifestMessageIDAccessor is a mock of ManifestMessageIDAccessor interface.
type MockManifestMessageIDAccessor struct {
	ctrl     *gomock.Controller
	recorder *MockManifestMessageIDAccessorMockRecorder
}

// MockManifestMessageIDAccessorMockRecorder is the mock recorder for MockManifestMessageIDAccessor.
type MockManifestMessageIDAccessorMockRecorder struct {
	mock *MockManifestMessageIDAccessor
}

// NewMockManifestMessageIDAccessor creates a new mock instance.
func NewMockManifestMessageIDAccessor(ctrl *gomock.Controller) *MockManifestMessageIDAccessor {
	mock := &MockManifestMessageIDAccessor{ctrl: ctrl}
	mock.recorder = &MockManifestMessageIDAccessorMockRecorder{mock}
	return mock
}

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

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

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

// SetMessageID mocks base method.
func (m *MockManifestMessageIDAccessor) SetMessageID(arg0 string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetMessageID", arg0)
	ret0, _ := ret[0].(error)
	return ret0
}

// SetMessageID indicates an expected call of SetMessageID.
func (mr *MockManifestMessageIDAccessorMockRecorder) SetMessageID(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMessageID", reflect.TypeOf((*MockManifestMessageIDAccessor)(nil).SetMessageID), arg0)
}

// MockTaskComparer is a mock of TaskComparer interface.
type MockTaskComparer struct {
	ctrl     *gomock.Controller
	recorder *MockTaskComparerMockRecorder
}

// MockTaskComparerMockRecorder is the mock recorder for MockTaskComparer.
type MockTaskComparerMockRecorder struct {
	mock *MockTaskComparer
}

// NewMockTaskComparer creates a new mock instance.
func NewMockTaskComparer(ctrl *gomock.Controller) *MockTaskComparer {
	mock := &MockTaskComparer{ctrl: ctrl}
	mock.recorder = &MockTaskComparerMockRecorder{mock}
	return mock
}

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

// CompareRunningTasksOnInstanceWithManifest mocks base method.
func (m *MockTaskComparer) CompareRunningTasksOnInstanceWithManifest(arg0 *ecsacs.TaskManifestMessage) ([]*ecsacs.TaskIdentifier, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CompareRunningTasksOnInstanceWithManifest", arg0)
	ret0, _ := ret[0].([]*ecsacs.TaskIdentifier)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// CompareRunningTasksOnInstanceWithManifest indicates an expected call of CompareRunningTasksOnInstanceWithManifest.
func (mr *MockTaskComparerMockRecorder) CompareRunningTasksOnInstanceWithManifest(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompareRunningTasksOnInstanceWithManifest", reflect.TypeOf((*MockTaskComparer)(nil).CompareRunningTasksOnInstanceWithManifest), arg0)
}

// MockSequenceNumberAccessor is a mock of SequenceNumberAccessor interface.
type MockSequenceNumberAccessor struct {
	ctrl     *gomock.Controller
	recorder *MockSequenceNumberAccessorMockRecorder
}

// MockSequenceNumberAccessorMockRecorder is the mock recorder for MockSequenceNumberAccessor.
type MockSequenceNumberAccessorMockRecorder struct {
	mock *MockSequenceNumberAccessor
}

// NewMockSequenceNumberAccessor creates a new mock instance.
func NewMockSequenceNumberAccessor(ctrl *gomock.Controller) *MockSequenceNumberAccessor {
	mock := &MockSequenceNumberAccessor{ctrl: ctrl}
	mock.recorder = &MockSequenceNumberAccessorMockRecorder{mock}
	return mock
}

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

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

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

// SetLatestSequenceNumber mocks base method.
func (m *MockSequenceNumberAccessor) SetLatestSequenceNumber(arg0 int64) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetLatestSequenceNumber", arg0)
	ret0, _ := ret[0].(error)
	return ret0
}

// SetLatestSequenceNumber indicates an expected call of SetLatestSequenceNumber.
func (mr *MockSequenceNumberAccessorMockRecorder) SetLatestSequenceNumber(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLatestSequenceNumber", reflect.TypeOf((*MockSequenceNumberAccessor)(nil).SetLatestSequenceNumber), arg0)
}

// MockTaskStopper is a mock of TaskStopper interface.
type MockTaskStopper struct {
	ctrl     *gomock.Controller
	recorder *MockTaskStopperMockRecorder
}

// MockTaskStopperMockRecorder is the mock recorder for MockTaskStopper.
type MockTaskStopperMockRecorder struct {
	mock *MockTaskStopper
}

// NewMockTaskStopper creates a new mock instance.
func NewMockTaskStopper(ctrl *gomock.Controller) *MockTaskStopper {
	mock := &MockTaskStopper{ctrl: ctrl}
	mock.recorder = &MockTaskStopperMockRecorder{mock}
	return mock
}

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

// StopTask mocks base method.
func (m *MockTaskStopper) StopTask(arg0 string) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "StopTask", arg0)
}

// StopTask indicates an expected call of StopTask.
func (mr *MockTaskStopperMockRecorder) StopTask(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopTask", reflect.TypeOf((*MockTaskStopper)(nil).StopTask), arg0)
}
