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