// Code generated by depstubber. DO NOT EDIT.
// This is a simple stub for gopkg.in/ldap.v2, strictly for use in testing.

// See the LICENSE file for information about the licensing of the original library.
// Source: gopkg.in/ldap.v2 (exports: Conn; functions: Dial)

// Package ldap is a stub of gopkg.in/ldap.v2, generated by depstubber.
package ldap

import (
	tls "crypto/tls"
	time "time"
)

type AddRequest struct {
	DN         string
	Attributes []Attribute
}

func (_ *AddRequest) Attribute(_ string, _ []string) {}

type Attribute struct {
	Type string
	Vals []string
}

type Conn struct {
	Debug interface{}
}

func (_ *Conn) Add(_ *AddRequest) error {
	return nil
}

func (_ *Conn) Bind(_ string, _ string) error {
	return nil
}

func (_ *Conn) Close() {}

func (_ *Conn) Compare(_ string, _ string, _ string) (bool, error) {
	return false, nil
}

func (_ *Conn) Del(_ *DelRequest) error {
	return nil
}

func (_ *Conn) Modify(_ *ModifyRequest) error {
	return nil
}

func (_ *Conn) PasswordModify(_ *PasswordModifyRequest) (*PasswordModifyResult, error) {
	return nil, nil
}

func (_ *Conn) Search(_ *SearchRequest) (*SearchResult, error) {
	return nil, nil
}

func (_ *Conn) SearchWithPaging(_ *SearchRequest, _ uint32) (*SearchResult, error) {
	return nil, nil
}

func (_ *Conn) SetTimeout(_ time.Duration) {}

func (_ *Conn) SimpleBind(_ *SimpleBindRequest) (*SimpleBindResult, error) {
	return nil, nil
}

func (_ *Conn) Start() {}

func (_ *Conn) StartTLS(_ *tls.Config) error {
	return nil
}

type Control interface {
	Encode() interface{}
	GetControlType() string
	String() string
}

type DelRequest struct {
	DN       string
	Controls []Control
}

func Dial(_ string, _ string) (*Conn, error) {
	return nil, nil
}

type Entry struct {
	DN         string
	Attributes []*EntryAttribute
}

func (_ *Entry) GetAttributeValue(_ string) string {
	return ""
}

func (_ *Entry) GetAttributeValues(_ string) []string {
	return nil
}

func (_ *Entry) GetRawAttributeValue(_ string) []byte {
	return nil
}

func (_ *Entry) GetRawAttributeValues(_ string) [][]byte {
	return nil
}

func (_ *Entry) PrettyPrint(_ int) {}

func (_ *Entry) Print() {}

type EntryAttribute struct {
	Name       string
	Values     []string
	ByteValues [][]byte
}

func (_ *EntryAttribute) PrettyPrint(_ int) {}

func (_ *EntryAttribute) Print() {}

type ModifyRequest struct {
	DN                string
	AddAttributes     []PartialAttribute
	DeleteAttributes  []PartialAttribute
	ReplaceAttributes []PartialAttribute
}

func (_ *ModifyRequest) Add(_ string, _ []string) {}

func (_ *ModifyRequest) Delete(_ string, _ []string) {}

func (_ *ModifyRequest) Replace(_ string, _ []string) {}

type PartialAttribute struct {
	Type string
	Vals []string
}

type PasswordModifyRequest struct {
	UserIdentity string
	OldPassword  string
	NewPassword  string
}

type PasswordModifyResult struct {
	GeneratedPassword string
}

type SearchRequest struct {
	BaseDN       string
	Scope        int
	DerefAliases int
	SizeLimit    int
	TimeLimit    int
	TypesOnly    bool
	Filter       string
	Attributes   []string
	Controls     []Control
}

type SearchResult struct {
	Entries   []*Entry
	Referrals []string
	Controls  []Control
}

func (_ *SearchResult) PrettyPrint(_ int) {}

func (_ *SearchResult) Print() {}

type SimpleBindRequest struct {
	Username string
	Password string
	Controls []Control
}

type SimpleBindResult struct {
	Controls []Control
}
