in source/aws_lambda/shared/personalize_service.py [0:0]
def _validate_datasets(self) -> None:
"""
Perform a validation of the datasets up front
:return: None
"""
datasets = jmespath.search("datasets", self.config_dict)
if not datasets:
logger.warning("typical usage includes a dataset declaration")
return
datasets = {
"users": jmespath.search(
"datasets.users.dataset.serviceConfig", self.config_dict
),
"items": jmespath.search(
"datasets.items.dataset.serviceConfig", self.config_dict
),
"interactions": jmespath.search(
"datasets.interactions.dataset.serviceConfig", self.config_dict
),
}
if not datasets["interactions"]:
self._configuration_errors.append(
"You must at minimum create an interactions dataset and declare its schema"
)
for dataset_name, dataset in datasets.items():
if dataset:
if not self._validate_type(
dataset, dict, f"datasets.{dataset_name} must be an object"
):
return
# some values are provided by the solution - we introduce placeholders
SolutionVersion().arn("validation")
dataset.update(
{
"datasetGroupArn": DatasetGroup().arn("validation"),
"schemaArn": Schema().arn("validation"),
"datasetType": dataset_name,
}
)
self._validate_resource(Dataset(), dataset)