createDatasetGroup method
Creates an empty dataset group. A dataset group is a container for Amazon Personalize resources. A dataset group can contain at most three datasets, one for each type of dataset:
- Item interactions
- Items
- Users
- Actions
- Action interactions
A dataset group can be in one of the following states:
- CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
- DELETE PENDING
failureReason key, which describes why the creation failed.
You can specify an Key Management Service (KMS) key to encrypt the
datasets in the group. If you specify a KMS key, you must also include an
Identity and Access Management (IAM) role that has permission to access
the key.
APIs that require a dataset group ARN in the request
Related APIs
May throw InvalidInputException.
May throw LimitExceededException.
May throw ResourceAlreadyExistsException.
May throw TooManyTagsException.
Parameter name :
The name for the new dataset group.
Parameter domain :
The domain of the dataset group. Specify a domain to create a Domain
dataset group. The domain you specify determines the default schemas for
datasets and the use cases available for recommenders. If you don't
specify a domain, you create a Custom dataset group with solution versions
that you deploy with a campaign.
Parameter kmsKeyArn :
The Amazon Resource Name (ARN) of a Key Management Service (KMS) key used
to encrypt the datasets.
Parameter roleArn :
The ARN of the Identity and Access Management (IAM) role that has
permissions to access the Key Management Service (KMS) key. Supplying an
IAM role is only valid when also specifying a KMS key.
Parameter tags :
A list of tags
to apply to the dataset group.
Implementation
Future<CreateDatasetGroupResponse> createDatasetGroup({
required String name,
Domain? domain,
String? kmsKeyArn,
String? roleArn,
List<Tag>? tags,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AmazonPersonalize.CreateDatasetGroup'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'name': name,
if (domain != null) 'domain': domain.value,
if (kmsKeyArn != null) 'kmsKeyArn': kmsKeyArn,
if (roleArn != null) 'roleArn': roleArn,
if (tags != null) 'tags': tags,
},
);
return CreateDatasetGroupResponse.fromJson(jsonResponse.body);
}