## Example
The following JSON is an example for this standardized configuration component to block access by requestor that supply a HTTP user agent containing `https://leakix.net`:
```json
{ "Patterns":
[ { "Pattern": "https://leakix.net"
, "Probability": 1.0
, "MatchOnPath": false
, "MatchOnIpAddress": false
, "MatchOnUserAgent": true
, "HttpStatusCode": 401
, "PatternCode": "itgenclr999"
, "MessageCode": "itgenclr999-001"
, "MessageText": "Blocked."
, "InternalNotes": "Blocked leakix."
, "DateStartUtc": "2023-01-01"
}
]
}
```
## Definition
### Request Filter Configuration
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://invantive.com/schemas/defs/RequestFilterConfig.schema.json",
"title": "RequestFilterConfig",
"description": "Request filtering configuration.",
"type": "object",
"additionalProperties": false,
"properties": {
"Patterns": {
"type": ["array", "null"],
"items": {
"$ref": "./RequestFilterPatternConfig.schema.json"
},
"description": "Filter patterns."
}
}
}
```
### Request Filter Pattern Configuration
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://invantive.com/schemas/defs/RequestFilterPatternConfig.schema.json",
"title": "RequestFilterPatternConfig",
"description": "Request filter pattern configuration.",
"type": "object",
"additionalProperties": false,
"properties": {
"Pattern": {
"type": ["string", "null"],
"description": "Regular expression pattern."
},
"Probability": {
"type": ["number", "null"],
"description": "Desired probability of the request failing (in value range 0..1)."
},
"MatchOnPath": {
"type": "boolean",
"description": "Whether to match on path.",
"default": true
},
"MatchOnIpAddress": {
"type": "boolean",
"description": "Whether to match on IP address.",
"default": true
},
"MatchOnUserAgent": {
"type": "boolean",
"description": "Whether to match on user agent.",
"default": true
},
"HttpStatusCode": {
"type": ["integer", "null"],
"description": "HTTP status response code on match."
},
"PatternCode": {
"type": ["string", "null"],
"description": "Identifying code."
},
"MessageCode": {
"type": ["string", "null"],
"description": "Response message code."
},
"MessageText": {
"type": ["string", "null"],
"description": "Response message text."
},
"InternalNotes": {
"type": ["string", "null"],
"description": "Internal notes such as reason why filter applies."
},
"DateStartUtc": {
"type": ["string", "null"],
"format": "date-time",
"description": "Start date (UTC) for match."
},
"DateEndUtc": {
"type": ["string", "null"],
"format": "date-time",
"description": "End date (UTC) for match."
}
}
}
```