appsec

package
v7.6.1 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2024 License: Apache-2.0 Imports: 15 Imported by: 3

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 (
	// ErrStructValidation is returned when given struct validation failed
	ErrStructValidation = errors.New("struct validation")

	// ErrRequestCreation is returned when creating an HTTP request failed
	ErrRequestCreation = errors.New("HTTP request failure")

	// ErrAPICallFailure is returned when an Appsec OpenAPI call failed
	ErrAPICallFailure = errors.New("API call failure")
)
View Source
var (
	// ErrBadRequest is returned when a required parameter is missing.
	ErrBadRequest = errors.New("missing argument")
)

Functions

This section is empty.

Types

type APIRequestConstraintsexp

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

type ActionType string

ActionType is an action type value.

type Activation

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.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-activation
	GetActivations(ctx context.Context, params GetActivationsRequest) (*GetActivationsResponse, error)

	// GetActivationHistory lists the activation history for a configuration.
	//
	// See: 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.
	//
	CreateActivations(ctx context.Context, params CreateActivationsRequest, acknowledgeWarnings bool) (*CreateActivationsResponse, error)

	// RemoveActivations deactivates a configuration.
	//
	RemoveActivations(ctx context.Context, params RemoveActivationsRequest) (*RemoveActivationsResponse, error)
}

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

type AdvancedExceptions

type AdvancedExceptions AttackGroupAdvancedExceptions

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

type AdvancedOptionsexp

type AdvancedOptionsexp struct {
	Logging              *Loggingexp           `json:"logging"`
	AttackPayloadLogging *AttackPayloadLogging `json:"attackPayloadLogging"`
	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"`
	RequestBody  *RequestBody                       `json:"requestBody,omitempty"`
	PIILearning  *PIILearningexp                    `json:"piiLearning,omitempty"`
}

AdvancedOptionsexp is returned as part of GetExportConfigurationResponse.

type AdvancedSettings

type AdvancedSettings struct {
	BotAnalyticsCookieSettings              map[string]interface{} `json:"botAnalyticsCookieSettings,omitempty"`
	ClientSideSecuritySettings              map[string]interface{} `json:"clientSideSecuritySettings,omitempty"`
	TransactionalEndpointProtectionSettings map[string]interface{} `json:"transactionalEndpointProtectionSettings,omitempty"`
}

AdvancedSettings is returned as part of GetExportConfigurationResponse

type AdvancedSettingsAttackPayloadLogging

type AdvancedSettingsAttackPayloadLogging interface {
	// GetAdvancedSettingsAttackPayloadLogging lists the attack payload 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.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-advanced-settings-attack-payload-logging
	GetAdvancedSettingsAttackPayloadLogging(ctx context.Context, params GetAdvancedSettingsAttackPayloadLoggingRequest) (*GetAdvancedSettingsAttackPayloadLoggingResponse, error)

	// UpdateAdvancedSettingsAttackPayloadLogging enables, disables, or updates the attack payload logging settings for a
	// configuration or policy. If the request specifies a policy, then the settings for that policy will be
	// updated, otherwise the settings for the configuration will be updated.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-advanced-settings-attack-payload-logging
	UpdateAdvancedSettingsAttackPayloadLogging(ctx context.Context, params UpdateAdvancedSettingsAttackPayloadLoggingRequest) (*UpdateAdvancedSettingsAttackPayloadLoggingResponse, error)

	// RemoveAdvancedSettingsAttackPayloadLogging disables attack payload logging for a configuration or policy. If the request
	// specifies a policy, then attack payload logging will be disabled for that policy, otherwise logging will be
	// disabled for the configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-advanced-settings-attack-payload-logging
	RemoveAdvancedSettingsAttackPayloadLogging(ctx context.Context, params RemoveAdvancedSettingsAttackPayloadLoggingRequest) (*RemoveAdvancedSettingsAttackPayloadLoggingResponse, error)
}

The AdvancedSettingsAttackPayloadLogging interface supports retrieving, updating or removing settings related to Attack Payload logging.

type AdvancedSettingsCookies

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

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

type AdvancedSettingsEvasivePathMatch interface {
	// GetAdvancedSettingsEvasivePathMatch retrieves the Evasive Path Match setting.
	//
	// See: 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.
	//
	// See: 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

type AdvancedSettingsLogging interface {
	// GetAdvancedSettingsLogging 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.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policies-logging
	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 be
	// updated, otherwise the settings for the configuration will be updated.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policies-logging
	UpdateAdvancedSettingsLogging(ctx context.Context, params UpdateAdvancedSettingsLoggingRequest) (*UpdateAdvancedSettingsLoggingResponse, error)

	// RemoveAdvancedSettingsLogging disables HTTP header logging for a configuration 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.

type AdvancedSettingsPIILearning

type AdvancedSettingsPIILearning interface {
	// GetAdvancedSettingsPIILearning retrieves the PII Learning setting.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-pii-learning
	GetAdvancedSettingsPIILearning(ctx context.Context, params GetAdvancedSettingsPIILearningRequest) (*AdvancedSettingsPIILearningResponse, error)

	// UpdateAdvancedSettingsPIILearning modifies the PII Learning setting.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-pii-learning
	UpdateAdvancedSettingsPIILearning(ctx context.Context, params UpdateAdvancedSettingsPIILearningRequest) (*AdvancedSettingsPIILearningResponse, error)
}

The AdvancedSettingsPIILearning interface supports retrieving or modifying the PII Learning setting.

type AdvancedSettingsPIILearningResponse

type AdvancedSettingsPIILearningResponse struct {
	EnablePIILearning bool `json:"enablePiiLearning"`
}

AdvancedSettingsPIILearningResponse returns the result of updating the PIILearning setting

type AdvancedSettingsPragma

type AdvancedSettingsPragma interface {
	// GetAdvancedSettingsPragma returns the Pragma header's excluded conditions.
	//
	// See:https://techdocs.akamai.com/application-security/reference/get-policies-pragma-header
	GetAdvancedSettingsPragma(ctx context.Context, params GetAdvancedSettingsPragmaRequest) (*GetAdvancedSettingsPragmaResponse, error)

	// UpdateAdvancedSettingsPragma updates the pragma header excluded conditions.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policies-pragma-header
	UpdateAdvancedSettingsPragma(ctx context.Context, params UpdateAdvancedSettingsPragmaRequest) (*UpdateAdvancedSettingsPragmaResponse, error)
}

The AdvancedSettingsPragma interface supports retrieving or modifying the pragma header excluded conditions for a configuration or policy.

type AdvancedSettingsPrefetch

type AdvancedSettingsPrefetch interface {
	// GetAdvancedSettingsPrefetch gets the Prefetch Request settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-advanced-settings-prefetch
	GetAdvancedSettingsPrefetch(ctx context.Context, params GetAdvancedSettingsPrefetchRequest) (*GetAdvancedSettingsPrefetchResponse, error)

	// UpdateAdvancedSettingsPrefetch updates the Prefetch Request settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-advanced-settings-prefetch
	UpdateAdvancedSettingsPrefetch(ctx context.Context, params UpdateAdvancedSettingsPrefetchRequest) (*UpdateAdvancedSettingsPrefetchResponse, error)
}

The AdvancedSettingsPrefetch interface supports retrieving or modifying the prefetch request settings for a configuration.

type AdvancedSettingsRequestBody

type AdvancedSettingsRequestBody interface {
	// GetAdvancedSettingsRequestBody lists the Request Size Inspection Limit 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.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-advanced-settings-request-body
	GetAdvancedSettingsRequestBody(ctx context.Context, params GetAdvancedSettingsRequestBodyRequest) (*GetAdvancedSettingsRequestBodyResponse, error)

	// UpdateAdvancedSettingsRequestBody updates the Request Size Inspection Limit settings for a
	// configuration or policy. If the request specifies a policy, then the settings for that policy will be
	// updated, otherwise the settings for the configuration will be updated.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-advanced-settings-request-body
	UpdateAdvancedSettingsRequestBody(ctx context.Context, params UpdateAdvancedSettingsRequestBodyRequest) (*UpdateAdvancedSettingsRequestBodyResponse, error)

	// RemoveAdvancedSettingsRequestBody updates the Request Size Inspection Limit settings to default for a
	// configuration or policy. If the request specifies a policy, then the settings for that policy will be
	// updated, otherwise the settings for the configuration will be updated.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-advanced-settings-request-body
	RemoveAdvancedSettingsRequestBody(ctx context.Context, params RemoveAdvancedSettingsRequestBodyRequest) (*RemoveAdvancedSettingsRequestBodyResponse, error)
}

The AdvancedSettingsRequestBody interface supports retrieving, updating or removing settings related to Request Size Inspection Limit.

type AdvancedSettingsStandardHeaders

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

type ApiConstraintsProtection interface {
	// GetAPIConstraintsProtection retrieves the current API constraints protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetAPIConstraintsProtection(ctx context.Context, params GetAPIConstraintsProtectionRequest) (*GetAPIConstraintsProtectionResponse, error)

	// UpdateAPIConstraintsProtection updates the API constraints protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	UpdateAPIConstraintsProtection(ctx context.Context, params UpdateAPIConstraintsProtectionRequest) (*UpdateAPIConstraintsProtectionResponse, error)
}

The ApiConstraintsProtection interface supports retrieving and updating API request constraints protection for a configuration and policy. Deprecated: this interface will be removed in a future release. Use the SecurityPolicy interface instead.

type ApiEndpoint

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

ApiEndpoint describes an API endpoint and its associated action.

type ApiEndpoints

type ApiEndpoints interface {
	// GetApiEndpoints lists the API endpoints associated with a security policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-api-endpoints
	GetApiEndpoints(ctx context.Context, params GetApiEndpointsRequest) (*GetApiEndpointsResponse, error)
}

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

type ApiHostnameCoverage

type ApiHostnameCoverage interface {
	// GetApiHostnameCoverage gets the list of hostnames in the account with their current protections, activation statuses, and other summary information.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-hostname-coverage
	GetApiHostnameCoverage(ctx context.Context, params GetApiHostnameCoverageRequest) (*GetApiHostnameCoverageResponse, error)
}

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

type ApiHostnameCoverageMatchTargets

type ApiHostnameCoverageMatchTargets interface {
	// GetApiHostnameCoverageMatchTargets lists the API and website match targets that protect a hostname.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-coverage-match-targets
	GetApiHostnameCoverageMatchTargets(ctx context.Context, params GetApiHostnameCoverageMatchTargetsRequest) (*GetApiHostnameCoverageMatchTargetsResponse, error)
}

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

type ApiHostnameCoverageOverlapping

type ApiHostnameCoverageOverlapping interface {
	// GetApiHostnameCoverageOverlapping lists the configuration versions that contain a hostname also included in the current configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-hostname-coverage-overlapping
	GetApiHostnameCoverageOverlapping(ctx context.Context, params GetApiHostnameCoverageOverlappingRequest) (*GetApiHostnameCoverageOverlappingResponse, error)
}

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

type ApiRequestConstraints

type ApiRequestConstraints interface {
	// GetApiRequestConstraints returns a list of APIs with their constraints and associated actions.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-api-request-constraints
	GetApiRequestConstraints(ctx context.Context, params GetApiRequestConstraintsRequest) (*GetApiRequestConstraintsResponse, error)

	// UpdateApiRequestConstraints updates what action to take when any API request constraint triggers.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-api-request-constraints
	UpdateApiRequestConstraints(ctx context.Context, params UpdateApiRequestConstraintsRequest) (*UpdateApiRequestConstraintsResponse, error)

	// RemoveApiRequestConstraints removes the API requests constraint.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-api-request-constraints
	RemoveApiRequestConstraints(ctx context.Context, params RemoveApiRequestConstraintsRequest) (*RemoveApiRequestConstraintsResponse, error)
}

The ApiRequestConstraints interface supports retrieving, modifying, or removing the action taken when any API request constraint is triggered, or when a specific API request constraint is triggered.

type AtomicConditionsexp

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 AttackGroup

type AttackGroup interface {
	// GetAttackGroups returns a list of attack groups with their associated actions.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-attack-groups-1
	GetAttackGroups(ctx context.Context, params GetAttackGroupsRequest) (*GetAttackGroupsResponse, error)

	// GetAttackGroup returns the action for the attack group.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-attack-group-1
	GetAttackGroup(ctx context.Context, params GetAttackGroupRequest) (*GetAttackGroupResponse, error)

	// UpdateAttackGroup updates what action to take when an attack group's rule triggers.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-attack-group-1
	UpdateAttackGroup(ctx context.Context, params UpdateAttackGroupRequest) (*UpdateAttackGroupResponse, error)
}

The AttackGroup interface supports retrieving and updating attack groups along with their associated actions, conditions, and exceptions.

type AttackGroupAdvancedCriteria

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

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

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

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

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

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

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

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

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

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 AttackPayloadLogging

type AttackPayloadLogging struct {
	Enabled     bool `json:"enabled"`
	RequestBody struct {
		Type string `json:"type"`
	} `json:"requestBody"`
	ResponseBody struct {
		Type string `json:"type"`
	} `json:"responseBody"`
}

AttackPayloadLogging is returned as part of GetExportConfigurationResponse.

type AttackPayloadLoggingOverrides

type AttackPayloadLoggingOverrides struct {
	Enabled     bool `json:"enabled"`
	RequestBody struct {
		Type string `json:"type"`
	} `json:"requestBody"`
	ResponseBody struct {
		Type string `json:"type"`
	} `json:"responseBody"`
	Override bool `json:"override"`
}

AttackPayloadLoggingOverrides is returned as part of GetExportConfigurationResponse.

type AttackPayloadLoggingRequestBody

type AttackPayloadLoggingRequestBody struct {
	Type AttackPayloadType `json:"type"`
}

AttackPayloadLoggingRequestBody Type field represents whether attack payload is logged or not logged for RequestBody.

type AttackPayloadLoggingResponseBody

type AttackPayloadLoggingResponseBody struct {
	Type AttackPayloadType `json:"type"`
}

AttackPayloadLoggingResponseBody Type field represents whether attack payload is logged or not logged for ResponseBody.

type AttackPayloadType

type AttackPayloadType string

AttackPayloadType is used to create an "enum" of possible types ATTACK_PAYLOAD or NONE

const (
	// AttackPayload AttackPayloadType
	AttackPayload AttackPayloadType = "ATTACK_PAYLOAD"
	// None AttackPayloadType
	None AttackPayloadType = "NONE"
)

type AutoGenerated

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 BotManagement

type BotManagement struct {
	AkamaiBotCategoryActions []map[string]interface{} `json:"akamaiBotCategoryActions,omitempty"`
	BotDetectionActions      []map[string]interface{} `json:"botDetectionActions,omitempty"`
	BotManagementSettings    map[string]interface{}   `json:"botManagementSettings,omitempty"`
	CustomBotCategoryActions []map[string]interface{} `json:"customBotCategoryActions,omitempty"`
	JavascriptInjectionRules map[string]interface{}   `json:"javascriptInjectionRules,omitempty"`
	TransactionalEndpoints   *TransactionalEndpoints  `json:"transactionalEndpoints,omitempty"`
}

BotManagement is returned as part of GetExportConfigurationResponse

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 ClientFunc

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

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

type ClientReputationReputationProfileActions

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

ClientReputationReputationProfileActions is returned as part of GetExportConfigurationResponse.

type ConditionReputationProfile

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

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

type ConditionsValue []string

ConditionsValue is a slice of strings that describe conditions.

func (*ConditionsValue) UnmarshalJSON

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

UnmarshalJSON reads a ConditionsValue struct from its data argument.

type ConfigVersion

type ConfigVersion struct {
	ConfigID int64
	Version  int
}

ConfigVersion is used to specify a security configuration and version.

type Configuration

type Configuration interface {
	// GetConfigurations lists available security configurations.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-configs
	GetConfigurations(ctx context.Context, params GetConfigurationsRequest) (*GetConfigurationsResponse, error)

	// GetConfiguration retrieves the configuration details.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-config
	GetConfiguration(ctx context.Context, params GetConfigurationRequest) (*GetConfigurationResponse, error)

	// CreateConfiguration creates a new WAP or KSD security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-config
	CreateConfiguration(ctx context.Context, params CreateConfigurationRequest) (*CreateConfigurationResponse, error)

	// UpdateConfiguration updates the name of your security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-config
	UpdateConfiguration(ctx context.Context, params UpdateConfigurationRequest) (*UpdateConfigurationResponse, error)

	// RemoveConfiguration deletes the specified security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-config
	RemoveConfiguration(ctx context.Context, params RemoveConfigurationRequest) (*RemoveConfigurationResponse, error)
}

The Configuration interface supports creating, retrieving, updating and deleting security configurations.

type ConfigurationClone

type ConfigurationClone interface {
	// GetConfigurationClone returns basic details about a configuration versions
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-version-number
	GetConfigurationClone(ctx context.Context, params GetConfigurationCloneRequest) (*GetConfigurationCloneResponse, error)

	// CreateConfigurationClone creates a new WAP or KSD security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-config
	CreateConfigurationClone(ctx context.Context, params CreateConfigurationCloneRequest) (*CreateConfigurationCloneResponse, error)
}

The ConfigurationClone interface supports cloning an existing configuration and retrieving a configuration version.

type ConfigurationHostnameCoverage

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 ConfigurationVersion

type ConfigurationVersion interface {
	// GetConfigurationVersions lists available versions for the specified security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-config-versions
	GetConfigurationVersions(ctx context.Context, params GetConfigurationVersionsRequest) (*GetConfigurationVersionsResponse, error)
}

The ConfigurationVersion interface supports retrieving the versions of a configuration.

type ConfigurationVersionClone

type ConfigurationVersionClone interface {
	// GetConfigurationVersionClone returns basic detail about a configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-version-number
	GetConfigurationVersionClone(ctx context.Context, params GetConfigurationVersionCloneRequest) (*GetConfigurationVersionCloneResponse, error)

	// CreateConfigurationVersionClone  creates a new version of the specified security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-config-versions
	CreateConfigurationVersionClone(ctx context.Context, params CreateConfigurationVersionCloneRequest) (*CreateConfigurationVersionCloneResponse, error)

	// RemoveConfigurationVersionClone deletes the specified configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-version-number
	RemoveConfigurationVersionClone(ctx context.Context, params RemoveConfigurationVersionCloneRequest) (*RemoveConfigurationVersionCloneResponse, error)
}

The ConfigurationVersionClone interface supports creating, retrieving, and removing clones of a configuration version.

type ContentType

type ContentType struct {
	Name                     string                    `json:"name"`
	EncodedContentAttributes []EncodedContentAttribute `json:"encodedContentAttributes,omitempty"`
}

ContentType describes a content type and its optional encoded content attributes.

type ContractsGroups

type ContractsGroups interface {
	// GetContractsGroups lists the contracts and groups for your account.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-contracts-groups
	GetContractsGroups(ctx context.Context, params GetContractsGroupsRequest) (*GetContractsGroupsResponse, error)
}

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.

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

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

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

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

Validate validates a CreateConfigurationCloneRequest.

type CreateConfigurationVersionCloneResponse

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

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

func (v CreateCustomDenyRequest) Validate() error

Validate validates a CreateCustomDenyRequest.

type CreateCustomDenyResponse

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

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

CreateMalwarePolicyRequest is used to create a malware policy.

func (CreateMalwarePolicyRequest) Validate

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"`
	BurstWindow           int    `json:"burstWindow"`
	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"`
	Condition              *RatePolicyCondition    `json:"condition,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

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

CreateReputationProfileRequest is used to create a reputation profile.

func (CreateReputationProfileRequest) Validate

Validate validates a CreateReputationProfileRequest.

type CreateReputationProfileResponse

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

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 security policy.

func (CreateSecurityPolicyRequest) Validate

func (v CreateSecurityPolicyRequest) Validate() error

Validate validates a CreateSecurityPolicyRequest.

type CreateSecurityPolicyResponse

type CreateSecurityPolicyResponse struct {
	ConfigID               int               `json:"configId"`
	PolicyID               string            `json:"policyId"`
	PolicyName             string            `json:"policyName"`
	DefaultSettings        bool              `json:"defaultSettings,omitempty"`
	PolicySecurityControls *SecurityControls `json:"policySecurityControls,omitempty"`
	Version                int               `json:"version"`
}

CreateSecurityPolicyResponse is returned from a call to CreateSecurityPolicy.

type CreateSecurityPolicyWithDefaultProtectionsRequest added in v7.1.0

type CreateSecurityPolicyWithDefaultProtectionsRequest struct {
	ConfigVersion
	PolicyName   string `json:"policyName"`
	PolicyPrefix string `json:"policyPrefix"`
}

CreateSecurityPolicyWithDefaultProtectionsRequest is used to create a security policy with a specified set of protections.

func (CreateSecurityPolicyWithDefaultProtectionsRequest) Validate added in v7.1.0

Validate validates a CreateSecurityPolicyWithDefaultProtectionsRequest.

type CustomDeny

type CustomDeny interface {
	// GetCustomDenyList returns custom deny actions for a specific security configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-custom-deny-actions
	GetCustomDenyList(ctx context.Context, params GetCustomDenyListRequest) (*GetCustomDenyListResponse, error)

	// GetCustomDeny returns the specified custom deny action.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-custom-deny-action
	GetCustomDeny(ctx context.Context, params GetCustomDenyRequest) (*GetCustomDenyResponse, error)

	// CreateCustomDeny creates a new custom deny action for a specific configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-custom-deny
	CreateCustomDeny(ctx context.Context, params CreateCustomDenyRequest) (*CreateCustomDenyResponse, error)

	// UpdateCustomDeny updates details for a specific custom deny action.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-custom-deny
	UpdateCustomDeny(ctx context.Context, params UpdateCustomDenyRequest) (*UpdateCustomDenyResponse, error)

	// RemoveCustomDeny deletes a custom deny action.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-custom-deny
	RemoveCustomDeny(ctx context.Context, params RemoveCustomDenyRequest) (*RemoveCustomDenyResponse, error)
}

The CustomDeny interface supports creating, retrievinfg, modifying and removing custom deny actions for a configuration.

type CustomDenyListexp

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 CustomRule

type CustomRule interface {
	// GetCustomRules lists custom rules defined in a security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-configs-custom-rules
	GetCustomRules(ctx context.Context, params GetCustomRulesRequest) (*GetCustomRulesResponse, error)

	// GetCustomRule returns the details of a custom rule.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-config-custom-rule
	GetCustomRule(ctx context.Context, params GetCustomRuleRequest) (*GetCustomRuleResponse, error)

	// CreateCustomRule creates a new custom rule.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-config-custom-rules
	CreateCustomRule(ctx context.Context, params CreateCustomRuleRequest) (*CreateCustomRuleResponse, error)

	// UpdateCustomRule updates an existing custom rule.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-config-custom-rule
	UpdateCustomRule(ctx context.Context, params UpdateCustomRuleRequest) (*UpdateCustomRuleResponse, error)

	// RemoveCustomRule deletes a custom rule as long as it isn't activated.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-config-custom-rule
	RemoveCustomRule(ctx context.Context, params RemoveCustomRuleRequest) (*RemoveCustomRuleResponse, error)
}

The CustomRule interface supports creating, retrievinfg, modifying and removing custom rules for a configuration.

type CustomRuleAction

type CustomRuleAction interface {
	// GetCustomRuleActions returns a list of all configured custom rules for the specified configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-custom-rules
	GetCustomRuleActions(ctx context.Context, params GetCustomRuleActionsRequest) (*GetCustomRuleActionsResponse, error)

	// GetCustomRuleAction returns a specified action of a custom rule.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-custom-rules
	GetCustomRuleAction(ctx context.Context, params GetCustomRuleActionRequest) (*GetCustomRuleActionResponse, error)

	// UpdateCustomRuleAction updates the action of a custom rule.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-custom-rule
	UpdateCustomRuleAction(ctx context.Context, params UpdateCustomRuleActionRequest) (*UpdateCustomRuleActionResponse, error)
}

The CustomRuleAction interface supports retrieving and updating the actions for the custom rules of a configuration, or for a specific custom rule.

type CustomRuleActionsexp

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

CustomRuleActionsexp is returned as part of GetExportConfigurationResponse.

type CustomRuleConditionsName

type CustomRuleConditionsName []string

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

func (*CustomRuleConditionsName) UnmarshalJSON

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

UnmarshalJSON reads a CustomRuleConditionsName from its data argument.

type CustomRuleConditionsValue

type CustomRuleConditionsValue []string

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

func (*CustomRuleConditionsValue) UnmarshalJSON

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

UnmarshalJSON reads a CustomRuleConditionsValue from its data argument.

type CustomRuleEffectivePeriod

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

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

DurationThresholdExp is returned as part of GetExportConfigurationResponse.

type EncodedContentAttribute

type EncodedContentAttribute struct {
	Path     string   `json:"path"`
	Encoding []string `json:"encoding"`
}

EncodedContentAttribute describes a JSON path to a property with encoded content.

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 Eval

type Eval interface {
	// GetEvals returns which modes your rules are currently set to.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-mode-1
	GetEvals(ctx context.Context, params GetEvalsRequest) (*GetEvalsResponse, error)

	// GetEval returns which mode your rules are currently set to.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-mode-1
	GetEval(ctx context.Context, params GetEvalRequest) (*GetEvalResponse, error)

	// UpdateEval updated the rule evaluation mode.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-policy-eval
	UpdateEval(ctx context.Context, params UpdateEvalRequest) (*UpdateEvalResponse, error)

	// RemoveEval removes the rule evaluation mode.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-policy-eval
	RemoveEval(ctx context.Context, params RemoveEvalRequest) (*RemoveEvalResponse, error)
}

The Eval interface supports retrieving and updating the way evaluation rules would respond if they were applied to live traffic.

type EvalGroup

type EvalGroup interface {
	// GetEvalGroups retrieves all attack groups currently under evaluation.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-eval-groups
	GetEvalGroups(ctx context.Context, params GetAttackGroupsRequest) (*GetAttackGroupsResponse, error)

	// GetEvalGroup retrieves a specific attack group currently under evaluation.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-eval-group
	GetEvalGroup(ctx context.Context, params GetAttackGroupRequest) (*GetAttackGroupResponse, error)

	// UpdateEvalGroup supports updating the condition and exception information for an attack group under evaluation.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-eval-group
	UpdateEvalGroup(ctx context.Context, params UpdateAttackGroupRequest) (*UpdateAttackGroupResponse, error)
}

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

type EvalPenaltyBox

type EvalPenaltyBox interface {
	// GetEvalPenaltyBox returns the penalty box settings for a security policy in evaluation mode.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-eval-policy-penalty-box
	GetEvalPenaltyBox(ctx context.Context, params GetPenaltyBoxRequest) (*GetPenaltyBoxResponse, error)

	// UpdateEvalPenaltyBox updates the penalty box settings for a security policy in evaluation mode.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-eval-policy-penalty-box
	UpdateEvalPenaltyBox(ctx context.Context, params UpdatePenaltyBoxRequest) (*UpdatePenaltyBoxResponse, error)
}

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

type EvalRule

type EvalRule interface {
	// GetEvalRules returns the rules available for evaluation and their actions.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-eval-rules
	GetEvalRules(ctx context.Context, params GetEvalRulesRequest) (*GetEvalRulesResponse, error)

	// GetEvalRule returns the action for a specific rule you want to evaluate.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-eval-rule
	GetEvalRule(ctx context.Context, params GetEvalRuleRequest) (*GetEvalRuleResponse, error)

	// UpdateEvalRule updates the action for a specific rule you want to evaluate.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-eval-rule
	UpdateEvalRule(ctx context.Context, params UpdateEvalRuleRequest) (*UpdateEvalRuleResponse, error)
}

The EvalRule interface supports retrieving and modifying the rules available for evaluation and their actions, or the action of a specific rule.

type EvaluatingSecurityPolicy

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

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

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

EvasivePathMatchexp contains the EnablePathMatch setting

type Evidences

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

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 {
	// GetExportConfigurations returns comprehensive details about a security configurations version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-export-config-version
	// Deprecated: this method will be removed in a future release. Use GetExportConfiguration instead.
	GetExportConfigurations(ctx context.Context, params GetExportConfigurationsRequest) (*GetExportConfigurationsResponse, error)

	// GetExportConfiguration returns comprehensive details about a security configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-export-config-version
	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.

type FailoverHostnames

type FailoverHostnames interface {
	// GetFailoverHostnames returns a list of the failover hostnames in a configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-failover-hostnames
	GetFailoverHostnames(ctx context.Context, params GetFailoverHostnamesRequest) (*GetFailoverHostnamesResponse, error)
}

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

type GeoControlsList

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

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

type GetAPIConstraintsProtectionRequest

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

Validate validates a GetAPIConstraintsProtectionRequest.

type GetAPIConstraintsProtectionResponse

type GetAPIConstraintsProtectionResponse ProtectionsResponse

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

type GetActivationHistoryRequest

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

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

func (GetActivationHistoryRequest) Validate

func (v GetActivationHistoryRequest) Validate() error

Validate validates a GetActivationHistoryRequest.

type GetActivationHistoryResponse

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 GetAdvancedSettingsAttackPayloadLoggingRequest

type GetAdvancedSettingsAttackPayloadLoggingRequest struct {
	ConfigID int
	Version  int
	PolicyID string
}

GetAdvancedSettingsAttackPayloadLoggingRequest is used to retrieve the Attack Payload logging settings for a configuration or policy.

func (GetAdvancedSettingsAttackPayloadLoggingRequest) Validate

Validate validates a GetAdvancedSettingsAttackPayloadLoggingRequest.

type GetAdvancedSettingsAttackPayloadLoggingResponse

type GetAdvancedSettingsAttackPayloadLoggingResponse struct {
	Override     *bool                            `json:"override,omitempty"`
	Enabled      bool                             `json:"enabled"`
	RequestBody  AttackPayloadLoggingRequestBody  `json:"requestBody"`
	ResponseBody AttackPayloadLoggingResponseBody `json:"responseBody"`
}

GetAdvancedSettingsAttackPayloadLoggingResponse is returned from a call to GetAdvancedSettingsAttackPayloadLogging.

type GetAdvancedSettingsEvasivePathMatchRequest

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

GetAdvancedSettingsEvasivePathMatchRequest is used to retrieve the EvasivePathMatch setting

func (GetAdvancedSettingsEvasivePathMatchRequest) Validate

Validate validates GetAdvancedSettingssEvasivePathMatchRequest

type GetAdvancedSettingsEvasivePathMatchResponse

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

GetAdvancedSettingsEvasivePathMatchResponse returns the EvasivePathMatch setting

type GetAdvancedSettingsLoggingRequest

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

Validate validates a GetAdvancedSettingsLoggingsRequest.

type GetAdvancedSettingsLoggingResponse

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 GetAdvancedSettingsPIILearningRequest

type GetAdvancedSettingsPIILearningRequest struct {
	ConfigVersion
}

GetAdvancedSettingsPIILearningRequest is used to retrieve the PIILearning setting.

func (GetAdvancedSettingsPIILearningRequest) Validate

Validate validates GetAdvancedSettingssPIILearningRequest

type GetAdvancedSettingsPragmaRequest

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

Validate validates a GetAdvancedSettingsPragmaRequest.

type GetAdvancedSettingsPragmaResponse

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

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

Validate validates a GetAdvancedSettingsPrefetchRequest.

type GetAdvancedSettingsPrefetchResponse

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 GetAdvancedSettingsRequestBodyRequest

type GetAdvancedSettingsRequestBodyRequest struct {
	ConfigID int
	Version  int
	PolicyID string
}

GetAdvancedSettingsRequestBodyRequest is used to retrieve the Request Size Inspection Limit settings for a configuration or policy.

func (GetAdvancedSettingsRequestBodyRequest) Validate

Validate validates a GetAdvancedSettingsRequestBodyRequest.

type GetAdvancedSettingsRequestBodyResponse

type GetAdvancedSettingsRequestBodyResponse struct {
	RequestBodyInspectionLimitInKB RequestBodySizeLimit `json:"requestBodyInspectionLimitInKB"`
}

GetAdvancedSettingsRequestBodyResponse is returned from a call to GetAdvancedSettingsRequestBody.

type GetApiEndpointsRequest

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

func (v GetApiEndpointsRequest) Validate() error

Validate validates a GetApiEndpointsRequest.

type GetApiEndpointsResponse

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

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

Validate validates a GetApiHostnameCoverageMatchTargetsRequest.

type GetApiHostnameCoverageMatchTargetsResponse

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

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

Validate validates a GetApiHostnameCoverageOverlappingRequest.

type GetApiHostnameCoverageOverlappingResponse

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

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

GetApiHostnameCoverageRequest is used to call GetApiHostnameCoverage.

type GetApiHostnameCoverageResponse

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

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

Validate validates a GetApiRequestConstraintsRequest.

type GetApiRequestConstraintsResponse

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

GetApiRequestConstraintsResponse is returned from a call to GetApiRequestConstraints.

type GetAttackGroupRecommendationsRequest

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

Validate validates a GetAttackGroupRecommendationsRequest.

type GetAttackGroupRecommendationsResponse

type GetAttackGroupRecommendationsResponse AttackGroupRecommendation

GetAttackGroupRecommendationsResponse is returned from a call to GetAttackGroupRecommendations.

type GetAttackGroupRequest

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

func (v GetAttackGroupRequest) Validate() error

Validate validates a GetAttackGroupConditionExceptionRequest.

type GetAttackGroupResponse

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

GetAttackGroupResponse is returned from a call to GetAttackGroup.

func (GetAttackGroupResponse) IsEmptyConditionException

func (r GetAttackGroupResponse) IsEmptyConditionException() bool

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

type GetAttackGroupsRequest

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

func (v GetAttackGroupsRequest) Validate() error

Validate validates a GetAttackGroupConditionExceptionsRequest.

type GetAttackGroupsResponse

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 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

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

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

func (GetConfigurationRequest) Validate

func (v GetConfigurationRequest) Validate() error

Validate validates a GetConfigurationRequest.

type GetConfigurationResponse

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

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

Validate validates a GetConfigurationCloneRequest.

type GetConfigurationVersionCloneResponse

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

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

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

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

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

func (v GetCustomDenyListRequest) Validate() error

Validate validates a GetCustomDenysRequest.

type GetCustomDenyListResponse

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

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

func (v GetCustomDenyRequest) Validate() error

Validate validates a GetCustomDenyRequest.

type GetCustomDenyResponse

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 GetEvalRequest

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

func (v GetEvalRequest) Validate() error

Validate validates a GetEvalRequest.

type GetEvalResponse

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

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

func (v GetEvalRuleRequest) Validate() error

Validate validates a GetEvalRuleRequest.

type GetEvalRuleResponse

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

GetEvalRuleResponse is returned from a call to GetEvalRule.

func (*GetEvalRuleResponse) IsEmptyConditionException

func (r *GetEvalRuleResponse) IsEmptyConditionException() bool

IsEmptyConditionException checks whether the ConditionException field is empty.

type GetEvalRulesRequest

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

func (v GetEvalRulesRequest) Validate() error

Validate validates a GetEvalRulesRequest.

type GetEvalRulesResponse

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

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

func (v GetEvalsRequest) Validate() error

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

type GetEvalsResponse

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

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

GetExportConfigurationRequest is used to call GetExportConfiguration.

type GetExportConfigurationResponse

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,omitempty"`
		AllTraffic            bool                         `json:"allTraffic,omitempty"`
		AverageThreshold      int                          `json:"averageThreshold"`
		BurstThreshold        int                          `json:"burstThreshold"`
		BurstWindow           *int                         `json:"burstWindow,omitempty"`
		ClientIdentifier      string                       `json:"clientIdentifier,omitempty"`
		Condition             *RatePolicyCondition         `json:"condition,omitempty"`
		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"`
		AttackPayloadLoggingOverrides *AttackPayloadLoggingOverrides     `json:"attackPayloadLoggingOverrides,omitempty"`
		PragmaHeader                  *GetAdvancedSettingsPragmaResponse `json:"pragmaHeader,omitempty"`
		EvasivePathMatch              *EvasivePathMatchexp               `json:"evasivePathMatch,omitempty"`
		RequestBody                   *RequestBody                       `json:"requestBody,omitempty"`
		BotManagement                 *BotManagement                     `json:"botManagement,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"`
	CustomBotCategories       []map[string]interface{} `json:"customBotCategories,omitempty"`
	CustomDefinedBots         []map[string]interface{} `json:"customDefinedBots,omitempty"`
	CustomBotCategorySequence []string                 `json:"customBotCategorySequence,omitempty"`
	CustomClients             []map[string]interface{} `json:"customClients,omitempty"`
	CustomClientSequence      []string                 `json:"customClientSequence,omitempty"`
	ResponseActions           *ResponseActions         `json:"responseActions,omitempty"`
	AdvancedSettings          *AdvancedSettings        `json:"advancedSettings,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"`
			UkraineGeoControls struct {
				UkraineGeoControl struct {
					Action string `json:"action"`
				}
			} `json:"ukraineGeoControl,omitempty"`
		} `json:"ipGeoFirewall,omitempty"`
		PenaltyBox                    *SecurityPoliciesPenaltyBox        `json:"penaltyBox,omitempty"`
		EvaluationPenaltyBox          *SecurityPoliciesPenaltyBox        `json:"evaluationPenaltyBox,omitempty"`
		SlowPost                      *SlowPostexp                       `json:"slowPost,omitempty"`
		LoggingOverrides              *LoggingOverridesexp               `json:"loggingOverrides,omitempty"`
		AttackPayloadLoggingOverrides *AttackPayloadLoggingOverrides     `json:"attackPayloadLoggingOverrides,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

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

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

type GetFailoverHostnamesResponse

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

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

func (v GetIPGeoProtectionRequest) Validate() error

Validate validates a GetIPGeoProtectionRequest.

type GetIPGeoProtectionResponse

type GetIPGeoProtectionResponse ProtectionsResponse

GetIPGeoProtectionResponse is returned from a call to GetIPGeoProtection.

type GetIPGeoProtectionsRequest

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

func (v GetIPGeoProtectionsRequest) Validate() error

Validate validates a GetIPGeoProtectionsRequest.

type GetIPGeoProtectionsResponse

type GetIPGeoProtectionsResponse ProtectionsResponse

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

type GetIPGeoRequest

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

func (v GetIPGeoRequest) Validate() error

Validate validates a GetIPGeoRequest.

type GetIPGeoResponse

type GetIPGeoResponse IPGeoFirewall

GetIPGeoResponse is returned from a call to GetIPGeo

type GetMalwareContentTypesRequest

type GetMalwareContentTypesRequest struct {
	ConfigID int
	Version  int
}

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

func (GetMalwareContentTypesRequest) Validate

func (v GetMalwareContentTypesRequest) Validate() error

Validate validates a GetMalwareContentTypesRequest.

type GetMalwareContentTypesResponse

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

GetMalwareContentTypesResponse is returned from a call to GetMalwareContentTypes.

type GetMalwarePoliciesRequest

type GetMalwarePoliciesRequest struct {
	ConfigID        int
	ConfigVersion   int
	MalwarePolicyID int
}

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

func (GetMalwarePoliciesRequest) Validate

func (v GetMalwarePoliciesRequest) Validate() error

Validate validates a GetMalwarePolicysRequest.

type GetMalwarePolicyActionsRequest

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

Validate validates a GetMalwarePolicyActionsRequest.

type GetMalwarePolicyActionsResponse

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

GetMalwarePolicyActionsResponse is returned from a call to GetMalwarePolicyActions.

type GetMalwarePolicyRequest

type GetMalwarePolicyRequest struct {
	ConfigID        int
	ConfigVersion   int
	MalwarePolicyID int
}

GetMalwarePolicyRequest is used to retrieve an existing malware policy.

func (GetMalwarePolicyRequest) Validate

func (v GetMalwarePolicyRequest) Validate() error

Validate validates a GetMalwarePolicyRequest.

type GetMalwareProtectionRequest

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

func (v GetMalwareProtectionRequest) Validate() error

Validate validates a GetMalwareProtectionRequest.

type GetMalwareProtectionResponse

type GetMalwareProtectionResponse ProtectionsResponse

GetMalwareProtectionResponse is returned from a call to GetMalwareProtection.

type GetMalwareProtectionsRequest

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

func (v GetMalwareProtectionsRequest) Validate() error

Validate validates a GetMalwareProtectionsRequest.

type GetMalwareProtectionsResponse

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

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

Validate validates a GetNetworkLayerProtectionRequest.

type GetNetworkLayerProtectionResponse

type GetNetworkLayerProtectionResponse ProtectionsResponse

GetNetworkLayerProtectionResponse is returned from a call to GetNetworkLayerProtection.

type GetNetworkLayerProtectionsRequest

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

Validate validates a GetNetworkLayerProtectionsRequest.

type GetNetworkLayerProtectionsResponse

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

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

GetPolicyProtectionsRequest is used to retrieve the policy protection setting.

func (GetPolicyProtectionsRequest) Validate

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 GetRatePoliciesRequest.

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"`
		BurstWindow            int                        `json:"burstWindow,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"`
		Condition              *RatePolicyCondition       `json:"condition,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"`
	BurstWindow            int                        `json:"burstWindow,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"`
	Condition              *RatePolicyCondition       `json:"condition,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

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

func (v GetRateProtectionRequest) Validate() error

Validate validates a GetRateProtectionRequest.

type GetRateProtectionResponse

type GetRateProtectionResponse ProtectionsResponse

GetRateProtectionResponse is returned from a call to GetRateProtection.

type GetRateProtectionsRequest

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

func (v GetRateProtectionsRequest) Validate() error

Validate validates a GetRateProtectionsRequest.

type GetRateProtectionsResponse

type GetRateProtectionsResponse ProtectionsResponse

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

type GetReputationAnalysisRequest

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

func (v GetReputationAnalysisRequest) Validate() error

Validate validates a GetReputationAnalysisRequest.

type GetReputationAnalysisResponse

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

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

Validate validates a GetReputationProfileActionRequest.

type GetReputationProfileActionResponse

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

GetReputationProfileActionResponse is returned from a call to GetReputationProfileAction.

type GetReputationProfileActionsRequest

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

Validate validates a GetReputationProfileActionsRequest.

type GetReputationProfileActionsResponse

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

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

func (v GetReputationProfileRequest) Validate() error

Validate validates a GetReputationProfileRequest.

type GetReputationProfileResponse

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

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

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

func (v GetReputationProfilesRequest) Validate() error

Validate validates a GetReputationProfilesRequest.

type GetReputationProfilesResponse

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

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

Validate validates a GetReputationProtectionRequest.

type GetReputationProtectionResponse

type GetReputationProtectionResponse ProtectionsResponse

GetReputationProtectionResponse is returned from a call to GetReputationProtection.

type GetReputationProtectionsRequest

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

Validate validates a GetReputationProtectionsRequest.

type GetReputationProtectionsResponse

type GetReputationProtectionsResponse ProtectionsResponse

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

type GetRuleRecommendationsRequest

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

func (v GetRuleRecommendationsRequest) Validate() error

Validate validates a GetAttackGroupRecommendationsRequest.

type GetRuleRecommendationsResponse

type GetRuleRecommendationsResponse RuleRecommendation

GetRuleRecommendationsResponse is returned from a call to GetRuleRecommendations.

type GetRuleRequest

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

func (v GetRuleRequest) Validate() error

Validate validates a GetRuleRequest.

type GetRuleResponse

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

GetRuleResponse is returned from a call to GetRule.

func (*GetRuleResponse) IsEmptyConditionException

func (r *GetRuleResponse) IsEmptyConditionException() bool

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

type GetRuleUpgradeRequest

type GetRuleUpgradeRequest struct {
	ConfigID int
	Version  int
	PolicyID string
}

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

func (GetRuleUpgradeRequest) Validate

func (v GetRuleUpgradeRequest) Validate() error

Validate validates a GetRuleUpgradeRequest.

type GetRuleUpgradeResponse

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

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

func (v GetRulesRequest) Validate() error

Validate validates a GetRulesRequest.

type GetRulesResponse

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

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  *SecurityControls `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

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

func (v GetSecurityPolicyRequest) Validate() error

Validate validates a GetSecurityPolicyRequest.

type GetSecurityPolicyResponse

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

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

GetSiemDefinitionsRequest is used to retrieve the available SIEM versions.

type GetSiemDefinitionsResponse

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

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

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

type GetSiemSettingResponse

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

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

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

func (GetSiemSettingsRequest) Validate

func (v GetSiemSettingsRequest) Validate() error

Validate validates a GetSiemSettingsRequest.

type GetSiemSettingsResponse

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

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

func (v GetSlowPostProtectionRequest) Validate() error

Validate validates a GetSlowPostProtectionRequest.

type GetSlowPostProtectionResponse

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

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

func (v GetSlowPostProtectionsRequest) Validate() error

Validate validates a GetSlowPostProtectionsRequest.

type GetSlowPostProtectionsResponse

type GetSlowPostProtectionsResponse ProtectionsResponse

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

type GetThreatIntelRequest

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

GetThreatIntelRequest is used to retrieve the threat intel settings.

func (GetThreatIntelRequest) Validate

func (v GetThreatIntelRequest) Validate() error

Validate validates a GetAttackGroupConditionExceptionRequest.

type GetThreatIntelResponse

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

GetThreatIntelResponse is returned from a call to GetThreatIntel.

type GetTuningRecommendationsRequest

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

Validate validates a GetTuningRecommendationsRequest.

type GetTuningRecommendationsResponse

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

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

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

func (GetVersionNotesRequest) Validate

func (v GetVersionNotesRequest) Validate() error

Validate validates a GetVersionNotesRequest.

type GetVersionNotesResponse

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

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

Validate validates a GetWAPBypassNetworkListsRequest.

type GetWAPBypassNetworkListsResponse

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

GetWAPBypassNetworkListsResponse is returned from a call to GetWAPBypassNetworkLists.

type GetWAPSelectedHostnamesRequest

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

Validate validates a GetWAPSelectedHostnamesRequest.

type GetWAPSelectedHostnamesResponse

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

GetWAPSelectedHostnamesResponse is returned from a call to GetWAPSelectedHostnames.

type GroupData

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

GroupData contains updates to attack groups

type HeaderCookieOrParamValuesattackgroup

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

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

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

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

type IPGeo interface {
	// GetIPGeo lists which network lists are used in the IP/Geo Firewall settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-ip-geo-firewall
	GetIPGeo(ctx context.Context, params GetIPGeoRequest) (*GetIPGeoResponse, error)

	// UpdateIPGeo updates the method and which network lists to use for IP/Geo firewall blocking.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-ip-geo-firewall
	UpdateIPGeo(ctx context.Context, params UpdateIPGeoRequest) (*UpdateIPGeoResponse, error)
}

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.

type IPGeoASNControls added in v7.5.0

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

IPGeoASNControls is used to specify ASN network lists to be blocked.

type IPGeoFirewall

type IPGeoFirewall struct {
	Block              string             `json:"block"`
	GeoControls        *IPGeoGeoControls  `json:"geoControls,omitempty"`
	IPControls         *IPGeoIPControls   `json:"ipControls,omitempty"`
	ASNControls        *IPGeoASNControls  `json:"asnControls,omitempty"`
	UkraineGeoControls *UkraineGeoControl `json:"ukraineGeoControl,omitempty"`
}

IPGeoFirewall is used to describe an IP/Geo firewall.

type IPGeoGeoControls

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

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

type IPGeoIPControls

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

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

type IPGeoNetworkLists

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

type IPGeoProtection interface {
	// GetIPGeoProtections retrieves the current IPGeo protection protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetIPGeoProtections(ctx context.Context, params GetIPGeoProtectionsRequest) (*GetIPGeoProtectionsResponse, error)

	// GetIPGeoProtection retrieves the current IPGeo protection protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetIPGeoProtection(ctx context.Context, params GetIPGeoProtectionRequest) (*GetIPGeoProtectionResponse, error)

	// UpdateIPGeoProtection updates the IPGeo protection protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	UpdateIPGeoProtection(ctx context.Context, params UpdateIPGeoProtectionRequest) (*UpdateIPGeoProtectionResponse, error)
}

The IPGeoProtection interface supports retrieving and updating IPGeo protection for a configuration and policy. Deprecated: this interface will be removed in a future release. Use the SecurityPolicy interface instead.

type IPNetworkListsList

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

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

type LoggingOverridesexp

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

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

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

type MalwarePoliciesResponse struct {
	MalwarePolicies []MalwarePolicyResponse
}

MalwarePoliciesResponse is returned from a call to GetMalwarePolicies.

type MalwarePolicy

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

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

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

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    []ContentType `json:"contentTypes,omitempty"`
	LogFilename     bool          `json:"logFilename,omitempty"`
	AllowListID     string        `json:"allowListId,omitempty"`
	BlockListID     string        `json:"blockListId,omitempty"`
}

MalwarePolicyBody describes a malware policy.

type MalwarePolicyResponse

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    []ContentType `json:"contentTypes,omitempty"`
	LogFilename     bool          `json:"logFilename,omitempty"`
	AllowListID     string        `json:"allowListId,omitempty"`
	BlockListID     string        `json:"blockListId,omitempty"`
}

MalwarePolicyResponse is returned from a call to CreateMalwarePolicy

type MalwareProtection

type MalwareProtection interface {
	// GetMalwareProtection retrieves the current malware protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// 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.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// 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. Deprecated: this interface will be removed in a future release. Use the SecurityPolicy interface instead.

type MatchTarget

type MatchTarget interface {
	// GetMatchTargets returns match targets defined in the specified security configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-match-targets
	GetMatchTargets(ctx context.Context, params GetMatchTargetsRequest) (*GetMatchTargetsResponse, error)

	// GetMatchTarget returns the specified match target.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-match-target
	GetMatchTarget(ctx context.Context, params GetMatchTargetRequest) (*GetMatchTargetResponse, error)

	// CreateMatchTarget creates a new match target in the specified configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-match-targets
	CreateMatchTarget(ctx context.Context, params CreateMatchTargetRequest) (*CreateMatchTargetResponse, error)

	// UpdateMatchTarget updates details about the specified match target.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-match-target
	UpdateMatchTarget(ctx context.Context, params UpdateMatchTargetRequest) (*UpdateMatchTargetResponse, error)

	// RemoveMatchTarget deletes the specified match target.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-match-target
	RemoveMatchTarget(ctx context.Context, params RemoveMatchTargetRequest) (*RemoveMatchTargetResponse, error)
}

The MatchTarget interface supports creating, retrieving, updating and removing match targets.

type MatchTargetItem

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

MatchTargetItem describes a match target and its sequence number.

type MatchTargetSequence

type MatchTargetSequence interface {
	// GetMatchTargetSequence returns match targets defined in the specified security configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-match-targets
	GetMatchTargetSequence(ctx context.Context, params GetMatchTargetSequenceRequest) (*GetMatchTargetSequenceResponse, error)

	// UpdateMatchTargetSequence updates the sequence of Match Targets in a configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-match-targets-sequence
	UpdateMatchTargetSequence(ctx context.Context, params UpdateMatchTargetSequenceRequest) (*UpdateMatchTargetSequenceResponse, error)
}

The MatchTargetSequence interface supports querying and modifying the order of match targets.

type Mock

type Mock struct {
	mock.Mock
}

func (*Mock) CreateActivations

func (m *Mock) CreateActivations(ctx context.Context, req CreateActivationsRequest, _ bool) (*CreateActivationsResponse, error)

func (*Mock) CreateConfiguration

func (m *Mock) CreateConfiguration(ctx context.Context, req CreateConfigurationRequest) (*CreateConfigurationResponse, error)

func (*Mock) CreateCustomDeny

func (m *Mock) CreateCustomDeny(ctx context.Context, req CreateCustomDenyRequest) (*CreateCustomDenyResponse, error)

func (*Mock) CreateCustomRule

func (m *Mock) CreateCustomRule(ctx context.Context, req CreateCustomRuleRequest) (*CreateCustomRuleResponse, error)

func (*Mock) CreateMalwarePolicy

func (m *Mock) CreateMalwarePolicy(ctx context.Context, params CreateMalwarePolicyRequest) (*MalwarePolicyResponse, error)

func (*Mock) CreateMatchTarget

func (m *Mock) CreateMatchTarget(ctx context.Context, req CreateMatchTargetRequest) (*CreateMatchTargetResponse, error)

func (*Mock) CreateRatePolicy

func (m *Mock) CreateRatePolicy(ctx context.Context, req CreateRatePolicyRequest) (*CreateRatePolicyResponse, error)

func (*Mock) CreateSecurityPolicy

func (m *Mock) CreateSecurityPolicy(ctx context.Context, req CreateSecurityPolicyRequest) (*CreateSecurityPolicyResponse, error)

func (*Mock) CreateSecurityPolicyWithDefaultProtections added in v7.1.0

func (m *Mock) CreateSecurityPolicyWithDefaultProtections(ctx context.Context, req CreateSecurityPolicyWithDefaultProtectionsRequest) (*CreateSecurityPolicyResponse, error)

func (*Mock) GetActivationHistory

func (m *Mock) GetActivationHistory(ctx context.Context, req GetActivationHistoryRequest) (*GetActivationHistoryResponse, error)

func (*Mock) GetActivations

func (m *Mock) GetActivations(ctx context.Context, req GetActivationsRequest) (*GetActivationsResponse, error)

func (*Mock) GetApiEndpoints

func (m *Mock) GetApiEndpoints(ctx context.Context, req GetApiEndpointsRequest) (*GetApiEndpointsResponse, error)

func (*Mock) GetAttackGroup

func (m *Mock) GetAttackGroup(ctx context.Context, req GetAttackGroupRequest) (*GetAttackGroupResponse, error)

func (*Mock) GetAttackGroups

func (m *Mock) GetAttackGroups(ctx context.Context, req GetAttackGroupsRequest) (*GetAttackGroupsResponse, error)

func (*Mock) GetConfiguration

func (m *Mock) GetConfiguration(ctx context.Context, req GetConfigurationRequest) (*GetConfigurationResponse, error)

func (*Mock) GetConfigurations

func (m *Mock) GetConfigurations(ctx context.Context, req GetConfigurationsRequest) (*GetConfigurationsResponse, error)

func (*Mock) GetContractsGroups

func (m *Mock) GetContractsGroups(ctx context.Context, req GetContractsGroupsRequest) (*GetContractsGroupsResponse, error)

func (*Mock) GetCustomDeny

func (m *Mock) GetCustomDeny(ctx context.Context, req GetCustomDenyRequest) (*GetCustomDenyResponse, error)

func (*Mock) GetCustomDenyList

func (m *Mock) GetCustomDenyList(ctx context.Context, req GetCustomDenyListRequest) (*GetCustomDenyListResponse, error)

func (*Mock) GetCustomRule

func (m *Mock) GetCustomRule(ctx context.Context, req GetCustomRuleRequest) (*GetCustomRuleResponse, error)

func (*Mock) GetCustomRuleAction

func (m *Mock) GetCustomRuleAction(ctx context.Context, req GetCustomRuleActionRequest) (*GetCustomRuleActionResponse, error)

func (*Mock) GetCustomRuleActions

func (m *Mock) GetCustomRuleActions(ctx context.Context, req GetCustomRuleActionsRequest) (*GetCustomRuleActionsResponse, error)

func (*Mock) GetCustomRules

func (m *Mock) GetCustomRules(ctx context.Context, req GetCustomRulesRequest) (*GetCustomRulesResponse, error)

func (*Mock) GetEval

func (m *Mock) GetEval(ctx context.Context, req GetEvalRequest) (*GetEvalResponse, error)

func (*Mock) GetEvalGroup

func (m *Mock) GetEvalGroup(ctx context.Context, req GetAttackGroupRequest) (*GetAttackGroupResponse, error)

func (*Mock) GetEvalGroups

func (*Mock) GetEvalPenaltyBox

func (m *Mock) GetEvalPenaltyBox(ctx context.Context, params GetPenaltyBoxRequest) (*GetPenaltyBoxResponse, error)

func (*Mock) GetEvalRule

func (m *Mock) GetEvalRule(ctx context.Context, req GetEvalRuleRequest) (*GetEvalRuleResponse, error)

func (*Mock) GetEvalRules

func (m *Mock) GetEvalRules(ctx context.Context, req GetEvalRulesRequest) (*GetEvalRulesResponse, error)

func (*Mock) GetEvals

func (m *Mock) GetEvals(ctx context.Context, req GetEvalsRequest) (*GetEvalsResponse, error)

func (*Mock) GetFailoverHostnames

func (m *Mock) GetFailoverHostnames(ctx context.Context, req GetFailoverHostnamesRequest) (*GetFailoverHostnamesResponse, error)

func (*Mock) GetIPGeo

func (m *Mock) GetIPGeo(ctx context.Context, req GetIPGeoRequest) (*GetIPGeoResponse, error)

func (*Mock) GetIPGeoProtection

func (m *Mock) GetIPGeoProtection(ctx context.Context, req GetIPGeoProtectionRequest) (*GetIPGeoProtectionResponse, error)

func (*Mock) GetIPGeoProtections

func (m *Mock) GetIPGeoProtections(ctx context.Context, req GetIPGeoProtectionsRequest) (*GetIPGeoProtectionsResponse, error)

func (*Mock) GetMalwareContentTypes

func (m *Mock) GetMalwareContentTypes(ctx context.Context, params GetMalwareContentTypesRequest) (*GetMalwareContentTypesResponse, error)

func (*Mock) GetMalwarePolicies

func (m *Mock) GetMalwarePolicies(ctx context.Context, params GetMalwarePoliciesRequest) (*MalwarePoliciesResponse, error)

func (*Mock) GetMalwarePolicy

func (m *Mock) GetMalwarePolicy(ctx context.Context, params GetMalwarePolicyRequest) (*MalwarePolicyResponse, error)

func (*Mock) GetMalwarePolicyActions

func (m *Mock) GetMalwarePolicyActions(ctx context.Context, params GetMalwarePolicyActionsRequest) (*GetMalwarePolicyActionsResponse, error)

func (*Mock) GetMalwareProtection

func (m *Mock) GetMalwareProtection(ctx context.Context, params GetMalwareProtectionRequest) (*GetMalwareProtectionResponse, error)

func (*Mock) GetMalwareProtections

func (m *Mock) GetMalwareProtections(ctx context.Context, params GetMalwareProtectionsRequest) (*GetMalwareProtectionsResponse, error)

func (*Mock) GetMatchTarget

func (m *Mock) GetMatchTarget(ctx context.Context, req GetMatchTargetRequest) (*GetMatchTargetResponse, error)

func (*Mock) GetMatchTargets

func (m *Mock) GetMatchTargets(ctx context.Context, req GetMatchTargetsRequest) (*GetMatchTargetsResponse, error)

func (*Mock) GetPenaltyBox

func (m *Mock) GetPenaltyBox(ctx context.Context, req GetPenaltyBoxRequest) (*GetPenaltyBoxResponse, error)

func (*Mock) GetPenaltyBoxes

func (m *Mock) GetPenaltyBoxes(ctx context.Context, req GetPenaltyBoxesRequest) (*GetPenaltyBoxesResponse, error)

func (*Mock) GetPolicyProtections

func (m *Mock) GetPolicyProtections(ctx context.Context, req GetPolicyProtectionsRequest) (*PolicyProtectionsResponse, error)

func (*Mock) GetRatePolicies

func (m *Mock) GetRatePolicies(ctx context.Context, req GetRatePoliciesRequest) (*GetRatePoliciesResponse, error)

func (*Mock) GetRatePolicy

func (m *Mock) GetRatePolicy(ctx context.Context, req GetRatePolicyRequest) (*GetRatePolicyResponse, error)

func (*Mock) GetRatePolicyAction

func (m *Mock) GetRatePolicyAction(ctx context.Context, req GetRatePolicyActionRequest) (*GetRatePolicyActionResponse, error)

func (*Mock) GetRatePolicyActions

func (m *Mock) GetRatePolicyActions(ctx context.Context, req GetRatePolicyActionsRequest) (*GetRatePolicyActionsResponse, error)

func (*Mock) GetRateProtection

func (m *Mock) GetRateProtection(ctx context.Context, req GetRateProtectionRequest) (*GetRateProtectionResponse, error)

func (*Mock) GetRateProtections

func (m *Mock) GetRateProtections(ctx context.Context, req GetRateProtectionsRequest) (*GetRateProtectionsResponse, error)

func (*Mock) GetReputationProfile

func (m *Mock) GetReputationProfile(ctx context.Context, req GetReputationProfileRequest) (*GetReputationProfileResponse, error)

func (*Mock) GetRule

func (m *Mock) GetRule(ctx context.Context, req GetRuleRequest) (*GetRuleResponse, error)

func (*Mock) GetRuleRecommendations

func (m *Mock) GetRuleRecommendations(ctx context.Context, params GetRuleRecommendationsRequest) (*GetRuleRecommendationsResponse, error)

func (*Mock) GetRuleUpgrade

func (m *Mock) GetRuleUpgrade(ctx context.Context, req GetRuleUpgradeRequest) (*GetRuleUpgradeResponse, error)

func (*Mock) GetRules

func (m *Mock) GetRules(ctx context.Context, req GetRulesRequest) (*GetRulesResponse, error)

func (*Mock) GetSecurityPolicies

func (m *Mock) GetSecurityPolicies(ctx context.Context, req GetSecurityPoliciesRequest) (*GetSecurityPoliciesResponse, error)

func (*Mock) GetSecurityPolicy

func (m *Mock) GetSecurityPolicy(ctx context.Context, req GetSecurityPolicyRequest) (*GetSecurityPolicyResponse, error)

func (*Mock) GetSelectedHostname

func (m *Mock) GetSelectedHostname(ctx context.Context, req GetSelectedHostnameRequest) (*GetSelectedHostnameResponse, error)

func (*Mock) GetSelectedHostnames

func (m *Mock) GetSelectedHostnames(ctx context.Context, req GetSelectedHostnamesRequest) (*GetSelectedHostnamesResponse, error)

func (*Mock) GetSiemDefinitions

func (m *Mock) GetSiemDefinitions(ctx context.Context, req GetSiemDefinitionsRequest) (*GetSiemDefinitionsResponse, error)

func (*Mock) GetSiemSettings

func (m *Mock) GetSiemSettings(ctx context.Context, req GetSiemSettingsRequest) (*GetSiemSettingsResponse, error)

func (*Mock) GetThreatIntel

func (m *Mock) GetThreatIntel(ctx context.Context, req GetThreatIntelRequest) (*GetThreatIntelResponse, error)

func (*Mock) GetVersionNotes

func (m *Mock) GetVersionNotes(ctx context.Context, req GetVersionNotesRequest) (*GetVersionNotesResponse, error)

func (*Mock) GetWAFMode

func (m *Mock) GetWAFMode(ctx context.Context, req GetWAFModeRequest) (*GetWAFModeResponse, error)

func (*Mock) GetWAFModes

func (m *Mock) GetWAFModes(ctx context.Context, req GetWAFModesRequest) (*GetWAFModesResponse, error)

func (*Mock) GetWAFProtection

func (m *Mock) GetWAFProtection(ctx context.Context, req GetWAFProtectionRequest) (*GetWAFProtectionResponse, error)

func (*Mock) GetWAFProtections

func (m *Mock) GetWAFProtections(ctx context.Context, req GetWAFProtectionsRequest) (*GetWAFProtectionsResponse, error)

func (*Mock) RemoveActivations

func (m *Mock) RemoveActivations(ctx context.Context, req RemoveActivationsRequest) (*RemoveActivationsResponse, error)

func (*Mock) RemoveConfiguration

func (m *Mock) RemoveConfiguration(ctx context.Context, req RemoveConfigurationRequest) (*RemoveConfigurationResponse, error)

func (*Mock) RemoveCustomDeny

func (m *Mock) RemoveCustomDeny(ctx context.Context, req RemoveCustomDenyRequest) (*RemoveCustomDenyResponse, error)

func (*Mock) RemoveCustomRule

func (m *Mock) RemoveCustomRule(ctx context.Context, req RemoveCustomRuleRequest) (*RemoveCustomRuleResponse, error)

func (*Mock) RemoveEval

func (m *Mock) RemoveEval(ctx context.Context, req RemoveEvalRequest) (*RemoveEvalResponse, error)

func (*Mock) RemoveMalwarePolicy

func (m *Mock) RemoveMalwarePolicy(ctx context.Context, params RemoveMalwarePolicyRequest) error

func (*Mock) RemoveMatchTarget

func (m *Mock) RemoveMatchTarget(ctx context.Context, req RemoveMatchTargetRequest) (*RemoveMatchTargetResponse, error)

func (*Mock) RemovePolicyProtections

func (m *Mock) RemovePolicyProtections(ctx context.Context, req UpdatePolicyProtectionsRequest) (*PolicyProtectionsResponse, error)

func (*Mock) RemoveRatePolicy

func (m *Mock) RemoveRatePolicy(ctx context.Context, req RemoveRatePolicyRequest) (*RemoveRatePolicyResponse, error)

func (*Mock) RemoveSecurityPolicy

func (m *Mock) RemoveSecurityPolicy(ctx context.Context, req RemoveSecurityPolicyRequest) (*RemoveSecurityPolicyResponse, error)

func (*Mock) RemoveSiemSettings

func (m *Mock) RemoveSiemSettings(ctx context.Context, req RemoveSiemSettingsRequest) (*RemoveSiemSettingsResponse, error)

func (*Mock) UpdateAttackGroup

func (m *Mock) UpdateAttackGroup(ctx context.Context, req UpdateAttackGroupRequest) (*UpdateAttackGroupResponse, error)

func (*Mock) UpdateConfiguration

func (m *Mock) UpdateConfiguration(ctx context.Context, req UpdateConfigurationRequest) (*UpdateConfigurationResponse, error)

func (*Mock) UpdateCustomDeny

func (m *Mock) UpdateCustomDeny(ctx context.Context, req UpdateCustomDenyRequest) (*UpdateCustomDenyResponse, error)

func (*Mock) UpdateCustomRule

func (m *Mock) UpdateCustomRule(ctx context.Context, req UpdateCustomRuleRequest) (*UpdateCustomRuleResponse, error)

func (*Mock) UpdateEval

func (m *Mock) UpdateEval(ctx context.Context, req UpdateEvalRequest) (*UpdateEvalResponse, error)

func (*Mock) UpdateEvalGroup

func (*Mock) UpdateEvalPenaltyBox

func (m *Mock) UpdateEvalPenaltyBox(ctx context.Context, params UpdatePenaltyBoxRequest) (*UpdatePenaltyBoxResponse, error)

func (*Mock) UpdateEvalRule

func (m *Mock) UpdateEvalRule(ctx context.Context, req UpdateEvalRuleRequest) (*UpdateEvalRuleResponse, error)

func (*Mock) UpdateIPGeo

func (m *Mock) UpdateIPGeo(ctx context.Context, req UpdateIPGeoRequest) (*UpdateIPGeoResponse, error)

func (*Mock) UpdateMalwarePolicy

func (m *Mock) UpdateMalwarePolicy(ctx context.Context, params UpdateMalwarePolicyRequest) (*MalwarePolicyResponse, error)

func (*Mock) UpdateMalwareProtection

func (m *Mock) UpdateMalwareProtection(ctx context.Context, params UpdateMalwareProtectionRequest) (*UpdateMalwareProtectionResponse, error)

func (*Mock) UpdateMatchTarget

func (m *Mock) UpdateMatchTarget(ctx context.Context, req UpdateMatchTargetRequest) (*UpdateMatchTargetResponse, error)

func (*Mock) UpdatePenaltyBox

func (m *Mock) UpdatePenaltyBox(ctx context.Context, req UpdatePenaltyBoxRequest) (*UpdatePenaltyBoxResponse, error)

func (*Mock) UpdatePolicyProtections

func (m *Mock) UpdatePolicyProtections(ctx context.Context, req UpdatePolicyProtectionsRequest) (*PolicyProtectionsResponse, error)

func (*Mock) UpdateRatePolicy

func (m *Mock) UpdateRatePolicy(ctx context.Context, req UpdateRatePolicyRequest) (*UpdateRatePolicyResponse, error)

func (*Mock) UpdateRateProtection

func (m *Mock) UpdateRateProtection(ctx context.Context, req UpdateRateProtectionRequest) (*UpdateRateProtectionResponse, error)

func (*Mock) UpdateRule

func (m *Mock) UpdateRule(ctx context.Context, req UpdateRuleRequest) (*UpdateRuleResponse, error)

func (*Mock) UpdateRuleUpgrade

func (m *Mock) UpdateRuleUpgrade(ctx context.Context, req UpdateRuleUpgradeRequest) (*UpdateRuleUpgradeResponse, error)

func (*Mock) UpdateSecurityPolicy

func (m *Mock) UpdateSecurityPolicy(ctx context.Context, req UpdateSecurityPolicyRequest) (*UpdateSecurityPolicyResponse, error)

func (*Mock) UpdateSiemSettings

func (m *Mock) UpdateSiemSettings(ctx context.Context, req UpdateSiemSettingsRequest) (*UpdateSiemSettingsResponse, error)

func (*Mock) UpdateThreatIntel

func (m *Mock) UpdateThreatIntel(ctx context.Context, req UpdateThreatIntelRequest) (*UpdateThreatIntelResponse, error)

func (*Mock) UpdateVersionNotes

func (m *Mock) UpdateVersionNotes(ctx context.Context, req UpdateVersionNotesRequest) (*UpdateVersionNotesResponse, error)

func (*Mock) UpdateWAFMode

func (m *Mock) UpdateWAFMode(ctx context.Context, req UpdateWAFModeRequest) (*UpdateWAFModeResponse, error)

func (*Mock) UpdateWAFProtection

func (m *Mock) UpdateWAFProtection(ctx context.Context, req UpdateWAFProtectionRequest) (*UpdateWAFProtectionResponse, error)

type NetworkLayerProtection

type NetworkLayerProtection interface {
	// GetNetworkLayerProtections retrieves the current network layer protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetNetworkLayerProtections(ctx context.Context, params GetNetworkLayerProtectionsRequest) (*GetNetworkLayerProtectionsResponse, error)

	// GetNetworkLayerProtection retrieves the current network layer protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetNetworkLayerProtection(ctx context.Context, params GetNetworkLayerProtectionRequest) (*GetNetworkLayerProtectionResponse, error)

	// UpdateNetworkLayerProtection updates the network layer protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	UpdateNetworkLayerProtection(ctx context.Context, params UpdateNetworkLayerProtectionRequest) (*UpdateNetworkLayerProtectionResponse, error)

	// RemoveNetworkLayerProtection removes network layer protection for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	RemoveNetworkLayerProtection(ctx context.Context, params RemoveNetworkLayerProtectionRequest) (*RemoveNetworkLayerProtectionResponse, error)
}

The NetworkLayerProtection interface supports retrieving and updating network layer protection for a configuration and policy. Deprecated: this interface will be removed in a future release. Use the SecurityPolicy interface instead.

type NetworkList

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

NetworkList 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 PIILearningexp added in v7.1.0

type PIILearningexp struct {
	EnablePIILearning bool `json:"enabled"`
}

PIILearningexp contains the PIILearning setting

type PenaltyBox

type PenaltyBox interface {
	// GetPenaltyBoxes returns the penalty boxes settings for the security policy you specify.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-penalty-box
	// Deprecated: this method will be removed in a future release. Use GetPenaltyBox instead.
	GetPenaltyBoxes(ctx context.Context, params GetPenaltyBoxesRequest) (*GetPenaltyBoxesResponse, error)

	// GetPenaltyBox returns the penalty box settings for the security policy you specify.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-penalty-box
	GetPenaltyBox(ctx context.Context, params GetPenaltyBoxRequest) (*GetPenaltyBoxResponse, error)

	// UpdatePenaltyBox modifies the penalty box settings for a security policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-penalty-box
	UpdatePenaltyBox(ctx context.Context, params UpdatePenaltyBoxRequest) (*UpdatePenaltyBoxResponse, error)
}

The PenaltyBox interface supports retrieving or modifying the penalty box settings for a specified security policy

type PenaltyBoxexp

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

type PolicyProtections interface {
	// GetPolicyProtections retrieves the current protection settings for a configuration and policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetPolicyProtections(ctx context.Context, params GetPolicyProtectionsRequest) (*PolicyProtectionsResponse, error)

	// UpdatePolicyProtections updates the protection settings for a configuration and policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	UpdatePolicyProtections(ctx context.Context, params UpdatePolicyProtectionsRequest) (*PolicyProtectionsResponse, error)

	// RemovePolicyProtections removes protection settings for a configuration and policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	// 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.

type PolicyProtectionsResponse

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

PolicyProtectionsResponse is returned from GetPolicyProtections, UpdatePolicyProtections, and RemovePolicyProtections.

type ProtectionsResponse

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 similar security policy protection requests.

type RatePoliciesHosts

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

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

RatePoliciesPath is returned as part of GetExportConfigurationResponse.

type RatePoliciesPathValues

type RatePoliciesPathValues []string

RatePoliciesPathValues is returned as part of GetExportConfigurationResponse.

type RatePoliciesQueryParameters

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

type RatePoliciesQueryParametersValues []string

RatePoliciesQueryParametersValues is returned as part of GetExportConfigurationResponse.

type RatePolicy

type RatePolicy interface {
	// GetRatePolicies returns rate policies for a specific security configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-rate-policies
	GetRatePolicies(ctx context.Context, params GetRatePoliciesRequest) (*GetRatePoliciesResponse, error)

	// GetRatePolicy returns the specified rate policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-rate-policy
	GetRatePolicy(ctx context.Context, params GetRatePolicyRequest) (*GetRatePolicyResponse, error)

	// CreateRatePolicy creates a new rate policy for a specific configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-rate-policies
	CreateRatePolicy(ctx context.Context, params CreateRatePolicyRequest) (*CreateRatePolicyResponse, error)

	// UpdateRatePolicy updates details for a specific rate policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-rate-policy
	UpdateRatePolicy(ctx context.Context, params UpdateRatePolicyRequest) (*UpdateRatePolicyResponse, error)

	// RemoveRatePolicy deletes the specified rate policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-rate-policy
	RemoveRatePolicy(ctx context.Context, params RemoveRatePolicyRequest) (*RemoveRatePolicyResponse, error)
}

The RatePolicy interface supports creating, retrieving, updating and removing rate policies.

type RatePolicyAPISelectors

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

type RatePolicyAction interface {
	// GetRatePolicyActions returns a list of all rate policies currently in use with the actions each policy takes when conditions are met.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-rate-policies-actions
	GetRatePolicyActions(ctx context.Context, params GetRatePolicyActionsRequest) (*GetRatePolicyActionsResponse, error)

	// GetRatePolicyAction returns a specified rate policy currently in use with the action.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-rate-policies-actions
	// Deprecated: this method will be removed in a future release. Use GetRatePolicyActions instead.
	GetRatePolicyAction(ctx context.Context, params GetRatePolicyActionRequest) (*GetRatePolicyActionResponse, error)

	// UpdateRatePolicyAction
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-rate-policy-action
	UpdateRatePolicyAction(ctx context.Context, params UpdateRatePolicyActionRequest) (*UpdateRatePolicyActionResponse, error)
}

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

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

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

RatePolicyActionsexp is returned as part of GetExportConfigurationResponse.

type RatePolicyBodyParameters

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 RatePolicyCondition

type RatePolicyCondition struct {
	AtomicConditions []struct {
		Value            *json.RawMessage `json:"value,omitempty"`
		ClassName        string           `json:"className"`
		PositiveMatch    bool             `json:"positiveMatch"`
		Name             []string         `json:"name,omitempty"`
		NameCase         bool             `json:"nameCase,omitempty"`
		NameWildcard     bool             `json:"nameWildcard,omitempty"`
		ValueCase        bool             `json:"valueCase,omitempty"`
		ValueWildcard    bool             `json:"valueWildcard,omitempty"`
		SharedIpHandling string           `json:"sharedIpHandling,omitempty"`
	} `json:"atomicConditions,omitempty"`
}

RatePolicyCondition is used as part of a rate policy description.

type RatePolicyFileExtensions

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

RatePolicyFileExtensions is used as part of a rate policy description.

type RatePolicyMatchOption

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

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

RatePolicyPath is used as part of a rate policy description.

type RatePolicyQueryParameters

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

type RateProtection interface {
	// GetRateProtections retrieves the current rate protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetRateProtections(ctx context.Context, params GetRateProtectionsRequest) (*GetRateProtectionsResponse, error)

	// GetRateProtection retrieves the current rate protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetRateProtection(ctx context.Context, params GetRateProtectionRequest) (*GetRateProtectionResponse, error)

	// UpdateRateProtection updates the rate protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	UpdateRateProtection(ctx context.Context, params UpdateRateProtectionRequest) (*UpdateRateProtectionResponse, error)
}

The RateProtection interface supports retrieving and updating rate protection for a configuration and policy. Deprecated: this interface will be removed in a future release. Use the SecurityPolicy interface instead.

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 RemoveAdvancedSettingsAttackPayloadLoggingRequest

type RemoveAdvancedSettingsAttackPayloadLoggingRequest struct {
	ConfigID     int
	Version      int
	PolicyID     string
	Override     bool                             `json:"override"`
	Enabled      bool                             `json:"enabled"`
	RequestBody  AttackPayloadLoggingRequestBody  `json:"requestBody"`
	ResponseBody AttackPayloadLoggingResponseBody `json:"responseBody"`
}

RemoveAdvancedSettingsAttackPayloadLoggingRequest is used to disable Attack Payload logging for a configuration or policy.

func (RemoveAdvancedSettingsAttackPayloadLoggingRequest) Validate

Validate validates a RemoveAdvancedSettingsAttackPayloadLoggingRequest.

type RemoveAdvancedSettingsAttackPayloadLoggingResponse

type RemoveAdvancedSettingsAttackPayloadLoggingResponse struct {
	Override     *bool                            `json:"override,omitempty"`
	Enabled      bool                             `json:"enabled"`
	RequestBody  AttackPayloadLoggingRequestBody  `json:"requestBody"`
	ResponseBody AttackPayloadLoggingResponseBody `json:"responseBody"`
}

RemoveAdvancedSettingsAttackPayloadLoggingResponse is returned from a call to RemoveAdvancedSettingsAttackPayloadLogging.

type RemoveAdvancedSettingsEvasivePathMatchRequest

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

Validate validates UpdateAdvancedSettingsEvasivePathMatchRequest

type RemoveAdvancedSettingsEvasivePathMatchResponse

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

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

Validate validates a RemoveAdvancedSettingsLoggingRequest.

type RemoveAdvancedSettingsLoggingResponse

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

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

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

RemoveAdvancedSettingsPrefetchResponse is returned from a call to RemoveAdvancedSettingsPrefetch.

type RemoveAdvancedSettingsRequestBodyRequest

type RemoveAdvancedSettingsRequestBodyRequest struct {
	ConfigID                       int
	Version                        int
	PolicyID                       string
	RequestBodyInspectionLimitInKB RequestBodySizeLimit `json:"requestBodyInspectionLimitInKB"`
}

RemoveAdvancedSettingsRequestBodyRequest is used to reset the Request body settings for a configuration or policy.

func (RemoveAdvancedSettingsRequestBodyRequest) Validate

Validate validates an RemoveAdvancedSettingsRequestBodyRequest.

type RemoveAdvancedSettingsRequestBodyResponse

type RemoveAdvancedSettingsRequestBodyResponse struct {
	RequestBodyInspectionLimitInKB RequestBodySizeLimit `json:"requestBodyInspectionLimitInKB"`
}

RemoveAdvancedSettingsRequestBodyResponse is returned from a call to RemoveAdvancedSettingsRequestBody.

type RemoveApiRequestConstraintsRequest

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

Validate validates a RemoveApiRequestConstraintsRequest.

type RemoveApiRequestConstraintsResponse

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

RemoveApiRequestConstraintsResponse is returned from a call to RemoveApiRequestConstraints.

type RemoveConfigurationRequest

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

RemoveConfigurationRequest is used to remove an existing security configuration.

func (RemoveConfigurationRequest) Validate

func (v RemoveConfigurationRequest) Validate() error

Validate validates a RemoveConfigurationRequest.

type RemoveConfigurationResponse

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

RemoveConfigurationResponse is returned from a call to RemoveConfiguration.

type RemoveConfigurationVersionCloneRequest

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

RemoveConfigurationVersionCloneRequest is used to remove an existing configuration version.

func (RemoveConfigurationVersionCloneRequest) Validate

Validate validates a RemoveConfigurationCloneRequest.

type RemoveConfigurationVersionCloneResponse

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

RemoveConfigurationVersionCloneResponse is returned from a call to RemoveConfigurationVersionClone.

type RemoveCustomDenyRequest

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

func (v RemoveCustomDenyRequest) Validate() error

Validate validates a RemoveCustomDenyRequest.

type RemoveCustomDenyResponse

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 RemoveEvalRequest

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

func (v RemoveEvalRequest) Validate() error

Validate validates a RemoveEvalRequest.

type RemoveEvalResponse

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

type RemoveMalwarePolicyRequest struct {
	ConfigID        int
	ConfigVersion   int
	MalwarePolicyID int
}

RemoveMalwarePolicyRequest is used to remove a malware policy.

func (RemoveMalwarePolicyRequest) Validate

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

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

Validate validates a RemoveNetworkLayerProtectionRequest.

type RemoveNetworkLayerProtectionResponse

type RemoveNetworkLayerProtectionResponse ProtectionsResponse

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

type RemovePolicyProtectionsRequest

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

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"`
	BurstWindow           int    `json:"burstWindow"`
	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"`
	Condition              *RatePolicyCondition    `json:"condition,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

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

Validate validates a RemoveReputationAnalysisRequest.

type RemoveReputationAnalysisResponse

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

RemoveReputationAnalysisResponse is returned from a call to RemoveReputationAnalysis.

type RemoveReputationProfileRequest

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

Validate validates a RemoveReputationProfileRequest.

type RemoveReputationProfileResponse

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

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

Validate validates a RemoveReputationProtectionRequest.

type RemoveReputationProtectionResponse

type RemoveReputationProtectionResponse ProtectionsResponse

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

type RemoveSecurityPolicyRequest

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

func (v RemoveSecurityPolicyRequest) Validate() error

Validate validates a RemoveSecurityPolicyRequest.

type RemoveSecurityPolicyResponse

type RemoveSecurityPolicyResponse struct {
	ConfigID               int               `json:"configId"`
	PolicyID               string            `json:"policyId"`
	PolicyName             string            `json:"policyName"`
	PolicySecurityControls *SecurityControls `json:"policySecurityControls,omitempty"`
	Version                int               `json:"version"`
}

RemoveSecurityPolicyResponse is returned from a call to RemoveSecurityPolicy.

type RemoveSiemSettingsRequest

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

func (v RemoveSiemSettingsRequest) Validate() error

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

type RemoveSiemSettingsResponse

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

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

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

type RemoveWAPBypassNetworkListsResponse

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 ReputationAnalysis

type ReputationAnalysis interface {
	// GetReputationAnalysis returns the current reputation analysis settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-reputation-analysis
	GetReputationAnalysis(ctx context.Context, params GetReputationAnalysisRequest) (*GetReputationAnalysisResponse, error)

	// UpdateReputationAnalysis updates the reputation analysis settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-reputation-analysis
	UpdateReputationAnalysis(ctx context.Context, params UpdateReputationAnalysisRequest) (*UpdateReputationAnalysisResponse, error)

	// RemoveReputationAnalysis removes the reputation analysis settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-reputation-analysis
	RemoveReputationAnalysis(ctx context.Context, params RemoveReputationAnalysisRequest) (*RemoveReputationAnalysisResponse, error)
}

The ReputationAnalysis interface supports retrieving and modifying the reputation analysis settings for a configuration and policy.

type ReputationProfile

type ReputationProfile interface {
	// GetReputationProfiles returns reputation profiles for a specific security configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-reputation-profiles
	GetReputationProfiles(ctx context.Context, params GetReputationProfilesRequest) (*GetReputationProfilesResponse, error)

	// GetReputationProfile returns the details for a specific reputation profile.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-reputation-profile
	GetReputationProfile(ctx context.Context, params GetReputationProfileRequest) (*GetReputationProfileResponse, error)

	// CreateReputationProfile creates a new reputation profile for a specific configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-reputation-profiles
	CreateReputationProfile(ctx context.Context, params CreateReputationProfileRequest) (*CreateReputationProfileResponse, error)

	// UpdateReputationProfile updates details for a specific reputation profile.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-reputation-profile
	UpdateReputationProfile(ctx context.Context, params UpdateReputationProfileRequest) (*UpdateReputationProfileResponse, error)

	// RemoveReputationProfile deletes a reputation profile.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-reputation-profile
	RemoveReputationProfile(ctx context.Context, params RemoveReputationProfileRequest) (*RemoveReputationProfileResponse, error)
}

The ReputationProfile interface supports creating, retrieving, modifying and removing reputation profiles for a specific security configuration version.

type ReputationProfileAction

type ReputationProfileAction interface {
	// GetReputationProfileActions returns a list of reputation profiles with their associated actions.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-reputation-profiles-actions
	GetReputationProfileActions(ctx context.Context, params GetReputationProfileActionsRequest) (*GetReputationProfileActionsResponse, error)

	// GetReputationProfileAction returns the action a reputation profile takes when triggered.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-reputation-profile-action
	GetReputationProfileAction(ctx context.Context, params GetReputationProfileActionRequest) (*GetReputationProfileActionResponse, error)

	// UpdateReputationProfileAction updates what action to take when reputation profile's rule triggers.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-reputation-profile-action
	UpdateReputationProfileAction(ctx context.Context, params UpdateReputationProfileActionRequest) (*UpdateReputationProfileActionResponse, error)
}

The ReputationProfileAction interface supports retrieving and modifying the action associated with a specified reputation profile, or with all reputation profiles in a security policy.

type ReputationProfileActionPost

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

ReputationProfileActionPost is currently unused.

type ReputationProfileActionsexp

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

ReputationProfileActionsexp is returned as part of GetExportConfigurationResponse.

type ReputationProfileCondition

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

type ReputationProtection interface {
	// GetReputationProtections retrieves the current reputation protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	// 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.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetReputationProtection(ctx context.Context, params GetReputationProtectionRequest) (*GetReputationProtectionResponse, error)

	// UpdateReputationProtection updates the reputation protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	UpdateReputationProtection(ctx context.Context, params UpdateReputationProtectionRequest) (*UpdateReputationProtectionResponse, error)

	// RemoveReputationProtection removes reputation protection for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	RemoveReputationProtection(ctx context.Context, params RemoveReputationProtectionRequest) (*RemoveReputationProtectionResponse, error)
}

The ReputationProtection interface supports retrieving and updating reputation protection for a configuration and policy. Deprecated: this interface will be removed in a future release. Use the SecurityPolicy interface instead.

type RequestBody

type RequestBody struct {
	RequestBodyInspectionLimitInKB string `json:"requestBodyInspectionLimitInKB"`
}

RequestBody is returned as part of GetExportConfigurationResponse.

type RequestBodySizeLimit

type RequestBodySizeLimit string

RequestBodySizeLimit is used to create an "enum" of possible types default, 8, 16, 32

const (
	// Default RequestBodySize
	Default RequestBodySizeLimit = "default"
	// Limit8KB RequestBodySize
	Limit8KB RequestBodySizeLimit = "8"
	// Limit16KB RequestBodySize
	Limit16KB RequestBodySizeLimit = "16"
	// Limit32KB RequestBodySize
	Limit32KB RequestBodySizeLimit = "32"
)

type ResponseActions

type ResponseActions struct {
	ChallengeActions           []map[string]interface{} `json:"challengeActions,omitempty"`
	ConditionalActions         []map[string]interface{} `json:"conditionalActions,omitempty"`
	CustomDenyActions          []map[string]interface{} `json:"customDenyActions,omitempty"`
	ServeAlternateActions      []map[string]interface{} `json:"serveAlternateActions,omitempty"`
	ChallengeInterceptionRules map[string]interface{}   `json:"challengeInterceptionRules,omitempty"`
	ChallengeInjectionRules    map[string]interface{}   `json:"challengeInjectionRules,omitempty"`
}

ResponseActions is returned as part of GetExportConfigurationResponse

type Rule

type Rule interface {
	// GetRules returns the action taken for each rule in a policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-rules
	GetRules(ctx context.Context, params GetRulesRequest) (*GetRulesResponse, error)

	// GetRule returns the action a rule takes when triggered with conditions and exceptions.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-rule-condition-exception-1
	// See: https://techdocs.akamai.com/application-security/reference/get-rule-1
	GetRule(ctx context.Context, params GetRuleRequest) (*GetRuleResponse, error)

	// UpdateRule updates what action a rule takes when it's triggered.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-rule-1
	UpdateRule(ctx context.Context, params UpdateRuleRequest) (*UpdateRuleResponse, error)

	// UpdateRuleConditionException updates a rule's conditions and exceptions.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-rule-condition-exception-1
	UpdateRuleConditionException(ctx context.Context, params UpdateConditionExceptionRequest) (*UpdateConditionExceptionResponse, error)
}

The Rule interface supports retrieving and modifying the rules in a policy together with their actions, conditions and exceptions, or the action, condition and exceptions of a specific rule.

type RuleConditionException

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

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

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

RuleData contains updates to rules

type RuleException

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

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 RuleUpgrade

type RuleUpgrade interface {
	// GetRuleUpgrade only applies to Kona rule sets. The KRS rule sets are maintained by Akamai's security research team.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-rules-upgrade-details-1
	GetRuleUpgrade(ctx context.Context, params GetRuleUpgradeRequest) (*GetRuleUpgradeResponse, error)

	// UpdateRuleUpgrade upgrades to the most recent version of the KRS rule set.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-rules-1
	UpdateRuleUpgrade(ctx context.Context, params UpdateRuleUpgradeRequest) (*UpdateRuleUpgradeResponse, error)
}

The RuleUpgrade interface supports verifying changes in Kona rule sets, and upgrading to the latest rules.

type RulesetType

type RulesetType string

RulesetType is a ruleset type value.

type RulesetUpdateData

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

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 SecurityControls

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

SecurityControls is returned as part of GetSecurityPoliciesResponse and similar responses.

type SecurityPoliciesPenaltyBox

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

SecurityPoliciesPenaltyBox is returned as part of GetExportConfigurationResponse.

type SecurityPoliciesRatePolicyActions

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

SecurityPoliciesRatePolicyActions is returned as part of GetExportConfigurationResponse.

type SecurityPolicy

type SecurityPolicy interface {
	// GetSecurityPolicies returns a list of security policies available for the specified security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policies
	GetSecurityPolicies(ctx context.Context, params GetSecurityPoliciesRequest) (*GetSecurityPoliciesResponse, error)

	// GetSecurityPolicy returns the specified security policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy
	GetSecurityPolicy(ctx context.Context, params GetSecurityPolicyRequest) (*GetSecurityPolicyResponse, error)

	// CreateSecurityPolicy creates a new copy of an existing security policy or creates a new security policy from scratch
	// when you don't specify a policy to clone in the request.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-policy
	CreateSecurityPolicy(ctx context.Context, params CreateSecurityPolicyRequest) (*CreateSecurityPolicyResponse, error)

	// CreateSecurityPolicyWithDefaultProtections creates a new security policy with a specified set of security protections.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-policy, https://techdocs.akamai.com/application-security/reference/put-policy-protections
	CreateSecurityPolicyWithDefaultProtections(ctx context.Context, params CreateSecurityPolicyWithDefaultProtectionsRequest) (*CreateSecurityPolicyResponse, error)

	// UpdateSecurityPolicy updates the name of a specific security policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy
	UpdateSecurityPolicy(ctx context.Context, params UpdateSecurityPolicyRequest) (*UpdateSecurityPolicyResponse, error)

	// RemoveSecurityPolicy deletes the specified security policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/delete-policy
	RemoveSecurityPolicy(ctx context.Context, params RemoveSecurityPolicyRequest) (*RemoveSecurityPolicyResponse, error)
}

The SecurityPolicy interface supports creating, retrieving, modifying and removing security policies.

type SecurityPolicyClone

type SecurityPolicyClone interface {
	// GetSecurityPolicyClones returns a list of security policies available for the specified security configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policies
	GetSecurityPolicyClones(ctx context.Context, params GetSecurityPolicyClonesRequest) (*GetSecurityPolicyClonesResponse, error)

	// GetSecurityPolicyClone returns the specified security policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy
	GetSecurityPolicyClone(ctx context.Context, params GetSecurityPolicyCloneRequest) (*GetSecurityPolicyCloneResponse, error)

	// CreateSecurityPolicyClone Creates a new copy of an existing security policy or creates a new security policy from scratch
	// when you don't specify a policy to clone in the request.
	//
	// See: https://techdocs.akamai.com/application-security/reference/post-policy
	CreateSecurityPolicyClone(ctx context.Context, params CreateSecurityPolicyCloneRequest) (*CreateSecurityPolicyCloneResponse, error)
}

The SecurityPolicyClone interface supports cloning an existing security policy and retrieving existing security policies.

type SecurityPolicyCloneResponse

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

SecurityPolicyCloneResponse is currently unused.

type SelectableHostnames

type SelectableHostnames interface {
	// GetSelectableHostnames lists the hostnames that a given configuration version has the ability to protect.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-selectable-hostnames
	GetSelectableHostnames(ctx context.Context, params GetSelectableHostnamesRequest) (*GetSelectableHostnamesResponse, error)
}

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.

type SelectedHostname

type SelectedHostname interface {
	// GetSelectedHostnames lists the hostnames that the configuration version selects as candidates of protected hostnames,
	// which you can use in match targets.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-selected-hostnames
	// 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)

	// GetSelectedHostname returns the hostname that the configuration version selects as a candidate of protected hostname,
	// which you can use in match targets.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-selected-hostnames
	// 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)

	// UpdateSelectedHostname updates the selected hostname for a configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-selected-hostnames
	// 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)

	// UpdateSelectedHostnames updates the list of selected hostnames for a configuration version.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-selected-hostnames
	// 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. Deprecated: this interface will be removed in a future release. Use the WAPSelectedHostnames interface instead.

type SiemDefinitions

type SiemDefinitions interface {
	// GetSiemDefinitions gets available SIEM versions.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-siem-definitions
	GetSiemDefinitions(ctx context.Context, params GetSiemDefinitionsRequest) (*GetSiemDefinitionsResponse, error)
}

The SiemDefinitions interface supports retrieving the available SIEM versions.

type SiemSettings

type SiemSettings interface {
	// GetSiemSettings returns SIEM settings for a specific configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-siem
	GetSiemSettings(ctx context.Context, params GetSiemSettingsRequest) (*GetSiemSettingsResponse, error)

	// UpdateSiemSettings updates SIEM settings for a specific configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-siem
	UpdateSiemSettings(ctx context.Context, params UpdateSiemSettingsRequest) (*UpdateSiemSettingsResponse, error)

	// RemoveSiemSettings removes SIEM settings for a specific configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-siem
	// Deprecated: this method will be removed in a future release.
	RemoveSiemSettings(ctx context.Context, params RemoveSiemSettingsRequest) (*RemoveSiemSettingsResponse, error)
}

The SiemSettings interface supports retrieving, modifying and removing the SIEM settings for a configuration.

type Siemexp

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

type SlowPostProtection interface {
	// GetSlowPostProtections retrieves the current SLOW post protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetSlowPostProtections(ctx context.Context, params GetSlowPostProtectionsRequest) (*GetSlowPostProtectionsResponse, error)

	// GetSlowPostProtection retrieves the current SLOW post protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetSlowPostProtection(ctx context.Context, params GetSlowPostProtectionRequest) (*GetSlowPostProtectionResponse, error)

	// UpdateSlowPostProtection updates the SLOW post protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	UpdateSlowPostProtection(ctx context.Context, params UpdateSlowPostProtectionRequest) (*UpdateSlowPostProtectionResponse, error)
}

The SlowPostProtection interface supports retrieving and updating slow post protection for a configuration and policy. Deprecated: this interface will be removed in a future release. Use the SecurityPolicy interface instead.

type SlowPostProtectionSetting

type SlowPostProtectionSetting interface {
	// GetSlowPostProtectionSettings retrieves the current SLOW post protection settings for a configuration and policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-slow-post
	GetSlowPostProtectionSettings(ctx context.Context, params GetSlowPostProtectionSettingsRequest) (*GetSlowPostProtectionSettingsResponse, error)

	// GetSlowPostProtectionSetting retrieves the current SLOW post protection settings for a configuration and policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-slow-post
	// Deprecated: this method will be removed in a future release. Use GetSlowPostProtectionSettings instead.
	GetSlowPostProtectionSetting(ctx context.Context, params GetSlowPostProtectionSettingRequest) (*GetSlowPostProtectionSettingResponse, error)

	// UpdateSlowPostProtectionSetting updates the SLOW post protection settings for a configuration and policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-slow-post
	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.

type SlowPostProtectionSettingDurationThreshold

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

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

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

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

SlowRateThresholdExp is returned as part of GetExportConfigurationResponse.

type SpecificHeaderCookieOrParamNameValuePtr

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

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

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

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

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

type ThreatIntel interface {
	// GetThreatIntel retrieves the current threat intel settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-rules-threat-intel-1
	GetThreatIntel(ctx context.Context, params GetThreatIntelRequest) (*GetThreatIntelResponse, error)

	// UpdateThreatIntel modifies the current threat intel settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-rules-threat-intel-1
	UpdateThreatIntel(ctx context.Context, params UpdateThreatIntelRequest) (*UpdateThreatIntelResponse, error)
}

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

type TransactionalEndpoints

type TransactionalEndpoints struct {
	BotProtection           []map[string]interface{} `json:"botProtection,omitempty"`
	BotProtectionExceptions map[string]interface{}   `json:"botProtectionExceptions,omitempty"`
}

TransactionalEndpoints is returned as port of GetExportConfigurationResponse

type TuningRecommendations

type TuningRecommendations interface {
	// GetTuningRecommendations lists available tuning recommendations for a policy.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-recommendations
	GetTuningRecommendations(ctx context.Context, params GetTuningRecommendationsRequest) (*GetTuningRecommendationsResponse, error)

	// GetAttackGroupRecommendations returns available tuning recommendations for an attack group.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-attack-group
	GetAttackGroupRecommendations(ctx context.Context, params GetAttackGroupRecommendationsRequest) (*GetAttackGroupRecommendationsResponse, error)

	// GetRuleRecommendations returns available tuning recommendations for a rule.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-recommendations-rule
	GetRuleRecommendations(ctx context.Context, params GetRuleRecommendationsRequest) (*GetRuleRecommendationsResponse, error)
}

The TuningRecommendations interface supports retrieving tuning recommendations for a security policy, a specific attack group or a rule

type UkraineGeoControl

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

UkraineGeoControl is used to specify specific action for Ukraine.

type UpdateAPIConstraintsProtectionRequest

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

Validate validates an UpdateAPIConstraintsProtectionRequest.

type UpdateAPIConstraintsProtectionResponse

type UpdateAPIConstraintsProtectionResponse ProtectionsResponse

UpdateAPIConstraintsProtectionResponse is returned from a call to UpdateAPIConstraintsProtection.

type UpdateAdvancedSettingsAttackPayloadLoggingRequest

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

UpdateAdvancedSettingsAttackPayloadLoggingRequest is used to update the Attack Payload logging settings for a configuration or policy.

func (UpdateAdvancedSettingsAttackPayloadLoggingRequest) Validate

Validate validates an UpdateAdvancedSettingsAttackPayloadLoggingRequest.

type UpdateAdvancedSettingsAttackPayloadLoggingResponse

type UpdateAdvancedSettingsAttackPayloadLoggingResponse struct {
	Override     *bool                            `json:"override,omitempty"`
	Enabled      bool                             `json:"enabled"`
	RequestBody  AttackPayloadLoggingRequestBody  `json:"requestBody"`
	ResponseBody AttackPayloadLoggingResponseBody `json:"responseBody"`
}

UpdateAdvancedSettingsAttackPayloadLoggingResponse is returned from a call to UpdateAdvancedSettingsAttackPayloadLogging.

type UpdateAdvancedSettingsEvasivePathMatchRequest

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

Validate validates UpdateAdvancedSettingsEvasivePathMatchRequest

type UpdateAdvancedSettingsEvasivePathMatchResponse

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

UpdateAdvancedSettingsEvasivePathMatchResponse returns the result of updating the EvasivePathMatch setting

type UpdateAdvancedSettingsLoggingRequest

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

Validate validates an UpdateAdvancedSettingsLoggingRequest.

type UpdateAdvancedSettingsLoggingResponse

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 UpdateAdvancedSettingsPIILearningRequest

type UpdateAdvancedSettingsPIILearningRequest struct {
	ConfigVersion
	EnablePIILearning bool `json:"enablePiiLearning"`
}

UpdateAdvancedSettingsPIILearningRequest is used to update the PIILearning setting.

func (UpdateAdvancedSettingsPIILearningRequest) Validate

Validate validates UpdateAdvancedSettingsPIILearningRequest

type UpdateAdvancedSettingsPragmaRequest

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

Validate validates an UpdateAdvancedSettingsPragmaRequest.

type UpdateAdvancedSettingsPragmaResponse

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

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

Validate validates an UpdateAdvancedSettingsPrefetchRequest.

type UpdateAdvancedSettingsPrefetchResponse

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 UpdateAdvancedSettingsRequestBodyRequest

type UpdateAdvancedSettingsRequestBodyRequest struct {
	ConfigID                       int
	Version                        int
	PolicyID                       string
	RequestBodyInspectionLimitInKB RequestBodySizeLimit `json:"requestBodyInspectionLimitInKB"`
}

UpdateAdvancedSettingsRequestBodyRequest is used to update the Request body settings for a configuration or policy.

func (UpdateAdvancedSettingsRequestBodyRequest) Validate

Validate validates an UpdateAdvancedSettingsRequestBodyRequest.

type UpdateAdvancedSettingsRequestBodyResponse

type UpdateAdvancedSettingsRequestBodyResponse struct {
	RequestBodyInspectionLimitInKB RequestBodySizeLimit `json:"requestBodyInspectionLimitInKB"`
}

UpdateAdvancedSettingsRequestBodyResponse is returned from a call to UpdateAdvancedSettingsRequestBody.

type UpdateApiRequestConstraintsRequest

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

Validate validates an UpdateApiRequestConstraintsRequest.

type UpdateApiRequestConstraintsResponse

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

UpdateApiRequestConstraintsResponse is returned from a call to UpdateApiRequestConstraints.

type UpdateAttackGroupRequest

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

func (v UpdateAttackGroupRequest) Validate() error

Validate validates an UpdateAttackGroupConditionExceptionRequest.

type UpdateAttackGroupResponse

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

UpdateAttackGroupResponse is returned from a call to UpdateAttackGroup.

type UpdateConditionExceptionRequest

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

Validate validates an UpdateConditionExceptionRequest.

type UpdateConditionExceptionResponse

type UpdateConditionExceptionResponse RuleConditionException

UpdateConditionExceptionResponse is returned from a call to UpdateConditionException.

type UpdateConfigurationRequest

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

func (v UpdateConfigurationRequest) Validate() error

Validate validates an UpdateConfigurationRequest.

type UpdateConfigurationResponse

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

UpdateConfigurationResponse is returned from a call to UpdateConfiguration.

type UpdateCustomDenyRequest

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

func (v UpdateCustomDenyRequest) Validate() error

Validate validates an UpdateCustomDenyRequest.

type UpdateCustomDenyResponse

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 UpdateEvalRequest

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

func (v UpdateEvalRequest) Validate() error

Validate validates an UpdateEvalRequest.

type UpdateEvalResponse

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

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

func (v UpdateEvalRuleRequest) Validate() error

Validate validates an UpdateEvalRuleRequest.

type UpdateEvalRuleResponse

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

UpdateEvalRuleResponse is returned from a call to UpdateEvalRule.

type UpdateIPGeoProtectionRequest

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

func (v UpdateIPGeoProtectionRequest) Validate() error

Validate validates an UpdateIPGeoProtectionRequest.

type UpdateIPGeoProtectionResponse

type UpdateIPGeoProtectionResponse ProtectionsResponse

UpdateIPGeoProtectionResponse is returned from a call to UpdateIPGeoProtection.

type UpdateIPGeoRequest

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"`
	ASNControls        *IPGeoASNControls  `json:"asnControls,omitempty"`
	UkraineGeoControls *UkraineGeoControl `json:"ukraineGeoControl,omitempty"`
}

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

func (UpdateIPGeoRequest) Validate

func (v UpdateIPGeoRequest) Validate() error

Validate validates an UpdateIPGeoRequest.

type UpdateIPGeoResponse

type UpdateIPGeoResponse IPGeoFirewall

UpdateIPGeoResponse is returned from a call to UpdateIPGeo

type UpdateMalwarePolicyActionRequest

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

Validate validates an UpdateMalwarePolicyActionRequest.

type UpdateMalwarePolicyActionResponse

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

UpdateMalwarePolicyActionResponse is returned from a call to UpdateMalwarePolicy.

type UpdateMalwarePolicyActionsRequest

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

Validate validates an UpdateMalwarePolicyActionsRequest.

type UpdateMalwarePolicyActionsResponse

type UpdateMalwarePolicyActionsResponse GetMalwarePolicyActionsResponse

UpdateMalwarePolicyActionsResponse is returned from a call to UpdateMalwarePolicyActions.

type UpdateMalwarePolicyRequest

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

UpdateMalwarePolicyRequest is used to update an existing malware policy.

func (UpdateMalwarePolicyRequest) Validate

func (v UpdateMalwarePolicyRequest) Validate() error

Validate validates an UpdateMalwarePolicyRequest.

type UpdateMalwareProtectionRequest

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

Validate validates an UpdateMalwareProtectionRequest.

type UpdateMalwareProtectionResponse

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

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

Validate validates an UpdateNetworkLayerProtectionRequest.

type UpdateNetworkLayerProtectionResponse

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

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

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"`
	BurstWindow           int    `json:"burstWindow"`
	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"`
	Condition              *RatePolicyCondition    `json:"condition,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

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

func (v UpdateRateProtectionRequest) Validate() error

Validate validates an UpdateRateProtectionRequest.

type UpdateRateProtectionResponse

type UpdateRateProtectionResponse ProtectionsResponse

UpdateRateProtectionResponse is returned from a call to UpdateRateProtection.

type UpdateReputationAnalysisRequest

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

Validate validates an UpdateReputationAnalysisRequest.

type UpdateReputationAnalysisResponse

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

UpdateReputationAnalysisResponse is returned from a call to UpdateReputationAnalysis.

type UpdateReputationProfileActionRequest

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

Validate validates an UpdateReputationProfileActionRequest.

type UpdateReputationProfileActionResponse

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

UpdateReputationProfileActionResponse is returned from a call to UpdateReputationProfileAction.

type UpdateReputationProfileRequest

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

Validate validates an UpdateReputationProfileRequest.

type UpdateReputationProfileResponse

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

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

Validate validates an UpdateReputationProtectionRequest.

type UpdateReputationProtectionResponse

type UpdateReputationProtectionResponse ProtectionsResponse

UpdateReputationProtectionResponse is returned from a call to UpdateReputationProtection.

type UpdateRuleRequest

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

func (v UpdateRuleRequest) Validate() error

Validate validates an UpdateRuleRequest.

type UpdateRuleResponse

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

UpdateRuleResponse is returned from a call to UpdateRule.

type UpdateRuleUpgradeRequest

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

func (v UpdateRuleUpgradeRequest) Validate() error

Validate validates an UpdateRuleUpgradeRequest.

type UpdateRuleUpgradeResponse

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

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

func (v UpdateSecurityPolicyRequest) Validate() error

Validate validates an UpdateSecurityPolicyRequest.

type UpdateSecurityPolicyResponse

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

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

Validate validates an UpdateSelectedHostnamesRequest.

type UpdateSelectedHostnamesResponse

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

UpdateSelectedHostnamesResponse is returned from a call to UpdateSelectedHostnames.

type UpdateSiemSettingsRequest

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

func (v UpdateSiemSettingsRequest) Validate() error

Validate validates an UpdateSiemSettingsRequest.

type UpdateSiemSettingsResponse

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

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

Validate validates an UpdateSlowPostProtectionRequest.

type UpdateSlowPostProtectionResponse

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

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

func (v UpdateThreatIntelRequest) Validate() error

Validate validates an UpdateAttackGroupConditionExceptionRequest.

type UpdateThreatIntelResponse

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

UpdateThreatIntelResponse is returned from a call to UpdateThreatIntel.

type UpdateVersionNotesRequest

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

func (v UpdateVersionNotesRequest) Validate() error

Validate validates an UpdateVersionNotesRequest.

type UpdateVersionNotesResponse

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

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

Validate validates an UpdateWAPBypassNetworkListsRequest.

type UpdateWAPBypassNetworkListsResponse

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

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

Validate validates an UpdateWAPSelectedHostnamesRequest.

type UpdateWAPSelectedHostnamesResponse

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

UpdateWAPSelectedHostnamesResponse is returned from a call to UpdateWAPSelectedHostnames.

type VersionNotes

type VersionNotes interface {
	// GetVersionNotes gets the most recent version notes for a configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-version-notes
	GetVersionNotes(ctx context.Context, params GetVersionNotesRequest) (*GetVersionNotesResponse, error)

	// UpdateVersionNotes updates the most recent version notes for a configuration.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-version-notes
	UpdateVersionNotes(ctx context.Context, params UpdateVersionNotesRequest) (*UpdateVersionNotesResponse, error)
}

The VersionNotes interface supports retrieving and modifying the version notes for a configuration and version.

type WAFMode

type WAFMode interface {
	// GetWAFModes returns which mode your rules are currently set to.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-mode-1
	// Deprecated: this method will be removed in a future release. Use GetWAFMode instead.
	GetWAFModes(ctx context.Context, params GetWAFModesRequest) (*GetWAFModesResponse, error)

	// GetWAFMode returns which mode your rules are currently set to.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-mode-1
	GetWAFMode(ctx context.Context, params GetWAFModeRequest) (*GetWAFModeResponse, error)

	// UpdateWAFMode updated mode your rules are set to.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-mode-1
	UpdateWAFMode(ctx context.Context, params UpdateWAFModeRequest) (*UpdateWAFModeResponse, error)
}

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

type WAFProtection

type WAFProtection interface {
	// GetWAFProtections retrieves the current WAF protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetWAFProtections(ctx context.Context, params GetWAFProtectionsRequest) (*GetWAFProtectionsResponse, error)

	// GetWAFProtection retrieves the current WAF protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the GetPolicyProtections method of the PolicyProtections interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-policy-protections
	GetWAFProtection(ctx context.Context, params GetWAFProtectionRequest) (*GetWAFProtectionResponse, error)

	// UpdateWAFProtection updates the WAF protection setting for a configuration and policy.
	// Deprecated: this method will be removed in a future release. Use the CreateSecurityPolicyWithDefaultProtections method of the SecurityPolicy interface instead.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-policy-protections
	UpdateWAFProtection(ctx context.Context, params UpdateWAFProtectionRequest) (*UpdateWAFProtectionResponse, error)
}

The WAFProtection interface supports retrieving and updating application layer protection for a configuration and policy. Deprecated: this interface will be removed in a future release. Use the SecurityPolicy interface instead.

type WAPBypassNetworkLists

type WAPBypassNetworkLists interface {
	// GetWAPBypassNetworkLists lists which network lists are used in the bypass network lists settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/get-bypass-network-lists
	GetWAPBypassNetworkLists(ctx context.Context, params GetWAPBypassNetworkListsRequest) (*GetWAPBypassNetworkListsResponse, error)

	// UpdateWAPBypassNetworkLists updates which network lists to use in the bypass network lists settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-bypass-network-lists
	UpdateWAPBypassNetworkLists(ctx context.Context, params UpdateWAPBypassNetworkListsRequest) (*UpdateWAPBypassNetworkListsResponse, error)

	// RemoveWAPBypassNetworkLists removes network lists in the bypass network lists settings.
	//
	// See: https://techdocs.akamai.com/application-security/reference/put-bypass-network-lists
	RemoveWAPBypassNetworkLists(ctx context.Context, params RemoveWAPBypassNetworkListsRequest) (*RemoveWAPBypassNetworkListsResponse, error)
}

The WAPBypassNetworkLists interface supports listing or modifying which network lists are used in the bypass network lists settings.

type WAPSelectedHostnames

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

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.

Source Files

Jump to

Keyboard shortcuts

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