blob: 6c9a8853d488144d98a936c50847c38793fd767a [file] [log] [blame]
{
"$schema": "https://github.com/apache/trafficserver/tree/master/configs/ip_allow.schema.json",
"title": "Traffic Server IP Allow Configuration",
"description": "IP ACL configuration file structure. Licensed under Apache V2 https://www.apache.org/licenses/LICENSE-2.0",
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "Configuration format version."
},
"ip_allow": {
"description": "Root tag for IP address ACL configuration",
"type": "array",
"items": {
"$ref": "#/definitions/rule"
}
}
},
"required": [ "ip_allow" ],
"definitions": {
"range": {
"description": "A range of IP addresses in a single family.",
"type": "string"
},
"action": {
"description": "Enforcement action.",
"type": "string",
"enum": [ "allow", "deny" ]
},
"methods": {
"description": "Methods to check.",
"oneOf": [
{
"type": "string",
"description": "Method name"
},
{
"type": "array",
"description": "List of method names.",
"minItems": 1,
"items": {
"type": "string",
"description": "Method name"
}
}
]
},
"rule": {
"description": "Connection ACL.",
"type": "object",
"properties": {
"apply": {
"description": "Where to apply the rule, inbound or outbound.",
"type": "string",
"enum": [ "in", "out" ]
},
"ip_addrs": {
"oneOf": [
{
"$ref": "#/definitions/range"
},
{
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/range"
}
}
]
},
"action": {
"$ref": "#/definitions/action"
},
"methods": {
"$ref": "#/definitions/methods"
}
},
"required": [ "apply", "ip_addrs", "action" ]
}
}
}