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  }