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 }