BatchDeleteEvaluationJob

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

CreateEvaluationJob

enum_EvaluationTaskType := [ "Summarization", "Classification", "QuestionAndAnswer", "Generation", "Custom" ]

valid {
    input.Body.jobName == STRING
    input.Body.jobDescription == STRING
    input.Body.clientRequestToken == STRING
    input.Body.roleArn == STRING
    input.Body.customerEncryptionKeyId == STRING
    input.Body.jobTags[_].key == STRING
    input.Body.jobTags[_].value == STRING
    input.Body.evaluationConfig.automated.datasetMetricConfigs[_].taskType == enum_EvaluationTaskType[_]
    input.Body.evaluationConfig.automated.datasetMetricConfigs[_].dataset.name == STRING
    input.Body.evaluationConfig.automated.datasetMetricConfigs[_].dataset.datasetLocation.s3Uri == STRING
    input.Body.evaluationConfig.automated.datasetMetricConfigs[_].metricNames[_] == STRING
    input.Body.evaluationConfig.human.humanWorkflowConfig.flowDefinitionArn == STRING
    input.Body.evaluationConfig.human.humanWorkflowConfig.instructions == STRING
    input.Body.evaluationConfig.human.customMetrics[_].name == STRING
    input.Body.evaluationConfig.human.customMetrics[_].description == STRING
    input.Body.evaluationConfig.human.customMetrics[_].ratingMethod == STRING
    input.Body.evaluationConfig.human.datasetMetricConfigs[_].taskType == enum_EvaluationTaskType[_]
    input.Body.evaluationConfig.human.datasetMetricConfigs[_].dataset.name == STRING
    input.Body.evaluationConfig.human.datasetMetricConfigs[_].dataset.datasetLocation.s3Uri == STRING
    input.Body.evaluationConfig.human.datasetMetricConfigs[_].metricNames[_] == STRING
    input.Body.inferenceConfig.models[_].bedrockModel.modelIdentifier == STRING
    input.Body.inferenceConfig.models[_].bedrockModel.inferenceParams == STRING
    input.Body.outputDataConfig.s3Uri == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGuardrail

enum_GuardrailContentFilterType := [ "SEXUAL", "VIOLENCE", "HATE", "INSULTS", "MISCONDUCT", "PROMPT_ATTACK" ]
enum_GuardrailContextualGroundingFilterType := [ "GROUNDING", "RELEVANCE" ]
enum_GuardrailFilterStrength := [ "NONE", "LOW", "MEDIUM", "HIGH" ]
enum_GuardrailManagedWordsType := [ "PROFANITY" ]
enum_GuardrailPiiEntityType := [ "ADDRESS", "AGE", "AWS_ACCESS_KEY", "AWS_SECRET_KEY", "CA_HEALTH_NUMBER", "CA_SOCIAL_INSURANCE_NUMBER", "CREDIT_DEBIT_CARD_CVV", "CREDIT_DEBIT_CARD_EXPIRY", "CREDIT_DEBIT_CARD_NUMBER", "DRIVER_ID", "EMAIL", "INTERNATIONAL_BANK_ACCOUNT_NUMBER", "IP_ADDRESS", "LICENSE_PLATE", "MAC_ADDRESS", "NAME", "PASSWORD", "PHONE", "PIN", "SWIFT_CODE", "UK_NATIONAL_HEALTH_SERVICE_NUMBER", "UK_NATIONAL_INSURANCE_NUMBER", "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER", "URL", "USERNAME", "US_BANK_ACCOUNT_NUMBER", "US_BANK_ROUTING_NUMBER", "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER", "US_PASSPORT_NUMBER", "US_SOCIAL_SECURITY_NUMBER", "VEHICLE_IDENTIFICATION_NUMBER" ]
enum_GuardrailSensitiveInformationAction := [ "BLOCK", "ANONYMIZE" ]
enum_GuardrailTopicType := [ "DENY" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.topicPolicyConfig.topicsConfig[_].name == STRING
    input.Body.topicPolicyConfig.topicsConfig[_].definition == STRING
    input.Body.topicPolicyConfig.topicsConfig[_].examples[_] == STRING
    input.Body.topicPolicyConfig.topicsConfig[_].type == enum_GuardrailTopicType[_]
    input.Body.contentPolicyConfig.filtersConfig[_].type == enum_GuardrailContentFilterType[_]
    input.Body.contentPolicyConfig.filtersConfig[_].inputStrength == enum_GuardrailFilterStrength[_]
    input.Body.contentPolicyConfig.filtersConfig[_].outputStrength == enum_GuardrailFilterStrength[_]
    input.Body.wordPolicyConfig.wordsConfig[_].text == STRING
    input.Body.wordPolicyConfig.managedWordListsConfig[_].type == enum_GuardrailManagedWordsType[_]
    input.Body.sensitiveInformationPolicyConfig.piiEntitiesConfig[_].type == enum_GuardrailPiiEntityType[_]
    input.Body.sensitiveInformationPolicyConfig.piiEntitiesConfig[_].action == enum_GuardrailSensitiveInformationAction[_]
    input.Body.sensitiveInformationPolicyConfig.regexesConfig[_].name == STRING
    input.Body.sensitiveInformationPolicyConfig.regexesConfig[_].description == STRING
    input.Body.sensitiveInformationPolicyConfig.regexesConfig[_].pattern == STRING
    input.Body.sensitiveInformationPolicyConfig.regexesConfig[_].action == enum_GuardrailSensitiveInformationAction[_]
    input.Body.contextualGroundingPolicyConfig.filtersConfig[_].type == enum_GuardrailContextualGroundingFilterType[_]
    input.Body.contextualGroundingPolicyConfig.filtersConfig[_].threshold == DOUBLE
    input.Body.blockedInputMessaging == STRING
    input.Body.blockedOutputsMessaging == STRING
    input.Body.kmsKeyId == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.Body.clientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGuardrailVersion

valid {
    input.Body.description == STRING
    input.Body.clientRequestToken == STRING
    input.ReqMap.guardrailIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInferenceProfile

valid {
    input.Body.inferenceProfileName == STRING
    input.Body.description == STRING
    input.Body.clientRequestToken == STRING
    input.Body.modelSource.copyFrom == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateModelCopyJob

valid {
    input.Body.sourceModelArn == STRING
    input.Body.targetModelName == STRING
    input.Body.modelKmsKeyId == STRING
    input.Body.targetModelTags[_].key == STRING
    input.Body.targetModelTags[_].value == STRING
    input.Body.clientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateModelCustomizationJob

enum_CustomizationType := [ "FINE_TUNING", "CONTINUED_PRE_TRAINING" ]

valid {
    input.Body.jobName == STRING
    input.Body.customModelName == STRING
    input.Body.roleArn == STRING
    input.Body.clientRequestToken == STRING
    input.Body.baseModelIdentifier == STRING
    input.Body.customizationType == enum_CustomizationType[_]
    input.Body.customModelKmsKeyId == STRING
    input.Body.jobTags[_].key == STRING
    input.Body.jobTags[_].value == STRING
    input.Body.customModelTags[_].key == STRING
    input.Body.customModelTags[_].value == STRING
    input.Body.trainingDataConfig.s3Uri == STRING
    input.Body.validationDataConfig.validators[_].s3Uri == STRING
    input.Body.outputDataConfig.s3Uri == STRING
    input.Body.hyperParameters.STRING == STRING
    input.Body.vpcConfig.subnetIds[_] == STRING
    input.Body.vpcConfig.securityGroupIds[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateModelImportJob

valid {
    input.Body.jobName == STRING
    input.Body.importedModelName == STRING
    input.Body.roleArn == STRING
    input.Body.modelDataSource.s3DataSource.s3Uri == STRING
    input.Body.jobTags[_].key == STRING
    input.Body.jobTags[_].value == STRING
    input.Body.importedModelTags[_].key == STRING
    input.Body.importedModelTags[_].value == STRING
    input.Body.clientRequestToken == STRING
    input.Body.vpcConfig.subnetIds[_] == STRING
    input.Body.vpcConfig.securityGroupIds[_] == STRING
    input.Body.importedModelKmsKeyId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateModelInvocationJob

enum_S3InputFormat := [ "JSONL" ]

valid {
    input.Body.jobName == STRING
    input.Body.roleArn == STRING
    input.Body.clientRequestToken == STRING
    input.Body.modelId == STRING
    input.Body.inputDataConfig.s3InputDataConfig.s3InputFormat == enum_S3InputFormat[_]
    input.Body.inputDataConfig.s3InputDataConfig.s3Uri == STRING
    input.Body.inputDataConfig.s3InputDataConfig.s3BucketOwner == STRING
    input.Body.outputDataConfig.s3OutputDataConfig.s3Uri == STRING
    input.Body.outputDataConfig.s3OutputDataConfig.s3EncryptionKeyId == STRING
    input.Body.outputDataConfig.s3OutputDataConfig.s3BucketOwner == STRING
    input.Body.vpcConfig.subnetIds[_] == STRING
    input.Body.vpcConfig.securityGroupIds[_] == STRING
    input.Body.timeoutDurationInHours == INTEGER
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProvisionedModelThroughput

enum_CommitmentDuration := [ "OneMonth", "SixMonths" ]

valid {
    input.Body.clientRequestToken == STRING
    input.Body.modelUnits == INTEGER
    input.Body.provisionedModelName == STRING
    input.Body.modelId == STRING
    input.Body.commitmentDuration == enum_CommitmentDuration[_]
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCustomModel

valid {
    input.ReqMap.modelIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteGuardrail

valid {
    input.ReqMap.guardrailIdentifier == STRING
    input.Qs.guardrailVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteImportedModel

valid {
    input.ReqMap.modelIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteInferenceProfile

valid {
    input.ReqMap.inferenceProfileIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteModelInvocationLoggingConfiguration

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

DeleteProvisionedModelThroughput

valid {
    input.ReqMap.provisionedModelId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCustomModel

valid {
    input.ReqMap.modelIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetEvaluationJob

valid {
    input.ReqMap.jobIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetFoundationModel

valid {
    input.ReqMap.modelIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetGuardrail

valid {
    input.ReqMap.guardrailIdentifier == STRING
    input.Qs.guardrailVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetImportedModel

valid {
    input.ReqMap.modelIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetInferenceProfile

valid {
    input.ReqMap.inferenceProfileIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetModelCopyJob

valid {
    input.ReqMap.jobArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetModelCustomizationJob

valid {
    input.ReqMap.jobIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetModelImportJob

valid {
    input.ReqMap.jobIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetModelInvocationJob

valid {
    input.ReqMap.jobIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetModelInvocationLoggingConfiguration

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

GetProvisionedModelThroughput

valid {
    input.ReqMap.provisionedModelId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCustomModels

enum_SortModelsBy := [ "CreationTime" ]
enum_SortOrder := [ "Ascending", "Descending" ]

valid {
    input.Qs.creationTimeBefore == TIMESTAMP
    input.Qs.creationTimeAfter == TIMESTAMP
    input.Qs.nameContains == STRING
    input.Qs.baseModelArnEquals == STRING
    input.Qs.foundationModelArnEquals == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.sortBy == enum_SortModelsBy[_]
    input.Qs.sortOrder == enum_SortOrder[_]
    input.Qs.isOwned == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEvaluationJobs

enum_EvaluationJobStatus := [ "InProgress", "Completed", "Failed", "Stopping", "Stopped", "Deleting" ]
enum_SortJobsBy := [ "CreationTime" ]
enum_SortOrder := [ "Ascending", "Descending" ]

valid {
    input.Qs.creationTimeAfter == TIMESTAMP
    input.Qs.creationTimeBefore == TIMESTAMP
    input.Qs.statusEquals == enum_EvaluationJobStatus[_]
    input.Qs.nameContains == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.sortBy == enum_SortJobsBy[_]
    input.Qs.sortOrder == enum_SortOrder[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListFoundationModels

enum_InferenceType := [ "ON_DEMAND", "PROVISIONED" ]
enum_ModelCustomization := [ "FINE_TUNING", "CONTINUED_PRE_TRAINING" ]
enum_ModelModality := [ "TEXT", "IMAGE", "EMBEDDING" ]

valid {
    input.Qs.byProvider == STRING
    input.Qs.byCustomizationType == enum_ModelCustomization[_]
    input.Qs.byOutputModality == enum_ModelModality[_]
    input.Qs.byInferenceType == enum_InferenceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListGuardrails

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

ListImportedModels

enum_SortModelsBy := [ "CreationTime" ]
enum_SortOrder := [ "Ascending", "Descending" ]

valid {
    input.Qs.creationTimeBefore == TIMESTAMP
    input.Qs.creationTimeAfter == TIMESTAMP
    input.Qs.nameContains == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.sortBy == enum_SortModelsBy[_]
    input.Qs.sortOrder == enum_SortOrder[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListInferenceProfiles

enum_InferenceProfileType := [ "SYSTEM_DEFINED", "APPLICATION" ]

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.type == enum_InferenceProfileType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListModelCopyJobs

enum_ModelCopyJobStatus := [ "InProgress", "Completed", "Failed" ]
enum_SortJobsBy := [ "CreationTime" ]
enum_SortOrder := [ "Ascending", "Descending" ]

valid {
    input.Qs.creationTimeAfter == TIMESTAMP
    input.Qs.creationTimeBefore == TIMESTAMP
    input.Qs.statusEquals == enum_ModelCopyJobStatus[_]
    input.Qs.sourceAccountEquals == STRING
    input.Qs.sourceModelArnEquals == STRING
    input.Qs.outputModelNameContains == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.sortBy == enum_SortJobsBy[_]
    input.Qs.sortOrder == enum_SortOrder[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListModelCustomizationJobs

enum_FineTuningJobStatus := [ "InProgress", "Completed", "Failed", "Stopping", "Stopped" ]
enum_SortJobsBy := [ "CreationTime" ]
enum_SortOrder := [ "Ascending", "Descending" ]

valid {
    input.Qs.creationTimeAfter == TIMESTAMP
    input.Qs.creationTimeBefore == TIMESTAMP
    input.Qs.statusEquals == enum_FineTuningJobStatus[_]
    input.Qs.nameContains == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.sortBy == enum_SortJobsBy[_]
    input.Qs.sortOrder == enum_SortOrder[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListModelImportJobs

enum_ModelImportJobStatus := [ "InProgress", "Completed", "Failed" ]
enum_SortJobsBy := [ "CreationTime" ]
enum_SortOrder := [ "Ascending", "Descending" ]

valid {
    input.Qs.creationTimeAfter == TIMESTAMP
    input.Qs.creationTimeBefore == TIMESTAMP
    input.Qs.statusEquals == enum_ModelImportJobStatus[_]
    input.Qs.nameContains == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.sortBy == enum_SortJobsBy[_]
    input.Qs.sortOrder == enum_SortOrder[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListModelInvocationJobs

enum_ModelInvocationJobStatus := [ "Submitted", "InProgress", "Completed", "Failed", "Stopping", "Stopped", "PartiallyCompleted", "Expired", "Validating", "Scheduled" ]
enum_SortJobsBy := [ "CreationTime" ]
enum_SortOrder := [ "Ascending", "Descending" ]

valid {
    input.Qs.submitTimeAfter == TIMESTAMP
    input.Qs.submitTimeBefore == TIMESTAMP
    input.Qs.statusEquals == enum_ModelInvocationJobStatus[_]
    input.Qs.nameContains == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.sortBy == enum_SortJobsBy[_]
    input.Qs.sortOrder == enum_SortOrder[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProvisionedModelThroughputs

enum_ProvisionedModelStatus := [ "Creating", "InService", "Updating", "Failed" ]
enum_SortByProvisionedModels := [ "CreationTime" ]
enum_SortOrder := [ "Ascending", "Descending" ]

valid {
    input.Qs.creationTimeAfter == TIMESTAMP
    input.Qs.creationTimeBefore == TIMESTAMP
    input.Qs.statusEquals == enum_ProvisionedModelStatus[_]
    input.Qs.modelArnEquals == STRING
    input.Qs.nameContains == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.sortBy == enum_SortByProvisionedModels[_]
    input.Qs.sortOrder == enum_SortOrder[_]
    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
}

PutModelInvocationLoggingConfiguration

valid {
    input.Body.loggingConfig.cloudWatchConfig.logGroupName == STRING
    input.Body.loggingConfig.cloudWatchConfig.roleArn == STRING
    input.Body.loggingConfig.cloudWatchConfig.largeDataDeliveryS3Config.bucketName == STRING
    input.Body.loggingConfig.cloudWatchConfig.largeDataDeliveryS3Config.keyPrefix == STRING
    input.Body.loggingConfig.s3Config.bucketName == STRING
    input.Body.loggingConfig.s3Config.keyPrefix == STRING
    input.Body.loggingConfig.textDataDeliveryEnabled == BOOLEAN
    input.Body.loggingConfig.imageDataDeliveryEnabled == BOOLEAN
    input.Body.loggingConfig.embeddingDataDeliveryEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopEvaluationJob

valid {
    input.ReqMap.jobIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopModelCustomizationJob

valid {
    input.ReqMap.jobIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopModelInvocationJob

valid {
    input.ReqMap.jobIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.resourceARN == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == 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
}

UpdateGuardrail

enum_GuardrailContentFilterType := [ "SEXUAL", "VIOLENCE", "HATE", "INSULTS", "MISCONDUCT", "PROMPT_ATTACK" ]
enum_GuardrailContextualGroundingFilterType := [ "GROUNDING", "RELEVANCE" ]
enum_GuardrailFilterStrength := [ "NONE", "LOW", "MEDIUM", "HIGH" ]
enum_GuardrailManagedWordsType := [ "PROFANITY" ]
enum_GuardrailPiiEntityType := [ "ADDRESS", "AGE", "AWS_ACCESS_KEY", "AWS_SECRET_KEY", "CA_HEALTH_NUMBER", "CA_SOCIAL_INSURANCE_NUMBER", "CREDIT_DEBIT_CARD_CVV", "CREDIT_DEBIT_CARD_EXPIRY", "CREDIT_DEBIT_CARD_NUMBER", "DRIVER_ID", "EMAIL", "INTERNATIONAL_BANK_ACCOUNT_NUMBER", "IP_ADDRESS", "LICENSE_PLATE", "MAC_ADDRESS", "NAME", "PASSWORD", "PHONE", "PIN", "SWIFT_CODE", "UK_NATIONAL_HEALTH_SERVICE_NUMBER", "UK_NATIONAL_INSURANCE_NUMBER", "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER", "URL", "USERNAME", "US_BANK_ACCOUNT_NUMBER", "US_BANK_ROUTING_NUMBER", "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER", "US_PASSPORT_NUMBER", "US_SOCIAL_SECURITY_NUMBER", "VEHICLE_IDENTIFICATION_NUMBER" ]
enum_GuardrailSensitiveInformationAction := [ "BLOCK", "ANONYMIZE" ]
enum_GuardrailTopicType := [ "DENY" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.topicPolicyConfig.topicsConfig[_].name == STRING
    input.Body.topicPolicyConfig.topicsConfig[_].definition == STRING
    input.Body.topicPolicyConfig.topicsConfig[_].examples[_] == STRING
    input.Body.topicPolicyConfig.topicsConfig[_].type == enum_GuardrailTopicType[_]
    input.Body.contentPolicyConfig.filtersConfig[_].type == enum_GuardrailContentFilterType[_]
    input.Body.contentPolicyConfig.filtersConfig[_].inputStrength == enum_GuardrailFilterStrength[_]
    input.Body.contentPolicyConfig.filtersConfig[_].outputStrength == enum_GuardrailFilterStrength[_]
    input.Body.wordPolicyConfig.wordsConfig[_].text == STRING
    input.Body.wordPolicyConfig.managedWordListsConfig[_].type == enum_GuardrailManagedWordsType[_]
    input.Body.sensitiveInformationPolicyConfig.piiEntitiesConfig[_].type == enum_GuardrailPiiEntityType[_]
    input.Body.sensitiveInformationPolicyConfig.piiEntitiesConfig[_].action == enum_GuardrailSensitiveInformationAction[_]
    input.Body.sensitiveInformationPolicyConfig.regexesConfig[_].name == STRING
    input.Body.sensitiveInformationPolicyConfig.regexesConfig[_].description == STRING
    input.Body.sensitiveInformationPolicyConfig.regexesConfig[_].pattern == STRING
    input.Body.sensitiveInformationPolicyConfig.regexesConfig[_].action == enum_GuardrailSensitiveInformationAction[_]
    input.Body.contextualGroundingPolicyConfig.filtersConfig[_].type == enum_GuardrailContextualGroundingFilterType[_]
    input.Body.contextualGroundingPolicyConfig.filtersConfig[_].threshold == DOUBLE
    input.Body.blockedInputMessaging == STRING
    input.Body.blockedOutputsMessaging == STRING
    input.Body.kmsKeyId == STRING
    input.ReqMap.guardrailIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProvisionedModelThroughput

valid {
    input.Body.desiredProvisionedModelName == STRING
    input.Body.desiredModelId == STRING
    input.ReqMap.provisionedModelId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}