validate_args

View as MarkdownOpen in Claude

Validate arguments against the parameter JSON Schema. Uses jsonschema_rs (Rust-based) if available, falls back to jsonschema (pure Python), or skips validation if neither is installed.

Parameters

args
dict[str, Any]Required

Arguments to validate.

Returns

tuple[bool, list[str]] — A tuple of (is_valid, errors). When no validation library is available, returns (True, []).

Example

1from signalwire import SWAIGFunction
2from signalwire import FunctionResult
3
4func = SWAIGFunction(
5 name="lookup_account",
6 handler=lambda args, raw_data: FunctionResult("ok"),
7 description="Look up account status",
8 parameters={
9 "type": "object",
10 "properties": {
11 "account_id": {"type": "string", "description": "Account ID"}
12 },
13 "required": ["account_id"]
14 }
15)
16
17# Valid arguments
18is_valid, errors = func.validate_args({"account_id": "12345"})
19print(f"Valid: {is_valid}, Errors: {errors}")
20# Valid: True, Errors: []
21
22# Missing required argument
23is_valid, errors = func.validate_args({})
24print(f"Valid: {is_valid}, Errors: {errors}")
25# Valid: False, Errors: ["'account_id' is a required property"]