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; }
}
}