github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/cloudwrapper/cloudwrapper.go (about) 1 // Package cloudwrapper provides access to the Akamai Cloud Wrapper API 2 package cloudwrapper 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 // CloudWrapper is the api interface for Cloud Wrapper 17 CloudWrapper interface { 18 Capacities 19 Configurations 20 Locations 21 MultiCDN 22 Properties 23 } 24 25 cloudwrapper struct { 26 session.Session 27 } 28 29 // Option defines an CloudWrapper option 30 Option func(*cloudwrapper) 31 ) 32 33 // Client returns a new cloudwrapper Client instance with the specified controller 34 func Client(sess session.Session, opts ...Option) CloudWrapper { 35 c := &cloudwrapper{ 36 Session: sess, 37 } 38 39 for _, opt := range opts { 40 opt(c) 41 } 42 return c 43 }