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