openapi: 3.0.0 info: title: 'Akamai: API Endpoint Definition Access tokens WAF rules: Penalty box conditions API' version: '2' license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html description: 'Manage the conditions used with your Web Application Firewall''s penalty box.' servers: - url: https://{hostname}/api-definitions/v2 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. 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. 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. 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: __All products__ Returns the penalty box condition 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/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). 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: 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: 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 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: 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 or contact support if the error persists.' x-akamai: file-path: errors/500-server-errors.yaml summary: Get penalty box condition tags: - 'WAF rules: Penalty box conditions' x-akamai: labels: - All products put: description: __All products__ 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). 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 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: 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 updated 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: 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 '403': content: application/problem+json: example: detail: You do not have the necessary access to perform this operation or the requested resource cannot be modified instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749 status: 403 title: Forbidden type: https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED schema: additionalProperties: true description: Details the errors you can receive. properties: detail: description: The detailed error message. type: string fieldErrors: 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: '[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don''t have permission to write to this resource.' x-akamai: file-path: errors/403-client-write-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: 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 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: 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 or contact support if the error persists.' x-akamai: file-path: errors/500-server-errors.yaml summary: Modify the penalty box conditions tags: - 'WAF rules: Penalty box conditions' x-akamai: labels: - All products externalDocs: description: See documentation for Akamai's API Endpoint Definition API url: https://techdocs.akamai.com/api-definitions/reference x-readme: samples-languages: - curl - python - node