// Code generated by mockery v2.20.0. DO NOT EDIT.

package mocks

import (
	context "context"

	request "github.com/aws/aws-sdk-go/aws/request"
	mock "github.com/stretchr/testify/mock"

	ssmmds "github.com/aws/aws-sdk-go/service/ssmmds"
)

// SSMMDSAPI is an autogenerated mock type for the SSMMDSAPI type
type SSMMDSAPI struct {
	mock.Mock
}

// AcknowledgeMessage provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) AcknowledgeMessage(_a0 *ssmmds.AcknowledgeMessageInput) (*ssmmds.AcknowledgeMessageOutput, error) {
	ret := _m.Called(_a0)

	var r0 *ssmmds.AcknowledgeMessageOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(*ssmmds.AcknowledgeMessageInput) (*ssmmds.AcknowledgeMessageOutput, error)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.AcknowledgeMessageInput) *ssmmds.AcknowledgeMessageOutput); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.AcknowledgeMessageOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.AcknowledgeMessageInput) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// AcknowledgeMessageRequest provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) AcknowledgeMessageRequest(_a0 *ssmmds.AcknowledgeMessageInput) (*request.Request, *ssmmds.AcknowledgeMessageOutput) {
	ret := _m.Called(_a0)

	var r0 *request.Request
	var r1 *ssmmds.AcknowledgeMessageOutput
	if rf, ok := ret.Get(0).(func(*ssmmds.AcknowledgeMessageInput) (*request.Request, *ssmmds.AcknowledgeMessageOutput)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.AcknowledgeMessageInput) *request.Request); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*request.Request)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.AcknowledgeMessageInput) *ssmmds.AcknowledgeMessageOutput); ok {
		r1 = rf(_a0)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(*ssmmds.AcknowledgeMessageOutput)
		}
	}

	return r0, r1
}

// AcknowledgeMessageWithContext provides a mock function with given fields: _a0, _a1, _a2
func (_m *SSMMDSAPI) AcknowledgeMessageWithContext(_a0 context.Context, _a1 *ssmmds.AcknowledgeMessageInput, _a2 ...request.Option) (*ssmmds.AcknowledgeMessageOutput, error) {
	_va := make([]interface{}, len(_a2))
	for _i := range _a2 {
		_va[_i] = _a2[_i]
	}
	var _ca []interface{}
	_ca = append(_ca, _a0, _a1)
	_ca = append(_ca, _va...)
	ret := _m.Called(_ca...)

	var r0 *ssmmds.AcknowledgeMessageOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.AcknowledgeMessageInput, ...request.Option) (*ssmmds.AcknowledgeMessageOutput, error)); ok {
		return rf(_a0, _a1, _a2...)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.AcknowledgeMessageInput, ...request.Option) *ssmmds.AcknowledgeMessageOutput); ok {
		r0 = rf(_a0, _a1, _a2...)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.AcknowledgeMessageOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *ssmmds.AcknowledgeMessageInput, ...request.Option) error); ok {
		r1 = rf(_a0, _a1, _a2...)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// DeleteMessage provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) DeleteMessage(_a0 *ssmmds.DeleteMessageInput) (*ssmmds.DeleteMessageOutput, error) {
	ret := _m.Called(_a0)

	var r0 *ssmmds.DeleteMessageOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(*ssmmds.DeleteMessageInput) (*ssmmds.DeleteMessageOutput, error)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.DeleteMessageInput) *ssmmds.DeleteMessageOutput); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.DeleteMessageOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.DeleteMessageInput) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// DeleteMessageRequest provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) DeleteMessageRequest(_a0 *ssmmds.DeleteMessageInput) (*request.Request, *ssmmds.DeleteMessageOutput) {
	ret := _m.Called(_a0)

	var r0 *request.Request
	var r1 *ssmmds.DeleteMessageOutput
	if rf, ok := ret.Get(0).(func(*ssmmds.DeleteMessageInput) (*request.Request, *ssmmds.DeleteMessageOutput)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.DeleteMessageInput) *request.Request); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*request.Request)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.DeleteMessageInput) *ssmmds.DeleteMessageOutput); ok {
		r1 = rf(_a0)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(*ssmmds.DeleteMessageOutput)
		}
	}

	return r0, r1
}

// DeleteMessageWithContext provides a mock function with given fields: _a0, _a1, _a2
func (_m *SSMMDSAPI) DeleteMessageWithContext(_a0 context.Context, _a1 *ssmmds.DeleteMessageInput, _a2 ...request.Option) (*ssmmds.DeleteMessageOutput, error) {
	_va := make([]interface{}, len(_a2))
	for _i := range _a2 {
		_va[_i] = _a2[_i]
	}
	var _ca []interface{}
	_ca = append(_ca, _a0, _a1)
	_ca = append(_ca, _va...)
	ret := _m.Called(_ca...)

	var r0 *ssmmds.DeleteMessageOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.DeleteMessageInput, ...request.Option) (*ssmmds.DeleteMessageOutput, error)); ok {
		return rf(_a0, _a1, _a2...)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.DeleteMessageInput, ...request.Option) *ssmmds.DeleteMessageOutput); ok {
		r0 = rf(_a0, _a1, _a2...)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.DeleteMessageOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *ssmmds.DeleteMessageInput, ...request.Option) error); ok {
		r1 = rf(_a0, _a1, _a2...)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// FailMessage provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) FailMessage(_a0 *ssmmds.FailMessageInput) (*ssmmds.FailMessageOutput, error) {
	ret := _m.Called(_a0)

	var r0 *ssmmds.FailMessageOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(*ssmmds.FailMessageInput) (*ssmmds.FailMessageOutput, error)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.FailMessageInput) *ssmmds.FailMessageOutput); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.FailMessageOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.FailMessageInput) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// FailMessageRequest provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) FailMessageRequest(_a0 *ssmmds.FailMessageInput) (*request.Request, *ssmmds.FailMessageOutput) {
	ret := _m.Called(_a0)

	var r0 *request.Request
	var r1 *ssmmds.FailMessageOutput
	if rf, ok := ret.Get(0).(func(*ssmmds.FailMessageInput) (*request.Request, *ssmmds.FailMessageOutput)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.FailMessageInput) *request.Request); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*request.Request)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.FailMessageInput) *ssmmds.FailMessageOutput); ok {
		r1 = rf(_a0)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(*ssmmds.FailMessageOutput)
		}
	}

	return r0, r1
}

// FailMessageWithContext provides a mock function with given fields: _a0, _a1, _a2
func (_m *SSMMDSAPI) FailMessageWithContext(_a0 context.Context, _a1 *ssmmds.FailMessageInput, _a2 ...request.Option) (*ssmmds.FailMessageOutput, error) {
	_va := make([]interface{}, len(_a2))
	for _i := range _a2 {
		_va[_i] = _a2[_i]
	}
	var _ca []interface{}
	_ca = append(_ca, _a0, _a1)
	_ca = append(_ca, _va...)
	ret := _m.Called(_ca...)

	var r0 *ssmmds.FailMessageOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.FailMessageInput, ...request.Option) (*ssmmds.FailMessageOutput, error)); ok {
		return rf(_a0, _a1, _a2...)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.FailMessageInput, ...request.Option) *ssmmds.FailMessageOutput); ok {
		r0 = rf(_a0, _a1, _a2...)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.FailMessageOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *ssmmds.FailMessageInput, ...request.Option) error); ok {
		r1 = rf(_a0, _a1, _a2...)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetEndpoint provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) GetEndpoint(_a0 *ssmmds.GetEndpointInput) (*ssmmds.GetEndpointOutput, error) {
	ret := _m.Called(_a0)

	var r0 *ssmmds.GetEndpointOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(*ssmmds.GetEndpointInput) (*ssmmds.GetEndpointOutput, error)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.GetEndpointInput) *ssmmds.GetEndpointOutput); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.GetEndpointOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.GetEndpointInput) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetEndpointRequest provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) GetEndpointRequest(_a0 *ssmmds.GetEndpointInput) (*request.Request, *ssmmds.GetEndpointOutput) {
	ret := _m.Called(_a0)

	var r0 *request.Request
	var r1 *ssmmds.GetEndpointOutput
	if rf, ok := ret.Get(0).(func(*ssmmds.GetEndpointInput) (*request.Request, *ssmmds.GetEndpointOutput)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.GetEndpointInput) *request.Request); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*request.Request)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.GetEndpointInput) *ssmmds.GetEndpointOutput); ok {
		r1 = rf(_a0)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(*ssmmds.GetEndpointOutput)
		}
	}

	return r0, r1
}

// GetEndpointWithContext provides a mock function with given fields: _a0, _a1, _a2
func (_m *SSMMDSAPI) GetEndpointWithContext(_a0 context.Context, _a1 *ssmmds.GetEndpointInput, _a2 ...request.Option) (*ssmmds.GetEndpointOutput, error) {
	_va := make([]interface{}, len(_a2))
	for _i := range _a2 {
		_va[_i] = _a2[_i]
	}
	var _ca []interface{}
	_ca = append(_ca, _a0, _a1)
	_ca = append(_ca, _va...)
	ret := _m.Called(_ca...)

	var r0 *ssmmds.GetEndpointOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.GetEndpointInput, ...request.Option) (*ssmmds.GetEndpointOutput, error)); ok {
		return rf(_a0, _a1, _a2...)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.GetEndpointInput, ...request.Option) *ssmmds.GetEndpointOutput); ok {
		r0 = rf(_a0, _a1, _a2...)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.GetEndpointOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *ssmmds.GetEndpointInput, ...request.Option) error); ok {
		r1 = rf(_a0, _a1, _a2...)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetMessages provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) GetMessages(_a0 *ssmmds.GetMessagesInput) (*ssmmds.GetMessagesOutput, error) {
	ret := _m.Called(_a0)

	var r0 *ssmmds.GetMessagesOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(*ssmmds.GetMessagesInput) (*ssmmds.GetMessagesOutput, error)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.GetMessagesInput) *ssmmds.GetMessagesOutput); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.GetMessagesOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.GetMessagesInput) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetMessagesRequest provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) GetMessagesRequest(_a0 *ssmmds.GetMessagesInput) (*request.Request, *ssmmds.GetMessagesOutput) {
	ret := _m.Called(_a0)

	var r0 *request.Request
	var r1 *ssmmds.GetMessagesOutput
	if rf, ok := ret.Get(0).(func(*ssmmds.GetMessagesInput) (*request.Request, *ssmmds.GetMessagesOutput)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.GetMessagesInput) *request.Request); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*request.Request)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.GetMessagesInput) *ssmmds.GetMessagesOutput); ok {
		r1 = rf(_a0)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(*ssmmds.GetMessagesOutput)
		}
	}

	return r0, r1
}

// GetMessagesWithContext provides a mock function with given fields: _a0, _a1, _a2
func (_m *SSMMDSAPI) GetMessagesWithContext(_a0 context.Context, _a1 *ssmmds.GetMessagesInput, _a2 ...request.Option) (*ssmmds.GetMessagesOutput, error) {
	_va := make([]interface{}, len(_a2))
	for _i := range _a2 {
		_va[_i] = _a2[_i]
	}
	var _ca []interface{}
	_ca = append(_ca, _a0, _a1)
	_ca = append(_ca, _va...)
	ret := _m.Called(_ca...)

	var r0 *ssmmds.GetMessagesOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.GetMessagesInput, ...request.Option) (*ssmmds.GetMessagesOutput, error)); ok {
		return rf(_a0, _a1, _a2...)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.GetMessagesInput, ...request.Option) *ssmmds.GetMessagesOutput); ok {
		r0 = rf(_a0, _a1, _a2...)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.GetMessagesOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *ssmmds.GetMessagesInput, ...request.Option) error); ok {
		r1 = rf(_a0, _a1, _a2...)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// SendReply provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) SendReply(_a0 *ssmmds.SendReplyInput) (*ssmmds.SendReplyOutput, error) {
	ret := _m.Called(_a0)

	var r0 *ssmmds.SendReplyOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(*ssmmds.SendReplyInput) (*ssmmds.SendReplyOutput, error)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.SendReplyInput) *ssmmds.SendReplyOutput); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.SendReplyOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.SendReplyInput) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// SendReplyRequest provides a mock function with given fields: _a0
func (_m *SSMMDSAPI) SendReplyRequest(_a0 *ssmmds.SendReplyInput) (*request.Request, *ssmmds.SendReplyOutput) {
	ret := _m.Called(_a0)

	var r0 *request.Request
	var r1 *ssmmds.SendReplyOutput
	if rf, ok := ret.Get(0).(func(*ssmmds.SendReplyInput) (*request.Request, *ssmmds.SendReplyOutput)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*ssmmds.SendReplyInput) *request.Request); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*request.Request)
		}
	}

	if rf, ok := ret.Get(1).(func(*ssmmds.SendReplyInput) *ssmmds.SendReplyOutput); ok {
		r1 = rf(_a0)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(*ssmmds.SendReplyOutput)
		}
	}

	return r0, r1
}

// SendReplyWithContext provides a mock function with given fields: _a0, _a1, _a2
func (_m *SSMMDSAPI) SendReplyWithContext(_a0 context.Context, _a1 *ssmmds.SendReplyInput, _a2 ...request.Option) (*ssmmds.SendReplyOutput, error) {
	_va := make([]interface{}, len(_a2))
	for _i := range _a2 {
		_va[_i] = _a2[_i]
	}
	var _ca []interface{}
	_ca = append(_ca, _a0, _a1)
	_ca = append(_ca, _va...)
	ret := _m.Called(_ca...)

	var r0 *ssmmds.SendReplyOutput
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.SendReplyInput, ...request.Option) (*ssmmds.SendReplyOutput, error)); ok {
		return rf(_a0, _a1, _a2...)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *ssmmds.SendReplyInput, ...request.Option) *ssmmds.SendReplyOutput); ok {
		r0 = rf(_a0, _a1, _a2...)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*ssmmds.SendReplyOutput)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *ssmmds.SendReplyInput, ...request.Option) error); ok {
		r1 = rf(_a0, _a1, _a2...)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

type mockConstructorTestingTNewSSMMDSAPI interface {
	mock.TestingT
	Cleanup(func())
}

// NewSSMMDSAPI creates a new instance of SSMMDSAPI. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
func NewSSMMDSAPI(t mockConstructorTestingTNewSSMMDSAPI) *SSMMDSAPI {
	mock := &SSMMDSAPI{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}