PERSONALIZE

CreateBatchInferenceJob

enum_BatchInferenceJobMode := [ "BATCH_INFERENCE", "THEME_GENERATION" ]

valid {
    input.Body.jobName == STRING
    input.Body.solutionVersionArn == STRING
    input.Body.filterArn == STRING
    input.Body.numResults == INTEGER
    input.Body.jobInput.s3DataSource.path == STRING
    input.Body.jobInput.s3DataSource.kmsKeyArn == STRING
    input.Body.jobOutput.s3DataDestination.path == STRING
    input.Body.jobOutput.s3DataDestination.kmsKeyArn == STRING
    input.Body.roleArn == STRING
    input.Body.batchInferenceJobConfig.itemExplorationConfig.STRING == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.Body.batchInferenceJobMode == enum_BatchInferenceJobMode[_]
    input.Body.themeGenerationConfig.fieldsForThemeGeneration.itemName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateBatchSegmentJob

valid {
    input.Body.jobName == STRING
    input.Body.solutionVersionArn == STRING
    input.Body.filterArn == STRING
    input.Body.numResults == INTEGER
    input.Body.jobInput.s3DataSource.path == STRING
    input.Body.jobInput.s3DataSource.kmsKeyArn == STRING
    input.Body.jobOutput.s3DataDestination.path == STRING
    input.Body.jobOutput.s3DataDestination.kmsKeyArn == STRING
    input.Body.roleArn == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCampaign

valid {
    input.Body.name == STRING
    input.Body.solutionVersionArn == STRING
    input.Body.minProvisionedTPS == INTEGER
    input.Body.campaignConfig.itemExplorationConfig.STRING == STRING
    input.Body.campaignConfig.enableMetadataWithRecommendations == BOOLEAN
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDataset

valid {
    input.Body.name == STRING
    input.Body.schemaArn == STRING
    input.Body.datasetGroupArn == STRING
    input.Body.datasetType == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDatasetExportJob

enum_IngestionMode := [ "BULK", "PUT", "ALL" ]

valid {
    input.Body.jobName == STRING
    input.Body.datasetArn == STRING
    input.Body.ingestionMode == enum_IngestionMode[_]
    input.Body.roleArn == STRING
    input.Body.jobOutput.s3DataDestination.path == STRING
    input.Body.jobOutput.s3DataDestination.kmsKeyArn == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDatasetGroup

enum_Domain := [ "ECOMMERCE", "VIDEO_ON_DEMAND" ]

valid {
    input.Body.name == STRING
    input.Body.roleArn == STRING
    input.Body.kmsKeyArn == STRING
    input.Body.domain == enum_Domain[_]
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDatasetImportJob

enum_ImportMode := [ "FULL", "INCREMENTAL" ]

valid {
    input.Body.jobName == STRING
    input.Body.datasetArn == STRING
    input.Body.dataSource.dataLocation == STRING
    input.Body.roleArn == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.Body.importMode == enum_ImportMode[_]
    input.Body.publishAttributionMetricsToS3 == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEventTracker

valid {
    input.Body.name == STRING
    input.Body.datasetGroupArn == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFilter

valid {
    input.Body.name == STRING
    input.Body.datasetGroupArn == STRING
    input.Body.filterExpression == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateMetricAttribution

valid {
    input.Body.name == STRING
    input.Body.datasetGroupArn == STRING
    input.Body.metrics[_].eventType == STRING
    input.Body.metrics[_].metricName == STRING
    input.Body.metrics[_].expression == STRING
    input.Body.metricsOutputConfig.s3DataDestination.path == STRING
    input.Body.metricsOutputConfig.s3DataDestination.kmsKeyArn == STRING
    input.Body.metricsOutputConfig.roleArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRecommender

valid {
    input.Body.name == STRING
    input.Body.datasetGroupArn == STRING
    input.Body.recipeArn == STRING
    input.Body.recommenderConfig.itemExplorationConfig.STRING == STRING
    input.Body.recommenderConfig.minRecommendationRequestsPerSecond == INTEGER
    input.Body.recommenderConfig.trainingDataConfig.excludedDatasetColumns.STRING[_] == STRING
    input.Body.recommenderConfig.enableMetadataWithRecommendations == BOOLEAN
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSchema

enum_Domain := [ "ECOMMERCE", "VIDEO_ON_DEMAND" ]

valid {
    input.Body.name == STRING
    input.Body.schema == STRING
    input.Body.domain == enum_Domain[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSolution

enum_ObjectiveSensitivity := [ "LOW", "MEDIUM", "HIGH", "OFF" ]

valid {
    input.Body.name == STRING
    input.Body.performHPO == BOOLEAN
    input.Body.performAutoML == BOOLEAN
    input.Body.recipeArn == STRING
    input.Body.datasetGroupArn == STRING
    input.Body.eventType == STRING
    input.Body.solutionConfig.eventValueThreshold == STRING
    input.Body.solutionConfig.hpoConfig.hpoObjective.type == STRING
    input.Body.solutionConfig.hpoConfig.hpoObjective.metricName == STRING
    input.Body.solutionConfig.hpoConfig.hpoObjective.metricRegex == STRING
    input.Body.solutionConfig.hpoConfig.hpoResourceConfig.maxNumberOfTrainingJobs == STRING
    input.Body.solutionConfig.hpoConfig.hpoResourceConfig.maxParallelTrainingJobs == STRING
    input.Body.solutionConfig.hpoConfig.algorithmHyperParameterRanges.integerHyperParameterRanges[_].name == STRING
    input.Body.solutionConfig.hpoConfig.algorithmHyperParameterRanges.integerHyperParameterRanges[_].minValue == INTEGER
    input.Body.solutionConfig.hpoConfig.algorithmHyperParameterRanges.integerHyperParameterRanges[_].maxValue == INTEGER
    input.Body.solutionConfig.hpoConfig.algorithmHyperParameterRanges.continuousHyperParameterRanges[_].name == STRING
    input.Body.solutionConfig.hpoConfig.algorithmHyperParameterRanges.continuousHyperParameterRanges[_].minValue == DOUBLE
    input.Body.solutionConfig.hpoConfig.algorithmHyperParameterRanges.continuousHyperParameterRanges[_].maxValue == DOUBLE
    input.Body.solutionConfig.hpoConfig.algorithmHyperParameterRanges.categoricalHyperParameterRanges[_].name == STRING
    input.Body.solutionConfig.hpoConfig.algorithmHyperParameterRanges.categoricalHyperParameterRanges[_].values[_] == STRING
    input.Body.solutionConfig.algorithmHyperParameters.STRING == STRING
    input.Body.solutionConfig.featureTransformationParameters.STRING == STRING
    input.Body.solutionConfig.autoMLConfig.metricName == STRING
    input.Body.solutionConfig.autoMLConfig.recipeList[_] == STRING
    input.Body.solutionConfig.optimizationObjective.itemAttribute == STRING
    input.Body.solutionConfig.optimizationObjective.objectiveSensitivity == enum_ObjectiveSensitivity[_]
    input.Body.solutionConfig.trainingDataConfig.excludedDatasetColumns.STRING[_] == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSolutionVersion

enum_TrainingMode := [ "FULL", "UPDATE" ]

valid {
    input.Body.name == STRING
    input.Body.solutionArn == STRING
    input.Body.trainingMode == enum_TrainingMode[_]
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCampaign

valid {
    input.Body.campaignArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDataset

valid {
    input.Body.datasetArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDatasetGroup

valid {
    input.Body.datasetGroupArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEventTracker

valid {
    input.Body.eventTrackerArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteFilter

valid {
    input.Body.filterArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteMetricAttribution

valid {
    input.Body.metricAttributionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRecommender

valid {
    input.Body.recommenderArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSchema

valid {
    input.Body.schemaArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSolution

valid {
    input.Body.solutionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAlgorithm

valid {
    input.Body.algorithmArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeBatchInferenceJob

valid {
    input.Body.batchInferenceJobArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeBatchSegmentJob

valid {
    input.Body.batchSegmentJobArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCampaign

valid {
    input.Body.campaignArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDataset

valid {
    input.Body.datasetArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDatasetExportJob

valid {
    input.Body.datasetExportJobArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDatasetGroup

valid {
    input.Body.datasetGroupArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDatasetImportJob

valid {
    input.Body.datasetImportJobArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEventTracker

valid {
    input.Body.eventTrackerArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFeatureTransformation

valid {
    input.Body.featureTransformationArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFilter

valid {
    input.Body.filterArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMetricAttribution

valid {
    input.Body.metricAttributionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRecipe

valid {
    input.Body.recipeArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRecommender

valid {
    input.Body.recommenderArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSchema

valid {
    input.Body.schemaArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSolution

valid {
    input.Body.solutionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSolutionVersion

valid {
    input.Body.solutionVersionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSolutionMetrics

valid {
    input.Body.solutionVersionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBatchInferenceJobs

valid {
    input.Body.solutionVersionArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBatchSegmentJobs

valid {
    input.Body.solutionVersionArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCampaigns

valid {
    input.Body.solutionArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDatasetExportJobs

valid {
    input.Body.datasetArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDatasetGroups

valid {
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDatasetImportJobs

valid {
    input.Body.datasetArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDatasets

valid {
    input.Body.datasetGroupArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEventTrackers

valid {
    input.Body.datasetGroupArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListFilters

valid {
    input.Body.datasetGroupArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMetricAttributionMetrics

valid {
    input.Body.metricAttributionArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMetricAttributions

valid {
    input.Body.datasetGroupArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRecipes

enum_Domain := [ "ECOMMERCE", "VIDEO_ON_DEMAND" ]
enum_RecipeProvider := [ "SERVICE" ]

valid {
    input.Body.recipeProvider == enum_RecipeProvider[_]
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.Body.domain == enum_Domain[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRecommenders

valid {
    input.Body.datasetGroupArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSchemas

valid {
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSolutionVersions

valid {
    input.Body.solutionArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSolutions

valid {
    input.Body.datasetGroupArn == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.Body.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartRecommender

valid {
    input.Body.recommenderArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopRecommender

valid {
    input.Body.recommenderArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopSolutionVersionCreation

valid {
    input.Body.solutionVersionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.resourceArn == STRING
    input.Body.tags[_].tagKey == STRING
    input.Body.tags[_].tagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.Body.resourceArn == STRING
    input.Body.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateCampaign

valid {
    input.Body.campaignArn == STRING
    input.Body.solutionVersionArn == STRING
    input.Body.minProvisionedTPS == INTEGER
    input.Body.campaignConfig.itemExplorationConfig.STRING == STRING
    input.Body.campaignConfig.enableMetadataWithRecommendations == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDataset

valid {
    input.Body.datasetArn == STRING
    input.Body.schemaArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateMetricAttribution

valid {
    input.Body.addMetrics[_].eventType == STRING
    input.Body.addMetrics[_].metricName == STRING
    input.Body.addMetrics[_].expression == STRING
    input.Body.removeMetrics[_] == STRING
    input.Body.metricsOutputConfig.s3DataDestination.path == STRING
    input.Body.metricsOutputConfig.s3DataDestination.kmsKeyArn == STRING
    input.Body.metricsOutputConfig.roleArn == STRING
    input.Body.metricAttributionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRecommender

valid {
    input.Body.recommenderArn == STRING
    input.Body.recommenderConfig.itemExplorationConfig.STRING == STRING
    input.Body.recommenderConfig.minRecommendationRequestsPerSecond == INTEGER
    input.Body.recommenderConfig.trainingDataConfig.excludedDatasetColumns.STRING[_] == STRING
    input.Body.recommenderConfig.enableMetadataWithRecommendations == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}