createTrainingDataset method

Future<CreateTrainingDatasetResponse> createTrainingDataset({
  1. required String name,
  2. required String roleArn,
  3. required List<Dataset> trainingData,
  4. String? description,
  5. Map<String, String>? tags,
})

Defines the information necessary to create a training dataset. In Clean Rooms ML, the TrainingDataset is metadata that points to a Glue table, which is read only during AudienceModel creation.

May throw AccessDeniedException. May throw ConflictException. May throw ValidationException.

Parameter name : The name of the training dataset. This name must be unique in your account and region.

Parameter roleArn : The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the dataSource field of each dataset.

Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an AccessDeniedException error.

Parameter trainingData : An array of information that lists the Dataset objects, which specifies the dataset type and details on its location and schema. You must provide a role that has read access to these tables.

Parameter description : The description of the training dataset.

Parameter tags : The optional metadata that you apply to the resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50.
  • For each resource, each tag key must be unique, and each tag key can have only one value.
  • Maximum key length - 128 Unicode characters in UTF-8.
  • Maximum value length - 256 Unicode characters in UTF-8.
  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
  • Tag keys and values are case sensitive.
  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Clean Rooms ML considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

Implementation

Future<CreateTrainingDatasetResponse> createTrainingDataset({
  required String name,
  required String roleArn,
  required List<Dataset> trainingData,
  String? description,
  Map<String, String>? tags,
}) async {
  final $payload = <String, dynamic>{
    'name': name,
    'roleArn': roleArn,
    'trainingData': trainingData,
    if (description != null) 'description': description,
    if (tags != null) 'tags': tags,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/training-dataset',
    exceptionFnMap: _exceptionFns,
  );
  return CreateTrainingDatasetResponse.fromJson(response);
}