Update a firewall rule
curl --request PATCH \
--url https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Block foobar bot",
"description": "<string>",
"enabled": true,
"action": {
"allow": {},
"block": {
"action_duration": "12h"
}
},
"conditions": [
{}
]
}
'import requests
url = "https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}"
payload = {
"name": "Block foobar bot",
"description": "<string>",
"enabled": True,
"action": {
"allow": {},
"block": { "action_duration": "12h" }
},
"conditions": [{}]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Block foobar bot',
description: '<string>',
enabled: true,
action: {allow: {}, block: {action_duration: '12h'}},
conditions: [{}]
})
};
fetch('https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Block foobar bot',
'description' => '<string>',
'enabled' => true,
'action' => [
'allow' => [
],
'block' => [
'action_duration' => '12h'
]
],
'conditions' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}"
payload := strings.NewReader("{\n \"name\": \"Block foobar bot\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"action\": {\n \"allow\": {},\n \"block\": {\n \"action_duration\": \"12h\"\n }\n },\n \"conditions\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Block foobar bot\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"action\": {\n \"allow\": {},\n \"block\": {\n \"action_duration\": \"12h\"\n }\n },\n \"conditions\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Block foobar bot\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"action\": {\n \"allow\": {},\n \"block\": {\n \"action_duration\": \"12h\"\n }\n },\n \"conditions\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"type": "http-bad-request",
"title": "Bad Request",
"status": 400,
"detail": "Invalid domain name: ''''"
}{
"detail": "Auth token is missing or invalid"
}{
"detail": "Permission denied"
}{
"type": "http-not-found",
"title": "Not Found",
"status": 404,
"detail": "The resource is not found"
}{
"type": "request-validation-failed",
"title": "Request validation error.",
"status": 422,
"detail": "One or more fields have validation errors.",
"errors": [
{
"loc": [
"body",
"name"
],
"detail": "Input should be a valid string"
},
{
"loc": [
"body",
"date"
],
"detail": "Field required"
},
{
"loc": [
"query",
"limit"
],
"detail": "Field required"
}
]
}{
"type": "internal-server-error",
"title": "Internal server error.",
"status": 500,
"detail": "An unexpected condition was encountered which prevented the server from fulfilling the request."
}Firewall Rules
Update a firewall rule
Only properties present in the request will be updated
PATCH
/
waap
/
v1
/
domains
/
{domain_id}
/
firewall-rules
/
{rule_id}
Update a firewall rule
curl --request PATCH \
--url https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Block foobar bot",
"description": "<string>",
"enabled": true,
"action": {
"allow": {},
"block": {
"action_duration": "12h"
}
},
"conditions": [
{}
]
}
'import requests
url = "https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}"
payload = {
"name": "Block foobar bot",
"description": "<string>",
"enabled": True,
"action": {
"allow": {},
"block": { "action_duration": "12h" }
},
"conditions": [{}]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Block foobar bot',
description: '<string>',
enabled: true,
action: {allow: {}, block: {action_duration: '12h'}},
conditions: [{}]
})
};
fetch('https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Block foobar bot',
'description' => '<string>',
'enabled' => true,
'action' => [
'allow' => [
],
'block' => [
'action_duration' => '12h'
]
],
'conditions' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}"
payload := strings.NewReader("{\n \"name\": \"Block foobar bot\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"action\": {\n \"allow\": {},\n \"block\": {\n \"action_duration\": \"12h\"\n }\n },\n \"conditions\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Block foobar bot\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"action\": {\n \"allow\": {},\n \"block\": {\n \"action_duration\": \"12h\"\n }\n },\n \"conditions\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Block foobar bot\",\n \"description\": \"<string>\",\n \"enabled\": true,\n \"action\": {\n \"allow\": {},\n \"block\": {\n \"action_duration\": \"12h\"\n }\n },\n \"conditions\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"type": "http-bad-request",
"title": "Bad Request",
"status": 400,
"detail": "Invalid domain name: ''''"
}{
"detail": "Auth token is missing or invalid"
}{
"detail": "Permission denied"
}{
"type": "http-not-found",
"title": "Not Found",
"status": 404,
"detail": "The resource is not found"
}{
"type": "request-validation-failed",
"title": "Request validation error.",
"status": 422,
"detail": "One or more fields have validation errors.",
"errors": [
{
"loc": [
"body",
"name"
],
"detail": "Input should be a valid string"
},
{
"loc": [
"body",
"date"
],
"detail": "Field required"
},
{
"loc": [
"query",
"limit"
],
"detail": "Field required"
}
]
}{
"type": "internal-server-error",
"title": "Internal server error.",
"status": 500,
"detail": "An unexpected condition was encountered which prevented the server from fulfilling the request."
}Authorizations
API key for authentication. Make sure to include the word apikey, followed by a single space and then your token.
Example: apikey 1234$abcdef
Body
application/json
The name assigned to the rule
Required string length:
1 - 100Pattern:
^[A-Za-z0-9\s.:'";<>?&|\\]+$Example:
"Block foobar bot"
The description assigned to the rule
Maximum string length:
100Whether or not the rule is enabled
The action that the rule takes when triggered
Show child attributes
Show child attributes
The condition required for the WAAP engine to trigger the rule.
Required array length:
1 elementShow child attributes
Show child attributes
Response
Successful Response
Was this page helpful?
⌘I