

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::DataBrew::Ruleset
<a name="aws-resource-databrew-ruleset"></a>

Specifies a new ruleset that can be used in a profile job to validate the data quality of a dataset.

## Syntax
<a name="aws-resource-databrew-ruleset-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-databrew-ruleset-syntax.json"></a>

```
{
  "Type" : "AWS::DataBrew::Ruleset",
  "Properties" : {
      "[Description](#cfn-databrew-ruleset-description)" : String,
      "[Name](#cfn-databrew-ruleset-name)" : String,
      "[Rules](#cfn-databrew-ruleset-rules)" : [ Rule, ... ],
      "[Tags](#cfn-databrew-ruleset-tags)" : [ Tag, ... ],
      "[TargetArn](#cfn-databrew-ruleset-targetarn)" : String
    }
}
```

### YAML
<a name="aws-resource-databrew-ruleset-syntax.yaml"></a>

```
Type: AWS::DataBrew::Ruleset
Properties:
  [Description](#cfn-databrew-ruleset-description): String
  [Name](#cfn-databrew-ruleset-name): String
  [Rules](#cfn-databrew-ruleset-rules): 
    - Rule
  [Tags](#cfn-databrew-ruleset-tags): 
    - Tag
  [TargetArn](#cfn-databrew-ruleset-targetarn): String
```

## Properties
<a name="aws-resource-databrew-ruleset-properties"></a>

`Description`  <a name="cfn-databrew-ruleset-description"></a>
The description of the ruleset.  
*Required*: No  
*Type*: String  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-databrew-ruleset-name"></a>
The name of the ruleset.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Rules`  <a name="cfn-databrew-ruleset-rules"></a>
Contains metadata about the ruleset.  
*Required*: Yes  
*Type*: Array of [Rule](aws-properties-databrew-ruleset-rule.md)  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-databrew-ruleset-tags"></a>
An array of key-value pairs to apply to this resource.  
For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).  
*Required*: No  
*Type*: Array of [Tag](aws-properties-databrew-ruleset-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetArn`  <a name="cfn-databrew-ruleset-targetarn"></a>
The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset is associated with.  
*Required*: Yes  
*Type*: String  
*Minimum*: `20`  
*Maximum*: `2048`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-databrew-ruleset-return-values"></a>

### Ref
<a name="aws-resource-databrew-ruleset-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, Ref returns the resource name. For example, `{ "Ref": "myRuleset" }`.

For an AWS Glue DataBrew ruleset named `myRuleset`, `Ref` returns the name of the ruleset.

# AWS::DataBrew::Ruleset ColumnSelector
<a name="aws-properties-databrew-ruleset-columnselector"></a>

Selector of a column from a dataset for profile job configuration. One selector includes either a column name or a regular expression.

## Syntax
<a name="aws-properties-databrew-ruleset-columnselector-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-databrew-ruleset-columnselector-syntax.json"></a>

```
{
  "[Name](#cfn-databrew-ruleset-columnselector-name)" : String,
  "[Regex](#cfn-databrew-ruleset-columnselector-regex)" : String
}
```

### YAML
<a name="aws-properties-databrew-ruleset-columnselector-syntax.yaml"></a>

```
  [Name](#cfn-databrew-ruleset-columnselector-name): String
  [Regex](#cfn-databrew-ruleset-columnselector-regex): String
```

## Properties
<a name="aws-properties-databrew-ruleset-columnselector-properties"></a>

`Name`  <a name="cfn-databrew-ruleset-columnselector-name"></a>
The name of a column from a dataset.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Regex`  <a name="cfn-databrew-ruleset-columnselector-regex"></a>
A regular expression for selecting a column from a dataset.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::DataBrew::Ruleset Rule
<a name="aws-properties-databrew-ruleset-rule"></a>

Represents a single data quality requirement that should be validated in the scope of this dataset.

## Syntax
<a name="aws-properties-databrew-ruleset-rule-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-databrew-ruleset-rule-syntax.json"></a>

```
{
  "[CheckExpression](#cfn-databrew-ruleset-rule-checkexpression)" : String,
  "[ColumnSelectors](#cfn-databrew-ruleset-rule-columnselectors)" : [ ColumnSelector, ... ],
  "[Disabled](#cfn-databrew-ruleset-rule-disabled)" : Boolean,
  "[Name](#cfn-databrew-ruleset-rule-name)" : String,
  "[SubstitutionMap](#cfn-databrew-ruleset-rule-substitutionmap)" : [ SubstitutionValue, ... ],
  "[Threshold](#cfn-databrew-ruleset-rule-threshold)" : Threshold
}
```

### YAML
<a name="aws-properties-databrew-ruleset-rule-syntax.yaml"></a>

```
  [CheckExpression](#cfn-databrew-ruleset-rule-checkexpression): String
  [ColumnSelectors](#cfn-databrew-ruleset-rule-columnselectors): 
    - ColumnSelector
  [Disabled](#cfn-databrew-ruleset-rule-disabled): Boolean
  [Name](#cfn-databrew-ruleset-rule-name): String
  [SubstitutionMap](#cfn-databrew-ruleset-rule-substitutionmap): 
    - SubstitutionValue
  [Threshold](#cfn-databrew-ruleset-rule-threshold): 
    Threshold
```

## Properties
<a name="aws-properties-databrew-ruleset-rule-properties"></a>

`CheckExpression`  <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, `(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)`. 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, `is_between :val1 and :val2`.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[><0-9A-Za-z_.,:)(!= ]+$`  
*Minimum*: `4`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ColumnSelectors`  <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.  
*Required*: No  
*Type*: Array of [ColumnSelector](aws-properties-databrew-ruleset-columnselector.md)  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Disabled`  <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.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-databrew-ruleset-rule-name"></a>
The name of the rule.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SubstitutionMap`  <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, `":col1": "`Column A`".`  
*Required*: No  
*Type*: Array of [SubstitutionValue](aws-properties-databrew-ruleset-substitutionvalue.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Threshold`  <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.  
*Required*: No  
*Type*: [Threshold](aws-properties-databrew-ruleset-threshold.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::DataBrew::Ruleset SubstitutionValue
<a name="aws-properties-databrew-ruleset-substitutionvalue"></a>

A key-value pair to associate an expression's substitution variable names with their values.

## Syntax
<a name="aws-properties-databrew-ruleset-substitutionvalue-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-databrew-ruleset-substitutionvalue-syntax.json"></a>

```
{
  "[Value](#cfn-databrew-ruleset-substitutionvalue-value)" : String,
  "[ValueReference](#cfn-databrew-ruleset-substitutionvalue-valuereference)" : String
}
```

### YAML
<a name="aws-properties-databrew-ruleset-substitutionvalue-syntax.yaml"></a>

```
  [Value](#cfn-databrew-ruleset-substitutionvalue-value): String
  [ValueReference](#cfn-databrew-ruleset-substitutionvalue-valuereference): String
```

## Properties
<a name="aws-properties-databrew-ruleset-substitutionvalue-properties"></a>

`Value`  <a name="cfn-databrew-ruleset-substitutionvalue-value"></a>
Value or column name.  
*Required*: Yes  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ValueReference`  <a name="cfn-databrew-ruleset-substitutionvalue-valuereference"></a>
Variable name.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^:[A-Za-z0-9_]+$`  
*Minimum*: `2`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::DataBrew::Ruleset Tag
<a name="aws-properties-databrew-ruleset-tag"></a>

<a name="aws-properties-databrew-ruleset-tag-description"></a>The `Tag` property type specifies Property description not available. for an [AWS::DataBrew::Ruleset](aws-resource-databrew-ruleset.md).

## Syntax
<a name="aws-properties-databrew-ruleset-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-databrew-ruleset-tag-syntax.json"></a>

```
{
  "[Key](#cfn-databrew-ruleset-tag-key)" : String,
  "[Value](#cfn-databrew-ruleset-tag-value)" : String
}
```

### YAML
<a name="aws-properties-databrew-ruleset-tag-syntax.yaml"></a>

```
  [Key](#cfn-databrew-ruleset-tag-key): String
  [Value](#cfn-databrew-ruleset-tag-value): String
```

## Properties
<a name="aws-properties-databrew-ruleset-tag-properties"></a>

`Key`  <a name="cfn-databrew-ruleset-tag-key"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-databrew-ruleset-tag-value"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::DataBrew::Ruleset Threshold
<a name="aws-properties-databrew-ruleset-threshold"></a>

The threshold used with a non-aggregate check expression. The non-aggregate check expression will be applied to each row in a specific column. Then the threshold will be used to determine whether the validation succeeds.

## Syntax
<a name="aws-properties-databrew-ruleset-threshold-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-databrew-ruleset-threshold-syntax.json"></a>

```
{
  "[Type](#cfn-databrew-ruleset-threshold-type)" : String,
  "[Unit](#cfn-databrew-ruleset-threshold-unit)" : String,
  "[Value](#cfn-databrew-ruleset-threshold-value)" : Number
}
```

### YAML
<a name="aws-properties-databrew-ruleset-threshold-syntax.yaml"></a>

```
  [Type](#cfn-databrew-ruleset-threshold-type): String
  [Unit](#cfn-databrew-ruleset-threshold-unit): String
  [Value](#cfn-databrew-ruleset-threshold-value): Number
```

## Properties
<a name="aws-properties-databrew-ruleset-threshold-properties"></a>

`Type`  <a name="cfn-databrew-ruleset-threshold-type"></a>
The type of a threshold. Used for comparison of an actual count of rows that satisfy the rule to the threshold value.  
*Required*: No  
*Type*: String  
*Allowed values*: `GREATER_THAN_OR_EQUAL | LESS_THAN_OR_EQUAL | GREATER_THAN | LESS_THAN`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Unit`  <a name="cfn-databrew-ruleset-threshold-unit"></a>
Unit of threshold value. Can be either a COUNT or PERCENTAGE of the full sample size used for validation.  
*Required*: No  
*Type*: String  
*Allowed values*: `COUNT | PERCENTAGE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-databrew-ruleset-threshold-value"></a>
The value of a threshold.  
*Required*: Yes  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)