Adding a WAF rule for a tag¶
Note
If the optional attributes are not set, the system adds a default value.
Note
The body does not contain the attributes id, created, and modified. The system sets the values of these attributes after the entry is created.
Sends a POST request to the endpoint /tag/{tagId}/waf-rules.
Description¶
The Add-WAF-Rule request allows the user to add one or more WAF rules for a tag of the organisation.
Requirements¶
Values of the request: Tag-ID {tagId}agId}
Objects: WafRuleVO
Request¶
To add one or more WAF rules for a tag, the Tag-ID {tagId} needs to be added to the path of the request.
For a detailed specification of which information is required to add WAF rules, one or more objects WafRuleVO with the following attributes need to be defined in the body:
| Attributes | Description | Values |
|---|---|---|
ruleType |
The category of the WAF rule. | For domain WAF rules: tag |
name |
The name of the WAF rule. | string |
description |
An individual description for the WAF rule. | string |
logIdentifier |
The short name which is shown in the log to identify the WAF rule. | string |
subDomainName |
The level at which the rule should take effect. | Specify the name of a subdomain or, for general WAF rules, ALL-<Domain-ID> or ALL-<domain name>. |
direction |
The phase of the WAF rule for handling incoming or outgoing requests. | Possible values:
|
sync |
||
actions |
An array of all actions of a WAF rule. | WafActionVO |
conditions |
An array of all conditions of a WAF rule with the object. | WafConditionVO |
sort |
The ascending order for the entry. | Possible values: 0 or upper |
enabled |
The availability of the WAF rule. | Default value : truePossible values:
|
The following attributes are optional:
| Attributes | Description | Values |
|---|---|---|
comment |
An individual comment for the WAF rule. | string |
template |
Indicate whether the WAF rule is part of a template. | |
processNext |
Defines if the conditions of a WAF rule continue after a condition is matched. | Default value: falsePossible values:
|
copiedFrom |
Defines if the WAF rule is a copy of another rule. | |
expireDate |
The date as ISO 8601 until the WAF rule is valid. | Default: NULL |
The following objects must be added for action and condition:
Object WafActionVO¶
| Attributes | Description | Values |
|---|---|---|
name |
The name of the condition in the Myra App. |
|
type |
The internal name of the action. |
|
availablePhases |
The support for different phases. |
|
customKey |
The customize key for the action. Depending on the type of the action, this can be a header name, a value, a path, or an error code. | string |
value |
The value for the action. | string |
WafConditionVO object¶
| Attributes | Description | Values |
|---|---|---|
name |
The internal name of the condition. |
|
key |
The customize key for the condition. Depending on the type of the condition, this can be a header name, a value, a path, or an error code. | string |
value |
The value for the condition. Depending on the type of the condition, this can be a value for the customize key or a comparison parameter for the matching type. | string |
matchingType |
The regex condition. | For all conditions except score:
|
availablePhases |
The support for different phases. |
|
alias |
The name of the condition in the Myra App. |
|
The system responds by returning the object WafRuleVO with the information about the new entry.
Example¶
Example request body:
{
"objectType": "string",
"comment": "string",
"ruleType": "string",
"name": "string",
"description": "string",
"logIdentifier": "string",
"template": true,
"subDomainName": "string",
"vhostId": 0,
"tagId": 0,
"direction": "string",
"uuid": "string",
"processNext": true,
"sync": true,
"actions": [
{
"objectType": "string",
"comment": "string",
"name": "string",
"type": "string",
"availablePhases": 0,
"customKey": "string",
"value": "string",
"forceCustomValues": 0
}
],
"conditions": [
{
"objectType": "string",
"comment": "string",
"category": "string",
"name": "string",
"key": "string",
"value": "string",
"matchingType": "string",
"availablePhases": 0,
"forceCustomValues": true,
"alias": "string"
}
],
"sort": 0,
"copiedFrom": 0,
"expireDate": "string",
"enabled": true
}
Responses¶
The following responses are available:
| STATUS CODE | DESCRIPTION |
|---|---|
| 201 | The request has succeeded and a new object has been created. |
| 400 | The request was unsuccessful. The request was invalid or information is missing. |
| 401 | The request has not succeeded because the user authentication was incorrect. |
| 403 | The request has not succeeded because the user does not have the right permissions. |