curl --request PATCH \
--url https://api.gcore.com/waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"conditions": [
{}
],
"enabled": true
}
'import requests
url = "https://api.gcore.com/waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_id}"
payload = {
"name": "<string>",
"description": "<string>",
"conditions": [{}],
"enabled": True
}
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: '<string>', description: '<string>', conditions: [{}], enabled: true})
};
fetch('https://api.gcore.com/waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_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}/default-rule-overrides/{policy_override_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' => '<string>',
'description' => '<string>',
'conditions' => [
[
]
],
'enabled' => true
]),
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}/default-rule-overrides/{policy_override_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"conditions\": [\n {}\n ],\n \"enabled\": true\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}/default-rule-overrides/{policy_override_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"conditions\": [\n {}\n ],\n \"enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_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\": \"<string>\",\n \"description\": \"<string>\",\n \"conditions\": [\n {}\n ],\n \"enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"domain_id": 123,
"name": "<string>",
"target_type": "detector",
"targets": [
{
"id": 123,
"ref": "<string>",
"snapshot": {
"name": "<string>",
"category": "<string>",
"action": "<string>",
"attack_type": "<string>"
},
"detector_id": 123,
"rule_id": 123
}
],
"conditions": [
{
"ip": {
"ip_address": "<string>",
"negation": false
},
"ip_range": {
"lower_bound": "<string>",
"upper_bound": "<string>",
"negation": false
},
"country": {
"country_code": "CN",
"negation": false
},
"organization": {
"organization": "UptimeRobot s.r.o",
"negation": false
},
"header": {
"header": "Origin",
"value": "<string>",
"negation": false,
"match_type": "Contains"
},
"header_exists": {
"header": "Origin",
"negation": false
},
"user_agent": {
"user_agent": "curl/",
"negation": false,
"match_type": "Contains"
},
"url": {
"url": "/wp-admin/",
"negation": false,
"match_type": "Contains"
},
"http_method": {
"http_method": "CONNECT",
"negation": false
},
"ja3": {
"ja3_fingerprints": [
"e7d705a3286e19ea42f587b344ee6865"
],
"negation": false
},
"ja4": {
"ja4_fingerprints": [
"t13d3113h2_e8f1e7e78f70_ce5650b735ce"
],
"negation": false
}
}
],
"enabled": true,
"stale": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>"
}{
"type": "http-bad-request",
"title": "Bad Request",
"status": 400,
"detail": "Invalid domain name: ''''"
}{
"detail": "Auth token is missing or invalid"
}{
"title": "Quota limit exceeded",
"type": "quota-check-limit-exceeded",
"status": 403,
"detail": "You have reached the maximum limit allowed for your current plan. Please upgrade your plan to add more."
}{
"title": "Resource not found",
"type": "quota-check-no-resource",
"status": 404,
"detail": "The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team."
}{
"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"
}
]
}{
"title": "Internal server error.",
"type": "internal-server-error",
"status": 500,
"detail": "Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team."
}Update a policy override
curl --request PATCH \
--url https://api.gcore.com/waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"conditions": [
{}
],
"enabled": true
}
'import requests
url = "https://api.gcore.com/waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_id}"
payload = {
"name": "<string>",
"description": "<string>",
"conditions": [{}],
"enabled": True
}
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: '<string>', description: '<string>', conditions: [{}], enabled: true})
};
fetch('https://api.gcore.com/waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_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}/default-rule-overrides/{policy_override_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' => '<string>',
'description' => '<string>',
'conditions' => [
[
]
],
'enabled' => true
]),
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}/default-rule-overrides/{policy_override_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"conditions\": [\n {}\n ],\n \"enabled\": true\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}/default-rule-overrides/{policy_override_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"conditions\": [\n {}\n ],\n \"enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_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\": \"<string>\",\n \"description\": \"<string>\",\n \"conditions\": [\n {}\n ],\n \"enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"domain_id": 123,
"name": "<string>",
"target_type": "detector",
"targets": [
{
"id": 123,
"ref": "<string>",
"snapshot": {
"name": "<string>",
"category": "<string>",
"action": "<string>",
"attack_type": "<string>"
},
"detector_id": 123,
"rule_id": 123
}
],
"conditions": [
{
"ip": {
"ip_address": "<string>",
"negation": false
},
"ip_range": {
"lower_bound": "<string>",
"upper_bound": "<string>",
"negation": false
},
"country": {
"country_code": "CN",
"negation": false
},
"organization": {
"organization": "UptimeRobot s.r.o",
"negation": false
},
"header": {
"header": "Origin",
"value": "<string>",
"negation": false,
"match_type": "Contains"
},
"header_exists": {
"header": "Origin",
"negation": false
},
"user_agent": {
"user_agent": "curl/",
"negation": false,
"match_type": "Contains"
},
"url": {
"url": "/wp-admin/",
"negation": false,
"match_type": "Contains"
},
"http_method": {
"http_method": "CONNECT",
"negation": false
},
"ja3": {
"ja3_fingerprints": [
"e7d705a3286e19ea42f587b344ee6865"
],
"negation": false
},
"ja4": {
"ja4_fingerprints": [
"t13d3113h2_e8f1e7e78f70_ce5650b735ce"
],
"negation": false
}
}
],
"enabled": true,
"stale": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>"
}{
"type": "http-bad-request",
"title": "Bad Request",
"status": 400,
"detail": "Invalid domain name: ''''"
}{
"detail": "Auth token is missing or invalid"
}{
"title": "Quota limit exceeded",
"type": "quota-check-limit-exceeded",
"status": 403,
"detail": "You have reached the maximum limit allowed for your current plan. Please upgrade your plan to add more."
}{
"title": "Resource not found",
"type": "quota-check-no-resource",
"status": 404,
"detail": "The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team."
}{
"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"
}
]
}{
"title": "Internal server error.",
"type": "internal-server-error",
"status": 500,
"detail": "Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team."
}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
Path Parameters
The domain ID
Policy override ID
Body
The policy override's display name
1 - 100An optional note explaining the override
1000The conditions required for the override to apply. An override may have up to 5 conditions; all must pass for the override to apply. Without conditions the override applies to every request on the owning domain that hits a linked target.
5Show child attributes
Show child attributes
Whether the override is active
Response
Successful Response
The policy override's ID
The domain this override belongs to
The policy override's display name
Whether targets are detectors or rules
detector, rule The detectors or rules this override suppresses
Show child attributes
Show child attributes
The conditions required for the override to apply. Empty means the override applies to every request on the owning domain that hits a linked target.
Show child attributes
Show child attributes
Whether the override is active
Whether a linked target has been deleted, disabled, or otherwise become invalid. A stale override is not published and does not suppress anything until it's edited.
When the override was created
When the override was last updated
An optional note explaining the override
Was this page helpful?