appsec

package
v2.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 3, 2021 License: Apache-2.0 Imports: 11 Imported by: 1

Documentation

Overview

Package appsec provides access to the Akamai Application Security APIs

Index

Constants

View Source
const (
	// ActivationTypeActivate Activation.ActivationType value ACTIVATE
	ActivationTypeActivate ActivationValue = "ACTIVATE"
	// ActivationTypeDeactivate Activation.ActivationType value DEACTIVATE
	ActivationTypeDeactivate ActivationValue = "DEACTIVATE"

	// NetworkProduction Activation.Network value PRODUCTION
	NetworkProduction NetworkValue = "PRODUCTION"
	// NetworkStaging Activation.Network value STAGING
	NetworkStaging NetworkValue = "STAGING"

	// StatusActive Activation.Status value ACTIVE
	StatusActive StatusValue = "ACTIVATED"
	// StatusInactive Activation.Status value INACTIVE
	StatusInactive StatusValue = "INACTIVE"
	// StatusPending Activation.Status value RECEIVED
	StatusPending StatusValue = "RECEIVED"
	// StatusAborted Activation.Status value ABORTED
	StatusAborted StatusValue = "ABORTED"
	// StatusFailed Activation.Status value FAILED
	StatusFailed StatusValue = "FAILED"
	// StatusDeactivated Activation.Status value DEACTIVATED
	StatusDeactivated StatusValue = "DEACTIVATED"
	// StatusPendingDeactivation Activation.Status value PENDING_DEACTIVATION
	StatusPendingDeactivation StatusValue = "PENDING_DEACTIVATION"
	// StatusNew Activation.Status value NEW
	StatusNew StatusValue = "NEW"
)

Variables

View Source
var (
	// ErrBadRequest is returned when a required parameter is missing
	ErrBadRequest = errors.New("missing argument")
)
View Source
var (
	// ErrStructValidation is returned returned when given struct validation failed
	ErrStructValidation = errors.New("struct validation")
)

Functions

This section is empty.

Types

type ActivationConfigs

type ActivationConfigs struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
}

type ActivationValue

type ActivationValue string

ActivationValue is used to create an "enum" of possible Activation.ActivationType values

type Activations

type Activations interface {
	//GetActivationss(ctx context.Context, params GetActivationssRequest) (*GetActivationssResponse, error)
	GetActivations(ctx context.Context, params GetActivationsRequest) (*GetActivationsResponse, error)
	CreateActivations(ctx context.Context, params CreateActivationsRequest, acknowledgeWarnings bool) (*CreateActivationsResponse, error)
	RemoveActivations(ctx context.Context, params RemoveActivationsRequest) (*RemoveActivationsResponse, error)
}

Activations contains operations available on Activations resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getactivations

type ActivationsPost

type ActivationsPost struct {
	Action             string   `json:"action"`
	Network            string   `json:"network"`
	Note               string   `json:"note"`
	NotificationEmails []string `json:"notificationEmails"`
	ActivationConfigs  []struct {
		ConfigID      int `json:"configId"`
		ConfigVersion int `json:"configVersion"`
	} `json:"activationConfigs"`
}

type AttackGroupAction added in v2.0.4

type AttackGroupAction interface {
	GetAttackGroupActions(ctx context.Context, params GetAttackGroupActionsRequest) (*GetAttackGroupActionsResponse, error)
	GetAttackGroupAction(ctx context.Context, params GetAttackGroupActionRequest) (*GetAttackGroupActionResponse, error)
	UpdateAttackGroupAction(ctx context.Context, params UpdateAttackGroupActionRequest) (*UpdateAttackGroupActionResponse, error)
}

AttackGroupAction contains operations available on AttackGroupAction resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getattackgroupaction

type AttackGroupConditionException added in v2.0.4

type AttackGroupConditionException interface {
	GetAttackGroupConditionExceptions(ctx context.Context, params GetAttackGroupConditionExceptionsRequest) (*GetAttackGroupConditionExceptionsResponse, error)
	GetAttackGroupConditionException(ctx context.Context, params GetAttackGroupConditionExceptionRequest) (*GetAttackGroupConditionExceptionResponse, error)
	UpdateAttackGroupConditionException(ctx context.Context, params UpdateAttackGroupConditionExceptionRequest) (*UpdateAttackGroupConditionExceptionResponse, error)
	RemoveAttackGroupConditionException(ctx context.Context, params RemoveAttackGroupConditionExceptionRequest) (*RemoveAttackGroupConditionExceptionResponse, error)
}

AttackGroupConditionException contains operations available on AttackGroupConditionException resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getattackgroupconditionexception

type BypassNetworkList

type BypassNetworkList struct {
	Name string `json:"name"`
	ID   string `json:"id"`
}

BypassNetworkList ...

type ClientFunc

type ClientFunc func(sess session.Session, opts ...Option) APPSEC

ClientFunc is a appsec client new method, this can used for mocking

type Configuration

type Configuration interface {
	GetConfigurations(ctx context.Context, params GetConfigurationsRequest) (*GetConfigurationsResponse, error)
}

Configuration contains operations available on Configuration resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getconfiguration

type ConfigurationClone

type ConfigurationClone interface {
	GetConfigurationClone(ctx context.Context, params GetConfigurationCloneRequest) (*GetConfigurationCloneResponse, error)
	CreateConfigurationClone(ctx context.Context, params CreateConfigurationCloneRequest) (*CreateConfigurationCloneResponse, error)
}

ConfigurationClone contains operations available on ConfigurationClone resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getconfigurationclone

type ConfigurationVersion

type ConfigurationVersion interface {
	GetConfigurationVersions(ctx context.Context, params GetConfigurationVersionsRequest) (*GetConfigurationVersionsResponse, error)
}

ConfigurationVersion contains operations available on ConfigurationVersion resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getconfigurationversion

type CreateActivationsRequest

type CreateActivationsRequest struct {
	Action             string   `json:"action"`
	Network            string   `json:"network"`
	Note               string   `json:"note"`
	NotificationEmails []string `json:"notificationEmails"`
	ActivationConfigs  []struct {
		ConfigID      int `json:"configId"`
		ConfigVersion int `json:"configVersion"`
	} `json:"activationConfigs"`
}

type CreateActivationsResponse

type CreateActivationsResponse struct {
	DispatchCount     int          `json:"dispatchCount"`
	ActivationID      int          `json:"activationId"`
	Action            string       `json:"action"`
	Status            StatusValue  `json:"status"`
	Network           NetworkValue `json:"network"`
	Estimate          string       `json:"estimate"`
	CreatedBy         string       `json:"createdBy"`
	CreateDate        time.Time    `json:"createDate"`
	ActivationConfigs []struct {
		ConfigID              int    `json:"configId"`
		ConfigName            string `json:"configName"`
		ConfigVersion         int    `json:"configVersion"`
		PreviousConfigVersion int    `json:"previousConfigVersion"`
	} `json:"activationConfigs"`
}

type CreateAttackGroupActionRequest added in v2.0.4

type CreateAttackGroupActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Action   string `json:"action"`
	Group    string `json:"group"`
}

type CreateAttackGroupActionResponse added in v2.0.4

type CreateAttackGroupActionResponse struct {
	Action string `json:"action"`
}

type CreateConfigurationCloneRequest

type CreateConfigurationCloneRequest struct {
	ConfigID          int  `json:"-"`
	CreateFromVersion int  `json:"createFromVersion"`
	RuleUpdate        bool `json:"ruleUpdate"`
}

func (CreateConfigurationCloneRequest) Validate

Validate validates GetConfigurationCloneRequest

type CreateConfigurationCloneResponse

type CreateConfigurationCloneResponse struct {
	ConfigID     int       `json:"configId"`
	ConfigName   string    `json:"configName"`
	Version      int       `json:"version"`
	VersionNotes string    `json:"versionNotes"`
	CreateDate   time.Time `json:"createDate"`
	CreatedBy    string    `json:"createdBy"`
	BasedOn      int       `json:"basedOn"`
	Production   struct {
		Status string    `json:"status"`
		Time   time.Time `json:"time"`
	} `json:"production"`
	Staging struct {
		Status string `json:"status"`
	} `json:"staging"`
}

type CreateCustomRuleRequest

type CreateCustomRuleRequest struct {
	ConfigID int `json:"configid,omitempty"`
	//ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

func (CreateCustomRuleRequest) Validate

func (v CreateCustomRuleRequest) Validate() error

Validate validates CreateCustomRuleRequest

type CreateCustomRuleResponse

type CreateCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type CreateMatchTargetRequest

type CreateMatchTargetRequest struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	FileExtensions               []string `json:"fileExtensions"`
	FilePaths                    []string `json:"filePaths"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

CreateMatchTargetRequest is the argument for GetProperties

func (CreateMatchTargetRequest) Validate

func (v CreateMatchTargetRequest) Validate() error

Validate validates CreateMatchTargetRequest

type CreateMatchTargetResponse

type CreateMatchTargetResponse struct {
	MType                     string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

CreateMatchTargetResponse is the argument for GetProperties

type CreateRatePolicyRequest

type CreateRatePolicyRequest struct {
	ID                    int    `json:"-"`
	PolicyID              int    `json:"-"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

func (CreateRatePolicyRequest) Validate

func (v CreateRatePolicyRequest) Validate() error

Validate validates CreateRatePolicyRequest

type CreateRatePolicyResponse

type CreateRatePolicyResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type CreateReputationProfileRequest added in v2.0.4

type CreateReputationProfileRequest struct {
	ConfigID       int             `json:"-"`
	ConfigVersion  int             `json:"-"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

func (CreateReputationProfileRequest) Validate added in v2.0.4

Validate validates CreateReputationProfileRequest

type CreateReputationProfileResponse added in v2.0.4

type CreateReputationProfileResponse struct {
	ID               int    `json:"id"`
	Name             string `json:"name"`
	Context          string `json:"context"`
	Description      string `json:"description"`
	Threshold        int    `json:"threshold"`
	SharedIPHandling string `json:"sharedIpHandling"`
	Condition        struct {
		AtomicConditions []struct {
			CheckIps      string               `json:"checkIps,omitempty"`
			ClassName     string               `json:"className"`
			Index         int                  `json:"index"`
			PositiveMatch bool                 `json:"positiveMatch"`
			Value         []string             `json:"value,omitempty"`
			Name          atomicConditionsName `json:"name,omitempty"`
			NameCase      bool                 `json:"nameCase,omitempty"`
			NameWildcard  bool                 `json:"nameWildcard,omitempty"`
			ValueCase     bool                 `json:"valueCase,omitempty"`
			ValueWildcard bool                 `json:"valueWildcard,omitempty"`
			Host          []string             `json:"host,omitempty"`
		} `json:"atomicConditions"`
		PositiveMatch bool `json:"positiveMatch"`
	} `json:"condition"`
	Enabled bool `json:"enabled"`
}

type CreateSecurityPolicyClonePost

type CreateSecurityPolicyClonePost struct {
	CreateFromSecurityPolicy string `json:"createFromSecurityPolicy"`
	PolicyName               string `json:"policyName"`
	PolicyPrefix             string `json:"policyPrefix"`
}

type CreateSecurityPolicyClonePostResponse

type CreateSecurityPolicyClonePostResponse struct {
	ConfigID               int    `json:"configId"`
	PolicyID               string `json:"policyId"`
	PolicyName             string `json:"policyName"`
	PolicySecurityControls struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"policySecurityControls"`
	Version int `json:"version"`
}

type CreateSecurityPolicyCloneRequest

type CreateSecurityPolicyCloneRequest struct {
	ConfigID                 int    `json:"configId"`
	Version                  int    `json:"version"`
	CreateFromSecurityPolicy string `json:"createFromSecurityPolicy"`
	PolicyName               string `json:"policyName"`
	PolicyPrefix             string `json:"policyPrefix"`
}

func (CreateSecurityPolicyCloneRequest) Validate

Validate validates CreateSecurityPolicyCloneRequest

type CreateSecurityPolicyCloneResponse

type CreateSecurityPolicyCloneResponse struct {
	HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
	PolicyID                string `json:"policyId"`
	PolicyName              string `json:"policyName"`
	PolicySecurityControls  struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	}
}

type CreateSecurityPolicyRequest added in v2.0.4

type CreateSecurityPolicyRequest struct {
	ConfigID     int    `json:"-"`
	Version      int    `json:"-"`
	PolicyID     string `json:"-"`
	PolicyName   string `json:"policyName"`
	PolicyPrefix string `json:"policyPrefix"`
}

func (CreateSecurityPolicyRequest) Validate added in v2.0.4

func (v CreateSecurityPolicyRequest) Validate() error

Validate validates CreateSecurityPolicyRequest

type CreateSecurityPolicyResponse added in v2.0.4

type CreateSecurityPolicyResponse struct {
	ConfigID               int    `json:"configId"`
	PolicyID               string `json:"policyId"`
	PolicyName             string `json:"policyName"`
	PolicySecurityControls struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"policySecurityControls"`
	Version int `json:"version"`
}

type CustomRule

type CustomRule interface {
	GetCustomRules(ctx context.Context, params GetCustomRulesRequest) (*GetCustomRulesResponse, error)
	GetCustomRule(ctx context.Context, params GetCustomRuleRequest) (*GetCustomRuleResponse, error)
	CreateCustomRule(ctx context.Context, params CreateCustomRuleRequest) (*CreateCustomRuleResponse, error)
	UpdateCustomRule(ctx context.Context, params UpdateCustomRuleRequest) (*UpdateCustomRuleResponse, error)
	RemoveCustomRule(ctx context.Context, params RemoveCustomRuleRequest) (*RemoveCustomRuleResponse, error)
}

CustomRule contains operations available on CustomRule resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getcustomrule

type CustomRuleAction

type CustomRuleAction interface {
	GetCustomRuleActions(ctx context.Context, params GetCustomRuleActionsRequest) (*GetCustomRuleActionsResponse, error)
	GetCustomRuleAction(ctx context.Context, params GetCustomRuleActionRequest) (*GetCustomRuleActionResponse, error)
	UpdateCustomRuleAction(ctx context.Context, params UpdateCustomRuleActionRequest) (*UpdateCustomRuleActionResponse, error)
}

CustomRuleAction contains operations available on CustomRuleAction resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getcustomruleaction

type CustomRuleResponse

type CustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name,omitempty"`
	Description   string   `json:"description,omitempty"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated,omitempty"`
	Tag           []string `json:"tag,omitempty"`
	Conditions    []struct {
		Type          string   `json:"type,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions,omitempty"`
}

type CustomRulesResponse

type CustomRulesResponse struct {
	CustomRules []struct {
		ID      int    `json:"id,omitempty"`
		Link    string `json:"link,omitempty"`
		Name    string `json:"name,omitempty"`
		Status  string `json:"status,omitempty"`
		Version int    `json:"version,omitempty"`
	} `json:"customRules,omitempty"`
}

type Error

type Error struct {
	Type          string `json:"type"`
	Title         string `json:"title"`
	Detail        string `json:"detail"`
	Instance      string `json:"instance,omitempty"`
	BehaviorName  string `json:"behaviorName,omitempty"`
	ErrorLocation string `json:"errorLocation,omitempty"`
	StatusCode    int    `json:"-"`
}

Error is a appsec error interface

func (*Error) Error

func (e *Error) Error() string

func (*Error) Is

func (e *Error) Is(target error) bool

Is handles error comparisons

type Eval added in v2.0.4

type Eval interface {
	GetEvals(ctx context.Context, params GetEvalsRequest) (*GetEvalsResponse, error)
	GetEval(ctx context.Context, params GetEvalRequest) (*GetEvalResponse, error)
	UpdateEval(ctx context.Context, params UpdateEvalRequest) (*UpdateEvalResponse, error)
	RemoveEval(ctx context.Context, params RemoveEvalRequest) (*RemoveEvalResponse, error)
}

Eval contains operations available on Eval resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#geteval

type EvalRuleAction added in v2.0.4

type EvalRuleAction interface {
	GetEvalRuleActions(ctx context.Context, params GetEvalRuleActionsRequest) (*GetEvalRuleActionsResponse, error)
	GetEvalRuleAction(ctx context.Context, params GetEvalRuleActionRequest) (*GetEvalRuleActionResponse, error)
	UpdateEvalRuleAction(ctx context.Context, params UpdateEvalRuleActionRequest) (*UpdateEvalRuleActionResponse, error)
}

EvalRuleAction contains operations available on EvalRuleAction resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getevalruleaction

type EvalRuleConditionException added in v2.0.4

type EvalRuleConditionException interface {
	GetEvalRuleConditionExceptions(ctx context.Context, params GetEvalRuleConditionExceptionsRequest) (*GetEvalRuleConditionExceptionsResponse, error)
	GetEvalRuleConditionException(ctx context.Context, params GetEvalRuleConditionExceptionRequest) (*GetEvalRuleConditionExceptionResponse, error)
	UpdateEvalRuleConditionException(ctx context.Context, params UpdateEvalRuleConditionExceptionRequest) (*UpdateEvalRuleConditionExceptionResponse, error)
	RemoveEvalRuleConditionException(ctx context.Context, params RemoveEvalRuleConditionExceptionRequest) (*RemoveEvalRuleConditionExceptionResponse, error)
}

EvalRuleConditionException contains operations available on EvalRuleConditionException resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getevalruleconditionexception

type ExportConfiguration

type ExportConfiguration interface {
	GetExportConfigurations(ctx context.Context, params GetExportConfigurationsRequest) (*GetExportConfigurationsResponse, error)
}

ExportConfiguration contains operations available on ExportConfiguration resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getexportconfiguration

type GetActivationsRequest

type GetActivationsRequest struct {
	ActivationID int `json:"activationId"`
}

func (GetActivationsRequest) Validate

func (v GetActivationsRequest) Validate() error

Validate validates GetActivationsRequest

type GetActivationsResponse

type GetActivationsResponse struct {
	DispatchCount     int          `json:"dispatchCount"`
	ActivationID      int          `json:"activationId"`
	Action            string       `json:"action"`
	Status            StatusValue  `json:"status"`
	Network           NetworkValue `json:"network"`
	Estimate          string       `json:"estimate"`
	CreatedBy         string       `json:"createdBy"`
	CreateDate        time.Time    `json:"createDate"`
	ActivationConfigs []struct {
		ConfigID              int    `json:"configId"`
		ConfigName            string `json:"configName"`
		ConfigVersion         int    `json:"configVersion"`
		PreviousConfigVersion int    `json:"previousConfigVersion"`
	} `json:"activationConfigs"`
}

type GetAttackGroupActionRequest added in v2.0.4

type GetAttackGroupActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Group    string `json:"group"`
}

func (GetAttackGroupActionRequest) Validate added in v2.0.4

func (v GetAttackGroupActionRequest) Validate() error

Validate validates GetAttackGroupActionRequest

type GetAttackGroupActionResponse added in v2.0.4

type GetAttackGroupActionResponse struct {
	Action string `json:"action,omitempty"`
}

type GetAttackGroupActionsRequest added in v2.0.4

type GetAttackGroupActionsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Group    string `json:"group"`
}

func (GetAttackGroupActionsRequest) Validate added in v2.0.4

func (v GetAttackGroupActionsRequest) Validate() error

Validate validates GetAttackGroupActionsRequest

type GetAttackGroupActionsResponse added in v2.0.4

type GetAttackGroupActionsResponse struct {
	AttackGroupActions []struct {
		Action string `json:"action,omitempty"`
		Group  string `json:"group,omitempty"`
	} `json:"attackGroupActions,omitempty"`
}

type GetAttackGroupConditionExceptionRequest added in v2.0.4

type GetAttackGroupConditionExceptionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Group    string `json:"group,omitempty"`
}

func (GetAttackGroupConditionExceptionRequest) Validate added in v2.0.4

Validate validates GetAttackGroupConditionExceptionRequest

type GetAttackGroupConditionExceptionResponse added in v2.0.4

type GetAttackGroupConditionExceptionResponse struct {
	Conditions []interface{} `json:"conditions,omitempty"`
	Exception  struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues,omitempty"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names,omitempty"`
			Selector string   `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamNames,omitempty"`
		SpecificHeaderCookieOrParamPrefix struct {
			Prefix   string `json:"prefix,omitempty"`
			Selector string `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamPrefix,omitempty"`
	} `json:"exception,omitempty"`
}

type GetAttackGroupConditionExceptionsRequest added in v2.0.4

type GetAttackGroupConditionExceptionsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Group    string `json:"group"`
}

func (GetAttackGroupConditionExceptionsRequest) Validate added in v2.0.4

Validate validates GetAttackGroupConditionExceptionsRequest

type GetAttackGroupConditionExceptionsResponse added in v2.0.4

type GetAttackGroupConditionExceptionsResponse struct {
	Conditions []struct {
		Type          string   `json:"type,omitempty"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch,omitempty"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions,omitempty"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues,omitempty"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names,omitempty"`
			Selector string   `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamNames,omitempty"`
		SpecificHeaderCookieOrParamPrefix struct {
			Prefix   string `json:"prefix,omitempty"`
			Selector string `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamPrefix,omitempty"`
	} `json:"exception,omitempty"`
}

type GetConfigurationCloneRequest

type GetConfigurationCloneRequest struct {
	ConfigID     int       `json:"configId"`
	ConfigName   string    `json:"configName"`
	Version      int       `json:"version"`
	VersionNotes string    `json:"versionNotes"`
	CreateDate   time.Time `json:"createDate"`
	CreatedBy    string    `json:"createdBy"`
	BasedOn      int       `json:"basedOn"`
	Production   struct {
		Status string    `json:"status"`
		Time   time.Time `json:"time"`
	} `json:"production"`
	Staging struct {
		Status string `json:"status"`
	} `json:"staging"`
}

func (GetConfigurationCloneRequest) Validate

func (v GetConfigurationCloneRequest) Validate() error

Validate validates GetConfigurationCloneRequest

type GetConfigurationCloneResponse

type GetConfigurationCloneResponse struct {
	ConfigID     int       `json:"configId"`
	ConfigName   string    `json:"configName"`
	Version      int       `json:"version"`
	VersionNotes string    `json:"versionNotes"`
	CreateDate   time.Time `json:"createDate"`
	CreatedBy    string    `json:"createdBy"`
	BasedOn      int       `json:"basedOn"`
	Production   struct {
		Status string    `json:"status"`
		Time   time.Time `json:"time"`
	} `json:"production"`
	Staging struct {
		Status string `json:"status"`
	} `json:"staging"`
}

type GetConfigurationVersionsRequest

type GetConfigurationVersionsRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
}

type GetConfigurationVersionsResponse

type GetConfigurationVersionsResponse struct {
	ConfigID           int    `json:"configId,omitempty"`
	ConfigName         string `json:"configName,omitempty"`
	LastCreatedVersion int    `json:"lastCreatedVersion,omitempty"`
	Page               int    `json:"page,omitempty"`
	PageSize           int    `json:"pageSize,omitempty"`
	TotalSize          int    `json:"totalSize,omitempty"`
	VersionList        []struct {
		ConfigID   int `json:"configId,omitempty"`
		Production struct {
			Status string `json:"status,omitempty"`
		} `json:"production,omitempty"`
		Staging struct {
			Status string `json:"status,omitempty"`
		} `json:"staging,omitempty"`
		Version int `json:"version,omitempty"`
		BasedOn int `json:"basedOn,omitempty"`
	} `json:"versionList,omitempty"`
}

type GetConfigurationsRequest

type GetConfigurationsRequest struct {
	ConfigID int `json:"configId"`
}

type GetConfigurationsResponse

type GetConfigurationsResponse struct {
	Configurations []struct {
		Description         string   `json:"description,omitempty"`
		FileType            string   `json:"fileType,omitempty"`
		ID                  int      `json:"id,omitempty"`
		LatestVersion       int      `json:"latestVersion,omitempty"`
		Name                string   `json:"name,omitempty"`
		StagingVersion      int      `json:"stagingVersion,omitempty"`
		TargetProduct       string   `json:"targetProduct,omitempty"`
		ProductionHostnames []string `json:"productionHostnames,omitempty"`
		ProductionVersion   int      `json:"productionVersion,omitempty"`
	} `json:"configurations,omitempty"`
}

type GetCustomRuleActionRequest

type GetCustomRuleActionRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	PolicyID string `json:"policyId"`
	RuleID   int    `json:"ruleId"`
}

func (GetCustomRuleActionRequest) Validate

func (v GetCustomRuleActionRequest) Validate() error

Validate validates GetCustomRuleActionRequest

type GetCustomRuleActionResponse

type GetCustomRuleActionResponse struct {
	Action                string `json:"action,omitempty"`
	CanUseAdvancedActions bool   `json:"canUseAdvancedActions,omitempty"`
	Link                  string `json:"link,omitempty"`
	Name                  string `json:"name,omitempty"`
	RuleID                int    `json:"ruleId,omitempty"`
}

type GetCustomRuleActionsRequest

type GetCustomRuleActionsRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	PolicyID string `json:"policyId"`
	RuleID   int    `json:"ruleId"`
}

func (GetCustomRuleActionsRequest) Validate

func (v GetCustomRuleActionsRequest) Validate() error

Validate validates GetCustomRuleActionsRequest

type GetCustomRuleActionsResponse

type GetCustomRuleActionsResponse []struct {
	Action                string `json:"action,omitempty"`
	CanUseAdvancedActions bool   `json:"canUseAdvancedActions,omitempty"`
	Link                  string `json:"link,omitempty"`
	Name                  string `json:"name,omitempty"`
	RuleID                int    `json:"ruleId,omitempty"`
}

type GetCustomRuleRequest

type GetCustomRuleRequest struct {
	ConfigID int `json:"configid,omitempty"`
	ID       int `json:"id,omitempty"`
}

func (GetCustomRuleRequest) Validate

func (v GetCustomRuleRequest) Validate() error

Validate validates GetCustomRuleRequest

type GetCustomRuleResponse

type GetCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type GetCustomRulesRequest

type GetCustomRulesRequest struct {
	ConfigID int `json:"configid,omitempty"`
}

func (GetCustomRulesRequest) Validate

func (v GetCustomRulesRequest) Validate() error

Validate validates GetCustomRulesRequest

type GetCustomRulesResponse

type GetCustomRulesResponse struct {
	CustomRules []struct {
		ID      int    `json:"id"`
		Link    string `json:"link"`
		Name    string `json:"name"`
		Status  string `json:"status"`
		Version int    `json:"version"`
	} `json:"customRules"`
}

type GetEvalRequest added in v2.0.4

type GetEvalRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"current"`
	Mode     string `json:"mode"`
	Eval     string `json:"eval"`
}

func (GetEvalRequest) Validate added in v2.0.4

func (v GetEvalRequest) Validate() error

Validate validates GetEvalRequest

type GetEvalResponse added in v2.0.4

type GetEvalResponse struct {
	Current    string `json:"current,omitempty"`
	Mode       string `json:"mode,omitempty"`
	Eval       string `json:"eval,omitempty"`
	Evaluating string `json:"evaluating,omitempty"`
	Expires    string `json:"expires,omitempty"`
}

type GetEvalRuleActionRequest added in v2.0.4

type GetEvalRuleActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
}

func (GetEvalRuleActionRequest) Validate added in v2.0.4

func (v GetEvalRuleActionRequest) Validate() error

Validate validates GetEvalRuleActionRequest

type GetEvalRuleActionResponse added in v2.0.4

type GetEvalRuleActionResponse struct {
	Action string `json:"action,omitempty"`
	ID     int    `json:"id,omitempty"`
}

type GetEvalRuleActionsRequest added in v2.0.4

type GetEvalRuleActionsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
}

func (GetEvalRuleActionsRequest) Validate added in v2.0.4

func (v GetEvalRuleActionsRequest) Validate() error

Validate validates GetEvalRuleActionsRequest

type GetEvalRuleActionsResponse added in v2.0.4

type GetEvalRuleActionsResponse struct {
	RuleActions []struct {
		Action string `json:"action,omitempty"`
		ID     int    `json:"id,omitempty"`
	} `json:"evalRuleActions,omitempty"`
}

type GetEvalRuleConditionExceptionRequest added in v2.0.4

type GetEvalRuleConditionExceptionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"ruleId"`
}

func (GetEvalRuleConditionExceptionRequest) Validate added in v2.0.4

Validate validates GetEvalRuleConditionExceptionRequest

type GetEvalRuleConditionExceptionResponse added in v2.0.4

type GetEvalRuleConditionExceptionResponse struct {
	Conditions []struct {
		Type          string   `json:"type,omitempty"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch,omitempty"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions,omitempty"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues,omitempty"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names,omitempty"`
			Selector string   `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamNames,omitempty"`
	} `json:"exception,omitempty"`
}

type GetEvalRuleConditionExceptionsRequest added in v2.0.4

type GetEvalRuleConditionExceptionsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
}

func (GetEvalRuleConditionExceptionsRequest) Validate added in v2.0.4

Validate validates GetEvalRuleConditionExceptionsRequest

type GetEvalRuleConditionExceptionsResponse added in v2.0.4

type GetEvalRuleConditionExceptionsResponse struct {
	Conditions []struct {
		Type          string   `json:"type,omitempty"`
		Extensions    []string `json:"extensions,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Filenames     []string `json:"filenames,omitempty"`
		Hosts         []string `json:"hosts,omitempty"`
		Ips           []string `json:"ips,omitempty"`
		UseHeaders    bool     `json:"useHeaders,omitempty"`
		CaseSensitive bool     `json:"caseSensitive,omitempty"`
		Name          string   `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
		Value         string   `json:"value,omitempty"`
		Wildcard      bool     `json:"wildcard,omitempty"`
		Header        string   `json:"header,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		Methods       []string `json:"methods,omitempty"`
		Paths         []string `json:"paths,omitempty"`
	} `json:"conditions,omitempty"`
	Exception struct {
		HeaderCookieOrParamValues            []string `json:"headerCookieOrParamValues,omitempty"`
		SpecificHeaderCookieOrParamNameValue struct {
			Name     string `json:"name,omitempty"`
			Selector string `json:"selector,omitempty"`
			Value    string `json:"value,omitempty"`
		} `json:"specificHeaderCookieOrParamNameValue,omitempty"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names,omitempty"`
			Selector string   `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamNames,omitempty"`
		SpecificHeaderCookieOrParamPrefix struct {
			Prefix   string `json:"prefix,omitempty"`
			Selector string `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamPrefix,omitempty"`
	} `json:"exception,omitempty"`
}

type GetEvalsRequest added in v2.0.4

type GetEvalsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"current"`
	Mode     string `json:"mode"`
	Eval     string `json:"eval"`
}

func (GetEvalsRequest) Validate added in v2.0.4

func (v GetEvalsRequest) Validate() error

Validate validates GetEvalsRequest

type GetEvalsResponse added in v2.0.4

type GetEvalsResponse struct {
	Current    string `json:"current,omitempty"`
	Mode       string `json:"mode,omitempty"`
	Eval       string `json:"eval,omitempty"`
	Evaluating string `json:"evaluating,omitempty"`
	Expires    string `json:"expires,omitempty"`
}

type GetExportConfigurationsRequest

type GetExportConfigurationsRequest struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
}

type GetExportConfigurationsResponse

type GetExportConfigurationsResponse struct {
	ConfigID   int    `json:"configId"`
	ConfigName string `json:"configName"`
	Version    int    `json:"version"`
	BasedOn    int    `json:"basedOn"`
	Staging    struct {
		Status string `json:"status"`
	} `json:"staging"`
	Production struct {
		Status string `json:"status"`
	} `json:"production"`
	CreateDate      time.Time `json:"createDate"`
	CreatedBy       string    `json:"createdBy"`
	SelectedHosts   []string  `json:"selectedHosts"`
	SelectableHosts []string  `json:"selectableHosts"`
	RatePolicies    []struct {
		AdditionalMatchOptions []struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Type          string   `json:"type"`
			Values        []string `json:"values"`
		} `json:"additionalMatchOptions"`
		AllTraffic       bool      `json:"allTraffic"`
		AverageThreshold int       `json:"averageThreshold"`
		BurstThreshold   int       `json:"burstThreshold"`
		ClientIdentifier string    `json:"clientIdentifier"`
		CreateDate       time.Time `json:"createDate"`
		Description      string    `json:"description"`
		FileExtensions   struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Values        []string `json:"values"`
		} `json:"fileExtensions"`
		ID        int    `json:"id"`
		MatchType string `json:"matchType"`
		Name      string `json:"name"`
		Path      struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Values        []string `json:"values"`
		} `json:"path"`
		PathMatchType        string `json:"pathMatchType"`
		PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
		QueryParameters      []struct {
			Name          string   `json:"name"`
			PositiveMatch bool     `json:"positiveMatch"`
			ValueInRange  bool     `json:"valueInRange"`
			Values        []string `json:"values"`
		} `json:"queryParameters"`
		RequestType           string    `json:"requestType"`
		SameActionOnIpv6      bool      `json:"sameActionOnIpv6"`
		Type                  string    `json:"type"`
		UpdateDate            time.Time `json:"updateDate"`
		UseXForwardForHeaders bool      `json:"useXForwardForHeaders"`
		Used                  bool      `json:"used"`
	} `json:"ratePolicies"`
	ReputationProfiles []struct {
		Context         string `json:"context"`
		ContextReadable string `json:"contextReadable"`
		Enabled         bool   `json:"enabled"`
		ID              int    `json:"id"`
		Name            string `json:"name"`
		Threshold       int    `json:"threshold"`
	} `json:"reputationProfiles"`
	CustomRules []struct {
		Conditions []struct {
			Type          string   `json:"type"`
			PositiveMatch bool     `json:"positiveMatch"`
			Value         []string `json:"value"`
			ValueCase     bool     `json:"valueCase,omitempty"`
			ValueWildcard bool     `json:"valueWildcard,omitempty"`
		} `json:"conditions"`
		Description   string   `json:"description"`
		ID            int      `json:"id"`
		Name          string   `json:"name"`
		RuleActivated bool     `json:"ruleActivated"`
		Structured    bool     `json:"structured"`
		Tag           []string `json:"tag"`
		Version       int      `json:"version"`
	} `json:"customRules"`
	Rulesets []struct {
		ID               int       `json:"id"`
		RulesetVersionID int       `json:"rulesetVersionId"`
		Type             string    `json:"type"`
		ReleaseDate      time.Time `json:"releaseDate"`
		Rules            []struct {
			ID                  int    `json:"id"`
			InspectRequestBody  bool   `json:"inspectRequestBody"`
			InspectResponseBody bool   `json:"inspectResponseBody"`
			Outdated            bool   `json:"outdated"`
			RuleVersion         int    `json:"ruleVersion"`
			Score               int    `json:"score"`
			Tag                 string `json:"tag"`
			Title               string `json:"title"`
		} `json:"rules"`
	} `json:"rulesets"`
	MatchTargets struct {
		WebsiteTargets []struct {
			Type                      string `json:"type"`
			DefaultFile               string `json:"defaultFile"`
			EffectiveSecurityControls struct {
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			FilePaths                    []string `json:"filePaths"`
			ID                           int      `json:"id"`
			IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
			SecurityPolicy               struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Sequence int `json:"sequence"`
		} `json:"websiteTargets"`
	} `json:"matchTargets"`
	SecurityPolicies []struct {
		ID                      string `json:"id"`
		Name                    string `json:"name"`
		HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
		SecurityControls        struct {
			ApplyAPIConstraints           bool `json:"applyApiConstraints"`
			ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
			ApplyBotmanControls           bool `json:"applyBotmanControls"`
			ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
			ApplyRateControls             bool `json:"applyRateControls"`
			ApplyReputationControls       bool `json:"applyReputationControls"`
			ApplySlowPostControls         bool `json:"applySlowPostControls"`
		} `json:"securityControls"`
		WebApplicationFirewall struct {
			RuleActions []struct {
				Action           string `json:"action"`
				ID               int    `json:"id"`
				RulesetVersionID int    `json:"rulesetVersionId"`
			} `json:"ruleActions"`
		} `json:"webApplicationFirewall"`
		CustomRuleActions []struct {
			Action string `json:"action"`
			ID     int    `json:"id"`
		} `json:"customRuleActions"`
		APIRequestConstraints struct {
			Action string `json:"action"`
		} `json:"apiRequestConstraints"`
		RatePolicyActions []struct {
			ID         int    `json:"id"`
			Ipv4Action string `json:"ipv4Action"`
			Ipv6Action string `json:"ipv6Action"`
		} `json:"ratePolicyActions"`
		IPGeoFirewall struct {
			Block string `json:"block"`
		} `json:"ipGeoFirewall"`
		SlowPost struct {
			Action            string `json:"action"`
			SlowRateThreshold struct {
				Period int `json:"period"`
				Rate   int `json:"rate"`
			} `json:"slowRateThreshold"`
			DurationThreshold struct {
				Timeout int `json:"timeout"`
			} `json:"durationThreshold"`
		} `json:"slowPost"`
	} `json:"securityPolicies"`
	AdvancedOptions struct {
		Logging struct {
			AllowSampling bool `json:"allowSampling"`
			Cookies       struct {
				Type string `json:"type"`
			} `json:"cookies"`
			CustomHeaders struct {
				Type string `json:"type"`
			} `json:"customHeaders"`
			StandardHeaders struct {
				Type string `json:"type"`
			} `json:"standardHeaders"`
		} `json:"logging"`
		Prefetch struct {
			AllExtensions      bool     `json:"allExtensions"`
			EnableAppLayer     bool     `json:"enableAppLayer"`
			EnableRateControls bool     `json:"enableRateControls"`
			Extensions         []string `json:"extensions"`
		} `json:"prefetch"`
	} `json:"advancedOptions"`
}

type GetIPGeoRequest added in v2.0.4

type GetIPGeoRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
}

func (GetIPGeoRequest) Validate added in v2.0.4

func (v GetIPGeoRequest) Validate() error

Validate validates GetIPGeoRequest

type GetIPGeoResponse added in v2.0.4

type GetIPGeoResponse struct {
	Block       string `json:"block,omitempty"`
	GeoControls struct {
		BlockedIPNetworkLists struct {
			NetworkList []string `json:"networkList,omitempty"`
		} `json:"blockedIPNetworkLists,omitempty"`
	} `json:"geoControls,omitempty"`
	IPControls struct {
		AllowedIPNetworkLists struct {
			NetworkList []string `json:"networkList,omitempty"`
		} `json:"allowedIPNetworkLists,omitempty"`
		BlockedIPNetworkLists struct {
			NetworkList []string `json:"networkList,omitempty"`
		} `json:"blockedIPNetworkLists,omitempty"`
	} `json:"ipControls,omitempty"`
}

type GetMatchTargetRequest

type GetMatchTargetRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	TargetID      int `json:"targetId"`
}

GetMatchTargetRequest is the argument for GetProperties

func (GetMatchTargetRequest) Validate

func (v GetMatchTargetRequest) Validate() error

Validate validates GetMatchTargetRequest

type GetMatchTargetResponse

type GetMatchTargetResponse struct {
	Type                      string `json:"type,omitempty"`
	ConfigID                  int    `json:"configId,omitempty"`
	ConfigVersion             int    `json:"configVersion,omitempty"`
	DefaultFile               string `json:"defaultFile,omitempty"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
		ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
		ApplyRateControls             bool `json:"applyRateControls,omitempty"`
		ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
		ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
	} `json:"effectiveSecurityControls,omitempty"`
	Hostnames                    []string `json:"hostnames,omitempty"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch,omitempty"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch,omitempty"`
	FilePaths                    []string `json:"filePaths,omitempty"`
	FileExtensions               []string `json:"fileExtensions,omitempty"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId,omitempty"`
	} `json:"securityPolicy,omitempty"`
	Sequence           int `json:"sequence,omitempty"`
	TargetID           int `json:"targetId,omitempty"`
	BypassNetworkLists []struct {
		Name string `json:"name,omitempty"`
		ID   string `json:"id,omitempty"`
	} `json:"bypassNetworkLists,omitempty"`
}

GetMatchTargetResponse ...

type GetMatchTargetSequenceRequest

type GetMatchTargetSequenceRequest struct {
	ConfigID      int    `json:"configId"`
	ConfigVersion int    `json:"configVersion"`
	Type          string `json:"type"`
}

GetMatchTargetSequence is the argument for GetProperties

func (GetMatchTargetSequenceRequest) Validate

func (v GetMatchTargetSequenceRequest) Validate() error

Validate validates GetMatchTargetSequenceRequest

type GetMatchTargetSequenceResponse

type GetMatchTargetSequenceResponse struct {
	MatchTargets struct {
		APITargets []struct {
			ConfigID                  int    `json:"configId"`
			ConfigVersion             int    `json:"configVersion"`
			Sequence                  int    `json:"sequence"`
			TargetID                  int    `json:"targetId"`
			Type                      string `json:"type"`
			EffectiveSecurityControls struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Apis []struct {
				ID   int    `json:"id"`
				Name string `json:"name"`
			} `json:"apis"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"apiTargets"`
		WebsiteTargets []struct {
			ConfigID                     int           `json:"configId"`
			ConfigVersion                int           `json:"configVersion"`
			DefaultFile                  string        `json:"defaultFile"`
			IsNegativeFileExtensionMatch bool          `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool          `json:"isNegativePathMatch"`
			Sequence                     int           `json:"sequence"`
			TargetID                     int           `json:"targetId"`
			Type                         string        `json:"type"`
			FileExtensions               []string      `json:"fileExtensions"`
			FilePaths                    []string      `json:"filePaths"`
			Hostnames                    []interface{} `json:"hostnames"`
			EffectiveSecurityControls    struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"websiteTargets"`
	} `json:"matchTargets"`
}

GetMatchTargetResponse ...

type GetMatchTargetSequencesRequest

type GetMatchTargetSequencesRequest struct {
	ConfigID      int    `json:"configId"`
	ConfigVersion int    `json:"configVersion"`
	Type          string `json:"type"`
}

GetMatchTargetsRequest is the argument for GetProperties

func (GetMatchTargetSequencesRequest) Validate

Validate validates GetMatchTargetSequencesRequest

type GetMatchTargetSequencesResponse

type GetMatchTargetSequencesResponse struct {
	MatchTargets struct {
		APITargets []struct {
			ConfigID                  int    `json:"configId"`
			ConfigVersion             int    `json:"configVersion"`
			Sequence                  int    `json:"sequence"`
			TargetID                  int    `json:"targetId"`
			Type                      string `json:"type"`
			EffectiveSecurityControls struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Apis []struct {
				ID   int    `json:"id"`
				Name string `json:"name"`
			} `json:"apis"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"apiTargets"`
		WebsiteTargets []struct {
			ConfigID                     int           `json:"configId"`
			ConfigVersion                int           `json:"configVersion"`
			DefaultFile                  string        `json:"defaultFile"`
			IsNegativeFileExtensionMatch bool          `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool          `json:"isNegativePathMatch"`
			Sequence                     int           `json:"sequence"`
			TargetID                     int           `json:"targetId"`
			Type                         string        `json:"type"`
			FileExtensions               []string      `json:"fileExtensions"`
			FilePaths                    []string      `json:"filePaths"`
			Hostnames                    []interface{} `json:"hostnames"`
			EffectiveSecurityControls    struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"websiteTargets"`
	} `json:"matchTargets"`
}

GetMatchTargetResponse ...

type GetMatchTargetsRequest

type GetMatchTargetsRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	TargetID      int `json:"targetId"`
}

GetMatchTargetsRequest is the argument for GetProperties

func (GetMatchTargetsRequest) Validate

func (v GetMatchTargetsRequest) Validate() error

Validate validates GetMatchTargetsRequest

type GetMatchTargetsResponse

type GetMatchTargetsResponse struct {
	MatchTargets struct {
		APITargets []struct {
			ConfigID                  int    `json:"configId,omitempty"`
			ConfigVersion             int    `json:"configVersion,omitempty"`
			Sequence                  int    `json:"sequence,omitempty"`
			TargetID                  int    `json:"targetId,omitempty"`
			Type                      string `json:"type,omitempty"`
			EffectiveSecurityControls struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
				ApplyRateControls             bool `json:"applyRateControls,omitempty"`
				ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
				ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
			} `json:"effectiveSecurityControls,omitempty"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId,omitempty"`
			} `json:"securityPolicy,omitempty"`
			Apis []struct {
				ID   int    `json:"id,omitempty"`
				Name string `json:"name,omitempty"`
			} `json:"apis,omitempty"`
			BypassNetworkLists []struct {
				Name string `json:"name,omitempty"`
				ID   string `json:"id,omitempty"`
			} `json:"bypassNetworkLists,omitempty"`
		} `json:"apiTargets,omitempty"`
		WebsiteTargets []struct {
			ConfigID                     int           `json:"configId,omitempty"`
			ConfigVersion                int           `json:"configVersion,omitempty"`
			DefaultFile                  string        `json:"defaultFile,omitempty"`
			IsNegativeFileExtensionMatch bool          `json:"isNegativeFileExtensionMatch,omitempty"`
			IsNegativePathMatch          bool          `json:"isNegativePathMatch,omitempty"`
			Sequence                     int           `json:"sequence,omitempty"`
			TargetID                     int           `json:"targetId,omitempty"`
			Type                         string        `json:"type,omitempty"`
			FileExtensions               []string      `json:"fileExtensions,omitempty"`
			FilePaths                    []string      `json:"filePaths,omitempty"`
			Hostnames                    []interface{} `json:"hostnames,omitempty"`
			EffectiveSecurityControls    struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
				ApplyRateControls             bool `json:"applyRateControls,omitempty"`
				ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
				ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
			} `json:"effectiveSecurityControls,omitempty"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId,omitempty"`
			} `json:"securityPolicy,omitempty"`
			BypassNetworkLists []struct {
				Name string `json:"name,omitempty"`
				ID   string `json:"id,omitempty"`
			} `json:"bypassNetworkLists,omitempty"`
		} `json:"websiteTargets,omitempty"`
	} `json:"matchTargets,omitempty"`
}

GetMatchTargetResponse ...

type GetMatchTargetsSequenceRequest

type GetMatchTargetsSequenceRequest struct {
	ConfigID      int    `json:"configId"`
	ConfigVersion int    `json:"configVersion"`
	Type          string `json:"type"`
}

GetMatchTargetsSequenceRequest is the argument for GetMatchTargetsSequenceRequest

type GetNetworkLayerProtectionRequest added in v2.0.4

type GetNetworkLayerProtectionRequest struct {
	ConfigID                  int    `json:"-"`
	Version                   int    `json:"-"`
	PolicyID                  string `json:"-"`
	ApplyNetworkLayerControls bool   `json:"applyNetworkLayerControls"`
}

func (GetNetworkLayerProtectionRequest) Validate added in v2.0.4

Validate validates GetNetworkLayerProtectionRequest

type GetNetworkLayerProtectionResponse added in v2.0.4

type GetNetworkLayerProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type GetNetworkLayerProtectionsRequest added in v2.0.4

type GetNetworkLayerProtectionsRequest struct {
	ConfigID                  int    `json:"-"`
	Version                   int    `json:"-"`
	PolicyID                  string `json:"-"`
	ApplyNetworkLayerControls bool   `json:"applyNetworkLayerControls"`
}

func (GetNetworkLayerProtectionsRequest) Validate added in v2.0.4

Validate validates GetNetworkLayerProtectionsRequest

type GetNetworkLayerProtectionsResponse added in v2.0.4

type GetNetworkLayerProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type GetPenaltyBoxRequest

type GetPenaltyBoxRequest struct {
	ConfigID             int    `json:"-"`
	Version              int    `json:"-"`
	PolicyID             string `json:"-"`
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection"`
}

func (GetPenaltyBoxRequest) Validate

func (v GetPenaltyBoxRequest) Validate() error

Validate validates GetPenaltyBoxRequest

type GetPenaltyBoxResponse

type GetPenaltyBoxResponse struct {
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection,omitempty"`
}

type GetPenaltyBoxesRequest

type GetPenaltyBoxesRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"current"`
	Mode     string `json:"mode"`
	Eval     string `json:"eval"`
}

func (GetPenaltyBoxesRequest) Validate

func (v GetPenaltyBoxesRequest) Validate() error

Validate validates GetPenaltyBoxsRequest

type GetPenaltyBoxesResponse

type GetPenaltyBoxesResponse struct {
	Action               string `json:"action,omitempty"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection,omitempty"`
}

type GetPolicyProtectionsRequest added in v2.0.4

type GetPolicyProtectionsRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyAPIConstraints           bool   `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool   `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool   `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool   `json:"applyRateControls"`
	ApplyReputationControls       bool   `json:"applyReputationControls"`
	ApplySlowPostControls         bool   `json:"applySlowPostControls"`
}

func (GetPolicyProtectionsRequest) Validate added in v2.0.4

func (v GetPolicyProtectionsRequest) Validate() error

Validate validates GetPolicyProtectionsRequest

type GetPolicyProtectionsResponse added in v2.0.4

type GetPolicyProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type GetRatePoliciesRequest

type GetRatePoliciesRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	RatePolicyID  int `json:"ratePolicyId"`
}

func (GetRatePoliciesRequest) Validate

func (v GetRatePoliciesRequest) Validate() error

Validate validates GetRatePolicysRequest

type GetRatePoliciesResponse

type GetRatePoliciesResponse struct {
	RatePolicies []struct {
		ID                    int    `json:"id"`
		ConfigID              int    `json:"-"`
		ConfigVersion         int    `json:"-"`
		MatchType             string `json:"matchType,omitempty"`
		Type                  string `json:"type,omitempty"`
		Name                  string `json:"name,omitempty"`
		Description           string `json:"description,omitempty"`
		AverageThreshold      int    `json:"averageThreshold,omitempty"`
		BurstThreshold        int    `json:"burstThreshold,omitempty"`
		ClientIdentifier      string `json:"clientIdentifier,omitempty"`
		UseXForwardForHeaders bool   `json:"useXForwardForHeaders,omitempty"`
		RequestType           string `json:"requestType,omitempty"`
		SameActionOnIpv6      bool   `json:"sameActionOnIpv6,omitempty"`
		Path                  struct {
			PositiveMatch bool     `json:"positiveMatch,omitempty"`
			Values        []string `json:"values,omitempty"`
		} `json:"path,omitempty"`
		PathMatchType        string `json:"pathMatchType,omitempty"`
		PathURIPositiveMatch bool   `json:"pathUriPositiveMatch,omitempty"`
		FileExtensions       struct {
			PositiveMatch bool     `json:"positiveMatch,omitempty"`
			Values        []string `json:"values,omitempty"`
		} `json:"fileExtensions,omitempty"`
		Hostnames              []string `json:"hostnames,omitempty"`
		AdditionalMatchOptions []struct {
			PositiveMatch bool     `json:"positiveMatch,omitempty"`
			Type          string   `json:"type,omitempty"`
			Values        []string `json:"values,omitempty"`
		} `json:"additionalMatchOptions,omitempty"`
		QueryParameters []struct {
			Name          string   `json:"name,omitempty"`
			Values        []string `json:"values,omitempty"`
			PositiveMatch bool     `json:"positiveMatch,omitempty"`
			ValueInRange  bool     `json:"valueInRange,omitempty"`
		} `json:"queryParameters,omitempty"`
		CreateDate      string `json:"createDate,omitempty"`
		UpdateDate      string `json:"updateDate,omitempty"`
		EnableActions   bool   `json:"enableActions,omitempty"`
		Used            bool   `json:"used,omitempty"`
		SameActionOnIpv bool   `json:"sameActionOnIpv,omitempty"`
		APISelectors    []struct {
			APIDefinitionID int   `json:"apiDefinitionId,omitempty"`
			ResourceIds     []int `json:"resourceIds,omitempty"`
		} `json:"apiSelectors,omitempty"`
		BodyParameters []struct {
			Name          string   `json:"name,omitempty"`
			Values        []string `json:"values,omitempty"`
			PositiveMatch bool     `json:"positiveMatch,omitempty"`
			ValueInRange  bool     `json:"valueInRange,omitempty"`
		} `json:"bodyParameters,omitempty"`
	} `json:"ratePolicies,omitempty"`
}

type GetRatePolicyActionRequest

type GetRatePolicyActionRequest struct {
	ConfigID   int    `json:"configId"`
	Version    int    `json:"version"`
	PolicyID   string `json:"policyId"`
	ID         int    `json:"id"`
	Ipv4Action string `json:"ipv4Action"`
	Ipv6Action string `json:"ipv6Action"`
}

func (GetRatePolicyActionRequest) Validate

func (v GetRatePolicyActionRequest) Validate() error

Validate validates GetRatePolicyActionRequest

type GetRatePolicyActionResponse

type GetRatePolicyActionResponse struct {
	RatePolicyActions []struct {
		ID         int    `json:"id"`
		Ipv4Action string `json:"ipv4Action,omitempty"`
		Ipv6Action string `json:"ipv6Action,omitempty"`
	} `json:"ratePolicyActions"`
}

type GetRatePolicyActionsRequest

type GetRatePolicyActionsRequest struct {
	ConfigID     int    `json:"configId"`
	Version      int    `json:"version"`
	PolicyID     string `json:"policyId"`
	RatePolicyID int    `json:"id"`
	Ipv4Action   string `json:"ipv4Action"`
	Ipv6Action   string `json:"ipv6Action"`
}

func (GetRatePolicyActionsRequest) Validate

func (v GetRatePolicyActionsRequest) Validate() error

Validate validates GetRatePolicyActionsRequest

type GetRatePolicyActionsResponse

type GetRatePolicyActionsResponse struct {
	RatePolicyActions []struct {
		ID         int    `json:"id"`
		Ipv4Action string `json:"ipv4Action,omitempty"`
		Ipv6Action string `json:"ipv6Action,omitempty"`
	} `json:"ratePolicyActions,omitempty"`
}

type GetRatePolicyRequest

type GetRatePolicyRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	RatePolicyID  int `json:"ratePolicyId"`
}

func (GetRatePolicyRequest) Validate

func (v GetRatePolicyRequest) Validate() error

Validate validates GetRatePolicyRequest

type GetRatePolicyResponse

type GetRatePolicyResponse struct {
	ID                    int    `json:"id,omitempty"`
	PolicyID              int    `json:"policyId,omitempty"`
	ConfigID              int    `json:"-"`
	ConfigVersion         int    `json:"-"`
	MatchType             string `json:"matchType,omitempty"`
	Type                  string `json:"type,omitempty"`
	Name                  string `json:"name,omitempty"`
	Description           string `json:"description,omitempty"`
	AverageThreshold      int    `json:"averageThreshold,omitempty"`
	BurstThreshold        int    `json:"burstThreshold,omitempty"`
	ClientIdentifier      string `json:"clientIdentifier,omitempty"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders,omitempty"`
	RequestType           string `json:"requestType,omitempty"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6,omitempty"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch,omitempty"`
		Values        []string `json:"values,omitempty"`
	} `json:"path,omitempty"`
	PathMatchType        string `json:"pathMatchType,omitempty"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch,omitempty"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch,omitempty"`
		Values        []string `json:"values,omitempty"`
	} `json:"fileExtensions,omitempty"`
	Hostnames              []string `json:"hostnames,omitempty"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch,omitempty"`
		Type          string   `json:"type,omitempty"`
		Values        []string `json:"values,omitempty"`
	} `json:"additionalMatchOptions,omitempty"`
	QueryParameters []struct {
		Name          string   `json:"name,omitempty"`
		Values        []string `json:"values,omitempty"`
		PositiveMatch bool     `json:"positiveMatch,omitempty"`
		ValueInRange  bool     `json:"valueInRange,omitempty"`
	} `json:"queryParameters,omitempty"`
	CreateDate string `json:"createDate,omitempty"`
	UpdateDate string `json:"updateDate,omitempty"`
	Used       bool   `json:"used,omitempty"`
}

type GetRateProtectionRequest added in v2.0.4

type GetRateProtectionRequest struct {
	ConfigID          int    `json:"-"`
	Version           int    `json:"-"`
	PolicyID          string `json:"-"`
	ApplyRateControls bool   `json:"applyRateControls"`
}

func (GetRateProtectionRequest) Validate added in v2.0.4

func (v GetRateProtectionRequest) Validate() error

Validate validates GetRateProtectionRequest

type GetRateProtectionResponse added in v2.0.4

type GetRateProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type GetRateProtectionsRequest added in v2.0.4

type GetRateProtectionsRequest struct {
	ConfigID          int    `json:"-"`
	Version           int    `json:"-"`
	PolicyID          string `json:"-"`
	ApplyRateControls bool   `json:"applyRateControls"`
}

func (GetRateProtectionsRequest) Validate added in v2.0.4

func (v GetRateProtectionsRequest) Validate() error

Validate validates GetRateProtectionsRequest

type GetRateProtectionsResponse added in v2.0.4

type GetRateProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type GetReputationProfileActionRequest added in v2.0.4

type GetReputationProfileActionRequest struct {
	ConfigID            int    `json:"configId"`
	Version             int    `json:"version"`
	PolicyID            string `json:"policyId"`
	ReputationProfileID int    `json:"id"`
	Action              string `json:"action"`
}

func (GetReputationProfileActionRequest) Validate added in v2.0.4

Validate validates GetReputationProfileActionRequest

type GetReputationProfileActionResponse added in v2.0.4

type GetReputationProfileActionResponse struct {
	Action string `json:"action,omitempty"`
}

type GetReputationProfileActionsRequest added in v2.0.4

type GetReputationProfileActionsRequest struct {
	ConfigID            int    `json:"configId"`
	Version             int    `json:"version"`
	PolicyID            string `json:"policyId"`
	ReputationProfileID int    `json:"id"`
	Action              string `json:"action"`
}

func (GetReputationProfileActionsRequest) Validate added in v2.0.4

Validate validates GetReputationProfileActionsRequest

type GetReputationProfileActionsResponse added in v2.0.4

type GetReputationProfileActionsResponse struct {
	ReputationProfiles []struct {
		Action string `json:"action,omitempty"`
		ID     int    `json:"id,omitempty"`
	} `json:"reputationProfiles,omitempty"`
}

type GetReputationProfileRequest added in v2.0.4

type GetReputationProfileRequest struct {
	ConfigID            int `json:"configId"`
	ConfigVersion       int `json:"configVersion"`
	ReputationProfileId int `json:"-"`
}

func (GetReputationProfileRequest) Validate added in v2.0.4

func (v GetReputationProfileRequest) Validate() error

Validate validates GetReputationProfileRequest

type GetReputationProfileResponse added in v2.0.4

type GetReputationProfileResponse struct {
	Context          string `json:"context,omitempty"`
	ContextReadable  string `json:"contextReadable,omitempty"`
	Enabled          bool   `json:"enabled,omitempty"`
	ID               int    `json:"id,omitempty"`
	Name             string `json:"name,omitempty"`
	SharedIPHandling string `json:"sharedIpHandling,omitempty"`
	Threshold        int    `json:"threshold,omitempty"`
}

type GetReputationProfilesRequest added in v2.0.4

type GetReputationProfilesRequest struct {
	ConfigID            int `json:"configId"`
	ConfigVersion       int `json:"configVersion"`
	ReputationProfileId int `json:"-"`
}

func (GetReputationProfilesRequest) Validate added in v2.0.4

func (v GetReputationProfilesRequest) Validate() error

Validate validates GetReputationProfilesRequest

type GetReputationProfilesResponse added in v2.0.4

type GetReputationProfilesResponse struct {
	ReputationProfiles []struct {
		Condition struct {
			AtomicConditions []struct {
				CheckIps      string               `json:"checkIps,omitempty"`
				ClassName     string               `json:"className,omitempty"`
				Index         int                  `json:"index,omitempty"`
				PositiveMatch bool                 `json:"positiveMatch"`
				Value         []string             `json:"value,omitempty"`
				Name          atomicConditionsName `json:"name,omitempty"`
				NameCase      bool                 `json:"nameCase,omitempty"`
				NameWildcard  bool                 `json:"nameWildcard,omitempty"`
				ValueCase     bool                 `json:"valueCase,omitempty"`
				ValueWildcard bool                 `json:"valueWildcard,omitempty"`
				Host          []string             `json:"host,omitempty"`
			} `json:"atomicConditions,omitempty"`
			PositiveMatch bool `json:"positiveMatch,omitempty"`
		} `json:"condition,omitempty"`
		Context          string `json:"context,omitempty"`
		ContextReadable  string `json:"contextReadable,omitempty"`
		Enabled          bool   `json:"enabled,omitempty"`
		ID               int    `json:"id,omitempty"`
		Name             string `json:"name,omitempty"`
		SharedIPHandling string `json:"sharedIpHandling,omitempty"`
		Threshold        int    `json:"threshold,omitempty"`
	} `json:"reputationProfiles,omitempty"`
}

type GetReputationProtectionRequest added in v2.0.4

type GetReputationProtectionRequest struct {
	ConfigID                int    `json:"-"`
	Version                 int    `json:"-"`
	PolicyID                string `json:"-"`
	ApplyReputationControls bool   `json:"applyReputationControls"`
}

func (GetReputationProtectionRequest) Validate added in v2.0.4

Validate validates GetReputationProtectionRequest

type GetReputationProtectionResponse added in v2.0.4

type GetReputationProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type GetReputationProtectionsRequest added in v2.0.4

type GetReputationProtectionsRequest struct {
	ConfigID                int    `json:"-"`
	Version                 int    `json:"-"`
	PolicyID                string `json:"-"`
	ApplyReputationControls bool   `json:"applyReputationControls"`
}

func (GetReputationProtectionsRequest) Validate added in v2.0.4

Validate validates GetReputationProtectionsRequest

type GetReputationProtectionsResponse added in v2.0.4

type GetReputationProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type GetRuleActionRequest added in v2.0.4

type GetRuleActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
}

func (GetRuleActionRequest) Validate added in v2.0.4

func (v GetRuleActionRequest) Validate() error

Validate validates GetRuleActionRequest

type GetRuleActionResponse added in v2.0.4

type GetRuleActionResponse struct {
	Action string `json:"action,omitempty"`
	ID     int    `json:"id,omitempty"`
}

type GetRuleActionsRequest added in v2.0.4

type GetRuleActionsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
}

func (GetRuleActionsRequest) Validate added in v2.0.4

func (v GetRuleActionsRequest) Validate() error

Validate validates GetRuleActionsRequest

type GetRuleActionsResponse added in v2.0.4

type GetRuleActionsResponse struct {
	RuleActions []struct {
		Action string `json:"action,omitempty"`
		ID     int    `json:"id,omitempty"`
	} `json:"ruleActions,omitempty"`
}

type GetRuleConditionExceptionRequest added in v2.0.4

type GetRuleConditionExceptionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
}

func (GetRuleConditionExceptionRequest) Validate added in v2.0.4

Validate validates GetRuleConditionExceptionRequest

type GetRuleConditionExceptionResponse added in v2.0.4

type GetRuleConditionExceptionResponse struct {
	Conditions []struct {
		Type          string   `json:"type,omitempty"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch,omitempty"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions,omitempty"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues,omitempty"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names,omitempty"`
			Selector string   `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamNames,omitempty"`
	} `json:"exception,omitempty"`
}

type GetRuleConditionExceptionsRequest added in v2.0.4

type GetRuleConditionExceptionsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
}

func (GetRuleConditionExceptionsRequest) Validate added in v2.0.4

Validate validates GetRuleConditionExceptionsRequest

type GetRuleConditionExceptionsResponse added in v2.0.4

type GetRuleConditionExceptionsResponse struct {
	Conditions []struct {
		Type          string   `json:"type,omitempty"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch,omitempty"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions,omitempty"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues,omitempty"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names,omitempty"`
			Selector string   `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamNames,omitempty"`
	} `json:"exception,omitempty"`
}

type GetRuleUpgradeRequest added in v2.0.4

type GetRuleUpgradeRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
}

func (GetRuleUpgradeRequest) Validate added in v2.0.4

func (v GetRuleUpgradeRequest) Validate() error

Validate validates GetRuleUpgradeRequest

type GetRuleUpgradeResponse added in v2.0.4

type GetRuleUpgradeResponse struct {
	Current          string `json:"current,omitempty"`
	Evaluating       string `json:"evaluating,omitempty"`
	Latest           string `json:"latest,omitempty"`
	KRSToEvalUpdates struct {
		UpdatedRules []struct {
			ID    int    `json:"id,omitempty"`
			Title string `json:"title,omitempty"`
		} `json:"updatedRules,omitempty"`
		NewRules []struct {
			ID    int    `json:"id,omitempty"`
			Title string `json:"title,omitempty"`
		} `json:"newRules"`
	} `json:"KRSToEvalUpdates,omitempty"`
	EvalToEvalUpdates struct {
		NewRules []struct {
			ID    int    `json:"id,omitempty"`
			Title string `json:"title,omitempty"`
		} `json:"newRules,omitempty"`
	} `json:"EvalToEvalUpdates,omitempty"`
	KRSToLatestUpdates struct {
		DeletedRules []struct {
			ID    int    `json:"id,omitempty"`
			Title string `json:"title,omitempty"`
		} `json:"deletedRules,omitempty"`
		NewRules []struct {
			ID    int    `json:"id,omitempty"`
			Title string `json:"title,omitempty"`
		} `json:"newRules,omitempty"`
	} `json:"KRSToLatestUpdates,omitempty"`
}

type GetSecurityPoliciesRequest

type GetSecurityPoliciesRequest struct {
	ConfigID   int    `json:"configId"`
	Version    int    `json:"version"`
	PolicyName string `json:"-"`
}

func (GetSecurityPoliciesRequest) Validate added in v2.0.4

func (v GetSecurityPoliciesRequest) Validate() error

Validate validates GetSecurityPolicysRequest

type GetSecurityPoliciesResponse

type GetSecurityPoliciesResponse struct {
	ConfigID int `json:"configId,omitempty"`
	Version  int `json:"version,omitempty"`
	Policies []struct {
		PolicyID                string `json:"policyId,omitempty"`
		PolicyName              string `json:"policyName,omitempty"`
		HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey,omitempty"`
		PolicySecurityControls  struct {
			ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
			ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
			ApplyRateControls             bool `json:"applyRateControls,omitempty"`
			ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
			ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
			ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
			ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
		} `json:"policySecurityControls,omitempty"`
	} `json:"policies,omitempty"`
}

type GetSecurityPolicyCloneRequest

type GetSecurityPolicyCloneRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	PolicyID string `json:"policyId"`
}

func (GetSecurityPolicyCloneRequest) Validate

func (v GetSecurityPolicyCloneRequest) Validate() error

Validate validates GetSecurityPolicyCloneRequest

type GetSecurityPolicyCloneResponse

type GetSecurityPolicyCloneResponse struct {
	ConfigID               int    `json:"configId,omitempty"`
	PolicyID               string `json:"policyId,omitempty"`
	PolicyName             string `json:"policyName,omitempty"`
	PolicySecurityControls struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
		ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
		ApplyRateControls             bool `json:"applyRateControls,omitempty"`
		ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
		ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
	} `json:"policySecurityControls,omitempty"`
	Version int `json:"version,omitempty"`
}

type GetSecurityPolicyClonesRequest

type GetSecurityPolicyClonesRequest struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
}

func (GetSecurityPolicyClonesRequest) Validate

Validate validates GetSecurityPolicyClonesRequest

type GetSecurityPolicyClonesResponse

type GetSecurityPolicyClonesResponse struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
	Policies []struct {
		PolicyID                string `json:"policyId"`
		PolicyName              string `json:"policyName"`
		HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
		PolicySecurityControls  struct {
			ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
			ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
			ApplyRateControls             bool `json:"applyRateControls"`
			ApplyReputationControls       bool `json:"applyReputationControls"`
			ApplyBotmanControls           bool `json:"applyBotmanControls"`
			ApplyAPIConstraints           bool `json:"applyApiConstraints"`
			ApplySlowPostControls         bool `json:"applySlowPostControls"`
		} `json:"policySecurityControls"`
	} `json:"policies"`
}

type GetSecurityPolicyRequest added in v2.0.4

type GetSecurityPolicyRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	PolicyID string `json:"policyId"`
}

func (GetSecurityPolicyRequest) Validate added in v2.0.4

func (v GetSecurityPolicyRequest) Validate() error

Validate validates GetSecurityPolicyRequest

type GetSecurityPolicyResponse added in v2.0.4

type GetSecurityPolicyResponse struct {
	ConfigID               int    `json:"configId,omitempty"`
	PolicyID               string `json:"policyId,omitempty"`
	PolicyName             string `json:"policyName,omitempty"`
	PolicySecurityControls struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
		ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
		ApplyRateControls             bool `json:"applyRateControls,omitempty"`
		ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
		ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
	} `json:"policySecurityControls,omitempty"`
	Version int `json:"version,omitempty"`
}

type GetSelectableHostnamesRequest

type GetSelectableHostnamesRequest struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
}

type GetSelectableHostnamesResponse

type GetSelectableHostnamesResponse struct {
	AvailableSet []struct {
		ActiveInProduction     bool   `json:"activeInProduction,omitempty"`
		ActiveInStaging        bool   `json:"activeInStaging,omitempty"`
		ArlInclusion           bool   `json:"arlInclusion,omitempty"`
		Hostname               string `json:"hostname,omitempty"`
		ConfigIDInProduction   int    `json:"configIdInProduction,omitempty"`
		ConfigNameInProduction string `json:"configNameInProduction,omitempty"`
	} `json:"availableSet,omitempty"`
	ConfigID                int  `json:"configId,omitempty"`
	ConfigVersion           int  `json:"configVersion,omitempty"`
	ProtectARLInclusionHost bool `json:"protectARLInclusionHost,omitempty"`
}

type GetSelectedHostnameRequest

type GetSelectedHostnameRequest struct {
	ConfigID     int        `json:"configId"`
	Version      int        `json:"version"`
	HostnameList []Hostname `json:"hostnameList"`
}

func (GetSelectedHostnameRequest) Validate

func (v GetSelectedHostnameRequest) Validate() error

Validate validates GetSelectedHostnameRequest

type GetSelectedHostnameResponse

type GetSelectedHostnameResponse struct {
	HostnameList []Hostname `json:"hostnameList"`
}

type GetSelectedHostnamesRequest

type GetSelectedHostnamesRequest struct {
	ConfigID     int        `json:"configId"`
	Version      int        `json:"version"`
	HostnameList []Hostname `json:"hostnameList"`
}

func (GetSelectedHostnamesRequest) Validate

func (v GetSelectedHostnamesRequest) Validate() error

Validate validates GetSelectedHostnamesRequest

type GetSelectedHostnamesResponse

type GetSelectedHostnamesResponse struct {
	HostnameList []Hostname `json:"hostnameList,omitempty"`
}

type GetSlowPostProtectionRequest added in v2.0.4

type GetSlowPostProtectionRequest struct {
	ConfigID              int    `json:"-"`
	Version               int    `json:"-"`
	PolicyID              string `json:"-"`
	ApplySlowPostControls bool   `json:"applySlowPostControls"`
}

func (GetSlowPostProtectionRequest) Validate added in v2.0.4

func (v GetSlowPostProtectionRequest) Validate() error

Validate validates GetSlowPostProtectionRequest

type GetSlowPostProtectionResponse added in v2.0.4

type GetSlowPostProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type GetSlowPostProtectionSettingRequest

type GetSlowPostProtectionSettingRequest struct {
	ConfigID          int    `json:"configId"`
	Version           int    `json:"version"`
	PolicyID          string `json:"policyId"`
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

func (GetSlowPostProtectionSettingRequest) Validate

Validate validates GetSlowPostProtectionSettingRequest

type GetSlowPostProtectionSettingResponse

type GetSlowPostProtectionSettingResponse struct {
	Action            string `json:"action,omitempty"`
	SlowRateThreshold struct {
		Rate   int `json:"rate,omitempty"`
		Period int `json:"period,omitempty"`
	} `json:"slowRateThreshold,omitempty"`
	DurationThreshold struct {
		Timeout int `json:"timeout,omitempty"`
	} `json:"durationThreshold,omitempty"`
}

type GetSlowPostProtectionSettingsRequest

type GetSlowPostProtectionSettingsRequest struct {
	ConfigID          int    `json:"configId"`
	Version           int    `json:"version"`
	PolicyID          string `json:"policyId"`
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

func (GetSlowPostProtectionSettingsRequest) Validate

Validate validates GetSlowPostProtectionSettingsRequest

type GetSlowPostProtectionSettingsResponse

type GetSlowPostProtectionSettingsResponse struct {
	Action            string `json:"action,omitempty"`
	SlowRateThreshold struct {
		Rate   int `json:"rate,omitempty"`
		Period int `json:"period,omitempty"`
	} `json:"slowRateThreshold,omitempty"`
	DurationThreshold struct {
		Timeout int `json:"timeout,omitempty"`
	} `json:"durationThreshold,omitempty"`
}

type GetSlowPostProtectionsRequest added in v2.0.4

type GetSlowPostProtectionsRequest struct {
	ConfigID              int    `json:"-"`
	Version               int    `json:"-"`
	PolicyID              string `json:"-"`
	ApplySlowPostControls bool   `json:"applySlowPostControls"`
}

func (GetSlowPostProtectionsRequest) Validate added in v2.0.4

func (v GetSlowPostProtectionsRequest) Validate() error

Validate validates GetSlowPostProtectionsRequest

type GetSlowPostProtectionsResponse added in v2.0.4

type GetSlowPostProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type GetWAFModeRequest

type GetWAFModeRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"current"`
	Mode     string `json:"mode"`
	Eval     string `json:"eval"`
}

func (GetWAFModeRequest) Validate

func (v GetWAFModeRequest) Validate() error

Validate validates GetWAFModeRequest

type GetWAFModeResponse

type GetWAFModeResponse struct {
	Current    string `json:"current,omitempty"`
	Mode       string `json:"mode,omitempty"`
	Eval       string `json:"eval,omitempty"`
	Evaluating string `json:"evaluating,omitempty"`
	Expires    string `json:"expires,omitempty"`
}

type GetWAFModesRequest

type GetWAFModesRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"current"`
	Mode     string `json:"mode"`
	Eval     string `json:"eval"`
}

func (GetWAFModesRequest) Validate

func (v GetWAFModesRequest) Validate() error

Validate validates GetWAFModesRequest

type GetWAFModesResponse

type GetWAFModesResponse struct {
	Current    string `json:"current,omitempty"`
	Mode       string `json:"mode,omitempty"`
	Eval       string `json:"eval,omitempty"`
	Evaluating string `json:"evaluating,omitempty"`
	Expires    string `json:"expires,omitempty"`
}

type GetWAFProtectionRequest

type GetWAFProtectionRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
}

func (GetWAFProtectionRequest) Validate

func (v GetWAFProtectionRequest) Validate() error

Validate validates GetWAFProtectionRequest

type GetWAFProtectionResponse

type GetWAFProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type GetWAFProtectionsRequest

type GetWAFProtectionsRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
}

func (GetWAFProtectionsRequest) Validate

func (v GetWAFProtectionsRequest) Validate() error

Validate validates GetWAFProtectionsRequest

type GetWAFProtectionsResponse

type GetWAFProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints,omitempty"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
	ApplyBotmanControls           bool `json:"applyBotmanControls,omitempty"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls,omitempty"`
	ApplyRateControls             bool `json:"applyRateControls,omitempty"`
	ApplyReputationControls       bool `json:"applyReputationControls,omitempty"`
	ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
}

type Hostname

type Hostname struct {
	Hostname string `json:"hostname"`
}

type Hostnames

type Hostnames struct {
	Hostnames string `json:"hostnames"`
}

type IPGeo added in v2.0.4

type IPGeo interface {
	GetIPGeo(ctx context.Context, params GetIPGeoRequest) (*GetIPGeoResponse, error)
	UpdateIPGeo(ctx context.Context, params UpdateIPGeoRequest) (*UpdateIPGeoResponse, error)
}

IPGeo contains operations available on IPGeo resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getipgeo

type MatchTarget

type MatchTarget interface {
	GetMatchTargets(ctx context.Context, params GetMatchTargetsRequest) (*GetMatchTargetsResponse, error)
	GetMatchTarget(ctx context.Context, params GetMatchTargetRequest) (*GetMatchTargetResponse, error)
	CreateMatchTarget(ctx context.Context, params CreateMatchTargetRequest) (*CreateMatchTargetResponse, error)
	UpdateMatchTarget(ctx context.Context, params UpdateMatchTargetRequest) (*UpdateMatchTargetResponse, error)
	RemoveMatchTarget(ctx context.Context, params RemoveMatchTargetRequest) (*RemoveMatchTargetResponse, error)
}

MatchTarget contains operations available on MatchTarget resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getmatchtarget

type MatchTargetSequence

type MatchTargetSequence interface {
	GetMatchTargetSequences(ctx context.Context, params GetMatchTargetSequencesRequest) (*GetMatchTargetSequencesResponse, error)
	GetMatchTargetSequence(ctx context.Context, params GetMatchTargetSequenceRequest) (*GetMatchTargetSequenceResponse, error)
	UpdateMatchTargetSequence(ctx context.Context, params UpdateMatchTargetSequenceRequest) (*UpdateMatchTargetSequenceResponse, error)
}

MatchTargetSequence contains operations available on MatchTargetSequence resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getmatchtargetsequence

type NetworkLayerProtection added in v2.0.4

type NetworkLayerProtection interface {
	GetNetworkLayerProtections(ctx context.Context, params GetNetworkLayerProtectionsRequest) (*GetNetworkLayerProtectionsResponse, error)
	GetNetworkLayerProtection(ctx context.Context, params GetNetworkLayerProtectionRequest) (*GetNetworkLayerProtectionResponse, error)
	UpdateNetworkLayerProtection(ctx context.Context, params UpdateNetworkLayerProtectionRequest) (*UpdateNetworkLayerProtectionResponse, error)
	RemoveNetworkLayerProtection(ctx context.Context, params RemoveNetworkLayerProtectionRequest) (*RemoveNetworkLayerProtectionResponse, error)
}

NetworkLayerProtection contains operations available on NetworkLayerProtection resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getNetworkLayerprotection

type NetworkValue

type NetworkValue string

NetworkValue is used to create an "enum" of possible Activation.Network values

type Option

type Option func(*appsec)

Option defines a PAPI option

type PenaltyBox

type PenaltyBox interface {
	GetPenaltyBoxes(ctx context.Context, params GetPenaltyBoxesRequest) (*GetPenaltyBoxesResponse, error)
	GetPenaltyBox(ctx context.Context, params GetPenaltyBoxRequest) (*GetPenaltyBoxResponse, error)
	UpdatePenaltyBox(ctx context.Context, params UpdatePenaltyBoxRequest) (*UpdatePenaltyBoxResponse, error)
}

PenaltyBox contains operations available on PenaltyBox resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getpenaltybox

type Policies

type Policies struct {
	HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
	PolicyID                string `json:"policyId"`
	PolicyName              string `json:"policyName"`
	PolicySecurityControls  struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	}
}

type PolicyProtections added in v2.0.4

type PolicyProtections interface {
	GetPolicyProtections(ctx context.Context, params GetPolicyProtectionsRequest) (*GetPolicyProtectionsResponse, error)
	UpdatePolicyProtections(ctx context.Context, params UpdatePolicyProtectionsRequest) (*UpdatePolicyProtectionsResponse, error)
	RemovePolicyProtections(ctx context.Context, params RemovePolicyProtectionsRequest) (*RemovePolicyProtectionsResponse, error)
}

PolicyProtections contains operations available on PolicyProtections resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getpolicyprotections

type RatePolicy

type RatePolicy interface {
	GetRatePolicies(ctx context.Context, params GetRatePoliciesRequest) (*GetRatePoliciesResponse, error)
	GetRatePolicy(ctx context.Context, params GetRatePolicyRequest) (*GetRatePolicyResponse, error)
	CreateRatePolicy(ctx context.Context, params CreateRatePolicyRequest) (*CreateRatePolicyResponse, error)
	UpdateRatePolicy(ctx context.Context, params UpdateRatePolicyRequest) (*UpdateRatePolicyResponse, error)
	RemoveRatePolicy(ctx context.Context, params RemoveRatePolicyRequest) (*RemoveRatePolicyResponse, error)
}

RatePolicy contains operations available on RatePolicy resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getratepolicy

type RatePolicyAction

type RatePolicyAction interface {
	GetRatePolicyActions(ctx context.Context, params GetRatePolicyActionsRequest) (*GetRatePolicyActionsResponse, error)
	GetRatePolicyAction(ctx context.Context, params GetRatePolicyActionRequest) (*GetRatePolicyActionResponse, error)
	UpdateRatePolicyAction(ctx context.Context, params UpdateRatePolicyActionRequest) (*UpdateRatePolicyActionResponse, error)
}

RatePolicyAction contains operations available on RatePolicyAction resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getratepolicyaction

type RatePolicyActionPost

type RatePolicyActionPost struct {
	ID         int    `json:"id"`
	Ipv4Action string `json:"ipv4Action"`
	Ipv6Action string `json:"ipv6Action"`
}

type RateProtection added in v2.0.4

type RateProtection interface {
	GetRateProtections(ctx context.Context, params GetRateProtectionsRequest) (*GetRateProtectionsResponse, error)
	GetRateProtection(ctx context.Context, params GetRateProtectionRequest) (*GetRateProtectionResponse, error)
	UpdateRateProtection(ctx context.Context, params UpdateRateProtectionRequest) (*UpdateRateProtectionResponse, error)
}

RateProtection contains operations available on RateProtection resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getrateprotection

type RemoveActivationsRequest

type RemoveActivationsRequest struct {
	ActivationID       int      `json:"-"`
	Action             string   `json:"action"`
	Network            string   `json:"network"`
	Note               string   `json:"note"`
	NotificationEmails []string `json:"notificationEmails"`
	ActivationConfigs  []struct {
		ConfigID      int `json:"configId"`
		ConfigVersion int `json:"configVersion"`
	} `json:"activationConfigs"`
}

type RemoveActivationsResponse

type RemoveActivationsResponse struct {
	DispatchCount     int          `json:"dispatchCount"`
	ActivationID      int          `json:"activationId"`
	Action            string       `json:"action"`
	Status            StatusValue  `json:"status"`
	Network           NetworkValue `json:"network"`
	Estimate          string       `json:"estimate"`
	CreatedBy         string       `json:"createdBy"`
	CreateDate        time.Time    `json:"createDate"`
	ActivationConfigs []struct {
		ConfigID              int    `json:"configId"`
		ConfigName            string `json:"configName"`
		ConfigVersion         int    `json:"configVersion"`
		PreviousConfigVersion int    `json:"previousConfigVersion"`
	} `json:"activationConfigs"`
}

type RemoveAttackGroupActionRequest added in v2.0.4

type RemoveAttackGroupActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Action   string `json:"action"`
	Group    string `json:"group"`
}

type RemoveAttackGroupActionResponse added in v2.0.4

type RemoveAttackGroupActionResponse struct {
	Action string `json:"action"`
}

type RemoveAttackGroupConditionExceptionRequest added in v2.0.4

type RemoveAttackGroupConditionExceptionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Group    string `json:"-"`
	Empty    string `json:"empty"`
}

func (RemoveAttackGroupConditionExceptionRequest) Validate added in v2.0.4

Validate validates UpdateRuleConditionExceptionRequest

type RemoveAttackGroupConditionExceptionResponse added in v2.0.4

type RemoveAttackGroupConditionExceptionResponse struct {
	Conditions []interface{} `json:"conditions"`
	Exception  struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names"`
			Selector string   `json:"selector"`
		} `json:"specificHeaderCookieOrParamNames"`
		SpecificHeaderCookieOrParamPrefix struct {
			Prefix   string `json:"prefix"`
			Selector string `json:"selector"`
		} `json:"specificHeaderCookieOrParamPrefix"`
	} `json:"exception"`
}

type RemoveCustomRuleRequest

type RemoveCustomRuleRequest struct {
	ConfigID int `json:"configid,omitempty"`
	ID       int `json:"id,omitempty"`
}

func (RemoveCustomRuleRequest) Validate

func (v RemoveCustomRuleRequest) Validate() error

Validate validates RemoveCustomRuleRequest

type RemoveCustomRuleResponse

type RemoveCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type RemoveEvalRequest added in v2.0.4

type RemoveEvalRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"-"`
	Mode     string `json:"-"`
	Eval     string `json:"eval"`
}

func (RemoveEvalRequest) Validate added in v2.0.4

func (v RemoveEvalRequest) Validate() error

Validate validates UpdateEvalRequest

type RemoveEvalResponse added in v2.0.4

type RemoveEvalResponse struct {
	Current string `json:"current"`
	Eval    string `json:"eval"`
	Mode    string `json:"mode"`
}

type RemoveEvalRuleConditionExceptionRequest added in v2.0.4

type RemoveEvalRuleConditionExceptionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
	Empty    string `json:"empty"`
}

func (RemoveEvalRuleConditionExceptionRequest) Validate added in v2.0.4

Validate validates UpdateRuleConditionExceptionRequest

type RemoveEvalRuleConditionExceptionResponse added in v2.0.4

type RemoveEvalRuleConditionExceptionResponse struct {
	Conditions []struct {
		Type          string   `json:"type"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names"`
			Selector string   `json:"selector"`
		} `json:"specificHeaderCookieOrParamNames"`
	} `json:"exception"`
}

type RemoveMatchTargetRequest

type RemoveMatchTargetRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	TargetID      int `json:"targetId"`
}

RemoveMatchTargetRequest is the argument for GetProperties

func (RemoveMatchTargetRequest) Validate

func (v RemoveMatchTargetRequest) Validate() error

Validate validates RemoveMatchTargetRequest

type RemoveMatchTargetResponse

type RemoveMatchTargetResponse struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

RemoveMatchTargetResponse ...

type RemoveNetworkLayerProtectionRequest added in v2.0.4

type RemoveNetworkLayerProtectionRequest struct {
	ConfigID                  int    `json:"-"`
	Version                   int    `json:"-"`
	PolicyID                  string `json:"-"`
	ApplyNetworkLayerControls bool   `json:"applyNetworkLayerControls"`
}

func (RemoveNetworkLayerProtectionRequest) Validate added in v2.0.4

Validate validates RemoveNetworkLayerProtectionRequest

type RemoveNetworkLayerProtectionResponse added in v2.0.4

type RemoveNetworkLayerProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type RemovePolicyProtectionsRequest added in v2.0.4

type RemovePolicyProtectionsRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyAPIConstraints           bool   `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool   `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool   `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool   `json:"applyRateControls"`
	ApplyReputationControls       bool   `json:"applyReputationControls"`
	ApplySlowPostControls         bool   `json:"applySlowPostControls"`
}

func (RemovePolicyProtectionsRequest) Validate added in v2.0.4

Validate validates RemovePolicyProtectionsRequest

type RemovePolicyProtectionsResponse added in v2.0.4

type RemovePolicyProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type RemoveRatePolicyRequest

type RemoveRatePolicyRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	RatePolicyID  int `json:"ratePolicyId"`
}

func (RemoveRatePolicyRequest) Validate

func (v RemoveRatePolicyRequest) Validate() error

Validate validates RemoveRatePolicyRequest

type RemoveRatePolicyResponse

type RemoveRatePolicyResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type RemoveReputationProfileRequest added in v2.0.4

type RemoveReputationProfileRequest struct {
	ConfigID            int `json:"configId"`
	ConfigVersion       int `json:"configVersion"`
	ReputationProfileId int `json:"-"`
}

func (RemoveReputationProfileRequest) Validate added in v2.0.4

Validate validates RemoveReputationProfileRequest

type RemoveReputationProfileResponse added in v2.0.4

type RemoveReputationProfileResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type RemoveReputationProtectionRequest added in v2.0.4

type RemoveReputationProtectionRequest struct {
	ConfigID                int    `json:"-"`
	Version                 int    `json:"-"`
	PolicyID                string `json:"-"`
	ApplyReputationControls bool   `json:"applyReputationControls"`
}

func (RemoveReputationProtectionRequest) Validate added in v2.0.4

Validate validates RemoveReputationProtectionRequest

type RemoveReputationProtectionResponse added in v2.0.4

type RemoveReputationProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type RemoveRuleConditionExceptionRequest added in v2.0.4

type RemoveRuleConditionExceptionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
	Empty    string `json:"empty"`
}

func (RemoveRuleConditionExceptionRequest) Validate added in v2.0.4

Validate validates UpdateRuleConditionExceptionRequest

type RemoveRuleConditionExceptionResponse added in v2.0.4

type RemoveRuleConditionExceptionResponse struct {
	Conditions []struct {
		Type          string   `json:"type"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names"`
			Selector string   `json:"selector"`
		} `json:"specificHeaderCookieOrParamNames"`
	} `json:"exception"`
}

type RemoveSecurityPolicyRequest added in v2.0.4

type RemoveSecurityPolicyRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	PolicyID string `json:"policyId"`
}

func (RemoveSecurityPolicyRequest) Validate added in v2.0.4

func (v RemoveSecurityPolicyRequest) Validate() error

Validate validates RemoveSecurityPolicyRequest

type RemoveSecurityPolicyResponse added in v2.0.4

type RemoveSecurityPolicyResponse struct {
	ConfigID               int    `json:"configId"`
	PolicyID               string `json:"policyId"`
	PolicyName             string `json:"policyName"`
	PolicySecurityControls struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"policySecurityControls"`
	Version int `json:"version"`
}

type ReputationProfile added in v2.0.4

type ReputationProfile interface {
	GetReputationProfiles(ctx context.Context, params GetReputationProfilesRequest) (*GetReputationProfilesResponse, error)
	GetReputationProfile(ctx context.Context, params GetReputationProfileRequest) (*GetReputationProfileResponse, error)
	CreateReputationProfile(ctx context.Context, params CreateReputationProfileRequest) (*CreateReputationProfileResponse, error)
	UpdateReputationProfile(ctx context.Context, params UpdateReputationProfileRequest) (*UpdateReputationProfileResponse, error)
	RemoveReputationProfile(ctx context.Context, params RemoveReputationProfileRequest) (*RemoveReputationProfileResponse, error)
}

ReputationProfile contains operations available on ReputationProfile resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getreputationprofile

type ReputationProfileAction added in v2.0.4

type ReputationProfileAction interface {
	GetReputationProfileActions(ctx context.Context, params GetReputationProfileActionsRequest) (*GetReputationProfileActionsResponse, error)
	GetReputationProfileAction(ctx context.Context, params GetReputationProfileActionRequest) (*GetReputationProfileActionResponse, error)
	UpdateReputationProfileAction(ctx context.Context, params UpdateReputationProfileActionRequest) (*UpdateReputationProfileActionResponse, error)
}

ReputationProfileAction contains operations available on ReputationProfileAction resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getreputationprofileaction

type ReputationProfileActionPost added in v2.0.4

type ReputationProfileActionPost struct {
	// contains filtered or unexported fields
}

type ReputationProtection added in v2.0.4

type ReputationProtection interface {
	GetReputationProtections(ctx context.Context, params GetReputationProtectionsRequest) (*GetReputationProtectionsResponse, error)
	GetReputationProtection(ctx context.Context, params GetReputationProtectionRequest) (*GetReputationProtectionResponse, error)
	UpdateReputationProtection(ctx context.Context, params UpdateReputationProtectionRequest) (*UpdateReputationProtectionResponse, error)
	RemoveReputationProtection(ctx context.Context, params RemoveReputationProtectionRequest) (*RemoveReputationProtectionResponse, error)
}

ReputationProtection contains operations available on ReputationProtection resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getreputationprotection

type RuleAction added in v2.0.4

type RuleAction interface {
	GetRuleActions(ctx context.Context, params GetRuleActionsRequest) (*GetRuleActionsResponse, error)
	GetRuleAction(ctx context.Context, params GetRuleActionRequest) (*GetRuleActionResponse, error)
	UpdateRuleAction(ctx context.Context, params UpdateRuleActionRequest) (*UpdateRuleActionResponse, error)
}

RuleAction contains operations available on RuleAction resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getruleaction

type RuleConditionException added in v2.0.4

type RuleConditionException interface {
	GetRuleConditionExceptions(ctx context.Context, params GetRuleConditionExceptionsRequest) (*GetRuleConditionExceptionsResponse, error)
	GetRuleConditionException(ctx context.Context, params GetRuleConditionExceptionRequest) (*GetRuleConditionExceptionResponse, error)
	UpdateRuleConditionException(ctx context.Context, params UpdateRuleConditionExceptionRequest) (*UpdateRuleConditionExceptionResponse, error)
	RemoveRuleConditionException(ctx context.Context, params RemoveRuleConditionExceptionRequest) (*RemoveRuleConditionExceptionResponse, error)
}

RuleConditionException contains operations available on RuleConditionException resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getruleconditionexception

type RuleUpgrade added in v2.0.4

type RuleUpgrade interface {
	GetRuleUpgrade(ctx context.Context, params GetRuleUpgradeRequest) (*GetRuleUpgradeResponse, error)
	UpdateRuleUpgrade(ctx context.Context, params UpdateRuleUpgradeRequest) (*UpdateRuleUpgradeResponse, error)
}

RuleUpgrade contains operations available on RuleUpgrade resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getruleupgrade

type SecurityPolicy

type SecurityPolicy interface {
	GetSecurityPolicies(ctx context.Context, params GetSecurityPoliciesRequest) (*GetSecurityPoliciesResponse, error)
	GetSecurityPolicy(ctx context.Context, params GetSecurityPolicyRequest) (*GetSecurityPolicyResponse, error)
	CreateSecurityPolicy(ctx context.Context, params CreateSecurityPolicyRequest) (*CreateSecurityPolicyResponse, error)
	UpdateSecurityPolicy(ctx context.Context, params UpdateSecurityPolicyRequest) (*UpdateSecurityPolicyResponse, error)
	RemoveSecurityPolicy(ctx context.Context, params RemoveSecurityPolicyRequest) (*RemoveSecurityPolicyResponse, error)
}

SecurityPolicy contains operations available on SecurityPolicy resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getsecuritypolicy

type SecurityPolicyClone

type SecurityPolicyClone interface {
	GetSecurityPolicyClones(ctx context.Context, params GetSecurityPolicyClonesRequest) (*GetSecurityPolicyClonesResponse, error)
	GetSecurityPolicyClone(ctx context.Context, params GetSecurityPolicyCloneRequest) (*GetSecurityPolicyCloneResponse, error)
	CreateSecurityPolicyClone(ctx context.Context, params CreateSecurityPolicyCloneRequest) (*CreateSecurityPolicyCloneResponse, error)
}

SecurityPolicyClone contains operations available on SecurityPolicyClone resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getsecuritypolicyclone

type SecurityPolicyCloneResponse

type SecurityPolicyCloneResponse struct {
	ConfigID int        `json:"configId"`
	Policies []Policies `json:"policies"`
	Version  int        `json:"version"`
}

type SelectableHostnames

type SelectableHostnames interface {
	GetSelectableHostnames(ctx context.Context, params GetSelectableHostnamesRequest) (*GetSelectableHostnamesResponse, error)
}

SelectableHostnames contains operations available on SelectableHostnames resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getselectablehostnames

type SelectedHostname

type SelectedHostname interface {
	GetSelectedHostnames(ctx context.Context, params GetSelectedHostnamesRequest) (*GetSelectedHostnamesResponse, error)
	GetSelectedHostname(ctx context.Context, params GetSelectedHostnameRequest) (*GetSelectedHostnameResponse, error)
	UpdateSelectedHostname(ctx context.Context, params UpdateSelectedHostnameRequest) (*UpdateSelectedHostnameResponse, error)
}

SelectedHostname contains operations available on SelectedHostname resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getselectedhostname

type SlowPostProtection added in v2.0.4

type SlowPostProtection interface {
	GetSlowPostProtections(ctx context.Context, params GetSlowPostProtectionsRequest) (*GetSlowPostProtectionsResponse, error)
	GetSlowPostProtection(ctx context.Context, params GetSlowPostProtectionRequest) (*GetSlowPostProtectionResponse, error)
	UpdateSlowPostProtection(ctx context.Context, params UpdateSlowPostProtectionRequest) (*UpdateSlowPostProtectionResponse, error)
}

SlowPostProtection contains operations available on SlowPostProtection resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getslowpostprotection

type SlowPostProtectionSetting

type SlowPostProtectionSetting interface {
	GetSlowPostProtectionSettings(ctx context.Context, params GetSlowPostProtectionSettingsRequest) (*GetSlowPostProtectionSettingsResponse, error)
	GetSlowPostProtectionSetting(ctx context.Context, params GetSlowPostProtectionSettingRequest) (*GetSlowPostProtectionSettingResponse, error)
	UpdateSlowPostProtectionSetting(ctx context.Context, params UpdateSlowPostProtectionSettingRequest) (*UpdateSlowPostProtectionSettingResponse, error)
}

SlowPostProtectionSetting contains operations available on SlowPostProtectionSetting resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getslowpostprotectionsetting

type StatusValue

type StatusValue string

StatusValue is used to create an "enum" of possible Activation.Status values

type TargetSequence

type TargetSequence struct {
	TargetID int `json:"targetId"`
	Sequence int `json:"sequence"`
}

BypassNetworkList ...

type UpdateAttackGroupActionRequest added in v2.0.4

type UpdateAttackGroupActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Action   string `json:"action"`
	Group    string `json:"group"`
}

func (UpdateAttackGroupActionRequest) Validate added in v2.0.4

Validate validates UpdateAttackGroupActionRequest

type UpdateAttackGroupActionResponse added in v2.0.4

type UpdateAttackGroupActionResponse struct {
	Action string `json:"action"`
}

type UpdateAttackGroupConditionExceptionRequest added in v2.0.4

type UpdateAttackGroupConditionExceptionRequest struct {
	ConfigID   int    `json:"-"`
	Version    int    `json:"-"`
	PolicyID   string `json:"-"`
	Group      string `json:"-"`
	Conditions []struct {
		Type          string   `json:"type"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names,omitempty"`
			Selector string   `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamNames,omitempty"`
		SpecificHeaderCookieOrParamPrefix struct {
			Prefix   string `json:"prefix,omitempty"`
			Selector string `json:"selector,omitempty"`
		} `json:"specificHeaderCookieOrParamPrefix,omitempty"`
	} `json:"exception"`
}

func (UpdateAttackGroupConditionExceptionRequest) Validate added in v2.0.4

Validate validates UpdateAttackGroupConditionExceptionRequest

type UpdateAttackGroupConditionExceptionResponse added in v2.0.4

type UpdateAttackGroupConditionExceptionResponse struct {
	Conditions []struct {
		Type          string   `json:"type"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names"`
			Selector string   `json:"selector"`
		} `json:"specificHeaderCookieOrParamNames"`
		SpecificHeaderCookieOrParamPrefix struct {
			Prefix   string `json:"prefix"`
			Selector string `json:"selector"`
		} `json:"specificHeaderCookieOrParamPrefix"`
	} `json:"exception"`
}

type UpdateCustomRuleActionRequest

type UpdateCustomRuleActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
	Action   string `json:"action"`
}

func (UpdateCustomRuleActionRequest) Validate

func (v UpdateCustomRuleActionRequest) Validate() error

Validate validates UpdateCustomRuleActionRequest

type UpdateCustomRuleActionResponse

type UpdateCustomRuleActionResponse struct {
	Action                string `json:"action"`
	CanUseAdvancedActions bool   `json:"canUseAdvancedActions"`
	Link                  string `json:"link"`
	Name                  string `json:"name"`
	RuleID                int    `json:"ruleId"`
}

type UpdateCustomRuleRequest

type UpdateCustomRuleRequest struct {
	ConfigID      int      `json:"configid,omitempty"`
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

func (UpdateCustomRuleRequest) Validate

func (v UpdateCustomRuleRequest) Validate() error

Validate validates UpdateCustomRuleRequest

type UpdateCustomRuleResponse

type UpdateCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type UpdateEvalRequest added in v2.0.4

type UpdateEvalRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"-"`
	Mode     string `json:"-"`
	Eval     string `json:"eval"`
}

func (UpdateEvalRequest) Validate added in v2.0.4

func (v UpdateEvalRequest) Validate() error

Validate validates UpdateEvalRequest

type UpdateEvalResponse added in v2.0.4

type UpdateEvalResponse struct {
	Current string `json:"current"`
	Eval    string `json:"eval"`
	Mode    string `json:"mode"`
}

type UpdateEvalRuleActionRequest added in v2.0.4

type UpdateEvalRuleActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"ruleId"`
	Action   string `json:"action"`
}

func (UpdateEvalRuleActionRequest) Validate added in v2.0.4

func (v UpdateEvalRuleActionRequest) Validate() error

Validate validates UpdateEvalRuleActionRequest

type UpdateEvalRuleActionResponse added in v2.0.4

type UpdateEvalRuleActionResponse struct {
	Action string `json:"action"`
	ID     int    `json:"id"`
}

type UpdateEvalRuleConditionExceptionRequest added in v2.0.4

type UpdateEvalRuleConditionExceptionRequest struct {
	ConfigID   int    `json:"-"`
	Version    int    `json:"-"`
	PolicyID   string `json:"-"`
	RuleID     int    `json:"-"`
	Conditions []struct {
		Type          string   `json:"type"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names"`
			Selector string   `json:"selector"`
		} `json:"specificHeaderCookieOrParamNames"`
	} `json:"exception"`
}

func (UpdateEvalRuleConditionExceptionRequest) Validate added in v2.0.4

Validate validates UpdateEvalRuleConditionExceptionRequest

type UpdateEvalRuleConditionExceptionResponse added in v2.0.4

type UpdateEvalRuleConditionExceptionResponse struct {
	Conditions []struct {
		Type          string   `json:"type"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names"`
			Selector string   `json:"selector"`
		} `json:"specificHeaderCookieOrParamNames"`
	} `json:"exception"`
}

type UpdateIPGeoRequest added in v2.0.4

type UpdateIPGeoRequest struct {
	ConfigID    int    `json:"-"`
	Version     int    `json:"-"`
	PolicyID    string `json:"-"`
	Block       string `json:"block"`
	GeoControls struct {
		BlockedIPNetworkLists struct {
			NetworkList []string `json:"networkList"`
		} `json:"blockedIPNetworkLists"`
	} `json:"geoControls"`
	IPControls struct {
		AllowedIPNetworkLists struct {
			NetworkList []string `json:"networkList"`
		} `json:"allowedIPNetworkLists"`
		BlockedIPNetworkLists struct {
			NetworkList []string `json:"networkList"`
		} `json:"blockedIPNetworkLists"`
	} `json:"ipControls"`
}

func (UpdateIPGeoRequest) Validate added in v2.0.4

func (v UpdateIPGeoRequest) Validate() error

Validate validates UpdateIPGeoRequest

type UpdateIPGeoResponse added in v2.0.4

type UpdateIPGeoResponse struct {
	Block       string `json:"block"`
	GeoControls struct {
		BlockedIPNetworkLists struct {
			NetworkList []string `json:"networkList"`
		} `json:"blockedIPNetworkLists"`
	} `json:"geoControls"`
	IPControls struct {
		AllowedIPNetworkLists struct {
			NetworkList []string `json:"networkList"`
		} `json:"allowedIPNetworkLists"`
		BlockedIPNetworkLists struct {
			NetworkList []string `json:"networkList"`
		} `json:"blockedIPNetworkLists"`
	} `json:"ipControls"`
}

type UpdateMatchTargetRequest

type UpdateMatchTargetRequest struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

UpdateMatchTargetRequest is the argument for GetProperties

func (UpdateMatchTargetRequest) Validate

func (v UpdateMatchTargetRequest) Validate() error

Validate validates UpdateMatchTargetRequest

type UpdateMatchTargetResponse

type UpdateMatchTargetResponse struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

UpdateMatchTargetResponse ...

type UpdateMatchTargetSequenceRequest

type UpdateMatchTargetSequenceRequest struct {
	ConfigID       int    `json:"-"`
	ConfigVersion  int    `json:"-"`
	Type           string `json:"type"`
	TargetSequence []struct {
		TargetID int `json:"targetId"`
		Sequence int `json:"sequence"`
	} `json:"targetSequence"`
}

UpdateMatchTargetRequest is the argument for GetProperties

func (UpdateMatchTargetSequenceRequest) Validate

Validate validates UpdateMatchTargetSequenceRequest

type UpdateMatchTargetSequenceResponse

type UpdateMatchTargetSequenceResponse struct {
	Type           string `json:"type"`
	TargetSequence []struct {
		TargetID int `json:"targetId"`
		Sequence int `json:"sequence"`
	} `json:"targetSequence"`
}

UpdateMatchTargetResponse ...

type UpdateNetworkLayerProtectionRequest added in v2.0.4

type UpdateNetworkLayerProtectionRequest struct {
	ConfigID                  int    `json:"-"`
	Version                   int    `json:"-"`
	PolicyID                  string `json:"-"`
	ApplyNetworkLayerControls bool   `json:"applyNetworkLayerControls"`
}

func (UpdateNetworkLayerProtectionRequest) Validate added in v2.0.4

Validate validates UpdateNetworkLayerProtectionRequest

type UpdateNetworkLayerProtectionResponse added in v2.0.4

type UpdateNetworkLayerProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type UpdatePenaltyBoxRequest

type UpdatePenaltyBoxRequest struct {
	ConfigID             int    `json:"-"`
	Version              int    `json:"-"`
	PolicyID             string `json:"-"`
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection"`
}

func (UpdatePenaltyBoxRequest) Validate

func (v UpdatePenaltyBoxRequest) Validate() error

Validate validates UpdatePenaltyBoxRequest

type UpdatePenaltyBoxResponse

type UpdatePenaltyBoxResponse struct {
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection"`
}

type UpdatePolicyProtectionsRequest added in v2.0.4

type UpdatePolicyProtectionsRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyAPIConstraints           bool   `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool   `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool   `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool   `json:"applyRateControls"`
	ApplyReputationControls       bool   `json:"applyReputationControls"`
	ApplySlowPostControls         bool   `json:"applySlowPostControls"`
}

func (UpdatePolicyProtectionsRequest) Validate added in v2.0.4

Validate validates UpdatePolicyProtectionsRequest

type UpdatePolicyProtectionsResponse added in v2.0.4

type UpdatePolicyProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type UpdateRatePolicyActionRequest

type UpdateRatePolicyActionRequest struct {
	ConfigID     int    `json:"-"`
	Version      int    `json:"-"`
	PolicyID     string `json:"-"`
	RatePolicyID int    `json:"-"`
	Ipv4Action   string `json:"ipv4Action"`
	Ipv6Action   string `json:"ipv6Action"`
}

func (UpdateRatePolicyActionRequest) Validate

func (v UpdateRatePolicyActionRequest) Validate() error

Validate validates UpdateRatePolicyActionRequest

type UpdateRatePolicyActionResponse

type UpdateRatePolicyActionResponse struct {
	ID         int    `json:"id"`
	Ipv4Action string `json:"ipv4Action"`
	Ipv6Action string `json:"ipv6Action"`
}

type UpdateRatePolicyRequest

type UpdateRatePolicyRequest struct {
	RatePolicyID          int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

func (UpdateRatePolicyRequest) Validate

func (v UpdateRatePolicyRequest) Validate() error

Validate validates UpdateRatePolicyRequest

type UpdateRatePolicyResponse

type UpdateRatePolicyResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type UpdateRateProtectionRequest added in v2.0.4

type UpdateRateProtectionRequest struct {
	ConfigID          int    `json:"-"`
	Version           int    `json:"-"`
	PolicyID          string `json:"-"`
	ApplyRateControls bool   `json:"applyRateControls"`
}

func (UpdateRateProtectionRequest) Validate added in v2.0.4

func (v UpdateRateProtectionRequest) Validate() error

Validate validates UpdateRateProtectionRequest

type UpdateRateProtectionResponse added in v2.0.4

type UpdateRateProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type UpdateReputationProfileActionRequest added in v2.0.4

type UpdateReputationProfileActionRequest struct {
	ConfigID            int    `json:"-"`
	Version             int    `json:"-"`
	PolicyID            string `json:"-"`
	ReputationProfileID int    `json:"-"`
	Action              string `json:"action"`
}

func (UpdateReputationProfileActionRequest) Validate added in v2.0.4

Validate validates UpdateReputationProfileActionRequest

type UpdateReputationProfileActionResponse added in v2.0.4

type UpdateReputationProfileActionResponse struct {
	Action string `json:"action"`
}

type UpdateReputationProfileRequest added in v2.0.4

type UpdateReputationProfileRequest struct {
	ConfigID            int             `json:"-"`
	ConfigVersion       int             `json:"-"`
	ReputationProfileId int             `json:"-"`
	JsonPayloadRaw      json.RawMessage `json:"-"`
}

func (UpdateReputationProfileRequest) Validate added in v2.0.4

Validate validates UpdateReputationProfileRequest

type UpdateReputationProfileResponse added in v2.0.4

type UpdateReputationProfileResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type UpdateReputationProtectionRequest added in v2.0.4

type UpdateReputationProtectionRequest struct {
	ConfigID                int    `json:"-"`
	Version                 int    `json:"-"`
	PolicyID                string `json:"-"`
	ApplyReputationControls bool   `json:"applyReputationControls"`
}

func (UpdateReputationProtectionRequest) Validate added in v2.0.4

Validate validates UpdateReputationProtectionRequest

type UpdateReputationProtectionResponse added in v2.0.4

type UpdateReputationProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type UpdateRuleActionRequest added in v2.0.4

type UpdateRuleActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
	Action   string `json:"action"`
}

func (UpdateRuleActionRequest) Validate added in v2.0.4

func (v UpdateRuleActionRequest) Validate() error

Validate validates UpdateRuleActionRequest

type UpdateRuleActionResponse added in v2.0.4

type UpdateRuleActionResponse struct {
	Action string `json:"action"`
	ID     int    `json:"id"`
}

type UpdateRuleConditionExceptionRequest added in v2.0.4

type UpdateRuleConditionExceptionRequest struct {
	ConfigID   int    `json:"-"`
	Version    int    `json:"-"`
	PolicyID   string `json:"-"`
	RuleID     int    `json:"-"`
	Conditions []struct {
		Type          string   `json:"type"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names"`
			Selector string   `json:"selector"`
		} `json:"specificHeaderCookieOrParamNames"`
	} `json:"exception"`
}

func (UpdateRuleConditionExceptionRequest) Validate added in v2.0.4

Validate validates UpdateRuleConditionExceptionRequest

type UpdateRuleConditionExceptionResponse added in v2.0.4

type UpdateRuleConditionExceptionResponse struct {
	Conditions []struct {
		Type          string   `json:"type"`
		Filenames     []string `json:"filenames,omitempty"`
		PositiveMatch bool     `json:"positiveMatch"`
		Methods       []string `json:"methods,omitempty"`
	} `json:"conditions"`
	Exception struct {
		HeaderCookieOrParamValues        []string `json:"headerCookieOrParamValues"`
		SpecificHeaderCookieOrParamNames []struct {
			Names    []string `json:"names"`
			Selector string   `json:"selector"`
		} `json:"specificHeaderCookieOrParamNames"`
	} `json:"exception"`
}

type UpdateRuleUpgradeRequest added in v2.0.4

type UpdateRuleUpgradeRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Upgrade  bool   `json:"upgrade"`
}

func (UpdateRuleUpgradeRequest) Validate added in v2.0.4

func (v UpdateRuleUpgradeRequest) Validate() error

Validate validates UpdateRuleUpgradeRequest

type UpdateRuleUpgradeResponse added in v2.0.4

type UpdateRuleUpgradeResponse struct {
	Current string `json:"current"`
	Mode    string `json:"mode"`
	Eval    string `json:"eval"`
}

type UpdateSecurityPolicyRequest added in v2.0.4

type UpdateSecurityPolicyRequest struct {
	ConfigID     int    `json:"-"`
	Version      int    `json:"-"`
	PolicyID     string `json:"-"`
	PolicyName   string `json:"policyName"`
	PolicyPrefix string `json:"policyPrefix"`
}

func (UpdateSecurityPolicyRequest) Validate added in v2.0.4

func (v UpdateSecurityPolicyRequest) Validate() error

Validate validates UpdateSecurityPolicyRequest

type UpdateSecurityPolicyResponse added in v2.0.4

type UpdateSecurityPolicyResponse struct {
	ConfigID               int    `json:"configId"`
	PolicyID               string `json:"policyId"`
	PolicyName             string `json:"policyName"`
	PolicySecurityControls struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"policySecurityControls"`
	Version int `json:"version"`
}

type UpdateSelectedHostnameRequest

type UpdateSelectedHostnameRequest struct {
	ConfigID     int        `json:"configId"`
	Version      int        `json:"version"`
	HostnameList []Hostname `json:"hostnameList"`
}

func (UpdateSelectedHostnameRequest) Validate

func (v UpdateSelectedHostnameRequest) Validate() error

Validate validates UpdateSelectedHostnameRequest

type UpdateSelectedHostnameResponse

type UpdateSelectedHostnameResponse struct {
	HostnameList []Hostname `json:"hostnameList"`
}

type UpdateSlowPostProtectionRequest added in v2.0.4

type UpdateSlowPostProtectionRequest struct {
	ConfigID              int    `json:"-"`
	Version               int    `json:"-"`
	PolicyID              string `json:"-"`
	ApplySlowPostControls bool   `json:"applySlowPostControls"`
}

func (UpdateSlowPostProtectionRequest) Validate added in v2.0.4

Validate validates UpdateSlowPostProtectionRequest

type UpdateSlowPostProtectionResponse added in v2.0.4

type UpdateSlowPostProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type UpdateSlowPostProtectionSettingRequest

type UpdateSlowPostProtectionSettingRequest struct {
	ConfigID          int    `json:"configId"`
	Version           int    `json:"version"`
	PolicyID          string `json:"policyId"`
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

func (UpdateSlowPostProtectionSettingRequest) Validate

Validate validates UpdateSlowPostProtectionSettingRequest

type UpdateSlowPostProtectionSettingResponse

type UpdateSlowPostProtectionSettingResponse struct {
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

type UpdateWAFModeRequest

type UpdateWAFModeRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"-"`
	Mode     string `json:"mode"`
	Eval     string `json:"-"`
}

func (UpdateWAFModeRequest) Validate

func (v UpdateWAFModeRequest) Validate() error

Validate validates UpdateWAFModeRequest

type UpdateWAFModeResponse

type UpdateWAFModeResponse struct {
	Current string `json:"current"`
	Mode    string `json:"mode"`
}

type UpdateWAFProtectionRequest

type UpdateWAFProtectionRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
}

func (UpdateWAFProtectionRequest) Validate

func (v UpdateWAFProtectionRequest) Validate() error

Validate validates UpdateWAFProtectionRequest

type UpdateWAFProtectionResponse

type UpdateWAFProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type WAFMode

type WAFMode interface {
	GetWAFModes(ctx context.Context, params GetWAFModesRequest) (*GetWAFModesResponse, error)
	GetWAFMode(ctx context.Context, params GetWAFModeRequest) (*GetWAFModeResponse, error)
	UpdateWAFMode(ctx context.Context, params UpdateWAFModeRequest) (*UpdateWAFModeResponse, error)
}

WAFMode contains operations available on WAFMode resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getwafmode

type WAFProtection

type WAFProtection interface {
	GetWAFProtections(ctx context.Context, params GetWAFProtectionsRequest) (*GetWAFProtectionsResponse, error)
	GetWAFProtection(ctx context.Context, params GetWAFProtectionRequest) (*GetWAFProtectionResponse, error)
	UpdateWAFProtection(ctx context.Context, params UpdateWAFProtectionRequest) (*UpdateWAFProtectionResponse, error)
}

WAFProtection contains operations available on WAFProtection resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getwafprotection

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL