using System; using System.Runtime.Serialization; using Newtonsoft.Json; namespace GitHub.DistributedTask.WebApi { [DataContract] [KnownType(typeof(ExpressionValidationItem))] [KnownType(typeof(InputValidationItem))] [JsonConverter(typeof(ValidationItemJsonConverter))] public class ValidationItem { protected ValidationItem(String type) { this.Type = type; } /// /// Type of validation item /// [DataMember(EmitDefaultValue = false)] public String Type { get; private set; } /// /// Value to validate. /// The conditional expression to validate for the input for "expression" type /// Eg:eq(variables['Build.SourceBranch'], 'refs/heads/master');eq(value, 'refs/heads/master') /// [DataMember(EmitDefaultValue = false)] public String Value { get; set; } /// /// Tells whether the current input is valid or not /// [DataMember(EmitDefaultValue = false)] public Boolean? IsValid { get; set; } /// /// Reason for input validation failure /// [DataMember(EmitDefaultValue = false)] public String Reason { get; set; } } }