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 }