import { ColumnSelectorProps } from './ColumnSelectorProps';
import { Value } from '../../../cloudformation/Value';
import { SubstitutionValueProps } from './SubstitutionValueProps';
import { ThresholdProps } from './ThresholdProps';
/**
  Represents a single data quality requirement that should be validated in the scope of this dataset.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html">the AWS Docs</a>
*/
export interface RuleProps {
    /** <code>ColumnSelectors</code>  <a name="cfn-databrew-ruleset-rule-columnselectors"></a>
  List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    columnSelectors?: ColumnSelectorProps[];
    /** <code>Disabled</code>  <a name="cfn-databrew-ruleset-rule-disabled"></a>
  A value that specifies whether the rule is disabled. Once a rule is disabled, a profile job will not validate it during a job run. Default value is false.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    disabled?: Value<boolean>;
    /** <code>SubstitutionMap</code>  <a name="cfn-databrew-ruleset-rule-substitutionmap"></a>
  The map of substitution variable names to their values used in a check expression. Variable names should start with a ‘:’ (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, <code>&quot;:col1&quot;: &quot;</code>Column A<code>&quot;.</code><br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    substitutionMap?: SubstitutionValueProps[];
    /** <code>Name</code>  <a name="cfn-databrew-ruleset-rule-name"></a>
  The name of the rule.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    name: Value<string>;
    /** <code>CheckExpression</code>  <a name="cfn-databrew-ruleset-rule-checkexpression"></a>
  The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions. For example, <code>(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)</code>. Column and value references are substitution variables that should start with the ‘:’ symbol. Depending on the context, substitution variables’ values can be either an actual value or a column name. These values are defined in the SubstitutionMap. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null. If ColumnSelectors has been defined, then there should be no columnn reference in the left side of a condition, for example, <code>is_between :val1 and :val2</code>.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    checkExpression: Value<string>;
    /** <code>Threshold</code>  <a name="cfn-databrew-ruleset-rule-threshold"></a>
  The threshold used with a non-aggregate check expression. Non-aggregate check expressions will be applied to each row in a specific column, and the threshold will be used to determine whether the validation succeeds.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    threshold?: ThresholdProps;
}
