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  }