Skip to content

Enable/Disable Rule

Enable or disable a rule without modifying other configuration fields.


Endpoint

PUT /api/rules/:id/enable

Quickly toggle a rule's enabled state without performing a full update. This is useful for temporarily disabling rules during maintenance or testing.


Authentication

Requires API Key with Policy Definition permission.


Path Parameters

Parameter Type Description
id UUID Rule ID to enable/disable

Request Body

{
  "enable": false
}
Field Type Required Description
enable boolean Yes true to enable, false to disable

Response

Returns the updated rule object with the new enable value:

Response Format
{
  "id": "rule-uuid-123",
  "name": "Block PII in External APIs",
  "description": "Prevent PII from being sent to third-party services",
  "action": "block",
  "enable": false,
  "icapMode": "REQMOD",
  "apps": ["app-uuid-1"],
  "obfuscations": ["obfuscation-uuid-1"],
  "userFilters": [],
  "groupFilters": [],
  "timeFilterEnabled": false,
  "timeFilter": null,
  "createdAt": 1704067200,
  "updatedAt": 1704240000
}

Examples

Disable Rule

Temporarily disable a rule for maintenance.

RULE_ID="rule-uuid-123"

curl -X PUT "https://your-shield-host:8080/api/rules/$RULE_ID/enable" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enable": false}'
import requests

BASE_URL = "https://your-shield-host:8080"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

rule_id = "rule-uuid-123"

response = requests.put(
    f"{BASE_URL}/api/rules/{rule_id}/enable",
    headers=HEADERS,
    json={"enable": False}
)

print(f"Rule enabled: {response.json()['enable']}")
const axios = require('axios');

const BASE_URL = 'https://your-shield-host:8080';
const HEADERS = { 'Authorization': 'Bearer YOUR_API_KEY' };

const ruleId = 'rule-uuid-123';

const response = await axios.put(
  `${BASE_URL}/api/rules/${ruleId}/enable`,
  { enable: false },
  { headers: HEADERS }
);

console.log(`Rule enabled: ${response.data.enable}`);
Enable Rule

Re-enable a previously disabled rule.

RULE_ID="rule-uuid-123"

curl -X PUT "https://your-shield-host:8080/api/rules/$RULE_ID/enable" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enable": true}'
import requests

BASE_URL = "https://your-shield-host:8080"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

rule_id = "rule-uuid-123"

response = requests.put(
    f"{BASE_URL}/api/rules/{rule_id}/enable",
    headers=HEADERS,
    json={"enable": True}
)

print(f"Rule re-enabled: {response.json()['enable']}")
const axios = require('axios');

const BASE_URL = 'https://your-shield-host:8080';
const HEADERS = { 'Authorization': 'Bearer YOUR_API_KEY' };

const ruleId = 'rule-uuid-123';

const response = await axios.put(
  `${BASE_URL}/api/rules/${ruleId}/enable`,
  { enable: true },
  { headers: HEADERS }
);

console.log(`Rule re-enabled: ${response.data.enable}`);
Bulk Disable Rules

Disable multiple rules during maintenance window.

import requests

BASE_URL = "https://your-shield-host:8080"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

rule_ids = ["rule-uuid-1", "rule-uuid-2", "rule-uuid-3"]

for rule_id in rule_ids:
    response = requests.put(
        f"{BASE_URL}/api/rules/{rule_id}/enable",
        headers=HEADERS,
        json={"enable": False}
    )
    print(f"Disabled rule: {response.json()['name']}")

Error Responses

Status Code Description
400 Invalid request body (missing enable field)
401 Invalid or expired API key
403 Insufficient permissions (requires Policy Definition)
404 Rule not found