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  }