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