{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/api-search/cisco-expressway/json-schema/cisco-expressway-search-rule-schema.json", "title": "Cisco Expressway Search Rule", "description": "Schema for a search rule configuration on Cisco Expressway. Search rules define how the Expressway routes incoming search requests to the appropriate target zones or policy services based on alias pattern matching, source zone, and protocol filtering.", "type": "object", "properties": { "Name": { "type": "string", "description": "Unique name for the search rule", "minLength": 1, "maxLength": 50, "examples": ["Route-to-CUCM", "Route-to-DNS"] }, "Priority": { "type": "integer", "description": "Priority of the search rule. Lower numbers are evaluated first. Rules with the same priority are evaluated in parallel.", "minimum": 1, "maximum": 65534, "default": 100, "examples": [50, 100, 200] }, "AliasPatternType": { "type": "string", "description": "Type of pattern matching to apply to the destination alias", "enum": ["Prefix", "Suffix", "Regex", "Exact"] }, "AliasPatternString": { "type": "string", "description": "The pattern to match against the destination alias. Format depends on AliasPatternType: literal string for Prefix/Suffix/Exact, regular expression for Regex.", "examples": [".*@example\\.com", "9011", "+1"] }, "TargetZone": { "type": "string", "description": "Name of the zone to which matching search requests are forwarded", "examples": ["CUCM-Neighbor", "DefaultDNSZone"] }, "SourceZone": { "type": "string", "description": "Name of the source zone from which requests must originate for this rule to apply. When empty or not set, requests from any zone match.", "examples": ["LocalZone", "CEtoEXPE-Traversal"] }, "Mode": { "type": "string", "description": "Whether the search rule is enabled and actively used for routing decisions", "enum": ["On", "Off"], "default": "On" }, "Protocol": { "type": "string", "description": "Protocol filter. Only requests using the specified protocol will match this rule.", "enum": ["Any", "H.323", "SIP"], "default": "Any" }, "OnSuccessfulMatch": { "type": "string", "description": "Action to take when a matching alias is found in the target zone. Stop prevents further search rules from being evaluated. Continue allows lower-priority rules to also be evaluated.", "enum": ["Stop", "Continue"], "default": "Stop" }, "Description": { "type": "string", "description": "Optional description of the search rule's purpose and behavior", "maxLength": 200 }, "State": { "type": "string", "description": "Administrative state of the search rule", "enum": ["Enabled", "Disabled"], "default": "Enabled" } }, "required": ["Name", "AliasPatternType", "AliasPatternString", "TargetZone"] }