{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2023-09-06",
    "endpointPrefix":"cleanrooms-ml",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceFullName":"AWS Clean Rooms ML",
    "serviceId":"CleanRoomsML",
    "signatureVersion":"v4",
    "signingName":"cleanrooms-ml",
    "uid":"cleanroomsml-2023-09-06"
  },
  "operations":{
    "CreateAudienceModel":{
      "name":"CreateAudienceModel",
      "http":{
        "method":"POST",
        "requestUri":"/audience-model",
        "responseCode":200
      },
      "input":{"shape":"CreateAudienceModelRequest"},
      "output":{"shape":"CreateAudienceModelResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Defines the information necessary to create an audience model. An audience model is a machine learning model that Clean Rooms ML trains to measure similarity between users. Clean Rooms ML manages training and storing the audience model. The audience model can be used in multiple calls to the <a>StartAudienceGenerationJob</a> API.</p>",
      "idempotent":true
    },
    "CreateConfiguredAudienceModel":{
      "name":"CreateConfiguredAudienceModel",
      "http":{
        "method":"POST",
        "requestUri":"/configured-audience-model",
        "responseCode":200
      },
      "input":{"shape":"CreateConfiguredAudienceModelRequest"},
      "output":{"shape":"CreateConfiguredAudienceModelResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Defines the information necessary to create a configured audience model.</p>",
      "idempotent":true
    },
    "CreateTrainingDataset":{
      "name":"CreateTrainingDataset",
      "http":{
        "method":"POST",
        "requestUri":"/training-dataset",
        "responseCode":200
      },
      "input":{"shape":"CreateTrainingDatasetRequest"},
      "output":{"shape":"CreateTrainingDatasetResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>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.</p>",
      "idempotent":true
    },
    "DeleteAudienceGenerationJob":{
      "name":"DeleteAudienceGenerationJob",
      "http":{
        "method":"DELETE",
        "requestUri":"/audience-generation-job/{audienceGenerationJobArn}",
        "responseCode":200
      },
      "input":{"shape":"DeleteAudienceGenerationJobRequest"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes the specified audience generation job, and removes all data associated with the job.</p>",
      "idempotent":true
    },
    "DeleteAudienceModel":{
      "name":"DeleteAudienceModel",
      "http":{
        "method":"DELETE",
        "requestUri":"/audience-model/{audienceModelArn}",
        "responseCode":200
      },
      "input":{"shape":"DeleteAudienceModelRequest"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Specifies an audience model that you want to delete. You can't delete an audience model if there are any configured audience models that depend on the audience model.</p>",
      "idempotent":true
    },
    "DeleteConfiguredAudienceModel":{
      "name":"DeleteConfiguredAudienceModel",
      "http":{
        "method":"DELETE",
        "requestUri":"/configured-audience-model/{configuredAudienceModelArn}",
        "responseCode":200
      },
      "input":{"shape":"DeleteConfiguredAudienceModelRequest"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes the specified configured audience model. You can't delete a configured audience model if there are any lookalike models that use the configured audience model. If you delete a configured audience model, it will be removed from any collaborations that it is associated to.</p>",
      "idempotent":true
    },
    "DeleteConfiguredAudienceModelPolicy":{
      "name":"DeleteConfiguredAudienceModelPolicy",
      "http":{
        "method":"DELETE",
        "requestUri":"/configured-audience-model/{configuredAudienceModelArn}/policy",
        "responseCode":200
      },
      "input":{"shape":"DeleteConfiguredAudienceModelPolicyRequest"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes the specified configured audience model policy.</p>",
      "idempotent":true
    },
    "DeleteTrainingDataset":{
      "name":"DeleteTrainingDataset",
      "http":{
        "method":"DELETE",
        "requestUri":"/training-dataset/{trainingDatasetArn}",
        "responseCode":200
      },
      "input":{"shape":"DeleteTrainingDatasetRequest"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Specifies a training dataset that you want to delete. You can't delete a training dataset if there are any audience models that depend on the 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. This action deletes the metadata.</p>",
      "idempotent":true
    },
    "GetAudienceGenerationJob":{
      "name":"GetAudienceGenerationJob",
      "http":{
        "method":"GET",
        "requestUri":"/audience-generation-job/{audienceGenerationJobArn}",
        "responseCode":200
      },
      "input":{"shape":"GetAudienceGenerationJobRequest"},
      "output":{"shape":"GetAudienceGenerationJobResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns information about an audience generation job.</p>"
    },
    "GetAudienceModel":{
      "name":"GetAudienceModel",
      "http":{
        "method":"GET",
        "requestUri":"/audience-model/{audienceModelArn}",
        "responseCode":200
      },
      "input":{"shape":"GetAudienceModelRequest"},
      "output":{"shape":"GetAudienceModelResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns information about an audience model</p>"
    },
    "GetConfiguredAudienceModel":{
      "name":"GetConfiguredAudienceModel",
      "http":{
        "method":"GET",
        "requestUri":"/configured-audience-model/{configuredAudienceModelArn}",
        "responseCode":200
      },
      "input":{"shape":"GetConfiguredAudienceModelRequest"},
      "output":{"shape":"GetConfiguredAudienceModelResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns information about a specified configured audience model.</p>"
    },
    "GetConfiguredAudienceModelPolicy":{
      "name":"GetConfiguredAudienceModelPolicy",
      "http":{
        "method":"GET",
        "requestUri":"/configured-audience-model/{configuredAudienceModelArn}/policy",
        "responseCode":200
      },
      "input":{"shape":"GetConfiguredAudienceModelPolicyRequest"},
      "output":{"shape":"GetConfiguredAudienceModelPolicyResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns information about a configured audience model policy.</p>"
    },
    "GetTrainingDataset":{
      "name":"GetTrainingDataset",
      "http":{
        "method":"GET",
        "requestUri":"/training-dataset/{trainingDatasetArn}",
        "responseCode":200
      },
      "input":{"shape":"GetTrainingDatasetRequest"},
      "output":{"shape":"GetTrainingDatasetResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns information about a training dataset.</p>"
    },
    "ListAudienceExportJobs":{
      "name":"ListAudienceExportJobs",
      "http":{
        "method":"GET",
        "requestUri":"/audience-export-job",
        "responseCode":200
      },
      "input":{"shape":"ListAudienceExportJobsRequest"},
      "output":{"shape":"ListAudienceExportJobsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns a list of the audience export jobs.</p>"
    },
    "ListAudienceGenerationJobs":{
      "name":"ListAudienceGenerationJobs",
      "http":{
        "method":"GET",
        "requestUri":"/audience-generation-job",
        "responseCode":200
      },
      "input":{"shape":"ListAudienceGenerationJobsRequest"},
      "output":{"shape":"ListAudienceGenerationJobsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns a list of audience generation jobs.</p>"
    },
    "ListAudienceModels":{
      "name":"ListAudienceModels",
      "http":{
        "method":"GET",
        "requestUri":"/audience-model",
        "responseCode":200
      },
      "input":{"shape":"ListAudienceModelsRequest"},
      "output":{"shape":"ListAudienceModelsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns a list of audience models.</p>"
    },
    "ListConfiguredAudienceModels":{
      "name":"ListConfiguredAudienceModels",
      "http":{
        "method":"GET",
        "requestUri":"/configured-audience-model",
        "responseCode":200
      },
      "input":{"shape":"ListConfiguredAudienceModelsRequest"},
      "output":{"shape":"ListConfiguredAudienceModelsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns a list of the configured audience models.</p>"
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of tags for a provided resource.</p>"
    },
    "ListTrainingDatasets":{
      "name":"ListTrainingDatasets",
      "http":{
        "method":"GET",
        "requestUri":"/training-dataset",
        "responseCode":200
      },
      "input":{"shape":"ListTrainingDatasetsRequest"},
      "output":{"shape":"ListTrainingDatasetsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns a list of training datasets.</p>"
    },
    "PutConfiguredAudienceModelPolicy":{
      "name":"PutConfiguredAudienceModelPolicy",
      "http":{
        "method":"PUT",
        "requestUri":"/configured-audience-model/{configuredAudienceModelArn}/policy",
        "responseCode":200
      },
      "input":{"shape":"PutConfiguredAudienceModelPolicyRequest"},
      "output":{"shape":"PutConfiguredAudienceModelPolicyResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Create or update the resource policy for a configured audience model.</p>",
      "idempotent":true
    },
    "StartAudienceExportJob":{
      "name":"StartAudienceExportJob",
      "http":{
        "method":"POST",
        "requestUri":"/audience-export-job",
        "responseCode":200
      },
      "input":{"shape":"StartAudienceExportJobRequest"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Export an audience of a specified size after you have generated an audience.</p>",
      "idempotent":true
    },
    "StartAudienceGenerationJob":{
      "name":"StartAudienceGenerationJob",
      "http":{
        "method":"POST",
        "requestUri":"/audience-generation-job",
        "responseCode":200
      },
      "input":{"shape":"StartAudienceGenerationJobRequest"},
      "output":{"shape":"StartAudienceGenerationJobResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Information necessary to start the audience generation job.</p>",
      "idempotent":true
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Adds metadata tags to a specified resource.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Removes metadata tags from a specified resource.</p>",
      "idempotent":true
    },
    "UpdateConfiguredAudienceModel":{
      "name":"UpdateConfiguredAudienceModel",
      "http":{
        "method":"PATCH",
        "requestUri":"/configured-audience-model/{configuredAudienceModelArn}",
        "responseCode":200
      },
      "input":{"shape":"UpdateConfiguredAudienceModelRequest"},
      "output":{"shape":"UpdateConfiguredAudienceModelResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Provides the information necessary to update a configured audience model. Updates that impact audience generation jobs take effect when a new job starts, but do not impact currently running jobs.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You do not have sufficient access to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AccountId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"^[0-9]{12}$"
    },
    "AudienceDestination":{
      "type":"structure",
      "required":["s3Destination"],
      "members":{
        "s3Destination":{
          "shape":"S3ConfigMap",
          "documentation":"<p>The Amazon S3 bucket and path for the configured audience.</p>"
        }
      },
      "documentation":"<p>Defines the Amazon S3 bucket where the configured audience is stored.</p>"
    },
    "AudienceExportJobList":{
      "type":"list",
      "member":{"shape":"AudienceExportJobSummary"}
    },
    "AudienceExportJobStatus":{
      "type":"string",
      "enum":[
        "CREATE_PENDING",
        "CREATE_IN_PROGRESS",
        "CREATE_FAILED",
        "ACTIVE"
      ]
    },
    "AudienceExportJobSummary":{
      "type":"structure",
      "required":[
        "audienceGenerationJobArn",
        "audienceSize",
        "createTime",
        "name",
        "status",
        "updateTime"
      ],
      "members":{
        "audienceGenerationJobArn":{
          "shape":"AudienceGenerationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience generation job that was exported.</p>"
        },
        "audienceSize":{"shape":"AudienceSize"},
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the audience export job was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the audience export job.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the audience export job.</p>"
        },
        "outputLocation":{
          "shape":"S3Path",
          "documentation":"<p>The Amazon S3 bucket where the audience export is stored.</p>"
        },
        "status":{
          "shape":"AudienceExportJobStatus",
          "documentation":"<p>The status of the audience export job.</p>"
        },
        "statusDetails":{"shape":"StatusDetails"},
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the audience export job was updated.</p>"
        }
      },
      "documentation":"<p>Provides information about the audience export job.</p>"
    },
    "AudienceGenerationJobArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:audience-generation-job/[-a-zA-Z0-9_/.]+$"
    },
    "AudienceGenerationJobDataSource":{
      "type":"structure",
      "required":[
        "dataSource",
        "roleArn"
      ],
      "members":{
        "dataSource":{
          "shape":"S3ConfigMap",
          "documentation":"<p>Defines the Amazon S3 bucket where the seed audience for the generating audience is stored. A valid data source is a JSON line file in the following format:</p> <p> <code>{\"user_id\": \"111111\"}</code> </p> <p> <code>{\"user_id\": \"222222\"}</code> </p> <p> <code>...</code> </p>"
        },
        "roleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The ARN of the IAM role that can read the Amazon S3 bucket where the training data is stored.</p>"
        }
      },
      "documentation":"<p>Defines the Amazon S3 bucket where the seed audience for the generating audience is stored.</p>"
    },
    "AudienceGenerationJobList":{
      "type":"list",
      "member":{"shape":"AudienceGenerationJobSummary"}
    },
    "AudienceGenerationJobStatus":{
      "type":"string",
      "enum":[
        "CREATE_PENDING",
        "CREATE_IN_PROGRESS",
        "CREATE_FAILED",
        "ACTIVE",
        "DELETE_PENDING",
        "DELETE_IN_PROGRESS",
        "DELETE_FAILED"
      ]
    },
    "AudienceGenerationJobSummary":{
      "type":"structure",
      "required":[
        "audienceGenerationJobArn",
        "configuredAudienceModelArn",
        "createTime",
        "name",
        "status",
        "updateTime"
      ],
      "members":{
        "audienceGenerationJobArn":{
          "shape":"AudienceGenerationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience generation job.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The identifier of the collaboration that contains this audience generation job.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that was used for this audience generation job.</p>"
        },
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the audience generation job was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the audience generation job.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the audience generation job.</p>"
        },
        "startedBy":{
          "shape":"AccountId",
          "documentation":"<p>The AWS Account that submitted the job.</p>"
        },
        "status":{
          "shape":"AudienceGenerationJobStatus",
          "documentation":"<p>The status of the audience generation job.</p>"
        },
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the audience generation job was updated.</p>"
        }
      },
      "documentation":"<p>Provides information about the configured audience generation job.</p>"
    },
    "AudienceModelArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:audience-model/[-a-zA-Z0-9_/.]+$"
    },
    "AudienceModelList":{
      "type":"list",
      "member":{"shape":"AudienceModelSummary"}
    },
    "AudienceModelStatus":{
      "type":"string",
      "enum":[
        "CREATE_PENDING",
        "CREATE_IN_PROGRESS",
        "CREATE_FAILED",
        "ACTIVE",
        "DELETE_PENDING",
        "DELETE_IN_PROGRESS",
        "DELETE_FAILED"
      ]
    },
    "AudienceModelSummary":{
      "type":"structure",
      "required":[
        "audienceModelArn",
        "createTime",
        "name",
        "status",
        "trainingDatasetArn",
        "updateTime"
      ],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience model.</p>"
        },
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the audience model was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the audience model.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the audience model.</p>"
        },
        "status":{
          "shape":"AudienceModelStatus",
          "documentation":"<p>The status of the audience model.</p>"
        },
        "trainingDatasetArn":{
          "shape":"TrainingDatasetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the training dataset that was used for the audience model.</p>"
        },
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the audience model was updated.</p>"
        }
      },
      "documentation":"<p>Information about the audience model.</p>"
    },
    "AudienceQualityMetrics":{
      "type":"structure",
      "required":["relevanceMetrics"],
      "members":{
        "recallMetric":{
          "shape":"Double",
          "documentation":"<p>The recall score of the generated audience. Recall is the percentage of the most similar users (by default, the most similar 20%) from a sample of the training data that are included in the seed audience by the audience generation job. Values range from 0-1, larger values indicate a better audience. A recall value approximately equal to the maximum bin size indicates that the audience model is equivalent to random selection. </p>"
        },
        "relevanceMetrics":{
          "shape":"RelevanceMetrics",
          "documentation":"<p>The relevance scores of the generated audience.</p>"
        }
      },
      "documentation":"<p>Metrics that describe the quality of the generated audience.</p>"
    },
    "AudienceSize":{
      "type":"structure",
      "required":[
        "type",
        "value"
      ],
      "members":{
        "type":{
          "shape":"AudienceSizeType",
          "documentation":"<p>Whether the audience size is defined in absolute terms or as a percentage. You can use the <code>ABSOLUTE</code> <a>AudienceSize</a> to configure out audience sizes using the count of identifiers in the output. You can use the <code>Percentage</code> <a>AudienceSize</a> to configure sizes in the range 1-100 percent.</p>"
        },
        "value":{
          "shape":"AudienceSizeValue",
          "documentation":"<p>Specify an audience size value.</p>"
        }
      },
      "documentation":"<p>The size of the generated audience. Must match one of the sizes in the configured audience model.</p>"
    },
    "AudienceSizeBins":{
      "type":"list",
      "member":{"shape":"AudienceSizeValue"},
      "max":25,
      "min":1
    },
    "AudienceSizeConfig":{
      "type":"structure",
      "required":[
        "audienceSizeBins",
        "audienceSizeType"
      ],
      "members":{
        "audienceSizeBins":{
          "shape":"AudienceSizeBins",
          "documentation":"<p>An array of the different audience output sizes.</p>"
        },
        "audienceSizeType":{
          "shape":"AudienceSizeType",
          "documentation":"<p>Whether the audience output sizes are defined as an absolute number or a percentage.</p>"
        }
      },
      "documentation":"<p>Configure the list of audience output sizes that can be created. A request to <a>StartAudienceGenerationJob</a> that uses this configured audience model must have an <code>audienceSize</code> selected from this list. You can use the <code>ABSOLUTE</code> <a>AudienceSize</a> to configure out audience sizes using the count of identifiers in the output. You can use the <code>Percentage</code> <a>AudienceSize</a> to configure sizes in the range 1-100 percent.</p>"
    },
    "AudienceSizeType":{
      "type":"string",
      "enum":[
        "ABSOLUTE",
        "PERCENTAGE"
      ]
    },
    "AudienceSizeValue":{
      "type":"integer",
      "box":true,
      "max":20000000,
      "min":1
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "ColumnName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$"
    },
    "ColumnSchema":{
      "type":"structure",
      "required":[
        "columnName",
        "columnTypes"
      ],
      "members":{
        "columnName":{
          "shape":"ColumnName",
          "documentation":"<p>The name of a column.</p>"
        },
        "columnTypes":{
          "shape":"ColumnTypeList",
          "documentation":"<p>The data type of column.</p>"
        }
      },
      "documentation":"<p>Metadata for a column.</p>"
    },
    "ColumnType":{
      "type":"string",
      "enum":[
        "USER_ID",
        "ITEM_ID",
        "TIMESTAMP",
        "CATEGORICAL_FEATURE",
        "NUMERICAL_FEATURE"
      ]
    },
    "ColumnTypeList":{
      "type":"list",
      "member":{"shape":"ColumnType"},
      "max":1,
      "min":1
    },
    "ConfiguredAudienceModelArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:configured-audience-model/[-a-zA-Z0-9_/.]+$"
    },
    "ConfiguredAudienceModelList":{
      "type":"list",
      "member":{"shape":"ConfiguredAudienceModelSummary"}
    },
    "ConfiguredAudienceModelOutputConfig":{
      "type":"structure",
      "required":[
        "destination",
        "roleArn"
      ],
      "members":{
        "destination":{"shape":"AudienceDestination"},
        "roleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The ARN of the IAM role that can write the Amazon S3 bucket.</p>"
        }
      },
      "documentation":"<p>Configuration information necessary for the configure audience model output.</p>"
    },
    "ConfiguredAudienceModelStatus":{
      "type":"string",
      "enum":["ACTIVE"]
    },
    "ConfiguredAudienceModelSummary":{
      "type":"structure",
      "required":[
        "audienceModelArn",
        "configuredAudienceModelArn",
        "createTime",
        "name",
        "outputConfig",
        "status",
        "updateTime"
      ],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience model that was used to create the configured audience model.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that you are interested in.</p>"
        },
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the configured audience model was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the configured audience model.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the configured audience model.</p>"
        },
        "outputConfig":{
          "shape":"ConfiguredAudienceModelOutputConfig",
          "documentation":"<p>The output configuration of the configured audience model.</p>"
        },
        "status":{
          "shape":"ConfiguredAudienceModelStatus",
          "documentation":"<p>The status of the configured audience model.</p>"
        },
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the configured audience model was updated.</p>"
        }
      },
      "documentation":"<p>Information about the configured audience model.</p>"
    },
    "ConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You can't complete this action because another resource depends on this resource.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "CreateAudienceModelRequest":{
      "type":"structure",
      "required":[
        "name",
        "trainingDatasetArn"
      ],
      "members":{
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the audience model.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key. This key is used to encrypt and decrypt customer-owned data in the trained ML model and the associated data.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the audience model resource.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<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>"
        },
        "trainingDataEndTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The end date and time of the training window.</p>"
        },
        "trainingDataStartTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The start date and time of the training window.</p>"
        },
        "trainingDatasetArn":{
          "shape":"TrainingDatasetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the training dataset for this audience model.</p>"
        }
      }
    },
    "CreateAudienceModelResponse":{
      "type":"structure",
      "required":["audienceModelArn"],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience model.</p>"
        }
      }
    },
    "CreateConfiguredAudienceModelRequest":{
      "type":"structure",
      "required":[
        "audienceModelArn",
        "name",
        "outputConfig",
        "sharedAudienceMetrics"
      ],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience model to use for the configured audience model.</p>"
        },
        "audienceSizeConfig":{
          "shape":"AudienceSizeConfig",
          "documentation":"<p>Configure the list of output sizes of audiences that can be created using this configured audience model. A request to <a>StartAudienceGenerationJob</a> that uses this configured audience model must have an <code>audienceSize</code> selected from this list. You can use the <code>ABSOLUTE</code> <a>AudienceSize</a> to configure out audience sizes using the count of identifiers in the output. You can use the <code>Percentage</code> <a>AudienceSize</a> to configure sizes in the range 1-100 percent.</p>"
        },
        "childResourceTagOnCreatePolicy":{
          "shape":"TagOnCreatePolicy",
          "documentation":"<p>Configure how the service tags audience generation jobs created using this configured audience model. If you specify <code>NONE</code>, the tags from the <a>StartAudienceGenerationJob</a> request determine the tags of the audience generation job. If you specify <code>FROM_PARENT_RESOURCE</code>, the audience generation job inherits the tags from the configured audience model, by default. Tags in the <a>StartAudienceGenerationJob</a> will override the default.</p> <p>When the client is in a different account than the configured audience model, the tags from the client are never applied to a resource in the caller's account.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the configured audience model.</p>"
        },
        "minMatchingSeedSize":{
          "shape":"MinMatchingSeedSize",
          "documentation":"<p>The minimum number of users from the seed audience that must match with users in the training data of the audience model. The default value is 500.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the configured audience model.</p>"
        },
        "outputConfig":{
          "shape":"ConfiguredAudienceModelOutputConfig",
          "documentation":"<p>Configure the Amazon S3 location and IAM Role for audiences created using this configured audience model. Each audience will have a unique location. The IAM Role must have <code>s3:PutObject</code> permission on the destination Amazon S3 location. If the destination is protected with Amazon S3 KMS-SSE, then the Role must also have the required KMS permissions.</p>"
        },
        "sharedAudienceMetrics":{
          "shape":"MetricsList",
          "documentation":"<p>Whether audience metrics are shared.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<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>"
        }
      }
    },
    "CreateConfiguredAudienceModelResponse":{
      "type":"structure",
      "required":["configuredAudienceModelArn"],
      "members":{
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model.</p>"
        }
      }
    },
    "CreateTrainingDatasetRequest":{
      "type":"structure",
      "required":[
        "name",
        "roleArn",
        "trainingData"
      ],
      "members":{
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the training dataset.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the training dataset. This name must be unique in your account and region.</p>"
        },
        "roleArn":{
          "shape":"IamRoleArn",
          "documentation":"<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>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<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>"
        },
        "trainingData":{
          "shape":"CreateTrainingDatasetRequestTrainingDataList",
          "documentation":"<p>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.</p>"
        }
      }
    },
    "CreateTrainingDatasetRequestTrainingDataList":{
      "type":"list",
      "member":{"shape":"Dataset"},
      "max":1,
      "min":1
    },
    "CreateTrainingDatasetResponse":{
      "type":"structure",
      "required":["trainingDatasetArn"],
      "members":{
        "trainingDatasetArn":{
          "shape":"TrainingDatasetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the training dataset resource.</p>"
        }
      }
    },
    "DataSource":{
      "type":"structure",
      "required":["glueDataSource"],
      "members":{
        "glueDataSource":{
          "shape":"GlueDataSource",
          "documentation":"<p>A GlueDataSource object that defines the catalog ID, database name, and table name for the training data.</p>"
        }
      },
      "documentation":"<p>Defines information about the Glue data source that contains the training data.</p>"
    },
    "Dataset":{
      "type":"structure",
      "required":[
        "inputConfig",
        "type"
      ],
      "members":{
        "inputConfig":{
          "shape":"DatasetInputConfig",
          "documentation":"<p>A DatasetInputConfig object that defines the data source and schema mapping.</p>"
        },
        "type":{
          "shape":"DatasetType",
          "documentation":"<p>What type of information is found in the dataset.</p>"
        }
      },
      "documentation":"<p>Defines where the training dataset is located, what type of data it contains, and how to access the data.</p>"
    },
    "DatasetInputConfig":{
      "type":"structure",
      "required":[
        "dataSource",
        "schema"
      ],
      "members":{
        "dataSource":{
          "shape":"DataSource",
          "documentation":"<p>A DataSource object that specifies the Glue data source for the training data.</p>"
        },
        "schema":{
          "shape":"DatasetInputConfigSchemaList",
          "documentation":"<p>The schema information for the training data.</p>"
        }
      },
      "documentation":"<p>Defines the Glue data source and schema mapping information.</p>"
    },
    "DatasetInputConfigSchemaList":{
      "type":"list",
      "member":{"shape":"ColumnSchema"},
      "max":100,
      "min":1
    },
    "DatasetList":{
      "type":"list",
      "member":{"shape":"Dataset"}
    },
    "DatasetType":{
      "type":"string",
      "enum":["INTERACTIONS"]
    },
    "DeleteAudienceGenerationJobRequest":{
      "type":"structure",
      "required":["audienceGenerationJobArn"],
      "members":{
        "audienceGenerationJobArn":{
          "shape":"AudienceGenerationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience generation job that you want to delete.</p>",
          "location":"uri",
          "locationName":"audienceGenerationJobArn"
        }
      }
    },
    "DeleteAudienceModelRequest":{
      "type":"structure",
      "required":["audienceModelArn"],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience model that you want to delete.</p>",
          "location":"uri",
          "locationName":"audienceModelArn"
        }
      }
    },
    "DeleteConfiguredAudienceModelPolicyRequest":{
      "type":"structure",
      "required":["configuredAudienceModelArn"],
      "members":{
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model policy that you want to delete.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelArn"
        }
      }
    },
    "DeleteConfiguredAudienceModelRequest":{
      "type":"structure",
      "required":["configuredAudienceModelArn"],
      "members":{
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that you want to delete.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelArn"
        }
      }
    },
    "DeleteTrainingDatasetRequest":{
      "type":"structure",
      "required":["trainingDatasetArn"],
      "members":{
        "trainingDatasetArn":{
          "shape":"TrainingDatasetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the training dataset that you want to delete.</p>",
          "location":"uri",
          "locationName":"trainingDatasetArn"
        }
      }
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "GetAudienceGenerationJobRequest":{
      "type":"structure",
      "required":["audienceGenerationJobArn"],
      "members":{
        "audienceGenerationJobArn":{
          "shape":"AudienceGenerationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience generation job that you are interested in.</p>",
          "location":"uri",
          "locationName":"audienceGenerationJobArn"
        }
      }
    },
    "GetAudienceGenerationJobResponse":{
      "type":"structure",
      "required":[
        "audienceGenerationJobArn",
        "configuredAudienceModelArn",
        "createTime",
        "name",
        "status",
        "updateTime"
      ],
      "members":{
        "audienceGenerationJobArn":{
          "shape":"AudienceGenerationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience generation job.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The identifier of the collaboration that this audience generation job is associated with.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model used for this audience generation job.</p>"
        },
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the audience generation job was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the audience generation job.</p>"
        },
        "includeSeedInOutput":{
          "shape":"Boolean",
          "documentation":"<p>Configure whether the seed users are included in the output audience. By default, Clean Rooms ML removes seed users from the output audience. If you specify <code>TRUE</code>, the seed users will appear first in the output. Clean Rooms ML does not explicitly reveal whether a user was in the seed, but the recipient of the audience will know that the first <code>minimumSeedSize</code> count of users are from the seed.</p>"
        },
        "metrics":{
          "shape":"AudienceQualityMetrics",
          "documentation":"<p>The relevance scores for different audience sizes and the recall score of the generated audience. </p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the audience generation job.</p>"
        },
        "seedAudience":{
          "shape":"AudienceGenerationJobDataSource",
          "documentation":"<p>The seed audience that was used for this audience generation job. This field will be null if the account calling the API is the account that started this audience generation job. </p>"
        },
        "startedBy":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account that started this audience generation job.</p>"
        },
        "status":{
          "shape":"AudienceGenerationJobStatus",
          "documentation":"<p>The status of the audience generation job.</p>"
        },
        "statusDetails":{
          "shape":"StatusDetails",
          "documentation":"<p>Details about the status of the audience generation job.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags that are associated to this audience generation job.</p>"
        },
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the audience generation job was updated.</p>"
        }
      }
    },
    "GetAudienceModelRequest":{
      "type":"structure",
      "required":["audienceModelArn"],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience model that you are interested in.</p>",
          "location":"uri",
          "locationName":"audienceModelArn"
        }
      }
    },
    "GetAudienceModelResponse":{
      "type":"structure",
      "required":[
        "audienceModelArn",
        "createTime",
        "name",
        "status",
        "trainingDatasetArn",
        "updateTime"
      ],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience model.</p>"
        },
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the audience model was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the audience model.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The KMS key ARN used for the audience model.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the audience model.</p>"
        },
        "status":{
          "shape":"AudienceModelStatus",
          "documentation":"<p>The status of the audience model.</p>"
        },
        "statusDetails":{
          "shape":"StatusDetails",
          "documentation":"<p>Details about the status of the audience model.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags that are assigned to the audience model.</p>"
        },
        "trainingDataEndTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The end date specified for the training window.</p>"
        },
        "trainingDataStartTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The start date specified for the training window.</p>"
        },
        "trainingDatasetArn":{
          "shape":"TrainingDatasetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the training dataset that was used for this audience model.</p>"
        },
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the audience model was updated.</p>"
        }
      }
    },
    "GetConfiguredAudienceModelPolicyRequest":{
      "type":"structure",
      "required":["configuredAudienceModelArn"],
      "members":{
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that you are interested in.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelArn"
        }
      }
    },
    "GetConfiguredAudienceModelPolicyResponse":{
      "type":"structure",
      "required":[
        "configuredAudienceModelArn",
        "configuredAudienceModelPolicy",
        "policyHash"
      ],
      "members":{
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model.</p>"
        },
        "configuredAudienceModelPolicy":{
          "shape":"ResourcePolicy",
          "documentation":"<p>The configured audience model policy. This is a JSON IAM resource policy.</p>"
        },
        "policyHash":{
          "shape":"Hash",
          "documentation":"<p>A cryptographic hash of the contents of the policy used to prevent unexpected concurrent modification of the policy.</p>"
        }
      }
    },
    "GetConfiguredAudienceModelRequest":{
      "type":"structure",
      "required":["configuredAudienceModelArn"],
      "members":{
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that you are interested in.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelArn"
        }
      }
    },
    "GetConfiguredAudienceModelResponse":{
      "type":"structure",
      "required":[
        "audienceModelArn",
        "configuredAudienceModelArn",
        "createTime",
        "name",
        "outputConfig",
        "sharedAudienceMetrics",
        "status",
        "updateTime"
      ],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience model used for this configured audience model.</p>"
        },
        "audienceSizeConfig":{
          "shape":"AudienceSizeConfig",
          "documentation":"<p>The list of output sizes of audiences that can be created using this configured audience model. A request to <a>StartAudienceGenerationJob</a> that uses this configured audience model must have an <code>audienceSize</code> selected from this list. You can use the <code>ABSOLUTE</code> <a>AudienceSize</a> to configure out audience sizes using the count of identifiers in the output. You can use the <code>Percentage</code> <a>AudienceSize</a> to configure sizes in the range 1-100 percent.</p>"
        },
        "childResourceTagOnCreatePolicy":{
          "shape":"TagOnCreatePolicy",
          "documentation":"<p>Provides the <code>childResourceTagOnCreatePolicy</code> that was used for this configured audience model.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model.</p>"
        },
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the configured audience model was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the configured audience model.</p>"
        },
        "minMatchingSeedSize":{
          "shape":"MinMatchingSeedSize",
          "documentation":"<p>The minimum number of users from the seed audience that must match with users in the training data of the audience model.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the configured audience model.</p>"
        },
        "outputConfig":{
          "shape":"ConfiguredAudienceModelOutputConfig",
          "documentation":"<p>The output configuration of the configured audience model</p>"
        },
        "sharedAudienceMetrics":{
          "shape":"MetricsList",
          "documentation":"<p>Whether audience metrics are shared.</p>"
        },
        "status":{
          "shape":"ConfiguredAudienceModelStatus",
          "documentation":"<p>The status of the configured audience model.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags that are associated to this configured audience model.</p>"
        },
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the configured audience model was updated.</p>"
        }
      }
    },
    "GetTrainingDatasetRequest":{
      "type":"structure",
      "required":["trainingDatasetArn"],
      "members":{
        "trainingDatasetArn":{
          "shape":"TrainingDatasetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the training dataset that you are interested in.</p>",
          "location":"uri",
          "locationName":"trainingDatasetArn"
        }
      }
    },
    "GetTrainingDatasetResponse":{
      "type":"structure",
      "required":[
        "createTime",
        "name",
        "roleArn",
        "status",
        "trainingData",
        "trainingDatasetArn",
        "updateTime"
      ],
      "members":{
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the training dataset was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the training dataset.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the training dataset.</p>"
        },
        "roleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The IAM role used to read the training data.</p>"
        },
        "status":{
          "shape":"TrainingDatasetStatus",
          "documentation":"<p>The status of the training dataset.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags that are assigned to this training dataset.</p>"
        },
        "trainingData":{
          "shape":"DatasetList",
          "documentation":"<p>Metadata about the requested training data. </p>"
        },
        "trainingDatasetArn":{
          "shape":"TrainingDatasetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the training dataset.</p>"
        },
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the training dataset was updated.</p>"
        }
      }
    },
    "GlueDataSource":{
      "type":"structure",
      "required":[
        "databaseName",
        "tableName"
      ],
      "members":{
        "catalogId":{
          "shape":"AccountId",
          "documentation":"<p>The Glue catalog that contains the training data.</p>"
        },
        "databaseName":{
          "shape":"GlueDatabaseName",
          "documentation":"<p>The Glue database that contains the training data.</p>"
        },
        "tableName":{
          "shape":"GlueTableName",
          "documentation":"<p>The Glue table that contains the training data.</p>"
        }
      },
      "documentation":"<p>Defines the Glue data source that contains the training data.</p>"
    },
    "GlueDatabaseName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?$"
    },
    "GlueTableName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$"
    },
    "Hash":{
      "type":"string",
      "max":128,
      "min":64,
      "pattern":"^[0-9a-f]+$"
    },
    "IamRoleArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$"
    },
    "KmsKeyArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"^arn:aws[-a-z]*:kms:[-a-z0-9]+:[0-9]{12}:key/.+$"
    },
    "ListAudienceExportJobsRequest":{
      "type":"structure",
      "members":{
        "audienceGenerationJobArn":{
          "shape":"AudienceGenerationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience generation job that you are interested in.</p>",
          "location":"querystring",
          "locationName":"audienceGenerationJobArn"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum size of the results that is returned per call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListAudienceExportJobsResponse":{
      "type":"structure",
      "required":["audienceExportJobs"],
      "members":{
        "audienceExportJobs":{
          "shape":"AudienceExportJobList",
          "documentation":"<p>The audience export jobs that match the request.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>"
        }
      }
    },
    "ListAudienceGenerationJobsRequest":{
      "type":"structure",
      "members":{
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The identifier of the collaboration that contains the audience generation jobs that you are interested in.</p>",
          "location":"querystring",
          "locationName":"collaborationId"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that was used for the audience generation jobs that you are interested in.</p>",
          "location":"querystring",
          "locationName":"configuredAudienceModelArn"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum size of the results that is returned per call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListAudienceGenerationJobsResponse":{
      "type":"structure",
      "required":["audienceGenerationJobs"],
      "members":{
        "audienceGenerationJobs":{
          "shape":"AudienceGenerationJobList",
          "documentation":"<p>The audience generation jobs that match the request.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>"
        }
      }
    },
    "ListAudienceModelsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum size of the results that is returned per call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListAudienceModelsResponse":{
      "type":"structure",
      "required":["audienceModels"],
      "members":{
        "audienceModels":{
          "shape":"AudienceModelList",
          "documentation":"<p>The audience models that match the request.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>"
        }
      }
    },
    "ListConfiguredAudienceModelsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum size of the results that is returned per call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListConfiguredAudienceModelsResponse":{
      "type":"structure",
      "required":["configuredAudienceModels"],
      "members":{
        "configuredAudienceModels":{
          "shape":"ConfiguredAudienceModelList",
          "documentation":"<p>The configured audience models.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"TaggableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource that you are interested in.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "required":["tags"],
      "members":{
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags that are associated with the resource.</p>"
        }
      }
    },
    "ListTrainingDatasetsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum size of the results that is returned per call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListTrainingDatasetsResponse":{
      "type":"structure",
      "required":["trainingDatasets"],
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token value retrieved from a previous call to access the next page of results.</p>"
        },
        "trainingDatasets":{
          "shape":"TrainingDatasetList",
          "documentation":"<p>The training datasets that match the request.</p>"
        }
      }
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "MetricsList":{
      "type":"list",
      "member":{"shape":"SharedAudienceMetrics"},
      "max":1,
      "min":1
    },
    "MinMatchingSeedSize":{
      "type":"integer",
      "box":true,
      "max":500000,
      "min":25
    },
    "NameString":{
      "type":"string",
      "max":63,
      "min":1,
      "pattern":"^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$"
    },
    "NextToken":{
      "type":"string",
      "max":10240,
      "min":1
    },
    "PolicyExistenceCondition":{
      "type":"string",
      "enum":[
        "POLICY_MUST_EXIST",
        "POLICY_MUST_NOT_EXIST"
      ]
    },
    "PutConfiguredAudienceModelPolicyRequest":{
      "type":"structure",
      "required":[
        "configuredAudienceModelArn",
        "configuredAudienceModelPolicy"
      ],
      "members":{
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that the resource policy will govern.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelArn"
        },
        "configuredAudienceModelPolicy":{
          "shape":"ResourcePolicy",
          "documentation":"<p>The IAM resource policy.</p>"
        },
        "policyExistenceCondition":{
          "shape":"PolicyExistenceCondition",
          "documentation":"<p>Use this to prevent unexpected concurrent modification of the policy.</p>"
        },
        "previousPolicyHash":{
          "shape":"Hash",
          "documentation":"<p>A cryptographic hash of the contents of the policy used to prevent unexpected concurrent modification of the policy.</p>"
        }
      }
    },
    "PutConfiguredAudienceModelPolicyResponse":{
      "type":"structure",
      "required":[
        "configuredAudienceModelPolicy",
        "policyHash"
      ],
      "members":{
        "configuredAudienceModelPolicy":{
          "shape":"ResourcePolicy",
          "documentation":"<p>The IAM resource policy.</p>"
        },
        "policyHash":{
          "shape":"Hash",
          "documentation":"<p>A cryptographic hash of the contents of the policy used to prevent unexpected concurrent modification of the policy.</p>"
        }
      }
    },
    "RelevanceMetric":{
      "type":"structure",
      "required":["audienceSize"],
      "members":{
        "audienceSize":{"shape":"AudienceSize"},
        "score":{
          "shape":"Double",
          "documentation":"<p>The relevance score of the generated audience.</p>"
        }
      },
      "documentation":"<p>The relevance score of a generated audience.</p>"
    },
    "RelevanceMetrics":{
      "type":"list",
      "member":{"shape":"RelevanceMetric"}
    },
    "ResourceDescription":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The resource you are requesting does not exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourcePolicy":{
      "type":"string",
      "max":20480,
      "min":1
    },
    "S3ConfigMap":{
      "type":"structure",
      "required":["s3Uri"],
      "members":{
        "s3Uri":{
          "shape":"S3Path",
          "documentation":"<p>The Amazon S3 location URI.</p>"
        }
      },
      "documentation":"<p>Provides information about an Amazon S3 bucket and path.</p>"
    },
    "S3Path":{
      "type":"string",
      "max":1285,
      "min":1,
      "pattern":"^s3://.+$"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You have exceeded your service quota.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "SharedAudienceMetrics":{
      "type":"string",
      "enum":[
        "ALL",
        "NONE"
      ]
    },
    "StartAudienceExportJobRequest":{
      "type":"structure",
      "required":[
        "audienceGenerationJobArn",
        "audienceSize",
        "name"
      ],
      "members":{
        "audienceGenerationJobArn":{
          "shape":"AudienceGenerationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience generation job that you want to export.</p>"
        },
        "audienceSize":{"shape":"AudienceSize"},
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the audience export job.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the audience export job.</p>"
        }
      }
    },
    "StartAudienceGenerationJobRequest":{
      "type":"structure",
      "required":[
        "configuredAudienceModelArn",
        "name",
        "seedAudience"
      ],
      "members":{
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The identifier of the collaboration that contains the audience generation job.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that is used for this audience generation job.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the audience generation job.</p>"
        },
        "includeSeedInOutput":{
          "shape":"Boolean",
          "documentation":"<p>Whether the seed audience is included in the audience generation output.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the audience generation job.</p>"
        },
        "seedAudience":{
          "shape":"AudienceGenerationJobDataSource",
          "documentation":"<p>The seed audience that is used to generate the audience.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<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>"
        }
      }
    },
    "StartAudienceGenerationJobResponse":{
      "type":"structure",
      "required":["audienceGenerationJobArn"],
      "members":{
        "audienceGenerationJobArn":{
          "shape":"AudienceGenerationJobArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the audience generation job.</p>"
        }
      }
    },
    "StatusDetails":{
      "type":"structure",
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>The error message that was returned. The message is intended for human consumption and can change at any time. Use the <code>statusCode</code> for programmatic error handling.</p>"
        },
        "statusCode":{
          "shape":"String",
          "documentation":"<p>The status code that was returned. The status code is intended for programmatic error handling. Clean Rooms ML will not change the status code for existing error conditions.</p>"
        }
      },
      "documentation":"<p>Details about the status of a resource.</p>"
    },
    "String":{"type":"string"},
    "SyntheticTimestamp_date_time":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagKeys":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":200,
      "min":0
    },
    "TagMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "max":200,
      "min":0
    },
    "TagOnCreatePolicy":{
      "type":"string",
      "enum":[
        "FROM_PARENT_RESOURCE",
        "NONE"
      ]
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"TaggableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource that you want to assign tags.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<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 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>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "TaggableArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:(training-dataset|audience-model|configured-audience-model|audience-generation-job)/[-a-zA-Z0-9_/.]+$"
    },
    "TrainingDatasetArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:training-dataset/[-a-zA-Z0-9_/.]+$"
    },
    "TrainingDatasetList":{
      "type":"list",
      "member":{"shape":"TrainingDatasetSummary"}
    },
    "TrainingDatasetStatus":{
      "type":"string",
      "enum":["ACTIVE"]
    },
    "TrainingDatasetSummary":{
      "type":"structure",
      "required":[
        "createTime",
        "name",
        "status",
        "trainingDatasetArn",
        "updateTime"
      ],
      "members":{
        "createTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The time at which the training dataset was created.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the training dataset.</p>"
        },
        "name":{
          "shape":"NameString",
          "documentation":"<p>The name of the training dataset.</p>"
        },
        "status":{
          "shape":"TrainingDatasetStatus",
          "documentation":"<p>The status of the training dataset.</p>"
        },
        "trainingDatasetArn":{
          "shape":"TrainingDatasetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the training dataset.</p>"
        },
        "updateTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The most recent time at which the training dataset was updated.</p>"
        }
      },
      "documentation":"<p>Provides information about the training dataset.</p>"
    },
    "UUID":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"TaggableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource that you want to remove tags from.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeys",
          "documentation":"<p>The key values of tags that you want to remove.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateConfiguredAudienceModelRequest":{
      "type":"structure",
      "required":["configuredAudienceModelArn"],
      "members":{
        "audienceModelArn":{
          "shape":"AudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the new audience model that you want to use.</p>"
        },
        "audienceSizeConfig":{
          "shape":"AudienceSizeConfig",
          "documentation":"<p>The new audience size configuration.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that you want to update.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelArn"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The new description of the configured audience model.</p>"
        },
        "minMatchingSeedSize":{
          "shape":"MinMatchingSeedSize",
          "documentation":"<p>The minimum number of users from the seed audience that must match with users in the training data of the audience model.</p>"
        },
        "outputConfig":{
          "shape":"ConfiguredAudienceModelOutputConfig",
          "documentation":"<p>The new output configuration.</p>"
        },
        "sharedAudienceMetrics":{
          "shape":"MetricsList",
          "documentation":"<p>The new value for whether to share audience metrics.</p>"
        }
      }
    },
    "UpdateConfiguredAudienceModelResponse":{
      "type":"structure",
      "required":["configuredAudienceModelArn"],
      "members":{
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that was updated.</p>"
        }
      }
    },
    "ValidationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request parameters for this request are incorrect.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    }
  },
  "documentation":"<p>Welcome to the <i>Amazon Web Services Clean Rooms ML API Reference</i>.</p> <p>Amazon Web Services Clean Rooms ML provides a privacy-enhancing method for two parties to identify similar users in their data without the need to share their data with each other. The first party brings the training data to Clean Rooms so that they can create and configure an audience model (lookalike model) and associate it with a collaboration. The second party then brings their seed data to Clean Rooms and generates an audience (lookalike segment) that resembles the training data.</p> <p>To learn more about Amazon Web Services Clean Rooms ML concepts, procedures, and best practices, see the <a href=\"https://docs.aws.amazon.com/clean-rooms/latest/userguide/machine-learning.html\">Clean Rooms User Guide</a>.</p> <p>To learn more about SQL commands, functions, and conditions supported in Clean Rooms, see the <a href=\"https://docs.aws.amazon.com/clean-rooms/latest/sql-reference/sql-reference.html\">Clean Rooms SQL Reference</a>.</p>"
}
