

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::IoTAnalytics::Dataset
<a name="aws-resource-iotanalytics-dataset"></a>

The AWS::IoTAnalytics::Dataset resource stores data retrieved from a data store by applying a `queryAction` (an SQL query) or a `containerAction` (executing a containerized application). The data set can be populated manually by calling `CreateDatasetContent` or automatically according to a `trigger` you specify. For more information, see [ How to Use AWS IoT Analytics](https://docs.aws.amazon.com/iotanalytics/latest/userguide/welcome.html#aws-iot-analytics-how) in the *AWS IoT Analytics User Guide*. 

## Syntax
<a name="aws-resource-iotanalytics-dataset-syntax"></a>

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

### JSON
<a name="aws-resource-iotanalytics-dataset-syntax.json"></a>

```
{
  "Type" : "AWS::IoTAnalytics::Dataset",
  "Properties" : {
      "[Actions](#cfn-iotanalytics-dataset-actions)" : [ Action, ... ],
      "[ContentDeliveryRules](#cfn-iotanalytics-dataset-contentdeliveryrules)" : [ DatasetContentDeliveryRule, ... ],
      "[DatasetName](#cfn-iotanalytics-dataset-datasetname)" : String,
      "[LateDataRules](#cfn-iotanalytics-dataset-latedatarules)" : [ LateDataRule, ... ],
      "[RetentionPeriod](#cfn-iotanalytics-dataset-retentionperiod)" : RetentionPeriod,
      "[Tags](#cfn-iotanalytics-dataset-tags)" : [ Tag, ... ],
      "[Triggers](#cfn-iotanalytics-dataset-triggers)" : [ Trigger, ... ],
      "[VersioningConfiguration](#cfn-iotanalytics-dataset-versioningconfiguration)" : VersioningConfiguration
    }
}
```

### YAML
<a name="aws-resource-iotanalytics-dataset-syntax.yaml"></a>

```
Type: AWS::IoTAnalytics::Dataset
Properties:
  [Actions](#cfn-iotanalytics-dataset-actions): 
    - Action
  [ContentDeliveryRules](#cfn-iotanalytics-dataset-contentdeliveryrules): 
    - DatasetContentDeliveryRule
  [DatasetName](#cfn-iotanalytics-dataset-datasetname): String
  [LateDataRules](#cfn-iotanalytics-dataset-latedatarules): 
    - LateDataRule
  [RetentionPeriod](#cfn-iotanalytics-dataset-retentionperiod): 
    RetentionPeriod
  [Tags](#cfn-iotanalytics-dataset-tags): 
    - Tag
  [Triggers](#cfn-iotanalytics-dataset-triggers): 
    - Trigger
  [VersioningConfiguration](#cfn-iotanalytics-dataset-versioningconfiguration): 
    VersioningConfiguration
```

## Properties
<a name="aws-resource-iotanalytics-dataset-properties"></a>

`Actions`  <a name="cfn-iotanalytics-dataset-actions"></a>
The `DatasetAction` objects that automatically create the dataset contents.  
*Required*: Yes  
*Type*: Array of [Action](aws-properties-iotanalytics-dataset-action.md)  
*Minimum*: `1`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ContentDeliveryRules`  <a name="cfn-iotanalytics-dataset-contentdeliveryrules"></a>
When dataset contents are created they are delivered to destinations specified here.  
*Required*: No  
*Type*: Array of [DatasetContentDeliveryRule](aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule.md)  
*Minimum*: `0`  
*Maximum*: `20`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DatasetName`  <a name="cfn-iotanalytics-dataset-datasetname"></a>
The name of the dataset.  
*Required*: No  
*Type*: String  
*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)`  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`LateDataRules`  <a name="cfn-iotanalytics-dataset-latedatarules"></a>
A list of data rules that send notifications to CloudWatch, when data arrives late. To specify `lateDataRules`, the dataset must use a [DeltaTimer](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html) filter.  
*Required*: No  
*Type*: Array of [LateDataRule](aws-properties-iotanalytics-dataset-latedatarule.md)  
*Minimum*: `1`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RetentionPeriod`  <a name="cfn-iotanalytics-dataset-retentionperiod"></a>
Optional. How long, in days, message data is kept for the dataset.  
*Required*: No  
*Type*: [RetentionPeriod](aws-properties-iotanalytics-dataset-retentionperiod.md)  
*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-iotanalytics-dataset-tags"></a>
Metadata which can be used to manage the data set.  
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-iotanalytics-dataset-tag.md)  
*Minimum*: `1`  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Triggers`  <a name="cfn-iotanalytics-dataset-triggers"></a>
The `DatasetTrigger` objects that specify when the dataset is automatically updated.  
*Required*: No  
*Type*: Array of [Trigger](aws-properties-iotanalytics-dataset-trigger.md)  
*Minimum*: `0`  
*Maximum*: `5`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`VersioningConfiguration`  <a name="cfn-iotanalytics-dataset-versioningconfiguration"></a>
Optional. How many versions of dataset contents are kept. If not specified or set to null, only the latest version plus the latest succeeded version (if they are different) are kept for the time period specified by the `retentionPeriod` parameter. For more information, see [ Keeping Multiple Versions of AWS IoT Analytics datasets](https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions) in the *AWS IoT Analytics User Guide*.  
*Required*: No  
*Type*: [VersioningConfiguration](aws-properties-iotanalytics-dataset-versioningconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Examples
<a name="aws-resource-iotanalytics-dataset--examples"></a>



**Topics**
+ [Simple SQL Dataset](#aws-resource-iotanalytics-dataset--examples--Simple_SQL_Dataset)
+ [Complex SQL Dataset](#aws-resource-iotanalytics-dataset--examples--Complex_SQL_Dataset)
+ [Simple Container Dataset](#aws-resource-iotanalytics-dataset--examples--Simple_Container_Dataset)
+ [Complex Container Dataset](#aws-resource-iotanalytics-dataset--examples--Complex_Container_Dataset)

### Simple SQL Dataset
<a name="aws-resource-iotanalytics-dataset--examples--Simple_SQL_Dataset"></a>

The following example creates a simple SQL dataset.

#### JSON
<a name="aws-resource-iotanalytics-dataset--examples--Simple_SQL_Dataset--json"></a>

```
{
    "Description": "Create a simple SQL Dataset",
    "Resources": {
        "Dataset": {
            "Type": "AWS::IoTAnalytics::Dataset",
            "Properties": {
                "DatasetName": "SimpleSQLDataset",
                "Actions": [
                    {
                        "ActionName": "SqlAction",
                        "QueryAction": {
                            "SqlQuery": "select * from Datastore"
                        }
                    }
                ],
                "Triggers": [
                    {
                        "Schedule": {
                            "ScheduleExpression": "cron(0 12 * * ? *)"
                        }
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-iotanalytics-dataset--examples--Simple_SQL_Dataset--yaml"></a>

```
---
Description: "Create a simple SQL Dataset"
Resources:
  Dataset:
    Type: "AWS::IoTAnalytics::Dataset"
    Properties:
      DatasetName: "SimpleSQLDataset"
      Actions:
        -
          ActionName: "SqlAction"
          QueryAction:
            SqlQuery: "select * from Datastore"
      Triggers:
        -
          Schedule:
            ScheduleExpression: "cron(0 12 * * ? *)"
```

### Complex SQL Dataset
<a name="aws-resource-iotanalytics-dataset--examples--Complex_SQL_Dataset"></a>

The following example creates a complex SQL dataset.

#### JSON
<a name="aws-resource-iotanalytics-dataset--examples--Complex_SQL_Dataset--json"></a>

```
{
    "Description": "Create a complex SQL Dataset",
    "Resources": {
        "Dataset": {
            "Type": "AWS::IoTAnalytics::Dataset",
            "Properties": {
                "DatasetName": "ComplexSQLDataset",
                "Actions": [
                    {
                        "ActionName": "SqlAction",
                        "QueryAction": {
                            "SqlQuery": "select * from Datastore",
                            "Filters": [
                                {
                                    "DeltaTime": {
                                        "OffsetSeconds": 1,
                                        "TimeExpression": "timestamp"
                                    }
                                }
                            ]
                        }
                    }
                ],
                "Triggers": [
                    {
                        "Schedule": {
                            "ScheduleExpression": "cron(0 12 * * ? *)"
                        }
                    }
                ],
                "RetentionPeriod": {
                    "Unlimited": false,
                    "NumberOfDays": 10
                },
                "Tags": [
                    {
                        "Key": "keyname1",
                        "Value": "value1"
                    },
                    {
                        "Key": "keyname2",
                        "Value": "value2"
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-iotanalytics-dataset--examples--Complex_SQL_Dataset--yaml"></a>

```
---
Description: "Create a complex SQL Dataset"
Resources:
  Dataset:
    Type: "AWS::IoTAnalytics::Dataset"
    Properties:
      DatasetName: "ComplexSQLDataset"
      Actions:
        -
          ActionName: "SqlAction"
          QueryAction:
            SqlQuery: "select * from Datastore"
            Filters:
              -
                DeltaTime:
                  OffsetSeconds: 1
                  TimeExpression: "timestamp"
      Triggers:
        -
          Schedule:
            ScheduleExpression: "cron(0 12 * * ? *)"
      RetentionPeriod:
        Unlimited: false
        NumberOfDays: 10
      Tags:
        -
          Key: "keyname1"
          Value: "value1"
        -
          Key: "keyname2"
          Value: "value2"
```

### Simple Container Dataset
<a name="aws-resource-iotanalytics-dataset--examples--Simple_Container_Dataset"></a>

The following example creates a simple Container dataset.

#### JSON
<a name="aws-resource-iotanalytics-dataset--examples--Simple_Container_Dataset--json"></a>

```
{
    "Description": "Create a simple container Dataset",
    "Resources": {
        "ContainerDataset": {
            "Type": "AWS::IoTAnalytics::Dataset",
            "Properties": {
                "DatasetName": "SimpleContainerDataset",
                "Actions": [
                    {
                        "ActionName": "ContainerAction",
                        "ContainerAction": {
                            "Image": "<your_Account_Id>.dkr.ecr.us-east-1.amazonaws.com/sampleimage",
                            "ExecutionRoleArn": "arn:aws:iam::<your_Account_Id>:role/ExecutionRole",
                            "ResourceConfiguration": {
                                "ComputeType": "ACU_1",
                                "VolumeSizeInGB": 10
                            },
                            "Variables": [
                                {
                                    "VariableName": "Variable1",
                                    "StringValue": "StringValue"
                                }
                            ]
                        }
                    }
                ],
                "Triggers": [
                    {
                        "Schedule": {
                            "ScheduleExpression": "cron(0 12 * * ? *)"
                        }
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-iotanalytics-dataset--examples--Simple_Container_Dataset--yaml"></a>

```
---
Description: "Create a simple container Dataset"
Resources:
  ContainerDataset:
    Type: "AWS::IoTAnalytics::Dataset"
    Properties:
      DatasetName: "SimpleContainerDataset"
      Actions:
        - ActionName: ContainerAction
          ContainerAction:
            Image: "<your_Account_Id>.dkr.ecr.us-east-1.amazonaws.com/sampleimage" 
            ExecutionRoleArn: "arn:aws:iam::<your_Account_Id>:role/ExecutionRole"
            ResourceConfiguration:
              ComputeType: "ACU_1"
              VolumeSizeInGB: 10
            Variables:
              - VariableName: "Variable1"
                StringValue: StringValue
      Triggers:
        -
          Schedule:
            ScheduleExpression: "cron(0 12 * * ? *)"
```

### Complex Container Dataset
<a name="aws-resource-iotanalytics-dataset--examples--Complex_Container_Dataset"></a>

The following example creates a complex Container dataset.

#### JSON
<a name="aws-resource-iotanalytics-dataset--examples--Complex_Container_Dataset--json"></a>

```
{
    "Description": "Create a complex container Dataset",
    "Resources": {
        "TriggeringDataset": {
            "Type": "AWS::IoTAnalytics::Dataset",
            "Properties": {
                "DatasetName": "TriggeringDataset",
                "Actions": [
                    {
                        "ActionName": "SqlAction",
                        "QueryAction": {
                            "SqlQuery": "select * from Datastore"
                        }
                    }
                ]
            }
        },
        "ContainerDataset": {
            "Type": "AWS::IoTAnalytics::Dataset",
            "DependsOn": "TriggeringDataset",
            "Properties": {
                "DatasetName": "ComplexContainerDataset",
                "Actions": [
                    {
                        "ActionName": "ContainerAction",
                        "ContainerAction": {
                            "Image": "<your_Account_Id>.dkr.ecr.us-east-1.amazonaws.com/sampleimage",
                            "ExecutionRoleArn": "arn:aws:iam::<your_Account_Id>:role/ExecutionRole",
                            "ResourceConfiguration": {
                                "ComputeType": "ACU_1",
                                "VolumeSizeInGB": 10
                            },
                            "Variables": [
                                {
                                    "VariableName": "Variable1",
                                    "StringValue": "StringValue"
                                },
                                {
                                    "VariableName": "Variable2",
                                    "DoubleValue": 1
                                },
                                {
                                    "VariableName": "Variable3",
                                    "DatasetContentVersionValue": {
                                        "DatasetName": "BasicDataset"
                                    }
                                },
                                {
                                    "VariableName": "Variable4",
                                    "OutputFileUriValue": {
                                        "FileName": "fileName"
                                    }
                                }
                            ]
                        }
                    }
                ],
                "Triggers": [
                    {
                        "TriggeringDataset": {
                            "DatasetName": "TriggeringDataset"
                        }
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-iotanalytics-dataset--examples--Complex_Container_Dataset--yaml"></a>

```
---
Description: "Create a complex container Dataset"
Resources:
  TriggeringDataset:
    Type: "AWS::IoTAnalytics::Dataset"
    Properties:
      DatasetName: "TriggeringDataset"
      Actions:
        -
          ActionName: "SqlAction"
          QueryAction:
            SqlQuery: "select * from Datastore"

  ContainerDataset:
    Type: "AWS::IoTAnalytics::Dataset"
    DependsOn: TriggeringDataset
    Properties:
      DatasetName: "ComplexContainerDataset"
      Actions:
        -
          ActionName: "ContainerAction"
          ContainerAction:
            Image: "<your_Account_Id>.dkr.ecr.us-east-1.amazonaws.com/sampleimage" 
            ExecutionRoleArn: "arn:aws:iam::<your_Account_Id>:role/ExecutionRole"
            ResourceConfiguration:
              ComputeType: "ACU_1"
              VolumeSizeInGB: 10
            Variables:
              -
                VariableName: "Variable1"
                StringValue: "StringValue"
              -
                VariableName: "Variable2"
                DoubleValue: 1
              -
                VariableName: "Variable3"
                DatasetContentVersionValue:
                  DatasetName: "BasicDataset"
              -
                VariableName: "Variable4"
                OutputFileUriValue:
                  FileName: "fileName"
      Triggers:
        -
          TriggeringDataset:
            DatasetName: "TriggeringDataset"
```

## See also
<a name="aws-resource-iotanalytics-dataset--seealso"></a>
+ [How to Use AWS IoT Analytics](https://docs.aws.amazon.com/iotanalytics/latest/userguide/welcome.html#aws-iot-analytics-how) in the *AWS IoT Analytics User Guide*
+ [CreateDataset](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_CreateDataset.html) in the *AWS IoT Analytics API Reference*

# AWS::IoTAnalytics::Dataset Action
<a name="aws-properties-iotanalytics-dataset-action"></a>

Information needed to run the "containerAction" to produce data set contents.

## Syntax
<a name="aws-properties-iotanalytics-dataset-action-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-action-syntax.json"></a>

```
{
  "[ActionName](#cfn-iotanalytics-dataset-action-actionname)" : String,
  "[ContainerAction](#cfn-iotanalytics-dataset-action-containeraction)" : ContainerAction,
  "[QueryAction](#cfn-iotanalytics-dataset-action-queryaction)" : QueryAction
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-action-syntax.yaml"></a>

```
  [ActionName](#cfn-iotanalytics-dataset-action-actionname): String
  [ContainerAction](#cfn-iotanalytics-dataset-action-containeraction): 
    ContainerAction
  [QueryAction](#cfn-iotanalytics-dataset-action-queryaction): 
    QueryAction
```

## Properties
<a name="aws-properties-iotanalytics-dataset-action-properties"></a>

`ActionName`  <a name="cfn-iotanalytics-dataset-action-actionname"></a>
The name of the data set action by which data set contents are automatically created.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9_]+$`  
*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)

`ContainerAction`  <a name="cfn-iotanalytics-dataset-action-containeraction"></a>
Information which allows the system to run a containerized application in order to create the data set contents. The application must be in a Docker container along with any needed support libraries.  
*Required*: No  
*Type*: [ContainerAction](aws-properties-iotanalytics-dataset-containeraction.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`QueryAction`  <a name="cfn-iotanalytics-dataset-action-queryaction"></a>
An "SqlQueryDatasetAction" object that uses an SQL query to automatically create data set contents.  
*Required*: No  
*Type*: [QueryAction](aws-properties-iotanalytics-dataset-queryaction.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset ContainerAction
<a name="aws-properties-iotanalytics-dataset-containeraction"></a>

Information needed to run the "containerAction" to produce data set contents.

## Syntax
<a name="aws-properties-iotanalytics-dataset-containeraction-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-containeraction-syntax.json"></a>

```
{
  "[ExecutionRoleArn](#cfn-iotanalytics-dataset-containeraction-executionrolearn)" : String,
  "[Image](#cfn-iotanalytics-dataset-containeraction-image)" : String,
  "[ResourceConfiguration](#cfn-iotanalytics-dataset-containeraction-resourceconfiguration)" : ResourceConfiguration,
  "[Variables](#cfn-iotanalytics-dataset-containeraction-variables)" : [ Variable, ... ]
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-containeraction-syntax.yaml"></a>

```
  [ExecutionRoleArn](#cfn-iotanalytics-dataset-containeraction-executionrolearn): String
  [Image](#cfn-iotanalytics-dataset-containeraction-image): String
  [ResourceConfiguration](#cfn-iotanalytics-dataset-containeraction-resourceconfiguration): 
    ResourceConfiguration
  [Variables](#cfn-iotanalytics-dataset-containeraction-variables): 
    - Variable
```

## Properties
<a name="aws-properties-iotanalytics-dataset-containeraction-properties"></a>

`ExecutionRoleArn`  <a name="cfn-iotanalytics-dataset-containeraction-executionrolearn"></a>
The ARN of the role which gives permission to the system to access needed resources in order to run the "containerAction". This includes, at minimum, permission to retrieve the data set contents which are the input to the containerized application.  
*Required*: Yes  
*Type*: String  
*Minimum*: `20`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Image`  <a name="cfn-iotanalytics-dataset-containeraction-image"></a>
The ARN of the Docker container stored in your account. The Docker container contains an application and needed support libraries and is used to generate data set contents.  
*Required*: Yes  
*Type*: String  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResourceConfiguration`  <a name="cfn-iotanalytics-dataset-containeraction-resourceconfiguration"></a>
Configuration of the resource which executes the "containerAction".  
*Required*: Yes  
*Type*: [ResourceConfiguration](aws-properties-iotanalytics-dataset-resourceconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Variables`  <a name="cfn-iotanalytics-dataset-containeraction-variables"></a>
The values of variables used within the context of the execution of the containerized application (basically, parameters passed to the application). Each variable must have a name and a value given by one of "stringValue", "datasetContentVersionValue", or "outputFileUriValue".  
*Required*: No  
*Type*: Array of [Variable](aws-properties-iotanalytics-dataset-variable.md)  
*Minimum*: `0`  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset DatasetContentDeliveryRule
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule"></a>

When dataset contents are created, they are delivered to destination specified here.

## Syntax
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule-syntax.json"></a>

```
{
  "[Destination](#cfn-iotanalytics-dataset-datasetcontentdeliveryrule-destination)" : DatasetContentDeliveryRuleDestination,
  "[EntryName](#cfn-iotanalytics-dataset-datasetcontentdeliveryrule-entryname)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule-syntax.yaml"></a>

```
  [Destination](#cfn-iotanalytics-dataset-datasetcontentdeliveryrule-destination): 
    DatasetContentDeliveryRuleDestination
  [EntryName](#cfn-iotanalytics-dataset-datasetcontentdeliveryrule-entryname): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule-properties"></a>

`Destination`  <a name="cfn-iotanalytics-dataset-datasetcontentdeliveryrule-destination"></a>
The destination to which dataset contents are delivered.  
*Required*: Yes  
*Type*: [DatasetContentDeliveryRuleDestination](aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EntryName`  <a name="cfn-iotanalytics-dataset-datasetcontentdeliveryrule-entryname"></a>
The name of the dataset content delivery rules entry.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset DatasetContentDeliveryRuleDestination
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination"></a>

The destination to which dataset contents are delivered.

## Syntax
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination-syntax.json"></a>

```
{
  "[IotEventsDestinationConfiguration](#cfn-iotanalytics-dataset-datasetcontentdeliveryruledestination-ioteventsdestinationconfiguration)" : IotEventsDestinationConfiguration,
  "[S3DestinationConfiguration](#cfn-iotanalytics-dataset-datasetcontentdeliveryruledestination-s3destinationconfiguration)" : S3DestinationConfiguration
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination-syntax.yaml"></a>

```
  [IotEventsDestinationConfiguration](#cfn-iotanalytics-dataset-datasetcontentdeliveryruledestination-ioteventsdestinationconfiguration): 
    IotEventsDestinationConfiguration
  [S3DestinationConfiguration](#cfn-iotanalytics-dataset-datasetcontentdeliveryruledestination-s3destinationconfiguration): 
    S3DestinationConfiguration
```

## Properties
<a name="aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination-properties"></a>

`IotEventsDestinationConfiguration`  <a name="cfn-iotanalytics-dataset-datasetcontentdeliveryruledestination-ioteventsdestinationconfiguration"></a>
Configuration information for delivery of dataset contents to AWS IoT Events.  
*Required*: No  
*Type*: [IotEventsDestinationConfiguration](aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`S3DestinationConfiguration`  <a name="cfn-iotanalytics-dataset-datasetcontentdeliveryruledestination-s3destinationconfiguration"></a>
Configuration information for delivery of dataset contents to Amazon S3.  
*Required*: No  
*Type*: [S3DestinationConfiguration](aws-properties-iotanalytics-dataset-s3destinationconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset DatasetContentVersionValue
<a name="aws-properties-iotanalytics-dataset-datasetcontentversionvalue"></a>

The dataset whose latest contents are used as input to the notebook or application.

## Syntax
<a name="aws-properties-iotanalytics-dataset-datasetcontentversionvalue-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-datasetcontentversionvalue-syntax.json"></a>

```
{
  "[DatasetName](#cfn-iotanalytics-dataset-datasetcontentversionvalue-datasetname)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-datasetcontentversionvalue-syntax.yaml"></a>

```
  [DatasetName](#cfn-iotanalytics-dataset-datasetcontentversionvalue-datasetname): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-datasetcontentversionvalue-properties"></a>

`DatasetName`  <a name="cfn-iotanalytics-dataset-datasetcontentversionvalue-datasetname"></a>
The name of the dataset whose latest contents are used as input to the notebook or application.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)`  
*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)

# AWS::IoTAnalytics::Dataset DeltaTime
<a name="aws-properties-iotanalytics-dataset-deltatime"></a>

Used to limit data to that which has arrived since the last execution of the action.

## Syntax
<a name="aws-properties-iotanalytics-dataset-deltatime-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-deltatime-syntax.json"></a>

```
{
  "[OffsetSeconds](#cfn-iotanalytics-dataset-deltatime-offsetseconds)" : Integer,
  "[TimeExpression](#cfn-iotanalytics-dataset-deltatime-timeexpression)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-deltatime-syntax.yaml"></a>

```
  [OffsetSeconds](#cfn-iotanalytics-dataset-deltatime-offsetseconds): Integer
  [TimeExpression](#cfn-iotanalytics-dataset-deltatime-timeexpression): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-deltatime-properties"></a>

`OffsetSeconds`  <a name="cfn-iotanalytics-dataset-deltatime-offsetseconds"></a>
The number of seconds of estimated in-flight lag time of message data. When you create dataset contents using message data from a specified timeframe, some message data might still be in flight when processing begins, and so do not arrive in time to be processed. Use this field to make allowances for the in flight time of your message data, so that data not processed from a previous timeframe is included with the next timeframe. Otherwise, missed message data would be excluded from processing during the next timeframe too, because its timestamp places it within the previous timeframe.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TimeExpression`  <a name="cfn-iotanalytics-dataset-deltatime-timeexpression"></a>
An expression by which the time of the message data might be determined. This can be the name of a timestamp field or a SQL expression that is used to derive the time the message data was generated.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset DeltaTimeSessionWindowConfiguration
<a name="aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration"></a>

A structure that contains the configuration information of a delta time session window.

[https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html) specifies a time interval. You can use `DeltaTime` to create dataset contents with data that has arrived in the data store since the last execution. For an example of `DeltaTime`, see [ Creating a SQL dataset with a delta window (CLI)](https://docs.aws.amazon.com/iotanalytics/latest/userguide/automate-create-dataset.html#automate-example6) in the *AWS IoT Analytics User Guide*.

## Syntax
<a name="aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration-syntax.json"></a>

```
{
  "[TimeoutInMinutes](#cfn-iotanalytics-dataset-deltatimesessionwindowconfiguration-timeoutinminutes)" : Integer
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration-syntax.yaml"></a>

```
  [TimeoutInMinutes](#cfn-iotanalytics-dataset-deltatimesessionwindowconfiguration-timeoutinminutes): Integer
```

## Properties
<a name="aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration-properties"></a>

`TimeoutInMinutes`  <a name="cfn-iotanalytics-dataset-deltatimesessionwindowconfiguration-timeoutinminutes"></a>
A time interval. You can use `timeoutInMinutes` so that AWS IoT Analytics can batch up late data notifications that have been generated since the last execution. AWS IoT Analytics sends one batch of notifications to Amazon CloudWatch Events at one time.  
For more information about how to write a timestamp expression, see [Date and Time Functions and Operators](https://prestodb.io/docs/current/functions/datetime.html), in the *Presto 0.172 Documentation*.  
*Required*: Yes  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `60`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset Filter
<a name="aws-properties-iotanalytics-dataset-filter"></a>

Information which is used to filter message data, to segregate it according to the time frame in which it arrives.

## Syntax
<a name="aws-properties-iotanalytics-dataset-filter-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-filter-syntax.json"></a>

```
{
  "[DeltaTime](#cfn-iotanalytics-dataset-filter-deltatime)" : DeltaTime
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-filter-syntax.yaml"></a>

```
  [DeltaTime](#cfn-iotanalytics-dataset-filter-deltatime): 
    DeltaTime
```

## Properties
<a name="aws-properties-iotanalytics-dataset-filter-properties"></a>

`DeltaTime`  <a name="cfn-iotanalytics-dataset-filter-deltatime"></a>
Used to limit data to that which has arrived since the last execution of the action.  
*Required*: No  
*Type*: [DeltaTime](aws-properties-iotanalytics-dataset-deltatime.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset GlueConfiguration
<a name="aws-properties-iotanalytics-dataset-glueconfiguration"></a>

Configuration information for coordination with AWS Glue, a fully managed extract, transform and load (ETL) service.

## Syntax
<a name="aws-properties-iotanalytics-dataset-glueconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-glueconfiguration-syntax.json"></a>

```
{
  "[DatabaseName](#cfn-iotanalytics-dataset-glueconfiguration-databasename)" : String,
  "[TableName](#cfn-iotanalytics-dataset-glueconfiguration-tablename)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-glueconfiguration-syntax.yaml"></a>

```
  [DatabaseName](#cfn-iotanalytics-dataset-glueconfiguration-databasename): String
  [TableName](#cfn-iotanalytics-dataset-glueconfiguration-tablename): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-glueconfiguration-properties"></a>

`DatabaseName`  <a name="cfn-iotanalytics-dataset-glueconfiguration-databasename"></a>
The name of the database in your AWS Glue Data Catalog in which the table is located. An AWS Glue Data Catalog database contains metadata tables.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `150`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TableName`  <a name="cfn-iotanalytics-dataset-glueconfiguration-tablename"></a>
The name of the table in your AWS Glue Data Catalog that is used to perform the ETL operations. An AWS Glue Data Catalog table contains partitioned data and descriptions of data sources and targets.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `150`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset IotEventsDestinationConfiguration
<a name="aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration"></a>

Configuration information for delivery of dataset contents to AWS IoT Events.

## Syntax
<a name="aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration-syntax.json"></a>

```
{
  "[InputName](#cfn-iotanalytics-dataset-ioteventsdestinationconfiguration-inputname)" : String,
  "[RoleArn](#cfn-iotanalytics-dataset-ioteventsdestinationconfiguration-rolearn)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration-syntax.yaml"></a>

```
  [InputName](#cfn-iotanalytics-dataset-ioteventsdestinationconfiguration-inputname): String
  [RoleArn](#cfn-iotanalytics-dataset-ioteventsdestinationconfiguration-rolearn): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration-properties"></a>

`InputName`  <a name="cfn-iotanalytics-dataset-ioteventsdestinationconfiguration-inputname"></a>
The name of the AWS IoT Events input to which dataset contents are delivered.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$`  
*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)

`RoleArn`  <a name="cfn-iotanalytics-dataset-ioteventsdestinationconfiguration-rolearn"></a>
The ARN of the role that grants AWS IoT Analytics permission to deliver dataset contents to an AWS IoT Events input.  
*Required*: Yes  
*Type*: String  
*Minimum*: `20`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset LateDataRule
<a name="aws-properties-iotanalytics-dataset-latedatarule"></a>

A structure that contains the name and configuration information of a late data rule.

## Syntax
<a name="aws-properties-iotanalytics-dataset-latedatarule-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-latedatarule-syntax.json"></a>

```
{
  "[RuleConfiguration](#cfn-iotanalytics-dataset-latedatarule-ruleconfiguration)" : LateDataRuleConfiguration,
  "[RuleName](#cfn-iotanalytics-dataset-latedatarule-rulename)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-latedatarule-syntax.yaml"></a>

```
  [RuleConfiguration](#cfn-iotanalytics-dataset-latedatarule-ruleconfiguration): 
    LateDataRuleConfiguration
  [RuleName](#cfn-iotanalytics-dataset-latedatarule-rulename): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-latedatarule-properties"></a>

`RuleConfiguration`  <a name="cfn-iotanalytics-dataset-latedatarule-ruleconfiguration"></a>
The information needed to configure the late data rule.  
*Required*: Yes  
*Type*: [LateDataRuleConfiguration](aws-properties-iotanalytics-dataset-latedataruleconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RuleName`  <a name="cfn-iotanalytics-dataset-latedatarule-rulename"></a>
The name of the late data rule.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9_]+$`  
*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)

# AWS::IoTAnalytics::Dataset LateDataRuleConfiguration
<a name="aws-properties-iotanalytics-dataset-latedataruleconfiguration"></a>

The information needed to configure a delta time session window.

## Syntax
<a name="aws-properties-iotanalytics-dataset-latedataruleconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-latedataruleconfiguration-syntax.json"></a>

```
{
  "[DeltaTimeSessionWindowConfiguration](#cfn-iotanalytics-dataset-latedataruleconfiguration-deltatimesessionwindowconfiguration)" : DeltaTimeSessionWindowConfiguration
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-latedataruleconfiguration-syntax.yaml"></a>

```
  [DeltaTimeSessionWindowConfiguration](#cfn-iotanalytics-dataset-latedataruleconfiguration-deltatimesessionwindowconfiguration): 
    DeltaTimeSessionWindowConfiguration
```

## Properties
<a name="aws-properties-iotanalytics-dataset-latedataruleconfiguration-properties"></a>

`DeltaTimeSessionWindowConfiguration`  <a name="cfn-iotanalytics-dataset-latedataruleconfiguration-deltatimesessionwindowconfiguration"></a>
The information needed to configure a delta time session window.  
*Required*: No  
*Type*: [DeltaTimeSessionWindowConfiguration](aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset OutputFileUriValue
<a name="aws-properties-iotanalytics-dataset-outputfileurivalue"></a>

The value of the variable as a structure that specifies an output file URI.

## Syntax
<a name="aws-properties-iotanalytics-dataset-outputfileurivalue-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-outputfileurivalue-syntax.json"></a>

```
{
  "[FileName](#cfn-iotanalytics-dataset-outputfileurivalue-filename)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-outputfileurivalue-syntax.yaml"></a>

```
  [FileName](#cfn-iotanalytics-dataset-outputfileurivalue-filename): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-outputfileurivalue-properties"></a>

`FileName`  <a name="cfn-iotanalytics-dataset-outputfileurivalue-filename"></a>
The URI of the location where dataset contents are stored, usually the URI of a file in an S3 bucket.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[\w\.-]{1,255}$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset QueryAction
<a name="aws-properties-iotanalytics-dataset-queryaction"></a>

An "SqlQueryDatasetAction" object that uses an SQL query to automatically create data set contents.

## Syntax
<a name="aws-properties-iotanalytics-dataset-queryaction-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-queryaction-syntax.json"></a>

```
{
  "[Filters](#cfn-iotanalytics-dataset-queryaction-filters)" : [ Filter, ... ],
  "[SqlQuery](#cfn-iotanalytics-dataset-queryaction-sqlquery)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-queryaction-syntax.yaml"></a>

```
  [Filters](#cfn-iotanalytics-dataset-queryaction-filters): 
    - Filter
  [SqlQuery](#cfn-iotanalytics-dataset-queryaction-sqlquery): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-queryaction-properties"></a>

`Filters`  <a name="cfn-iotanalytics-dataset-queryaction-filters"></a>
Pre-filters applied to message data.  
*Required*: No  
*Type*: Array of [Filter](aws-properties-iotanalytics-dataset-filter.md)  
*Minimum*: `0`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SqlQuery`  <a name="cfn-iotanalytics-dataset-queryaction-sqlquery"></a>
An "SqlQueryDatasetAction" object that uses an SQL query to automatically create data set contents.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset ResourceConfiguration
<a name="aws-properties-iotanalytics-dataset-resourceconfiguration"></a>

The configuration of the resource used to execute the `containerAction`.

## Syntax
<a name="aws-properties-iotanalytics-dataset-resourceconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-resourceconfiguration-syntax.json"></a>

```
{
  "[ComputeType](#cfn-iotanalytics-dataset-resourceconfiguration-computetype)" : String,
  "[VolumeSizeInGB](#cfn-iotanalytics-dataset-resourceconfiguration-volumesizeingb)" : Integer
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-resourceconfiguration-syntax.yaml"></a>

```
  [ComputeType](#cfn-iotanalytics-dataset-resourceconfiguration-computetype): String
  [VolumeSizeInGB](#cfn-iotanalytics-dataset-resourceconfiguration-volumesizeingb): Integer
```

## Properties
<a name="aws-properties-iotanalytics-dataset-resourceconfiguration-properties"></a>

`ComputeType`  <a name="cfn-iotanalytics-dataset-resourceconfiguration-computetype"></a>
The type of the compute resource used to execute the `containerAction`. Possible values are: `ACU_1` (vCPU=4, memory=16 GiB) or `ACU_2` (vCPU=8, memory=32 GiB).  
*Required*: Yes  
*Type*: String  
*Allowed values*: `ACU_1 | ACU_2`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`VolumeSizeInGB`  <a name="cfn-iotanalytics-dataset-resourceconfiguration-volumesizeingb"></a>
The size, in GB, of the persistent storage available to the resource instance used to execute the `containerAction` (min: 1, max: 50).  
*Required*: Yes  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset RetentionPeriod
<a name="aws-properties-iotanalytics-dataset-retentionperiod"></a>

How long, in days, message data is kept.

## Syntax
<a name="aws-properties-iotanalytics-dataset-retentionperiod-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-retentionperiod-syntax.json"></a>

```
{
  "[NumberOfDays](#cfn-iotanalytics-dataset-retentionperiod-numberofdays)" : Integer,
  "[Unlimited](#cfn-iotanalytics-dataset-retentionperiod-unlimited)" : Boolean
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-retentionperiod-syntax.yaml"></a>

```
  [NumberOfDays](#cfn-iotanalytics-dataset-retentionperiod-numberofdays): Integer
  [Unlimited](#cfn-iotanalytics-dataset-retentionperiod-unlimited): Boolean
```

## Properties
<a name="aws-properties-iotanalytics-dataset-retentionperiod-properties"></a>

`NumberOfDays`  <a name="cfn-iotanalytics-dataset-retentionperiod-numberofdays"></a>
The number of days that message data is kept. The `unlimited` parameter must be false.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `2147483647`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Unlimited`  <a name="cfn-iotanalytics-dataset-retentionperiod-unlimited"></a>
If true, message data is kept indefinitely.  
*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)

# AWS::IoTAnalytics::Dataset S3DestinationConfiguration
<a name="aws-properties-iotanalytics-dataset-s3destinationconfiguration"></a>

Configuration information for delivery of dataset contents to Amazon Simple Storage Service (Amazon S3).

## Syntax
<a name="aws-properties-iotanalytics-dataset-s3destinationconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-s3destinationconfiguration-syntax.json"></a>

```
{
  "[Bucket](#cfn-iotanalytics-dataset-s3destinationconfiguration-bucket)" : String,
  "[GlueConfiguration](#cfn-iotanalytics-dataset-s3destinationconfiguration-glueconfiguration)" : GlueConfiguration,
  "[Key](#cfn-iotanalytics-dataset-s3destinationconfiguration-key)" : String,
  "[RoleArn](#cfn-iotanalytics-dataset-s3destinationconfiguration-rolearn)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-s3destinationconfiguration-syntax.yaml"></a>

```
  [Bucket](#cfn-iotanalytics-dataset-s3destinationconfiguration-bucket): String
  [GlueConfiguration](#cfn-iotanalytics-dataset-s3destinationconfiguration-glueconfiguration): 
    GlueConfiguration
  [Key](#cfn-iotanalytics-dataset-s3destinationconfiguration-key): String
  [RoleArn](#cfn-iotanalytics-dataset-s3destinationconfiguration-rolearn): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-s3destinationconfiguration-properties"></a>

`Bucket`  <a name="cfn-iotanalytics-dataset-s3destinationconfiguration-bucket"></a>
The name of the S3 bucket to which dataset contents are delivered.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9.\-_]*$`  
*Minimum*: `3`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`GlueConfiguration`  <a name="cfn-iotanalytics-dataset-s3destinationconfiguration-glueconfiguration"></a>
Configuration information for coordination with AWS Glue, a fully managed extract, transform and load (ETL) service.  
*Required*: No  
*Type*: [GlueConfiguration](aws-properties-iotanalytics-dataset-glueconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Key`  <a name="cfn-iotanalytics-dataset-s3destinationconfiguration-key"></a>
The key of the dataset contents object in an S3 bucket. Each object has a key that is a unique identifier. Each object has exactly one key.  
You can create a unique key with the following options:  
+ Use `!{iotanalytics:scheduleTime}` to insert the time of a scheduled SQL query run.
+ Use `!{iotanalytics:versionId}` to insert a unique hash that identifies a dataset content.
+ Use `!{iotanalytics:creationTime}` to insert the creation time of a dataset content.
The following example creates a unique key for a CSV file: `dataset/mydataset/!{iotanalytics:scheduleTime}/!{iotanalytics:versionId}.csv`  
If you don't use `!{iotanalytics:versionId}` to specify the key, you might get duplicate keys. For example, you might have two dataset contents with the same `scheduleTime` but different `versionId`s. This means that one dataset content overwrites the other. 
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*$`  
*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)

`RoleArn`  <a name="cfn-iotanalytics-dataset-s3destinationconfiguration-rolearn"></a>
The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 and AWS Glue resources.  
*Required*: Yes  
*Type*: String  
*Minimum*: `20`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset Schedule
<a name="aws-properties-iotanalytics-dataset-schedule"></a>

The schedule for when to trigger an update.

## Syntax
<a name="aws-properties-iotanalytics-dataset-schedule-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-schedule-syntax.json"></a>

```
{
  "[ScheduleExpression](#cfn-iotanalytics-dataset-schedule-scheduleexpression)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-schedule-syntax.yaml"></a>

```
  [ScheduleExpression](#cfn-iotanalytics-dataset-schedule-scheduleexpression): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-schedule-properties"></a>

`ScheduleExpression`  <a name="cfn-iotanalytics-dataset-schedule-scheduleexpression"></a>
The expression that defines when to trigger an update. For more information, see [ Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html) in the Amazon CloudWatch documentation.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset Tag
<a name="aws-properties-iotanalytics-dataset-tag"></a>

A set of key-value pairs that are used to manage the resource.

## Syntax
<a name="aws-properties-iotanalytics-dataset-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-iotanalytics-dataset-tag-key): String
  [Value](#cfn-iotanalytics-dataset-tag-value): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-tag-properties"></a>

`Key`  <a name="cfn-iotanalytics-dataset-tag-key"></a>
The tag's key.  
*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-iotanalytics-dataset-tag-value"></a>
The tag's value.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*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::IoTAnalytics::Dataset Trigger
<a name="aws-properties-iotanalytics-dataset-trigger"></a>

The "DatasetTrigger" that specifies when the data set is automatically updated.

## Syntax
<a name="aws-properties-iotanalytics-dataset-trigger-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-trigger-syntax.json"></a>

```
{
  "[Schedule](#cfn-iotanalytics-dataset-trigger-schedule)" : Schedule,
  "[TriggeringDataset](#cfn-iotanalytics-dataset-trigger-triggeringdataset)" : TriggeringDataset
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-trigger-syntax.yaml"></a>

```
  [Schedule](#cfn-iotanalytics-dataset-trigger-schedule): 
    Schedule
  [TriggeringDataset](#cfn-iotanalytics-dataset-trigger-triggeringdataset): 
    TriggeringDataset
```

## Properties
<a name="aws-properties-iotanalytics-dataset-trigger-properties"></a>

`Schedule`  <a name="cfn-iotanalytics-dataset-trigger-schedule"></a>
The "Schedule" when the trigger is initiated.  
*Required*: No  
*Type*: [Schedule](aws-properties-iotanalytics-dataset-schedule.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TriggeringDataset`  <a name="cfn-iotanalytics-dataset-trigger-triggeringdataset"></a>
Information about the data set whose content generation triggers the new data set content generation.  
*Required*: No  
*Type*: [TriggeringDataset](aws-properties-iotanalytics-dataset-triggeringdataset.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IoTAnalytics::Dataset TriggeringDataset
<a name="aws-properties-iotanalytics-dataset-triggeringdataset"></a>

Information about the dataset whose content generation triggers the new dataset content generation.

## Syntax
<a name="aws-properties-iotanalytics-dataset-triggeringdataset-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-triggeringdataset-syntax.json"></a>

```
{
  "[DatasetName](#cfn-iotanalytics-dataset-triggeringdataset-datasetname)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-triggeringdataset-syntax.yaml"></a>

```
  [DatasetName](#cfn-iotanalytics-dataset-triggeringdataset-datasetname): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-triggeringdataset-properties"></a>

`DatasetName`  <a name="cfn-iotanalytics-dataset-triggeringdataset-datasetname"></a>
The name of the data set whose content generation triggers the new data set content generation.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)`  
*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)

# AWS::IoTAnalytics::Dataset Variable
<a name="aws-properties-iotanalytics-dataset-variable"></a>

An instance of a variable to be passed to the `containerAction` execution. Each variable must have a name and a value given by one of `stringValue`, `datasetContentVersionValue`, or `outputFileUriValue`.

## Syntax
<a name="aws-properties-iotanalytics-dataset-variable-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-variable-syntax.json"></a>

```
{
  "[DatasetContentVersionValue](#cfn-iotanalytics-dataset-variable-datasetcontentversionvalue)" : DatasetContentVersionValue,
  "[DoubleValue](#cfn-iotanalytics-dataset-variable-doublevalue)" : Number,
  "[OutputFileUriValue](#cfn-iotanalytics-dataset-variable-outputfileurivalue)" : OutputFileUriValue,
  "[StringValue](#cfn-iotanalytics-dataset-variable-stringvalue)" : String,
  "[VariableName](#cfn-iotanalytics-dataset-variable-variablename)" : String
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-variable-syntax.yaml"></a>

```
  [DatasetContentVersionValue](#cfn-iotanalytics-dataset-variable-datasetcontentversionvalue): 
    DatasetContentVersionValue
  [DoubleValue](#cfn-iotanalytics-dataset-variable-doublevalue): Number
  [OutputFileUriValue](#cfn-iotanalytics-dataset-variable-outputfileurivalue): 
    OutputFileUriValue
  [StringValue](#cfn-iotanalytics-dataset-variable-stringvalue): 
    String
  [VariableName](#cfn-iotanalytics-dataset-variable-variablename): String
```

## Properties
<a name="aws-properties-iotanalytics-dataset-variable-properties"></a>

`DatasetContentVersionValue`  <a name="cfn-iotanalytics-dataset-variable-datasetcontentversionvalue"></a>
The value of the variable as a structure that specifies a dataset content version.  
*Required*: No  
*Type*: [DatasetContentVersionValue](aws-properties-iotanalytics-dataset-datasetcontentversionvalue.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DoubleValue`  <a name="cfn-iotanalytics-dataset-variable-doublevalue"></a>
The value of the variable as a double (numeric).  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OutputFileUriValue`  <a name="cfn-iotanalytics-dataset-variable-outputfileurivalue"></a>
The value of the variable as a structure that specifies an output file URI.  
*Required*: No  
*Type*: [OutputFileUriValue](aws-properties-iotanalytics-dataset-outputfileurivalue.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StringValue`  <a name="cfn-iotanalytics-dataset-variable-stringvalue"></a>
The value of the variable as a string.  
*Required*: No  
*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)

`VariableName`  <a name="cfn-iotanalytics-dataset-variable-variablename"></a>
The name of the variable.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*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::IoTAnalytics::Dataset VersioningConfiguration
<a name="aws-properties-iotanalytics-dataset-versioningconfiguration"></a>

Information about the versioning of dataset contents.

## Syntax
<a name="aws-properties-iotanalytics-dataset-versioningconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-iotanalytics-dataset-versioningconfiguration-syntax.json"></a>

```
{
  "[MaxVersions](#cfn-iotanalytics-dataset-versioningconfiguration-maxversions)" : Integer,
  "[Unlimited](#cfn-iotanalytics-dataset-versioningconfiguration-unlimited)" : Boolean
}
```

### YAML
<a name="aws-properties-iotanalytics-dataset-versioningconfiguration-syntax.yaml"></a>

```
  [MaxVersions](#cfn-iotanalytics-dataset-versioningconfiguration-maxversions): Integer
  [Unlimited](#cfn-iotanalytics-dataset-versioningconfiguration-unlimited): Boolean
```

## Properties
<a name="aws-properties-iotanalytics-dataset-versioningconfiguration-properties"></a>

`MaxVersions`  <a name="cfn-iotanalytics-dataset-versioningconfiguration-maxversions"></a>
How many versions of dataset contents are kept. The `unlimited` parameter must be `false`.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `1000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Unlimited`  <a name="cfn-iotanalytics-dataset-versioningconfiguration-unlimited"></a>
If true, unlimited versions of dataset contents are kept.  
*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)