github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/appsec/appsec.go (about)

     1  // Package appsec provides access to the Akamai Application Security APIs
     2  package appsec
     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  	// ErrRequestCreation is returned when creating an HTTP request failed
    15  	ErrRequestCreation = errors.New("HTTP request failure")
    16  
    17  	// ErrAPICallFailure is returned when an Appsec OpenAPI call failed
    18  	ErrAPICallFailure = errors.New("API call failure")
    19  )
    20  
    21  type (
    22  	// APPSEC is the appsec api interface
    23  	APPSEC interface {
    24  		Activations
    25  		AdvancedSettingsAttackPayloadLogging
    26  		AdvancedSettingsEvasivePathMatch
    27  		AdvancedSettingsLogging
    28  		AdvancedSettingsPIILearning
    29  		AdvancedSettingsPragma
    30  		AdvancedSettingsPrefetch
    31  		AdvancedSettingsRequestBody
    32  		ApiConstraintsProtection
    33  		ApiEndpoints
    34  		ApiHostnameCoverage
    35  		ApiHostnameCoverageMatchTargets
    36  		ApiHostnameCoverageOverlapping
    37  		ApiRequestConstraints
    38  		AttackGroup
    39  		Configuration
    40  		ConfigurationClone
    41  		ConfigurationVersion
    42  		ConfigurationVersionClone
    43  		ContractsGroups
    44  		CustomDeny
    45  		CustomRule
    46  		CustomRuleAction
    47  		Eval
    48  		EvalGroup
    49  		EvalPenaltyBox
    50  		EvalPenaltyBoxConditions
    51  		EvalRule
    52  		ExportConfiguration
    53  		FailoverHostnames
    54  		IPGeo
    55  		IPGeoProtection
    56  		MalwareContentTypes
    57  		MalwarePolicy
    58  		MalwarePolicyAction
    59  		MalwareProtection
    60  		MatchTarget
    61  		MatchTargetSequence
    62  		NetworkLayerProtection
    63  		PenaltyBox
    64  		PenaltyBoxConditions
    65  		PolicyProtections
    66  		RatePolicy
    67  		RatePolicyAction
    68  		RateProtection
    69  		ReputationAnalysis
    70  		ReputationProfile
    71  		ReputationProfileAction
    72  		ReputationProtection
    73  		Rule
    74  		RuleUpgrade
    75  		SecurityPolicy
    76  		SecurityPolicyClone
    77  		SelectableHostnames
    78  		SelectedHostname
    79  		SiemDefinitions
    80  		SiemSettings
    81  		SlowPostProtection
    82  		SlowPostProtectionSetting
    83  		ThreatIntel
    84  		TuningRecommendations
    85  		VersionNotes
    86  		WAFMode
    87  		WAFProtection
    88  		WAPBypassNetworkLists
    89  		WAPSelectedHostnames
    90  	}
    91  
    92  	appsec struct {
    93  		session.Session
    94  	}
    95  
    96  	// Option defines a PAPI option
    97  	Option func(*appsec)
    98  
    99  	// ClientFunc is a appsec client new method, this can used for mocking
   100  	ClientFunc func(sess session.Session, opts ...Option) APPSEC
   101  )
   102  
   103  // Client returns a new appsec Client instance with the specified controller
   104  func Client(sess session.Session, opts ...Option) APPSEC {
   105  	p := &appsec{
   106  		Session: sess,
   107  	}
   108  
   109  	for _, opt := range opts {
   110  		opt(p)
   111  	}
   112  	return p
   113  }