@property<EOL><INDENT>def function_name(self):<DEDENT>
if self._function_identifier:<EOL><INDENT>return self._function_identifier<EOL><DEDENT>all_functions = [f for f in self._function_provider.get_all()]<EOL>if len(all_functions) == <NUM_LIT:1>:<EOL><INDENT>return all_functions[<NUM_LIT:0>].name<EOL><DEDENT>all_function_names = [f.name for f in all_functions]<EOL>raise InvokeContextException("<STR_LIT>"<EOL>"<STR_LIT>".format(all_function_names))<EOL>
Returns name of the function to invoke. If no function identifier is provided, this method will return name of
the only function from the template

:return string: Name of the function
:raises InvokeContextException: If function identifier is not provided