---
title: "POST /training-dataset"
method: POST
path: "/training-dataset"
---

# POST /training-dataset

`POST /training-dataset`

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

## Request body

- object
  - `name` string, required — The name of the training dataset. This name must be unique in your account and region.
  - `roleArn` string, required — <p>The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the <code>dataSource</code> field of each dataset.</p> <p>Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>AccessDeniedException</code> error.</p>
  - `trainingData` Dataset[], required — 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.
    - `type` 'INTERACTIONS', required — What type of information is found in the dataset.
    - `inputConfig` object, required — A DatasetInputConfig object that defines the data source and schema mapping.
      - `schema` ColumnSchema[], required — The schema information for the training data.
        - `columnName` string, required — The name of a column.
        - `columnTypes` ColumnType[], required — The data type of column.
      - `dataSource` object, required — A DataSource object that specifies the Glue data source for the training data.
        - `glueDataSource` object, required — A GlueDataSource object that defines the catalog ID, database name, and table name for the training data.
          - `tableName` string, required — The Glue table that contains the training data.
          - `databaseName` string, required — The Glue database that contains the training data.
          - `catalogId` string — The Glue catalog that contains the training data.
  - `tags` object — <p>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.</p> <p>The following basic restrictions apply to tags:</p> <ul> <li> <p>Maximum number of tags per resource - 50.</p> </li> <li> <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in UTF-8.</p> </li> <li> <p>Maximum value length - 256 Unicode characters in UTF-8.</p> </li> <li> <p>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: + - = . _ : / @.</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> <p>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.</p> </li> </ul>
  - `description` string — The description of the training dataset.

## Response `200`

Success

- CreateTrainingDatasetResponse
  - `trainingDatasetArn` string, required — The Amazon Resource Name (ARN) of the training dataset resource.

## Other responses

- `480` — ConflictException
- `481` — ValidationException
- `482` — AccessDeniedException

---

[API](https://skmtc.net/aws/apis/cleanroomsml.md) · [All operations](https://skmtc.net/aws/apis/cleanroomsml/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/cleanroomsml/versions/d3bb6d6eaa9a/schema)
