

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).

# Amazon Personalize
<a name="AWS_Personalize"></a>

**Resource types**
+ [AWS::Personalize::Dataset](aws-resource-personalize-dataset.md)
+ [AWS::Personalize::DatasetGroup](aws-resource-personalize-datasetgroup.md)
+ [AWS::Personalize::Schema](aws-resource-personalize-schema.md)
+ [AWS::Personalize::Solution](aws-resource-personalize-solution.md)

# AWS::Personalize::Dataset
<a name="aws-resource-personalize-dataset"></a>

Creates an empty dataset and adds it to the specified dataset group. Use [CreateDatasetImportJob](https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetImportJob.html) to import your training data to a dataset.

There are 5 types of datasets:
+ Item interactions
+ Items
+ Users
+ Action interactions (you can't use CloudFormation to create an Action interactions dataset)
+ Actions (you can't use CloudFormation to create an Actions dataset)

Each dataset type has an associated schema with required field types. Only the `Item interactions` dataset is required in order to train a model (also referred to as creating a solution).

A dataset can be in one of the following states:
+ CREATE PENDING > CREATE IN\$1PROGRESS > ACTIVE -or- CREATE FAILED
+ DELETE PENDING > DELETE IN\$1PROGRESS

To get the status of the dataset, call [DescribeDataset](https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDataset.html).

**Related APIs**
+  [CreateDatasetGroup](https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html) 
+  [ListDatasets](https://docs.aws.amazon.com/personalize/latest/dg/API_ListDatasets.html) 
+  [DescribeDataset](https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDataset.html) 
+  [DeleteDataset](https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteDataset.html) 

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

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

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

```
{
  "Type" : "AWS::Personalize::Dataset",
  "Properties" : {
      "[DatasetGroupArn](#cfn-personalize-dataset-datasetgrouparn)" : String,
      "[DatasetImportJob](#cfn-personalize-dataset-datasetimportjob)" : DatasetImportJob,
      "[DatasetType](#cfn-personalize-dataset-datasettype)" : String,
      "[Name](#cfn-personalize-dataset-name)" : String,
      "[SchemaArn](#cfn-personalize-dataset-schemaarn)" : String
    }
}
```

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

```
Type: AWS::Personalize::Dataset
Properties:
  [DatasetGroupArn](#cfn-personalize-dataset-datasetgrouparn): String
  [DatasetImportJob](#cfn-personalize-dataset-datasetimportjob): 
    DatasetImportJob
  [DatasetType](#cfn-personalize-dataset-datasettype): String
  [Name](#cfn-personalize-dataset-name): String
  [SchemaArn](#cfn-personalize-dataset-schemaarn): String
```

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

`DatasetGroupArn`  <a name="cfn-personalize-dataset-datasetgrouparn"></a>
The Amazon Resource Name (ARN) of the dataset group.  
*Required*: Yes  
*Type*: String  
*Pattern*: `arn:([a-z\d-]+):personalize:.*:.*:.+`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DatasetImportJob`  <a name="cfn-personalize-dataset-datasetimportjob"></a>
Describes a job that imports training data from a data source (Amazon S3 bucket) to an Amazon Personalize dataset. If you specify a dataset import job as part of a dataset, all dataset import job fields are required.   
*Required*: No  
*Type*: [DatasetImportJob](aws-properties-personalize-dataset-datasetimportjob.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DatasetType`  <a name="cfn-personalize-dataset-datasettype"></a>
One of the following values:  
+ Interactions
+ Items
+ Users
You can't use CloudFormation to create an Action Interactions or Actions dataset.
*Required*: Yes  
*Type*: String  
*Allowed values*: `Interactions | Items | Users`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-personalize-dataset-name"></a>
The name of the dataset.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\-_]*`  
*Minimum*: `1`  
*Maximum*: `63`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SchemaArn`  <a name="cfn-personalize-dataset-schemaarn"></a>
The ARN of the associated schema.  
*Required*: Yes  
*Type*: String  
*Pattern*: `arn:([a-z\d-]+):personalize:.*:.*:.+`  
*Maximum*: `256`  
*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-personalize-dataset-return-values"></a>

### Ref
<a name="aws-resource-personalize-dataset-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the name of the resource.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-personalize-dataset-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-personalize-dataset-return-values-fn--getatt-fn--getatt"></a>

`DatasetArn`  <a name="DatasetArn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the dataset.

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



### Creating a dataset
<a name="aws-resource-personalize-dataset--examples--Creating_a_dataset"></a>

The following example creates an Amazon Personalize dataset and a dataset import job. The dataset import job imports data from an Amazon S3 bucket into the dataset.

#### JSON
<a name="aws-resource-personalize-dataset--examples--Creating_a_dataset--json"></a>

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Resources": {
    "MyDataset": {
      "Type": "AWS::Personalize::Dataset",
      "Properties": {
        "Name": "my-dataset-name",
        "DatasetType": "Interactions",
        "DatasetGroupArn": "arn:aws:personalize:us-west-2:123456789012:dataset-group/dataset-group-name",
        "SchemaArn": "arn:aws:personalize:us-west-2:123456789012:schema/schema-name",
        "DatasetImportJob": {
          "JobName": "my-import-job-name",
          "DataSource": {
            "DataLocation": "s3://bucket-name/file-name.csv"
          },
          "RoleArn": "arn:aws:iam::123456789012:role/personalize-role"
        }
      }
    }
  }
}
```

#### YAML
<a name="aws-resource-personalize-dataset--examples--Creating_a_dataset--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  MyDataset:
    Type: 'AWS::Personalize::Dataset'
    Properties:
      Name: my-dataset-name
      DatasetType: Interactions
      DatasetGroupArn: 'arn:aws:personalize:us-west-2:123456789012:dataset-group/dataset-group-name'
      SchemaArn: 'arn:aws:personalize:us-west-2:123456789012:schema/schema-name'
      DatasetImportJob:
        JobName: my-import-job-name
        DataSource:
          DataLocation: 's3://bucket-name/file-name.csv'
        RoleArn: 'arn:aws:iam::123456789012:role/personalize-role'
```

# AWS::Personalize::Dataset DatasetImportJob
<a name="aws-properties-personalize-dataset-datasetimportjob"></a>

Describes a job that imports training data from a data source (Amazon S3 bucket) to an Amazon Personalize dataset. 

A dataset import job can be in one of the following states:
+ CREATE PENDING > CREATE IN\$1PROGRESS > ACTIVE -or- CREATE FAILED

If you specify a dataset import job as part of a dataset, all dataset import job fields are required.

## Syntax
<a name="aws-properties-personalize-dataset-datasetimportjob-syntax"></a>

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

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

```
{
  "[DatasetArn](#cfn-personalize-dataset-datasetimportjob-datasetarn)" : String,
  "[DatasetImportJobArn](#cfn-personalize-dataset-datasetimportjob-datasetimportjobarn)" : String,
  "[DataSource](#cfn-personalize-dataset-datasetimportjob-datasource)" : DataSource,
  "[JobName](#cfn-personalize-dataset-datasetimportjob-jobname)" : String,
  "[RoleArn](#cfn-personalize-dataset-datasetimportjob-rolearn)" : String
}
```

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

```
  [DatasetArn](#cfn-personalize-dataset-datasetimportjob-datasetarn): String
  [DatasetImportJobArn](#cfn-personalize-dataset-datasetimportjob-datasetimportjobarn): String
  [DataSource](#cfn-personalize-dataset-datasetimportjob-datasource): 
    DataSource
  [JobName](#cfn-personalize-dataset-datasetimportjob-jobname): String
  [RoleArn](#cfn-personalize-dataset-datasetimportjob-rolearn): String
```

## Properties
<a name="aws-properties-personalize-dataset-datasetimportjob-properties"></a>

`DatasetArn`  <a name="cfn-personalize-dataset-datasetimportjob-datasetarn"></a>
The Amazon Resource Name (ARN) of the dataset that receives the imported data.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:([a-z\d-]+):personalize:.*:.*:.+`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DatasetImportJobArn`  <a name="cfn-personalize-dataset-datasetimportjob-datasetimportjobarn"></a>
The ARN of the dataset import job.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:([a-z\d-]+):personalize:.*:.*:.+`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DataSource`  <a name="cfn-personalize-dataset-datasetimportjob-datasource"></a>
The Amazon S3 bucket that contains the training data to import.  
*Required*: No  
*Type*: [DataSource](aws-properties-personalize-dataset-datasource.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`JobName`  <a name="cfn-personalize-dataset-datasetimportjob-jobname"></a>
The name of the import job.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\-_]*`  
*Minimum*: `1`  
*Maximum*: `63`  
*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-personalize-dataset-datasetimportjob-rolearn"></a>
The ARN of the IAM role that has permissions to read from the Amazon S3 data source.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:([a-z\d-]+):iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+`  
*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::Personalize::Dataset DataSource
<a name="aws-properties-personalize-dataset-datasource"></a>

Describes the data source that contains the data to upload to a dataset, or the list of records to delete from Amazon Personalize.

## Syntax
<a name="aws-properties-personalize-dataset-datasource-syntax"></a>

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

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

```
{
  "[DataLocation](#cfn-personalize-dataset-datasource-datalocation)" : String
}
```

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

```
  [DataLocation](#cfn-personalize-dataset-datasource-datalocation): String
```

## Properties
<a name="aws-properties-personalize-dataset-datasource-properties"></a>

`DataLocation`  <a name="cfn-personalize-dataset-datasource-datalocation"></a>
For dataset import jobs, the path to the Amazon S3 bucket where the data that you want to upload to your dataset is stored. For data deletion jobs, the path to the Amazon S3 bucket that stores the list of records to delete.   
 For example:   
 `s3://bucket-name/folder-name/fileName.csv`   
If your CSV files are in a folder in your Amazon S3 bucket and you want your import job or data deletion job to consider multiple files, you can specify the path to the folder. With a data deletion job, Amazon Personalize uses all files in the folder and any sub folder. Use the following syntax with a `/` after the folder name:  
 `s3://bucket-name/folder-name/`   
*Required*: No  
*Type*: String  
*Pattern*: `(s3|http|https)://.+`  
*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::Personalize::DatasetGroup
<a name="aws-resource-personalize-datasetgroup"></a>

A dataset group is a collection of related datasets (Item interactions, Users, Items, Actions, Action interactions). You create a dataset group by calling [CreateDatasetGroup](https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html). You then create a dataset and add it to a dataset group by calling [CreateDataset](https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html). The dataset group is used to create and train a solution by calling [CreateSolution](https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html). A dataset group can contain only one of each type of dataset.

You can specify an AWS Key Management Service (KMS) key to encrypt the datasets in the group.

## Syntax
<a name="aws-resource-personalize-datasetgroup-syntax"></a>

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

### JSON
<a name="aws-resource-personalize-datasetgroup-syntax.json"></a>

```
{
  "Type" : "AWS::Personalize::DatasetGroup",
  "Properties" : {
      "[Domain](#cfn-personalize-datasetgroup-domain)" : String,
      "[KmsKeyArn](#cfn-personalize-datasetgroup-kmskeyarn)" : String,
      "[Name](#cfn-personalize-datasetgroup-name)" : String,
      "[RoleArn](#cfn-personalize-datasetgroup-rolearn)" : String
    }
}
```

### YAML
<a name="aws-resource-personalize-datasetgroup-syntax.yaml"></a>

```
Type: AWS::Personalize::DatasetGroup
Properties:
  [Domain](#cfn-personalize-datasetgroup-domain): String
  [KmsKeyArn](#cfn-personalize-datasetgroup-kmskeyarn): String
  [Name](#cfn-personalize-datasetgroup-name): String
  [RoleArn](#cfn-personalize-datasetgroup-rolearn): String
```

## Properties
<a name="aws-resource-personalize-datasetgroup-properties"></a>

`Domain`  <a name="cfn-personalize-datasetgroup-domain"></a>
The domain of a Domain dataset group.  
*Required*: No  
*Type*: String  
*Allowed values*: `ECOMMERCE | VIDEO_ON_DEMAND`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`KmsKeyArn`  <a name="cfn-personalize-datasetgroup-kmskeyarn"></a>
The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) key used to encrypt the datasets.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:aws.*:kms:.*:[0-9]{12}:key/.*`  
*Maximum*: `2048`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-personalize-datasetgroup-name"></a>
The name of the dataset group.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\-_]*`  
*Minimum*: `1`  
*Maximum*: `63`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RoleArn`  <a name="cfn-personalize-datasetgroup-rolearn"></a>
The ARN of the AWS Identity and Access Management (IAM) role that has permissions to access the AWS Key Management Service (KMS) key. Supplying an IAM role is only valid when also specifying a KMS key.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:([a-z\d-]+):iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+`  
*Minimum*: `0`  
*Maximum*: `256`  
*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-personalize-datasetgroup-return-values"></a>

### Ref
<a name="aws-resource-personalize-datasetgroup-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the name of the resource.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-personalize-datasetgroup-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-personalize-datasetgroup-return-values-fn--getatt-fn--getatt"></a>

`DatasetGroupArn`  <a name="DatasetGroupArn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the dataset group.

## Examples
<a name="aws-resource-personalize-datasetgroup--examples"></a>



### Creating a dataset group
<a name="aws-resource-personalize-datasetgroup--examples--Creating_a_dataset_group"></a>

The following example creates an Amazon Personalize dataset group.

#### JSON
<a name="aws-resource-personalize-datasetgroup--examples--Creating_a_dataset_group--json"></a>

```
{
   "AWSTemplateFormatVersion":"2010-09-09",
   "Resources":{
      "MyDatasetGroup": {
            "Type": "AWS::Personalize::DatasetGroup",
            "Properties": {
               "Name": "my-dataset-group-name"
            }
      }
   }
}
```

#### YAML
<a name="aws-resource-personalize-datasetgroup--examples--Creating_a_dataset_group--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  MyDatasetGroup:
    Type: 'AWS::Personalize::DatasetGroup'
    Properties:
      Name: my-dataset-group-name
```

# AWS::Personalize::Schema
<a name="aws-resource-personalize-schema"></a>

Creates an Amazon Personalize schema from the specified schema string. The schema you create must be in Avro JSON format.

Amazon Personalize recognizes three schema variants. Each schema is associated with a dataset type and has a set of required field and keywords. If you are creating a schema for a dataset in a Domain dataset group, you provide the domain of the Domain dataset group. You specify a schema when you call [CreateDataset](https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html).

For more information on schemas, see [Datasets and schemas](https://docs.aws.amazon.com/personalize/latest/dg/how-it-works-dataset-schema.html).

**Related APIs**
+  [ListSchemas](https://docs.aws.amazon.com/personalize/latest/dg/API_ListSchemas.html) 
+  [DescribeSchema](https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSchema.html) 
+  [DeleteSchema](https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteSchema.html) 

## Syntax
<a name="aws-resource-personalize-schema-syntax"></a>

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

### JSON
<a name="aws-resource-personalize-schema-syntax.json"></a>

```
{
  "Type" : "AWS::Personalize::Schema",
  "Properties" : {
      "[Domain](#cfn-personalize-schema-domain)" : String,
      "[Name](#cfn-personalize-schema-name)" : String,
      "[Schema](#cfn-personalize-schema-schema)" : String
    }
}
```

### YAML
<a name="aws-resource-personalize-schema-syntax.yaml"></a>

```
Type: AWS::Personalize::Schema
Properties:
  [Domain](#cfn-personalize-schema-domain): String
  [Name](#cfn-personalize-schema-name): String
  [Schema](#cfn-personalize-schema-schema): String
```

## Properties
<a name="aws-resource-personalize-schema-properties"></a>

`Domain`  <a name="cfn-personalize-schema-domain"></a>
The domain of a schema that you created for a dataset in a Domain dataset group.  
*Required*: No  
*Type*: String  
*Allowed values*: `ECOMMERCE | VIDEO_ON_DEMAND`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-personalize-schema-name"></a>
The name of the schema.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\-_]*`  
*Minimum*: `1`  
*Maximum*: `63`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Schema`  <a name="cfn-personalize-schema-schema"></a>
The schema.  
*Required*: Yes  
*Type*: String  
*Maximum*: `10000`  
*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-personalize-schema-return-values"></a>

### Ref
<a name="aws-resource-personalize-schema-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the name of the resource.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-personalize-schema-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-personalize-schema-return-values-fn--getatt-fn--getatt"></a>

`SchemaArn`  <a name="SchemaArn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the schema.

## Examples
<a name="aws-resource-personalize-schema--examples"></a>



### Creating a schema
<a name="aws-resource-personalize-schema--examples--Creating_a_schema"></a>

The following example creates an Amazon Personalize schema for an Interactions dataset.

#### JSON
<a name="aws-resource-personalize-schema--examples--Creating_a_schema--json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "MySchema": {
            "Type": "AWS::Personalize::Schema",
            "Properties": {
                "Name": "my-schema-name",
                "Schema": "{\"type\": \"record\",\"name\": \"Interactions\", \"namespace\": \"com.amazonaws.personalize.schema\", \"fields\": [ { \"name\": \"USER_ID\", \"type\": \"string\" }, { \"name\": \"ITEM_ID\", \"type\": \"string\" }, { \"name\": \"TIMESTAMP\", \"type\": \"long\"}], \"version\": \"1.0\"}"
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-personalize-schema--examples--Creating_a_schema--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  MySchema:
    Type: AWS::Personalize::Schema
    Properties: 
      Name: "my-schema-name"
      Schema: >-
        {"type": "record","name": "Interactions", "namespace":
        "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID",
        "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name":
        "TIMESTAMP", "type": "long"}], "version": "1.0"}
```

# AWS::Personalize::Solution
<a name="aws-resource-personalize-solution"></a>

**Important**  
By default, all new solutions use automatic training. With automatic training, you incur training costs while your solution is active. To avoid unnecessary costs, when you are finished you can [update the solution](https://docs.aws.amazon.com/personalize/latest/dg/API_UpdateSolution.html) to turn off automatic training. For information about training costs, see [Amazon Personalize pricing](https://aws.amazon.com/personalize/pricing/).

An object that provides information about a solution. A solution includes the custom recipe, customized parameters, and trained models (Solution Versions) that Amazon Personalize uses to generate recommendations. 

After you create a solution, you can’t change its configuration. If you need to make changes, you can [clone the solution](https://docs.aws.amazon.com/personalize/latest/dg/cloning-solution.html) with the Amazon Personalize console or create a new one.

## Syntax
<a name="aws-resource-personalize-solution-syntax"></a>

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

### JSON
<a name="aws-resource-personalize-solution-syntax.json"></a>

```
{
  "Type" : "AWS::Personalize::Solution",
  "Properties" : {
      "[DatasetGroupArn](#cfn-personalize-solution-datasetgrouparn)" : String,
      "[EventType](#cfn-personalize-solution-eventtype)" : String,
      "[Name](#cfn-personalize-solution-name)" : String,
      "[PerformAutoML](#cfn-personalize-solution-performautoml)" : Boolean,
      "[PerformHPO](#cfn-personalize-solution-performhpo)" : Boolean,
      "[RecipeArn](#cfn-personalize-solution-recipearn)" : String,
      "[SolutionConfig](#cfn-personalize-solution-solutionconfig)" : SolutionConfig
    }
}
```

### YAML
<a name="aws-resource-personalize-solution-syntax.yaml"></a>

```
Type: AWS::Personalize::Solution
Properties:
  [DatasetGroupArn](#cfn-personalize-solution-datasetgrouparn): String
  [EventType](#cfn-personalize-solution-eventtype): String
  [Name](#cfn-personalize-solution-name): String
  [PerformAutoML](#cfn-personalize-solution-performautoml): Boolean
  [PerformHPO](#cfn-personalize-solution-performhpo): Boolean
  [RecipeArn](#cfn-personalize-solution-recipearn): String
  [SolutionConfig](#cfn-personalize-solution-solutionconfig): 
    SolutionConfig
```

## Properties
<a name="aws-resource-personalize-solution-properties"></a>

`DatasetGroupArn`  <a name="cfn-personalize-solution-datasetgrouparn"></a>
The Amazon Resource Name (ARN) of the dataset group that provides the training data.  
*Required*: Yes  
*Type*: String  
*Pattern*: `arn:([a-z\d-]+):personalize:.*:.*:.+`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`EventType`  <a name="cfn-personalize-solution-eventtype"></a>
The event type (for example, 'click' or 'like') that is used for training the model. If no `eventType` is provided, Amazon Personalize uses all interactions for training with equal weight regardless of type.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-personalize-solution-name"></a>
The name of the solution.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\-_]*`  
*Minimum*: `1`  
*Maximum*: `63`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PerformAutoML`  <a name="cfn-personalize-solution-performautoml"></a>
We don't recommend enabling automated machine learning. Instead, match your use case to the available Amazon Personalize recipes. For more information, see [Determining your use case.](https://docs.aws.amazon.com/personalize/latest/dg/determining-use-case.html)
When true, Amazon Personalize performs a search for the best USER\$1PERSONALIZATION recipe from the list specified in the solution configuration (`recipeArn` must not be specified). When false (the default), Amazon Personalize uses `recipeArn` for training.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PerformHPO`  <a name="cfn-personalize-solution-performhpo"></a>
Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is `false`.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RecipeArn`  <a name="cfn-personalize-solution-recipearn"></a>
The ARN of the recipe used to create the solution. This is required when `performAutoML` is false.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:([a-z\d-]+):personalize:.*:.*:.+`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SolutionConfig`  <a name="cfn-personalize-solution-solutionconfig"></a>
Describes the configuration properties for the solution.  
*Required*: No  
*Type*: [SolutionConfig](aws-properties-personalize-solution-solutionconfig.md)  
*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-personalize-solution-return-values"></a>

### Ref
<a name="aws-resource-personalize-solution-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the name of the resource.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-personalize-solution-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-personalize-solution-return-values-fn--getatt-fn--getatt"></a>

`SolutionArn`  <a name="SolutionArn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the solution.

## Examples
<a name="aws-resource-personalize-solution--examples"></a>



### Creating a solution
<a name="aws-resource-personalize-solution--examples--Creating_a_solution"></a>

The following example creates an Amazon Personalize solution with the User-Personalization recipe and an event value threshold.

#### JSON
<a name="aws-resource-personalize-solution--examples--Creating_a_solution--json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "MySolution": {
            "Type": "AWS::Personalize::Solution",
            "Properties": {
               "Name": "my-solution-name",
               "DatasetGroupArn": "arn:aws:personalize:us-west-2:123456789012:dataset-group/my-dataset-group-name",
               "RecipeArn": "arn:aws:personalize:::recipe/aws-user-personalization",
               "SolutionConfig": {
                  "EventValueThreshold" : ".05"
                }
            }
         }
    }
}
```

#### YAML
<a name="aws-resource-personalize-solution--examples--Creating_a_solution--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  MySolution:
    Type: 'AWS::Personalize::Solution'
    Properties:
      Name: my-solution-name
      DatasetGroupArn: >-
        arn:aws:personalize:us-west-2:123456789012:dataset-group/my-dataset-group-name
      RecipeArn: 'arn:aws:personalize:::recipe/aws-user-personalization'
      SolutionConfig:
        EventValueThreshold: '.05'
```

# AWS::Personalize::Solution AlgorithmHyperParameterRanges
<a name="aws-properties-personalize-solution-algorithmhyperparameterranges"></a>

Specifies the hyperparameters and their ranges. Hyperparameters can be categorical, continuous, or integer-valued.

## Syntax
<a name="aws-properties-personalize-solution-algorithmhyperparameterranges-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-algorithmhyperparameterranges-syntax.json"></a>

```
{
  "[CategoricalHyperParameterRanges](#cfn-personalize-solution-algorithmhyperparameterranges-categoricalhyperparameterranges)" : [ CategoricalHyperParameterRange, ... ],
  "[ContinuousHyperParameterRanges](#cfn-personalize-solution-algorithmhyperparameterranges-continuoushyperparameterranges)" : [ ContinuousHyperParameterRange, ... ],
  "[IntegerHyperParameterRanges](#cfn-personalize-solution-algorithmhyperparameterranges-integerhyperparameterranges)" : [ IntegerHyperParameterRange, ... ]
}
```

### YAML
<a name="aws-properties-personalize-solution-algorithmhyperparameterranges-syntax.yaml"></a>

```
  [CategoricalHyperParameterRanges](#cfn-personalize-solution-algorithmhyperparameterranges-categoricalhyperparameterranges): 
    - CategoricalHyperParameterRange
  [ContinuousHyperParameterRanges](#cfn-personalize-solution-algorithmhyperparameterranges-continuoushyperparameterranges): 
    - ContinuousHyperParameterRange
  [IntegerHyperParameterRanges](#cfn-personalize-solution-algorithmhyperparameterranges-integerhyperparameterranges): 
    - IntegerHyperParameterRange
```

## Properties
<a name="aws-properties-personalize-solution-algorithmhyperparameterranges-properties"></a>

`CategoricalHyperParameterRanges`  <a name="cfn-personalize-solution-algorithmhyperparameterranges-categoricalhyperparameterranges"></a>
Provides the name and range of a categorical hyperparameter.  
*Required*: No  
*Type*: Array of [CategoricalHyperParameterRange](aws-properties-personalize-solution-categoricalhyperparameterrange.md)  
*Maximum*: `100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ContinuousHyperParameterRanges`  <a name="cfn-personalize-solution-algorithmhyperparameterranges-continuoushyperparameterranges"></a>
Provides the name and range of a continuous hyperparameter.  
*Required*: No  
*Type*: Array of [ContinuousHyperParameterRange](aws-properties-personalize-solution-continuoushyperparameterrange.md)  
*Maximum*: `100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`IntegerHyperParameterRanges`  <a name="cfn-personalize-solution-algorithmhyperparameterranges-integerhyperparameterranges"></a>
Provides the name and range of an integer-valued hyperparameter.  
*Required*: No  
*Type*: Array of [IntegerHyperParameterRange](aws-properties-personalize-solution-integerhyperparameterrange.md)  
*Maximum*: `100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Personalize::Solution AutoMLConfig
<a name="aws-properties-personalize-solution-automlconfig"></a>

When the solution performs AutoML (`performAutoML` is true in [CreateSolution](https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html)), Amazon Personalize determines which recipe, from the specified list, optimizes the given metric. Amazon Personalize then uses that recipe for the solution.

## Syntax
<a name="aws-properties-personalize-solution-automlconfig-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-automlconfig-syntax.json"></a>

```
{
  "[MetricName](#cfn-personalize-solution-automlconfig-metricname)" : String,
  "[RecipeList](#cfn-personalize-solution-automlconfig-recipelist)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-personalize-solution-automlconfig-syntax.yaml"></a>

```
  [MetricName](#cfn-personalize-solution-automlconfig-metricname): String
  [RecipeList](#cfn-personalize-solution-automlconfig-recipelist): 
    - String
```

## Properties
<a name="aws-properties-personalize-solution-automlconfig-properties"></a>

`MetricName`  <a name="cfn-personalize-solution-automlconfig-metricname"></a>
The metric to optimize.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RecipeList`  <a name="cfn-personalize-solution-automlconfig-recipelist"></a>
The list of candidate recipes.  
*Required*: No  
*Type*: Array of String  
*Maximum*: `256 | 100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Personalize::Solution CategoricalHyperParameterRange
<a name="aws-properties-personalize-solution-categoricalhyperparameterrange"></a>

Provides the name and range of a categorical hyperparameter.

## Syntax
<a name="aws-properties-personalize-solution-categoricalhyperparameterrange-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-categoricalhyperparameterrange-syntax.json"></a>

```
{
  "[Name](#cfn-personalize-solution-categoricalhyperparameterrange-name)" : String,
  "[Values](#cfn-personalize-solution-categoricalhyperparameterrange-values)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-personalize-solution-categoricalhyperparameterrange-syntax.yaml"></a>

```
  [Name](#cfn-personalize-solution-categoricalhyperparameterrange-name): String
  [Values](#cfn-personalize-solution-categoricalhyperparameterrange-values): 
    - String
```

## Properties
<a name="aws-properties-personalize-solution-categoricalhyperparameterrange-properties"></a>

`Name`  <a name="cfn-personalize-solution-categoricalhyperparameterrange-name"></a>
The name of the hyperparameter.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Values`  <a name="cfn-personalize-solution-categoricalhyperparameterrange-values"></a>
A list of the categories for the hyperparameter.  
*Required*: No  
*Type*: Array of String  
*Maximum*: `1000 | 100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Personalize::Solution ContinuousHyperParameterRange
<a name="aws-properties-personalize-solution-continuoushyperparameterrange"></a>

Provides the name and range of a continuous hyperparameter.

## Syntax
<a name="aws-properties-personalize-solution-continuoushyperparameterrange-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-continuoushyperparameterrange-syntax.json"></a>

```
{
  "[MaxValue](#cfn-personalize-solution-continuoushyperparameterrange-maxvalue)" : Number,
  "[MinValue](#cfn-personalize-solution-continuoushyperparameterrange-minvalue)" : Number,
  "[Name](#cfn-personalize-solution-continuoushyperparameterrange-name)" : String
}
```

### YAML
<a name="aws-properties-personalize-solution-continuoushyperparameterrange-syntax.yaml"></a>

```
  [MaxValue](#cfn-personalize-solution-continuoushyperparameterrange-maxvalue): Number
  [MinValue](#cfn-personalize-solution-continuoushyperparameterrange-minvalue): Number
  [Name](#cfn-personalize-solution-continuoushyperparameterrange-name): String
```

## Properties
<a name="aws-properties-personalize-solution-continuoushyperparameterrange-properties"></a>

`MaxValue`  <a name="cfn-personalize-solution-continuoushyperparameterrange-maxvalue"></a>
The maximum allowable value for the hyperparameter.  
*Required*: No  
*Type*: Number  
*Minimum*: `-1000000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`MinValue`  <a name="cfn-personalize-solution-continuoushyperparameterrange-minvalue"></a>
The minimum allowable value for the hyperparameter.  
*Required*: No  
*Type*: Number  
*Minimum*: `-1000000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-personalize-solution-continuoushyperparameterrange-name"></a>
The name of the hyperparameter.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Personalize::Solution HpoConfig
<a name="aws-properties-personalize-solution-hpoconfig"></a>

Describes the properties for hyperparameter optimization (HPO).

## Syntax
<a name="aws-properties-personalize-solution-hpoconfig-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-hpoconfig-syntax.json"></a>

```
{
  "[AlgorithmHyperParameterRanges](#cfn-personalize-solution-hpoconfig-algorithmhyperparameterranges)" : AlgorithmHyperParameterRanges,
  "[HpoObjective](#cfn-personalize-solution-hpoconfig-hpoobjective)" : HpoObjective,
  "[HpoResourceConfig](#cfn-personalize-solution-hpoconfig-hporesourceconfig)" : HpoResourceConfig
}
```

### YAML
<a name="aws-properties-personalize-solution-hpoconfig-syntax.yaml"></a>

```
  [AlgorithmHyperParameterRanges](#cfn-personalize-solution-hpoconfig-algorithmhyperparameterranges): 
    AlgorithmHyperParameterRanges
  [HpoObjective](#cfn-personalize-solution-hpoconfig-hpoobjective): 
    HpoObjective
  [HpoResourceConfig](#cfn-personalize-solution-hpoconfig-hporesourceconfig): 
    HpoResourceConfig
```

## Properties
<a name="aws-properties-personalize-solution-hpoconfig-properties"></a>

`AlgorithmHyperParameterRanges`  <a name="cfn-personalize-solution-hpoconfig-algorithmhyperparameterranges"></a>
The hyperparameters and their allowable ranges.  
*Required*: No  
*Type*: [AlgorithmHyperParameterRanges](aws-properties-personalize-solution-algorithmhyperparameterranges.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`HpoObjective`  <a name="cfn-personalize-solution-hpoconfig-hpoobjective"></a>
The metric to optimize during HPO.  
Amazon Personalize doesn't support configuring the `hpoObjective` at this time.
*Required*: No  
*Type*: [HpoObjective](aws-properties-personalize-solution-hpoobjective.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`HpoResourceConfig`  <a name="cfn-personalize-solution-hpoconfig-hporesourceconfig"></a>
Describes the resource configuration for HPO.  
*Required*: No  
*Type*: [HpoResourceConfig](aws-properties-personalize-solution-hporesourceconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Personalize::Solution HpoObjective
<a name="aws-properties-personalize-solution-hpoobjective"></a>

The metric to optimize during hyperparameter optimization (HPO).

**Note**  
Amazon Personalize doesn't support configuring the `hpoObjective` at this time.

## Syntax
<a name="aws-properties-personalize-solution-hpoobjective-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-hpoobjective-syntax.json"></a>

```
{
  "[MetricName](#cfn-personalize-solution-hpoobjective-metricname)" : String,
  "[MetricRegex](#cfn-personalize-solution-hpoobjective-metricregex)" : String,
  "[Type](#cfn-personalize-solution-hpoobjective-type)" : String
}
```

### YAML
<a name="aws-properties-personalize-solution-hpoobjective-syntax.yaml"></a>

```
  [MetricName](#cfn-personalize-solution-hpoobjective-metricname): String
  [MetricRegex](#cfn-personalize-solution-hpoobjective-metricregex): String
  [Type](#cfn-personalize-solution-hpoobjective-type): String
```

## Properties
<a name="aws-properties-personalize-solution-hpoobjective-properties"></a>

`MetricName`  <a name="cfn-personalize-solution-hpoobjective-metricname"></a>
The name of the metric.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`MetricRegex`  <a name="cfn-personalize-solution-hpoobjective-metricregex"></a>
A regular expression for finding the metric in the training job logs.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Type`  <a name="cfn-personalize-solution-hpoobjective-type"></a>
The type of the metric. Valid values are `Maximize` and `Minimize`.  
*Required*: No  
*Type*: String  
*Allowed values*: `Maximize | Minimize`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Personalize::Solution HpoResourceConfig
<a name="aws-properties-personalize-solution-hporesourceconfig"></a>

Describes the resource configuration for hyperparameter optimization (HPO).

## Syntax
<a name="aws-properties-personalize-solution-hporesourceconfig-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-hporesourceconfig-syntax.json"></a>

```
{
  "[MaxNumberOfTrainingJobs](#cfn-personalize-solution-hporesourceconfig-maxnumberoftrainingjobs)" : String,
  "[MaxParallelTrainingJobs](#cfn-personalize-solution-hporesourceconfig-maxparalleltrainingjobs)" : String
}
```

### YAML
<a name="aws-properties-personalize-solution-hporesourceconfig-syntax.yaml"></a>

```
  [MaxNumberOfTrainingJobs](#cfn-personalize-solution-hporesourceconfig-maxnumberoftrainingjobs): String
  [MaxParallelTrainingJobs](#cfn-personalize-solution-hporesourceconfig-maxparalleltrainingjobs): String
```

## Properties
<a name="aws-properties-personalize-solution-hporesourceconfig-properties"></a>

`MaxNumberOfTrainingJobs`  <a name="cfn-personalize-solution-hporesourceconfig-maxnumberoftrainingjobs"></a>
The maximum number of training jobs when you create a solution version. The maximum value for `maxNumberOfTrainingJobs` is `40`.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`MaxParallelTrainingJobs`  <a name="cfn-personalize-solution-hporesourceconfig-maxparalleltrainingjobs"></a>
The maximum number of parallel training jobs when you create a solution version. The maximum value for `maxParallelTrainingJobs` is `10`.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Personalize::Solution IntegerHyperParameterRange
<a name="aws-properties-personalize-solution-integerhyperparameterrange"></a>

Provides the name and range of an integer-valued hyperparameter.

## Syntax
<a name="aws-properties-personalize-solution-integerhyperparameterrange-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-integerhyperparameterrange-syntax.json"></a>

```
{
  "[MaxValue](#cfn-personalize-solution-integerhyperparameterrange-maxvalue)" : Integer,
  "[MinValue](#cfn-personalize-solution-integerhyperparameterrange-minvalue)" : Integer,
  "[Name](#cfn-personalize-solution-integerhyperparameterrange-name)" : String
}
```

### YAML
<a name="aws-properties-personalize-solution-integerhyperparameterrange-syntax.yaml"></a>

```
  [MaxValue](#cfn-personalize-solution-integerhyperparameterrange-maxvalue): Integer
  [MinValue](#cfn-personalize-solution-integerhyperparameterrange-minvalue): Integer
  [Name](#cfn-personalize-solution-integerhyperparameterrange-name): String
```

## Properties
<a name="aws-properties-personalize-solution-integerhyperparameterrange-properties"></a>

`MaxValue`  <a name="cfn-personalize-solution-integerhyperparameterrange-maxvalue"></a>
The maximum allowable value for the hyperparameter.  
*Required*: No  
*Type*: Integer  
*Maximum*: `1000000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`MinValue`  <a name="cfn-personalize-solution-integerhyperparameterrange-minvalue"></a>
The minimum allowable value for the hyperparameter.  
*Required*: No  
*Type*: Integer  
*Minimum*: `-1000000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-personalize-solution-integerhyperparameterrange-name"></a>
The name of the hyperparameter.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Personalize::Solution SolutionConfig
<a name="aws-properties-personalize-solution-solutionconfig"></a>

Describes the configuration properties for the solution.

## Syntax
<a name="aws-properties-personalize-solution-solutionconfig-syntax"></a>

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

### JSON
<a name="aws-properties-personalize-solution-solutionconfig-syntax.json"></a>

```
{
  "[AlgorithmHyperParameters](#cfn-personalize-solution-solutionconfig-algorithmhyperparameters)" : {Key: Value, ...},
  "[AutoMLConfig](#cfn-personalize-solution-solutionconfig-automlconfig)" : AutoMLConfig,
  "[EventValueThreshold](#cfn-personalize-solution-solutionconfig-eventvaluethreshold)" : String,
  "[FeatureTransformationParameters](#cfn-personalize-solution-solutionconfig-featuretransformationparameters)" : {Key: Value, ...},
  "[HpoConfig](#cfn-personalize-solution-solutionconfig-hpoconfig)" : HpoConfig
}
```

### YAML
<a name="aws-properties-personalize-solution-solutionconfig-syntax.yaml"></a>

```
  [AlgorithmHyperParameters](#cfn-personalize-solution-solutionconfig-algorithmhyperparameters): 
    Key: Value
  [AutoMLConfig](#cfn-personalize-solution-solutionconfig-automlconfig): 
    AutoMLConfig
  [EventValueThreshold](#cfn-personalize-solution-solutionconfig-eventvaluethreshold): String
  [FeatureTransformationParameters](#cfn-personalize-solution-solutionconfig-featuretransformationparameters): 
    Key: Value
  [HpoConfig](#cfn-personalize-solution-solutionconfig-hpoconfig): 
    HpoConfig
```

## Properties
<a name="aws-properties-personalize-solution-solutionconfig-properties"></a>

`AlgorithmHyperParameters`  <a name="cfn-personalize-solution-solutionconfig-algorithmhyperparameters"></a>
Lists the algorithm hyperparameters and their values.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AutoMLConfig`  <a name="cfn-personalize-solution-solutionconfig-automlconfig"></a>
The [AutoMLConfig](https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html) object containing a list of recipes to search when AutoML is performed.  
*Required*: No  
*Type*: [AutoMLConfig](aws-properties-personalize-solution-automlconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`EventValueThreshold`  <a name="cfn-personalize-solution-solutionconfig-eventvaluethreshold"></a>
Only events with a value greater than or equal to this threshold are used for training a model.  
*Required*: No  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`FeatureTransformationParameters`  <a name="cfn-personalize-solution-solutionconfig-featuretransformationparameters"></a>
Lists the feature transformation parameters.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.{1,}`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`HpoConfig`  <a name="cfn-personalize-solution-solutionconfig-hpoconfig"></a>
Describes the properties for hyperparameter optimization (HPO).  
*Required*: No  
*Type*: [HpoConfig](aws-properties-personalize-solution-hpoconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)