1package ldap
2
3import (
4	"crypto/tls"
5	"time"
6)
7
8// Client knows how to interact with an LDAP server
9type Client interface {
10	Start()
11	StartTLS(config *tls.Config) error
12	Close()
13	SetTimeout(time.Duration)
14
15	Bind(username, password string) error
16	SimpleBind(simpleBindRequest *SimpleBindRequest) (*SimpleBindResult, error)
17
18	Add(addRequest *AddRequest) error
19	Del(delRequest *DelRequest) error
20	Modify(modifyRequest *ModifyRequest) error
21
22	Compare(dn, attribute, value string) (bool, error)
23	PasswordModify(passwordModifyRequest *PasswordModifyRequest) (*PasswordModifyResult, error)
24
25	Search(searchRequest *SearchRequest) (*SearchResult, error)
26	SearchWithPaging(searchRequest *SearchRequest, pagingSize uint32) (*SearchResult, error)
27}
28