appsec

package
v2.17.0 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2022 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 is used to activate a configuration.
	ActivationTypeActivate ActivationValue = "ACTIVATE"

	// ActivationTypeDeactivate is used to deactivate a configuration.
	ActivationTypeDeactivate ActivationValue = "DEACTIVATE"

	// NetworkProduction is used to activate/deactivate a configuration in the production network.
	NetworkProduction NetworkValue = "PRODUCTION"

	// NetworkStaging is used to activate/deactivate a configuration in the staging network.
	NetworkStaging NetworkValue = "STAGING"

	// StatusActive indicates that a configuration has been activated.
	StatusActive StatusValue = "ACTIVATED"

	// StatusInactive indicates that a configuration is inactive.
	StatusInactive StatusValue = "INACTIVE"

	// StatusPending indicates that an activation/deactivation request has been received.
	StatusPending StatusValue = "RECEIVED"

	// StatusAborted indicates that an activation/deactivation request has been aborted.
	StatusAborted StatusValue = "ABORTED"

	// StatusFailed indicates that an activation/deactivation request has failed.
	StatusFailed StatusValue = "FAILED"

	// StatusDeactivated indicates that an configuration has been deactivated.
	StatusDeactivated StatusValue = "DEACTIVATED"

	// StatusPendingDeactivation indicates that a deactivation request is in progress.
	StatusPendingDeactivation StatusValue = "PENDING_DEACTIVATION"

	// StatusNew indicates that a deactivation request is new.
	StatusNew StatusValue = "NEW"
)
View Source
const (
	// RulesetTypeActive for active rulesets.
	RulesetTypeActive RulesetType = "active"

	// RulesetTypeEvaluation for evaluation rulesets.
	RulesetTypeEvaluation RulesetType = "evaluation"

	// ActionTypeDeny firewall deny action.
	ActionTypeDeny ActionType = "deny"
	// ActionTypeAlert firewall alert action.
	ActionTypeAlert ActionType = "alert"
	// ActionTypeNone firewall no action.
	ActionTypeNone ActionType = "none"
)

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 APIRequestConstraintsexp added in v2.2.0

type APIRequestConstraintsexp struct {
	Action       string `json:"action,omitempty"`
	APIEndpoints []struct {
		Action string `json:"action"`
		ID     int    `json:"id"`
	} `json:"apiEndpoints,omitempty"`
}

APIRequestConstraintsexp is returned as part of GetExportConfigurationResponse.

type ActionType added in v2.14.0

type ActionType string

ActionType is an action type value.

type Activation added in v2.14.0

type Activation struct {
	ActivationID       int       `json:"activationId"`
	Version            int       `json:"version"`
	Status             string    `json:"status"`
	Network            string    `json:"Network"`
	ActivatedBy        string    `json:"activatedBy"`
	ActivationDate     time.Time `json:"activationDate"`
	Notes              string    `json:"notes"`
	NotificationEmails []string  `json:"notificationEmails"`
}

Activation represents the status of a configuration activation.

type ActivationConfigs

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

ActivationConfigs describes a specific configuration version to be activated or deactivated.

type ActivationValue

type ActivationValue string

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

type Activations

type Activations interface {
	// GetActivations returns the status of an activation.
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getactivationid
	GetActivations(ctx context.Context, params GetActivationsRequest) (*GetActivationsResponse, error)

	// GetActivationHistory lists the activation history for a configuration.
	// https://techdocs.akamai.com/application-security/reference/get-activation-history
	GetActivationHistory(ctx context.Context, params GetActivationHistoryRequest) (*GetActivationHistoryResponse, error)

	// CreateActivations activates a configuration. If acknowledgeWarnings is true and warnings are
	// returned on the first attempt, a second attempt is made acknowledging the warnings.
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#postactivations
	CreateActivations(ctx context.Context, params CreateActivationsRequest, acknowledgeWarnings bool) (*CreateActivationsResponse, error)

	// RemoveActivations deactivates a configuration.
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#postactivations
	RemoveActivations(ctx context.Context, params RemoveActivationsRequest) (*RemoveActivationsResponse, error)
}

The Activations interface supports the activation and deactivation of security configurations.

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

type AdvancedExceptions added in v2.8.1

type AdvancedExceptions AttackGroupAdvancedExceptions

AdvancedExceptions is used to describe advanced exceptions used in Adaptive Security Engine(ASE) rules.

type AdvancedOptionsexp added in v2.2.0

type AdvancedOptionsexp struct {
	Logging          *Loggingexp          `json:"logging"`
	EvasivePathMatch *EvasivePathMatchexp `json:"evasivePathMatch,omitempty"`
	Prefetch         struct {
		AllExtensions      bool     `json:"allExtensions"`
		EnableAppLayer     bool     `json:"enableAppLayer"`
		EnableRateControls bool     `json:"enableRateControls"`
		Extensions         []string `json:"extensions,omitempty"`
	} `json:"prefetch"`
	PragmaHeader *GetAdvancedSettingsPragmaResponse `json:"pragmaHeader,omitempty"`
}

AdvancedOptionsexp is returned as part of GetExportConfigurationResponse.

type AdvancedSettingsCookies added in v2.2.0

type AdvancedSettingsCookies struct {
	Type   string   `json:"type"`
	Values []string `json:"values,omitempty"`
}

AdvancedSettingsCookies contains a list of cookie headers to be logged or not logged depending on the Type field.

type AdvancedSettingsCustomHeaders added in v2.2.0

type AdvancedSettingsCustomHeaders struct {
	Type   string   `json:"type,omitempty"`
	Values []string `json:"values,omitempty"`
}

AdvancedSettingsCustomHeaders contains a list of custom headers to be logged or not logged depending on the Type field.

type AdvancedSettingsEvasivePathMatch added in v2.9.0

type AdvancedSettingsEvasivePathMatch interface {
	// GetAdvancedSettingsEvasivePathMatch retrieves the Evasive Path Match setting.
	// https://techdocs.akamai.com/application-security/reference/get-evasive-path-match-per-config
	GetAdvancedSettingsEvasivePathMatch(ctx context.Context, params GetAdvancedSettingsEvasivePathMatchRequest) (*GetAdvancedSettingsEvasivePathMatchResponse, error)
	// UpdateAdvancedSettingsEvasivePathMatch modifies the Evasive Path Match setting.
	// https://techdocs.akamai.com/application-security/reference/put-evasive-path-match-per-config
	UpdateAdvancedSettingsEvasivePathMatch(ctx context.Context, params UpdateAdvancedSettingsEvasivePathMatchRequest) (*UpdateAdvancedSettingsEvasivePathMatchResponse, error)
	// RemoveAdvancedSettingsEvasivePathMatch removes the Evasive Path Match setting.
	// Deprecated: this method will be removed in a future release. Use UpdateAdvancedSettingsEvasivePathMatch instead.
	RemoveAdvancedSettingsEvasivePathMatch(ctx context.Context, params RemoveAdvancedSettingsEvasivePathMatchRequest) (*RemoveAdvancedSettingsEvasivePathMatchResponse, error)
}

The AdvancedSettingsEvasivePathMatch interface supports retrieving or modifying the Evasive Path Match setting.

type AdvancedSettingsLogging added in v2.2.0

type AdvancedSettingsLogging interface {
	// AdvancedSettingsLogging lists the HTTP header logging settings for a configuration or policy. If
	// the request specifies a policy, then the settings for that policy will be returned, otherwise the
	// settings for the configuration will be returned.
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#gethttpheaderloggingforaconfiguration
	GetAdvancedSettingsLogging(ctx context.Context, params GetAdvancedSettingsLoggingRequest) (*GetAdvancedSettingsLoggingResponse, error)

	// UpdateAdvancedSettingsLogging enables, disables, or updates the HTTP header logging settings for a
	// configuration or policy. If the request specifies a policy, then the settings for that policy will
	// updated, otherwise the settings for the configuration will be updated.
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#puthttpheaderloggingforaconfiguration
	UpdateAdvancedSettingsLogging(ctx context.Context, params UpdateAdvancedSettingsLoggingRequest) (*UpdateAdvancedSettingsLoggingResponse, error)

	// RemoveAdvancedSettingsLogging disables HTTP header logging for a confguration or policy. If the request
	// specifies a policy, then header logging will be disabled for that policy, otherwise logging will be
	// disabled for the configuration.
	RemoveAdvancedSettingsLogging(ctx context.Context, params RemoveAdvancedSettingsLoggingRequest) (*RemoveAdvancedSettingsLoggingResponse, error)
}

The AdvancedSettingsLogging interface supports retrieving, updating or removing settings related to HTTP header logging.

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

type AdvancedSettingsStandardHeaders added in v2.2.0

type AdvancedSettingsStandardHeaders struct {
	Type   string   `json:"type,omitempty"`
	Values []string `json:"values,omitempty"`
}

AdvancedSettingsStandardHeaders contains a list of standard headers to be logged or not logged depending on the Type field.

type ApiConstraintsProtection added in v2.16.0

type ApiConstraintsProtection interface {
	// GetAPIConstraintsProtection retrieves the current API constraints protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getapirequestconstraints
	GetAPIConstraintsProtection(ctx context.Context, params GetAPIConstraintsProtectionRequest) (*GetAPIConstraintsProtectionResponse, error)

	// UpdateAPIConstraintsProtection updates the API constraints protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putapirequestconstraints
	UpdateAPIConstraintsProtection(ctx context.Context, params UpdateAPIConstraintsProtectionRequest) (*UpdateAPIConstraintsProtectionResponse, error)
}

The ApiConstraintsProtection interface supports retrieving and updating API request constraints protection for a configuration and policy.

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

type ApiEndpoint added in v2.2.0

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

ApiEndpoint describes an API endpoint and its associated action.

type ApiEndpoints added in v2.2.0

The ApiEndpoints interface supports retrieving the API endpoints associated with a security policy.

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

type ApiHostnameCoverage added in v2.2.0

The ApiHostnameCoverage interface supports retrieving hostnames with their current protections, activation statuses, and other summary information.

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

type ApiHostnameCoverageMatchTargets added in v2.2.0

The ApiHostnameCoverageMatchTargets interface supports retrieving the API and website match targets that protect a hostname.

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

type ApiHostnameCoverageOverlapping added in v2.2.0

The ApiHostnameCoverageOverlapping interface supports listing the configuration versions that contain a hostname also included in the given configuration version.

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

type AtomicConditionsexp added in v2.2.0

type AtomicConditionsexp []struct {
	CheckIps      *json.RawMessage `json:"checkIps,omitempty"`
	ClassName     string           `json:"className,omitempty"`
	Index         int              `json:"index,omitempty"`
	PositiveMatch *json.RawMessage `json:"positiveMatch,omitempty"`
	Value         []string         `json:"value,omitempty"`
	Name          *json.RawMessage `json:"name,omitempty"`
	NameCase      bool             `json:"nameCase,omitempty"`
	NameWildcard  *json.RawMessage `json:"nameWildcard,omitempty"`
	ValueCase     bool             `json:"valueCase,omitempty"`
	ValueWildcard *json.RawMessage `json:"valueWildcard,omitempty"`
	Host          []string         `json:"host,omitempty"`
}

AtomicConditionsexp is returned as part of GetExportConfigurationResponse.

type AttackGroupAdvancedCriteria added in v2.5.0

type AttackGroupAdvancedCriteria []struct {
	Hostnames []string `json:"hostnames,omitempty"`
	Names     []string `json:"names,omitempty"`
	Paths     []string `json:"paths,omitempty"`
	Values    []string `json:"values,omitempty"`
}

AttackGroupAdvancedCriteria describes the hostname and path criteria used to limit the scope of an exception.

type AttackGroupAdvancedExceptions added in v2.2.0

type AttackGroupAdvancedExceptions struct {
	ConditionOperator                       string                                                      `json:"conditionOperator,omitempty"`
	Conditions                              *AttackGroupConditions                                      `json:"conditions,omitempty"`
	HeaderCookieOrParamValues               *AttackGroupHeaderCookieOrParamValuesAdvanced               `json:"headerCookieOrParamValues,omitempty"`
	SpecificHeaderCookieOrParamNameValue    *AttackGroupSpecificHeaderCookieOrParamNameValAdvanced      `json:"specificHeaderCookieOrParamNameValue,omitempty"`
	SpecificHeaderCookieParamXMLOrJSONNames *AttackGroupSpecificHeaderCookieParamXMLOrJSONNamesAdvanced `json:"specificHeaderCookieParamXmlOrJsonNames,omitempty"`
}

AttackGroupAdvancedExceptions describes an attack group's advanced exception information.

type AttackGroupConditionException added in v2.0.4

type AttackGroupConditionException struct {
	AdvancedExceptionsList *AttackGroupAdvancedExceptions `json:"advancedExceptions,omitempty"`
	Exception              *AttackGroupException          `json:"exception,omitempty"`
}

AttackGroupConditionException describes an attack group's condition and exception information.

type AttackGroupConditions added in v2.2.0

type AttackGroupConditions []struct {
	Type          string   `json:"type,omitempty"`
	Extensions    []string `json:"extensions,omitempty"`
	Filenames     []string `json:"filenames,omitempty"`
	Hosts         []string `json:"hosts,omitempty"`
	Ips           []string `json:"ips,omitempty"`
	Methods       []string `json:"methods,omitempty"`
	Paths         []string `json:"paths,omitempty"`
	Header        string   `json:"header,omitempty"`
	CaseSensitive bool     `json:"caseSensitive,omitempty"`
	Name          string   `json:"name,omitempty"`
	NameCase      bool     `json:"nameCase,omitempty"`
	PositiveMatch bool     `json:"positiveMatch"`
	Value         string   `json:"value,omitempty"`
	Wildcard      bool     `json:"wildcard,omitempty"`
	ValueCase     bool     `json:"valueCase,omitempty"`
	ValueWildcard bool     `json:"valueWildcard,omitempty"`
	UseHeaders    bool     `json:"useHeaders,omitempty"`
}

AttackGroupConditions describes an attack group's condition information.

type AttackGroupException added in v2.2.0

type AttackGroupException struct {
	SpecificHeaderCookieParamXMLOrJSONNames *AttackGroupSpecificHeaderCookieParamXMLOrJSONNames `json:"specificHeaderCookieParamXmlOrJsonNames,omitempty"`
}

AttackGroupException is used to describe an exception that can be used to conditionally exclude requests from inspection.

type AttackGroupHeaderCookieOrParamValuesAdvanced added in v2.5.0

type AttackGroupHeaderCookieOrParamValuesAdvanced []struct {
	Criteria      *AttackGroupAdvancedCriteria `json:"criteria,omitempty"`
	ValueWildcard bool                         `json:"valueWildcard"`
	Values        []string                     `json:"values,omitempty"`
}

AttackGroupHeaderCookieOrParamValuesAdvanced describes the list of excepted values in headers, cookies, or query parameters.

type AttackGroupRecommendation added in v2.8.1

type AttackGroupRecommendation struct {
	Description string                `json:"description,omitempty"`
	Evidence    *Evidences            `json:"evidences,omitempty"`
	Exception   *AttackGroupException `json:"exception,omitempty"`
	Group       string                `json:"group,omitempty"`
}

AttackGroupRecommendation is used to describe a recommendation for an attack group.

type AttackGroupSpecificHeaderCookieOrParamNameValAdvanced added in v2.5.0

type AttackGroupSpecificHeaderCookieOrParamNameValAdvanced []struct {
	Criteria    *AttackGroupAdvancedCriteria `json:"criteria,omitempty"`
	NamesValues []struct {
		Names  []string `json:"names"`
		Values []string `json:"values"`
	} `json:"namesValues"`
	Selector      string `json:"selector"`
	ValueWildcard bool   `json:"valueWildcard"`
	Wildcard      bool   `json:"wildcard"`
}

AttackGroupSpecificHeaderCookieOrParamNameValAdvanced describes the excepted name-value pairs in a request.

type AttackGroupSpecificHeaderCookieParamXMLOrJSONNames added in v2.2.0

type AttackGroupSpecificHeaderCookieParamXMLOrJSONNames []struct {
	Names    []string `json:"names,omitempty"`
	Selector string   `json:"selector,omitempty"`
	Wildcard bool     `json:"wildcard,omitempty"`
}

AttackGroupSpecificHeaderCookieParamXMLOrJSONNames describes the advanced exception members that can be used to conditionally exclude requests from inspection.

type AttackGroupSpecificHeaderCookieParamXMLOrJSONNamesAdvanced added in v2.5.0

type AttackGroupSpecificHeaderCookieParamXMLOrJSONNamesAdvanced []struct {
	Criteria *AttackGroupAdvancedCriteria `json:"criteria,omitempty"`
	Names    []string                     `json:"names,omitempty"`
	Selector string                       `json:"selector,omitempty"`
	Wildcard bool                         `json:"wildcard,omitempty"`
}

AttackGroupSpecificHeaderCookieParamXMLOrJSONNamesAdvanced describes the advanced exception members that allow you to conditionally exclude requests from inspection.

type AutoGenerated added in v2.2.0

type AutoGenerated struct {
	Type string `json:"type"`
	Apis []struct {
		ID   int    `json:"id"`
		Name string `json:"name"`
	} `json:"apis"`
	BypassNetworkLists []struct {
		ID   string `json:"id"`
		Name string `json:"name"`
	} `json:"bypassNetworkLists"`
	ConfigID       int `json:"configId"`
	ConfigVersion  int `json:"configVersion"`
	SecurityPolicy struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence int `json:"-"`
	TargetID int `json:"targetId"`
}

AutoGenerated is currently unused.

type BypassNetworkList

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

BypassNetworkList describes a network list used in the bypass network lists for the specified configuration.

type BypassNetworkLists added in v2.2.0

type BypassNetworkLists interface {
	// Deprecated: this method will be removed in a future release. Use the GetWAPBypassNetworkLists method of the WAPBypassNetworkLists interface instead.
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getbypassnetworklistsforawapconfigversion
	GetBypassNetworkLists(ctx context.Context, params GetBypassNetworkListsRequest) (*GetBypassNetworkListsResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putbypassnetworklistsforawapconfigversion
	// Deprecated: this method will be removed in a future release. Use the UpdateWAPBypassNetworkLists method of the WAPBypassNetworkLists interface instead.
	UpdateBypassNetworkLists(ctx context.Context, params UpdateBypassNetworkListsRequest) (*UpdateBypassNetworkListsResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putbypassnetworklistsforawapconfigversion
	// Deprecated: this method will be removed in a future release. Use the UpdateWAPBypassNetworkLists method of the WAPBypassNetworkLists interface instead.
	RemoveBypassNetworkLists(ctx context.Context, params RemoveBypassNetworkListsRequest) (*RemoveBypassNetworkListsResponse, error)
}

The BypassNetworkLists interface supports listing or modifying which network lists are used in the bypass network lists settings. Deprecated: this interface will be removed in a future release. Use the WAPBypassNetworkLists interface instead.

https://developer.akamai.com/api/cloud_security/application_security/v1.html#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 ClientReputationReputationProfileActions added in v2.3.0

type ClientReputationReputationProfileActions []struct {
	Action string `json:"action"`
	ID     int    `json:"id"`
}

ClientReputationReputationProfileActions is returned as part of GetExportConfigurationResponse.

type ConditionReputationProfile added in v2.2.0

type ConditionReputationProfile struct {
	AtomicConditions *AtomicConditionsexp `json:"atomicConditions,omitempty"`
	CanDelete        bool                 `json:"-"`
	ConfigVersionID  int                  `json:"-"`
	ID               int                  `json:"-"`
	Name             string               `json:"-"`
	PositiveMatch    *json.RawMessage     `json:"positiveMatch,omitempty"`
	UUID             string               `json:"-"`
	Version          int64                `json:"-"`
}

ConditionReputationProfile is returned as part of GetExportConfigurationResponse.

type ConditionsExp added in v2.2.0

type ConditionsExp []struct {
	Type          string           `json:"type"`
	PositiveMatch bool             `json:"positiveMatch"`
	Name          *json.RawMessage `json:"name,omitempty"`
	NameCase      *json.RawMessage `json:"nameCase,omitempty"`
	NameWildcard  *json.RawMessage `json:"nameWildcard,omitempty"`
	Value         *json.RawMessage `json:"value,omitempty"`
	ValueCase     *json.RawMessage `json:"valueCase,omitempty"`
	ValueWildcard *json.RawMessage `json:"valueWildcard,omitempty"`
}

ConditionsExp is returned as part of GetExportConfigurationResponse.

type ConditionsValue added in v2.2.0

type ConditionsValue []string

ConditionsValue is a slice of strings that describe conditions.

func (*ConditionsValue) UnmarshalJSON added in v2.2.0

func (c *ConditionsValue) UnmarshalJSON(data []byte) error

UnmarshalJSON reads a ConditionsValue struct from its data argument.

type ConfigurationHostnameCoverage added in v2.2.0

type ConfigurationHostnameCoverage struct {
	ID      int    `json:"id,omitempty"`
	Name    string `json:"name,omitempty"`
	Version int    `json:"version,omitempty"`
}

ConfigurationHostnameCoverage describes a specific configuration version.

type ContractsGroups added in v2.2.0

The ContractsGroups interface supports listing the contracts and groups for the current account. Each object contains the contract, groups associated with the contract, and whether Kona Site Defender or Web Application Protector is the product for that contract.

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

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"`
}

CreateActivationsRequest is used to request activation or deactivation of a configuration.

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"`
}

CreateActivationsResponse is returned from a call to CreateActivations.

type CreateConfigurationCloneRequest

type CreateConfigurationCloneRequest struct {
	Name        string   `json:"name"`
	Description string   `json:"description"`
	ContractID  string   `json:"contractId"`
	GroupID     int      `json:"groupId"`
	Hostnames   []string `json:"hostnames"`
	CreateFrom  struct {
		ConfigID int `json:"configId"`
		Version  int `json:"version"`
	} `json:"createFrom"`
}

CreateConfigurationCloneRequest is used to clone an existing security configuration.

func (CreateConfigurationCloneRequest) Validate

Validate validates a CreateConfigurationCloneRequest.

type CreateConfigurationCloneResponse

type CreateConfigurationCloneResponse struct {
	ConfigID    int    `json:"configId"`
	Version     int    `json:"version"`
	Description string `json:"description"`
	Name        string `json:"name"`
}

CreateConfigurationCloneResponse is returned from a call to CreateConfigurationClone.

type CreateConfigurationRequest added in v2.2.0

type CreateConfigurationRequest struct {
	Name        string   `json:"name"`
	Description string   `json:"description"`
	ContractID  string   `json:"contractId"`
	GroupID     int      `json:"groupId"`
	Hostnames   []string `json:"hostnames"`
}

CreateConfigurationRequest is used to create a new WAP or KSD security configuration.

type CreateConfigurationResponse added in v2.2.0

type CreateConfigurationResponse struct {
	ConfigID    int    `json:"configId"`
	Version     int    `json:"version"`
	Description string `json:"description"`
	Name        string `json:"name"`
}

CreateConfigurationResponse is returned from a call to CreateConfiguration.

type CreateConfigurationVersionCloneRequest added in v2.2.0

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

CreateConfigurationVersionCloneRequest is used to clone an existing configuration version.

func (CreateConfigurationVersionCloneRequest) Validate added in v2.2.0

Validate validates a CreateConfigurationCloneRequest.

type CreateConfigurationVersionCloneResponse added in v2.2.0

type CreateConfigurationVersionCloneResponse 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"`
}

CreateConfigurationVersionCloneResponse is returned from a call to CreateConfigurationVersionClone.

type CreateCustomDenyRequest added in v2.2.0

type CreateCustomDenyRequest struct {
	ConfigID       int             `json:"-"`
	Version        int             `json:"-"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

CreateCustomDenyRequest is used to create a new custom deny action for a specific configuration.

func (CreateCustomDenyRequest) Validate added in v2.2.0

func (v CreateCustomDenyRequest) Validate() error

Validate validates a CreateCustomDenyRequest.

type CreateCustomDenyResponse added in v2.2.0

type CreateCustomDenyResponse struct {
	Description string       `json:"description,omitempty"`
	Name        string       `json:"name"`
	ID          customDenyID `json:"id"`
	Parameters  []struct {
		DisplayName string `json:"-"`
		Name        string `json:"name"`
		Value       string `json:"value"`
	} `json:"parameters"`
}

CreateCustomDenyResponse is returned from a call to CreateCustomDeny.

type CreateCustomRuleRequest

type CreateCustomRuleRequest struct {
	ConfigID       int             `json:"configid,omitempty"`
	Version        int             `json:"version,omitempty"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

CreateCustomRuleRequest is used to create a custom rule.

func (CreateCustomRuleRequest) Validate

func (v CreateCustomRuleRequest) Validate() error

Validate validates a CreateCustomRuleRequest.

type CreateCustomRuleResponse

type CreateCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description,omitempty"`
	Version       int      `json:"-"`
	RuleActivated bool     `json:"-"`
	Structured    bool     `json:"-"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Name                  *json.RawMessage `json:"name,omitempty"`
		NameCase              *bool            `json:"nameCase,omitempty"`
		NameWildcard          *bool            `json:"nameWildcard,omitempty"`
		PositiveMatch         bool             `json:"positiveMatch"`
		Type                  string           `json:"type"`
		Value                 *json.RawMessage `json:"value,omitempty"`
		ValueCase             *bool            `json:"valueCase,omitempty"`
		ValueExactMatch       *bool            `json:"valueExactMatch,omitempty"`
		ValueIgnoreSegment    *bool            `json:"valueIgnoreSegment,omitempty"`
		ValueNormalize        *bool            `json:"valueNormalize,omitempty"`
		ValueRecursive        *bool            `json:"valueRecursive,omitempty"`
		ValueWildcard         *bool            `json:"valueWildcard,omitempty"`
		UseXForwardForHeaders *bool            `json:"useXForwardForHeaders,omitempty"`
	} `json:"conditions"`
	EffectiveTimePeriod *CustomRuleEffectivePeriod `json:"effectiveTimePeriod,omitempty"`
	SamplingRate        int                        `json:"samplingRate,omitempty"`
	LoggingOptions      *json.RawMessage           `json:"loggingOptions,omitempty"`
	Operation           string                     `json:"operation,omitempty"`
}

CreateCustomRuleResponse is returned from a call to CreateCustomRule.

type CreateMalwarePolicyRequest added in v2.16.0

type CreateMalwarePolicyRequest struct {
	ConfigID      int
	ConfigVersion int
	Policy        *MalwarePolicyBody
}

CreateMalwarePolicyRequest is used to create a malware policy.

func (CreateMalwarePolicyRequest) Validate added in v2.16.0

func (v CreateMalwarePolicyRequest) Validate() error

Validate validates a CreateMalwarePolicyRequest.

type CreateMatchTargetRequest

type CreateMatchTargetRequest struct {
	Type           string          `json:"type"`
	ConfigID       int             `json:"configId"`
	ConfigVersion  int             `json:"configVersion"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

CreateMatchTargetRequest is used to create a match target.

func (CreateMatchTargetRequest) Validate

func (v CreateMatchTargetRequest) Validate() error

Validate validates a CreateMatchTargetRequest.

type CreateMatchTargetResponse

type CreateMatchTargetResponse struct {
	MType string `json:"type"`
	Apis  []struct {
		ID   int    `json:"id"`
		Name string `json:"name"`
	} `json:"apis,omitempty"`
	DefaultFile                  string           `json:"defaultFile"`
	Hostnames                    []string         `json:"hostnames"`
	IsNegativeFileExtensionMatch bool             `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          *json.RawMessage `json:"isNegativePathMatch,omitempty"`
	FilePaths                    []string         `json:"filePaths"`
	FileExtensions               []string         `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"-"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

CreateMatchTargetResponse is returned from a call to CreateMatchTarget.

type CreateRatePolicyRequest

type CreateRatePolicyRequest struct {
	ID             int             `json:"-"`
	ConfigID       int             `json:"configId"`
	ConfigVersion  int             `json:"configVersion"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

CreateRatePolicyRequest is used to create a rate policy.

func (CreateRatePolicyRequest) Validate

func (v CreateRatePolicyRequest) Validate() error

Validate validates a CreateRatePolicyRequest.

type CreateRatePolicyResponse

type CreateRatePolicyResponse struct {
	ID                    int    `json:"id"`
	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"`
	Hosts                  *RatePoliciesHosts      `json:"hosts,omitempty"`
	Hostnames              []string                `json:"hostnames"`
	AdditionalMatchOptions []RatePolicyMatchOption `json:"additionalMatchOptions,omitempty"`
	QueryParameters        []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string          `json:"-"`
	UpdateDate string          `json:"-"`
	Used       json.RawMessage `json:"used"`
}

CreateRatePolicyResponse is returned from a call to CreateRatePolicy.

type CreateReputationProfileRequest added in v2.0.4

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

CreateReputationProfileRequest is used to create a reputation profile.

func (CreateReputationProfileRequest) Validate added in v2.0.4

Validate validates a 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 *json.RawMessage `json:"positiveMatch,omitempty"`
	} `json:"condition"`
	Enabled bool `json:"enabled"`
}

CreateReputationProfileResponse is returned from a call to CreateReputationProfile.

type CreateSecurityPolicyClonePost

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

CreateSecurityPolicyClonePost is currently unused.

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"`
}

CreateSecurityPolicyClonePostResponse is currently unused.

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"`
}

CreateSecurityPolicyCloneRequest is used to clone a security policy.

func (CreateSecurityPolicyCloneRequest) Validate

Validate validates a 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"`
	}
}

CreateSecurityPolicyCloneResponse is returned from a call to CreateSecurityPolicyClone.

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"`
	DefaultSettings bool   `json:"defaultSettings"`
}

CreateSecurityPolicyRequest is used to create a ecurity policy.

func (CreateSecurityPolicyRequest) Validate added in v2.0.4

func (v CreateSecurityPolicyRequest) Validate() error

Validate validates a CreateSecurityPolicyRequest.

type CreateSecurityPolicyResponse added in v2.0.4

type CreateSecurityPolicyResponse struct {
	ConfigID               int    `json:"configId"`
	PolicyID               string `json:"policyId"`
	PolicyName             string `json:"policyName"`
	DefaultSettings        bool   `json:"defaultSettings,omitempty"`
	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"`
}

CreateSecurityPolicyResponse is returned from a call to CreateSecurityPolicy.

type CustomDenyListexp added in v2.2.0

type CustomDenyListexp []struct {
	Description string `json:"description,omitempty"`
	Name        string `json:"name"`
	ID          string `json:"id"`
	Parameters  []struct {
		DisplayName string `json:"-"`
		Name        string `json:"name"`
		Value       string `json:"value"`
	} `json:"parameters"`
}

CustomDenyListexp is returned as part of GetExportConfigurationResponse.

type CustomRuleActionsexp added in v2.2.0

type CustomRuleActionsexp []struct {
	Action string `json:"action"`
	ID     int    `json:"id"`
}

CustomRuleActionsexp is returned as part of GetExportConfigurationResponse.

type CustomRuleConditionsName added in v2.2.0

type CustomRuleConditionsName []string

CustomRuleConditionsName is a slice of strings used to indicate condition names in custom rule conditions.

func (*CustomRuleConditionsName) UnmarshalJSON added in v2.2.0

func (c *CustomRuleConditionsName) UnmarshalJSON(data []byte) error

UnmarshalJSON reads a CustomRuleConditionsName from its data argument.

type CustomRuleConditionsValue added in v2.2.0

type CustomRuleConditionsValue []string

CustomRuleConditionsValue is a slice of strings used to indicate condition values in custom rule conditions.

func (*CustomRuleConditionsValue) UnmarshalJSON added in v2.2.0

func (c *CustomRuleConditionsValue) UnmarshalJSON(data []byte) error

UnmarshalJSON reads a CustomRuleConditionsValue from its data argument.

type CustomRuleEffectivePeriod added in v2.14.0

type CustomRuleEffectivePeriod struct {
	EndDate   string `json:"endDate"`
	StartDate string `json:"startDate"`
	Status    string `json:"-"`
}

CustomRuleEffectivePeriod defines the period during which a custom rule is active as well as its current status.

type CustomRuleResponse

type CustomRuleResponse struct {
	ID            int      `json:"-"`
	Name          string   `json:"name"`
	Description   string   `json:"description,omitempty"`
	Version       int      `json:"-"`
	RuleActivated bool     `json:"-"`
	Structured    bool     `json:"-"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Name                  *json.RawMessage `json:"name,omitempty"`
		NameCase              *bool            `json:"nameCase,omitempty"`
		NameWildcard          *bool            `json:"nameWildcard,omitempty"`
		PositiveMatch         bool             `json:"positiveMatch"`
		Type                  string           `json:"type"`
		Value                 *json.RawMessage `json:"value,omitempty"`
		ValueCase             *bool            `json:"valueCase,omitempty"`
		ValueExactMatch       *bool            `json:"valueExactMatch,omitempty"`
		ValueIgnoreSegment    *bool            `json:"valueIgnoreSegment,omitempty"`
		ValueNormalize        *bool            `json:"valueNormalize,omitempty"`
		ValueRecursive        *bool            `json:"valueRecursive,omitempty"`
		ValueWildcard         *bool            `json:"valueWildcard,omitempty"`
		UseXForwardForHeaders *bool            `json:"useXForwardForHeaders,omitempty"`
	} `json:"conditions"`
	EffectiveTimePeriod *CustomRuleEffectivePeriod `json:"effectiveTimePeriod,omitempty"`
	SamplingRate        int                        `json:"samplingRate,omitempty"`
	LoggingOptions      *json.RawMessage           `json:"loggingOptions,omitempty"`
	Operation           string                     `json:"operation,omitempty"`
}

CustomRuleResponse is returned from calls to GetCustomRule, UpdateCustomRule, and DeleteCustomRule.

type DurationThresholdExp added in v2.5.0

type DurationThresholdExp struct {
	Timeout int `json:"timeout"`
}

DurationThresholdExp is returned as part of GetExportConfigurationResponse.

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 an appsec error interface.

func (*Error) Error

func (e *Error) Error() string

Error returns a string formatted using a given title, type, and detail information.

func (*Error) Is

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

Is handles error comparisons.

type EvalGroup added in v2.6.0

type EvalGroup interface {
	// GetEvalGroups retrieves all attack groups currently under evaluation.
	GetEvalGroups(ctx context.Context, params GetAttackGroupsRequest) (*GetAttackGroupsResponse, error)

	// GetEvalGroups retrieves a specific attack group currently under evaluation.
	GetEvalGroup(ctx context.Context, params GetAttackGroupRequest) (*GetAttackGroupResponse, error)

	// UpdateEvalGroup supports updating the condition and exception information for an attack group under evaluation.
	UpdateEvalGroup(ctx context.Context, params UpdateAttackGroupRequest) (*UpdateAttackGroupResponse, error)
}

The EvalGroup interface supports creating, modifying and retrieving attack groups for evaluation.

type EvalHost added in v2.2.0

type EvalHost interface {
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getevaluationhostnames
	// Deprecated: this method will be removed in a future release. Use the GetWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	GetEvalHosts(ctx context.Context, params GetEvalHostsRequest) (*GetEvalHostsResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getevaluationhostnames
	// Deprecated: this method will be removed in a future release. Use the GetWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	GetEvalHost(ctx context.Context, params GetEvalHostRequest) (*GetEvalHostResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putevaluationhostnames
	// Deprecated: this method will be removed in a future release. Use the UpdateWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	UpdateEvalHost(ctx context.Context, params UpdateEvalHostRequest) (*UpdateEvalHostResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putevaluationhostnames
	// Deprecated: this method will be removed in a future release. Use the WAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	RemoveEvalHost(ctx context.Context, params RemoveEvalHostRequest) (*RemoveEvalHostResponse, error)
}

The EvalHost interface supports retrieving and modifying list of evaluation hostnames for a configuration. Deprecated: this interface will be removed in a future release. Use the WAPSelectedHostnames interface instead.

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

type EvalPenaltyBox added in v2.14.0

The EvalPenaltyBox interface supports retrieving or modifying the evaluation penalty box settings for a specified security policy in evaluation mode.

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

type EvalProtectHost added in v2.2.0

type EvalProtectHost interface {
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getevaluationhostnames
	// Deprecated: this method will be removed in a future release. Use the GetWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	GetEvalProtectHosts(ctx context.Context, params GetEvalProtectHostsRequest) (*GetEvalProtectHostsResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getevaluationhostnames
	// Deprecated: this method will be removed in a future release. Use the GetWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	GetEvalProtectHost(ctx context.Context, params GetEvalProtectHostRequest) (*GetEvalProtectHostResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putmoveevaluationhostnamestoprotection
	// Deprecated: this method will be removed in a future release. Use the UpdateWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	UpdateEvalProtectHost(ctx context.Context, params UpdateEvalProtectHostRequest) (*UpdateEvalProtectHostResponse, error)
}

The EvalProtectHost interface supports retrieving the evaluation hostnames for a configuration and moving hostnames from evaluating to protected status. Deprecated: this interface will be removed in a future release. Use the WAPSelectedHostnames interface instead.

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

type EvaluatingSecurityPolicy added in v2.16.0

type EvaluatingSecurityPolicy struct {
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
		ApplyRateControls             bool `json:"applyRateControls,omitempty"`
		ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
	}
	Hostnames        []string `json:"hostnames,omitempty"`
	SecurityPolicyID string   `json:"id"`
}

EvaluatingSecurityPolicy is returned from a call to GetExportConfiguration.

type Evaluationexp added in v2.2.0

type Evaluationexp struct {
	AttackGroupActions []struct {
		Action string `json:"action"`
		Group  string `json:"group"`
	} `json:"attackGroupActions"`
	EvaluationID      int `json:"evaluationId"`
	EvaluationVersion int `json:"evaluationVersion"`
	RuleActions       []struct {
		Action     string          `json:"action"`
		ID         int             `json:"id"`
		Conditions *RuleConditions `json:"conditions,omitempty"`
		Exception  *RuleException  `json:"exception,omitempty"`
	} `json:"ruleActions"`
	RulesetVersionID int `json:"rulesetVersionId"`
}

Evaluationexp is returned as part of GetExportConfigurationResponse.

type EvasivePathMatchexp added in v2.9.0

type EvasivePathMatchexp struct {
	EnablePathMatch bool `json:"enabled"`
}

EvasivePathMatchexp contains the EnablePathMatch setting

type Evidences added in v2.8.1

type Evidences []struct {
	HostEvidences     []string `json:"hostEvidences,omitempty"`
	PathEvidences     []string `json:"pathEvidences,omitempty"`
	UserDataEvidences []string `json:"userDataEvidences,omitempty"`
}

Evidences is used to describe evidences for a recommendation.

type ExcludeCondition added in v2.5.0

type ExcludeCondition struct {
	Type          string   `json:"type"`
	PositiveMatch bool     `json:"positiveMatch"`
	Header        string   `json:"header"`
	Value         []string `json:"value"`
	Name          string   `json:"name"`
	ValueCase     bool     `json:"valueCase"`
	ValueWildcard bool     `json:"valueWildcard"`
	UseHeaders    bool     `json:"useHeaders"`
}

ExcludeCondition describes the pragma header's excluded conditions.

type ExportConfiguration

type ExportConfiguration interface {
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getconfigurationversionexport
	// Deprecated: this method will be removed in a future release. Use GetExportConfiguration instead.
	GetExportConfigurations(ctx context.Context, params GetExportConfigurationsRequest) (*GetExportConfigurationsResponse, error)

	GetExportConfiguration(ctx context.Context, params GetExportConfigurationRequest) (*GetExportConfigurationResponse, error)
}

The ExportConfiguration interface supports exporting comprehensive details about a security configuration version. This operation returns more data than Get configuration version details, including rate and security policies, rules, hostnames, and numerous additional settings.

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

type FailoverHostnames added in v2.2.0

The FailoverHostnames interface supports retrieving the failover hostnames in a configuration.

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

type GeoControlsList added in v2.12.0

type GeoControlsList struct {
	BlockedIPNetworkLists IPNetworkListsList `json:"networkList"`
}

GeoControlsList is used to define a list of blocked IP network lists.

type GetAPIConstraintsProtectionRequest added in v2.5.0

type GetAPIConstraintsProtectionRequest struct {
	ConfigID            int    `json:"-"`
	Version             int    `json:"-"`
	PolicyID            string `json:"-"`
	ApplyAPIConstraints bool   `json:"applyApiConstraints"`
}

GetAPIConstraintsProtectionRequest is used to retrieve the API constraints protection setting.

func (GetAPIConstraintsProtectionRequest) Validate added in v2.5.0

Validate validates a GetAPIConstraintsProtectionRequest.

type GetAPIConstraintsProtectionResponse added in v2.5.0

type GetAPIConstraintsProtectionResponse ProtectionsResponse

GetAPIConstraintsProtectionResponse contains the status of various protection flags assigned to a security policy.

type GetActivationHistoryRequest added in v2.14.0

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

GetActivationHistoryRequest is used to request the activation history for a configuration.

func (GetActivationHistoryRequest) Validate added in v2.14.0

func (v GetActivationHistoryRequest) Validate() error

Validate validates a GetActivationHistoryRequest.

type GetActivationHistoryResponse added in v2.14.0

type GetActivationHistoryResponse struct {
	ConfigID          int          `json:"configId"`
	ActivationHistory []Activation `json:"activationHistory,omitempty"`
}

GetActivationHistoryResponse lists the activation history for a configuration.

type GetActivationsRequest

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

GetActivationsRequest is used to request the status of an activation request.

func (GetActivationsRequest) Validate

func (v GetActivationsRequest) Validate() error

Validate validates a 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"`
}

GetActivationsResponse is returned from a call to GetActivations.

type GetAdvancedSettingsEvasivePathMatchRequest added in v2.9.0

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

GetAdvancedSettingsEvasivePathMatchRequest is used to retrieve the EvasivePathMatch setting

func (GetAdvancedSettingsEvasivePathMatchRequest) Validate added in v2.9.0

Validate validates GetAdvancedSettingssEvasivePathMatchRequest

type GetAdvancedSettingsEvasivePathMatchResponse added in v2.9.0

type GetAdvancedSettingsEvasivePathMatchResponse struct {
	EnablePathMatch bool `json:"enablePathMatch"`
}

GetAdvancedSettingsEvasivePathMatchResponse returns the EvasivePathMatch setting

type GetAdvancedSettingsLoggingRequest added in v2.2.0

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

GetAdvancedSettingsLoggingRequest is used to retrieve the HTTP header logging settings for a configuration or policy.

func (GetAdvancedSettingsLoggingRequest) Validate added in v2.2.0

Validate validates a GetAdvancedSettingsLoggingsRequest.

type GetAdvancedSettingsLoggingResponse added in v2.2.0

type GetAdvancedSettingsLoggingResponse struct {
	Override        json.RawMessage                  `json:"override,omitempty"`
	AllowSampling   bool                             `json:"allowSampling"`
	Cookies         *AdvancedSettingsCookies         `json:"cookies,omitempty"`
	CustomHeaders   *AdvancedSettingsCustomHeaders   `json:"customHeaders,omitempty"`
	StandardHeaders *AdvancedSettingsStandardHeaders `json:"standardHeaders,omitempty"`
}

GetAdvancedSettingsLoggingResponse is returned from a call to GetAdvancedSettingsLogging.

type GetAdvancedSettingsPragmaRequest added in v2.5.0

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

GetAdvancedSettingsPragmaRequest is used to retrieve the pragma settings for a security policy.

func (GetAdvancedSettingsPragmaRequest) Validate added in v2.5.0

Validate validates a GetAdvancedSettingsPragmaRequest.

type GetAdvancedSettingsPragmaResponse added in v2.5.0

type GetAdvancedSettingsPragmaResponse struct {
	Action            string             `json:"action,,omitempty"`
	ConditionOperator string             `json:"conditionOperator,omitempty"`
	ExcludeCondition  []ExcludeCondition `json:"excludeCondition,omitempty"`
}

GetAdvancedSettingsPragmaResponse is returned from a call to GetAdvancedSettingsPragma.

type GetAdvancedSettingsPrefetchRequest added in v2.2.0

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

GetAdvancedSettingsPrefetchRequest is used to retrieve the prefetch request settings.

func (GetAdvancedSettingsPrefetchRequest) Validate added in v2.2.0

Validate validates a GetAdvancedSettingsPrefetchRequest.

type GetAdvancedSettingsPrefetchResponse added in v2.2.0

type GetAdvancedSettingsPrefetchResponse struct {
	AllExtensions      bool     `json:"allExtensions"`
	EnableAppLayer     bool     `json:"enableAppLayer"`
	EnableRateControls bool     `json:"enableRateControls"`
	Extensions         []string `json:"extensions,omitempty"`
}

GetAdvancedSettingsPrefetchResponse is returned from a call to GetAdvancedSettingsPrefetch.

type GetApiEndpointsRequest added in v2.2.0

type GetApiEndpointsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	Name     string `json:"-"`
	PolicyID string `json:"-"`
	ID       int    `json:"-"`
}

GetApiEndpointsRequest is used to retrieve the endpoints associated with a security policy.

func (GetApiEndpointsRequest) Validate added in v2.2.0

func (v GetApiEndpointsRequest) Validate() error

Validate validates a GetApiEndpointsRequest.

type GetApiEndpointsResponse added in v2.2.0

type GetApiEndpointsResponse struct {
	APIEndpoints []struct {
		ID               int      `json:"id"`
		Name             string   `json:"name"`
		BasePath         string   `json:"basePath"`
		APIEndPointHosts []string `json:"apiEndPointHosts"`
		StagingVersion   struct {
			Status        string `json:"status"`
			VersionNumber int    `json:"versionNumber"`
		} `json:"stagingVersion"`
		ProductionVersion struct {
			Status        string `json:"status"`
			VersionNumber int    `json:"versionNumber"`
		} `json:"productionVersion"`
		RequestConstraintsEnabled bool `json:"requestConstraintsEnabled"`
	} `json:"apiEndpoints"`
}

GetApiEndpointsResponse is returned from a call to GetApiEndpoints.

type GetApiHostnameCoverageMatchTargetsRequest added in v2.2.0

type GetApiHostnameCoverageMatchTargetsRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	Hostname string `json:"-"`
}

GetApiHostnameCoverageMatchTargetsRequest is used to retrieve the API and website match targets that protect a hostname.

func (GetApiHostnameCoverageMatchTargetsRequest) Validate added in v2.2.0

Validate validates a GetApiHostnameCoverageMatchTargetsRequest.

type GetApiHostnameCoverageMatchTargetsResponse added in v2.2.0

type GetApiHostnameCoverageMatchTargetsResponse struct {
	MatchTargets struct {
		WebsiteTargets []struct {
			Type                         string                                                `json:"type"`
			BypassNetworkLists           *HostnameCoverageMatchTargetBypassNetworkLists        `json:"bypassNetworkLists,omitempty"`
			ConfigID                     int                                                   `json:"configId"`
			ConfigVersion                int                                                   `json:"configVersion"`
			DefaultFile                  string                                                `json:"defaultFile"`
			EffectiveSecurityControls    *HostnameCoverageMatchTargetEffectiveSecurityControls `json:"effectiveSecurityControls,omitempty"`
			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"`
			TargetID int `json:"targetId"`
		} `json:"websiteTargets"`
		APITargets []interface{} `json:"apiTargets"`
	} `json:"matchTargets"`
}

GetApiHostnameCoverageMatchTargetsResponse is returned from a call to GetApiHostnameCoverageMatchTargets.

type GetApiHostnameCoverageOverlappingRequest added in v2.2.0

type GetApiHostnameCoverageOverlappingRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	Hostname string `json:"-"`
}

GetApiHostnameCoverageOverlappingRequest is used to retrieve the configuration versions that contain a hostname included in the current configuration version.

func (GetApiHostnameCoverageOverlappingRequest) Validate added in v2.2.0

Validate validates a GetApiHostnameCoverageOverlappingRequest.

type GetApiHostnameCoverageOverlappingResponse added in v2.2.0

type GetApiHostnameCoverageOverlappingResponse struct {
	OverLappingList []struct {
		ConfigID      int      `json:"configId"`
		ConfigName    string   `json:"configName"`
		ConfigVersion int      `json:"configVersion"`
		ContractID    string   `json:"contractId"`
		ContractName  string   `json:"contractName"`
		VersionTags   []string `json:"versionTags"`
	} `json:"overLappingList"`
}

GetApiHostnameCoverageOverlappingResponse is returned from a call to GetApiHostnameCoverageOverlapping.

type GetApiHostnameCoverageRequest added in v2.2.0

type GetApiHostnameCoverageRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	Hostname string `json:"-"`
}

GetApiHostnameCoverageRequest is used to call GetApiHostnameCoverage.

type GetApiHostnameCoverageResponse added in v2.2.0

type GetApiHostnameCoverageResponse struct {
	HostnameCoverage []struct {
		Configuration  *ConfigurationHostnameCoverage `json:"configuration,omitempty"`
		Status         string                         `json:"status"`
		HasMatchTarget bool                           `json:"hasMatchTarget"`
		Hostname       string                         `json:"hostname"`
		PolicyNames    []string                       `json:"policyNames"`
	} `json:"hostnameCoverage"`
}

GetApiHostnameCoverageResponse is returned from a call to GetApiHostnameCoverage.

type GetApiRequestConstraintsRequest added in v2.2.0

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

GetApiRequestConstraintsRequest is used to retrieve the list of APIs with their constraints and associated actions.

func (GetApiRequestConstraintsRequest) Validate added in v2.2.0

Validate validates a GetApiRequestConstraintsRequest.

type GetApiRequestConstraintsResponse added in v2.2.0

type GetApiRequestConstraintsResponse struct {
	APIEndpoints []ApiEndpoint `json:"apiEndpoints,omitempty"`
}

GetApiRequestConstraintsResponse is returned from a call to GetApiRequestConstraints.

type GetAttackGroupRecommendationsRequest added in v2.8.1

type GetAttackGroupRecommendationsRequest struct {
	ConfigID    int
	Version     int
	PolicyID    string
	Group       string
	RulesetType RulesetType
}

GetAttackGroupRecommendationsRequest is used to retrieve tuning recommendations for a specific attack group.

func (GetAttackGroupRecommendationsRequest) Validate added in v2.8.1

Validate validates a GetAttackGroupRecommendationsRequest.

type GetAttackGroupRecommendationsResponse added in v2.8.1

type GetAttackGroupRecommendationsResponse AttackGroupRecommendation

GetAttackGroupRecommendationsResponse is returned from a call to GetAttackGroupRecommendations.

type GetAttackGroupRequest added in v2.5.0

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

GetAttackGroupRequest is used to retrieve a list of attack groups with their associated actions.

func (GetAttackGroupRequest) Validate added in v2.5.0

func (v GetAttackGroupRequest) Validate() error

Validate validates a GetAttackGroupConditionExceptionRequest.

type GetAttackGroupResponse added in v2.5.0

type GetAttackGroupResponse struct {
	Action             string                         `json:"action,omitempty"`
	ConditionException *AttackGroupConditionException `json:"conditionException,omitempty"`
}

GetAttackGroupResponse is returned from a call to GetAttackGroup.

func (GetAttackGroupResponse) IsEmptyConditionException added in v2.5.0

func (r GetAttackGroupResponse) IsEmptyConditionException() bool

IsEmptyConditionException checks whether an attack group's ConditionException field is empty.

type GetAttackGroupsRequest added in v2.5.0

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

GetAttackGroupsRequest is used to retrieve a list of attack groups with their associated actions.

func (GetAttackGroupsRequest) Validate added in v2.5.0

func (v GetAttackGroupsRequest) Validate() error

Validate validates a GetAttackGroupConditionExceptionsRequest.

type GetAttackGroupsResponse added in v2.5.0

type GetAttackGroupsResponse struct {
	AttackGroups []struct {
		Group              string                         `json:"group,omitempty"`
		Action             string                         `json:"action,omitempty"`
		ConditionException *AttackGroupConditionException `json:"conditionException,omitempty"`
	} `json:"attackGroupActions,omitempty"`
}

GetAttackGroupsResponse is returned from a call to GetAttackGroups.

type GetBypassNetworkListsRequest added in v2.2.0

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

GetBypassNetworkListsRequest is used to list which network lists are used in the bypass network lists settings.

func (GetBypassNetworkListsRequest) Validate added in v2.2.0

func (v GetBypassNetworkListsRequest) Validate() error

Validate validates a GetBypassNetworkListsRequest.

type GetBypassNetworkListsResponse added in v2.2.0

type GetBypassNetworkListsResponse struct {
	NetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"networkLists"`
}

GetBypassNetworkListsResponse is returned from a call to GetBypassNetworkLists.

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"`
}

GetConfigurationCloneRequest is used to retrieve information about an existing security configuration.

func (GetConfigurationCloneRequest) Validate

func (v GetConfigurationCloneRequest) Validate() error

Validate validates a 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"`
}

GetConfigurationCloneResponse is returned from a call to GetConfigurationClone.

type GetConfigurationRequest added in v2.2.0

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

GetConfigurationRequest GetConfigurationRequest is used to retrieve information about a specific configuration.

func (GetConfigurationRequest) Validate added in v2.2.0

func (v GetConfigurationRequest) Validate() error

Validate validates a GetConfigurationRequest.

type GetConfigurationResponse added in v2.2.0

type GetConfigurationResponse 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"`
}

GetConfigurationResponse is returned from a call to GetConfiguration.

type GetConfigurationVersionCloneRequest added in v2.2.0

type GetConfigurationVersionCloneRequest 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"`
}

GetConfigurationVersionCloneRequest is used to retrieve information about an existing configuration version.

func (GetConfigurationVersionCloneRequest) Validate added in v2.2.0

Validate validates a GetConfigurationCloneRequest.

type GetConfigurationVersionCloneResponse added in v2.2.0

type GetConfigurationVersionCloneResponse 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"`
}

GetConfigurationVersionCloneResponse is returned from a call to GetConfigurationVersionClone.

type GetConfigurationVersionsRequest

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

GetConfigurationVersionsRequest is used to retrieve the versions of a security configuration.

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"`
}

GetConfigurationVersionsResponse is returned from a call to GetConfigurationVersions.

type GetConfigurationsRequest

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

GetConfigurationsRequest is used to list the available security configurations.

func (GetConfigurationsRequest) Validate added in v2.2.0

func (v GetConfigurationsRequest) Validate() error

Validate validates a GetConfigurationsRequest.

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"`
}

GetConfigurationsResponse is returned from a call to GetConfigurations.

type GetContractsGroupsRequest added in v2.2.0

type GetContractsGroupsRequest struct {
	ConfigID   int    `json:"-"`
	Version    int    `json:"-"`
	PolicyID   string `json:"-"`
	ContractID string `json:"-"`
	GroupID    int    `json:"-"`
}

GetContractsGroupsRequest is used to retrieve the list of contracts and groups for your account.

type GetContractsGroupsResponse added in v2.2.0

type GetContractsGroupsResponse struct {
	ContractGroups []struct {
		ContractID  string `json:"contractId"`
		DisplayName string `json:"displayName"`
		GroupID     int    `json:"groupId"`
	} `json:"contract_groups"`
}

GetContractsGroupsResponse is returned from a call to GetContractsGroups.

type GetCustomDenyListRequest added in v2.2.0

type GetCustomDenyListRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	ID       string `json:"id,omitempty"`
}

GetCustomDenyListRequest is used to retrieve the custom deny actions for a configuration.

func (GetCustomDenyListRequest) Validate added in v2.2.0

func (v GetCustomDenyListRequest) Validate() error

Validate validates a GetCustomDenysRequest.

type GetCustomDenyListResponse added in v2.2.0

type GetCustomDenyListResponse struct {
	CustomDenyList []struct {
		Description string       `json:"description,omitempty"`
		Name        string       `json:"name"`
		ID          customDenyID `json:"id"`
		Parameters  []struct {
			DisplayName string `json:"-"`
			Name        string `json:"name"`
			Value       string `json:"value"`
		} `json:"parameters"`
	} `json:"customDenyList"`
}

GetCustomDenyListResponse is returned from a call to GetCustomDenyList.

type GetCustomDenyRequest added in v2.2.0

type GetCustomDenyRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	ID       string `json:"id,omitempty"`
}

GetCustomDenyRequest is used to retrieve a specific custom deny action.

func (GetCustomDenyRequest) Validate added in v2.2.0

func (v GetCustomDenyRequest) Validate() error

Validate validates a GetCustomDenyRequest.

type GetCustomDenyResponse added in v2.2.0

type GetCustomDenyResponse struct {
	Description string       `json:"description,omitempty"`
	Name        string       `json:"name"`
	ID          customDenyID `json:"-"`
	Parameters  []struct {
		DisplayName string `json:"-"`
		Name        string `json:"name"`
		Value       string `json:"value"`
	} `json:"parameters"`
}

GetCustomDenyResponse is returned from a call to GetCustomDeny.

type GetCustomRuleActionRequest

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

GetCustomRuleActionRequest is used to retrieve the action for a custom rule.

func (GetCustomRuleActionRequest) Validate

func (v GetCustomRuleActionRequest) Validate() error

Validate validates a 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"`
}

GetCustomRuleActionResponse is returned from a call to GetCustomRuleAction.

type GetCustomRuleActionsRequest

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

GetCustomRuleActionsRequest is used to retrieve the custom rule actions for a configuration.

func (GetCustomRuleActionsRequest) Validate

func (v GetCustomRuleActionsRequest) Validate() error

Validate validates a 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"`
}

GetCustomRuleActionsResponse is returned from a call to GetCustomRuleActions.

type GetCustomRuleRequest

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

GetCustomRuleRequest is used to retrieve the details of a custom rule.

func (GetCustomRuleRequest) Validate

func (v GetCustomRuleRequest) Validate() error

Validate validates a GetCustomRuleRequest.

type GetCustomRuleResponse

type GetCustomRuleResponse CustomRuleResponse

GetCustomRuleResponse is returned from a call to GetCustomRule.

type GetCustomRulesRequest

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

GetCustomRulesRequest is used to retrieve the custom rules for a configuration.

func (GetCustomRulesRequest) Validate

func (v GetCustomRulesRequest) Validate() error

Validate validates a 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"`
		EffectiveTimePeriod *CustomRuleEffectivePeriod `json:"effectiveTimePeriod,omitempty"`
		SamplingRate        *int                       `json:"samplingRate,omitempty"`
	} `json:"customRules"`
}

GetCustomRulesResponse is returned from a call to GetCustomRules.

type GetEvalHostRequest added in v2.2.0

type GetEvalHostRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`
}

GetEvalHostRequest is used to retrieve the evaluation hostnames for a configuration. Deprecated: this struct will be removed in a future release.

func (GetEvalHostRequest) Validate added in v2.2.0

func (v GetEvalHostRequest) Validate() error

Validate validates a GetEvalHostRequest. Deprecated: this method will be removed in a future release.

type GetEvalHostResponse added in v2.2.0

type GetEvalHostResponse struct {
	Hostnames []string `json:"hostnames"`
}

GetEvalHostResponse is returned from a call to GetEvalHost. Deprecated: this struct will be removed in a future release.

type GetEvalHostsRequest added in v2.2.0

type GetEvalHostsRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`
}

GetEvalHostsRequest is used to retrieve the evaluation hostnames for a configuration.

func (GetEvalHostsRequest) Validate added in v2.2.0

func (v GetEvalHostsRequest) Validate() error

Validate validates a GetEvalHostsRequest.

type GetEvalHostsResponse added in v2.2.0

type GetEvalHostsResponse struct {
	Hostnames []string `json:"hostnames"`
}

GetEvalHostsResponse is returned from a call to GetEvalHosts.

type GetEvalProtectHostRequest added in v2.2.0

type GetEvalProtectHostRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`
}

GetEvalProtectHostRequest is used to call GetEvalProtectHost. Deprecated: this struct will be removed in a future release.

func (GetEvalProtectHostRequest) Validate added in v2.2.0

func (v GetEvalProtectHostRequest) Validate() error

Validate validates a GetEvalProtectHostRequest. Deprecated: this method will be removed in a future release.

type GetEvalProtectHostResponse added in v2.2.0

type GetEvalProtectHostResponse struct {
	Hostnames []string `json:"hostnames"`
}

GetEvalProtectHostResponse is returned from a call to GetEvalProtectHost. Deprecated: this struct will be removed in a future release.

type GetEvalProtectHostsRequest added in v2.2.0

type GetEvalProtectHostsRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`
}

GetEvalProtectHostsRequest is used to call GetEvalProtectHosts.

func (GetEvalProtectHostsRequest) Validate added in v2.2.0

func (v GetEvalProtectHostsRequest) Validate() error

Validate validates a GetEvalProtectHostsRequest.

type GetEvalProtectHostsResponse added in v2.2.0

type GetEvalProtectHostsResponse struct {
	Hostnames []string `json:"hostnames"`
}

GetEvalProtectHostsResponse is returned from a call to GetEvalProtectHosts.

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"`
}

GetEvalRequest is used to retrieve the mode setting that conveys how rules will be kept up to date.

func (GetEvalRequest) Validate added in v2.0.4

func (v GetEvalRequest) Validate() error

Validate validates a 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"`
}

GetEvalResponse is returned from a call to GetEvalResponse.

type GetEvalRuleRequest added in v2.5.0

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

GetEvalRuleRequest is used to retrieve a rule available for evaluation and its action.

func (GetEvalRuleRequest) Validate added in v2.5.0

func (v GetEvalRuleRequest) Validate() error

Validate validates a GetEvalRuleRequest.

type GetEvalRuleResponse added in v2.5.0

type GetEvalRuleResponse struct {
	Action             string                  `json:"action,omitempty"`
	ConditionException *RuleConditionException `json:"conditionException,omitempty"`
}

GetEvalRuleResponse is returned from a call to GetEvalRule.

func (*GetEvalRuleResponse) IsEmptyConditionException added in v2.5.0

func (r *GetEvalRuleResponse) IsEmptyConditionException() bool

IsEmptyConditionException checks whether the ConditionException field is empty.

type GetEvalRulesRequest added in v2.5.0

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

GetEvalRulesRequest is used to retrieve the rules available for evaluation and their actions.

func (GetEvalRulesRequest) Validate added in v2.5.0

func (v GetEvalRulesRequest) Validate() error

Validate validates a GetEvalRulesRequest.

type GetEvalRulesResponse added in v2.5.0

type GetEvalRulesResponse struct {
	Rules []struct {
		ID                 int                     `json:"id,omitempty"`
		Action             string                  `json:"action,omitempty"`
		ConditionException *RuleConditionException `json:"conditionException,omitempty"`
	} `json:"evalRuleActions,omitempty"`
}

GetEvalRulesResponse is returned from a call to GetEvalRules.

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"`
}

GetEvalsRequest is used to retrieve the mode setting that conveys how rules will be kept up to date. Deprecated: this struct will be removed in a future release.

func (GetEvalsRequest) Validate added in v2.0.4

func (v GetEvalsRequest) Validate() error

Validate validates a GetEvalsRequest. Deprecated: this method will be removed in a future release.

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"`
}

GetEvalsResponse is returned from a call to GetEvalsResponse. Deprecated: this struct will be removed in a future release.

type GetExportConfigurationRequest added in v2.8.1

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

GetExportConfigurationRequest is used to call GetExportConfiguration.

type GetExportConfigurationResponse added in v2.8.1

type GetExportConfigurationResponse 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:"-"`
	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,omitempty"`
		AverageThreshold      int                          `json:"averageThreshold"`
		BurstThreshold        int                          `json:"burstThreshold"`
		ClientIdentifier      string                       `json:"clientIdentifier"`
		CreateDate            time.Time                    `json:"-"`
		Description           string                       `json:"description,omitempty"`
		FileExtensions        *RatePolicyFileExtensions    `json:"fileExtensions,omitempty"`
		Hosts                 *RatePoliciesHosts           `json:"hosts,omitempty"`
		Hostnames             []string                     `json:"hostnames,omitempty"`
		ID                    int                          `json:"id"`
		MatchType             string                       `json:"matchType"`
		Name                  string                       `json:"name"`
		Path                  *RatePoliciesPath            `json:"path,omitempty"`
		PathMatchType         string                       `json:"pathMatchType,omitempty"`
		PathURIPositiveMatch  bool                         `json:"pathUriPositiveMatch"`
		QueryParameters       *RatePoliciesQueryParameters `json:"queryParameters,omitempty"`
		RequestType           string                       `json:"requestType"`
		SameActionOnIpv6      bool                         `json:"sameActionOnIpv6"`
		Type                  string                       `json:"type"`
		UpdateDate            time.Time                    `json:"-"`
		UseXForwardForHeaders bool                         `json:"useXForwardForHeaders"`
		Used                  bool                         `json:"-"`
	} `json:"ratePolicies"`
	ReputationProfiles []struct {
		Condition       *ConditionReputationProfile `json:"condition,omitempty"`
		Context         string                      `json:"context,omitempty"`
		ContextReadable string                      `json:"-"`

		Enabled          bool   `json:"-"`
		ID               int    `json:"id"`
		Name             string `json:"name"`
		SharedIPHandling string `json:"sharedIpHandling"`
		Threshold        int    `json:"threshold"`
	} `json:"reputationProfiles"`
	CustomRules []struct {
		ID            int      `json:"id"`
		Name          string   `json:"name"`
		Description   string   `json:"description,omitempty"`
		Version       int      `json:"-"`
		RuleActivated bool     `json:"-"`
		Structured    bool     `json:"-"`
		Tag           []string `json:"tag,omitempty"`
		Conditions    []struct {
			Name                  *json.RawMessage `json:"name,omitempty"`
			NameCase              *bool            `json:"nameCase,omitempty"`
			NameWildcard          *bool            `json:"nameWildcard,omitempty"`
			PositiveMatch         bool             `json:"positiveMatch"`
			Type                  string           `json:"type"`
			Value                 *json.RawMessage `json:"value,omitempty"`
			ValueCase             *bool            `json:"valueCase,omitempty"`
			ValueExactMatch       *bool            `json:"valueExactMatch,omitempty"`
			ValueIgnoreSegment    *bool            `json:"valueIgnoreSegment,omitempty"`
			ValueNormalize        *bool            `json:"valueNormalize,omitempty"`
			ValueRecursive        *bool            `json:"valueRecursive,omitempty"`
			ValueWildcard         *bool            `json:"valueWildcard,omitempty"`
			UseXForwardForHeaders *bool            `json:"useXForwardForHeaders,omitempty"`
		} `json:"conditions,omitempty"`

		EffectiveTimePeriod *CustomRuleEffectivePeriod `json:"effectiveTimePeriod,omitempty"`
		SamplingRate        int                        `json:"samplingRate,omitempty"`
		LoggingOptions      *json.RawMessage           `json:"loggingOptions,omitempty"`
		Operation           string                     `json:"operation,omitempty"`
	} `json:"customRules"`
	Rulesets []struct {
		ID               int            `json:"id"`
		RulesetVersionID int            `json:"rulesetVersionId"`
		Type             string         `json:"type"`
		ReleaseDate      time.Time      `json:"releaseDate"`
		Rules            *RulesetsRules `json:"rules,omitempty"`
		AttackGroups     []struct {
			Group     string `json:"group"`
			GroupName string `json:"groupName"`
			Threshold int    `json:"threshold,omitempty"`
		} `json:"attackGroups,omitempty"`
	} `json:"rulesets"`
	MatchTargets struct {
		APITargets []struct {
			Sequence int    `json:"sequence"`
			ID       int    `json:"id,omitempty"`
			TargetID int    `json:"targetId"`
			Type     string `json:"type,omitempty"`
			Apis     []struct {
				ID   int    `json:"id,omitempty"`
				Name string `json:"name,omitempty"`
			} `json:"apis,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:"apiTargets,omitempty"`
		WebsiteTargets []struct {
			Type               string `json:"type"`
			BypassNetworkLists []struct {
				ID   string `json:"id"`
				Name string `json:"name"`
			} `json:"bypassNetworkLists,omitempty"`
			DefaultFile                  string   `json:"defaultFile"`
			FilePaths                    []string `json:"filePaths,omitempty"`
			FileExtensions               []string `json:"fileExtensions,omitempty"`
			Hostnames                    []string `json:"hostnames,omitempty"`
			ID                           int      `json:"id"`
			IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
			SecurityPolicy               struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Sequence int `json:"-"`
		} `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"`
			ApplyMalwareControls          bool `json:"applyMalwareControls"`
		} `json:"securityControls"`
		WebApplicationFirewall struct {
			RuleActions []struct {
				Action                 string              `json:"action"`
				ID                     int                 `json:"id"`
				RulesetVersionID       int                 `json:"rulesetVersionId"`
				Conditions             *RuleConditions     `json:"conditions,omitempty"`
				AdvancedExceptionsList *AdvancedExceptions `json:"advancedExceptions,omitempty"`
				Exception              *RuleException      `json:"exception,omitempty"`
			} `json:"ruleActions,omitempty"`
			AttackGroupActions []struct {
				Action                 string                         `json:"action"`
				Group                  string                         `json:"group"`
				RulesetVersionID       int                            `json:"rulesetVersionId"`
				AdvancedExceptionsList *AttackGroupAdvancedExceptions `json:"advancedExceptions,omitempty"`
				Exception              *AttackGroupException          `json:"exception,omitempty"`
			} `json:"attackGroupActions,omitempty"`
			Evaluation  *WebApplicationFirewallEvaluation `json:"evaluation,omitempty"`
			ThreatIntel string                            `json:"threatIntel"`
		} `json:"webApplicationFirewall"`
		CustomRuleActions []struct {
			Action string `json:"action"`
			ID     int    `json:"id"`
		} `json:"customRuleActions,omitempty"`
		APIRequestConstraints *APIRequestConstraintsexp `json:"apiRequestConstraints,omitempty"`
		ClientReputation      struct {
			ReputationProfileActions *ClientReputationReputationProfileActions `json:"reputationProfileActions,omitempty"`
		} `json:"clientReputation"`
		RatePolicyActions    *SecurityPoliciesRatePolicyActions `json:"ratePolicyActions,omitempty"`
		MalwarePolicyActions []MalwarePolicyActionBody          `json:"malwarePolicyActions,omitempty"`
		IPGeoFirewall        *IPGeoFirewall                     `json:"ipGeoFirewall,omitempty"`
		PenaltyBox           *SecurityPoliciesPenaltyBox        `json:"penaltyBox,omitempty"`
		EvaluationPenaltyBox *SecurityPoliciesPenaltyBox        `json:"evaluationPenaltyBox,omitempty"`
		SlowPost             *SlowPostexp                       `json:"slowPost,omitempty"`
		LoggingOverrides     *LoggingOverridesexp               `json:"loggingOverrides,omitempty"`
		PragmaHeader         *GetAdvancedSettingsPragmaResponse `json:"pragmaHeader,omitempty"`
		EvasivePathMatch     *EvasivePathMatchexp               `json:"evasivePathMatch,omitempty"`
	} `json:"securityPolicies"`
	Siem            *Siemexp            `json:"siem,omitempty"`
	AdvancedOptions *AdvancedOptionsexp `json:"advancedOptions,omitempty"`
	CustomDenyList  *CustomDenyListexp  `json:"customDenyList,omitempty"`
	Evaluating      struct {
		SecurityPolicies []EvaluatingSecurityPolicy `json:"securityPolicies,omitempty"`
	} `json:"evaluating,omitempty"`
	MalwarePolicies []MalwarePolicyBody `json:"malwarePolicies,omitempty"`
}

GetExportConfigurationResponse is returned from a call to GetExportConfiguration.

type GetExportConfigurationsRequest

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

GetExportConfigurationsRequest is used to call GetExportConfigurations. Deprecated: this struct will be removed in a future release.

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:"-"`
	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,omitempty"`
		AverageThreshold      int                          `json:"averageThreshold"`
		BurstThreshold        int                          `json:"burstThreshold"`
		ClientIdentifier      string                       `json:"clientIdentifier"`
		CreateDate            time.Time                    `json:"-"`
		Description           string                       `json:"description,omitempty"`
		FileExtensions        *RatePolicyFileExtensions    `json:"fileExtensions,omitempty"`
		Hosts                 *RatePoliciesHosts           `json:"hosts,omitempty"`
		Hostnames             []string                     `json:"hostnames,omitempty"`
		ID                    int                          `json:"id"`
		MatchType             string                       `json:"matchType"`
		Name                  string                       `json:"name"`
		Path                  *RatePoliciesPath            `json:"path,omitempty"`
		PathMatchType         string                       `json:"pathMatchType,omitempty"`
		PathURIPositiveMatch  bool                         `json:"pathUriPositiveMatch"`
		QueryParameters       *RatePoliciesQueryParameters `json:"queryParameters,omitempty"`
		RequestType           string                       `json:"requestType"`
		SameActionOnIpv6      bool                         `json:"sameActionOnIpv6"`
		Type                  string                       `json:"type"`
		UpdateDate            time.Time                    `json:"-"`
		UseXForwardForHeaders bool                         `json:"useXForwardForHeaders"`
		Used                  bool                         `json:"-"`
	} `json:"ratePolicies"`
	ReputationProfiles []struct {
		Condition        *ConditionReputationProfile `json:"condition,omitempty"`
		Context          string                      `json:"context,omitempty"`
		ContextReadable  string                      `json:"-"`
		Enabled          bool                        `json:"-"`
		ID               int                         `json:"id"`
		Name             string                      `json:"name"`
		SharedIPHandling string                      `json:"sharedIpHandling"`
		Threshold        int                         `json:"threshold"`
	} `json:"reputationProfiles"`
	CustomRules []struct {
		Conditions    *ConditionsExp `json:"conditions,omitempty"`
		Description   string         `json:"description,omitempty"`
		ID            int            `json:"id"`
		Name          string         `json:"name"`
		RuleActivated bool           `json:"-"`
		Structured    bool           `json:"-"`
		Tag           []string       `json:"tag"`
		Version       int            `json:"-"`
	} `json:"customRules"`
	Rulesets []struct {
		ID               int            `json:"id"`
		RulesetVersionID int            `json:"rulesetVersionId"`
		Type             string         `json:"type"`
		ReleaseDate      time.Time      `json:"releaseDate"`
		Rules            *RulesetsRules `json:"rules,omitempty"`
		AttackGroups     []struct {
			Group     string `json:"group"`
			GroupName string `json:"groupName"`
			Threshold int    `json:"threshold,omitempty"`
		} `json:"attackGroups,omitempty"`
	} `json:"rulesets"`
	MatchTargets struct {
		APITargets []struct {
			Sequence int    `json:"-"`
			ID       int    `json:"id,omitempty"`
			Type     string `json:"type,omitempty"`
			Apis     []struct {
				ID   int    `json:"id,omitempty"`
				Name string `json:"name,omitempty"`
			} `json:"apis,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:"apiTargets,omitempty"`
		WebsiteTargets []struct {
			Type               string `json:"type"`
			BypassNetworkLists []struct {
				ID   string `json:"id"`
				Name string `json:"name"`
			} `json:"bypassNetworkLists,omitempty"`
			DefaultFile                  string   `json:"defaultFile"`
			FilePaths                    []string `json:"filePaths,omitempty"`
			FileExtensions               []string `json:"fileExtensions,omitempty"`
			Hostnames                    []string `json:"hostnames,omitempty"`
			ID                           int      `json:"id"`
			IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
			SecurityPolicy               struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Sequence int `json:"-"`
		} `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"`
			ApplyMalwareControls          bool `json:"applyMalwareControls"`
		} `json:"securityControls"`
		WebApplicationFirewall struct {
			RuleActions []struct {
				Action           string          `json:"action"`
				ID               int             `json:"id"`
				RulesetVersionID int             `json:"rulesetVersionId"`
				Conditions       *RuleConditions `json:"conditions,omitempty"`
				Exception        *RuleException  `json:"exception,omitempty"`
			} `json:"ruleActions,omitempty"`
			AttackGroupActions []struct {
				Action                 string                         `json:"action"`
				Group                  string                         `json:"group"`
				RulesetVersionID       int                            `json:"rulesetVersionId"`
				AdvancedExceptionsList *AttackGroupAdvancedExceptions `json:"advancedExceptions,omitempty"`
				Exception              *AttackGroupException          `json:"exception,omitempty"`
			} `json:"attackGroupActions,omitempty"`
			Evaluation  *WebApplicationFirewallEvaluation `json:"evaluation,omitempty"`
			ThreatIntel string                            `json:"threatIntel"`
		} `json:"webApplicationFirewall"`
		CustomRuleActions []struct {
			Action string `json:"action"`
			ID     int    `json:"id"`
		} `json:"customRuleActions,omitempty"`
		APIRequestConstraints *APIRequestConstraintsexp `json:"apiRequestConstraints,omitempty"`
		ClientReputation      struct {
			ReputationProfileActions *ClientReputationReputationProfileActions `json:"reputationProfileActions,omitempty"`
		} `json:"clientReputation"`
		RatePolicyActions *SecurityPoliciesRatePolicyActions `json:"ratePolicyActions,omitempty"`
		IPGeoFirewall     struct {
			Block       string `json:"block"`
			GeoControls struct {
				BlockedIPNetworkLists struct {
					NetworkList []string `json:"networkList,omitempty"`
				} `json:"blockedIPNetworkLists"`
			} `json:"geoControls"`
			IPControls struct {
				AllowedIPNetworkLists struct {
					NetworkList []string `json:"networkList,omitempty"`
				} `json:"allowedIPNetworkLists"`
				BlockedIPNetworkLists struct {
					NetworkList []string `json:"networkList,omitempty"`
				} `json:"blockedIPNetworkLists"`
			} `json:"ipControls"`
		} `json:"ipGeoFirewall,omitempty"`
		PenaltyBox           *SecurityPoliciesPenaltyBox        `json:"penaltyBox,omitempty"`
		EvaluationPenaltyBox *SecurityPoliciesPenaltyBox        `json:"evaluationPenaltyBox,omitempty"`
		SlowPost             *SlowPostexp                       `json:"slowPost,omitempty"`
		LoggingOverrides     *LoggingOverridesexp               `json:"loggingOverrides,omitempty"`
		PragmaHeader         *GetAdvancedSettingsPragmaResponse `json:"pragmaHeader,omitempty"`
		EvasivePathMatch     *EvasivePathMatchexp               `json:"evasivePathMatch,omitempty"`
	} `json:"securityPolicies"`
	Siem            *Siemexp            `json:"siem,omitempty"`
	AdvancedOptions *AdvancedOptionsexp `json:"advancedOptions,omitempty"`
	CustomDenyList  *CustomDenyListexp  `json:"customDenyList,omitempty"`
	Evaluating      struct {
		SecurityPolicies []struct {
			EffectiveSecurityControls struct {
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls,omitempty"`
				ApplyRateControls             bool `json:"applyRateControls,omitempty"`
				ApplySlowPostControls         bool `json:"applySlowPostControls,omitempty"`
			}
			Hostnames        []string `json:"hostnames,omitempty"`
			SecurityPolicyID string   `json:"id"`
		}
	} `json:"evaluating"`
}

GetExportConfigurationsResponse is returned from a call to GetExportConfigurations. Deprecated: this struct will be removed in a future release.

type GetFailoverHostnamesRequest added in v2.2.0

type GetFailoverHostnamesRequest struct {
	ConfigID int `json:"-"`
}

GetFailoverHostnamesRequest is used to retrieve the failover hostnames for a configuration.

type GetFailoverHostnamesResponse added in v2.2.0

type GetFailoverHostnamesResponse struct {
	ConfigID      int `json:"-"`
	ConfigVersion int `json:"-"`
	HostnameList  []struct {
		Hostname string `json:"hostname"`
	} `json:"hostnameList"`
}

GetFailoverHostnamesResponse is returned from a call to GetFailoverHostnames.

type GetIPGeoProtectionRequest added in v2.5.0

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

GetIPGeoProtectionRequest is used to retrieve the IPGeo protection settings.

func (GetIPGeoProtectionRequest) Validate added in v2.5.0

func (v GetIPGeoProtectionRequest) Validate() error

Validate validates a GetIPGeoProtectionRequest.

type GetIPGeoProtectionResponse added in v2.5.0

type GetIPGeoProtectionResponse ProtectionsResponse

GetIPGeoProtectionResponse is returned from a call to GetIPGeoProtection.

type GetIPGeoProtectionsRequest added in v2.5.0

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

GetIPGeoProtectionsRequest is used to retrieve the IPGeo protection settings. Deprecated: this struct will be removed in a future release.

func (GetIPGeoProtectionsRequest) Validate added in v2.5.0

func (v GetIPGeoProtectionsRequest) Validate() error

Validate validates a GetIPGeoProtectionsRequest.

type GetIPGeoProtectionsResponse added in v2.5.0

type GetIPGeoProtectionsResponse ProtectionsResponse

GetIPGeoProtectionsResponse is returned from a call to GetIPGeoProtections. Deprecated: this struct will be removed in a future release.

type GetIPGeoRequest added in v2.0.4

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

GetIPGeoRequest is used to retrieve the network lists used in IP/Geo firewall settings.

func (GetIPGeoRequest) Validate added in v2.0.4

func (v GetIPGeoRequest) Validate() error

Validate validates a GetIPGeoRequest.

type GetIPGeoResponse added in v2.0.4

type GetIPGeoResponse IPGeoFirewall

GetIPGeoResponse is returned from a call to GetIPGeo

type GetMalwareContentTypesRequest added in v2.16.0

type GetMalwareContentTypesRequest struct {
	ConfigID int
	Version  int
}

GetMalwareContentTypesRequest is used to retrieve the content types for a configuration version.

func (GetMalwareContentTypesRequest) Validate added in v2.16.0

func (v GetMalwareContentTypesRequest) Validate() error

Validate validates a GetMalwareContentTypesRequest.

type GetMalwareContentTypesResponse added in v2.16.0

type GetMalwareContentTypesResponse struct {
	ContentTypes []string `json:"malwareContentTypes"`
}

GetMalwareContentTypesResponse is returned from a call to GetMalwareContentTypes.

type GetMalwarePoliciesRequest added in v2.16.0

type GetMalwarePoliciesRequest struct {
	ConfigID        int
	ConfigVersion   int
	MalwarePolicyID int
}

GetMalwarePoliciesRequest is used to retrieve the malware policies for a configuration.

func (GetMalwarePoliciesRequest) Validate added in v2.16.0

func (v GetMalwarePoliciesRequest) Validate() error

Validate validates a GetMalwarePolicysRequest.

type GetMalwarePolicyActionsRequest added in v2.16.0

type GetMalwarePolicyActionsRequest struct {
	ConfigID        int    `json:"configID"`
	Version         int    `json:"version"`
	PolicyID        string `json:"policyID"`
	MalwarePolicyID int    `json:"id"`
}

GetMalwarePolicyActionsRequest is used to retrieve a configuration's malware policies and their associated actions.

func (GetMalwarePolicyActionsRequest) Validate added in v2.16.0

Validate validates a GetMalwarePolicyActionsRequest.

type GetMalwarePolicyActionsResponse added in v2.16.0

type GetMalwarePolicyActionsResponse struct {
	MalwarePolicyActions []MalwarePolicyActionBody `json:"malwarePolicyActions"`
}

GetMalwarePolicyActionsResponse is returned from a call to GetMalwarePolicyActions.

type GetMalwarePolicyRequest added in v2.16.0

type GetMalwarePolicyRequest struct {
	ConfigID        int
	ConfigVersion   int
	MalwarePolicyID int
}

GetMalwarePolicyRequest is used to retrieve an existing malware policy.

func (GetMalwarePolicyRequest) Validate added in v2.16.0

func (v GetMalwarePolicyRequest) Validate() error

Validate validates a GetMalwarePolicyRequest.

type GetMalwareProtectionRequest added in v2.16.0

type GetMalwareProtectionRequest struct {
	ConfigID             int    `json:"-"`
	Version              int    `json:"-"`
	PolicyID             string `json:"-"`
	ApplyMalwareControls bool   `json:"applyMalwareControls"`
}

GetMalwareProtectionRequest is used to retrieve the malware protection setting for a policy.

func (GetMalwareProtectionRequest) Validate added in v2.16.0

func (v GetMalwareProtectionRequest) Validate() error

Validate validates a GetMalwareProtectionRequest.

type GetMalwareProtectionResponse added in v2.16.0

type GetMalwareProtectionResponse ProtectionsResponse

GetMalwareProtectionResponse is returned from a call to GetMalwareProtection.

type GetMalwareProtectionsRequest added in v2.16.0

type GetMalwareProtectionsRequest struct {
	ConfigID             int    `json:"-"`
	Version              int    `json:"-"`
	PolicyID             string `json:"-"`
	ApplyMalwareControls bool   `json:"applyMalwareControls"`
}

GetMalwareProtectionsRequest is used to retrieve the malware protecton setting for a policy.

func (GetMalwareProtectionsRequest) Validate added in v2.16.0

func (v GetMalwareProtectionsRequest) Validate() error

Validate validates a GetMalwareProtectionsRequest.

type GetMalwareProtectionsResponse added in v2.16.0

type GetMalwareProtectionsResponse ProtectionsResponse

GetMalwareProtectionsResponse is returned from a call to GetMalwareProtections.

type GetMatchTargetRequest

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

GetMatchTargetRequest is used to retrieve a match target.

func (GetMatchTargetRequest) Validate

func (v GetMatchTargetRequest) Validate() error

Validate validates a GetMatchTargetRequest.

type GetMatchTargetResponse

type GetMatchTargetResponse struct {
	Type string `json:"type,omitempty"`
	Apis []struct {
		ID   int    `json:"id"`
		Name string `json:"name"`
	} `json:"apis,omitempty"`
	DefaultFile                  string           `json:"defaultFile,omitempty"`
	Hostnames                    []string         `json:"hostnames,omitempty"`
	IsNegativeFileExtensionMatch bool             `json:"isNegativeFileExtensionMatch,omitempty"`
	IsNegativePathMatch          *json.RawMessage `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:"-"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name,omitempty"`
		ID   string `json:"id,omitempty"`
	} `json:"bypassNetworkLists,omitempty"`
}

GetMatchTargetResponse is returned from a call to GetMatchTarget.

type GetMatchTargetSequenceRequest

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

GetMatchTargetSequenceRequest is used to retrieve the sequence of match targets for a configuration.

func (GetMatchTargetSequenceRequest) Validate

func (v GetMatchTargetSequenceRequest) Validate() error

Validate validates a GetMatchTargetSequenceRequest.

type GetMatchTargetSequenceResponse

type GetMatchTargetSequenceResponse struct {
	TargetSequence []MatchTargetItem `json:"targetSequence"`
	Type           string            `json:"type"`
}

GetMatchTargetSequenceResponse is returned from a call to GetMatchTargetSequence.

type GetMatchTargetsRequest

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

GetMatchTargetsRequest is used to retrieve the match targets for a configuration.

func (GetMatchTargetsRequest) Validate

func (v GetMatchTargetsRequest) Validate() error

Validate validates a GetMatchTargetsRequest.

type GetMatchTargetsResponse

type GetMatchTargetsResponse struct {
	MatchTargets struct {
		APITargets []struct {
			Type string `json:"type,omitempty"`
			Apis []struct {
				ID   int    `json:"id"`
				Name string `json:"name"`
			} `json:"apis"`
			Sequence      int `json:"sequence"`
			TargetID      int `json:"targetId"`
			ConfigID      int `json:"configId,omitempty"`
			ConfigVersion int `json:"configVersion,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:"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          *json.RawMessage `json:"isNegativePathMatch,omitempty"`
			Sequence                     int              `json:"-"`
			TargetID                     int              `json:"targetId,omitempty"`
			Type                         string           `json:"type,omitempty"`
			FileExtensions               []string         `json:"fileExtensions,omitempty"`
			FilePaths                    []string         `json:"filePaths,omitempty"`
			Hostnames                    []string         `json:"hostnames,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"`
}

GetMatchTargetsResponse is returned from a call to GetMatchTargets.

type GetNetworkLayerProtectionRequest added in v2.0.4

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

GetNetworkLayerProtectionRequest is used to retrieve the network layer protection setting.

func (GetNetworkLayerProtectionRequest) Validate added in v2.0.4

Validate validates a GetNetworkLayerProtectionRequest.

type GetNetworkLayerProtectionResponse added in v2.0.4

type GetNetworkLayerProtectionResponse ProtectionsResponse

GetNetworkLayerProtectionResponse is returned from a call to GetNetworkLayerProtection.

type GetNetworkLayerProtectionsRequest added in v2.0.4

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

GetNetworkLayerProtectionsRequest is used to retrieve the network layer protection setting. Deprecated: this struct will be removed in a future release.

func (GetNetworkLayerProtectionsRequest) Validate added in v2.0.4

Validate validates a GetNetworkLayerProtectionsRequest.

type GetNetworkLayerProtectionsResponse added in v2.0.4

type GetNetworkLayerProtectionsResponse ProtectionsResponse

GetNetworkLayerProtectionsResponse is returned from a call to GetNetworkLayerProtection. Deprecated: this struct will be removed in a future release.

type GetPenaltyBoxRequest

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

GetPenaltyBoxRequest is used to retrieve the penalty box settings.

func (GetPenaltyBoxRequest) Validate

func (v GetPenaltyBoxRequest) Validate() error

Validate validates a GetPenaltyBoxRequest.

type GetPenaltyBoxResponse

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

GetPenaltyBoxResponse is returned from a call to GetPenaltyBox.

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"`
}

GetPenaltyBoxesRequest is used to retrieve the penalty box settings. Deprecated: this struct will be removed in a future release.

func (GetPenaltyBoxesRequest) Validate

func (v GetPenaltyBoxesRequest) Validate() error

Validate validates a GetPenaltyBoxesRequest. Deprecated: this method will be removed in a future release.

type GetPenaltyBoxesResponse

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

GetPenaltyBoxesResponse is returned from a call to GetPenaltyBoxes. Deprecated: this struct will be removed in a future release.

type GetPolicyProtectionsRequest added in v2.0.4

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

GetPolicyProtectionsRequest is used to retrieve the policy protection setting.

func (GetPolicyProtectionsRequest) Validate added in v2.0.4

func (v GetPolicyProtectionsRequest) Validate() error

Validate validates a GetPolicyProtectionsRequest.

type GetRatePoliciesRequest

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

GetRatePoliciesRequest is used to retrieve the rate policies for a configuration.

func (GetRatePoliciesRequest) Validate

func (v GetRatePoliciesRequest) Validate() error

Validate validates a 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"`
		RequestType            string                     `json:"requestType,omitempty"`
		SameActionOnIpv6       bool                       `json:"sameActionOnIpv6"`
		Path                   *RatePolicyPath            `json:"path,omitempty"`
		PathMatchType          string                     `json:"pathMatchType,omitempty"`
		PathURIPositiveMatch   bool                       `json:"pathUriPositiveMatch"`
		FileExtensions         *RatePolicyFileExtensions  `json:"fileExtensions,omitempty"`
		Hosts                  *RatePoliciesHosts         `json:"hosts,omitempty"`
		Hostnames              []string                   `json:"hostnames,omitempty"`
		AdditionalMatchOptions []RatePolicyMatchOption    `json:"additionalMatchOptions,omitempty"`
		QueryParameters        *RatePolicyQueryParameters `json:"queryParameters,omitempty"`
		CreateDate             string                     `json:"-"`
		UpdateDate             string                     `json:"-"`
		Used                   json.RawMessage            `json:"used"`
		SameActionOnIpv        bool                       `json:"sameActionOnIpv"`
		APISelectors           *RatePolicyAPISelectors    `json:"apiSelectors,omitempty"`
		BodyParameters         *RatePolicyBodyParameters  `json:"bodyParameters,omitempty"`
	} `json:"ratePolicies,omitempty"`
}

GetRatePoliciesResponse is returned from a call to GetRatePolicies.

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"`
}

GetRatePolicyActionRequest is used to retrieve a configuration's rate policies and their associated actions. Deprecated: this struct will be removed in a future release.

func (GetRatePolicyActionRequest) Validate

func (v GetRatePolicyActionRequest) Validate() error

Validate validates a GetRatePolicyActionRequest. Deprecated: this method will be removed in a future release.

type GetRatePolicyActionResponse

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

GetRatePolicyActionResponse is returned from a call to GetRatePolicyAction. Deprecated: this struct will be removed in a future release.

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"`
}

GetRatePolicyActionsRequest is used to retrieve a configuration's rate policies and their associated actions.

func (GetRatePolicyActionsRequest) Validate

func (v GetRatePolicyActionsRequest) Validate() error

Validate validates a 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"`
}

GetRatePolicyActionsResponse is returned from a call to GetRatePolicyActions.

type GetRatePolicyRequest

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

GetRatePolicyRequest is used to retrieve information about a specific rate policy.

func (GetRatePolicyRequest) Validate

func (v GetRatePolicyRequest) Validate() error

Validate validates a GetRatePolicyRequest.

type GetRatePolicyResponse

type GetRatePolicyResponse struct {
	ID                     int                        `json:"-"`
	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"`
	RequestType            string                     `json:"requestType,omitempty"`
	SameActionOnIpv6       bool                       `json:"sameActionOnIpv6"`
	Path                   *RatePolicyPath            `json:"path,omitempty"`
	PathMatchType          string                     `json:"pathMatchType,omitempty"`
	PathURIPositiveMatch   bool                       `json:"pathUriPositiveMatch"`
	FileExtensions         *RatePolicyFileExtensions  `json:"fileExtensions,omitempty"`
	Hosts                  *RatePoliciesHosts         `json:"hosts,omitempty"`
	Hostnames              []string                   `json:"hostnames,omitempty"`
	AdditionalMatchOptions []RatePolicyMatchOption    `json:"additionalMatchOptions,omitempty"`
	QueryParameters        *RatePolicyQueryParameters `json:"queryParameters,omitempty"`
	CreateDate             string                     `json:"-"`
	UpdateDate             string                     `json:"-"`
	Used                   bool                       `json:"-"`
}

GetRatePolicyResponse is returned from a call to GetRatePolicy.

type GetRateProtectionRequest added in v2.0.4

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

GetRateProtectionRequest is used to retrieve the rate protection setting.

func (GetRateProtectionRequest) Validate added in v2.0.4

func (v GetRateProtectionRequest) Validate() error

Validate validates a GetRateProtectionRequest.

type GetRateProtectionResponse added in v2.0.4

type GetRateProtectionResponse ProtectionsResponse

GetRateProtectionResponse is returned from a call to GetRateProtection.

type GetRateProtectionsRequest added in v2.0.4

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

GetRateProtectionsRequest is used to retrieve the rate protection setting. Deprecated: this struct will be removed in a future release.

func (GetRateProtectionsRequest) Validate added in v2.0.4

func (v GetRateProtectionsRequest) Validate() error

Validate validates a GetRateProtectionsRequest.

type GetRateProtectionsResponse added in v2.0.4

type GetRateProtectionsResponse ProtectionsResponse

GetRateProtectionsResponse is returned from a call to GetRateProtection. Deprecated: this struct will be removed in a future release.

type GetReputationAnalysisRequest added in v2.2.0

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

GetReputationAnalysisRequest is used to retrieve the reputation analysis settings for a security policy.

func (GetReputationAnalysisRequest) Validate added in v2.2.0

func (v GetReputationAnalysisRequest) Validate() error

Validate validates a GetReputationAnalysisRequest.

type GetReputationAnalysisResponse added in v2.2.0

type GetReputationAnalysisResponse struct {
	ConfigID                           int    `json:"-"`
	Version                            int    `json:"-"`
	PolicyID                           string `json:"-"`
	ForwardToHTTPHeader                bool   `json:"forwardToHTTPHeader"`
	ForwardSharedIPToHTTPHeaderAndSIEM bool   `json:"forwardSharedIPToHTTPHeaderAndSIEM"`
}

GetReputationAnalysisResponse is returned from a call to GetReputationAnalysis.

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"`
}

GetReputationProfileActionRequest is used to retrieve the details for a specific reputation profile.

func (GetReputationProfileActionRequest) Validate added in v2.0.4

Validate validates a GetReputationProfileActionRequest.

type GetReputationProfileActionResponse added in v2.0.4

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

GetReputationProfileActionResponse is returned from a call to GetReputationProfileAction.

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"`
}

GetReputationProfileActionsRequest is used to retrieve the list of reputation profiles and their associated actions.

func (GetReputationProfileActionsRequest) Validate added in v2.0.4

Validate validates a 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"`
}

GetReputationProfileActionsResponse is returned from a call to GetReputationProfileActions.

type GetReputationProfileRequest added in v2.0.4

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

GetReputationProfileRequest is used to retrieve the details for a specific reputation profile.

func (GetReputationProfileRequest) Validate added in v2.0.4

func (v GetReputationProfileRequest) Validate() error

Validate validates a GetReputationProfileRequest.

type GetReputationProfileResponse added in v2.0.4

type GetReputationProfileResponse struct {
	Condition        *GetReputationProfileResponseCondition `json:"condition,omitempty"`
	Context          string                                 `json:"context,omitempty"`
	ContextReadable  string                                 `json:"-"`
	Enabled          bool                                   `json:"-"`
	ID               int                                    `json:"-"`
	Name             string                                 `json:"name,omitempty"`
	SharedIPHandling string                                 `json:"sharedIpHandling,omitempty"`
	Threshold        int                                    `json:"threshold,omitempty"`
}

GetReputationProfileResponse is returned from a call to GetReputationProfile.

type GetReputationProfileResponseCondition added in v2.4.1

type GetReputationProfileResponseCondition struct {
	AtomicConditions []struct {
		CheckIps      *json.RawMessage `json:"checkIps,omitempty"`
		ClassName     string           `json:"className,omitempty"`
		Index         int              `json:"index,omitempty"`
		PositiveMatch json.RawMessage  `json:"positiveMatch,omitempty"`
		Value         []string         `json:"value,omitempty"`
		Name          *json.RawMessage `json:"name,omitempty"`
		NameCase      bool             `json:"nameCase,omitempty"`
		NameWildcard  *json.RawMessage `json:"nameWildcard,omitempty"`
		ValueCase     bool             `json:"valueCase,omitempty"`
		ValueWildcard *json.RawMessage `json:"valueWildcard,omitempty"`
		Host          []string         `json:"host,omitempty"`
	} `json:"atomicConditions,omitempty"`
	PositiveMatch *json.RawMessage `json:"positiveMatch,omitempty"`
}

GetReputationProfileResponseCondition is used as part of the response to GetReputationProfile.

type GetReputationProfilesRequest added in v2.0.4

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

GetReputationProfilesRequest is used to retrieve the reputation profiles for a configuration.

func (GetReputationProfilesRequest) Validate added in v2.0.4

func (v GetReputationProfilesRequest) Validate() error

Validate validates a GetReputationProfilesRequest.

type GetReputationProfilesResponse added in v2.0.4

type GetReputationProfilesResponse struct {
	ReputationProfiles []struct {
		Condition        *ReputationProfileCondition `json:"condition,omitempty"`
		Context          string                      `json:"context,omitempty"`
		ContextReadable  string                      `json:"-"`
		Enabled          bool                        `json:"-"`
		ID               int                         `json:"id,omitempty"`
		Name             string                      `json:"name,omitempty"`
		SharedIPHandling string                      `json:"sharedIpHandling,omitempty"`
		Threshold        int                         `json:"threshold,omitempty"`
	} `json:"reputationProfiles,omitempty"`
}

GetReputationProfilesResponse is returned from a call to GetReputationProfiles.

type GetReputationProtectionRequest added in v2.0.4

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

GetReputationProtectionRequest is used to retrieve the reputation protection setting.

func (GetReputationProtectionRequest) Validate added in v2.0.4

Validate validates a GetReputationProtectionRequest.

type GetReputationProtectionResponse added in v2.0.4

type GetReputationProtectionResponse ProtectionsResponse

GetReputationProtectionResponse is returned from a call to GetReputationProtection.

type GetReputationProtectionsRequest added in v2.0.4

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

GetReputationProtectionsRequest is used to retrieve the reputation protection setting. Deprecated: this struct will be removed in a future release.

func (GetReputationProtectionsRequest) Validate added in v2.0.4

Validate validates a GetReputationProtectionsRequest.

type GetReputationProtectionsResponse added in v2.0.4

type GetReputationProtectionsResponse ProtectionsResponse

GetReputationProtectionsResponse is returned from a call to GetReputationProtection. Deprecated: this struct will be removed in a future release.

type GetRuleRecommendationsRequest added in v2.16.0

type GetRuleRecommendationsRequest struct {
	ConfigID    int
	Version     int
	PolicyID    string
	RuleID      int
	RulesetType RulesetType
}

GetRuleRecommendationsRequest is used to retrieve tuning recommendations for a specific rule.

func (GetRuleRecommendationsRequest) Validate added in v2.16.0

func (v GetRuleRecommendationsRequest) Validate() error

Validate validates a GetAttackGroupRecommendationsRequest.

type GetRuleRecommendationsResponse added in v2.16.0

type GetRuleRecommendationsResponse RuleRecommendation

GetRuleRecommendationsResponse is returned from a call to GetRuleRecommendations.

type GetRuleRequest added in v2.5.0

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

GetRuleRequest is used to retrieve a rule together with its action and its condition and exception information.

func (GetRuleRequest) Validate added in v2.5.0

func (v GetRuleRequest) Validate() error

Validate validates a GetRuleRequest.

type GetRuleResponse added in v2.5.0

type GetRuleResponse struct {
	Action             string                  `json:"action,omitempty"`
	ConditionException *RuleConditionException `json:"conditionException,omitempty"`
}

GetRuleResponse is returned from a call to GetRule.

func (*GetRuleResponse) IsEmptyConditionException added in v2.5.0

func (r *GetRuleResponse) IsEmptyConditionException() bool

IsEmptyConditionException checks whether a rule's condition and exception information is empty.

type GetRuleUpgradeRequest added in v2.0.4

type GetRuleUpgradeRequest struct {
	ConfigID int
	Version  int
	PolicyID string
}

GetRuleUpgradeRequest is used to verify changes in the KRS rule sets.

func (GetRuleUpgradeRequest) Validate added in v2.0.4

func (v GetRuleUpgradeRequest) Validate() error

Validate validates a 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   *RulesetUpdateData `json:"KRSToEvalUpdates,omitempty"`
	EvalToEvalUpdates  *RulesetUpdateData `json:"EvalToEvalUpdates,omitempty"`
	KRSToLatestUpdates *RulesetUpdateData `json:"KRSToLatestUpdates,omitempty"`
}

GetRuleUpgradeResponse is returned from a call to GetRuleUpgrade.

type GetRulesRequest added in v2.5.0

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

GetRulesRequest is used to retrieve the rules for a configuration and policy, together with their actions and condition and exception information.

func (GetRulesRequest) Validate added in v2.5.0

func (v GetRulesRequest) Validate() error

Validate validates a GetRulesRequest.

type GetRulesResponse added in v2.5.0

type GetRulesResponse struct {
	Rules []struct {
		ID                 int                     `json:"id,omitempty"`
		Action             string                  `json:"action,omitempty"`
		ConditionException *RuleConditionException `json:"conditionException,omitempty"`
	} `json:"ruleActions,omitempty"`
}

GetRulesResponse is returned from a call to GetRules.

type GetSecurityPoliciesRequest

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

GetSecurityPoliciesRequest is used to retrieve the security policies for a configuration.

func (GetSecurityPoliciesRequest) Validate added in v2.0.4

func (v GetSecurityPoliciesRequest) Validate() error

Validate validates a 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"`
}

GetSecurityPoliciesResponse is returned from a call to GetSecurityPolicies.

type GetSecurityPolicyCloneRequest

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

GetSecurityPolicyCloneRequest is used to retrieve a security policy.

func (GetSecurityPolicyCloneRequest) Validate

func (v GetSecurityPolicyCloneRequest) Validate() error

Validate validates a 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"`
}

GetSecurityPolicyCloneResponse is returned from a call to GetSecurityPolicyClone.

type GetSecurityPolicyClonesRequest

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

GetSecurityPolicyClonesRequest is used to retrieve the available security policies.

func (GetSecurityPolicyClonesRequest) Validate

Validate validates a 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"`
}

GetSecurityPolicyClonesResponse is returned from a call to GetSecurityPolicyClones.

type GetSecurityPolicyRequest added in v2.0.4

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

GetSecurityPolicyRequest is used to retrieve information about a security policy.

func (GetSecurityPolicyRequest) Validate added in v2.0.4

func (v GetSecurityPolicyRequest) Validate() error

Validate validates a 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"`
	DefaultSettings        bool   `json:"defaultSettings,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"`
}

GetSecurityPolicyResponse is returned from a call to GetSecurityPolicy.

type GetSelectableHostnamesRequest

type GetSelectableHostnamesRequest struct {
	ConfigID   int    `json:"configId"`
	Version    int    `json:"version"`
	ContractID string `json:"-"`
	GroupID    int    `json:"-"`
}

GetSelectableHostnamesRequest is used to retrieve the selectable hostnames for a configuration.

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"`
}

GetSelectableHostnamesResponse is returned from a call to GetSelectableHostnames.

type GetSelectedHostnameRequest

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

GetSelectedHostnameRequest is used to retrieve the selected hostnames for a configuration. Deprecated: this struct will be removed in a future release.

func (GetSelectedHostnameRequest) Validate

func (v GetSelectedHostnameRequest) Validate() error

Validate validates a GetSelectedHostnameRequest. Deprecated: this method will be removed in a future release.

type GetSelectedHostnameResponse

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

GetSelectedHostnameResponse is returned from a call to GetSelectedHostname. Deprecated: this struct will be removed in a future release.

type GetSelectedHostnamesRequest

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

GetSelectedHostnamesRequest is used to retrieve the selected hostnames for a configuration.

func (GetSelectedHostnamesRequest) Validate

func (v GetSelectedHostnamesRequest) Validate() error

Validate validates a GetSelectedHostnamesRequest.

type GetSelectedHostnamesResponse

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

GetSelectedHostnamesResponse is returned from a call to GetSelectedHostnames.

type GetSiemDefinitionsRequest added in v2.2.0

type GetSiemDefinitionsRequest struct {
	ID                 int    `json:"id"`
	SiemDefinitionName string `json:"name"`
}

GetSiemDefinitionsRequest is used to retrieve the available SIEM versions.

type GetSiemDefinitionsResponse added in v2.2.0

type GetSiemDefinitionsResponse struct {
	SiemDefinitions []struct {
		ID   int    `json:"id"`
		Name string `json:"name"`
	} `json:"siemDefinitions"`
}

GetSiemDefinitionsResponse is returned from a call to GetSiemDefinitions.

type GetSiemSettingRequest added in v2.2.0

type GetSiemSettingRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`
}

GetSiemSettingRequest is used to retrieve the SIEM settings for a configuration.

type GetSiemSettingResponse added in v2.2.0

type GetSiemSettingResponse struct {
	EnableForAllPolicies    bool     `json:"enableForAllPolicies"`
	EnableSiem              bool     `json:"enableSiem"`
	EnabledBotmanSiemEvents bool     `json:"enabledBotmanSiemEvents"`
	SiemDefinitionID        int      `json:"siemDefinitionId"`
	FirewallPolicyIds       []string `json:"firewallPolicyIds"`
}

GetSiemSettingResponse is returned from a call to GetSiemSettings.

type GetSiemSettingsRequest added in v2.2.0

type GetSiemSettingsRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`
}

GetSiemSettingsRequest is used to retrieve the SIEM settings for a configuration.

func (GetSiemSettingsRequest) Validate added in v2.2.0

func (v GetSiemSettingsRequest) Validate() error

Validate validates a GetSiemSettingsRequest.

type GetSiemSettingsResponse added in v2.2.0

type GetSiemSettingsResponse struct {
	EnableForAllPolicies    bool     `json:"enableForAllPolicies"`
	EnableSiem              bool     `json:"enableSiem"`
	EnabledBotmanSiemEvents bool     `json:"enabledBotmanSiemEvents"`
	SiemDefinitionID        int      `json:"siemDefinitionId"`
	FirewallPolicyIds       []string `json:"firewallPolicyIds"`
}

GetSiemSettingsResponse is returned from a call to GetSiemSettings.

type GetSlowPostProtectionRequest added in v2.0.4

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

GetSlowPostProtectionRequest is used to retrieve the slow post protecton setting for a policy.

func (GetSlowPostProtectionRequest) Validate added in v2.0.4

func (v GetSlowPostProtectionRequest) Validate() error

Validate validates a GetSlowPostProtectionRequest.

type GetSlowPostProtectionResponse added in v2.0.4

type GetSlowPostProtectionResponse ProtectionsResponse

GetSlowPostProtectionResponse is returned from a call to GetSlowPostProtection.

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"`
}

GetSlowPostProtectionSettingRequest is used to retrieve the slow post protection settings for a configuration. Deprecated: this struct will be removed in a future release.

func (GetSlowPostProtectionSettingRequest) Validate

Validate validates a GetSlowPostProtectionSettingRequest.

type GetSlowPostProtectionSettingResponse

type GetSlowPostProtectionSettingResponse struct {
	Action            string                                      `json:"action,omitempty"`
	SlowRateThreshold *SlowPostProtectionSettingSlowRateThreshold `json:"slowRateThreshold,omitempty"`
	DurationThreshold *SlowPostProtectionSettingDurationThreshold `json:"durationThreshold,omitempty"`
}

GetSlowPostProtectionSettingResponse is returned from a call to GetSlowPostProtectionSetting. Deprecated: this struct will be removed in a future release.

type GetSlowPostProtectionSettingsRequest

type GetSlowPostProtectionSettingsRequest struct {
	ConfigID          int                                         `json:"configId"`
	Version           int                                         `json:"version"`
	PolicyID          string                                      `json:"policyId"`
	Action            string                                      `json:"action"`
	SlowRateThreshold *SlowPostProtectionSettingSlowRateThreshold `json:"slowRateThreshold,omitempty"`
	DurationThreshold *SlowPostProtectionSettingDurationThreshold `json:"durationThreshold,omitempty"`
}

GetSlowPostProtectionSettingsRequest is used to retrieve the slow post protection settings for a configuration.

func (GetSlowPostProtectionSettingsRequest) Validate

Validate validates a GetSlowPostProtectionSettingsRequest. Deprecated: this method will be removed in a future release.

type GetSlowPostProtectionSettingsResponse

type GetSlowPostProtectionSettingsResponse struct {
	Action            string                                      `json:"action,omitempty"`
	SlowRateThreshold *SlowPostProtectionSettingSlowRateThreshold `json:"slowRateThreshold,omitempty"`
	DurationThreshold *SlowPostProtectionSettingDurationThreshold `json:"durationThreshold,omitempty"`
}

GetSlowPostProtectionSettingsResponse is returned from a call to GetSlowPostProtectionSettings.

type GetSlowPostProtectionsRequest added in v2.0.4

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

GetSlowPostProtectionsRequest is used to retrieve the slow post protecton setting for a policy. Deprecated: this struct will be removed in a future release.

func (GetSlowPostProtectionsRequest) Validate added in v2.0.4

func (v GetSlowPostProtectionsRequest) Validate() error

Validate validates a GetSlowPostProtectionsRequest.

type GetSlowPostProtectionsResponse added in v2.0.4

type GetSlowPostProtectionsResponse ProtectionsResponse

GetSlowPostProtectionsResponse is returned from a call to GetSlowPostProtections. Deprecated: this struct will be removed in a future release.

type GetThreatIntelRequest added in v2.6.0

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

GetThreatIntelRequest is used to retrieve the threat intel settings.

func (GetThreatIntelRequest) Validate added in v2.6.0

func (v GetThreatIntelRequest) Validate() error

Validate validates a GetAttackGroupConditionExceptionRequest.

type GetThreatIntelResponse added in v2.6.0

type GetThreatIntelResponse struct {
	ThreatIntel string `json:"threatIntel,omitempty"`
}

GetThreatIntelResponse is returned from a call to GetThreatIntel.

type GetTuningRecommendationsRequest added in v2.8.1

type GetTuningRecommendationsRequest struct {
	ConfigID    int
	Version     int
	PolicyID    string
	RulesetType RulesetType
}

GetTuningRecommendationsRequest is used to retrieve tuning recommendations for a security policy.

func (GetTuningRecommendationsRequest) Validate added in v2.8.1

Validate validates a GetTuningRecommendationsRequest.

type GetTuningRecommendationsResponse added in v2.8.1

type GetTuningRecommendationsResponse struct {
	AttackGroupRecommendations []AttackGroupRecommendation `json:"attackGroupRecommendations,omitempty"`
	RuleRecommendations        []RuleRecommendation        `json:"ruleRecommendations,omitempty"`
	EvaluationPeriodStart      time.Time                   `json:"evaluationPeriodStart,omitempty"`
	EvaluationPeriodEnd        time.Time                   `json:"evaluationPeriodEnd,omitempty"`
}

GetTuningRecommendationsResponse is returned from a call to GetTuningRecommendations.

type GetVersionNotesRequest added in v2.2.0

type GetVersionNotesRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`
}

GetVersionNotesRequest is used to retrieve the version notes for a configuration version.

func (GetVersionNotesRequest) Validate added in v2.2.0

func (v GetVersionNotesRequest) Validate() error

Validate validates a GetVersionNotesRequest.

type GetVersionNotesResponse added in v2.2.0

type GetVersionNotesResponse struct {
	Notes string `json:"notes"`
}

GetVersionNotesResponse is returned from a call to GetVersionNotes.

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"`
}

GetWAFModeRequest is used to retrieve the setting that determines this mode how rules will be kept up to date.

func (GetWAFModeRequest) Validate

func (v GetWAFModeRequest) Validate() error

Validate validates a 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"`
}

GetWAFModeResponse is returned from a call to GetWAFMode.

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"`
}

GetWAFModesRequest is used to retrieve the setting that determines this mode how rules will be kept up to date. Deprecated: this struct will be removed in a future release.

func (GetWAFModesRequest) Validate

func (v GetWAFModesRequest) Validate() error

Validate validates a GetWAFModesRequest. Deprecated: this method will be removed in a future release.

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"`
}

GetWAFModesResponse is returned from a call to GetWAFModes. Deprecated: this struct will be removed in a future release.

type GetWAFProtectionRequest

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

GetWAFProtectionRequest is used to retrieve the WAF protection setting.

func (GetWAFProtectionRequest) Validate

func (v GetWAFProtectionRequest) Validate() error

Validate validates a GetWAFProtectionRequest.

type GetWAFProtectionResponse

type GetWAFProtectionResponse ProtectionsResponse

GetWAFProtectionResponse is returned from a call to GetWAFProtection.

type GetWAFProtectionsRequest

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

GetWAFProtectionsRequest is used to retrieve the WAF protection setting. Deprecated: this struct will be removed in a future release.

func (GetWAFProtectionsRequest) Validate

func (v GetWAFProtectionsRequest) Validate() error

Validate validates a GetWAFProtectionsRequest.

type GetWAFProtectionsResponse

type GetWAFProtectionsResponse ProtectionsResponse

GetWAFProtectionsResponse is returned from a call to GetWAFProtections. Deprecated: this struct will be removed in a future release.

type GetWAPBypassNetworkListsRequest added in v2.12.0

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

GetWAPBypassNetworkListsRequest is used to list which network lists are used in the bypass network lists settings.

func (GetWAPBypassNetworkListsRequest) Validate added in v2.12.0

Validate validates a GetWAPBypassNetworkListsRequest.

type GetWAPBypassNetworkListsResponse added in v2.12.0

type GetWAPBypassNetworkListsResponse struct {
	NetworkLists []NetworkListsStruct `json:"networkLists"`
}

GetWAPBypassNetworkListsResponse is returned from a call to GetWAPBypassNetworkLists.

type GetWAPSelectedHostnamesRequest added in v2.6.0

type GetWAPSelectedHostnamesRequest struct {
	ConfigID         int    `json:"configId"`
	Version          int    `json:"version"`
	SecurityPolicyID string `json:"securityPolicyID"`
}

GetWAPSelectedHostnamesRequest is used to retrieve the WAP selected hostnames and evaluated hostnames.

func (GetWAPSelectedHostnamesRequest) Validate added in v2.6.0

Validate validates a GetWAPSelectedHostnamesRequest.

type GetWAPSelectedHostnamesResponse added in v2.6.0

type GetWAPSelectedHostnamesResponse struct {
	ProtectedHosts []string `json:"protectedHostnames,omitempty"`
	EvaluatedHosts []string `json:"evalHostnames,omitempty"`
}

GetWAPSelectedHostnamesResponse is returned from a call to GetWAPSelectedHostnames.

type GroupData added in v2.12.0

type GroupData []struct {
	Group     int    `json:"group,omitempty"`
	GroupName string `json:"groupName,omitempty"`
}

GroupData contains updates to attack groups

type HeaderCookieOrParamValuesattackgroup added in v2.2.0

type HeaderCookieOrParamValuesattackgroup []struct {
	Criteria []struct {
		Hostnames []string `json:"hostnames,omitempty"`
		Paths     []string `json:"paths,omitempty"`
		Values    []string `json:"values,omitempty"`
	} `json:"criteria"`
	ValueWildcard bool     `json:"valueWildcard,omitempty"`
	Values        []string `json:"values,omitempty"`
}

HeaderCookieOrParamValuesattackgroup is returned as part of GetExportConfigurationResponse.

type Hostname

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

Hostname describes a hostname that may be protected.

type HostnameCoverageMatchTargetBypassNetworkLists added in v2.2.0

type HostnameCoverageMatchTargetBypassNetworkLists []struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

HostnameCoverageMatchTargetBypassNetworkLists describes a network list included in the list of bypass network lists.

type HostnameCoverageMatchTargetEffectiveSecurityControls added in v2.2.0

type HostnameCoverageMatchTargetEffectiveSecurityControls 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"`
}

HostnameCoverageMatchTargetEffectiveSecurityControls describes the effective security controls for a website target.

type Hostnames

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

Hostnames contains one or more hostnames.

type IPControlsLists added in v2.12.0

type IPControlsLists struct {
	AllowedIPNetworkLists IPNetworkListsList `json:"allowedIPNetworkLists"`
	BlockedIPNetworkLists IPNetworkListsList `json:"blockedIPNetworkLists"`
}

IPControlsLists is used to define lists of allowed and blocked IP network lists.

type IPGeo added in v2.0.4

The IPGeo interface supports querying which network lists are used in the IP/Geo firewall settings, as well as updating the method and which network lists are used for IP/Geo firewall blocking.

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

type IPGeoFirewall added in v2.17.0

type IPGeoFirewall struct {
	Block       string            `json:"block"`
	GeoControls *IPGeoGeoControls `json:"geoControls,omitempty"`
	IPControls  *IPGeoIPControls  `json:"ipControls,omitempty"`
}

IPGeoFirewall is used to describe an IP/Geo firewall.

type IPGeoGeoControls added in v2.17.0

type IPGeoGeoControls struct {
	BlockedIPNetworkLists *IPGeoNetworkLists `json:"blockedIPNetworkLists,omitempty"`
}

IPGeoGeoControls is used to specify GEO network lists to be blocked.

type IPGeoIPControls added in v2.17.0

type IPGeoIPControls struct {
	AllowedIPNetworkLists *IPGeoNetworkLists `json:"allowedIPNetworkLists,omitempty"`
	BlockedIPNetworkLists *IPGeoNetworkLists `json:"blockedIPNetworkLists,omitempty"`
}

IPGeoIPControls is used to specify IP or GEO network lists to be blocked or allowed.

type IPGeoNetworkLists added in v2.17.0

type IPGeoNetworkLists struct {
	NetworkList []string `json:"networkList,omitempty"`
}

IPGeoNetworkLists is used to specify IP or GEO network lists to be blocked or allowed.

type IPGeoProtection added in v2.5.0

type IPGeoProtection interface {
	// GetIPGeoProtections retrieves the current IPGeo protection protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	// Deprecated: this method will be removed in a future release. Use GetIPGeoProtection instead.
	GetIPGeoProtections(ctx context.Context, params GetIPGeoProtectionsRequest) (*GetIPGeoProtectionsResponse, error)

	// GetIPGeoProtection retrieves the current IPGeo protection protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	GetIPGeoProtection(ctx context.Context, params GetIPGeoProtectionRequest) (*GetIPGeoProtectionResponse, error)

	// SetIPGeoProtection updates the IPGeo protection protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	UpdateIPGeoProtection(ctx context.Context, params UpdateIPGeoProtectionRequest) (*UpdateIPGeoProtectionResponse, error)
}

The IPGeoProtection interface supports retrieving and updating IPGeo protection for a configuration and policy.

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

type IPNetworkListsList added in v2.12.0

type IPNetworkListsList struct {
	NetworkList []string `json:"networkList"`
}

IPNetworkListsList is used to define a list of IP network lists.

type LoggingOverridesexp added in v2.2.0

type LoggingOverridesexp struct {
	AllowSampling bool `json:"allowSampling"`
	Cookies       struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"cookies"`
	CustomHeaders struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"customHeaders"`
	Override        bool `json:"override"`
	StandardHeaders struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"standardHeaders"`
}

LoggingOverridesexp is returned as part of GetExportConfigurationResponse.

type Loggingexp added in v2.2.0

type Loggingexp struct {
	AllowSampling bool `json:"allowSampling"`
	Cookies       struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"cookies"`
	CustomHeaders struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"customHeaders"`
	StandardHeaders struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"standardHeaders"`
}

Loggingexp is returned as part of GetExportConfigurationResponse.

type MalwareContentTypes added in v2.16.0

type MalwareContentTypes interface {
	// GetMalwareContentTypes retrieves the available content types for malware protection.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-malware-policy-content-types
	GetMalwareContentTypes(ctx context.Context, params GetMalwareContentTypesRequest) (*GetMalwareContentTypesResponse, error)
}

The MalwareContentTypes interface supports retrieving the malware protection content types for a configuration and version.

type MalwarePoliciesResponse added in v2.16.0

type MalwarePoliciesResponse struct {
	MalwarePolicies []MalwarePolicyResponse
}

MalwarePoliciesResponse is returned from a call to GetMalwarePolicies.

type MalwarePolicy added in v2.16.0

type MalwarePolicy interface {
	// CreateMalwarePolicy creates a new malware protection policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-malware-policies
	CreateMalwarePolicy(ctx context.Context, params CreateMalwarePolicyRequest) (*MalwarePolicyResponse, error)

	// GetMalwarePolicy retrieves an existing malware protection policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-malware-policy
	GetMalwarePolicy(ctx context.Context, params GetMalwarePolicyRequest) (*MalwarePolicyResponse, error)

	// GetMalwarePolicies retrieves the existing malware protection policies for a configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-malware-policies
	GetMalwarePolicies(ctx context.Context, params GetMalwarePoliciesRequest) (*MalwarePoliciesResponse, error)

	// UpdateMalwarePolicy modifies an existing malware protection policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-malware-policy
	UpdateMalwarePolicy(ctx context.Context, params UpdateMalwarePolicyRequest) (*MalwarePolicyResponse, error)

	// RemoveMalwarePolicy removes a malware protection policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-malware-policy
	RemoveMalwarePolicy(ctx context.Context, params RemoveMalwarePolicyRequest) error
}

The MalwarePolicy interface supports creating, retrieving, updating and removing malware protection policies.

type MalwarePolicyAction added in v2.16.0

type MalwarePolicyAction interface {
	// GetMalwarePolicyActions retrieves the actions for a specific malware protection policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-malware-policies-actions
	GetMalwarePolicyActions(ctx context.Context, params GetMalwarePolicyActionsRequest) (*GetMalwarePolicyActionsResponse, error)

	// UpdateMalwarePolicyAction modifies the actions for a specific malware protection policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-malware-policy-action
	UpdateMalwarePolicyAction(ctx context.Context, params UpdateMalwarePolicyActionRequest) (*UpdateMalwarePolicyActionResponse, error)

	// UpdateMalwarePolicyActions is for Akamai internal use only.
	UpdateMalwarePolicyActions(ctx context.Context, params UpdateMalwarePolicyActionsRequest) (*UpdateMalwarePolicyActionsResponse, error)
}

The MalwarePolicyAction interface supports retrieving and modifying the action associated with a specified malware policy, or with all malware policies in a security policy.

type MalwarePolicyActionBody added in v2.16.0

type MalwarePolicyActionBody struct {
	MalwarePolicyID int    `json:"id"`
	Action          string `json:"action"`
	UnscannedAction string `json:"unscannedAction"`
}

MalwarePolicyActionBody defines the actions for a specific malware policy.

type MalwarePolicyBody added in v2.16.0

type MalwarePolicyBody struct {
	MalwarePolicyID int      `json:"id"`
	Name            string   `json:"name"`
	Description     string   `json:"description,omitempty"`
	Hostnames       []string `json:"hostnames"`
	Paths           []string `json:"paths"`
	ContentTypes    []string `json:"contentTypes"`
}

MalwarePolicyBody describes a malware policy.

type MalwarePolicyResponse added in v2.16.0

type MalwarePolicyResponse struct {
	MalwarePolicyID int      `json:"id"`
	Name            string   `json:"name"`
	Description     string   `json:"description,omitempty"`
	Hostnames       []string `json:"hostnames"`
	Paths           []string `json:"paths"`
	ContentTypes    []string `json:"contentTypes"`
}

MalwarePolicyResponse is returned from a call to CreateMalwarePolicy

type MalwareProtection added in v2.16.0

type MalwareProtection interface {
	// GetMalwareProtection retrieves the current malware protection setting for a configuration and policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-malware
	GetMalwareProtection(ctx context.Context, params GetMalwareProtectionRequest) (*GetMalwareProtectionResponse, error)

	// UpdateMalwareProtection updates the malware protection setting for a configuration and policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-malware
	UpdateMalwareProtection(ctx context.Context, params UpdateMalwareProtectionRequest) (*UpdateMalwareProtectionResponse, error)
}

The MalwareProtection interface supports retrieving and updating malware protection for a configuration and policy.

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

type MatchTargetItem added in v2.5.0

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

MatchTargetItem describes a match target and its sequence number.

type NetworkLayerProtection added in v2.0.4

type NetworkLayerProtection interface {
	// GetNetworkLayerProtections retrieves the current network layer protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	// Deprecated: this method will be removed in a future release. Use GetNetworkLayerProtection instead.
	GetNetworkLayerProtections(ctx context.Context, params GetNetworkLayerProtectionsRequest) (*GetNetworkLayerProtectionsResponse, error)

	// GetNetworkLayerProtection retrieves the current network layer protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	GetNetworkLayerProtection(ctx context.Context, params GetNetworkLayerProtectionRequest) (*GetNetworkLayerProtectionResponse, error)

	// UpdateNetworkLayerProtection updates the network layer protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	UpdateNetworkLayerProtection(ctx context.Context, params UpdateNetworkLayerProtectionRequest) (*UpdateNetworkLayerProtectionResponse, error)

	// UpdateNetworkLayerProtection removes network layer protection for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	// Deprecated: this method will be removed in a future release. Use UpdateNetworkLayerProtection instead.
	RemoveNetworkLayerProtection(ctx context.Context, params RemoveNetworkLayerProtectionRequest) (*RemoveNetworkLayerProtectionResponse, error)
}

The NetworkLayerProtection interface supports retrieving and updating network layer protection for a configuration and policy.

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

type NetworkListsStruct added in v2.12.0

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

NetworkListsStruct is used to define a network list.

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 PenaltyBoxexp added in v2.2.0

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

PenaltyBoxexp is returned as part of GetExportConfigurationResponse.

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"`
	}
}

Policies is used as part of a description of available security policies.

type PolicyProtections added in v2.0.4

type PolicyProtections interface {
	// GetPolicyProtections retrieves the current protection settings for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	GetPolicyProtections(ctx context.Context, params GetPolicyProtectionsRequest) (*PolicyProtectionsResponse, error)

	// UpdatePolicyProtections updates the protection settings for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	UpdatePolicyProtections(ctx context.Context, params UpdatePolicyProtectionsRequest) (*PolicyProtectionsResponse, error)

	// RemovePolicyProtections removes protection settings for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	// Deprecated: this method will be removed in a future release. Use UpdatePolicyProtections instead.
	RemovePolicyProtections(ctx context.Context, params UpdatePolicyProtectionsRequest) (*PolicyProtectionsResponse, error)
}

The PolicyProtections interface supports retrieving and updating protections for a configuration and policy.

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

type PolicyProtectionsResponse added in v2.8.1

type PolicyProtectionsResponse 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"`
	ApplyMalwareControls          bool `json:"applyMalwareControls"`
}

PolicyProtectionsResponse is returned from GetPolicyProtections, UpdatePolicyProtections, and RemovePolicyProtections.

type ProtectionsResponse added in v2.16.0

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

ProtectionsResponse is returned from a call to GetAPIConstraintsProtection and similiar security policy protection requests.

type RatePoliciesHosts added in v2.14.0

type RatePoliciesHosts struct {
	Values        *[]string        `json:"values,omitempty"`
	PositiveMatch *json.RawMessage `json:"positiveMatch,omitempty"`
}

RatePoliciesHosts is used as part of a rate policy description.

type RatePoliciesPath added in v2.4.1

type RatePoliciesPath struct {
	PositiveMatch bool                    `json:"positiveMatch"`
	Values        *RatePoliciesPathValues `json:"values,omitempty"`
}

RatePoliciesPath is returned as part of GetExportConfigurationResponse.

type RatePoliciesPathValues added in v2.2.0

type RatePoliciesPathValues []string

RatePoliciesPathValues is returned as part of GetExportConfigurationResponse.

type RatePoliciesQueryParameters added in v2.2.0

type RatePoliciesQueryParameters []struct {
	Name          string                             `json:"name"`
	PositiveMatch bool                               `json:"positiveMatch"`
	ValueInRange  bool                               `json:"valueInRange"`
	Values        *RatePoliciesQueryParametersValues `json:"values,omitempty"`
}

RatePoliciesQueryParameters is returned as part of GetExportConfigurationResponse.

type RatePoliciesQueryParametersValues added in v2.2.0

type RatePoliciesQueryParametersValues []string

RatePoliciesQueryParametersValues is returned as part of GetExportConfigurationResponse.

type RatePolicyAPISelectors added in v2.2.0

type RatePolicyAPISelectors []struct {
	APIDefinitionID    int   `json:"apiDefinitionId,omitempty"`
	DefinedResources   *bool `json:"definedResources,omitempty"`
	ResourceIds        []int `json:"resourceIds"`
	UndefinedResources *bool `json:"undefinedResources,omitempty"`
}

RatePolicyAPISelectors is used as part of a rate policy description.

type RatePolicyAction

The RatePolicyAction interface supports retrieving and modifying the action associated with a specified rate policy, or with all rate policies in a security policy.

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

type RatePolicyActionPost

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

RatePolicyActionPost is used to describe actions that may be taken as part of a rate policy.

type RatePolicyActionsexp added in v2.2.0

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

RatePolicyActionsexp is returned as part of GetExportConfigurationResponse.

type RatePolicyBodyParameters added in v2.2.0

type RatePolicyBodyParameters []struct {
	Name          string   `json:"name,omitempty"`
	Values        []string `json:"values,omitempty"`
	PositiveMatch bool     `json:"positiveMatch"`
	ValueInRange  bool     `json:"valueInRange"`
}

RatePolicyBodyParameters is used as part of a rate policy description.

type RatePolicyFileExtensions added in v2.2.0

type RatePolicyFileExtensions struct {
	PositiveMatch bool     `json:"positiveMatch"`
	Values        []string `json:"values,omitempty"`
}

RatePolicyFileExtensions is used as part of a rate policy description.

type RatePolicyMatchOption added in v2.16.0

type RatePolicyMatchOption struct {
	PositiveMatch bool     `json:"positiveMatch"`
	Type          string   `json:"type,omitempty"`
	Values        []string `json:"values,omitempty"`
}

RatePolicyMatchOption is used as part of a rate policy description.

type RatePolicyPath added in v2.2.0

type RatePolicyPath struct {
	PositiveMatch bool     `json:"positiveMatch"`
	Values        []string `json:"values,omitempty"`
}

RatePolicyPath is used as part of a rate policy description.

type RatePolicyQueryParameters added in v2.2.0

type RatePolicyQueryParameters []struct {
	Name          string   `json:"name,omitempty"`
	Values        []string `json:"values,omitempty"`
	PositiveMatch bool     `json:"positiveMatch"`
	ValueInRange  bool     `json:"valueInRange"`
}

RatePolicyQueryParameters is used as part of a rate policy description.

type RateProtection added in v2.0.4

type RateProtection interface {
	// GetRateProtections retrieves the current rate protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	// Deprecated: this method will be removed in a future release. Use GetRateProtection instead.
	GetRateProtections(ctx context.Context, params GetRateProtectionsRequest) (*GetRateProtectionsResponse, error)

	// GetRateProtection retrieves the current rate protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	GetRateProtection(ctx context.Context, params GetRateProtectionRequest) (*GetRateProtectionResponse, error)

	// UpdateRateProtection updates the rate protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	UpdateRateProtection(ctx context.Context, params UpdateRateProtectionRequest) (*UpdateRateProtectionResponse, error)
}

The RateProtection interface supports retrieving and updating rate protection for a configuration and policy.

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

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"`
}

RemoveActivationsRequest is used to request deactivation of one or more configurations.

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"`
}

RemoveActivationsResponse is returned from a call to RemoveActivations.

type RemoveAdvancedSettingsEvasivePathMatchRequest added in v2.9.0

type RemoveAdvancedSettingsEvasivePathMatchRequest struct {
	ConfigID        int    `json:"-"`
	Version         int    `json:"-"`
	PolicyID        string `json:"-"`
	EnablePathMatch bool   `json:"enablePathMatch"`
}

RemoveAdvancedSettingsEvasivePathMatchRequest is used to clear the EvasivePathMatch setting

func (RemoveAdvancedSettingsEvasivePathMatchRequest) Validate added in v2.9.0

Validate validates UpdateAdvancedSettingsEvasivePathMatchRequest

type RemoveAdvancedSettingsEvasivePathMatchResponse added in v2.9.0

type RemoveAdvancedSettingsEvasivePathMatchResponse struct {
	ConfigID        int    `json:"-"`
	Version         int    `json:"-"`
	PolicyID        string `json:"-"`
	EnablePathMatch bool   `json:"enablePathMatch"`
}

RemoveAdvancedSettingsEvasivePathMatchResponse returns the result of clearing the EvasivePathMatch setting

type RemoveAdvancedSettingsLoggingRequest added in v2.2.0

type RemoveAdvancedSettingsLoggingRequest struct {
	ConfigID      int    `json:"-"`
	Version       int    `json:"-"`
	PolicyID      string `json:"-"`
	Override      bool   `json:"override"`
	AllowSampling bool   `json:"allowSampling"`
}

RemoveAdvancedSettingsLoggingRequest is used to disable HTTP header logging for a configuration or policy.

func (RemoveAdvancedSettingsLoggingRequest) Validate added in v2.2.0

Validate validates a RemoveAdvancedSettingsLoggingRequest.

type RemoveAdvancedSettingsLoggingResponse added in v2.2.0

type RemoveAdvancedSettingsLoggingResponse struct {
	Override      bool `json:"override"`
	AllowSampling bool `json:"allowSampling"`
	Cookies       struct {
		Type string `json:"type"`
	} `json:"cookies"`
	CustomHeaders struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"customHeaders"`
	StandardHeaders struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"standardHeaders"`
}

RemoveAdvancedSettingsLoggingResponse is returned from a call to RemoveAdvancedSettingsLogging.

type RemoveAdvancedSettingsPrefetchRequest added in v2.2.0

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

RemoveAdvancedSettingsPrefetchRequest is used to remove the prefetch request settings.

type RemoveAdvancedSettingsPrefetchResponse added in v2.2.0

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

RemoveAdvancedSettingsPrefetchResponse is returned from a call to RemoveAdvancedSettingsPrefetch.

type RemoveApiRequestConstraintsRequest added in v2.2.0

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

RemoveApiRequestConstraintsRequest is used to remove an API request constraint's action.

func (RemoveApiRequestConstraintsRequest) Validate added in v2.2.0

Validate validates a RemoveApiRequestConstraintsRequest.

type RemoveApiRequestConstraintsResponse added in v2.2.0

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

RemoveApiRequestConstraintsResponse is returned from a call to RemoveApiRequestConstraints.

type RemoveBypassNetworkListsRequest added in v2.2.0

type RemoveBypassNetworkListsRequest struct {
	ConfigID     int      `json:"-"`
	Version      int      `json:"-"`
	PolicyID     string   `json:"policyId"`
	NetworkLists []string `json:"networkLists"`
}

RemoveBypassNetworkListsRequest is used to modify which network lists are used in the bypass network lists settings. Deprecated: this struct will be removed in a future release.

func (RemoveBypassNetworkListsRequest) Validate added in v2.2.0

Validate validates a RemoveBypassNetworkListsRequest. Deprecated: this method will be removed in a future release.

type RemoveBypassNetworkListsResponse added in v2.2.0

type RemoveBypassNetworkListsResponse struct {
	NetworkLists []string `json:"networkLists"`
}

RemoveBypassNetworkListsResponse is returned from a call to RemoveBypassNetworkLists. Deprecated: this struct will be removed in a future release.

type RemoveConfigurationRequest added in v2.2.0

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

RemoveConfigurationRequest is used to remove an existing security configuration.

func (RemoveConfigurationRequest) Validate added in v2.2.0

func (v RemoveConfigurationRequest) Validate() error

Validate validates a RemoveConfigurationRequest.

type RemoveConfigurationResponse added in v2.2.0

type RemoveConfigurationResponse struct {
	Empty int `json:"-"`
}

RemoveConfigurationResponse is returned from a call to RemoveConfiguration.

type RemoveConfigurationVersionCloneRequest added in v2.2.0

type RemoveConfigurationVersionCloneRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`
}

RemoveConfigurationVersionCloneRequest is used to remove an existing configuration version.

func (RemoveConfigurationVersionCloneRequest) Validate added in v2.2.0

Validate validates a RemoveConfigurationCloneRequest.

type RemoveConfigurationVersionCloneResponse added in v2.2.0

type RemoveConfigurationVersionCloneResponse struct {
	Empty string `json:"-"`
}

RemoveConfigurationVersionCloneResponse is returned from a call to RemoveConfigurationVersionClone.

type RemoveCustomDenyRequest added in v2.2.0

type RemoveCustomDenyRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	ID       string `json:"id,omitempty"`
}

RemoveCustomDenyRequest is used to remove an existing custom deny action.

func (RemoveCustomDenyRequest) Validate added in v2.2.0

func (v RemoveCustomDenyRequest) Validate() error

Validate validates a RemoveCustomDenyRequest.

type RemoveCustomDenyResponse added in v2.2.0

type RemoveCustomDenyResponse struct {
	Empty string `json:"-"`
}

RemoveCustomDenyResponse is returned from a call to RemoveCustomDeny.

type RemoveCustomRuleRequest

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

RemoveCustomRuleRequest is used to remove a custom rule.

func (RemoveCustomRuleRequest) Validate

func (v RemoveCustomRuleRequest) Validate() error

Validate validates a RemoveCustomRuleRequest.

type RemoveCustomRuleResponse

type RemoveCustomRuleResponse UpdateCustomRuleResponse

RemoveCustomRuleResponse is returned from a call to RemoveCustomRule.

type RemoveEvalHostRequest added in v2.2.0

type RemoveEvalHostRequest struct {
	ConfigID  int      `json:"-"`
	Version   int      `json:"-"`
	Hostnames []string `json:"hostnames"`
}

RemoveEvalHostRequest is used to remove the evaluation hostnames for a configuration.

func (RemoveEvalHostRequest) Validate added in v2.2.0

func (v RemoveEvalHostRequest) Validate() error

Validate validates a RemoveEvalHostRequest.

type RemoveEvalHostResponse added in v2.2.0

type RemoveEvalHostResponse struct {
	Hostnames []string `json:"hostnames"`
}

RemoveEvalHostResponse is returned from a call to RemoveEvalHost.

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"`
}

RemoveEvalRequest is used to remove an evaluation mode setting.

func (RemoveEvalRequest) Validate added in v2.0.4

func (v RemoveEvalRequest) Validate() error

Validate validates a RemoveEvalRequest.

type RemoveEvalResponse added in v2.0.4

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

RemoveEvalResponse is returned from a call to RemoveEval.

type RemoveMalwarePolicyRequest added in v2.16.0

type RemoveMalwarePolicyRequest struct {
	ConfigID        int
	ConfigVersion   int
	MalwarePolicyID int
}

RemoveMalwarePolicyRequest is used to remove a malware policy.

func (RemoveMalwarePolicyRequest) Validate added in v2.16.0

func (v RemoveMalwarePolicyRequest) Validate() error

Validate validates a RemoveMalwarePolicyRequest.

type RemoveMatchTargetRequest

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

RemoveMatchTargetRequest is used to remove a match target.

func (RemoveMatchTargetRequest) Validate

func (v RemoveMatchTargetRequest) Validate() error

Validate validates a RemoveMatchTargetRequest.

type RemoveMatchTargetResponse

type RemoveMatchTargetResponse struct {
	Type                         string   `json:"type"`
	ConfigID                     int      `json:"configId"`
	ConfigVersion                int      `json:"configVersion"`
	DefaultFile                  string   `json:"defaultFile"`
	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 is returned from a call to RemoveMatchTarget.

type RemoveNetworkLayerProtectionRequest added in v2.0.4

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

RemoveNetworkLayerProtectionRequest is used to remove the network layer protection setting. Deprecated: this struct will be removed in a future release.

func (RemoveNetworkLayerProtectionRequest) Validate added in v2.0.4

Validate validates a RemoveNetworkLayerProtectionRequest.

type RemoveNetworkLayerProtectionResponse added in v2.0.4

type RemoveNetworkLayerProtectionResponse ProtectionsResponse

RemoveNetworkLayerProtectionResponse is returned from a call to RemoveNetworkLayerProtection. Deprecated: this struct will be removed in a future release.

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"`
	ApplyMalwareControls          bool   `json:"applyMalwareControls"`
}

RemovePolicyProtectionsRequest is used to remove the policy protection setting. Deprecated: this struct will be removed in a future release.

func (RemovePolicyProtectionsRequest) Validate added in v2.0.4

Validate validates a RemovePolicyProtectionsRequest.

type RemoveRatePolicyRequest

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

RemoveRatePolicyRequest is used to remove a rate policy.

func (RemoveRatePolicyRequest) Validate

func (v RemoveRatePolicyRequest) Validate() error

Validate validates a RemoveRatePolicyRequest.

type RemoveRatePolicyResponse

type RemoveRatePolicyResponse struct {
	ID                    int    `json:"id"`
	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"`
	Hosts                  *RatePoliciesHosts      `json:"hosts,omitempty"`
	Hostnames              []string                `json:"hostnames"`
	AdditionalMatchOptions []RatePolicyMatchOption `json:"additionalMatchOptions,omitempty"`
	QueryParameters        []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string          `json:"-"`
	UpdateDate string          `json:"-"`
	Used       json.RawMessage `json:"used"`
}

RemoveRatePolicyResponse is returned from a call to RemoveRatePolicy.

type RemoveReputationAnalysisRequest added in v2.2.0

type RemoveReputationAnalysisRequest struct {
	ConfigID                           int    `json:"-"`
	Version                            int    `json:"-"`
	PolicyID                           string `json:"-"`
	ForwardToHTTPHeader                bool   `json:"forwardToHTTPHeader"`
	ForwardSharedIPToHTTPHeaderAndSIEM bool   `json:"forwardSharedIPToHTTPHeaderAndSIEM"`
}

RemoveReputationAnalysisRequest is used to remove the reputation analysis settings for a security policy.

func (RemoveReputationAnalysisRequest) Validate added in v2.2.0

Validate validates a RemoveReputationAnalysisRequest.

type RemoveReputationAnalysisResponse added in v2.2.0

type RemoveReputationAnalysisResponse struct {
	ForwardToHTTPHeader                bool `json:"forwardToHTTPHeader"`
	ForwardSharedIPToHTTPHeaderAndSIEM bool `json:"forwardSharedIPToHTTPHeaderAndSIEM"`
}

RemoveReputationAnalysisResponse is returned from a call to RemoveReputationAnalysis.

type RemoveReputationProfileRequest added in v2.0.4

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

RemoveReputationProfileRequest is used to remove a reputation profile.

func (RemoveReputationProfileRequest) Validate added in v2.0.4

Validate validates a 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"`
}

RemoveReputationProfileResponse is returned from a call to RemoveReputationProfile.

type RemoveReputationProtectionRequest added in v2.0.4

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

RemoveReputationProtectionRequest is used to remove the reputation protection settings. Deprecated: this struct will be removed in a future release.

func (RemoveReputationProtectionRequest) Validate added in v2.0.4

Validate validates a RemoveReputationProtectionRequest.

type RemoveReputationProtectionResponse added in v2.0.4

type RemoveReputationProtectionResponse ProtectionsResponse

RemoveReputationProtectionResponse is returned from a call to RemoveReputationProtection. Deprecated: this struct will be removed in a future release.

type RemoveSecurityPolicyRequest added in v2.0.4

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

RemoveSecurityPolicyRequest is used to remove a security policy.

func (RemoveSecurityPolicyRequest) Validate added in v2.0.4

func (v RemoveSecurityPolicyRequest) Validate() error

Validate validates a 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"`
}

RemoveSecurityPolicyResponse is returned from a call to RemoveSecurityPolicy.

type RemoveSiemSettingsRequest added in v2.2.0

type RemoveSiemSettingsRequest struct {
	ConfigID                int      `json:"-"`
	Version                 int      `json:"-"`
	EnableForAllPolicies    bool     `json:"-"`
	EnableSiem              bool     `json:"enableSiem"`
	EnabledBotmanSiemEvents bool     `json:"-"`
	SiemDefinitionID        int      `json:"-"`
	FirewallPolicyIds       []string `json:"-"`
}

RemoveSiemSettingsRequest is used to remove the SIEM settings for a configuration. Deprecated: this struct will be removed in a future release.

func (RemoveSiemSettingsRequest) Validate added in v2.2.0

func (v RemoveSiemSettingsRequest) Validate() error

Validate validates a RemoveSiemSettingsRequest. Deprecated: this method will be removed in a future release.

type RemoveSiemSettingsResponse added in v2.2.0

type RemoveSiemSettingsResponse struct {
	EnableForAllPolicies    bool     `json:"enableForAllPolicies"`
	EnableSiem              bool     `json:"enableSiem"`
	EnabledBotmanSiemEvents bool     `json:"enabledBotmanSiemEvents"`
	SiemDefinitionID        int      `json:"siemDefinitionId"`
	FirewallPolicyIds       []string `json:"firewallPolicyIds"`
}

RemoveSiemSettingsResponse is returned from a call to RemoveSiemSettings. Deprecated: this struct will be removed in a future release.

type RemoveWAPBypassNetworkListsRequest added in v2.12.0

type RemoveWAPBypassNetworkListsRequest struct {
	ConfigID     int      `json:"-"`
	Version      int      `json:"-"`
	PolicyID     string   `json:"policyId"`
	NetworkLists []string `json:"networkLists"`
}

RemoveWAPBypassNetworkListsRequest is used to modify which network lists are used in the bypass network lists settings. Deprecated: this struct will be removed in a future release.

func (RemoveWAPBypassNetworkListsRequest) Validate added in v2.12.0

Validate validates a RemoveWAPBypassNetworkListsRequest. Deprecated: this method will be removed in a future release.

type RemoveWAPBypassNetworkListsResponse added in v2.12.0

type RemoveWAPBypassNetworkListsResponse struct {
	NetworkLists []string `json:"networkLists"`
}

RemoveWAPBypassNetworkListsResponse is returned from a call to RemoveWAPBypassNetworkLists. Deprecated: this struct will be removed in a future release.

type ReputationProfileActionPost added in v2.0.4

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

ReputationProfileActionPost is currently unused.

type ReputationProfileActionsexp added in v2.2.0

type ReputationProfileActionsexp []struct {
	Action string `json:"action"`
	ID     int    `json:"id"`
}

ReputationProfileActionsexp is returned as part of GetExportConfigurationResponse.

type ReputationProfileCondition added in v2.4.1

type ReputationProfileCondition struct {
	AtomicConditions []struct {
		CheckIps      *json.RawMessage `json:"checkIps,omitempty"`
		ClassName     string           `json:"className,omitempty"`
		Index         int              `json:"index,omitempty"`
		PositiveMatch *json.RawMessage `json:"positiveMatch,omitempty"`
		Value         []string         `json:"value,omitempty"`
		Name          *json.RawMessage `json:"name,omitempty"`
		NameCase      bool             `json:"nameCase,omitempty"`
		NameWildcard  *json.RawMessage `json:"nameWildcard,omitempty"`
		ValueCase     bool             `json:"valueCase,omitempty"`
		ValueWildcard *json.RawMessage `json:"valueWildcard,omitempty"`
		Host          []string         `json:"host,omitempty"`
	} `json:"atomicConditions,omitempty"`
	PositiveMatch *json.RawMessage `json:"positiveMatch,omitempty"`
}

ReputationProfileCondition is used as part of a reputation profile description.

type ReputationProtection added in v2.0.4

type ReputationProtection interface {
	// GetReputationProtections retrieves the current reputation protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	// Deprecated: this method will be removed in a future release. Use GetReputationProtection instead.
	GetReputationProtections(ctx context.Context, params GetReputationProtectionsRequest) (*GetReputationProtectionsResponse, error)

	// GetReputationProtection retrieves the current reputation protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	GetReputationProtection(ctx context.Context, params GetReputationProtectionRequest) (*GetReputationProtectionResponse, error)

	// UpdateReputationProtection updates the reputation protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	UpdateReputationProtection(ctx context.Context, params UpdateReputationProtectionRequest) (*UpdateReputationProtectionResponse, error)

	// RemoveReputationProtection removes reputation protection for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	// Deprecated: this method will be removed in a future release. Use UpdateReputationProtection instead.
	RemoveReputationProtection(ctx context.Context, params RemoveReputationProtectionRequest) (*RemoveReputationProtectionResponse, error)
}

The ReputationProtection interface supports retrieving and updating reputation protection for a configuration and policy.

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

type RuleConditionException added in v2.0.4

type RuleConditionException struct {
	Conditions             *RuleConditions     `json:"conditions,omitempty"`
	Exception              *RuleException      `json:"exception,omitempty"`
	AdvancedExceptionsList *AdvancedExceptions `json:"advancedExceptions,omitempty"`
}

RuleConditionException is used to describe the conditions and exceptions for a rule.

type RuleConditions added in v2.2.0

type RuleConditions []struct {
	Type          string   `json:"type,omitempty"`
	Extensions    []string `json:"extensions,omitempty"`
	Filenames     []string `json:"filenames,omitempty"`
	Hosts         []string `json:"hosts,omitempty"`
	Ips           []string `json:"ips,omitempty"`
	Methods       []string `json:"methods,omitempty"`
	Paths         []string `json:"paths,omitempty"`
	Header        string   `json:"header,omitempty"`
	CaseSensitive bool     `json:"caseSensitive,omitempty"`
	Name          string   `json:"name,omitempty"`
	NameCase      bool     `json:"nameCase,omitempty"`
	PositiveMatch bool     `json:"positiveMatch"`
	Value         string   `json:"value,omitempty"`
	Wildcard      bool     `json:"wildcard,omitempty"`
	ValueCase     bool     `json:"valueCase,omitempty"`
	ValueWildcard bool     `json:"valueWildcard,omitempty"`
	UseHeaders    bool     `json:"useHeaders,omitempty"`
}

RuleConditions is used to describe the conditions for a rule.

type RuleData added in v2.12.0

type RuleData []struct {
	ID    int    `json:"id,omitempty"`
	Title string `json:"title,omitempty"`
}

RuleData contains updates to rules

type RuleException added in v2.2.0

type RuleException struct {
	AnyHeaderCookieOrParam                  []string                                 `json:"anyHeaderCookieOrParam,omitempty"`
	HeaderCookieOrParamValues               []string                                 `json:"headerCookieOrParamValues,omitempty"`
	SpecificHeaderCookieOrParamNameValue    *SpecificHeaderCookieOrParamNameValuePtr `json:"specificHeaderCookieOrParamNameValue,omitempty"`
	SpecificHeaderCookieOrParamNames        *SpecificHeaderCookieOrParamNamesPtr     `json:"specificHeaderCookieOrParamNames,omitempty"`
	SpecificHeaderCookieOrParamPrefix       *SpecificHeaderCookieOrParamPrefixPtr    `json:"specificHeaderCookieOrParamPrefix,omitempty"`
	SpecificHeaderCookieParamXMLOrJSONNames *SpecificHeaderCookieParamXMLOrJSONNames `json:"specificHeaderCookieParamXmlOrJsonNames,omitempty"`
}

RuleException is used to describe the exceptions for a rule.

type RuleRecommendation added in v2.16.0

type RuleRecommendation struct {
	Description string                `json:"description,omitempty"`
	Evidence    *Evidences            `json:"evidences,omitempty"`
	Exception   *AttackGroupException `json:"exception,omitempty"`
	RuleId      int                   `json:"ruleId,omitempty"`
}

RuleRecommendation is used to describe a recommendation for a rule.

type RulesetType added in v2.12.0

type RulesetType string

RulesetType is a ruleset type value.

type RulesetUpdateData added in v2.12.0

type RulesetUpdateData struct {
	DeletedRules        *RuleData  `json:"deletedRules,omitempty"`
	NewRules            *RuleData  `json:"newRules,omitempty"`
	UpdatedRules        *RuleData  `json:"updatedRules,omitempty"`
	DeletedAttackGroups *GroupData `json:"deletedAttackGroups,omitempty"`
	UpdatedAttackGroups *GroupData `json:"updatedAttackGroups,omitempty"`
	NewAttackGroups     *GroupData `json:"newAttackGroups,omitempty"`
}

RulesetUpdateData is used to report all updates to rules and attack groups in the ruleset.

type RulesetsRules added in v2.3.0

type RulesetsRules []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"`
	AttackGroups        []string `json:"attackGroups,omitempty"`
}

RulesetsRules is returned as part of GetExportConfigurationResponse.

type SecurityPoliciesPenaltyBox added in v2.3.0

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

SecurityPoliciesPenaltyBox is returned as part of GetExportConfigurationResponse.

type SecurityPoliciesRatePolicyActions added in v2.3.0

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

SecurityPoliciesRatePolicyActions is returned as part of GetExportConfigurationResponse.

type SecurityPolicyCloneResponse

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

SecurityPolicyCloneResponse is currently unused.

type SelectableHostnames

The SelectableHostnames interface supports retrieving the hostnames that a given configuration version has the ability to protect. Hostnames may show as error hosts when they aren’t currently available. for example, when a contract expires.

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

type SelectedHostname

type SelectedHostname interface {
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getselectedhostnames
	// Deprecated: this method will be removed in a future release. Use the GetWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	GetSelectedHostnames(ctx context.Context, params GetSelectedHostnamesRequest) (*GetSelectedHostnamesResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getselectedhostnames
	// Deprecated: this method will be removed in a future release. Use the GetWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	GetSelectedHostname(ctx context.Context, params GetSelectedHostnameRequest) (*GetSelectedHostnameResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putselectedhostnames
	// Deprecated: this method will be removed in a future release. Use the UpdateWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	UpdateSelectedHostname(ctx context.Context, params UpdateSelectedHostnameRequest) (*UpdateSelectedHostnameResponse, error)

	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putselectedhostnames
	// Deprecated: this method will be removed in a future release. Use the UpdateWAPSelectedHostnames method of the WAPSelectedHostnames interface instead.
	UpdateSelectedHostnames(ctx context.Context, params UpdateSelectedHostnamesRequest) (*UpdateSelectedHostnamesResponse, error)
}

The SelectedHostname interface supports retrieving and modifying the list of hostnames protected under a configuration.

https://developer.akamai.com/api/cloud_security/application_security/v1.html#selectedhostnames Deprecated: this interface will be removed in a future release. Use the WAPSelectedHostnames interface instead.

type SiemDefinitions added in v2.2.0

The SiemDefinitions interface supports retrieving the available SIEM versions.

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

type Siemexp added in v2.2.0

type Siemexp struct {
	EnableForAllPolicies    bool     `json:"enableForAllPolicies,omitempty"`
	EnableSiem              bool     `json:"enableSiem"`
	EnabledBotmanSiemEvents bool     `json:"enabledBotmanSiemEvents,omitempty"`
	FirewallPolicyIds       []string `json:"firewallPolicyIds,omitempty"`
	SiemDefinitionID        int      `json:"siemDefinitionId,omitempty"`
}

Siemexp is returned as part of GetExportConfigurationResponse.

type SlowPostProtection added in v2.0.4

type SlowPostProtection interface {
	// GetSlowPostProtections retrieves the current SLOW post protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	// Deprecated: this method will be removed in a future release. Use GetSlowPostProtection instead.
	GetSlowPostProtections(ctx context.Context, params GetSlowPostProtectionsRequest) (*GetSlowPostProtectionsResponse, error)

	// GetSlowPostProtection retrieves the current SLOW post protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	GetSlowPostProtection(ctx context.Context, params GetSlowPostProtectionRequest) (*GetSlowPostProtectionResponse, error)

	// UpdateSlowPostProtection updates the SLOW post protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	UpdateSlowPostProtection(ctx context.Context, params UpdateSlowPostProtectionRequest) (*UpdateSlowPostProtectionResponse, error)
}

The SlowPostProtection interface supports retrieving and updating slow post protection for a configuration and policy.

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

type SlowPostProtectionSetting

type SlowPostProtectionSetting interface {
	// GetSlowPostProtectionSettings retrieves the current SLOW post protection settings for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getslowpostprotectionsettings
	GetSlowPostProtectionSettings(ctx context.Context, params GetSlowPostProtectionSettingsRequest) (*GetSlowPostProtectionSettingsResponse, error)

	// GetSlowPostProtectionSetting retrieves the current SLOW post protection settings for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getslowpostprotectionsettings
	// Deprecated: this method will be removed in a future release. Use GetSlowPostProtectionSettings instead.
	GetSlowPostProtectionSetting(ctx context.Context, params GetSlowPostProtectionSettingRequest) (*GetSlowPostProtectionSettingResponse, error)

	// UpdateSlowPostProtectionSettings updates the SLOW post protection settings for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putslowpostprotectionsettings
	UpdateSlowPostProtectionSetting(ctx context.Context, params UpdateSlowPostProtectionSettingRequest) (*UpdateSlowPostProtectionSettingResponse, error)
}

The SlowPostProtectionSetting interface supports retrieving and updating the slow POST protection settings for a configuration and policy.

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

type SlowPostProtectionSettingDurationThreshold added in v2.2.0

type SlowPostProtectionSettingDurationThreshold struct {
	Timeout int `json:"timeout"`
}

SlowPostProtectionSettingDurationThreshold describes the length of time in seconds within which the first eight kilobytes of the POST body must be transferred to avoid applying the action specified in the policy.

type SlowPostProtectionSettingSlowRateThreshold added in v2.2.0

type SlowPostProtectionSettingSlowRateThreshold struct {
	Rate   int `json:"rate"`
	Period int `json:"period"`
}

SlowPostProtectionSettingSlowRateThreshold describes the average rate in bytes per second over a specified period of time before an action (alert or abort) in the policy triggers.

type SlowPostexp added in v2.2.0

type SlowPostexp struct {
	Action            string                `json:"action"`
	SlowRateThreshold *SlowRateThresholdExp `json:"slowRateThreshold,omitempty"`
	DurationThreshold *DurationThresholdExp `json:"durationThreshold,omitempty"`
}

SlowPostexp is returned as part of GetExportConfigurationResponse.

type SlowRateThresholdExp added in v2.5.0

type SlowRateThresholdExp struct {
	Period int `json:"period"`
	Rate   int `json:"rate"`
}

SlowRateThresholdExp is returned as part of GetExportConfigurationResponse.

type SpecificHeaderCookieOrParamNameValuePtr added in v2.5.0

type SpecificHeaderCookieOrParamNameValuePtr struct {
	Name     string `json:"name,omitempty"`
	Selector string `json:"selector,omitempty"`
	Value    string `json:"value,omitempty"`
}

SpecificHeaderCookieOrParamNameValuePtr is used as part of condition and exception information for a rule.

type SpecificHeaderCookieOrParamNameValueexp added in v2.2.0

type SpecificHeaderCookieOrParamNameValueexp struct {
	Name     *json.RawMessage `json:"name,omitempty"`
	Selector string           `json:"selector,omitempty"`
	Value    *json.RawMessage `json:"value,omitempty"`
}

SpecificHeaderCookieOrParamNameValueexp is returned as part of GetExportConfigurationResponse.

type SpecificHeaderCookieOrParamNamesPtr added in v2.5.0

type SpecificHeaderCookieOrParamNamesPtr []struct {
	Names    []string `json:"names,omitempty"`
	Selector string   `json:"selector,omitempty"`
}

SpecificHeaderCookieOrParamNamesPtr is used as part of condition and exception information for a rule.

type SpecificHeaderCookieOrParamPrefixPtr added in v2.5.0

type SpecificHeaderCookieOrParamPrefixPtr struct {
	Prefix   string `json:"prefix,omitempty"`
	Selector string `json:"selector,omitempty"`
}

SpecificHeaderCookieOrParamPrefixPtr is used as part of condition and exception information for a rule.

type SpecificHeaderCookieParamXMLOrJSONNames added in v2.8.1

type SpecificHeaderCookieParamXMLOrJSONNames AttackGroupSpecificHeaderCookieParamXMLOrJSONNames

SpecificHeaderCookieParamXMLOrJSONNames is used as part of condition and exception information for an ASE rule.

type StatusValue

type StatusValue string

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

type ThreatIntel added in v2.6.0

type ThreatIntel interface {
	// GetThreatIntel retrieves the current threat intel settings.
	GetThreatIntel(ctx context.Context, params GetThreatIntelRequest) (*GetThreatIntelResponse, error)

	// UpdateThreatIntel modifies the current threat intel settings.
	UpdateThreatIntel(ctx context.Context, params UpdateThreatIntelRequest) (*UpdateThreatIntelResponse, error)
}

The ThreatIntel interface supports retrieving and modifying the operational settings for adaptive intelligence.

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

type UpdateAPIConstraintsProtectionRequest added in v2.5.0

type UpdateAPIConstraintsProtectionRequest struct {
	ConfigID            int    `json:"-"`
	Version             int    `json:"-"`
	PolicyID            string `json:"-"`
	ApplyAPIConstraints bool   `json:"applyApiConstraints"`
}

UpdateAPIConstraintsProtectionRequest is used to modify the API constraints protection setting.

func (UpdateAPIConstraintsProtectionRequest) Validate added in v2.5.0

Validate validates an UpdateAPIConstraintsProtectionRequest.

type UpdateAPIConstraintsProtectionResponse added in v2.5.0

type UpdateAPIConstraintsProtectionResponse ProtectionsResponse

UpdateAPIConstraintsProtectionResponse is returned from a call to UpdateAPIConstraintsProtection.

type UpdateAdvancedSettingsEvasivePathMatchRequest added in v2.9.0

type UpdateAdvancedSettingsEvasivePathMatchRequest struct {
	ConfigID        int    `json:"-"`
	Version         int    `json:"-"`
	PolicyID        string `json:"-"`
	EnablePathMatch bool   `json:"enablePathMatch"`
}

UpdateAdvancedSettingsEvasivePathMatchRequest is used to update the EvasivePathMatch setting

func (UpdateAdvancedSettingsEvasivePathMatchRequest) Validate added in v2.9.0

Validate validates UpdateAdvancedSettingsEvasivePathMatchRequest

type UpdateAdvancedSettingsEvasivePathMatchResponse added in v2.9.0

type UpdateAdvancedSettingsEvasivePathMatchResponse struct {
	EnablePathMatch bool `json:"enablePathMatch"`
}

UpdateAdvancedSettingsEvasivePathMatchResponse returns the result of updating the EvasivePathMatch setting

type UpdateAdvancedSettingsLoggingRequest added in v2.2.0

type UpdateAdvancedSettingsLoggingRequest struct {
	ConfigID       int             `json:"-"`
	Version        int             `json:"-"`
	PolicyID       string          `json:"-"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

UpdateAdvancedSettingsLoggingRequest is used to update the HTTP header logging settings for a configuration or policy.

func (UpdateAdvancedSettingsLoggingRequest) Validate added in v2.2.0

Validate validates an UpdateAdvancedSettingsLoggingRequest.

type UpdateAdvancedSettingsLoggingResponse added in v2.2.0

type UpdateAdvancedSettingsLoggingResponse struct {
	Override      bool `json:"override"`
	AllowSampling bool `json:"allowSampling"`
	Cookies       struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"cookies"`
	CustomHeaders struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"customHeaders"`
	StandardHeaders struct {
		Type   string   `json:"type"`
		Values []string `json:"values,omitempty"`
	} `json:"standardHeaders"`
}

UpdateAdvancedSettingsLoggingResponse is returned from a call to UpdateAdvancedSettingsLogging.

type UpdateAdvancedSettingsPragmaRequest added in v2.5.0

type UpdateAdvancedSettingsPragmaRequest struct {
	ConfigID       int             `json:"-"`
	Version        int             `json:"-"`
	PolicyID       string          `json:"-"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

UpdateAdvancedSettingsPragmaRequest is used to modify the pragma settings for a security policy.

func (UpdateAdvancedSettingsPragmaRequest) Validate added in v2.5.0

Validate validates an UpdateAdvancedSettingsPragmaRequest.

type UpdateAdvancedSettingsPragmaResponse added in v2.5.0

type UpdateAdvancedSettingsPragmaResponse struct {
	Action            string             `json:"action"`
	ConditionOperator string             `json:"conditionOperator"`
	ExcludeCondition  []ExcludeCondition `json:"excludeCondition"`
}

UpdateAdvancedSettingsPragmaResponse is returned from a call to UpdateAdvancedSettingsPragma.

type UpdateAdvancedSettingsPrefetchRequest added in v2.2.0

type UpdateAdvancedSettingsPrefetchRequest struct {
	ConfigID           int      `json:"-"`
	Version            int      `json:"-"`
	AllExtensions      bool     `json:"allExtensions"`
	EnableAppLayer     bool     `json:"enableAppLayer"`
	EnableRateControls bool     `json:"enableRateControls"`
	Extensions         []string `json:"extensions,omitempty"`
}

UpdateAdvancedSettingsPrefetchRequest is used to modify the prefetch request settings.

func (UpdateAdvancedSettingsPrefetchRequest) Validate added in v2.2.0

Validate validates an UpdateAdvancedSettingsPrefetchRequest.

type UpdateAdvancedSettingsPrefetchResponse added in v2.2.0

type UpdateAdvancedSettingsPrefetchResponse struct {
	AllExtensions      bool     `json:"allExtensions"`
	EnableAppLayer     bool     `json:"enableAppLayer"`
	EnableRateControls bool     `json:"enableRateControls"`
	Extensions         []string `json:"extensions,omitempty"`
}

UpdateAdvancedSettingsPrefetchResponse is returned from a call to UpdateAdvancedSettingsPrefetch.

type UpdateApiRequestConstraintsRequest added in v2.2.0

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

UpdateApiRequestConstraintsRequest is used to modify the action taken when an API request contraint is triggered.

func (UpdateApiRequestConstraintsRequest) Validate added in v2.2.0

Validate validates an UpdateApiRequestConstraintsRequest.

type UpdateApiRequestConstraintsResponse added in v2.2.0

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

UpdateApiRequestConstraintsResponse is returned from a call to UpdateApiRequestConstraints.

type UpdateAttackGroupRequest added in v2.5.0

type UpdateAttackGroupRequest struct {
	ConfigID       int             `json:"-"`
	Version        int             `json:"-"`
	PolicyID       string          `json:"-"`
	Group          string          `json:"-"`
	Action         string          `json:"action"`
	JsonPayloadRaw json.RawMessage `json:"conditionException,omitempty"`
}

UpdateAttackGroupRequest is used to modify what action to take when an attack group’s rule triggers.

func (UpdateAttackGroupRequest) Validate added in v2.5.0

func (v UpdateAttackGroupRequest) Validate() error

Validate validates an UpdateAttackGroupConditionExceptionRequest.

type UpdateAttackGroupResponse added in v2.5.0

type UpdateAttackGroupResponse struct {
	Action             string                         `json:"action,omitempty"`
	ConditionException *AttackGroupConditionException `json:"conditionException,omitempty"`
}

UpdateAttackGroupResponse is returned from a call to UpdateAttackGroup.

type UpdateBypassNetworkListsRequest added in v2.2.0

type UpdateBypassNetworkListsRequest struct {
	ConfigID     int      `json:"-"`
	Version      int      `json:"-"`
	PolicyID     string   `json:"policyId"`
	NetworkLists []string `json:"networkLists"`
}

UpdateBypassNetworkListsRequest is used to modify which network lists are used in the bypass network lists settings.

func (UpdateBypassNetworkListsRequest) Validate added in v2.2.0

Validate validates an UpdateBypassNetworkListsRequest.

type UpdateBypassNetworkListsResponse added in v2.2.0

type UpdateBypassNetworkListsResponse 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"`
}

UpdateBypassNetworkListsResponse is returned from a call to UpdateBypassNetworkLists.

type UpdateConditionExceptionRequest added in v2.6.0

type UpdateConditionExceptionRequest struct {
	ConfigID               int                 `json:"-"`
	Version                int                 `json:"-"`
	PolicyID               string              `json:"-"`
	RuleID                 int                 `json:"-"`
	Conditions             *RuleConditions     `json:"conditions,omitempty"`
	Exception              *RuleException      `json:"exception,omitempty"`
	AdvancedExceptionsList *AdvancedExceptions `json:"advancedExceptions,omitempty"`
}

UpdateConditionExceptionRequest is used to update the condition and exception information for a rule.

func (UpdateConditionExceptionRequest) Validate added in v2.6.0

Validate validates an UpdateConditionExceptionRequest.

type UpdateConditionExceptionResponse added in v2.6.0

type UpdateConditionExceptionResponse RuleConditionException

UpdateConditionExceptionResponse is returned from a call to UpdateConditionException.

type UpdateConfigurationRequest added in v2.2.0

type UpdateConfigurationRequest struct {
	ConfigID    int    `json:"-"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

UpdateConfigurationRequest is used tdo modify the name or description of an existing security configuration.

func (UpdateConfigurationRequest) Validate added in v2.2.0

func (v UpdateConfigurationRequest) Validate() error

Validate validates an UpdateConfigurationRequest.

type UpdateConfigurationResponse added in v2.2.0

type UpdateConfigurationResponse struct {
	Name        string `json:"name"`
	Description string `json:"description"`
}

UpdateConfigurationResponse is returned from a call to UpdateConfiguration.

type UpdateCustomDenyRequest added in v2.2.0

type UpdateCustomDenyRequest struct {
	ConfigID       int             `json:"-"`
	Version        int             `json:"-"`
	ID             string          `json:"id"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

UpdateCustomDenyRequest is used to details for a specific custom deny action.

func (UpdateCustomDenyRequest) Validate added in v2.2.0

func (v UpdateCustomDenyRequest) Validate() error

Validate validates an UpdateCustomDenyRequest.

type UpdateCustomDenyResponse added in v2.2.0

type UpdateCustomDenyResponse struct {
	Description string       `json:"description,omitempty"`
	Name        string       `json:"name"`
	ID          customDenyID `json:"-"`
	Parameters  []struct {
		DisplayName string `json:"-"`
		Name        string `json:"name"`
		Value       string `json:"value"`
	} `json:"parameters"`
}

UpdateCustomDenyResponse is returned from a call to UpdateCustomDeny.

type UpdateCustomRuleActionRequest

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

UpdateCustomRuleActionRequest is used to modify an existing custom rule.

func (UpdateCustomRuleActionRequest) Validate

func (v UpdateCustomRuleActionRequest) Validate() error

Validate validates an 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"`
}

UpdateCustomRuleActionResponse is returned from a call to UpdateCustomRuleAction.

type UpdateCustomRuleRequest

type UpdateCustomRuleRequest struct {
	ConfigID       int             `json:"configid,omitempty"`
	ID             int             `json:"id,omitempty"`
	Version        int             `json:"version,omitempty"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

UpdateCustomRuleRequest is used to modify an existing custom rule.

func (UpdateCustomRuleRequest) Validate

func (v UpdateCustomRuleRequest) Validate() error

Validate validates an UpdateCustomRuleRequest.

type UpdateCustomRuleResponse

type UpdateCustomRuleResponse GetCustomRuleResponse

UpdateCustomRuleResponse is returned from a call to UpdateCustomRule.

type UpdateEvalHostRequest added in v2.2.0

type UpdateEvalHostRequest struct {
	ConfigID  int      `json:"-"`
	Version   int      `json:"-"`
	Hostnames []string `json:"hostnames"`
}

UpdateEvalHostRequest is used to modify the evaluation hostnames for a configuration.

func (UpdateEvalHostRequest) Validate added in v2.2.0

func (v UpdateEvalHostRequest) Validate() error

Validate validates an UpdateEvalHostRequest.

type UpdateEvalHostResponse added in v2.2.0

type UpdateEvalHostResponse struct {
	HostnameList []struct {
		Hostname string `json:"hostname"`
	} `json:"hostnameList"`
}

UpdateEvalHostResponse is returned from a call to UpdateEvalHost.

type UpdateEvalProtectHostRequest added in v2.2.0

type UpdateEvalProtectHostRequest struct {
	ConfigID  int      `json:"-"`
	Version   int      `json:"-"`
	Hostnames []string `json:"hostnames"`
}

UpdateEvalProtectHostRequest is used to call UpdateEvalProtectHost.

func (UpdateEvalProtectHostRequest) Validate added in v2.2.0

func (v UpdateEvalProtectHostRequest) Validate() error

Validate validates an UpdateEvalProtectHostRequest.

type UpdateEvalProtectHostResponse added in v2.2.0

type UpdateEvalProtectHostResponse struct {
	HostnameList []struct {
		Hostname string `json:"hostname"`
	} `json:"hostnameList"`
}

UpdateEvalProtectHostResponse is returned from a call to UpdateEvalProtectHost.

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"`
}

UpdateEvalRequest is used to modify an evaluation mode setting.

func (UpdateEvalRequest) Validate added in v2.0.4

func (v UpdateEvalRequest) Validate() error

Validate validates an UpdateEvalRequest.

type UpdateEvalResponse added in v2.0.4

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

UpdateEvalResponse is returned from a call to UpdateEval.

type UpdateEvalRuleRequest added in v2.5.0

type UpdateEvalRuleRequest struct {
	ConfigID       int             `json:"-"`
	Version        int             `json:"-"`
	PolicyID       string          `json:"-"`
	RuleID         int             `json:"-"`
	Action         string          `json:"action"`
	JsonPayloadRaw json.RawMessage `json:"conditionException,omitempty"`
}

UpdateEvalRuleRequest is used to modify a rule available for evaluation and its action.

func (UpdateEvalRuleRequest) Validate added in v2.5.0

func (v UpdateEvalRuleRequest) Validate() error

Validate validates an UpdateEvalRuleRequest.

type UpdateEvalRuleResponse added in v2.5.0

type UpdateEvalRuleResponse struct {
	Action             string                  `json:"action,omitempty"`
	ConditionException *RuleConditionException `json:"conditionException,omitempty"`
}

UpdateEvalRuleResponse is returned from a call to UpdateEvalRule.

type UpdateIPGeoProtectionRequest added in v2.5.0

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

UpdateIPGeoProtectionRequest is used to modify the IPGeo protection settings.

func (UpdateIPGeoProtectionRequest) Validate added in v2.5.0

func (v UpdateIPGeoProtectionRequest) Validate() error

Validate validates an UpdateIPGeoProtectionRequest.

type UpdateIPGeoProtectionResponse added in v2.5.0

type UpdateIPGeoProtectionResponse ProtectionsResponse

UpdateIPGeoProtectionResponse is returned from a call to UpdateIPGeoProtection.

type UpdateIPGeoRequest added in v2.0.4

type UpdateIPGeoRequest struct {
	ConfigID    int               `json:"-"`
	Version     int               `json:"-"`
	PolicyID    string            `json:"-"`
	Block       string            `json:"block"`
	GeoControls *IPGeoGeoControls `json:"geoControls,omitempty"`
	IPControls  *IPGeoIPControls  `json:"ipControls,omitempty"`
}

UpdateIPGeoRequest is used to update the method and which network lists are used for IP/Geo firewall blocking.

func (UpdateIPGeoRequest) Validate added in v2.0.4

func (v UpdateIPGeoRequest) Validate() error

Validate validates an UpdateIPGeoRequest.

type UpdateIPGeoResponse added in v2.0.4

type UpdateIPGeoResponse IPGeoFirewall

UpdateIPGeoResponse is returned from a call to UpdateIPGeo

type UpdateMalwarePolicyActionRequest added in v2.16.0

type UpdateMalwarePolicyActionRequest struct {
	ConfigID        int    `json:"configID"`
	Version         int    `json:"version"`
	PolicyID        string `json:"policyID"`
	MalwarePolicyID int    `json:"id"`
	Action          string `json:"action"`
	UnscannedAction string `json:"unscannedAction"`
}

UpdateMalwarePolicyActionRequest is used to update the actions for a malware policy.

func (UpdateMalwarePolicyActionRequest) Validate added in v2.16.0

Validate validates an UpdateMalwarePolicyActionRequest.

type UpdateMalwarePolicyActionResponse added in v2.16.0

type UpdateMalwarePolicyActionResponse struct {
	Action          string `json:"action"`
	UnscannedAction string `json:"unscannedAction"`
}

UpdateMalwarePolicyActionResponse is returned from a call to UpdateMalwarePolicy.

type UpdateMalwarePolicyActionsRequest added in v2.16.0

type UpdateMalwarePolicyActionsRequest struct {
	ConfigID             int
	Version              int
	PolicyID             string
	MalwarePolicyActions json.RawMessage `json:"-"`
}

UpdateMalwarePolicyActionsRequest is used to update the actions for multiple malware policies.

func (UpdateMalwarePolicyActionsRequest) Validate added in v2.16.0

Validate validates an UpdateMalwarePolicyActionsRequest.

type UpdateMalwarePolicyActionsResponse added in v2.16.0

type UpdateMalwarePolicyActionsResponse GetMalwarePolicyActionsResponse

UpdateMalwarePolicyActionsResponse is returned from a call to UpdateMalwarePolicyActions.

type UpdateMalwarePolicyRequest added in v2.16.0

type UpdateMalwarePolicyRequest struct {
	ConfigID        int
	ConfigVersion   int
	MalwarePolicyID int
	Policy          *MalwarePolicyBody
}

UpdateMalwarePolicyRequest is used to update an existing malware policy.

func (UpdateMalwarePolicyRequest) Validate added in v2.16.0

func (v UpdateMalwarePolicyRequest) Validate() error

Validate validates an UpdateMalwarePolicyRequest.

type UpdateMalwareProtectionRequest added in v2.16.0

type UpdateMalwareProtectionRequest struct {
	ConfigID             int    `json:"-"`
	Version              int    `json:"-"`
	PolicyID             string `json:"-"`
	ApplyMalwareControls bool   `json:"applyMalwareControls"`
}

UpdateMalwareProtectionRequest is used to modify the malware protection setting.

func (UpdateMalwareProtectionRequest) Validate added in v2.16.0

Validate validates an UpdateMalwareProtectionRequest.

type UpdateMalwareProtectionResponse added in v2.16.0

type UpdateMalwareProtectionResponse ProtectionsResponse

UpdateMalwareProtectionResponse is returned from a call to UpdateMalwareProtection.

type UpdateMatchTargetRequest

type UpdateMatchTargetRequest struct {
	ConfigID       int             `json:"configId"`
	ConfigVersion  int             `json:"configVersion"`
	JsonPayloadRaw json.RawMessage `json:"-"`
	TargetID       int             `json:"targetId"`
}

UpdateMatchTargetRequest is used to modify an existing match target.

func (UpdateMatchTargetRequest) Validate

func (v UpdateMatchTargetRequest) Validate() error

Validate validates an UpdateMatchTargetRequest.

type UpdateMatchTargetResponse

type UpdateMatchTargetResponse struct {
	Type                         string           `json:"type"`
	ConfigID                     int              `json:"configId"`
	ConfigVersion                int              `json:"configVersion"`
	DefaultFile                  string           `json:"defaultFile"`
	Hostnames                    []string         `json:"hostnames"`
	IsNegativeFileExtensionMatch bool             `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          *json.RawMessage `json:"isNegativePathMatch,omitempty"`
	FilePaths                    []string         `json:"filePaths"`
	FileExtensions               []string         `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"-"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

UpdateMatchTargetResponse is returned from a call to UpdateMatchTarget.

type UpdateMatchTargetSequenceRequest

type UpdateMatchTargetSequenceRequest struct {
	ConfigID       int               `json:"-"`
	ConfigVersion  int               `json:"-"`
	TargetSequence []MatchTargetItem `json:"targetSequence"`
	Type           string            `json:"type"`
}

UpdateMatchTargetSequenceRequest UpdateMatchTargetSequenceRequest is used to modify an existing match target sequence.

func (UpdateMatchTargetSequenceRequest) Validate

Validate validates an UpdateMatchTargetSequenceRequest.

type UpdateMatchTargetSequenceResponse

type UpdateMatchTargetSequenceResponse struct {
	TargetSequence []MatchTargetItem `json:"targetSequence"`
	Type           string            `json:"type"`
}

UpdateMatchTargetSequenceResponse is returned from a call to UpdateMatchTargetSequence.

type UpdateNetworkLayerProtectionRequest added in v2.0.4

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

UpdateNetworkLayerProtectionRequest is used to modify the network layer protection setting.

func (UpdateNetworkLayerProtectionRequest) Validate added in v2.0.4

Validate validates an UpdateNetworkLayerProtectionRequest.

type UpdateNetworkLayerProtectionResponse added in v2.0.4

type UpdateNetworkLayerProtectionResponse ProtectionsResponse

UpdateNetworkLayerProtectionResponse is returned from a call to UpdateNetworkLayerProtection

type UpdatePenaltyBoxRequest

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

UpdatePenaltyBoxRequest is used to modify the penalty box settings.

func (UpdatePenaltyBoxRequest) Validate

func (v UpdatePenaltyBoxRequest) Validate() error

Validate validates an UpdatePenaltyBoxRequest.

type UpdatePenaltyBoxResponse

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

UpdatePenaltyBoxResponse is returned from a call to UpdatePenaltyBox.

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"`
	ApplyMalwareControls          bool   `json:"applyMalwareControls"`
}

UpdatePolicyProtectionsRequest is used to modify the policy protection setting.

func (UpdatePolicyProtectionsRequest) Validate added in v2.0.4

Validate validates an UpdatePolicyProtectionsRequest.

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"`
}

UpdateRatePolicyActionRequest is used to update the actions for a rate policy.

func (UpdateRatePolicyActionRequest) Validate

func (v UpdateRatePolicyActionRequest) Validate() error

Validate validates an UpdateRatePolicyActionRequest.

type UpdateRatePolicyActionResponse

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

UpdateRatePolicyActionResponse is returned from a call to UpdateRatePolicy.

type UpdateRatePolicyRequest

type UpdateRatePolicyRequest struct {
	RatePolicyID   int             `json:"id"`
	ConfigID       int             `json:"configId"`
	ConfigVersion  int             `json:"configVersion"`
	JsonPayloadRaw json.RawMessage `json:"-"`
}

UpdateRatePolicyRequest is used to modify an existing rate policy.

func (UpdateRatePolicyRequest) Validate

func (v UpdateRatePolicyRequest) Validate() error

Validate validates an UpdateRatePolicyRequest.

type UpdateRatePolicyResponse

type UpdateRatePolicyResponse struct {
	ID                    int    `json:"id"`
	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"`
	Hosts                  *RatePoliciesHosts      `json:"hosts,omitempty"`
	Hostnames              []string                `json:"hostnames"`
	AdditionalMatchOptions []RatePolicyMatchOption `json:"additionalMatchOptions,omitempty"`
	QueryParameters        []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string          `json:"-"`
	UpdateDate string          `json:"-"`
	Used       json.RawMessage `json:"used"`
}

UpdateRatePolicyResponse is returned from a call to UpdateRatePolicy.

type UpdateRateProtectionRequest added in v2.0.4

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

UpdateRateProtectionRequest is used to modify the rate protection setting.

func (UpdateRateProtectionRequest) Validate added in v2.0.4

func (v UpdateRateProtectionRequest) Validate() error

Validate validates an UpdateRateProtectionRequest.

type UpdateRateProtectionResponse added in v2.0.4

type UpdateRateProtectionResponse ProtectionsResponse

UpdateRateProtectionResponse is returned from a call to UpdateRateProtection.

type UpdateReputationAnalysisRequest added in v2.2.0

type UpdateReputationAnalysisRequest struct {
	ConfigID                           int    `json:"-"`
	Version                            int    `json:"-"`
	PolicyID                           string `json:"-"`
	ForwardToHTTPHeader                bool   `json:"forwardToHTTPHeader"`
	ForwardSharedIPToHTTPHeaderAndSIEM bool   `json:"forwardSharedIPToHTTPHeaderAndSIEM"`
}

UpdateReputationAnalysisRequest is used to modify the reputation analysis settings for a security poliyc.

func (UpdateReputationAnalysisRequest) Validate added in v2.2.0

Validate validates an UpdateReputationAnalysisRequest.

type UpdateReputationAnalysisResponse added in v2.2.0

type UpdateReputationAnalysisResponse struct {
	ForwardToHTTPHeader                bool `json:"forwardToHTTPHeader"`
	ForwardSharedIPToHTTPHeaderAndSIEM bool `json:"forwardSharedIPToHTTPHeaderAndSIEM"`
}

UpdateReputationAnalysisResponse is returned from a call to UpdateReputationAnalysis.

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"`
}

UpdateReputationProfileActionRequest is used to modify the details for a specific reputation profile.

func (UpdateReputationProfileActionRequest) Validate added in v2.0.4

Validate validates an UpdateReputationProfileActionRequest.

type UpdateReputationProfileActionResponse added in v2.0.4

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

UpdateReputationProfileActionResponse is returned from a call to UpdateReputationProfileAction.

type UpdateReputationProfileRequest added in v2.0.4

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

UpdateReputationProfileRequest is used to modify an existing reputation profile.

func (UpdateReputationProfileRequest) Validate added in v2.0.4

Validate validates an 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"`
}

UpdateReputationProfileResponse is returned from a call to UpdateReputationProfile.

type UpdateReputationProtectionRequest added in v2.0.4

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

UpdateReputationProtectionRequest is used to modify the reputation protection setting.

func (UpdateReputationProtectionRequest) Validate added in v2.0.4

Validate validates an UpdateReputationProtectionRequest.

type UpdateReputationProtectionResponse added in v2.0.4

type UpdateReputationProtectionResponse ProtectionsResponse

UpdateReputationProtectionResponse is returned from a call to UpdateReputationProtection.

type UpdateRuleRequest added in v2.5.0

type UpdateRuleRequest struct {
	ConfigID       int             `json:"-"`
	Version        int             `json:"-"`
	PolicyID       string          `json:"-"`
	RuleID         int             `json:"-"`
	Action         string          `json:"action"`
	JsonPayloadRaw json.RawMessage `json:"conditionException,omitempty"`
}

UpdateRuleRequest is used to modify the settings for a rule.

func (UpdateRuleRequest) Validate added in v2.5.0

func (v UpdateRuleRequest) Validate() error

Validate validates an UpdateRuleRequest.

type UpdateRuleResponse added in v2.5.0

type UpdateRuleResponse struct {
	Action             string                  `json:"action,omitempty"`
	ConditionException *RuleConditionException `json:"conditionException,omitempty"`
}

UpdateRuleResponse is returned from a call to UpdateRule.

type UpdateRuleUpgradeRequest added in v2.0.4

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

UpdateRuleUpgradeRequest is used to upgrade to the most recent version of the KRS rule set.

func (UpdateRuleUpgradeRequest) Validate added in v2.0.4

func (v UpdateRuleUpgradeRequest) Validate() error

Validate validates an UpdateRuleUpgradeRequest.

type UpdateRuleUpgradeResponse added in v2.0.4

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

UpdateRuleUpgradeResponse is returned from a call to UpdateRuleUpgrade.

type UpdateSecurityPolicyRequest added in v2.0.4

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

UpdateSecurityPolicyRequest is used to modify a security policy.

func (UpdateSecurityPolicyRequest) Validate added in v2.0.4

func (v UpdateSecurityPolicyRequest) Validate() error

Validate validates an UpdateSecurityPolicyRequest.

type UpdateSecurityPolicyResponse added in v2.0.4

type UpdateSecurityPolicyResponse struct {
	ConfigID               int    `json:"configId"`
	PolicyID               string `json:"policyId"`
	PolicyName             string `json:"policyName"`
	DefaultSettings        bool   `json:"defaultSettings,omitempty"`
	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"`
}

UpdateSecurityPolicyResponse is returned from a call to UpdateSecurityPolicy.

type UpdateSelectedHostnameRequest

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

UpdateSelectedHostnameRequest is used to modify the selected hostnames for a configuration. Deprecated: this struct will be removed in a future release.

func (UpdateSelectedHostnameRequest) Validate

func (v UpdateSelectedHostnameRequest) Validate() error

Validate validates an UpdateSelectedHostnameRequest. Deprecated: this method will be removed in a future release.

type UpdateSelectedHostnameResponse

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

UpdateSelectedHostnameResponse is returned from a call to UpdateSelectedHostname. Deprecated: this struct will be removed in a future release.

type UpdateSelectedHostnamesRequest added in v2.8.1

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

UpdateSelectedHostnamesRequest is used to modify the selected hostnames for a configuration.

func (UpdateSelectedHostnamesRequest) Validate added in v2.8.1

Validate validates an UpdateSelectedHostnamesRequest.

type UpdateSelectedHostnamesResponse added in v2.8.1

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

UpdateSelectedHostnamesResponse is returned from a call to UpdateSelectedHostnames.

type UpdateSiemSettingsRequest added in v2.2.0

type UpdateSiemSettingsRequest struct {
	ConfigID                int      `json:"-"`
	Version                 int      `json:"-"`
	EnableForAllPolicies    bool     `json:"enableForAllPolicies"`
	EnableSiem              bool     `json:"enableSiem"`
	EnabledBotmanSiemEvents bool     `json:"enabledBotmanSiemEvents"`
	SiemDefinitionID        int      `json:"siemDefinitionId"`
	FirewallPolicyIds       []string `json:"firewallPolicyIds"`
}

UpdateSiemSettingsRequest is used to modify the SIEM settings for a configuration.

func (UpdateSiemSettingsRequest) Validate added in v2.2.0

func (v UpdateSiemSettingsRequest) Validate() error

Validate validates an UpdateSiemSettingsRequest.

type UpdateSiemSettingsResponse added in v2.2.0

type UpdateSiemSettingsResponse struct {
	EnableForAllPolicies    bool     `json:"enableForAllPolicies"`
	EnableSiem              bool     `json:"enableSiem"`
	EnabledBotmanSiemEvents bool     `json:"enabledBotmanSiemEvents"`
	SiemDefinitionID        int      `json:"siemDefinitionId"`
	FirewallPolicyIds       []string `json:"firewallPolicyIds"`
}

UpdateSiemSettingsResponse is returned from a call to UpdateSiemSettings.

type UpdateSlowPostProtectionRequest added in v2.0.4

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

UpdateSlowPostProtectionRequest is used to modify the slow post protection setting.

func (UpdateSlowPostProtectionRequest) Validate added in v2.0.4

Validate validates an UpdateSlowPostProtectionRequest.

type UpdateSlowPostProtectionResponse added in v2.0.4

type UpdateSlowPostProtectionResponse ProtectionsResponse

UpdateSlowPostProtectionResponse is returned from a call to UpdateSlowPostProtection.

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"`
}

UpdateSlowPostProtectionSettingRequest is used to modify the slow post protection settings for a configuration.

func (UpdateSlowPostProtectionSettingRequest) Validate

Validate validates an 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"`
}

UpdateSlowPostProtectionSettingResponse is returned from a call to UpdateSlowPostProtection.

type UpdateThreatIntelRequest added in v2.6.0

type UpdateThreatIntelRequest struct {
	ConfigID    int    `json:"-"`
	Version     int    `json:"-"`
	PolicyID    string `json:"-"`
	ThreatIntel string `json:"threatIntel"`
}

UpdateThreatIntelRequest is used to update the threat intel settings.

func (UpdateThreatIntelRequest) Validate added in v2.6.0

func (v UpdateThreatIntelRequest) Validate() error

Validate validates an UpdateAttackGroupConditionExceptionRequest.

type UpdateThreatIntelResponse added in v2.6.0

type UpdateThreatIntelResponse struct {
	ThreatIntel string `json:"threatIntel,omitempty"`
}

UpdateThreatIntelResponse is returned from a call to UpdateThreatIntel.

type UpdateVersionNotesRequest added in v2.2.0

type UpdateVersionNotesRequest struct {
	ConfigID int `json:"-"`
	Version  int `json:"-"`

	Notes string `json:"notes"`
}

UpdateVersionNotesRequest is used to modify the version notes for a configuration version.

func (UpdateVersionNotesRequest) Validate added in v2.2.0

func (v UpdateVersionNotesRequest) Validate() error

Validate validates an UpdateVersionNotesRequest.

type UpdateVersionNotesResponse added in v2.2.0

type UpdateVersionNotesResponse struct {
	Notes string `json:"notes"`
}

UpdateVersionNotesResponse is returned from a call to UpdateVersionNotes.

type UpdateWAFModeRequest

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

UpdateWAFModeRequest is used to modify the setting that determines this mode how rules will be kept up to date.

func (UpdateWAFModeRequest) Validate

func (v UpdateWAFModeRequest) Validate() error

Validate validates an UpdateWAFModeRequest.

type UpdateWAFModeResponse

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

UpdateWAFModeResponse is returned from a call to UpdateWAFMode.

type UpdateWAFProtectionRequest

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

UpdateWAFProtectionRequest is used to modify the WAF protection setting.

func (UpdateWAFProtectionRequest) Validate

func (v UpdateWAFProtectionRequest) Validate() error

Validate validates an UpdateWAFProtectionRequest.

type UpdateWAFProtectionResponse

type UpdateWAFProtectionResponse ProtectionsResponse

UpdateWAFProtectionResponse is returned from a call to UpdateWAFProtection.

type UpdateWAPBypassNetworkListsRequest added in v2.12.0

type UpdateWAPBypassNetworkListsRequest struct {
	ConfigID     int      `json:"-"`
	Version      int      `json:"-"`
	PolicyID     string   `json:"policyId"`
	NetworkLists []string `json:"networkLists"`
}

UpdateWAPBypassNetworkListsRequest is used to modify which network lists are used in the bypass network lists settings.

func (UpdateWAPBypassNetworkListsRequest) Validate added in v2.12.0

Validate validates an UpdateWAPBypassNetworkListsRequest.

type UpdateWAPBypassNetworkListsResponse added in v2.12.0

type UpdateWAPBypassNetworkListsResponse struct {
	Block       string          `json:"block"`
	GeoControls GeoControlsList `json:"geoControls"`
	IPControls  IPControlsLists `json:"ipControls"`
}

UpdateWAPBypassNetworkListsResponse is returned from a call to UpdateWAPBypassNetworkLists.

type UpdateWAPSelectedHostnamesRequest added in v2.6.0

type UpdateWAPSelectedHostnamesRequest struct {
	ConfigID         int      `json:"configId"`
	Version          int      `json:"version"`
	SecurityPolicyID string   `json:"securityPolicyID"`
	ProtectedHosts   []string `json:"protectedHostnames"`
	EvaluatedHosts   []string `json:"evalHostnames"`
}

UpdateWAPSelectedHostnamesRequest is used to modify the WAP selected hostnames and evaluated hostnames.

func (UpdateWAPSelectedHostnamesRequest) Validate added in v2.6.0

Validate validates an UpdateWAPSelectedHostnamesRequest.

type UpdateWAPSelectedHostnamesResponse added in v2.6.0

type UpdateWAPSelectedHostnamesResponse struct {
	ProtectedHosts []string `json:"protectedHostnames"`
	EvaluatedHosts []string `json:"evalHostnames"`
}

UpdateWAPSelectedHostnamesResponse is returned from a call to UpdateWAPSelectedHostnames.

type WAFMode

The WAFMode interface supports retrieving and modifying the mode setting that determines how rule sets are upgraded.

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

type WAFProtection

type WAFProtection interface {
	// GetWAFProtections retrieves the current WAF protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	// Deprecated: this method will be removed in a future release. Use GetWAFProtection instead.
	GetWAFProtections(ctx context.Context, params GetWAFProtectionsRequest) (*GetWAFProtectionsResponse, error)

	// GetWAFProtection retrieves the current WAF protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#getprotections
	GetWAFProtection(ctx context.Context, params GetWAFProtectionRequest) (*GetWAFProtectionResponse, error)

	// UpdateWAFProtection updates the WAF protection setting for a configuration and policy.
	//
	// https://developer.akamai.com/api/cloud_security/application_security/v1.html#putprotections
	UpdateWAFProtection(ctx context.Context, params UpdateWAFProtectionRequest) (*UpdateWAFProtectionResponse, error)
}

The WAFProtection interface supports retrieving and updating application layer protection for a configuration and policy.

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

type WAPSelectedHostnames added in v2.6.0

type WAPSelectedHostnames interface {
	GetWAPSelectedHostnames(ctx context.Context, params GetWAPSelectedHostnamesRequest) (*GetWAPSelectedHostnamesResponse, error)
	UpdateWAPSelectedHostnames(ctx context.Context, params UpdateWAPSelectedHostnamesRequest) (*UpdateWAPSelectedHostnamesResponse, error)
}

The WAPSelectedHostnames interface supports retrieving and modifying the list of hostnames protected under a configuration and security policy.

type WebApplicationFirewallEvaluation added in v2.3.0

type WebApplicationFirewallEvaluation struct {
	AttackGroupActions []struct {
		Action                 string              `json:"action"`
		Group                  string              `json:"group"`
		Exception              *RuleException      `json:"exception,omitempty"`
		AdvancedExceptionsList *AdvancedExceptions `json:"advancedExceptions,omitempty"`
	} `json:"attackGroupActions,omitempty"`
	EvaluationID      int `json:"evaluationId"`
	EvaluationVersion int `json:"evaluationVersion"`
	RuleActions       []struct {
		Action                 string              `json:"action"`
		ID                     int                 `json:"id"`
		Conditions             *RuleConditions     `json:"conditions,omitempty"`
		Exception              *RuleException      `json:"exception,omitempty"`
		AdvancedExceptionsList *AdvancedExceptions `json:"advancedExceptions,omitempty"`
	} `json:"ruleActions,omitempty"`
	RulesetVersionID int `json:"rulesetVersionId"`
}

WebApplicationFirewallEvaluation is returned as part of GetExportConfigurationResponse.

Jump to

Keyboard shortcuts

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