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

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