using System; namespace ServiceClientGenerator.Endpoints { /// /// Rule Types /// public enum RuleType { /// /// Rule resolves to error /// Error, /// /// Rule resolves to endpoint /// Endpoint, /// /// Rule delegates resolution to inner (tree) rules /// Tree } /// /// Object model for Endpoints Rule /// public class Rule { /// /// Rule type raw value /// public string type { get; set; } /// /// Rule type /// public RuleType Type { get { switch (type.ToLower()) { case "tree": return RuleType.Tree; case "endpoint": return RuleType.Endpoint; case "error": return RuleType.Error; default: throw new Exception("Unknown rule type."); } } } /// /// Rule documentation /// public string documentation { get; set; } /// /// Set of conditions for a rule. /// Rule is resolved when all conditions are met (logical AND) /// Rule can be resolved into endpoint, error or delegate resolution to other inner rules (tree rule) /// public Condition[] conditions { get; set; } /// /// Rule resolves to an endpoint /// public EndpointData endpoint { get; set; } /// /// Rule resolves to an error /// public string error { get; set; } /// /// Rule delegates final resolution to inner (tree) rules /// public Rule[] rules { get; set; } } }