/// <summary>
        /// This method converts a FunctionMetadata into a JObject
        /// the scale controller understands. It's mainly the trigger binding
        /// with functionName inserted in it.
        /// </summary>
        /// <param name="functionMetadata">FunctionMetadata object to convert to a JObject.</param>
        /// <param name="config">ScriptHostConfiguration to read RootScriptPath from.</param>
        /// <returns>JObject that represent the trigger for scale controller to consume</returns>
        public static async Task <JObject> ToFunctionTrigger(this FunctionMetadata functionMetadata, ScriptJobHostOptions config)
        {
            // Codeless functions do not have a physical file and need to be converted differently.
            if (functionMetadata.IsCodeless())
            {
                return(await GetCodelessFunctionTrigger(functionMetadata));
            }

            return(await GetRegularFunctionTrigger(functionMetadata, config));
        }