curl --request PATCH \
--url https://api.gcore.com/cdn/resources/{resource_id}/rules/{rule_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"active": true,
"name": "My first rule",
"rule": "/folder/images/*.png",
"ruleType": 0,
"weight": 1,
"originGroup": null,
"options": {
"allowedHttpMethods": {
"enabled": true,
"value": [
"GET",
"POST"
]
},
"brotli_compression": {
"enabled": true,
"value": [
"text/html",
"text/plain"
]
},
"browser_cache_settings": {
"enabled": true,
"value": "3600s"
},
"cache_http_headers": {
"enabled": false,
"value": [
"vary",
"content-length",
"last-modified",
"connection",
"accept-ranges",
"content-type",
"content-encoding",
"etag",
"cache-control",
"expires",
"keep-alive",
"server"
]
},
"cors": {
"enabled": true,
"value": [
"domain.com",
"domain2.com"
],
"always": true
},
"country_acl": {
"enabled": true,
"policy_type": "allow",
"excepted_values": [
"GB",
"DE"
]
},
"disable_cache": {
"enabled": true,
"value": false
},
"disable_proxy_force_ranges": {
"enabled": true,
"value": true
},
"edge_cache_settings": {
"enabled": true,
"value": "43200s",
"custom_values": {
"100": "43200s"
}
},
"fastedge": {
"enabled": true,
"on_request_headers": {
"enabled": true,
"app_id": "1001",
"interrupt_on_error": true
}
},
"fetch_compressed": {
"enabled": true,
"value": false
},
"follow_origin_redirect": {
"enabled": true,
"codes": [
302,
308
]
},
"force_return": {
"enabled": true,
"code": 301,
"body": "http://example.com/redirect_address",
"time_interval": {
"start_time": "09:00",
"end_time": "20:00",
"time_zone": "CET"
}
},
"forward_host_header": {
"enabled": false,
"value": false
},
"gzipOn": {
"enabled": true,
"value": true
},
"hostHeader": {
"enabled": true,
"value": "host.com"
},
"ignore_cookie": {
"enabled": true,
"value": true
},
"ignoreQueryString": {
"enabled": true,
"value": false
},
"image_stack": {
"enabled": true,
"avif_enabled": true,
"webp_enabled": false,
"quality": 80,
"png_lossless": true
},
"ip_address_acl": {
"enabled": true,
"policy_type": "deny",
"excepted_values": [
"192.168.1.100/32"
]
},
"limit_bandwidth": {
"enabled": true,
"limit_type": "static",
"speed": 100,
"buffer": 200
},
"proxy_cache_key": {
"enabled": true,
"value": "$scheme$uri"
},
"proxy_cache_methods_set": {
"enabled": true,
"value": false
},
"proxy_connect_timeout": {
"enabled": true,
"value": "4s"
},
"proxy_read_timeout": {
"enabled": true,
"value": "10s"
},
"query_params_blacklist": {
"enabled": true,
"value": [
"some",
"blacklisted",
"query"
]
},
"query_params_whitelist": {
"enabled": true,
"value": [
"some",
"whitelisted",
"query"
]
},
"query_string_forwarding": {
"enabled": true,
"forward_from_file_types": [
"m3u8",
"mpd"
],
"forward_to_file_types": [
"ts",
"mp4"
],
"forward_only_keys": [
"auth_token",
"session_id"
],
"forward_except_keys": [
"debug_info"
]
},
"redirect_http_to_https": {
"enabled": true,
"value": true
},
"redirect_https_to_http": {
"enabled": false,
"value": true
},
"referrer_acl": {
"enabled": true,
"policy_type": "deny",
"excepted_values": [
"example.com",
"*.example.net"
]
},
"response_headers_hiding_policy": {
"enabled": true,
"mode": "hide",
"excepted": [
"my-header"
]
},
"rewrite": {
"enabled": true,
"body": "/(.*) /additional_path/$1",
"flag": "break"
},
"secure_key": {
"enabled": true,
"key": "secretkey",
"type": 2
},
"slice": {
"enabled": true,
"value": true
},
"sni": {
"enabled": true,
"sni_type": "custom",
"custom_hostname": "custom.example.com"
},
"stale": {
"enabled": true,
"value": [
"http_404",
"http_500"
]
},
"static_response_headers": {
"enabled": true,
"value": [
{
"name": "X-Example",
"value": [
"Value_1"
],
"always": true
},
{
"name": "X-Example-Multiple",
"value": [
"Value_1",
"Value_2",
"Value_3"
],
"always": false
}
]
},
"staticHeaders": {
"enabled": true,
"value": {
"X-Example": "Value_1",
"X-Example-Multiple": [
"Value_2",
"Value_3"
]
}
},
"staticRequestHeaders": {
"enabled": true,
"value": {
"Header-One": "Value 1",
"Header-Two": "Value 2"
}
},
"user_agent_acl": {
"enabled": true,
"policy_type": "allow",
"excepted_values": [
"UserAgent Value",
"~*.*bot.*",
""
]
},
"waap": {
"enabled": true,
"value": true
},
"websockets": {
"enabled": true,
"value": true
}
}
}
'import requests
url = "https://api.gcore.com/cdn/resources/{resource_id}/rules/{rule_id}"
payload = {
"active": True,
"name": "My first rule",
"rule": "/folder/images/*.png",
"ruleType": 0,
"weight": 1,
"originGroup": None,
"options": {
"allowedHttpMethods": {
"enabled": True,
"value": ["GET", "POST"]
},
"brotli_compression": {
"enabled": True,
"value": ["text/html", "text/plain"]
},
"browser_cache_settings": {
"enabled": True,
"value": "3600s"
},
"cache_http_headers": {
"enabled": False,
"value": ["vary", "content-length", "last-modified", "connection", "accept-ranges", "content-type", "content-encoding", "etag", "cache-control", "expires", "keep-alive", "server"]
},
"cors": {
"enabled": True,
"value": ["domain.com", "domain2.com"],
"always": True
},
"country_acl": {
"enabled": True,
"policy_type": "allow",
"excepted_values": ["GB", "DE"]
},
"disable_cache": {
"enabled": True,
"value": False
},
"disable_proxy_force_ranges": {
"enabled": True,
"value": True
},
"edge_cache_settings": {
"enabled": True,
"value": "43200s",
"custom_values": { "100": "43200s" }
},
"fastedge": {
"enabled": True,
"on_request_headers": {
"enabled": True,
"app_id": "1001",
"interrupt_on_error": True
}
},
"fetch_compressed": {
"enabled": True,
"value": False
},
"follow_origin_redirect": {
"enabled": True,
"codes": [302, 308]
},
"force_return": {
"enabled": True,
"code": 301,
"body": "http://example.com/redirect_address",
"time_interval": {
"start_time": "09:00",
"end_time": "20:00",
"time_zone": "CET"
}
},
"forward_host_header": {
"enabled": False,
"value": False
},
"gzipOn": {
"enabled": True,
"value": True
},
"hostHeader": {
"enabled": True,
"value": "host.com"
},
"ignore_cookie": {
"enabled": True,
"value": True
},
"ignoreQueryString": {
"enabled": True,
"value": False
},
"image_stack": {
"enabled": True,
"avif_enabled": True,
"webp_enabled": False,
"quality": 80,
"png_lossless": True
},
"ip_address_acl": {
"enabled": True,
"policy_type": "deny",
"excepted_values": ["192.168.1.100/32"]
},
"limit_bandwidth": {
"enabled": True,
"limit_type": "static",
"speed": 100,
"buffer": 200
},
"proxy_cache_key": {
"enabled": True,
"value": "$scheme$uri"
},
"proxy_cache_methods_set": {
"enabled": True,
"value": False
},
"proxy_connect_timeout": {
"enabled": True,
"value": "4s"
},
"proxy_read_timeout": {
"enabled": True,
"value": "10s"
},
"query_params_blacklist": {
"enabled": True,
"value": ["some", "blacklisted", "query"]
},
"query_params_whitelist": {
"enabled": True,
"value": ["some", "whitelisted", "query"]
},
"query_string_forwarding": {
"enabled": True,
"forward_from_file_types": ["m3u8", "mpd"],
"forward_to_file_types": ["ts", "mp4"],
"forward_only_keys": ["auth_token", "session_id"],
"forward_except_keys": ["debug_info"]
},
"redirect_http_to_https": {
"enabled": True,
"value": True
},
"redirect_https_to_http": {
"enabled": False,
"value": True
},
"referrer_acl": {
"enabled": True,
"policy_type": "deny",
"excepted_values": ["example.com", "*.example.net"]
},
"response_headers_hiding_policy": {
"enabled": True,
"mode": "hide",
"excepted": ["my-header"]
},
"rewrite": {
"enabled": True,
"body": "/(.*) /additional_path/$1",
"flag": "break"
},
"secure_key": {
"enabled": True,
"key": "secretkey",
"type": 2
},
"slice": {
"enabled": True,
"value": True
},
"sni": {
"enabled": True,
"sni_type": "custom",
"custom_hostname": "custom.example.com"
},
"stale": {
"enabled": True,
"value": ["http_404", "http_500"]
},
"static_response_headers": {
"enabled": True,
"value": [
{
"name": "X-Example",
"value": ["Value_1"],
"always": True
},
{
"name": "X-Example-Multiple",
"value": ["Value_1", "Value_2", "Value_3"],
"always": False
}
]
},
"staticHeaders": {
"enabled": True,
"value": {
"X-Example": "Value_1",
"X-Example-Multiple": ["Value_2", "Value_3"]
}
},
"staticRequestHeaders": {
"enabled": True,
"value": {
"Header-One": "Value 1",
"Header-Two": "Value 2"
}
},
"user_agent_acl": {
"enabled": True,
"policy_type": "allow",
"excepted_values": ["UserAgent Value", "~*.*bot.*", ""]
},
"waap": {
"enabled": True,
"value": True
},
"websockets": {
"enabled": True,
"value": 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({
active: true,
name: 'My first rule',
rule: '/folder/images/*.png',
ruleType: 0,
weight: 1,
originGroup: null,
options: {
allowedHttpMethods: {enabled: true, value: ['GET', 'POST']},
brotli_compression: {enabled: true, value: ['text/html', 'text/plain']},
browser_cache_settings: {enabled: true, value: '3600s'},
cache_http_headers: {
enabled: false,
value: [
'vary',
'content-length',
'last-modified',
'connection',
'accept-ranges',
'content-type',
'content-encoding',
'etag',
'cache-control',
'expires',
'keep-alive',
'server'
]
},
cors: {enabled: true, value: ['domain.com', 'domain2.com'], always: true},
country_acl: {enabled: true, policy_type: 'allow', excepted_values: ['GB', 'DE']},
disable_cache: {enabled: true, value: false},
disable_proxy_force_ranges: {enabled: true, value: true},
edge_cache_settings: {enabled: true, value: '43200s', custom_values: {'100': '43200s'}},
fastedge: {
enabled: true,
on_request_headers: {enabled: true, app_id: '1001', interrupt_on_error: true}
},
fetch_compressed: {enabled: true, value: false},
follow_origin_redirect: {enabled: true, codes: [302, 308]},
force_return: {
enabled: true,
code: 301,
body: JSON.stringify('http://example.com/redirect_address'),
time_interval: {start_time: '09:00', end_time: '20:00', time_zone: 'CET'}
},
forward_host_header: {enabled: false, value: false},
gzipOn: {enabled: true, value: true},
hostHeader: {enabled: true, value: 'host.com'},
ignore_cookie: {enabled: true, value: true},
ignoreQueryString: {enabled: true, value: false},
image_stack: {
enabled: true,
avif_enabled: true,
webp_enabled: false,
quality: 80,
png_lossless: true
},
ip_address_acl: {enabled: true, policy_type: 'deny', excepted_values: ['192.168.1.100/32']},
limit_bandwidth: {enabled: true, limit_type: 'static', speed: 100, buffer: 200},
proxy_cache_key: {enabled: true, value: '$scheme$uri'},
proxy_cache_methods_set: {enabled: true, value: false},
proxy_connect_timeout: {enabled: true, value: '4s'},
proxy_read_timeout: {enabled: true, value: '10s'},
query_params_blacklist: {enabled: true, value: ['some', 'blacklisted', 'query']},
query_params_whitelist: {enabled: true, value: ['some', 'whitelisted', 'query']},
query_string_forwarding: {
enabled: true,
forward_from_file_types: ['m3u8', 'mpd'],
forward_to_file_types: ['ts', 'mp4'],
forward_only_keys: ['auth_token', 'session_id'],
forward_except_keys: ['debug_info']
},
redirect_http_to_https: {enabled: true, value: true},
redirect_https_to_http: {enabled: false, value: true},
referrer_acl: {
enabled: true,
policy_type: 'deny',
excepted_values: ['example.com', '*.example.net']
},
response_headers_hiding_policy: {enabled: true, mode: 'hide', excepted: ['my-header']},
rewrite: {
enabled: true,
body: JSON.stringify('/(.*) /additional_path/$1'),
flag: 'break'
},
secure_key: {enabled: true, key: 'secretkey', type: 2},
slice: {enabled: true, value: true},
sni: {enabled: true, sni_type: 'custom', custom_hostname: 'custom.example.com'},
stale: {enabled: true, value: ['http_404', 'http_500']},
static_response_headers: {
enabled: true,
value: [
{name: 'X-Example', value: ['Value_1'], always: true},
{
name: 'X-Example-Multiple',
value: ['Value_1', 'Value_2', 'Value_3'],
always: false
}
]
},
staticHeaders: {
enabled: true,
value: {'X-Example': 'Value_1', 'X-Example-Multiple': ['Value_2', 'Value_3']}
},
staticRequestHeaders: {enabled: true, value: {'Header-One': 'Value 1', 'Header-Two': 'Value 2'}},
user_agent_acl: {
enabled: true,
policy_type: 'allow',
excepted_values: ['UserAgent Value', '~*.*bot.*', '']
},
waap: {enabled: true, value: true},
websockets: {enabled: true, value: true}
}
})
};
fetch('https://api.gcore.com/cdn/resources/{resource_id}/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/cdn/resources/{resource_id}/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([
'active' => true,
'name' => 'My first rule',
'rule' => '/folder/images/*.png',
'ruleType' => 0,
'weight' => 1,
'originGroup' => null,
'options' => [
'allowedHttpMethods' => [
'enabled' => true,
'value' => [
'GET',
'POST'
]
],
'brotli_compression' => [
'enabled' => true,
'value' => [
'text/html',
'text/plain'
]
],
'browser_cache_settings' => [
'enabled' => true,
'value' => '3600s'
],
'cache_http_headers' => [
'enabled' => false,
'value' => [
'vary',
'content-length',
'last-modified',
'connection',
'accept-ranges',
'content-type',
'content-encoding',
'etag',
'cache-control',
'expires',
'keep-alive',
'server'
]
],
'cors' => [
'enabled' => true,
'value' => [
'domain.com',
'domain2.com'
],
'always' => true
],
'country_acl' => [
'enabled' => true,
'policy_type' => 'allow',
'excepted_values' => [
'GB',
'DE'
]
],
'disable_cache' => [
'enabled' => true,
'value' => false
],
'disable_proxy_force_ranges' => [
'enabled' => true,
'value' => true
],
'edge_cache_settings' => [
'enabled' => true,
'value' => '43200s',
'custom_values' => [
'100' => '43200s'
]
],
'fastedge' => [
'enabled' => true,
'on_request_headers' => [
'enabled' => true,
'app_id' => '1001',
'interrupt_on_error' => true
]
],
'fetch_compressed' => [
'enabled' => true,
'value' => false
],
'follow_origin_redirect' => [
'enabled' => true,
'codes' => [
302,
308
]
],
'force_return' => [
'enabled' => true,
'code' => 301,
'body' => 'http://example.com/redirect_address',
'time_interval' => [
'start_time' => '09:00',
'end_time' => '20:00',
'time_zone' => 'CET'
]
],
'forward_host_header' => [
'enabled' => false,
'value' => false
],
'gzipOn' => [
'enabled' => true,
'value' => true
],
'hostHeader' => [
'enabled' => true,
'value' => 'host.com'
],
'ignore_cookie' => [
'enabled' => true,
'value' => true
],
'ignoreQueryString' => [
'enabled' => true,
'value' => false
],
'image_stack' => [
'enabled' => true,
'avif_enabled' => true,
'webp_enabled' => false,
'quality' => 80,
'png_lossless' => true
],
'ip_address_acl' => [
'enabled' => true,
'policy_type' => 'deny',
'excepted_values' => [
'192.168.1.100/32'
]
],
'limit_bandwidth' => [
'enabled' => true,
'limit_type' => 'static',
'speed' => 100,
'buffer' => 200
],
'proxy_cache_key' => [
'enabled' => true,
'value' => '$scheme$uri'
],
'proxy_cache_methods_set' => [
'enabled' => true,
'value' => false
],
'proxy_connect_timeout' => [
'enabled' => true,
'value' => '4s'
],
'proxy_read_timeout' => [
'enabled' => true,
'value' => '10s'
],
'query_params_blacklist' => [
'enabled' => true,
'value' => [
'some',
'blacklisted',
'query'
]
],
'query_params_whitelist' => [
'enabled' => true,
'value' => [
'some',
'whitelisted',
'query'
]
],
'query_string_forwarding' => [
'enabled' => true,
'forward_from_file_types' => [
'm3u8',
'mpd'
],
'forward_to_file_types' => [
'ts',
'mp4'
],
'forward_only_keys' => [
'auth_token',
'session_id'
],
'forward_except_keys' => [
'debug_info'
]
],
'redirect_http_to_https' => [
'enabled' => true,
'value' => true
],
'redirect_https_to_http' => [
'enabled' => false,
'value' => true
],
'referrer_acl' => [
'enabled' => true,
'policy_type' => 'deny',
'excepted_values' => [
'example.com',
'*.example.net'
]
],
'response_headers_hiding_policy' => [
'enabled' => true,
'mode' => 'hide',
'excepted' => [
'my-header'
]
],
'rewrite' => [
'enabled' => true,
'body' => '/(.*) /additional_path/$1',
'flag' => 'break'
],
'secure_key' => [
'enabled' => true,
'key' => 'secretkey',
'type' => 2
],
'slice' => [
'enabled' => true,
'value' => true
],
'sni' => [
'enabled' => true,
'sni_type' => 'custom',
'custom_hostname' => 'custom.example.com'
],
'stale' => [
'enabled' => true,
'value' => [
'http_404',
'http_500'
]
],
'static_response_headers' => [
'enabled' => true,
'value' => [
[
'name' => 'X-Example',
'value' => [
'Value_1'
],
'always' => true
],
[
'name' => 'X-Example-Multiple',
'value' => [
'Value_1',
'Value_2',
'Value_3'
],
'always' => false
]
]
],
'staticHeaders' => [
'enabled' => true,
'value' => [
'X-Example' => 'Value_1',
'X-Example-Multiple' => [
'Value_2',
'Value_3'
]
]
],
'staticRequestHeaders' => [
'enabled' => true,
'value' => [
'Header-One' => 'Value 1',
'Header-Two' => 'Value 2'
]
],
'user_agent_acl' => [
'enabled' => true,
'policy_type' => 'allow',
'excepted_values' => [
'UserAgent Value',
'~*.*bot.*',
''
]
],
'waap' => [
'enabled' => true,
'value' => true
],
'websockets' => [
'enabled' => true,
'value' => 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/cdn/resources/{resource_id}/rules/{rule_id}"
payload := strings.NewReader("{\n \"active\": true,\n \"name\": \"My first rule\",\n \"rule\": \"/folder/images/*.png\",\n \"ruleType\": 0,\n \"weight\": 1,\n \"originGroup\": null,\n \"options\": {\n \"allowedHttpMethods\": {\n \"enabled\": true,\n \"value\": [\n \"GET\",\n \"POST\"\n ]\n },\n \"brotli_compression\": {\n \"enabled\": true,\n \"value\": [\n \"text/html\",\n \"text/plain\"\n ]\n },\n \"browser_cache_settings\": {\n \"enabled\": true,\n \"value\": \"3600s\"\n },\n \"cache_http_headers\": {\n \"enabled\": false,\n \"value\": [\n \"vary\",\n \"content-length\",\n \"last-modified\",\n \"connection\",\n \"accept-ranges\",\n \"content-type\",\n \"content-encoding\",\n \"etag\",\n \"cache-control\",\n \"expires\",\n \"keep-alive\",\n \"server\"\n ]\n },\n \"cors\": {\n \"enabled\": true,\n \"value\": [\n \"domain.com\",\n \"domain2.com\"\n ],\n \"always\": true\n },\n \"country_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"GB\",\n \"DE\"\n ]\n },\n \"disable_cache\": {\n \"enabled\": true,\n \"value\": false\n },\n \"disable_proxy_force_ranges\": {\n \"enabled\": true,\n \"value\": true\n },\n \"edge_cache_settings\": {\n \"enabled\": true,\n \"value\": \"43200s\",\n \"custom_values\": {\n \"100\": \"43200s\"\n }\n },\n \"fastedge\": {\n \"enabled\": true,\n \"on_request_headers\": {\n \"enabled\": true,\n \"app_id\": \"1001\",\n \"interrupt_on_error\": true\n }\n },\n \"fetch_compressed\": {\n \"enabled\": true,\n \"value\": false\n },\n \"follow_origin_redirect\": {\n \"enabled\": true,\n \"codes\": [\n 302,\n 308\n ]\n },\n \"force_return\": {\n \"enabled\": true,\n \"code\": 301,\n \"body\": \"http://example.com/redirect_address\",\n \"time_interval\": {\n \"start_time\": \"09:00\",\n \"end_time\": \"20:00\",\n \"time_zone\": \"CET\"\n }\n },\n \"forward_host_header\": {\n \"enabled\": false,\n \"value\": false\n },\n \"gzipOn\": {\n \"enabled\": true,\n \"value\": true\n },\n \"hostHeader\": {\n \"enabled\": true,\n \"value\": \"host.com\"\n },\n \"ignore_cookie\": {\n \"enabled\": true,\n \"value\": true\n },\n \"ignoreQueryString\": {\n \"enabled\": true,\n \"value\": false\n },\n \"image_stack\": {\n \"enabled\": true,\n \"avif_enabled\": true,\n \"webp_enabled\": false,\n \"quality\": 80,\n \"png_lossless\": true\n },\n \"ip_address_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"192.168.1.100/32\"\n ]\n },\n \"limit_bandwidth\": {\n \"enabled\": true,\n \"limit_type\": \"static\",\n \"speed\": 100,\n \"buffer\": 200\n },\n \"proxy_cache_key\": {\n \"enabled\": true,\n \"value\": \"$scheme$uri\"\n },\n \"proxy_cache_methods_set\": {\n \"enabled\": true,\n \"value\": false\n },\n \"proxy_connect_timeout\": {\n \"enabled\": true,\n \"value\": \"4s\"\n },\n \"proxy_read_timeout\": {\n \"enabled\": true,\n \"value\": \"10s\"\n },\n \"query_params_blacklist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"blacklisted\",\n \"query\"\n ]\n },\n \"query_params_whitelist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"whitelisted\",\n \"query\"\n ]\n },\n \"query_string_forwarding\": {\n \"enabled\": true,\n \"forward_from_file_types\": [\n \"m3u8\",\n \"mpd\"\n ],\n \"forward_to_file_types\": [\n \"ts\",\n \"mp4\"\n ],\n \"forward_only_keys\": [\n \"auth_token\",\n \"session_id\"\n ],\n \"forward_except_keys\": [\n \"debug_info\"\n ]\n },\n \"redirect_http_to_https\": {\n \"enabled\": true,\n \"value\": true\n },\n \"redirect_https_to_http\": {\n \"enabled\": false,\n \"value\": true\n },\n \"referrer_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"example.com\",\n \"*.example.net\"\n ]\n },\n \"response_headers_hiding_policy\": {\n \"enabled\": true,\n \"mode\": \"hide\",\n \"excepted\": [\n \"my-header\"\n ]\n },\n \"rewrite\": {\n \"enabled\": true,\n \"body\": \"/(.*) /additional_path/$1\",\n \"flag\": \"break\"\n },\n \"secure_key\": {\n \"enabled\": true,\n \"key\": \"secretkey\",\n \"type\": 2\n },\n \"slice\": {\n \"enabled\": true,\n \"value\": true\n },\n \"sni\": {\n \"enabled\": true,\n \"sni_type\": \"custom\",\n \"custom_hostname\": \"custom.example.com\"\n },\n \"stale\": {\n \"enabled\": true,\n \"value\": [\n \"http_404\",\n \"http_500\"\n ]\n },\n \"static_response_headers\": {\n \"enabled\": true,\n \"value\": [\n {\n \"name\": \"X-Example\",\n \"value\": [\n \"Value_1\"\n ],\n \"always\": true\n },\n {\n \"name\": \"X-Example-Multiple\",\n \"value\": [\n \"Value_1\",\n \"Value_2\",\n \"Value_3\"\n ],\n \"always\": false\n }\n ]\n },\n \"staticHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"X-Example\": \"Value_1\",\n \"X-Example-Multiple\": [\n \"Value_2\",\n \"Value_3\"\n ]\n }\n },\n \"staticRequestHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"Header-One\": \"Value 1\",\n \"Header-Two\": \"Value 2\"\n }\n },\n \"user_agent_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"UserAgent Value\",\n \"~*.*bot.*\",\n \"\"\n ]\n },\n \"waap\": {\n \"enabled\": true,\n \"value\": true\n },\n \"websockets\": {\n \"enabled\": true,\n \"value\": true\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/cdn/resources/{resource_id}/rules/{rule_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"active\": true,\n \"name\": \"My first rule\",\n \"rule\": \"/folder/images/*.png\",\n \"ruleType\": 0,\n \"weight\": 1,\n \"originGroup\": null,\n \"options\": {\n \"allowedHttpMethods\": {\n \"enabled\": true,\n \"value\": [\n \"GET\",\n \"POST\"\n ]\n },\n \"brotli_compression\": {\n \"enabled\": true,\n \"value\": [\n \"text/html\",\n \"text/plain\"\n ]\n },\n \"browser_cache_settings\": {\n \"enabled\": true,\n \"value\": \"3600s\"\n },\n \"cache_http_headers\": {\n \"enabled\": false,\n \"value\": [\n \"vary\",\n \"content-length\",\n \"last-modified\",\n \"connection\",\n \"accept-ranges\",\n \"content-type\",\n \"content-encoding\",\n \"etag\",\n \"cache-control\",\n \"expires\",\n \"keep-alive\",\n \"server\"\n ]\n },\n \"cors\": {\n \"enabled\": true,\n \"value\": [\n \"domain.com\",\n \"domain2.com\"\n ],\n \"always\": true\n },\n \"country_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"GB\",\n \"DE\"\n ]\n },\n \"disable_cache\": {\n \"enabled\": true,\n \"value\": false\n },\n \"disable_proxy_force_ranges\": {\n \"enabled\": true,\n \"value\": true\n },\n \"edge_cache_settings\": {\n \"enabled\": true,\n \"value\": \"43200s\",\n \"custom_values\": {\n \"100\": \"43200s\"\n }\n },\n \"fastedge\": {\n \"enabled\": true,\n \"on_request_headers\": {\n \"enabled\": true,\n \"app_id\": \"1001\",\n \"interrupt_on_error\": true\n }\n },\n \"fetch_compressed\": {\n \"enabled\": true,\n \"value\": false\n },\n \"follow_origin_redirect\": {\n \"enabled\": true,\n \"codes\": [\n 302,\n 308\n ]\n },\n \"force_return\": {\n \"enabled\": true,\n \"code\": 301,\n \"body\": \"http://example.com/redirect_address\",\n \"time_interval\": {\n \"start_time\": \"09:00\",\n \"end_time\": \"20:00\",\n \"time_zone\": \"CET\"\n }\n },\n \"forward_host_header\": {\n \"enabled\": false,\n \"value\": false\n },\n \"gzipOn\": {\n \"enabled\": true,\n \"value\": true\n },\n \"hostHeader\": {\n \"enabled\": true,\n \"value\": \"host.com\"\n },\n \"ignore_cookie\": {\n \"enabled\": true,\n \"value\": true\n },\n \"ignoreQueryString\": {\n \"enabled\": true,\n \"value\": false\n },\n \"image_stack\": {\n \"enabled\": true,\n \"avif_enabled\": true,\n \"webp_enabled\": false,\n \"quality\": 80,\n \"png_lossless\": true\n },\n \"ip_address_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"192.168.1.100/32\"\n ]\n },\n \"limit_bandwidth\": {\n \"enabled\": true,\n \"limit_type\": \"static\",\n \"speed\": 100,\n \"buffer\": 200\n },\n \"proxy_cache_key\": {\n \"enabled\": true,\n \"value\": \"$scheme$uri\"\n },\n \"proxy_cache_methods_set\": {\n \"enabled\": true,\n \"value\": false\n },\n \"proxy_connect_timeout\": {\n \"enabled\": true,\n \"value\": \"4s\"\n },\n \"proxy_read_timeout\": {\n \"enabled\": true,\n \"value\": \"10s\"\n },\n \"query_params_blacklist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"blacklisted\",\n \"query\"\n ]\n },\n \"query_params_whitelist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"whitelisted\",\n \"query\"\n ]\n },\n \"query_string_forwarding\": {\n \"enabled\": true,\n \"forward_from_file_types\": [\n \"m3u8\",\n \"mpd\"\n ],\n \"forward_to_file_types\": [\n \"ts\",\n \"mp4\"\n ],\n \"forward_only_keys\": [\n \"auth_token\",\n \"session_id\"\n ],\n \"forward_except_keys\": [\n \"debug_info\"\n ]\n },\n \"redirect_http_to_https\": {\n \"enabled\": true,\n \"value\": true\n },\n \"redirect_https_to_http\": {\n \"enabled\": false,\n \"value\": true\n },\n \"referrer_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"example.com\",\n \"*.example.net\"\n ]\n },\n \"response_headers_hiding_policy\": {\n \"enabled\": true,\n \"mode\": \"hide\",\n \"excepted\": [\n \"my-header\"\n ]\n },\n \"rewrite\": {\n \"enabled\": true,\n \"body\": \"/(.*) /additional_path/$1\",\n \"flag\": \"break\"\n },\n \"secure_key\": {\n \"enabled\": true,\n \"key\": \"secretkey\",\n \"type\": 2\n },\n \"slice\": {\n \"enabled\": true,\n \"value\": true\n },\n \"sni\": {\n \"enabled\": true,\n \"sni_type\": \"custom\",\n \"custom_hostname\": \"custom.example.com\"\n },\n \"stale\": {\n \"enabled\": true,\n \"value\": [\n \"http_404\",\n \"http_500\"\n ]\n },\n \"static_response_headers\": {\n \"enabled\": true,\n \"value\": [\n {\n \"name\": \"X-Example\",\n \"value\": [\n \"Value_1\"\n ],\n \"always\": true\n },\n {\n \"name\": \"X-Example-Multiple\",\n \"value\": [\n \"Value_1\",\n \"Value_2\",\n \"Value_3\"\n ],\n \"always\": false\n }\n ]\n },\n \"staticHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"X-Example\": \"Value_1\",\n \"X-Example-Multiple\": [\n \"Value_2\",\n \"Value_3\"\n ]\n }\n },\n \"staticRequestHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"Header-One\": \"Value 1\",\n \"Header-Two\": \"Value 2\"\n }\n },\n \"user_agent_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"UserAgent Value\",\n \"~*.*bot.*\",\n \"\"\n ]\n },\n \"waap\": {\n \"enabled\": true,\n \"value\": true\n },\n \"websockets\": {\n \"enabled\": true,\n \"value\": true\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cdn/resources/{resource_id}/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 \"active\": true,\n \"name\": \"My first rule\",\n \"rule\": \"/folder/images/*.png\",\n \"ruleType\": 0,\n \"weight\": 1,\n \"originGroup\": null,\n \"options\": {\n \"allowedHttpMethods\": {\n \"enabled\": true,\n \"value\": [\n \"GET\",\n \"POST\"\n ]\n },\n \"brotli_compression\": {\n \"enabled\": true,\n \"value\": [\n \"text/html\",\n \"text/plain\"\n ]\n },\n \"browser_cache_settings\": {\n \"enabled\": true,\n \"value\": \"3600s\"\n },\n \"cache_http_headers\": {\n \"enabled\": false,\n \"value\": [\n \"vary\",\n \"content-length\",\n \"last-modified\",\n \"connection\",\n \"accept-ranges\",\n \"content-type\",\n \"content-encoding\",\n \"etag\",\n \"cache-control\",\n \"expires\",\n \"keep-alive\",\n \"server\"\n ]\n },\n \"cors\": {\n \"enabled\": true,\n \"value\": [\n \"domain.com\",\n \"domain2.com\"\n ],\n \"always\": true\n },\n \"country_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"GB\",\n \"DE\"\n ]\n },\n \"disable_cache\": {\n \"enabled\": true,\n \"value\": false\n },\n \"disable_proxy_force_ranges\": {\n \"enabled\": true,\n \"value\": true\n },\n \"edge_cache_settings\": {\n \"enabled\": true,\n \"value\": \"43200s\",\n \"custom_values\": {\n \"100\": \"43200s\"\n }\n },\n \"fastedge\": {\n \"enabled\": true,\n \"on_request_headers\": {\n \"enabled\": true,\n \"app_id\": \"1001\",\n \"interrupt_on_error\": true\n }\n },\n \"fetch_compressed\": {\n \"enabled\": true,\n \"value\": false\n },\n \"follow_origin_redirect\": {\n \"enabled\": true,\n \"codes\": [\n 302,\n 308\n ]\n },\n \"force_return\": {\n \"enabled\": true,\n \"code\": 301,\n \"body\": \"http://example.com/redirect_address\",\n \"time_interval\": {\n \"start_time\": \"09:00\",\n \"end_time\": \"20:00\",\n \"time_zone\": \"CET\"\n }\n },\n \"forward_host_header\": {\n \"enabled\": false,\n \"value\": false\n },\n \"gzipOn\": {\n \"enabled\": true,\n \"value\": true\n },\n \"hostHeader\": {\n \"enabled\": true,\n \"value\": \"host.com\"\n },\n \"ignore_cookie\": {\n \"enabled\": true,\n \"value\": true\n },\n \"ignoreQueryString\": {\n \"enabled\": true,\n \"value\": false\n },\n \"image_stack\": {\n \"enabled\": true,\n \"avif_enabled\": true,\n \"webp_enabled\": false,\n \"quality\": 80,\n \"png_lossless\": true\n },\n \"ip_address_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"192.168.1.100/32\"\n ]\n },\n \"limit_bandwidth\": {\n \"enabled\": true,\n \"limit_type\": \"static\",\n \"speed\": 100,\n \"buffer\": 200\n },\n \"proxy_cache_key\": {\n \"enabled\": true,\n \"value\": \"$scheme$uri\"\n },\n \"proxy_cache_methods_set\": {\n \"enabled\": true,\n \"value\": false\n },\n \"proxy_connect_timeout\": {\n \"enabled\": true,\n \"value\": \"4s\"\n },\n \"proxy_read_timeout\": {\n \"enabled\": true,\n \"value\": \"10s\"\n },\n \"query_params_blacklist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"blacklisted\",\n \"query\"\n ]\n },\n \"query_params_whitelist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"whitelisted\",\n \"query\"\n ]\n },\n \"query_string_forwarding\": {\n \"enabled\": true,\n \"forward_from_file_types\": [\n \"m3u8\",\n \"mpd\"\n ],\n \"forward_to_file_types\": [\n \"ts\",\n \"mp4\"\n ],\n \"forward_only_keys\": [\n \"auth_token\",\n \"session_id\"\n ],\n \"forward_except_keys\": [\n \"debug_info\"\n ]\n },\n \"redirect_http_to_https\": {\n \"enabled\": true,\n \"value\": true\n },\n \"redirect_https_to_http\": {\n \"enabled\": false,\n \"value\": true\n },\n \"referrer_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"example.com\",\n \"*.example.net\"\n ]\n },\n \"response_headers_hiding_policy\": {\n \"enabled\": true,\n \"mode\": \"hide\",\n \"excepted\": [\n \"my-header\"\n ]\n },\n \"rewrite\": {\n \"enabled\": true,\n \"body\": \"/(.*) /additional_path/$1\",\n \"flag\": \"break\"\n },\n \"secure_key\": {\n \"enabled\": true,\n \"key\": \"secretkey\",\n \"type\": 2\n },\n \"slice\": {\n \"enabled\": true,\n \"value\": true\n },\n \"sni\": {\n \"enabled\": true,\n \"sni_type\": \"custom\",\n \"custom_hostname\": \"custom.example.com\"\n },\n \"stale\": {\n \"enabled\": true,\n \"value\": [\n \"http_404\",\n \"http_500\"\n ]\n },\n \"static_response_headers\": {\n \"enabled\": true,\n \"value\": [\n {\n \"name\": \"X-Example\",\n \"value\": [\n \"Value_1\"\n ],\n \"always\": true\n },\n {\n \"name\": \"X-Example-Multiple\",\n \"value\": [\n \"Value_1\",\n \"Value_2\",\n \"Value_3\"\n ],\n \"always\": false\n }\n ]\n },\n \"staticHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"X-Example\": \"Value_1\",\n \"X-Example-Multiple\": [\n \"Value_2\",\n \"Value_3\"\n ]\n }\n },\n \"staticRequestHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"Header-One\": \"Value 1\",\n \"Header-Two\": \"Value 2\"\n }\n },\n \"user_agent_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"UserAgent Value\",\n \"~*.*bot.*\",\n \"\"\n ]\n },\n \"waap\": {\n \"enabled\": true,\n \"value\": true\n },\n \"websockets\": {\n \"enabled\": true,\n \"value\": true\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"id": 5,
"name": "My first rule",
"active": true,
"deleted": false,
"originGroup": null,
"rule": "/folder/images/*.png",
"ruleType": 0,
"weight": 1,
"originProtocol": "HTTPS",
"preset_applied": false,
"primary_rule": null,
"options": {
"allowedHttpMethods": {
"enabled": true,
"value": [
"GET",
"POST"
]
},
"brotli_compression": {
"enabled": true,
"value": [
"text/html",
"text/plain"
]
},
"browser_cache_settings": {
"enabled": true,
"value": "3600s"
},
"cache_http_headers": {
"enabled": false,
"value": [
"vary",
"content-length",
"last-modified",
"connection",
"accept-ranges",
"content-type",
"content-encoding",
"etag",
"cache-control",
"expires",
"keep-alive",
"server"
]
},
"cors": {
"enabled": true,
"value": [
"domain.com",
"domain2.com"
],
"always": true
},
"country_acl": {
"enabled": true,
"policy_type": "allow",
"excepted_values": [
"GB",
"DE"
]
},
"disable_cache": {
"enabled": true,
"value": false
},
"disable_proxy_force_ranges": {
"enabled": true,
"value": true
},
"edge_cache_settings": {
"enabled": true,
"value": "43200s",
"custom_values": {
"100": "43200s"
}
},
"fastedge": {
"enabled": true,
"on_request_headers": {
"enabled": true,
"app_id": "1001",
"interrupt_on_error": true
}
},
"fetch_compressed": {
"enabled": true,
"value": false
},
"follow_origin_redirect": {
"enabled": true,
"codes": [
302,
308
]
},
"force_return": {
"enabled": true,
"code": 301,
"body": "http://example.com/redirect_address",
"time_interval": {
"start_time": "09:00",
"end_time": "20:00",
"time_zone": "CET"
}
},
"forward_host_header": {
"enabled": false,
"value": false
},
"gzipOn": {
"enabled": true,
"value": true
},
"hostHeader": {
"enabled": true,
"value": "host.com"
},
"ignore_cookie": {
"enabled": true,
"value": true
},
"ignoreQueryString": {
"enabled": true,
"value": false
},
"image_stack": {
"enabled": true,
"avif_enabled": true,
"webp_enabled": false,
"quality": 80,
"png_lossless": true
},
"ip_address_acl": {
"enabled": true,
"policy_type": "deny",
"excepted_values": [
"192.168.1.100/32"
]
},
"limit_bandwidth": {
"enabled": true,
"limit_type": "static",
"speed": 100,
"buffer": 200
},
"proxy_cache_key": {
"enabled": true,
"value": "$scheme$uri"
},
"proxy_cache_methods_set": {
"enabled": true,
"value": false
},
"proxy_connect_timeout": {
"enabled": true,
"value": "4s"
},
"proxy_read_timeout": {
"enabled": true,
"value": "10s"
},
"query_params_blacklist": {
"enabled": true,
"value": [
"some",
"blacklisted",
"query"
]
},
"query_params_whitelist": {
"enabled": true,
"value": [
"some",
"whitelisted",
"query"
]
},
"query_string_forwarding": {
"enabled": true,
"forward_from_file_types": [
"m3u8",
"mpd"
],
"forward_to_file_types": [
"ts",
"mp4"
],
"forward_only_keys": [
"auth_token",
"session_id"
],
"forward_except_keys": [
"debug_info"
]
},
"redirect_http_to_https": {
"enabled": true,
"value": true
},
"redirect_https_to_http": {
"enabled": false,
"value": true
},
"referrer_acl": {
"enabled": true,
"policy_type": "deny",
"excepted_values": [
"example.com",
"*.example.net"
]
},
"response_headers_hiding_policy": {
"enabled": true,
"mode": "hide",
"excepted": [
"my-header"
]
},
"rewrite": {
"enabled": true,
"body": "/(.*) /additional_path/$1",
"flag": "break"
},
"secure_key": {
"enabled": true,
"key": "secretkey",
"type": 2
},
"slice": {
"enabled": true,
"value": true
},
"sni": {
"enabled": true,
"sni_type": "custom",
"custom_hostname": "custom.example.com"
},
"stale": {
"enabled": true,
"value": [
"http_404",
"http_500"
]
},
"static_response_headers": {
"enabled": true,
"value": [
{
"name": "X-Example",
"value": [
"Value_1"
],
"always": true
},
{
"name": "X-Example-Multiple",
"value": [
"Value_1",
"Value_2",
"Value_3"
],
"always": false
}
]
},
"staticHeaders": {
"enabled": true,
"value": {
"X-Example": "Value_1",
"X-Example-Multiple": [
"Value_2",
"Value_3"
]
}
},
"staticRequestHeaders": {
"enabled": true,
"value": {
"Header-One": "Value 1",
"Header-Two": "Value 2"
}
},
"user_agent_acl": {
"enabled": true,
"policy_type": "allow",
"excepted_values": [
"UserAgent Value",
"~*.*bot.*",
""
]
},
"waap": {
"enabled": true,
"value": true
},
"websockets": {
"enabled": true,
"value": true
}
}
}{
"errors": {
"name": [
"This field should be unique."
]
}
}Change rule
curl --request PATCH \
--url https://api.gcore.com/cdn/resources/{resource_id}/rules/{rule_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"active": true,
"name": "My first rule",
"rule": "/folder/images/*.png",
"ruleType": 0,
"weight": 1,
"originGroup": null,
"options": {
"allowedHttpMethods": {
"enabled": true,
"value": [
"GET",
"POST"
]
},
"brotli_compression": {
"enabled": true,
"value": [
"text/html",
"text/plain"
]
},
"browser_cache_settings": {
"enabled": true,
"value": "3600s"
},
"cache_http_headers": {
"enabled": false,
"value": [
"vary",
"content-length",
"last-modified",
"connection",
"accept-ranges",
"content-type",
"content-encoding",
"etag",
"cache-control",
"expires",
"keep-alive",
"server"
]
},
"cors": {
"enabled": true,
"value": [
"domain.com",
"domain2.com"
],
"always": true
},
"country_acl": {
"enabled": true,
"policy_type": "allow",
"excepted_values": [
"GB",
"DE"
]
},
"disable_cache": {
"enabled": true,
"value": false
},
"disable_proxy_force_ranges": {
"enabled": true,
"value": true
},
"edge_cache_settings": {
"enabled": true,
"value": "43200s",
"custom_values": {
"100": "43200s"
}
},
"fastedge": {
"enabled": true,
"on_request_headers": {
"enabled": true,
"app_id": "1001",
"interrupt_on_error": true
}
},
"fetch_compressed": {
"enabled": true,
"value": false
},
"follow_origin_redirect": {
"enabled": true,
"codes": [
302,
308
]
},
"force_return": {
"enabled": true,
"code": 301,
"body": "http://example.com/redirect_address",
"time_interval": {
"start_time": "09:00",
"end_time": "20:00",
"time_zone": "CET"
}
},
"forward_host_header": {
"enabled": false,
"value": false
},
"gzipOn": {
"enabled": true,
"value": true
},
"hostHeader": {
"enabled": true,
"value": "host.com"
},
"ignore_cookie": {
"enabled": true,
"value": true
},
"ignoreQueryString": {
"enabled": true,
"value": false
},
"image_stack": {
"enabled": true,
"avif_enabled": true,
"webp_enabled": false,
"quality": 80,
"png_lossless": true
},
"ip_address_acl": {
"enabled": true,
"policy_type": "deny",
"excepted_values": [
"192.168.1.100/32"
]
},
"limit_bandwidth": {
"enabled": true,
"limit_type": "static",
"speed": 100,
"buffer": 200
},
"proxy_cache_key": {
"enabled": true,
"value": "$scheme$uri"
},
"proxy_cache_methods_set": {
"enabled": true,
"value": false
},
"proxy_connect_timeout": {
"enabled": true,
"value": "4s"
},
"proxy_read_timeout": {
"enabled": true,
"value": "10s"
},
"query_params_blacklist": {
"enabled": true,
"value": [
"some",
"blacklisted",
"query"
]
},
"query_params_whitelist": {
"enabled": true,
"value": [
"some",
"whitelisted",
"query"
]
},
"query_string_forwarding": {
"enabled": true,
"forward_from_file_types": [
"m3u8",
"mpd"
],
"forward_to_file_types": [
"ts",
"mp4"
],
"forward_only_keys": [
"auth_token",
"session_id"
],
"forward_except_keys": [
"debug_info"
]
},
"redirect_http_to_https": {
"enabled": true,
"value": true
},
"redirect_https_to_http": {
"enabled": false,
"value": true
},
"referrer_acl": {
"enabled": true,
"policy_type": "deny",
"excepted_values": [
"example.com",
"*.example.net"
]
},
"response_headers_hiding_policy": {
"enabled": true,
"mode": "hide",
"excepted": [
"my-header"
]
},
"rewrite": {
"enabled": true,
"body": "/(.*) /additional_path/$1",
"flag": "break"
},
"secure_key": {
"enabled": true,
"key": "secretkey",
"type": 2
},
"slice": {
"enabled": true,
"value": true
},
"sni": {
"enabled": true,
"sni_type": "custom",
"custom_hostname": "custom.example.com"
},
"stale": {
"enabled": true,
"value": [
"http_404",
"http_500"
]
},
"static_response_headers": {
"enabled": true,
"value": [
{
"name": "X-Example",
"value": [
"Value_1"
],
"always": true
},
{
"name": "X-Example-Multiple",
"value": [
"Value_1",
"Value_2",
"Value_3"
],
"always": false
}
]
},
"staticHeaders": {
"enabled": true,
"value": {
"X-Example": "Value_1",
"X-Example-Multiple": [
"Value_2",
"Value_3"
]
}
},
"staticRequestHeaders": {
"enabled": true,
"value": {
"Header-One": "Value 1",
"Header-Two": "Value 2"
}
},
"user_agent_acl": {
"enabled": true,
"policy_type": "allow",
"excepted_values": [
"UserAgent Value",
"~*.*bot.*",
""
]
},
"waap": {
"enabled": true,
"value": true
},
"websockets": {
"enabled": true,
"value": true
}
}
}
'import requests
url = "https://api.gcore.com/cdn/resources/{resource_id}/rules/{rule_id}"
payload = {
"active": True,
"name": "My first rule",
"rule": "/folder/images/*.png",
"ruleType": 0,
"weight": 1,
"originGroup": None,
"options": {
"allowedHttpMethods": {
"enabled": True,
"value": ["GET", "POST"]
},
"brotli_compression": {
"enabled": True,
"value": ["text/html", "text/plain"]
},
"browser_cache_settings": {
"enabled": True,
"value": "3600s"
},
"cache_http_headers": {
"enabled": False,
"value": ["vary", "content-length", "last-modified", "connection", "accept-ranges", "content-type", "content-encoding", "etag", "cache-control", "expires", "keep-alive", "server"]
},
"cors": {
"enabled": True,
"value": ["domain.com", "domain2.com"],
"always": True
},
"country_acl": {
"enabled": True,
"policy_type": "allow",
"excepted_values": ["GB", "DE"]
},
"disable_cache": {
"enabled": True,
"value": False
},
"disable_proxy_force_ranges": {
"enabled": True,
"value": True
},
"edge_cache_settings": {
"enabled": True,
"value": "43200s",
"custom_values": { "100": "43200s" }
},
"fastedge": {
"enabled": True,
"on_request_headers": {
"enabled": True,
"app_id": "1001",
"interrupt_on_error": True
}
},
"fetch_compressed": {
"enabled": True,
"value": False
},
"follow_origin_redirect": {
"enabled": True,
"codes": [302, 308]
},
"force_return": {
"enabled": True,
"code": 301,
"body": "http://example.com/redirect_address",
"time_interval": {
"start_time": "09:00",
"end_time": "20:00",
"time_zone": "CET"
}
},
"forward_host_header": {
"enabled": False,
"value": False
},
"gzipOn": {
"enabled": True,
"value": True
},
"hostHeader": {
"enabled": True,
"value": "host.com"
},
"ignore_cookie": {
"enabled": True,
"value": True
},
"ignoreQueryString": {
"enabled": True,
"value": False
},
"image_stack": {
"enabled": True,
"avif_enabled": True,
"webp_enabled": False,
"quality": 80,
"png_lossless": True
},
"ip_address_acl": {
"enabled": True,
"policy_type": "deny",
"excepted_values": ["192.168.1.100/32"]
},
"limit_bandwidth": {
"enabled": True,
"limit_type": "static",
"speed": 100,
"buffer": 200
},
"proxy_cache_key": {
"enabled": True,
"value": "$scheme$uri"
},
"proxy_cache_methods_set": {
"enabled": True,
"value": False
},
"proxy_connect_timeout": {
"enabled": True,
"value": "4s"
},
"proxy_read_timeout": {
"enabled": True,
"value": "10s"
},
"query_params_blacklist": {
"enabled": True,
"value": ["some", "blacklisted", "query"]
},
"query_params_whitelist": {
"enabled": True,
"value": ["some", "whitelisted", "query"]
},
"query_string_forwarding": {
"enabled": True,
"forward_from_file_types": ["m3u8", "mpd"],
"forward_to_file_types": ["ts", "mp4"],
"forward_only_keys": ["auth_token", "session_id"],
"forward_except_keys": ["debug_info"]
},
"redirect_http_to_https": {
"enabled": True,
"value": True
},
"redirect_https_to_http": {
"enabled": False,
"value": True
},
"referrer_acl": {
"enabled": True,
"policy_type": "deny",
"excepted_values": ["example.com", "*.example.net"]
},
"response_headers_hiding_policy": {
"enabled": True,
"mode": "hide",
"excepted": ["my-header"]
},
"rewrite": {
"enabled": True,
"body": "/(.*) /additional_path/$1",
"flag": "break"
},
"secure_key": {
"enabled": True,
"key": "secretkey",
"type": 2
},
"slice": {
"enabled": True,
"value": True
},
"sni": {
"enabled": True,
"sni_type": "custom",
"custom_hostname": "custom.example.com"
},
"stale": {
"enabled": True,
"value": ["http_404", "http_500"]
},
"static_response_headers": {
"enabled": True,
"value": [
{
"name": "X-Example",
"value": ["Value_1"],
"always": True
},
{
"name": "X-Example-Multiple",
"value": ["Value_1", "Value_2", "Value_3"],
"always": False
}
]
},
"staticHeaders": {
"enabled": True,
"value": {
"X-Example": "Value_1",
"X-Example-Multiple": ["Value_2", "Value_3"]
}
},
"staticRequestHeaders": {
"enabled": True,
"value": {
"Header-One": "Value 1",
"Header-Two": "Value 2"
}
},
"user_agent_acl": {
"enabled": True,
"policy_type": "allow",
"excepted_values": ["UserAgent Value", "~*.*bot.*", ""]
},
"waap": {
"enabled": True,
"value": True
},
"websockets": {
"enabled": True,
"value": 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({
active: true,
name: 'My first rule',
rule: '/folder/images/*.png',
ruleType: 0,
weight: 1,
originGroup: null,
options: {
allowedHttpMethods: {enabled: true, value: ['GET', 'POST']},
brotli_compression: {enabled: true, value: ['text/html', 'text/plain']},
browser_cache_settings: {enabled: true, value: '3600s'},
cache_http_headers: {
enabled: false,
value: [
'vary',
'content-length',
'last-modified',
'connection',
'accept-ranges',
'content-type',
'content-encoding',
'etag',
'cache-control',
'expires',
'keep-alive',
'server'
]
},
cors: {enabled: true, value: ['domain.com', 'domain2.com'], always: true},
country_acl: {enabled: true, policy_type: 'allow', excepted_values: ['GB', 'DE']},
disable_cache: {enabled: true, value: false},
disable_proxy_force_ranges: {enabled: true, value: true},
edge_cache_settings: {enabled: true, value: '43200s', custom_values: {'100': '43200s'}},
fastedge: {
enabled: true,
on_request_headers: {enabled: true, app_id: '1001', interrupt_on_error: true}
},
fetch_compressed: {enabled: true, value: false},
follow_origin_redirect: {enabled: true, codes: [302, 308]},
force_return: {
enabled: true,
code: 301,
body: JSON.stringify('http://example.com/redirect_address'),
time_interval: {start_time: '09:00', end_time: '20:00', time_zone: 'CET'}
},
forward_host_header: {enabled: false, value: false},
gzipOn: {enabled: true, value: true},
hostHeader: {enabled: true, value: 'host.com'},
ignore_cookie: {enabled: true, value: true},
ignoreQueryString: {enabled: true, value: false},
image_stack: {
enabled: true,
avif_enabled: true,
webp_enabled: false,
quality: 80,
png_lossless: true
},
ip_address_acl: {enabled: true, policy_type: 'deny', excepted_values: ['192.168.1.100/32']},
limit_bandwidth: {enabled: true, limit_type: 'static', speed: 100, buffer: 200},
proxy_cache_key: {enabled: true, value: '$scheme$uri'},
proxy_cache_methods_set: {enabled: true, value: false},
proxy_connect_timeout: {enabled: true, value: '4s'},
proxy_read_timeout: {enabled: true, value: '10s'},
query_params_blacklist: {enabled: true, value: ['some', 'blacklisted', 'query']},
query_params_whitelist: {enabled: true, value: ['some', 'whitelisted', 'query']},
query_string_forwarding: {
enabled: true,
forward_from_file_types: ['m3u8', 'mpd'],
forward_to_file_types: ['ts', 'mp4'],
forward_only_keys: ['auth_token', 'session_id'],
forward_except_keys: ['debug_info']
},
redirect_http_to_https: {enabled: true, value: true},
redirect_https_to_http: {enabled: false, value: true},
referrer_acl: {
enabled: true,
policy_type: 'deny',
excepted_values: ['example.com', '*.example.net']
},
response_headers_hiding_policy: {enabled: true, mode: 'hide', excepted: ['my-header']},
rewrite: {
enabled: true,
body: JSON.stringify('/(.*) /additional_path/$1'),
flag: 'break'
},
secure_key: {enabled: true, key: 'secretkey', type: 2},
slice: {enabled: true, value: true},
sni: {enabled: true, sni_type: 'custom', custom_hostname: 'custom.example.com'},
stale: {enabled: true, value: ['http_404', 'http_500']},
static_response_headers: {
enabled: true,
value: [
{name: 'X-Example', value: ['Value_1'], always: true},
{
name: 'X-Example-Multiple',
value: ['Value_1', 'Value_2', 'Value_3'],
always: false
}
]
},
staticHeaders: {
enabled: true,
value: {'X-Example': 'Value_1', 'X-Example-Multiple': ['Value_2', 'Value_3']}
},
staticRequestHeaders: {enabled: true, value: {'Header-One': 'Value 1', 'Header-Two': 'Value 2'}},
user_agent_acl: {
enabled: true,
policy_type: 'allow',
excepted_values: ['UserAgent Value', '~*.*bot.*', '']
},
waap: {enabled: true, value: true},
websockets: {enabled: true, value: true}
}
})
};
fetch('https://api.gcore.com/cdn/resources/{resource_id}/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/cdn/resources/{resource_id}/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([
'active' => true,
'name' => 'My first rule',
'rule' => '/folder/images/*.png',
'ruleType' => 0,
'weight' => 1,
'originGroup' => null,
'options' => [
'allowedHttpMethods' => [
'enabled' => true,
'value' => [
'GET',
'POST'
]
],
'brotli_compression' => [
'enabled' => true,
'value' => [
'text/html',
'text/plain'
]
],
'browser_cache_settings' => [
'enabled' => true,
'value' => '3600s'
],
'cache_http_headers' => [
'enabled' => false,
'value' => [
'vary',
'content-length',
'last-modified',
'connection',
'accept-ranges',
'content-type',
'content-encoding',
'etag',
'cache-control',
'expires',
'keep-alive',
'server'
]
],
'cors' => [
'enabled' => true,
'value' => [
'domain.com',
'domain2.com'
],
'always' => true
],
'country_acl' => [
'enabled' => true,
'policy_type' => 'allow',
'excepted_values' => [
'GB',
'DE'
]
],
'disable_cache' => [
'enabled' => true,
'value' => false
],
'disable_proxy_force_ranges' => [
'enabled' => true,
'value' => true
],
'edge_cache_settings' => [
'enabled' => true,
'value' => '43200s',
'custom_values' => [
'100' => '43200s'
]
],
'fastedge' => [
'enabled' => true,
'on_request_headers' => [
'enabled' => true,
'app_id' => '1001',
'interrupt_on_error' => true
]
],
'fetch_compressed' => [
'enabled' => true,
'value' => false
],
'follow_origin_redirect' => [
'enabled' => true,
'codes' => [
302,
308
]
],
'force_return' => [
'enabled' => true,
'code' => 301,
'body' => 'http://example.com/redirect_address',
'time_interval' => [
'start_time' => '09:00',
'end_time' => '20:00',
'time_zone' => 'CET'
]
],
'forward_host_header' => [
'enabled' => false,
'value' => false
],
'gzipOn' => [
'enabled' => true,
'value' => true
],
'hostHeader' => [
'enabled' => true,
'value' => 'host.com'
],
'ignore_cookie' => [
'enabled' => true,
'value' => true
],
'ignoreQueryString' => [
'enabled' => true,
'value' => false
],
'image_stack' => [
'enabled' => true,
'avif_enabled' => true,
'webp_enabled' => false,
'quality' => 80,
'png_lossless' => true
],
'ip_address_acl' => [
'enabled' => true,
'policy_type' => 'deny',
'excepted_values' => [
'192.168.1.100/32'
]
],
'limit_bandwidth' => [
'enabled' => true,
'limit_type' => 'static',
'speed' => 100,
'buffer' => 200
],
'proxy_cache_key' => [
'enabled' => true,
'value' => '$scheme$uri'
],
'proxy_cache_methods_set' => [
'enabled' => true,
'value' => false
],
'proxy_connect_timeout' => [
'enabled' => true,
'value' => '4s'
],
'proxy_read_timeout' => [
'enabled' => true,
'value' => '10s'
],
'query_params_blacklist' => [
'enabled' => true,
'value' => [
'some',
'blacklisted',
'query'
]
],
'query_params_whitelist' => [
'enabled' => true,
'value' => [
'some',
'whitelisted',
'query'
]
],
'query_string_forwarding' => [
'enabled' => true,
'forward_from_file_types' => [
'm3u8',
'mpd'
],
'forward_to_file_types' => [
'ts',
'mp4'
],
'forward_only_keys' => [
'auth_token',
'session_id'
],
'forward_except_keys' => [
'debug_info'
]
],
'redirect_http_to_https' => [
'enabled' => true,
'value' => true
],
'redirect_https_to_http' => [
'enabled' => false,
'value' => true
],
'referrer_acl' => [
'enabled' => true,
'policy_type' => 'deny',
'excepted_values' => [
'example.com',
'*.example.net'
]
],
'response_headers_hiding_policy' => [
'enabled' => true,
'mode' => 'hide',
'excepted' => [
'my-header'
]
],
'rewrite' => [
'enabled' => true,
'body' => '/(.*) /additional_path/$1',
'flag' => 'break'
],
'secure_key' => [
'enabled' => true,
'key' => 'secretkey',
'type' => 2
],
'slice' => [
'enabled' => true,
'value' => true
],
'sni' => [
'enabled' => true,
'sni_type' => 'custom',
'custom_hostname' => 'custom.example.com'
],
'stale' => [
'enabled' => true,
'value' => [
'http_404',
'http_500'
]
],
'static_response_headers' => [
'enabled' => true,
'value' => [
[
'name' => 'X-Example',
'value' => [
'Value_1'
],
'always' => true
],
[
'name' => 'X-Example-Multiple',
'value' => [
'Value_1',
'Value_2',
'Value_3'
],
'always' => false
]
]
],
'staticHeaders' => [
'enabled' => true,
'value' => [
'X-Example' => 'Value_1',
'X-Example-Multiple' => [
'Value_2',
'Value_3'
]
]
],
'staticRequestHeaders' => [
'enabled' => true,
'value' => [
'Header-One' => 'Value 1',
'Header-Two' => 'Value 2'
]
],
'user_agent_acl' => [
'enabled' => true,
'policy_type' => 'allow',
'excepted_values' => [
'UserAgent Value',
'~*.*bot.*',
''
]
],
'waap' => [
'enabled' => true,
'value' => true
],
'websockets' => [
'enabled' => true,
'value' => 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/cdn/resources/{resource_id}/rules/{rule_id}"
payload := strings.NewReader("{\n \"active\": true,\n \"name\": \"My first rule\",\n \"rule\": \"/folder/images/*.png\",\n \"ruleType\": 0,\n \"weight\": 1,\n \"originGroup\": null,\n \"options\": {\n \"allowedHttpMethods\": {\n \"enabled\": true,\n \"value\": [\n \"GET\",\n \"POST\"\n ]\n },\n \"brotli_compression\": {\n \"enabled\": true,\n \"value\": [\n \"text/html\",\n \"text/plain\"\n ]\n },\n \"browser_cache_settings\": {\n \"enabled\": true,\n \"value\": \"3600s\"\n },\n \"cache_http_headers\": {\n \"enabled\": false,\n \"value\": [\n \"vary\",\n \"content-length\",\n \"last-modified\",\n \"connection\",\n \"accept-ranges\",\n \"content-type\",\n \"content-encoding\",\n \"etag\",\n \"cache-control\",\n \"expires\",\n \"keep-alive\",\n \"server\"\n ]\n },\n \"cors\": {\n \"enabled\": true,\n \"value\": [\n \"domain.com\",\n \"domain2.com\"\n ],\n \"always\": true\n },\n \"country_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"GB\",\n \"DE\"\n ]\n },\n \"disable_cache\": {\n \"enabled\": true,\n \"value\": false\n },\n \"disable_proxy_force_ranges\": {\n \"enabled\": true,\n \"value\": true\n },\n \"edge_cache_settings\": {\n \"enabled\": true,\n \"value\": \"43200s\",\n \"custom_values\": {\n \"100\": \"43200s\"\n }\n },\n \"fastedge\": {\n \"enabled\": true,\n \"on_request_headers\": {\n \"enabled\": true,\n \"app_id\": \"1001\",\n \"interrupt_on_error\": true\n }\n },\n \"fetch_compressed\": {\n \"enabled\": true,\n \"value\": false\n },\n \"follow_origin_redirect\": {\n \"enabled\": true,\n \"codes\": [\n 302,\n 308\n ]\n },\n \"force_return\": {\n \"enabled\": true,\n \"code\": 301,\n \"body\": \"http://example.com/redirect_address\",\n \"time_interval\": {\n \"start_time\": \"09:00\",\n \"end_time\": \"20:00\",\n \"time_zone\": \"CET\"\n }\n },\n \"forward_host_header\": {\n \"enabled\": false,\n \"value\": false\n },\n \"gzipOn\": {\n \"enabled\": true,\n \"value\": true\n },\n \"hostHeader\": {\n \"enabled\": true,\n \"value\": \"host.com\"\n },\n \"ignore_cookie\": {\n \"enabled\": true,\n \"value\": true\n },\n \"ignoreQueryString\": {\n \"enabled\": true,\n \"value\": false\n },\n \"image_stack\": {\n \"enabled\": true,\n \"avif_enabled\": true,\n \"webp_enabled\": false,\n \"quality\": 80,\n \"png_lossless\": true\n },\n \"ip_address_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"192.168.1.100/32\"\n ]\n },\n \"limit_bandwidth\": {\n \"enabled\": true,\n \"limit_type\": \"static\",\n \"speed\": 100,\n \"buffer\": 200\n },\n \"proxy_cache_key\": {\n \"enabled\": true,\n \"value\": \"$scheme$uri\"\n },\n \"proxy_cache_methods_set\": {\n \"enabled\": true,\n \"value\": false\n },\n \"proxy_connect_timeout\": {\n \"enabled\": true,\n \"value\": \"4s\"\n },\n \"proxy_read_timeout\": {\n \"enabled\": true,\n \"value\": \"10s\"\n },\n \"query_params_blacklist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"blacklisted\",\n \"query\"\n ]\n },\n \"query_params_whitelist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"whitelisted\",\n \"query\"\n ]\n },\n \"query_string_forwarding\": {\n \"enabled\": true,\n \"forward_from_file_types\": [\n \"m3u8\",\n \"mpd\"\n ],\n \"forward_to_file_types\": [\n \"ts\",\n \"mp4\"\n ],\n \"forward_only_keys\": [\n \"auth_token\",\n \"session_id\"\n ],\n \"forward_except_keys\": [\n \"debug_info\"\n ]\n },\n \"redirect_http_to_https\": {\n \"enabled\": true,\n \"value\": true\n },\n \"redirect_https_to_http\": {\n \"enabled\": false,\n \"value\": true\n },\n \"referrer_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"example.com\",\n \"*.example.net\"\n ]\n },\n \"response_headers_hiding_policy\": {\n \"enabled\": true,\n \"mode\": \"hide\",\n \"excepted\": [\n \"my-header\"\n ]\n },\n \"rewrite\": {\n \"enabled\": true,\n \"body\": \"/(.*) /additional_path/$1\",\n \"flag\": \"break\"\n },\n \"secure_key\": {\n \"enabled\": true,\n \"key\": \"secretkey\",\n \"type\": 2\n },\n \"slice\": {\n \"enabled\": true,\n \"value\": true\n },\n \"sni\": {\n \"enabled\": true,\n \"sni_type\": \"custom\",\n \"custom_hostname\": \"custom.example.com\"\n },\n \"stale\": {\n \"enabled\": true,\n \"value\": [\n \"http_404\",\n \"http_500\"\n ]\n },\n \"static_response_headers\": {\n \"enabled\": true,\n \"value\": [\n {\n \"name\": \"X-Example\",\n \"value\": [\n \"Value_1\"\n ],\n \"always\": true\n },\n {\n \"name\": \"X-Example-Multiple\",\n \"value\": [\n \"Value_1\",\n \"Value_2\",\n \"Value_3\"\n ],\n \"always\": false\n }\n ]\n },\n \"staticHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"X-Example\": \"Value_1\",\n \"X-Example-Multiple\": [\n \"Value_2\",\n \"Value_3\"\n ]\n }\n },\n \"staticRequestHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"Header-One\": \"Value 1\",\n \"Header-Two\": \"Value 2\"\n }\n },\n \"user_agent_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"UserAgent Value\",\n \"~*.*bot.*\",\n \"\"\n ]\n },\n \"waap\": {\n \"enabled\": true,\n \"value\": true\n },\n \"websockets\": {\n \"enabled\": true,\n \"value\": true\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/cdn/resources/{resource_id}/rules/{rule_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"active\": true,\n \"name\": \"My first rule\",\n \"rule\": \"/folder/images/*.png\",\n \"ruleType\": 0,\n \"weight\": 1,\n \"originGroup\": null,\n \"options\": {\n \"allowedHttpMethods\": {\n \"enabled\": true,\n \"value\": [\n \"GET\",\n \"POST\"\n ]\n },\n \"brotli_compression\": {\n \"enabled\": true,\n \"value\": [\n \"text/html\",\n \"text/plain\"\n ]\n },\n \"browser_cache_settings\": {\n \"enabled\": true,\n \"value\": \"3600s\"\n },\n \"cache_http_headers\": {\n \"enabled\": false,\n \"value\": [\n \"vary\",\n \"content-length\",\n \"last-modified\",\n \"connection\",\n \"accept-ranges\",\n \"content-type\",\n \"content-encoding\",\n \"etag\",\n \"cache-control\",\n \"expires\",\n \"keep-alive\",\n \"server\"\n ]\n },\n \"cors\": {\n \"enabled\": true,\n \"value\": [\n \"domain.com\",\n \"domain2.com\"\n ],\n \"always\": true\n },\n \"country_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"GB\",\n \"DE\"\n ]\n },\n \"disable_cache\": {\n \"enabled\": true,\n \"value\": false\n },\n \"disable_proxy_force_ranges\": {\n \"enabled\": true,\n \"value\": true\n },\n \"edge_cache_settings\": {\n \"enabled\": true,\n \"value\": \"43200s\",\n \"custom_values\": {\n \"100\": \"43200s\"\n }\n },\n \"fastedge\": {\n \"enabled\": true,\n \"on_request_headers\": {\n \"enabled\": true,\n \"app_id\": \"1001\",\n \"interrupt_on_error\": true\n }\n },\n \"fetch_compressed\": {\n \"enabled\": true,\n \"value\": false\n },\n \"follow_origin_redirect\": {\n \"enabled\": true,\n \"codes\": [\n 302,\n 308\n ]\n },\n \"force_return\": {\n \"enabled\": true,\n \"code\": 301,\n \"body\": \"http://example.com/redirect_address\",\n \"time_interval\": {\n \"start_time\": \"09:00\",\n \"end_time\": \"20:00\",\n \"time_zone\": \"CET\"\n }\n },\n \"forward_host_header\": {\n \"enabled\": false,\n \"value\": false\n },\n \"gzipOn\": {\n \"enabled\": true,\n \"value\": true\n },\n \"hostHeader\": {\n \"enabled\": true,\n \"value\": \"host.com\"\n },\n \"ignore_cookie\": {\n \"enabled\": true,\n \"value\": true\n },\n \"ignoreQueryString\": {\n \"enabled\": true,\n \"value\": false\n },\n \"image_stack\": {\n \"enabled\": true,\n \"avif_enabled\": true,\n \"webp_enabled\": false,\n \"quality\": 80,\n \"png_lossless\": true\n },\n \"ip_address_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"192.168.1.100/32\"\n ]\n },\n \"limit_bandwidth\": {\n \"enabled\": true,\n \"limit_type\": \"static\",\n \"speed\": 100,\n \"buffer\": 200\n },\n \"proxy_cache_key\": {\n \"enabled\": true,\n \"value\": \"$scheme$uri\"\n },\n \"proxy_cache_methods_set\": {\n \"enabled\": true,\n \"value\": false\n },\n \"proxy_connect_timeout\": {\n \"enabled\": true,\n \"value\": \"4s\"\n },\n \"proxy_read_timeout\": {\n \"enabled\": true,\n \"value\": \"10s\"\n },\n \"query_params_blacklist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"blacklisted\",\n \"query\"\n ]\n },\n \"query_params_whitelist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"whitelisted\",\n \"query\"\n ]\n },\n \"query_string_forwarding\": {\n \"enabled\": true,\n \"forward_from_file_types\": [\n \"m3u8\",\n \"mpd\"\n ],\n \"forward_to_file_types\": [\n \"ts\",\n \"mp4\"\n ],\n \"forward_only_keys\": [\n \"auth_token\",\n \"session_id\"\n ],\n \"forward_except_keys\": [\n \"debug_info\"\n ]\n },\n \"redirect_http_to_https\": {\n \"enabled\": true,\n \"value\": true\n },\n \"redirect_https_to_http\": {\n \"enabled\": false,\n \"value\": true\n },\n \"referrer_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"example.com\",\n \"*.example.net\"\n ]\n },\n \"response_headers_hiding_policy\": {\n \"enabled\": true,\n \"mode\": \"hide\",\n \"excepted\": [\n \"my-header\"\n ]\n },\n \"rewrite\": {\n \"enabled\": true,\n \"body\": \"/(.*) /additional_path/$1\",\n \"flag\": \"break\"\n },\n \"secure_key\": {\n \"enabled\": true,\n \"key\": \"secretkey\",\n \"type\": 2\n },\n \"slice\": {\n \"enabled\": true,\n \"value\": true\n },\n \"sni\": {\n \"enabled\": true,\n \"sni_type\": \"custom\",\n \"custom_hostname\": \"custom.example.com\"\n },\n \"stale\": {\n \"enabled\": true,\n \"value\": [\n \"http_404\",\n \"http_500\"\n ]\n },\n \"static_response_headers\": {\n \"enabled\": true,\n \"value\": [\n {\n \"name\": \"X-Example\",\n \"value\": [\n \"Value_1\"\n ],\n \"always\": true\n },\n {\n \"name\": \"X-Example-Multiple\",\n \"value\": [\n \"Value_1\",\n \"Value_2\",\n \"Value_3\"\n ],\n \"always\": false\n }\n ]\n },\n \"staticHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"X-Example\": \"Value_1\",\n \"X-Example-Multiple\": [\n \"Value_2\",\n \"Value_3\"\n ]\n }\n },\n \"staticRequestHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"Header-One\": \"Value 1\",\n \"Header-Two\": \"Value 2\"\n }\n },\n \"user_agent_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"UserAgent Value\",\n \"~*.*bot.*\",\n \"\"\n ]\n },\n \"waap\": {\n \"enabled\": true,\n \"value\": true\n },\n \"websockets\": {\n \"enabled\": true,\n \"value\": true\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cdn/resources/{resource_id}/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 \"active\": true,\n \"name\": \"My first rule\",\n \"rule\": \"/folder/images/*.png\",\n \"ruleType\": 0,\n \"weight\": 1,\n \"originGroup\": null,\n \"options\": {\n \"allowedHttpMethods\": {\n \"enabled\": true,\n \"value\": [\n \"GET\",\n \"POST\"\n ]\n },\n \"brotli_compression\": {\n \"enabled\": true,\n \"value\": [\n \"text/html\",\n \"text/plain\"\n ]\n },\n \"browser_cache_settings\": {\n \"enabled\": true,\n \"value\": \"3600s\"\n },\n \"cache_http_headers\": {\n \"enabled\": false,\n \"value\": [\n \"vary\",\n \"content-length\",\n \"last-modified\",\n \"connection\",\n \"accept-ranges\",\n \"content-type\",\n \"content-encoding\",\n \"etag\",\n \"cache-control\",\n \"expires\",\n \"keep-alive\",\n \"server\"\n ]\n },\n \"cors\": {\n \"enabled\": true,\n \"value\": [\n \"domain.com\",\n \"domain2.com\"\n ],\n \"always\": true\n },\n \"country_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"GB\",\n \"DE\"\n ]\n },\n \"disable_cache\": {\n \"enabled\": true,\n \"value\": false\n },\n \"disable_proxy_force_ranges\": {\n \"enabled\": true,\n \"value\": true\n },\n \"edge_cache_settings\": {\n \"enabled\": true,\n \"value\": \"43200s\",\n \"custom_values\": {\n \"100\": \"43200s\"\n }\n },\n \"fastedge\": {\n \"enabled\": true,\n \"on_request_headers\": {\n \"enabled\": true,\n \"app_id\": \"1001\",\n \"interrupt_on_error\": true\n }\n },\n \"fetch_compressed\": {\n \"enabled\": true,\n \"value\": false\n },\n \"follow_origin_redirect\": {\n \"enabled\": true,\n \"codes\": [\n 302,\n 308\n ]\n },\n \"force_return\": {\n \"enabled\": true,\n \"code\": 301,\n \"body\": \"http://example.com/redirect_address\",\n \"time_interval\": {\n \"start_time\": \"09:00\",\n \"end_time\": \"20:00\",\n \"time_zone\": \"CET\"\n }\n },\n \"forward_host_header\": {\n \"enabled\": false,\n \"value\": false\n },\n \"gzipOn\": {\n \"enabled\": true,\n \"value\": true\n },\n \"hostHeader\": {\n \"enabled\": true,\n \"value\": \"host.com\"\n },\n \"ignore_cookie\": {\n \"enabled\": true,\n \"value\": true\n },\n \"ignoreQueryString\": {\n \"enabled\": true,\n \"value\": false\n },\n \"image_stack\": {\n \"enabled\": true,\n \"avif_enabled\": true,\n \"webp_enabled\": false,\n \"quality\": 80,\n \"png_lossless\": true\n },\n \"ip_address_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"192.168.1.100/32\"\n ]\n },\n \"limit_bandwidth\": {\n \"enabled\": true,\n \"limit_type\": \"static\",\n \"speed\": 100,\n \"buffer\": 200\n },\n \"proxy_cache_key\": {\n \"enabled\": true,\n \"value\": \"$scheme$uri\"\n },\n \"proxy_cache_methods_set\": {\n \"enabled\": true,\n \"value\": false\n },\n \"proxy_connect_timeout\": {\n \"enabled\": true,\n \"value\": \"4s\"\n },\n \"proxy_read_timeout\": {\n \"enabled\": true,\n \"value\": \"10s\"\n },\n \"query_params_blacklist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"blacklisted\",\n \"query\"\n ]\n },\n \"query_params_whitelist\": {\n \"enabled\": true,\n \"value\": [\n \"some\",\n \"whitelisted\",\n \"query\"\n ]\n },\n \"query_string_forwarding\": {\n \"enabled\": true,\n \"forward_from_file_types\": [\n \"m3u8\",\n \"mpd\"\n ],\n \"forward_to_file_types\": [\n \"ts\",\n \"mp4\"\n ],\n \"forward_only_keys\": [\n \"auth_token\",\n \"session_id\"\n ],\n \"forward_except_keys\": [\n \"debug_info\"\n ]\n },\n \"redirect_http_to_https\": {\n \"enabled\": true,\n \"value\": true\n },\n \"redirect_https_to_http\": {\n \"enabled\": false,\n \"value\": true\n },\n \"referrer_acl\": {\n \"enabled\": true,\n \"policy_type\": \"deny\",\n \"excepted_values\": [\n \"example.com\",\n \"*.example.net\"\n ]\n },\n \"response_headers_hiding_policy\": {\n \"enabled\": true,\n \"mode\": \"hide\",\n \"excepted\": [\n \"my-header\"\n ]\n },\n \"rewrite\": {\n \"enabled\": true,\n \"body\": \"/(.*) /additional_path/$1\",\n \"flag\": \"break\"\n },\n \"secure_key\": {\n \"enabled\": true,\n \"key\": \"secretkey\",\n \"type\": 2\n },\n \"slice\": {\n \"enabled\": true,\n \"value\": true\n },\n \"sni\": {\n \"enabled\": true,\n \"sni_type\": \"custom\",\n \"custom_hostname\": \"custom.example.com\"\n },\n \"stale\": {\n \"enabled\": true,\n \"value\": [\n \"http_404\",\n \"http_500\"\n ]\n },\n \"static_response_headers\": {\n \"enabled\": true,\n \"value\": [\n {\n \"name\": \"X-Example\",\n \"value\": [\n \"Value_1\"\n ],\n \"always\": true\n },\n {\n \"name\": \"X-Example-Multiple\",\n \"value\": [\n \"Value_1\",\n \"Value_2\",\n \"Value_3\"\n ],\n \"always\": false\n }\n ]\n },\n \"staticHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"X-Example\": \"Value_1\",\n \"X-Example-Multiple\": [\n \"Value_2\",\n \"Value_3\"\n ]\n }\n },\n \"staticRequestHeaders\": {\n \"enabled\": true,\n \"value\": {\n \"Header-One\": \"Value 1\",\n \"Header-Two\": \"Value 2\"\n }\n },\n \"user_agent_acl\": {\n \"enabled\": true,\n \"policy_type\": \"allow\",\n \"excepted_values\": [\n \"UserAgent Value\",\n \"~*.*bot.*\",\n \"\"\n ]\n },\n \"waap\": {\n \"enabled\": true,\n \"value\": true\n },\n \"websockets\": {\n \"enabled\": true,\n \"value\": true\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"id": 5,
"name": "My first rule",
"active": true,
"deleted": false,
"originGroup": null,
"rule": "/folder/images/*.png",
"ruleType": 0,
"weight": 1,
"originProtocol": "HTTPS",
"preset_applied": false,
"primary_rule": null,
"options": {
"allowedHttpMethods": {
"enabled": true,
"value": [
"GET",
"POST"
]
},
"brotli_compression": {
"enabled": true,
"value": [
"text/html",
"text/plain"
]
},
"browser_cache_settings": {
"enabled": true,
"value": "3600s"
},
"cache_http_headers": {
"enabled": false,
"value": [
"vary",
"content-length",
"last-modified",
"connection",
"accept-ranges",
"content-type",
"content-encoding",
"etag",
"cache-control",
"expires",
"keep-alive",
"server"
]
},
"cors": {
"enabled": true,
"value": [
"domain.com",
"domain2.com"
],
"always": true
},
"country_acl": {
"enabled": true,
"policy_type": "allow",
"excepted_values": [
"GB",
"DE"
]
},
"disable_cache": {
"enabled": true,
"value": false
},
"disable_proxy_force_ranges": {
"enabled": true,
"value": true
},
"edge_cache_settings": {
"enabled": true,
"value": "43200s",
"custom_values": {
"100": "43200s"
}
},
"fastedge": {
"enabled": true,
"on_request_headers": {
"enabled": true,
"app_id": "1001",
"interrupt_on_error": true
}
},
"fetch_compressed": {
"enabled": true,
"value": false
},
"follow_origin_redirect": {
"enabled": true,
"codes": [
302,
308
]
},
"force_return": {
"enabled": true,
"code": 301,
"body": "http://example.com/redirect_address",
"time_interval": {
"start_time": "09:00",
"end_time": "20:00",
"time_zone": "CET"
}
},
"forward_host_header": {
"enabled": false,
"value": false
},
"gzipOn": {
"enabled": true,
"value": true
},
"hostHeader": {
"enabled": true,
"value": "host.com"
},
"ignore_cookie": {
"enabled": true,
"value": true
},
"ignoreQueryString": {
"enabled": true,
"value": false
},
"image_stack": {
"enabled": true,
"avif_enabled": true,
"webp_enabled": false,
"quality": 80,
"png_lossless": true
},
"ip_address_acl": {
"enabled": true,
"policy_type": "deny",
"excepted_values": [
"192.168.1.100/32"
]
},
"limit_bandwidth": {
"enabled": true,
"limit_type": "static",
"speed": 100,
"buffer": 200
},
"proxy_cache_key": {
"enabled": true,
"value": "$scheme$uri"
},
"proxy_cache_methods_set": {
"enabled": true,
"value": false
},
"proxy_connect_timeout": {
"enabled": true,
"value": "4s"
},
"proxy_read_timeout": {
"enabled": true,
"value": "10s"
},
"query_params_blacklist": {
"enabled": true,
"value": [
"some",
"blacklisted",
"query"
]
},
"query_params_whitelist": {
"enabled": true,
"value": [
"some",
"whitelisted",
"query"
]
},
"query_string_forwarding": {
"enabled": true,
"forward_from_file_types": [
"m3u8",
"mpd"
],
"forward_to_file_types": [
"ts",
"mp4"
],
"forward_only_keys": [
"auth_token",
"session_id"
],
"forward_except_keys": [
"debug_info"
]
},
"redirect_http_to_https": {
"enabled": true,
"value": true
},
"redirect_https_to_http": {
"enabled": false,
"value": true
},
"referrer_acl": {
"enabled": true,
"policy_type": "deny",
"excepted_values": [
"example.com",
"*.example.net"
]
},
"response_headers_hiding_policy": {
"enabled": true,
"mode": "hide",
"excepted": [
"my-header"
]
},
"rewrite": {
"enabled": true,
"body": "/(.*) /additional_path/$1",
"flag": "break"
},
"secure_key": {
"enabled": true,
"key": "secretkey",
"type": 2
},
"slice": {
"enabled": true,
"value": true
},
"sni": {
"enabled": true,
"sni_type": "custom",
"custom_hostname": "custom.example.com"
},
"stale": {
"enabled": true,
"value": [
"http_404",
"http_500"
]
},
"static_response_headers": {
"enabled": true,
"value": [
{
"name": "X-Example",
"value": [
"Value_1"
],
"always": true
},
{
"name": "X-Example-Multiple",
"value": [
"Value_1",
"Value_2",
"Value_3"
],
"always": false
}
]
},
"staticHeaders": {
"enabled": true,
"value": {
"X-Example": "Value_1",
"X-Example-Multiple": [
"Value_2",
"Value_3"
]
}
},
"staticRequestHeaders": {
"enabled": true,
"value": {
"Header-One": "Value 1",
"Header-Two": "Value 2"
}
},
"user_agent_acl": {
"enabled": true,
"policy_type": "allow",
"excepted_values": [
"UserAgent Value",
"~*.*bot.*",
""
]
},
"waap": {
"enabled": true,
"value": true
},
"websockets": {
"enabled": true,
"value": true
}
}
}{
"errors": {
"name": [
"This field should be unique."
]
}
}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
Enables or disables a rule.
Possible values:
- true - Rule is active, rule settings are applied.
- false - Rule is inactive, rule settings are not applied.
true
Rule name.
255"My first rule"
Path to the file or folder for which the rule will be applied.
The rule is applied if the requested URI matches the rule path.
We add a leading forward slash to any rule path. Specify a path without a forward slash.
300"/folder/images/*.png"
Rule type.
Possible values:
- Type 0 - Regular expression. Must start with '^/' or '/'.
- Type 1 - Regular expression. Note that for this rule type we automatically add / to each rule pattern before your regular expression. This type is legacy, please use Type 0.
0 <= x <= 10
Rule execution order: from lowest (1) to highest.
If requested URI matches multiple rules, the one higher in the order of the rules will be applied.
1 <= x <= 21474836471
Sets a protocol other than the one specified in the CDN resource settings to connect to the origin.
Possible values:
- HTTPS - CDN servers connect to origin via HTTPS protocol.
- HTTP - CDN servers connect to origin via HTTP protocol.
- MATCH - Connection protocol is chosen automatically; in this case, content on origin source should be available for the CDN both through HTTP and HTTPS protocols.
- null -
originProtocolsetting is inherited from the CDN resource settings.
HTTPS, HTTP, MATCH ID of the origin group to which the rule is applied.
If the origin group is not specified, the rule is applied to the origin group that the CDN resource is associated with.
null
List of options that can be configured for the rule.
In case of null value the option is not added to the rule.
Option inherits its value from the CDN resource settings.
Show child attributes
Show child attributes
Response
Successful.
Rule ID.
5
Rule name.
255"My first rule"
Enables or disables a rule.
Possible values:
- true - Rule is active, rule settings are applied.
- false - Rule is inactive, rule settings are not applied.
true
Defines whether the rule has been deleted.
Possible values:
- true - Rule has been deleted.
- false - Rule has not been deleted.
false
ID of the origin group to which the rule is applied.
If the origin group is not specified, the rule is applied to the origin group that the CDN resource is associated with.
null
Path to the file or folder for which the rule will be applied.
The rule is applied if the requested URI matches the rule path.
We add a leading forward slash to any rule path. Specify a path without a forward slash.
300"/folder/images/*.png"
Rule type.
Possible values:
- Type 0 - Regular expression. Must start with '^/' or '/'.
- Type 1 - Regular expression. Note that for this rule type we automatically add / to each rule pattern before your regular expression. This type is legacy, please use Type 0.
0 <= x <= 10
Rule execution order: from lowest (1) to highest.
If requested URI matches multiple rules, the one higher in the order of the rules will be applied.
1 <= x <= 21474836471
Protocol used by CDN servers to request content from an origin source.
Possible values:
- HTTPS - CDN servers connect to origin via HTTPS protocol.
- HTTP - CDN servers connect to origin via HTTP protocol.
- MATCH - Connection protocol is chosen automatically; in this case, content on origin source should be available for the CDN both through HTTP and HTTPS protocols.
HTTPS, HTTP, MATCH "HTTPS"
Sets a protocol other than the one specified in the CDN resource settings to connect to the origin.
Possible values:
- HTTPS - CDN servers connect to origin via HTTPS protocol.
- HTTP - CDN servers connect to origin via HTTP protocol.
- MATCH - Connection protocol is chosen automatically; in this case, content on origin source should be available for the CDN both through HTTP and HTTPS protocols.
- null -
originProtocolsetting is inherited from the CDN resource settings.
HTTPS, HTTP, MATCH Defines whether the rule has an applied preset.
Possible values:
- true - Rule has a preset applied.
- false - Rule does not have a preset applied.
If a preset is applied to the rule, the options included in the preset cannot be edited for the rule.
false
ID of the rule with which the current rule is synchronized within the CDN resource shared cache zone feature.
null
List of options that can be configured for the rule.
In case of null value the option is not added to the rule.
Option inherits its value from the CDN resource settings.
Show child attributes
Show child attributes
Was this page helpful?