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

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