github.com/akamai/AkamaiOPEN-edgegrid-golang/v5@v5.0.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/v5/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 // APPSEC is the appsec api interface 17 APPSEC interface { 18 Activations 19 AdvancedSettingsAttackPayloadLogging 20 AdvancedSettingsEvasivePathMatch 21 AdvancedSettingsLogging 22 AdvancedSettingsPragma 23 AdvancedSettingsPrefetch 24 AdvancedSettingsRequestBody 25 ApiConstraintsProtection 26 ApiEndpoints 27 ApiHostnameCoverage 28 ApiHostnameCoverageMatchTargets 29 ApiHostnameCoverageOverlapping 30 ApiRequestConstraints 31 AttackGroup 32 Configuration 33 ConfigurationClone 34 ConfigurationVersion 35 ConfigurationVersionClone 36 ContractsGroups 37 CustomDeny 38 CustomRule 39 CustomRuleAction 40 Eval 41 EvalGroup 42 EvalPenaltyBox 43 EvalRule 44 ExportConfiguration 45 FailoverHostnames 46 IPGeo 47 IPGeoProtection 48 MalwareContentTypes 49 MalwarePolicy 50 MalwarePolicyAction 51 MalwareProtection 52 MatchTarget 53 MatchTargetSequence 54 NetworkLayerProtection 55 PenaltyBox 56 PolicyProtections 57 RatePolicy 58 RatePolicyAction 59 RateProtection 60 ReputationAnalysis 61 ReputationProfile 62 ReputationProfileAction 63 ReputationProtection 64 Rule 65 RuleUpgrade 66 SecurityPolicy 67 SecurityPolicyClone 68 SelectableHostnames 69 SelectedHostname 70 SiemDefinitions 71 SiemSettings 72 SlowPostProtection 73 SlowPostProtectionSetting 74 ThreatIntel 75 TuningRecommendations 76 VersionNotes 77 WAFMode 78 WAFProtection 79 WAPBypassNetworkLists 80 WAPSelectedHostnames 81 } 82 83 appsec struct { 84 session.Session 85 } 86 87 // Option defines a PAPI option 88 Option func(*appsec) 89 90 // ClientFunc is a appsec client new method, this can used for mocking 91 ClientFunc func(sess session.Session, opts ...Option) APPSEC 92 ) 93 94 // Client returns a new appsec Client instance with the specified controller 95 func Client(sess session.Session, opts ...Option) APPSEC { 96 p := &appsec{ 97 Session: sess, 98 } 99 100 for _, opt := range opts { 101 opt(p) 102 } 103 return p 104 }