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

from signalwire import SWAIGFunction
from signalwire import FunctionResult
func = SWAIGFunction(
name="lookup_account",
handler=lambda args, raw_data: FunctionResult("ok"),
description="Look up account status",
parameters={
"type": "object",
"properties": {
"account_id": {"type": "string", "description": "Account ID"}
},
"required": ["account_id"]
}
)
# Valid arguments
is_valid, errors = func.validate_args({"account_id": "12345"})
print(f"Valid: {is_valid}, Errors: {errors}")
# Valid: True, Errors: []
# Missing required argument
is_valid, errors = func.validate_args({})
print(f"Valid: {is_valid}, Errors: {errors}")
# Valid: False, Errors: ["'account_id' is a required property"]