def validate_toolkit(self) -> "UCFunctionToolkit":
        """
        Validates the toolkit configuration and processes function names.

        Returns:
            UCFunctionToolkit: The validated and updated toolkit instance for LlamaIndex integration.
        """
        client = validate_or_set_default_client(self.client)
        self.client = client

        if not self.function_names:
            raise ValueError("Cannot create tool instances without function_names being provided.")

        self.tools_dict = process_function_names(
            function_names=self.function_names,
            tools_dict=self.tools_dict,
            client=client,
            filter_accessible_functions=self.filter_accessible_functions,
            uc_function_to_tool_func=self.uc_function_to_llama_tool,
            return_direct=self.return_direct,
        )

        # Since the 'properties' key is a reserved arg in LlamaIndex, disallow creating a tool with a
        # function that has a 'properties' key in its input schema for LlamaIndex tool usage.
        for tool_name, tool in self.tools_dict.items():
            if "properties" in tool.metadata.fn_schema.model_fields:
                raise ValueError(
                    f"Function '{tool_name}' has a 'properties' key in its input schema. "
                    "Cannot create a tool with this function due to LlamaIndex reserving this argument name."
                )
        return self

        Validates the toolkit configuration and processes function names.

        Returns:
            UCFunctionToolkit: The validated and updated toolkit instance for LlamaIndex integration.
        
ai/integrations/llama_index/src/unitycatalog/ai/llama_index/toolkit.py