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 }