github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/networklists/networklists.go (about)

     1  // Package networklists provides access to the Akamai Networklist APIs
     2  //
     3  // See: https://techdocs.akamai.com/network-lists/reference/api#networklist
     4  package networklists
     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  	// NTWRKLISTS is the networklist api interface
    19  	NTWRKLISTS interface {
    20  		Activations
    21  		NetworkList
    22  		NetworkListDescription
    23  		NetworkListSubscription
    24  	}
    25  
    26  	networklists struct {
    27  		session.Session
    28  		usePrefixes bool
    29  	}
    30  
    31  	// Option defines a networklist option
    32  	Option func(*networklists)
    33  
    34  	// ClientFunc is a networklist client new method, this can used for mocking
    35  	ClientFunc func(sess session.Session, opts ...Option) NTWRKLISTS
    36  )
    37  
    38  // Client returns a new networklist Client instance with the specified controller
    39  func Client(sess session.Session, opts ...Option) NTWRKLISTS {
    40  	p := &networklists{
    41  		Session: sess,
    42  	}
    43  
    44  	for _, opt := range opts {
    45  		opt(p)
    46  	}
    47  	return p
    48  }