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  }