BatchDeleteEvaluationJob

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

CreateEvaluationJob

enum_ApplicationType := [ "ModelEvaluation", "RagEvaluation" ]
enum_EvaluationTaskType := [ "Summarization", "Classification", "QuestionAndAnswer", "Generation", "Custom" ]
enum_ExternalSourceType := [ "S3", "BYTE_CONTENT" ]
enum_QueryTransformationType := [ "QUERY_DECOMPOSITION" ]
enum_RetrieveAndGenerateType := [ "KNOWLEDGE_BASE", "EXTERNAL_SOURCES" ]
enum_SearchType := [ "HYBRID", "SEMANTIC" ]

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.applicationType == enum_ApplicationType[_]
    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.automated.evaluatorModelConfig.bedrockEvaluatorModels[_].modelIdentifier == 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.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseId == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.numberOfResults == INTEGER
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.overrideSearchType == enum_SearchType[_]
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.equals.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.equals.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.notEquals.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.notEquals.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.greaterThan.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.greaterThan.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.greaterThanOrEquals.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.greaterThanOrEquals.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.lessThan.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.lessThan.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.lessThanOrEquals.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.lessThanOrEquals.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.in.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.in.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.notIn.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.notIn.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.startsWith.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.startsWith.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.listContains.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.listContains.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.stringContains.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.stringContains.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.andAll[_] == NESTED
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveConfig.knowledgeBaseRetrievalConfiguration.vectorSearchConfiguration.filter.orAll[_] == NESTED
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.type == enum_RetrieveAndGenerateType[_]
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.knowledgeBaseId == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.modelArn == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.numberOfResults == INTEGER
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.overrideSearchType == enum_SearchType[_]
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.equals.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.equals.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.notEquals.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.notEquals.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.greaterThan.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.greaterThan.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.greaterThanOrEquals.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.greaterThanOrEquals.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.lessThan.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.lessThan.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.lessThanOrEquals.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.lessThanOrEquals.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.in.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.in.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.notIn.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.notIn.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.startsWith.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.startsWith.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.listContains.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.listContains.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.stringContains.key == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.stringContains.value == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.andAll[_] == NESTED
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.retrievalConfiguration.vectorSearchConfiguration.filter.orAll[_] == NESTED
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.generationConfiguration.promptTemplate.textPromptTemplate == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.generationConfiguration.guardrailConfiguration.guardrailId == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.generationConfiguration.guardrailConfiguration.guardrailVersion == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.generationConfiguration.kbInferenceConfig.textInferenceConfig.temperature == FLOAT
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.generationConfiguration.kbInferenceConfig.textInferenceConfig.topP == FLOAT
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.generationConfiguration.kbInferenceConfig.textInferenceConfig.maxTokens == INTEGER
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.generationConfiguration.kbInferenceConfig.textInferenceConfig.stopSequences[_] == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.generationConfiguration.additionalModelRequestFields.STRING == {}
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.knowledgeBaseConfiguration.orchestrationConfiguration.queryTransformationConfiguration.type == enum_QueryTransformationType[_]
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.modelArn == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.sources[_].sourceType == enum_ExternalSourceType[_]
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.sources[_].s3Location.uri == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.sources[_].byteContent.identifier == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.sources[_].byteContent.contentType == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.sources[_].byteContent.data == BLOB
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.generationConfiguration.promptTemplate.textPromptTemplate == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.generationConfiguration.guardrailConfiguration.guardrailId == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.generationConfiguration.guardrailConfiguration.guardrailVersion == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.generationConfiguration.kbInferenceConfig.textInferenceConfig.temperature == FLOAT
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.generationConfiguration.kbInferenceConfig.textInferenceConfig.topP == FLOAT
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.generationConfiguration.kbInferenceConfig.textInferenceConfig.maxTokens == INTEGER
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.generationConfiguration.kbInferenceConfig.textInferenceConfig.stopSequences[_] == STRING
    input.Body.inferenceConfig.ragConfigs[_].knowledgeBaseConfig.retrieveAndGenerateConfig.externalSourcesConfiguration.generationConfiguration.additionalModelRequestFields.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_GuardrailModality := [ "TEXT", "IMAGE" ]
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.contentPolicyConfig.filtersConfig[_].inputModalities[_] == enum_GuardrailModality[_]
    input.Body.contentPolicyConfig.filtersConfig[_].outputModalities[_] == enum_GuardrailModality[_]
    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
}

CreateMarketplaceModelEndpoint

valid {
    input.Body.modelSourceIdentifier == STRING
    input.Body.endpointConfig.sageMaker.initialInstanceCount == INTEGER
    input.Body.endpointConfig.sageMaker.instanceType == STRING
    input.Body.endpointConfig.sageMaker.executionRole == STRING
    input.Body.endpointConfig.sageMaker.kmsEncryptionKey == STRING
    input.Body.endpointConfig.sageMaker.vpc.subnetIds[_] == STRING
    input.Body.endpointConfig.sageMaker.vpc.securityGroupIds[_] == STRING
    input.Body.acceptEula == BOOLEAN
    input.Body.endpointName == STRING
    input.Body.clientRequestToken == 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", "DISTILLATION" ]

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.trainingDataConfig.invocationLogsConfig.usePromptResponse == BOOLEAN
    input.Body.trainingDataConfig.invocationLogsConfig.invocationLogSource.s3Uri == STRING
    input.Body.trainingDataConfig.invocationLogsConfig.requestMetadataFilters.equals.STRING == STRING
    input.Body.trainingDataConfig.invocationLogsConfig.requestMetadataFilters.notEquals.STRING == STRING
    input.Body.trainingDataConfig.invocationLogsConfig.requestMetadataFilters.andAll[_].equals.STRING == STRING
    input.Body.trainingDataConfig.invocationLogsConfig.requestMetadataFilters.andAll[_].notEquals.STRING == STRING
    input.Body.trainingDataConfig.invocationLogsConfig.requestMetadataFilters.orAll[_].equals.STRING == STRING
    input.Body.trainingDataConfig.invocationLogsConfig.requestMetadataFilters.orAll[_].notEquals.STRING == 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.Body.customizationConfig.distillationConfig.teacherModelConfig.teacherModelIdentifier == STRING
    input.Body.customizationConfig.distillationConfig.teacherModelConfig.maxResponseLengthForInference == INTEGER
    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
}

DeleteMarketplaceModelEndpoint

valid {
    input.ReqMap.endpointArn == 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
}

DeregisterMarketplaceModelEndpoint

valid {
    input.ReqMap.endpointArn == 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
}

GetMarketplaceModelEndpoint

valid {
    input.ReqMap.endpointArn == 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
}

GetPromptRouter

valid {
    input.ReqMap.promptRouterArn == STRING
    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_ApplicationType := [ "ModelEvaluation", "RagEvaluation" ]
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.applicationTypeEquals == enum_ApplicationType[_]
    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", "DISTILLATION" ]
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
}

ListMarketplaceModelEndpoints

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.modelSourceIdentifier == STRING
    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
}

ListPromptRouters

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    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.Body.loggingConfig.videoDataDeliveryEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterMarketplaceModelEndpoint

valid {
    input.Body.modelSourceIdentifier == STRING
    input.ReqMap.endpointIdentifier == STRING
    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_GuardrailModality := [ "TEXT", "IMAGE" ]
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.contentPolicyConfig.filtersConfig[_].inputModalities[_] == enum_GuardrailModality[_]
    input.Body.contentPolicyConfig.filtersConfig[_].outputModalities[_] == enum_GuardrailModality[_]
    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
}

UpdateMarketplaceModelEndpoint

valid {
    input.Body.endpointConfig.sageMaker.initialInstanceCount == INTEGER
    input.Body.endpointConfig.sageMaker.instanceType == STRING
    input.Body.endpointConfig.sageMaker.executionRole == STRING
    input.Body.endpointConfig.sageMaker.kmsEncryptionKey == STRING
    input.Body.endpointConfig.sageMaker.vpc.subnetIds[_] == STRING
    input.Body.endpointConfig.sageMaker.vpc.securityGroupIds[_] == STRING
    input.Body.clientRequestToken == STRING
    input.ReqMap.endpointArn == 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
}