Akamai API Security WAF rules: Penalty box conditions API
Manage the conditions used with your Web Application Firewall's penalty box.
Manage the conditions used with your Web Application Firewall's penalty box.
openapi: 3.0.0
info:
description: 'Manage your configurations for Kona Site Defender,
Web Application Protector, and Client Reputation.
'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
title: 'Akamai: Application Security Activation history WAF rules: Penalty box conditions API'
version: v1
servers:
- url: https://{hostname}/appsec/v1
tags:
- description: 'Manage the conditions used with your Web Application Firewall''s
penalty box.'
name: 'WAF rules: Penalty box conditions'
paths:
/configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/penalty-box/conditions:
parameters:
- description: A unique identifier for each configuration.
example: '{{configId}}'
in: path
name: configId
required: true
schema:
example: 77653
format: int64
type: integer
x-akamai:
file-path: parameters/config-id-path.yaml
- description: A unique identifier for each version of a configuration.
example: '{{versionNumber}}'
in: path
name: versionNumber
required: true
schema:
example: 25
type: integer
x-akamai:
file-path: parameters/version-number-path.yaml
- description: A unique identifier for a security policy.
example: '{{policyId}}'
in: path
name: policyId
required: true
schema:
example: boBF_19288
type: string
x-akamai:
file-path: parameters/policy-id-path.yaml
x-akamai:
file-path: paths/policy-penalty-box-conditions.yaml
path-info: /configs/{configId}/versions/{versionNumber}/security-policies/{policyId}/penalty-box/conditions
get:
description: Returns the penalty box condition settings for a security policy. _Products:_ All.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/get-policy-penalty-box-conditions
operationId: get-policy-penalty-box-conditions
parameters:
- description: For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).
example: '{{accountSwitchKey}}'
in: query
name: accountSwitchKey
required: false
schema:
example: 1-5C0YLB:1-8BYUX
type: string
responses:
'200':
content:
application/json:
example:
conditionOperator: AND
conditions:
- filenames:
- hh
positiveMatch: true
type: filenameMatch
- clientLists:
- 88331_TESTGEO1
positiveMatch: true
type: clientListMatch
useHeaders: true
schema:
additionalProperties: false
description: Contains penalty box conditions.
properties:
conditionOperator:
description: 'The logic to apply to a set of penalty box conditions: either `OR` to satisfy any condition, or `AND` to satisfy all conditions.'
enum:
- AND
- OR
type: string
conditions:
description: The conditions list for the penalty box.
items:
additionalProperties: false
description: Describes what conditions can be set for an action to occur.
properties:
caseSensitive:
description: Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
clientLists:
description: The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.
items:
type: string
minItems: 0
type: array
extensions:
description: The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.
items:
type: string
type: array
filenames:
description: The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.
items:
type: string
type: array
header:
description: The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.
type: string
hosts:
description: The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.
items:
type: string
type: array
ips:
description: The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.
items:
type: string
type: array
methods:
description: The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.
items:
enum:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- TRACE
- CONNECT
- PATCH
type: string
type: array
name:
description: The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.
type: string
nameCase:
description: Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
paths:
description: The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.
items:
type: string
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).
enum:
- hostMatch
- pathMatch
- filenameMatch
- extensionMatch
- uriQueryMatch
- ipMatch
- requestMethodMatch
- requestHeaderMatch
- clientListMatch
type: string
useHeaders:
description: Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.
type: boolean
value:
description: The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.
type: string
valueCase:
description: Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
valueWildcard:
description: Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
wildcard:
description: Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
required:
- type
- positiveMatch
type: object
x-akamai:
file-path: schemas/condition.yaml
minItems: 0
type: array
required:
- conditionOperator
- conditions
type: object
x-akamai:
file-path: schemas/penalty-box-conditions.yaml
description: Successfully retrieved penalty box conditions for the security policy.
'400':
content:
application/json:
example:
detail: The request could not be understood by the server due to malformed syntax.
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 400
title: Bad Request
type: https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
description: Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.
type: object
instance:
description: The non-referenceable URI that indicates the error instance.
example: https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
type: string
status:
description: The HTTP status code.
example: 404
type: integer
title:
description: The error title.
example: Not Found
type: string
type:
description: The URL for the error type.
example: https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND
type: string
required:
- title
- type
- detail
- instance
- status
type: object
x-akamai:
file-path: schemas/problem-details.yaml
description: '[Invalid](https://techdocs.akamai.com/application-security/reference/400). Client error, such as invalid or malformed input.'
x-akamai:
file-path: errors/400-client-read-errors.yaml
'404':
content:
application/problem+json:
example:
detail: The requested resource is not found
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 404
title: Not Found
type: https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
description: Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.
type: object
instance:
description: The non-referenceable URI that indicates the error instance.
example: https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
type: string
status:
description: The HTTP status code.
example: 404
type: integer
title:
description: The error title.
example: Not Found
type: string
type:
description: The URL for the error type.
example: https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND
type: string
required:
- title
- type
- detail
- instance
- status
type: object
x-akamai:
file-path: schemas/problem-details.yaml
description: '[Not found](https://techdocs.akamai.com/application-security/reference/404). The named security policy doesn''t exist, doesn''t carry application layer controls, or no rule with this ID is available for use in this policy.'
x-akamai:
file-path: errors/404-client-read-errors.yaml
'500':
content:
application/problem+json:
example:
detail: Internal Server Error
instance: 12ab3c45-789d-01ef-2gh3-ijk4l56m78no
status: 500
title: Internal Server Error
type: internal_server_error
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
description: Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.
type: object
instance:
description: The non-referenceable URI that indicates the error instance.
example: https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
type: string
status:
description: The HTTP status code.
example: 404
type: integer
title:
description: The error title.
example: Not Found
type: string
type:
description: The URL for the error type.
example: https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND
type: string
required:
- title
- type
- detail
- instance
- status
type: object
x-akamai:
file-path: schemas/problem-details.yaml
description: '[Internal server error](https://techdocs.akamai.com/application-security/reference/500). Something went wrong on our side. Try again in a few minutes, and contact support if the error persists.'
x-akamai:
file-path: errors/500-server-errors.yaml
summary: Akamai API Security Get Penalty Box Condition
tags:
- 'WAF rules: Penalty box conditions'
put:
description: Modifies the penalty box conditions settings for a security policy.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/put-policy-penalty-box-conditions
operationId: put-policy-penalty-box-conditions
parameters:
- description: For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).
example: '{{accountSwitchKey}}'
in: query
name: accountSwitchKey
required: false
schema:
example: 1-5C0YLB:1-8BYUX
type: string
requestBody:
content:
application/json:
example:
conditionOperator: AND
conditions:
- filenames:
- hh
positiveMatch: true
type: filenameMatch
- clientLists:
- 88331_TESTGEO1
positiveMatch: true
type: clientListMatch
useHeaders: true
schema:
additionalProperties: false
description: Contains penalty box conditions.
properties:
conditionOperator:
description: 'The logic to apply to a set of penalty box conditions: either `OR` to satisfy any condition, or `AND` to satisfy all conditions.'
enum:
- AND
- OR
example: '{{conditionOperator}}'
type: string
conditions:
description: The conditions list for the penalty box.
items:
additionalProperties: false
description: Describes what conditions can be set for an action to occur.
properties:
caseSensitive:
description: Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
clientLists:
description: The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.
items:
type: string
minItems: 0
type: array
extensions:
description: The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.
items:
type: string
type: array
filenames:
description: The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.
items:
type: string
type: array
header:
description: The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.
type: string
hosts:
description: The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.
items:
type: string
type: array
ips:
description: The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.
items:
type: string
type: array
methods:
description: The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.
items:
enum:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- TRACE
- CONNECT
- PATCH
type: string
type: array
name:
description: The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.
type: string
nameCase:
description: Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
paths:
description: The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.
items:
type: string
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).
enum:
- hostMatch
- pathMatch
- filenameMatch
- extensionMatch
- uriQueryMatch
- ipMatch
- requestMethodMatch
- requestHeaderMatch
- clientListMatch
type: string
useHeaders:
description: Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.
type: boolean
value:
description: The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.
type: string
valueCase:
description: Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
valueWildcard:
description: Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
wildcard:
description: Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
required:
- type
- positiveMatch
type: object
x-akamai:
file-path: schemas/condition.yaml
minItems: 0
type: array
required:
- conditionOperator
- conditions
type: object
x-akamai:
file-path: schemas/penalty-box-conditions.yaml
required: true
responses:
'200':
content:
application/json:
example:
conditionOperator: AND
conditions:
- filenames:
- hh
positiveMatch: true
type: filenameMatch
- clientLists:
- 88331_TESTGEO1
positiveMatch: true
type: clientListMatch
useHeaders: true
schema:
additionalProperties: false
description: Contains penalty box conditions.
properties:
conditionOperator:
description: 'The logic to apply to a set of penalty box conditions: either `OR` to satisfy any condition, or `AND` to satisfy all conditions.'
enum:
- AND
- OR
type: string
conditions:
description: The conditions list for the penalty box.
items:
additionalProperties: false
description: Describes what conditions can be set for an action to occur.
properties:
caseSensitive:
description: Whether to consider the case-sensitivity of the provided query parameter `value`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
clientLists:
description: The clientLists that trigger the condition. This only applies to the `clientListMatch` condition `type`.
items:
type: string
minItems: 0
type: array
extensions:
description: The file extensions that trigger the condition. This only applies to the `extensionMatch` condition `type`.
items:
type: string
type: array
filenames:
description: The filenames that trigger the condition. This only applies to the `filenameMatch` condition `type`.
items:
type: string
type: array
header:
description: The HTTP header that triggers the condition. This only applies to the `requestHeaderMatch` condition `type`.
type: string
hosts:
description: The hostnames that trigger the condition. This only applies to the `hostMatch` condition `type`.
items:
type: string
type: array
ips:
description: The IPs that trigger the condition. This only applies to the `ipMatch` condition `type`.
items:
type: string
type: array
methods:
description: The HTTP request methods that trigger the condition. The possible values are `GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT` and `PATCH`. This only applies to the `requestMethodMatch` condition `type`.
items:
enum:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- TRACE
- CONNECT
- PATCH
type: string
type: array
name:
description: The query parameter name that triggers the condition. This only applies to the `uriQueryMatch` condition `type`.
type: string
nameCase:
description: Whether to consider the case-sensitivity of the provided query parameter `name`. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
paths:
description: The paths that trigger the condition. This only applies to the `pathMatch` condition `type`.
items:
type: string
type: array
positiveMatch:
description: Whether the condition should trigger on a match (`true`) or a lack of match (`false`).
type: boolean
type:
description: The condition type to match on. See [Export condition type values](https://techdocs.akamai.com/application-security/reference/etval).
enum:
- hostMatch
- pathMatch
- filenameMatch
- extensionMatch
- uriQueryMatch
- ipMatch
- requestMethodMatch
- requestHeaderMatch
- clientListMatch
type: string
useHeaders:
description: Whether the condition should include `X-Forwarded-For` (XFF) header. This applies to the `ipMatch` and `clientListMatch` condition `type`.
type: boolean
value:
description: The query parameter value if the condition `type` is `uriQueryMatch` and header value if the condition `type` is `requestHeaderMatch`. This only applies when the condition `type` is `uriQueryMatch` or `requestHeaderMatch`.
type: string
valueCase:
description: Whether to consider the case-sensitivity of the provided header `value`. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
valueWildcard:
description: Whether the provided header `value` is a wildcard. This only applies to the `requestHeaderMatch` condition `type`.
type: boolean
wildcard:
description: Whether the provided query parameter `value` is a wildcard. This only applies to the `uriQueryMatch` condition `type`.
type: boolean
required:
- type
- positiveMatch
type: object
x-akamai:
f
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/akamai-api-security/refs/heads/main/openapi/akamai-api-security-waf-rules-penalty-box-conditions-api-openapi.yml