github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/clientlists/clientlists.go (about) 1 // Package clientlists provides access to Akamai Client Lists APIs 2 // 3 // See: https://techdocs.akamai.com/client-lists/reference/api 4 package clientlists 5 6 import ( 7 "errors" 8 9 "github.com/akamai/AkamaiOPEN-edgegrid-golang/v8/pkg/session" 10 ) 11 12 var ( 13 // ErrStructValidation is returned when given struct validation failed 14 ErrStructValidation = errors.New("struct validation") 15 ) 16 17 type ( 18 // ClientLists is the clientlists api interface 19 ClientLists interface { 20 Activation 21 Lists 22 } 23 24 clientlists struct { 25 session.Session 26 } 27 28 // Option defines a clientlists option 29 Option func(*clientlists) 30 31 // ClientFunc is a clientlists client new method, this can be used for mocking 32 ClientFunc func(sess session.Session, opts ...Option) ClientLists 33 ) 34 35 // Client returns a new clientlists Client instance with the specified controller 36 func Client(sess session.Session, opts ...Option) ClientLists { 37 p := &clientlists{ 38 Session: sess, 39 } 40 41 for _, opt := range opts { 42 opt(p) 43 } 44 return p 45 }