/// <summary> /// Verifies if a tracked resource has a corresponding ListBySubscription operation /// </summary> /// <param name="definitions"></param> /// <param name="context"></param> /// <returns></returns> public override IEnumerable <ValidationMessage> GetValidationMessages(Dictionary <string, Schema> definitions, RuleContext context) { // Retrieve the list of TrackedResources IEnumerable <string> trackedResources = context.TrackedResourceModels; // Retrieve the list of getOperations IEnumerable <Operation> getOperations = ValidationUtilities.GetOperationsByRequestMethod("get", context.Root); foreach (string trackedResource in trackedResources) { bool listBySubscriptionsCheck = ValidationUtilities.ListByXCheck(getOperations, listBySidRegEx, trackedResource, definitions); if (!listBySubscriptionsCheck) { yield return(new ValidationMessage(new FileObjectPath(context.File, context.Path.AppendProperty(trackedResource)), this, trackedResource)); } } }