import { Value } from '../../cloudformation/Value';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type DatasetGroupAttributes = {
    DatasetGroupArn: Attribute<string>;
};
export type DatasetGroup = AwsResource<'AWS::Personalize::DatasetGroup', DatasetGroupProperties, DatasetGroupAttributes>;
/**
  A dataset group is a collection of related datasets (Interactions, User, and Item). You create a dataset group by calling <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html">CreateDatasetGroup</a>. You then create a dataset and add it to a dataset group by calling <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html">CreateDataset</a>. The dataset group is used to create and train a solution by calling <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html">CreateSolution</a>. A dataset group can contain only one of each type of dataset.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-datasetgroup.html">the AWS Docs</a>
*/
export declare function datasetGroup(datasetGroupProps: DatasetGroupProperties): DatasetGroup;
/**
  A dataset group is a collection of related datasets (Interactions, User, and Item). You create a dataset group by calling <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html">CreateDatasetGroup</a>. You then create a dataset and add it to a dataset group by calling <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html">CreateDataset</a>. The dataset group is used to create and train a solution by calling <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html">CreateSolution</a>. A dataset group can contain only one of each type of dataset.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-datasetgroup.html">the AWS Docs</a>
*/
export interface DatasetGroupProperties {
    /** <code>KmsKeyArn</code>  <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.<br />
  
  Required: No<br />
  
  Maximum: <code>2048</code><br />
  
  Pattern: <code>arn:aws.*:kms:.*:[0-9]{12}:key/.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    kmsKeyArn?: Value<string>;
    /** <code>Domain</code>  <a name="cfn-personalize-datasetgroup-domain"></a>
  The domain of a Domain dataset group.<br />
  
  Required: No<br />
  
  Allowed values: <code>ECOMMERCE | VIDEO_ON_DEMAND</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    domain?: Value<'ECOMMERCE' | 'VIDEO_ON_DEMAND'>;
    /** <code>RoleArn</code>  <a name="cfn-personalize-datasetgroup-rolearn"></a>
  The ARN of the IAM role that has permissions to create the dataset group.<br />
  
  Required: No<br />
  
  Maximum: <code>256</code><br />
  
  Pattern: <code>arn:([a-z\d-]+):iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    roleArn?: Value<string>;
    /** <code>Name</code>  <a name="cfn-personalize-datasetgroup-name"></a>
  The name of the dataset group.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>63</code><br />
  
  Pattern: <code>^[a-zA-Z0-9][a-zA-Z0-9\-_]*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    name: Value<string>;
}
