public void Apply(Operation operation, SchemaRegistry schemaRegistry, System.Web.Http.Description.ApiDescription apiDescription)
{
if (operation.operationId.IndexOf("Trigger", StringComparison.InvariantCultureIgnoreCase) >= 0)
{
// this is a possible trigger
var triggerStateParam = operation.parameters.FirstOrDefault(x => x.name.Equals("triggerState"));
if (triggerStateParam != null)
{
if (triggerStateParam.vendorExtensions == null)
{
triggerStateParam.vendorExtensions = new Dictionary<string, object>();
}
// add 2 vendor extensions
// x-ms-visibility: set to 'internal' to signify this is an internal field
// x-ms-scheduler-recommendation: set to a value that logic app can use
triggerStateParam.vendorExtensions.Add("x-ms-visibility", "internal");
triggerStateParam.vendorExtensions.Add("x-ms-scheduler-recommendation",
"@coalesce(triggers()?.outputs?.body?['triggerState'], '')");
}
}
}