

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::SageMaker::FeatureGroup
<a name="aws-resource-sagemaker-featuregroup"></a>

Create a new `FeatureGroup`. A `FeatureGroup` is a group of `Features` defined in the `FeatureStore` to describe a `Record`. 

The `FeatureGroup` defines the schema and features contained in the FeatureGroup. A `FeatureGroup` definition is composed of a list of `Features`, a `RecordIdentifierFeatureName`, an `EventTimeFeatureName` and configurations for its `OnlineStore` and `OfflineStore`. Check [AWS service quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) to see the `FeatureGroup`s quota for your AWS account.

**Important**  
You must include at least one of `OnlineStoreConfig` and `OfflineStoreConfig` to create a `FeatureGroup`.

## Syntax
<a name="aws-resource-sagemaker-featuregroup-syntax"></a>

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

### JSON
<a name="aws-resource-sagemaker-featuregroup-syntax.json"></a>

```
{
  "Type" : "AWS::SageMaker::FeatureGroup",
  "Properties" : {
      "[Description](#cfn-sagemaker-featuregroup-description)" : String,
      "[EventTimeFeatureName](#cfn-sagemaker-featuregroup-eventtimefeaturename)" : String,
      "[FeatureDefinitions](#cfn-sagemaker-featuregroup-featuredefinitions)" : [ FeatureDefinition, ... ],
      "[FeatureGroupName](#cfn-sagemaker-featuregroup-featuregroupname)" : String,
      "[OfflineStoreConfig](#cfn-sagemaker-featuregroup-offlinestoreconfig)" : OfflineStoreConfig,
      "[OnlineStoreConfig](#cfn-sagemaker-featuregroup-onlinestoreconfig)" : OnlineStoreConfig,
      "[RecordIdentifierFeatureName](#cfn-sagemaker-featuregroup-recordidentifierfeaturename)" : String,
      "[RoleArn](#cfn-sagemaker-featuregroup-rolearn)" : String,
      "[Tags](#cfn-sagemaker-featuregroup-tags)" : [ Tag, ... ],
      "[ThroughputConfig](#cfn-sagemaker-featuregroup-throughputconfig)" : ThroughputConfig
    }
}
```

### YAML
<a name="aws-resource-sagemaker-featuregroup-syntax.yaml"></a>

```
Type: AWS::SageMaker::FeatureGroup
Properties:
  [Description](#cfn-sagemaker-featuregroup-description): String
  [EventTimeFeatureName](#cfn-sagemaker-featuregroup-eventtimefeaturename): String
  [FeatureDefinitions](#cfn-sagemaker-featuregroup-featuredefinitions): 
    - FeatureDefinition
  [FeatureGroupName](#cfn-sagemaker-featuregroup-featuregroupname): String
  [OfflineStoreConfig](#cfn-sagemaker-featuregroup-offlinestoreconfig): 
    OfflineStoreConfig
  [OnlineStoreConfig](#cfn-sagemaker-featuregroup-onlinestoreconfig): 
    OnlineStoreConfig
  [RecordIdentifierFeatureName](#cfn-sagemaker-featuregroup-recordidentifierfeaturename): String
  [RoleArn](#cfn-sagemaker-featuregroup-rolearn): String
  [Tags](#cfn-sagemaker-featuregroup-tags): 
    - Tag
  [ThroughputConfig](#cfn-sagemaker-featuregroup-throughputconfig): 
    ThroughputConfig
```

## Properties
<a name="aws-resource-sagemaker-featuregroup-properties"></a>

`Description`  <a name="cfn-sagemaker-featuregroup-description"></a>
A free form description of a `FeatureGroup`.  
*Required*: No  
*Type*: String  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`EventTimeFeatureName`  <a name="cfn-sagemaker-featuregroup-eventtimefeaturename"></a>
The name of the feature that stores the `EventTime` of a Record in a `FeatureGroup`.  
A `EventTime` is point in time when a new event occurs that corresponds to the creation or update of a `Record` in `FeatureGroup`. All `Records` in the `FeatureGroup` must have a corresponding `EventTime`.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}`  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`FeatureDefinitions`  <a name="cfn-sagemaker-featuregroup-featuredefinitions"></a>
A list of `Feature`s. Each `Feature` must include a `FeatureName` and a `FeatureType`.   
Valid `FeatureType`s are `Integral`, `Fractional` and `String`.   
`FeatureName`s cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`.  
You can create up to 2,500 `FeatureDefinition`s per `FeatureGroup`.  
*Required*: Yes  
*Type*: Array of [FeatureDefinition](aws-properties-sagemaker-featuregroup-featuredefinition.md)  
*Minimum*: `1`  
*Maximum*: `2500`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`FeatureGroupName`  <a name="cfn-sagemaker-featuregroup-featuregroupname"></a>
The name of the `FeatureGroup`.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}`  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OfflineStoreConfig`  <a name="cfn-sagemaker-featuregroup-offlinestoreconfig"></a>
The configuration of an `OfflineStore`.  
*Required*: No  
*Type*: [OfflineStoreConfig](aws-properties-sagemaker-featuregroup-offlinestoreconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OnlineStoreConfig`  <a name="cfn-sagemaker-featuregroup-onlinestoreconfig"></a>
The configuration of an `OnlineStore`.  
*Required*: No  
*Type*: [OnlineStoreConfig](aws-properties-sagemaker-featuregroup-onlinestoreconfig.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RecordIdentifierFeatureName`  <a name="cfn-sagemaker-featuregroup-recordidentifierfeaturename"></a>
The name of the `Feature` whose value uniquely identifies a `Record` defined in the `FeatureGroup``FeatureDefinitions`.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}`  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RoleArn`  <a name="cfn-sagemaker-featuregroup-rolearn"></a>
The Amazon Resource Name (ARN) of the IAM execution role used to create the feature group.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws[a-z\-]*:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+$`  
*Minimum*: `20`  
*Maximum*: `2048`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-sagemaker-featuregroup-tags"></a>
Tags used to define a `FeatureGroup`.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-sagemaker-featuregroup-tag.md)  
*Maximum*: `50`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ThroughputConfig`  <a name="cfn-sagemaker-featuregroup-throughputconfig"></a>
Used to set feature group throughput configuration. There are two modes: `ON_DEMAND` and `PROVISIONED`. With on-demand mode, you are charged for data reads and writes that your application performs on your feature group. You do not need to specify read and write throughput because Feature Store accommodates your workloads as they ramp up and down. You can switch a feature group to on-demand only once in a 24 hour period. With provisioned throughput mode, you specify the read and write capacity per second that you expect your application to require, and you are billed based on those limits. Exceeding provisioned throughput will result in your requests being throttled.   
Note: `PROVISIONED` throughput mode is supported only for feature groups that are offline-only, or use the [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType) tier online store.   
*Required*: No  
*Type*: [ThroughputConfig](aws-properties-sagemaker-featuregroup-throughputconfig.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-sagemaker-featuregroup-return-values"></a>

### Ref
<a name="aws-resource-sagemaker-featuregroup-return-values-ref"></a>

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

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-sagemaker-featuregroup-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-sagemaker-featuregroup-return-values-fn--getatt-fn--getatt"></a>

`CreationTime`  <a name="CreationTime-fn::getatt"></a>
The time a `FeatureGroup` was created.

`FeatureGroupStatus`  <a name="FeatureGroupStatus-fn::getatt"></a>
A `FeatureGroup` status.

# AWS::SageMaker::FeatureGroup DataCatalogConfig
<a name="aws-properties-sagemaker-featuregroup-datacatalogconfig"></a>

The meta data of the Glue table which serves as data catalog for the `OfflineStore`. 

## Syntax
<a name="aws-properties-sagemaker-featuregroup-datacatalogconfig-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-featuregroup-datacatalogconfig-syntax.json"></a>

```
{
  "[Catalog](#cfn-sagemaker-featuregroup-datacatalogconfig-catalog)" : String,
  "[Database](#cfn-sagemaker-featuregroup-datacatalogconfig-database)" : String,
  "[TableName](#cfn-sagemaker-featuregroup-datacatalogconfig-tablename)" : String
}
```

### YAML
<a name="aws-properties-sagemaker-featuregroup-datacatalogconfig-syntax.yaml"></a>

```
  [Catalog](#cfn-sagemaker-featuregroup-datacatalogconfig-catalog): String
  [Database](#cfn-sagemaker-featuregroup-datacatalogconfig-database): String
  [TableName](#cfn-sagemaker-featuregroup-datacatalogconfig-tablename): String
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-datacatalogconfig-properties"></a>

`Catalog`  <a name="cfn-sagemaker-featuregroup-datacatalogconfig-catalog"></a>
The name of the Glue table catalog.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF ]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Database`  <a name="cfn-sagemaker-featuregroup-datacatalogconfig-database"></a>
The name of the Glue table database.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF ]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TableName`  <a name="cfn-sagemaker-featuregroup-datacatalogconfig-tablename"></a>
The name of the Glue table.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF ]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::SageMaker::FeatureGroup FeatureDefinition
<a name="aws-properties-sagemaker-featuregroup-featuredefinition"></a>

A list of features. You must include `FeatureName` and `FeatureType`. Valid feature `FeatureType`s are `Integral`, `Fractional` and `String`. 

## Syntax
<a name="aws-properties-sagemaker-featuregroup-featuredefinition-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-featuregroup-featuredefinition-syntax.json"></a>

```
{
  "[FeatureName](#cfn-sagemaker-featuregroup-featuredefinition-featurename)" : String,
  "[FeatureType](#cfn-sagemaker-featuregroup-featuredefinition-featuretype)" : String
}
```

### YAML
<a name="aws-properties-sagemaker-featuregroup-featuredefinition-syntax.yaml"></a>

```
  [FeatureName](#cfn-sagemaker-featuregroup-featuredefinition-featurename): String
  [FeatureType](#cfn-sagemaker-featuregroup-featuredefinition-featuretype): String
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-featuredefinition-properties"></a>

`FeatureName`  <a name="cfn-sagemaker-featuregroup-featuredefinition-featurename"></a>
The name of a feature. The type must be a string. `FeatureName` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`.  
The name:  
+ Must start with an alphanumeric character.
+ Can only include alphanumeric characters, underscores, and hyphens. Spaces are not allowed.
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}`  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`FeatureType`  <a name="cfn-sagemaker-featuregroup-featuredefinition-featuretype"></a>
The value type of a feature. Valid values are Integral, Fractional, or String.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `Integral | Fractional | String`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SageMaker::FeatureGroup OfflineStoreConfig
<a name="aws-properties-sagemaker-featuregroup-offlinestoreconfig"></a>

The configuration of an `OfflineStore`.

Provide an `OfflineStoreConfig` in a request to `CreateFeatureGroup` to create an `OfflineStore`.

To encrypt an `OfflineStore` using at rest data encryption, specify AWS Key Management Service (KMS) key ID, or `KMSKeyId`, in `S3StorageConfig`.

## Syntax
<a name="aws-properties-sagemaker-featuregroup-offlinestoreconfig-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-featuregroup-offlinestoreconfig-syntax.json"></a>

```
{
  "[DataCatalogConfig](#cfn-sagemaker-featuregroup-offlinestoreconfig-datacatalogconfig)" : DataCatalogConfig,
  "[DisableGlueTableCreation](#cfn-sagemaker-featuregroup-offlinestoreconfig-disablegluetablecreation)" : Boolean,
  "[S3StorageConfig](#cfn-sagemaker-featuregroup-offlinestoreconfig-s3storageconfig)" : S3StorageConfig,
  "[TableFormat](#cfn-sagemaker-featuregroup-offlinestoreconfig-tableformat)" : String
}
```

### YAML
<a name="aws-properties-sagemaker-featuregroup-offlinestoreconfig-syntax.yaml"></a>

```
  [DataCatalogConfig](#cfn-sagemaker-featuregroup-offlinestoreconfig-datacatalogconfig): 
    DataCatalogConfig
  [DisableGlueTableCreation](#cfn-sagemaker-featuregroup-offlinestoreconfig-disablegluetablecreation): Boolean
  [S3StorageConfig](#cfn-sagemaker-featuregroup-offlinestoreconfig-s3storageconfig): 
    S3StorageConfig
  [TableFormat](#cfn-sagemaker-featuregroup-offlinestoreconfig-tableformat): String
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-offlinestoreconfig-properties"></a>

`DataCatalogConfig`  <a name="cfn-sagemaker-featuregroup-offlinestoreconfig-datacatalogconfig"></a>
The meta data of the Glue table for the `OfflineStore`. If not provided, Feature Store auto-generates the table name, database, and catalog when the `OfflineStore` is created. You can optionally provide this configuration to specify custom values. This applies to both Glue and Apache Iceberg table formats.  
*Required*: No  
*Type*: [DataCatalogConfig](aws-properties-sagemaker-featuregroup-datacatalogconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DisableGlueTableCreation`  <a name="cfn-sagemaker-featuregroup-offlinestoreconfig-disablegluetablecreation"></a>
Set to `True` to disable the automatic creation of an AWS Glue table when configuring an `OfflineStore`. If set to `True` and `DataCatalogConfig` is provided, Feature Store associates the provided catalog configuration with the feature group without creating a table. In this case, you are responsible for creating and managing the Glue table. If set to `True` without `DataCatalogConfig`, no Glue table is created or associated with the feature group. The `Iceberg` table format is only supported when this is set to `False`.  
If set to `False` and `DataCatalogConfig` is provided, Feature Store creates the table using the specified names. If set to `False` without `DataCatalogConfig`, Feature Store auto-generates the table name following [Athena's naming recommendations](https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html). This applies to both Glue and Apache Iceberg table formats.  
The default value 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)

`S3StorageConfig`  <a name="cfn-sagemaker-featuregroup-offlinestoreconfig-s3storageconfig"></a>
The Amazon Simple Storage (Amazon S3) location of `OfflineStore`.  
*Required*: Yes  
*Type*: [S3StorageConfig](aws-properties-sagemaker-featuregroup-s3storageconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TableFormat`  <a name="cfn-sagemaker-featuregroup-offlinestoreconfig-tableformat"></a>
Format for the offline store table. Supported formats are Glue (Default) and [Apache Iceberg](https://iceberg.apache.org/).  
*Required*: No  
*Type*: String  
*Allowed values*: `Iceberg | Glue`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::SageMaker::FeatureGroup OnlineStoreConfig
<a name="aws-properties-sagemaker-featuregroup-onlinestoreconfig"></a>

Use this to specify the AWS Key Management Service (KMS) Key ID, or `KMSKeyId`, for at rest data encryption. You can turn `OnlineStore` on or off by specifying the `EnableOnlineStore` flag at General Assembly.

The default value is `False`.

## Syntax
<a name="aws-properties-sagemaker-featuregroup-onlinestoreconfig-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-featuregroup-onlinestoreconfig-syntax.json"></a>

```
{
  "[EnableOnlineStore](#cfn-sagemaker-featuregroup-onlinestoreconfig-enableonlinestore)" : Boolean,
  "[SecurityConfig](#cfn-sagemaker-featuregroup-onlinestoreconfig-securityconfig)" : OnlineStoreSecurityConfig,
  "[StorageType](#cfn-sagemaker-featuregroup-onlinestoreconfig-storagetype)" : String,
  "[TtlDuration](#cfn-sagemaker-featuregroup-onlinestoreconfig-ttlduration)" : TtlDuration
}
```

### YAML
<a name="aws-properties-sagemaker-featuregroup-onlinestoreconfig-syntax.yaml"></a>

```
  [EnableOnlineStore](#cfn-sagemaker-featuregroup-onlinestoreconfig-enableonlinestore): Boolean
  [SecurityConfig](#cfn-sagemaker-featuregroup-onlinestoreconfig-securityconfig): 
    OnlineStoreSecurityConfig
  [StorageType](#cfn-sagemaker-featuregroup-onlinestoreconfig-storagetype): String
  [TtlDuration](#cfn-sagemaker-featuregroup-onlinestoreconfig-ttlduration): 
    TtlDuration
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-onlinestoreconfig-properties"></a>

`EnableOnlineStore`  <a name="cfn-sagemaker-featuregroup-onlinestoreconfig-enableonlinestore"></a>
Turn `OnlineStore` off by specifying `False` for the `EnableOnlineStore` flag. Turn `OnlineStore` on by specifying `True` for the `EnableOnlineStore` flag.   
The default value 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)

`SecurityConfig`  <a name="cfn-sagemaker-featuregroup-onlinestoreconfig-securityconfig"></a>
Use to specify KMS Key ID (`KMSKeyId`) for at-rest encryption of your `OnlineStore`.  
*Required*: No  
*Type*: [OnlineStoreSecurityConfig](aws-properties-sagemaker-featuregroup-onlinestoresecurityconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`StorageType`  <a name="cfn-sagemaker-featuregroup-onlinestoreconfig-storagetype"></a>
Option for different tiers of low latency storage for real-time data retrieval.  
+ `Standard`: A managed low latency data store for feature groups.
+ `InMemory`: A managed data store for feature groups that supports very low latency retrieval. 
*Required*: No  
*Type*: String  
*Allowed values*: `Standard | InMemory`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TtlDuration`  <a name="cfn-sagemaker-featuregroup-onlinestoreconfig-ttlduration"></a>
Time to live duration, where the record is hard deleted after the expiration time is reached; `ExpiresAt` = `EventTime` \$1 `TtlDuration`. For information on HardDelete, see the [DeleteRecord](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html) API in the Amazon SageMaker API Reference guide.  
*Required*: No  
*Type*: [TtlDuration](aws-properties-sagemaker-featuregroup-ttlduration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SageMaker::FeatureGroup OnlineStoreSecurityConfig
<a name="aws-properties-sagemaker-featuregroup-onlinestoresecurityconfig"></a>

The security configuration for `OnlineStore`.

## Syntax
<a name="aws-properties-sagemaker-featuregroup-onlinestoresecurityconfig-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-featuregroup-onlinestoresecurityconfig-syntax.json"></a>

```
{
  "[KmsKeyId](#cfn-sagemaker-featuregroup-onlinestoresecurityconfig-kmskeyid)" : String
}
```

### YAML
<a name="aws-properties-sagemaker-featuregroup-onlinestoresecurityconfig-syntax.yaml"></a>

```
  [KmsKeyId](#cfn-sagemaker-featuregroup-onlinestoresecurityconfig-kmskeyid): String
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-onlinestoresecurityconfig-properties"></a>

`KmsKeyId`  <a name="cfn-sagemaker-featuregroup-onlinestoresecurityconfig-kmskeyid"></a>
The AWS Key Management Service (KMS) key ARN that SageMaker Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption.  
The caller (either user or IAM role) of `CreateFeatureGroup` must have below permissions to the `OnlineStore``KmsKeyId`:  
+  `"kms:Encrypt"` 
+  `"kms:Decrypt"` 
+  `"kms:DescribeKey"` 
+  `"kms:CreateGrant"` 
+  `"kms:RetireGrant"` 
+  `"kms:ReEncryptFrom"` 
+  `"kms:ReEncryptTo"` 
+  `"kms:GenerateDataKey"` 
+  `"kms:ListAliases"` 
+  `"kms:ListGrants"` 
+  `"kms:RevokeGrant"` 
The caller (either user or IAM role) to all DataPlane operations (`PutRecord`, `GetRecord`, `DeleteRecord`) must have the following permissions to the `KmsKeyId`:  
+  `"kms:Decrypt"` 
*Required*: No  
*Type*: String  
*Maximum*: `2048`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::SageMaker::FeatureGroup S3StorageConfig
<a name="aws-properties-sagemaker-featuregroup-s3storageconfig"></a>

The Amazon Simple Storage (Amazon S3) location and security configuration for `OfflineStore`.

## Syntax
<a name="aws-properties-sagemaker-featuregroup-s3storageconfig-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-featuregroup-s3storageconfig-syntax.json"></a>

```
{
  "[KmsKeyId](#cfn-sagemaker-featuregroup-s3storageconfig-kmskeyid)" : String,
  "[S3Uri](#cfn-sagemaker-featuregroup-s3storageconfig-s3uri)" : String
}
```

### YAML
<a name="aws-properties-sagemaker-featuregroup-s3storageconfig-syntax.yaml"></a>

```
  [KmsKeyId](#cfn-sagemaker-featuregroup-s3storageconfig-kmskeyid): String
  [S3Uri](#cfn-sagemaker-featuregroup-s3storageconfig-s3uri): String
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-s3storageconfig-properties"></a>

`KmsKeyId`  <a name="cfn-sagemaker-featuregroup-s3storageconfig-kmskeyid"></a>
The AWS Key Management Service (KMS) key ARN of the key used to encrypt any objects written into the `OfflineStore` S3 location.  
The IAM `roleARN` that is passed as a parameter to `CreateFeatureGroup` must have below permissions to the `KmsKeyId`:  
+  `"kms:GenerateDataKey"` 
*Required*: No  
*Type*: String  
*Maximum*: `2048`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`S3Uri`  <a name="cfn-sagemaker-featuregroup-s3storageconfig-s3uri"></a>
The S3 URI, or location in Amazon S3, of `OfflineStore`.  
S3 URIs have a format similar to the following: `s3://example-bucket/prefix/`.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^(https|s3)://([^/]+)/?(.*)$`  
*Maximum*: `1024`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::SageMaker::FeatureGroup Tag
<a name="aws-properties-sagemaker-featuregroup-tag"></a>

A tag object that consists of a key and an optional value, used to manage metadata for SageMaker AWS resources.

You can add tags to notebook instances, training jobs, hyperparameter tuning jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, and endpoints. For more information on adding tags to SageMaker resources, see [AddTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html).

For more information on adding metadata to your AWS resources with tagging, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). For advice on best practices for managing AWS resources with tagging, see [Tagging Best Practices: Implement an Effective AWS Resource Tagging Strategy](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf).

## Syntax
<a name="aws-properties-sagemaker-featuregroup-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-sagemaker-featuregroup-tag-key): String
  [Value](#cfn-sagemaker-featuregroup-tag-value): String
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-tag-properties"></a>

`Key`  <a name="cfn-sagemaker-featuregroup-tag-key"></a>
The tag key. Tag keys must be unique per resource.  
*Required*: Yes  
*Type*: String  
*Pattern*: `([\p{L}\p{Z}\p{N}_.:/=+\-@]*)`  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Value`  <a name="cfn-sagemaker-featuregroup-tag-value"></a>
The tag value.  
*Required*: Yes  
*Type*: String  
*Pattern*: `([\p{L}\p{Z}\p{N}_.:/=+\-@]*)`  
*Minimum*: `0`  
*Maximum*: `256`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::SageMaker::FeatureGroup ThroughputConfig
<a name="aws-properties-sagemaker-featuregroup-throughputconfig"></a>

Used to set feature group throughput configuration. There are two modes: `ON_DEMAND` and `PROVISIONED`. With on-demand mode, you are charged for data reads and writes that your application performs on your feature group. You do not need to specify read and write throughput because Feature Store accommodates your workloads as they ramp up and down. You can switch a feature group to on-demand only once in a 24 hour period. With provisioned throughput mode, you specify the read and write capacity per second that you expect your application to require, and you are billed based on those limits. Exceeding provisioned throughput will result in your requests being throttled. 

Note: `PROVISIONED` throughput mode is supported only for feature groups that are offline-only, or use the [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType) tier online store. 

## Syntax
<a name="aws-properties-sagemaker-featuregroup-throughputconfig-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-featuregroup-throughputconfig-syntax.json"></a>

```
{
  "[ProvisionedReadCapacityUnits](#cfn-sagemaker-featuregroup-throughputconfig-provisionedreadcapacityunits)" : Integer,
  "[ProvisionedWriteCapacityUnits](#cfn-sagemaker-featuregroup-throughputconfig-provisionedwritecapacityunits)" : Integer,
  "[ThroughputMode](#cfn-sagemaker-featuregroup-throughputconfig-throughputmode)" : String
}
```

### YAML
<a name="aws-properties-sagemaker-featuregroup-throughputconfig-syntax.yaml"></a>

```
  [ProvisionedReadCapacityUnits](#cfn-sagemaker-featuregroup-throughputconfig-provisionedreadcapacityunits): Integer
  [ProvisionedWriteCapacityUnits](#cfn-sagemaker-featuregroup-throughputconfig-provisionedwritecapacityunits): Integer
  [ThroughputMode](#cfn-sagemaker-featuregroup-throughputconfig-throughputmode): String
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-throughputconfig-properties"></a>

`ProvisionedReadCapacityUnits`  <a name="cfn-sagemaker-featuregroup-throughputconfig-provisionedreadcapacityunits"></a>
 For provisioned feature groups with online store enabled, this indicates the read throughput you are billed for and can consume without throttling.   
This field is not applicable for on-demand feature groups.   
*Required*: No  
*Type*: Integer  
*Minimum*: `0`  
*Maximum*: `10000000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ProvisionedWriteCapacityUnits`  <a name="cfn-sagemaker-featuregroup-throughputconfig-provisionedwritecapacityunits"></a>
 For provisioned feature groups, this indicates the write throughput you are billed for and can consume without throttling.   
This field is not applicable for on-demand feature groups.   
*Required*: No  
*Type*: Integer  
*Minimum*: `0`  
*Maximum*: `10000000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ThroughputMode`  <a name="cfn-sagemaker-featuregroup-throughputconfig-throughputmode"></a>
The mode used for your feature group throughput: `ON_DEMAND` or `PROVISIONED`.   
*Required*: Yes  
*Type*: String  
*Allowed values*: `OnDemand | Provisioned`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SageMaker::FeatureGroup TtlDuration
<a name="aws-properties-sagemaker-featuregroup-ttlduration"></a>

Time to live duration, where the record is hard deleted after the expiration time is reached; `ExpiresAt` = `EventTime` \$1 `TtlDuration`. For information on HardDelete, see the [DeleteRecord](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html) API in the Amazon SageMaker API Reference guide.

## Syntax
<a name="aws-properties-sagemaker-featuregroup-ttlduration-syntax"></a>

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

### JSON
<a name="aws-properties-sagemaker-featuregroup-ttlduration-syntax.json"></a>

```
{
  "[Unit](#cfn-sagemaker-featuregroup-ttlduration-unit)" : String,
  "[Value](#cfn-sagemaker-featuregroup-ttlduration-value)" : Integer
}
```

### YAML
<a name="aws-properties-sagemaker-featuregroup-ttlduration-syntax.yaml"></a>

```
  [Unit](#cfn-sagemaker-featuregroup-ttlduration-unit): String
  [Value](#cfn-sagemaker-featuregroup-ttlduration-value): Integer
```

## Properties
<a name="aws-properties-sagemaker-featuregroup-ttlduration-properties"></a>

`Unit`  <a name="cfn-sagemaker-featuregroup-ttlduration-unit"></a>
`TtlDuration` time unit.  
*Required*: No  
*Type*: String  
*Allowed values*: `Seconds | Minutes | Hours | Days | Weeks`  
*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-sagemaker-featuregroup-ttlduration-value"></a>
`TtlDuration` time value.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)