BatchDeleteDocument

valid {
    input.Body.documents[_].documentId == STRING
    input.Body.dataSourceSyncId == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchPutDocument

enum_AttributeValueOperator := [ "DELETE" ]
enum_ContentType := [ "PDF", "HTML", "MS_WORD", "PLAIN_TEXT", "PPT", "RTF", "XML", "XSLT", "MS_EXCEL", "CSV", "JSON", "MD" ]
enum_DocumentContentOperator := [ "DELETE" ]
enum_DocumentEnrichmentConditionOperator := [ "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "EXISTS", "NOT_EXISTS", "BEGINS_WITH" ]
enum_MemberRelation := [ "AND", "OR" ]
enum_MembershipType := [ "INDEX", "DATASOURCE" ]
enum_ReadAccessType := [ "ALLOW", "DENY" ]

valid {
    input.Body.documents[_].id == STRING
    input.Body.documents[_].attributes[_].name == STRING
    input.Body.documents[_].attributes[_].value.stringValue == STRING
    input.Body.documents[_].attributes[_].value.stringListValue[_] == STRING
    input.Body.documents[_].attributes[_].value.longValue == LONG
    input.Body.documents[_].attributes[_].value.dateValue == TIMESTAMP
    input.Body.documents[_].content.blob == BLOB
    input.Body.documents[_].content.s3.bucket == STRING
    input.Body.documents[_].content.s3.key == STRING
    input.Body.documents[_].contentType == enum_ContentType[_]
    input.Body.documents[_].title == STRING
    input.Body.documents[_].accessConfiguration.accessControls[_].principals[_].user.id == STRING
    input.Body.documents[_].accessConfiguration.accessControls[_].principals[_].user.access == enum_ReadAccessType[_]
    input.Body.documents[_].accessConfiguration.accessControls[_].principals[_].user.membershipType == enum_MembershipType[_]
    input.Body.documents[_].accessConfiguration.accessControls[_].principals[_].group.name == STRING
    input.Body.documents[_].accessConfiguration.accessControls[_].principals[_].group.access == enum_ReadAccessType[_]
    input.Body.documents[_].accessConfiguration.accessControls[_].principals[_].group.membershipType == enum_MembershipType[_]
    input.Body.documents[_].accessConfiguration.accessControls[_].memberRelation == enum_MemberRelation[_]
    input.Body.documents[_].accessConfiguration.memberRelation == enum_MemberRelation[_]
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].condition.key == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].condition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.stringValue == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.stringListValue[_] == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.longValue == LONG
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.dateValue == TIMESTAMP
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].target.key == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].target.value.stringValue == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].target.value.stringListValue[_] == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].target.value.longValue == LONG
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].target.value.dateValue == TIMESTAMP
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].target.attributeValueOperator == enum_AttributeValueOperator[_]
    input.Body.documents[_].documentEnrichmentConfiguration.inlineConfigurations[_].documentContentOperator == enum_DocumentContentOperator[_]
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.key == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.stringValue == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.stringListValue[_] == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.longValue == LONG
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.dateValue == TIMESTAMP
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.lambdaArn == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.s3BucketName == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.preExtractionHookConfiguration.roleArn == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.key == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.stringValue == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.stringListValue[_] == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.longValue == LONG
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.dateValue == TIMESTAMP
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.lambdaArn == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.s3BucketName == STRING
    input.Body.documents[_].documentEnrichmentConfiguration.postExtractionHookConfiguration.roleArn == STRING
    input.Body.roleArn == STRING
    input.Body.dataSourceSyncId == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

Chat

enum_ChatMode := [ "RETRIEVAL_MODE", "CREATOR_MODE", "PLUGIN_MODE" ]

valid {
    input.Body.inputStream.configurationEvent.chatMode == enum_ChatMode[_]
    input.Body.inputStream.configurationEvent.chatModeConfiguration.pluginConfiguration.pluginId == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.andAllFilters[_] == NESTED
    input.Body.inputStream.configurationEvent.attributeFilter.orAllFilters[_] == NESTED
    input.Body.inputStream.configurationEvent.attributeFilter.notFilter == NESTED
    input.Body.inputStream.configurationEvent.attributeFilter.equalsTo.name == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.equalsTo.value.stringValue == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.equalsTo.value.stringListValue[_] == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.equalsTo.value.longValue == LONG
    input.Body.inputStream.configurationEvent.attributeFilter.equalsTo.value.dateValue == TIMESTAMP
    input.Body.inputStream.configurationEvent.attributeFilter.containsAll.name == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.containsAll.value.stringValue == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.containsAll.value.stringListValue[_] == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.containsAll.value.longValue == LONG
    input.Body.inputStream.configurationEvent.attributeFilter.containsAll.value.dateValue == TIMESTAMP
    input.Body.inputStream.configurationEvent.attributeFilter.containsAny.name == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.containsAny.value.stringValue == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.containsAny.value.stringListValue[_] == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.containsAny.value.longValue == LONG
    input.Body.inputStream.configurationEvent.attributeFilter.containsAny.value.dateValue == TIMESTAMP
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThan.name == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThan.value.stringValue == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThan.value.stringListValue[_] == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThan.value.longValue == LONG
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThan.value.dateValue == TIMESTAMP
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThanOrEquals.name == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThanOrEquals.value.stringValue == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThanOrEquals.value.stringListValue[_] == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThanOrEquals.value.longValue == LONG
    input.Body.inputStream.configurationEvent.attributeFilter.greaterThanOrEquals.value.dateValue == TIMESTAMP
    input.Body.inputStream.configurationEvent.attributeFilter.lessThan.name == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.lessThan.value.stringValue == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.lessThan.value.stringListValue[_] == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.lessThan.value.longValue == LONG
    input.Body.inputStream.configurationEvent.attributeFilter.lessThan.value.dateValue == TIMESTAMP
    input.Body.inputStream.configurationEvent.attributeFilter.lessThanOrEquals.name == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.lessThanOrEquals.value.stringValue == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.lessThanOrEquals.value.stringListValue[_] == STRING
    input.Body.inputStream.configurationEvent.attributeFilter.lessThanOrEquals.value.longValue == LONG
    input.Body.inputStream.configurationEvent.attributeFilter.lessThanOrEquals.value.dateValue == TIMESTAMP
    input.Body.inputStream.textEvent.userMessage == STRING
    input.Body.inputStream.attachmentEvent.attachment.name == STRING
    input.Body.inputStream.attachmentEvent.attachment.data == BLOB
    input.Body.inputStream.actionExecutionEvent.pluginId == STRING
    input.Body.inputStream.actionExecutionEvent.payload.STRING.value == {}
    input.Body.inputStream.actionExecutionEvent.payloadFieldNameSeparator == STRING
    input.Body.inputStream.endOfInputEvent == {}
    input.Body.inputStream.authChallengeResponseEvent.responseMap.STRING == STRING
    input.ReqMap.applicationId == STRING
    input.Qs.userId == STRING
    input.Qs.userGroups[_] == STRING
    input.Qs.conversationId == STRING
    input.Qs.parentMessageId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ChatSync

enum_ChatMode := [ "RETRIEVAL_MODE", "CREATOR_MODE", "PLUGIN_MODE" ]

valid {
    input.Body.userMessage == STRING
    input.Body.attachments[_].name == STRING
    input.Body.attachments[_].data == BLOB
    input.Body.actionExecution.pluginId == STRING
    input.Body.actionExecution.payload.STRING.value == {}
    input.Body.actionExecution.payloadFieldNameSeparator == STRING
    input.Body.authChallengeResponse.responseMap.STRING == STRING
    input.Body.conversationId == STRING
    input.Body.parentMessageId == STRING
    input.Body.attributeFilter.andAllFilters[_] == NESTED
    input.Body.attributeFilter.orAllFilters[_] == NESTED
    input.Body.attributeFilter.notFilter == NESTED
    input.Body.attributeFilter.equalsTo.name == STRING
    input.Body.attributeFilter.equalsTo.value.stringValue == STRING
    input.Body.attributeFilter.equalsTo.value.stringListValue[_] == STRING
    input.Body.attributeFilter.equalsTo.value.longValue == LONG
    input.Body.attributeFilter.equalsTo.value.dateValue == TIMESTAMP
    input.Body.attributeFilter.containsAll.name == STRING
    input.Body.attributeFilter.containsAll.value.stringValue == STRING
    input.Body.attributeFilter.containsAll.value.stringListValue[_] == STRING
    input.Body.attributeFilter.containsAll.value.longValue == LONG
    input.Body.attributeFilter.containsAll.value.dateValue == TIMESTAMP
    input.Body.attributeFilter.containsAny.name == STRING
    input.Body.attributeFilter.containsAny.value.stringValue == STRING
    input.Body.attributeFilter.containsAny.value.stringListValue[_] == STRING
    input.Body.attributeFilter.containsAny.value.longValue == LONG
    input.Body.attributeFilter.containsAny.value.dateValue == TIMESTAMP
    input.Body.attributeFilter.greaterThan.name == STRING
    input.Body.attributeFilter.greaterThan.value.stringValue == STRING
    input.Body.attributeFilter.greaterThan.value.stringListValue[_] == STRING
    input.Body.attributeFilter.greaterThan.value.longValue == LONG
    input.Body.attributeFilter.greaterThan.value.dateValue == TIMESTAMP
    input.Body.attributeFilter.greaterThanOrEquals.name == STRING
    input.Body.attributeFilter.greaterThanOrEquals.value.stringValue == STRING
    input.Body.attributeFilter.greaterThanOrEquals.value.stringListValue[_] == STRING
    input.Body.attributeFilter.greaterThanOrEquals.value.longValue == LONG
    input.Body.attributeFilter.greaterThanOrEquals.value.dateValue == TIMESTAMP
    input.Body.attributeFilter.lessThan.name == STRING
    input.Body.attributeFilter.lessThan.value.stringValue == STRING
    input.Body.attributeFilter.lessThan.value.stringListValue[_] == STRING
    input.Body.attributeFilter.lessThan.value.longValue == LONG
    input.Body.attributeFilter.lessThan.value.dateValue == TIMESTAMP
    input.Body.attributeFilter.lessThanOrEquals.name == STRING
    input.Body.attributeFilter.lessThanOrEquals.value.stringValue == STRING
    input.Body.attributeFilter.lessThanOrEquals.value.stringListValue[_] == STRING
    input.Body.attributeFilter.lessThanOrEquals.value.longValue == LONG
    input.Body.attributeFilter.lessThanOrEquals.value.dateValue == TIMESTAMP
    input.Body.chatMode == enum_ChatMode[_]
    input.Body.chatModeConfiguration.pluginConfiguration.pluginId == STRING
    input.Body.clientToken == STRING
    input.ReqMap.applicationId == STRING
    input.Qs.userId == STRING
    input.Qs.userGroups[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateApplication

enum_AttachmentsControlMode := [ "ENABLED", "DISABLED" ]
enum_IdentityType := [ "AWS_IAM_IDP_SAML", "AWS_IAM_IDP_OIDC", "AWS_IAM_IDC" ]
enum_PersonalizationControlMode := [ "ENABLED", "DISABLED" ]
enum_QAppsControlMode := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.displayName == STRING
    input.Body.roleArn == STRING
    input.Body.identityType == enum_IdentityType[_]
    input.Body.iamIdentityProviderArn == STRING
    input.Body.identityCenterInstanceArn == STRING
    input.Body.clientIdsForOIDC[_] == STRING
    input.Body.description == STRING
    input.Body.encryptionConfiguration.kmsKeyId == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.Body.clientToken == STRING
    input.Body.attachmentsConfiguration.attachmentsControlMode == enum_AttachmentsControlMode[_]
    input.Body.qAppsConfiguration.qAppsControlMode == enum_QAppsControlMode[_]
    input.Body.personalizationConfiguration.personalizationControlMode == enum_PersonalizationControlMode[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDataSource

enum_AttributeValueOperator := [ "DELETE" ]
enum_DocumentContentOperator := [ "DELETE" ]
enum_DocumentEnrichmentConditionOperator := [ "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "EXISTS", "NOT_EXISTS", "BEGINS_WITH" ]

valid {
    input.Body.displayName == STRING
    input.Body.configuration == {}
    input.Body.vpcConfiguration.subnetIds[_] == STRING
    input.Body.vpcConfiguration.securityGroupIds[_] == STRING
    input.Body.description == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.Body.syncSchedule == STRING
    input.Body.roleArn == STRING
    input.Body.clientToken == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.key == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.stringValue == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.stringListValue[_] == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.longValue == LONG
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.dateValue == TIMESTAMP
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.key == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.value.stringValue == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.value.stringListValue[_] == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.value.longValue == LONG
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.value.dateValue == TIMESTAMP
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.attributeValueOperator == enum_AttributeValueOperator[_]
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].documentContentOperator == enum_DocumentContentOperator[_]
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.key == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.stringValue == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.stringListValue[_] == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.longValue == LONG
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.dateValue == TIMESTAMP
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.lambdaArn == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.s3BucketName == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.roleArn == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.key == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.stringValue == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.stringListValue[_] == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.longValue == LONG
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.dateValue == TIMESTAMP
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.lambdaArn == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.s3BucketName == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.roleArn == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIndex

enum_IndexType := [ "ENTERPRISE", "STARTER" ]

valid {
    input.Body.displayName == STRING
    input.Body.type == enum_IndexType[_]
    input.Body.description == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.Body.capacityConfiguration.units == INTEGER
    input.Body.clientToken == STRING
    input.ReqMap.applicationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePlugin

enum_APISchemaType := [ "OPEN_API_V3" ]
enum_PluginType := [ "SERVICE_NOW", "SALESFORCE", "JIRA", "ZENDESK", "CUSTOM" ]

valid {
    input.Body.displayName == STRING
    input.Body.type == enum_PluginType[_]
    input.Body.authConfiguration.basicAuthConfiguration.secretArn == STRING
    input.Body.authConfiguration.basicAuthConfiguration.roleArn == STRING
    input.Body.authConfiguration.oAuth2ClientCredentialConfiguration.secretArn == STRING
    input.Body.authConfiguration.oAuth2ClientCredentialConfiguration.roleArn == STRING
    input.Body.authConfiguration.noAuthConfiguration == {}
    input.Body.serverUrl == STRING
    input.Body.customPluginConfiguration.description == STRING
    input.Body.customPluginConfiguration.apiSchemaType == enum_APISchemaType[_]
    input.Body.customPluginConfiguration.apiSchema.payload == STRING
    input.Body.customPluginConfiguration.apiSchema.s3.bucket == STRING
    input.Body.customPluginConfiguration.apiSchema.s3.key == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.Body.clientToken == STRING
    input.ReqMap.applicationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRetriever

enum_DocumentAttributeBoostingLevel := [ "NONE", "LOW", "MEDIUM", "HIGH", "VERY_HIGH" ]
enum_NumberAttributeBoostingType := [ "PRIORITIZE_LARGER_VALUES", "PRIORITIZE_SMALLER_VALUES" ]
enum_RetrieverType := [ "NATIVE_INDEX", "KENDRA_INDEX" ]
enum_StringAttributeValueBoostingLevel := [ "LOW", "MEDIUM", "HIGH", "VERY_HIGH" ]

valid {
    input.Body.type == enum_RetrieverType[_]
    input.Body.displayName == STRING
    input.Body.configuration.nativeIndexConfiguration.indexId == STRING
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.numberConfiguration.boostingLevel == enum_DocumentAttributeBoostingLevel[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.numberConfiguration.boostingType == enum_NumberAttributeBoostingType[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.stringConfiguration.boostingLevel == enum_DocumentAttributeBoostingLevel[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.stringConfiguration.attributeValueBoosting.STRING == enum_StringAttributeValueBoostingLevel[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.dateConfiguration.boostingLevel == enum_DocumentAttributeBoostingLevel[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.dateConfiguration.boostingDurationInSeconds == LONG
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.stringListConfiguration.boostingLevel == enum_DocumentAttributeBoostingLevel[_]
    input.Body.configuration.kendraIndexConfiguration.indexId == STRING
    input.Body.roleArn == STRING
    input.Body.clientToken == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ReqMap.applicationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateUser

valid {
    input.Body.userId == STRING
    input.Body.userAliases[_].indexId == STRING
    input.Body.userAliases[_].dataSourceId == STRING
    input.Body.userAliases[_].userId == STRING
    input.Body.clientToken == STRING
    input.ReqMap.applicationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWebExperience

enum_WebExperienceSamplePromptsControlMode := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.title == STRING
    input.Body.subtitle == STRING
    input.Body.welcomeMessage == STRING
    input.Body.samplePromptsControlMode == enum_WebExperienceSamplePromptsControlMode[_]
    input.Body.roleArn == STRING
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.Body.clientToken == STRING
    input.Body.identityProviderConfiguration.samlConfiguration.authenticationUrl == STRING
    input.Body.identityProviderConfiguration.openIDConnectConfiguration.secretsArn == STRING
    input.Body.identityProviderConfiguration.openIDConnectConfiguration.secretsRole == STRING
    input.ReqMap.applicationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApplication

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

DeleteChatControlsConfiguration

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

DeleteConversation

valid {
    input.ReqMap.conversationId == STRING
    input.ReqMap.applicationId == STRING
    input.Qs.userId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDataSource

valid {
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ReqMap.dataSourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteGroup

valid {
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ReqMap.groupName == STRING
    input.Qs.dataSourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteIndex

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

DeletePlugin

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

DeleteRetriever

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

DeleteUser

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

DeleteWebExperience

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

GetApplication

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

GetChatControlsConfiguration

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

GetDataSource

valid {
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ReqMap.dataSourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetGroup

valid {
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ReqMap.groupName == STRING
    input.Qs.dataSourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIndex

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

GetPlugin

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

GetRetriever

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

GetUser

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

GetWebExperience

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

ListApplications

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

ListConversations

valid {
    input.ReqMap.applicationId == STRING
    input.Qs.userId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDataSourceSyncJobs

enum_DataSourceSyncJobStatus := [ "FAILED", "SUCCEEDED", "SYNCING", "INCOMPLETE", "STOPPING", "ABORTED", "SYNCING_INDEXING" ]

valid {
    input.ReqMap.dataSourceId == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.startTime == TIMESTAMP
    input.Qs.endTime == TIMESTAMP
    input.Qs.syncStatus == enum_DataSourceSyncJobStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDataSources

valid {
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDocuments

valid {
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.Qs.dataSourceIds[_] == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListGroups

valid {
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.Qs.updatedEarlierThan == TIMESTAMP
    input.Qs.dataSourceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIndices

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

ListMessages

valid {
    input.ReqMap.conversationId == STRING
    input.ReqMap.applicationId == STRING
    input.Qs.userId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPlugins

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

ListRetrievers

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

ListTagsForResource

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

ListWebExperiences

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

PutFeedback

enum_MessageUsefulness := [ "USEFUL", "NOT_USEFUL" ]
enum_MessageUsefulnessReason := [ "NOT_FACTUALLY_CORRECT", "HARMFUL_OR_UNSAFE", "INCORRECT_OR_MISSING_SOURCES", "NOT_HELPFUL", "FACTUALLY_CORRECT", "COMPLETE", "RELEVANT_SOURCES", "HELPFUL", "NOT_BASED_ON_DOCUMENTS", "NOT_COMPLETE", "NOT_CONCISE", "OTHER" ]

valid {
    input.Body.messageCopiedAt == TIMESTAMP
    input.Body.messageUsefulness.usefulness == enum_MessageUsefulness[_]
    input.Body.messageUsefulness.reason == enum_MessageUsefulnessReason[_]
    input.Body.messageUsefulness.comment == STRING
    input.Body.messageUsefulness.submittedAt == TIMESTAMP
    input.ReqMap.applicationId == STRING
    input.ReqMap.conversationId == STRING
    input.ReqMap.messageId == STRING
    input.Qs.userId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutGroup

enum_MembershipType := [ "INDEX", "DATASOURCE" ]

valid {
    input.Body.groupName == STRING
    input.Body.dataSourceId == STRING
    input.Body.type == enum_MembershipType[_]
    input.Body.groupMembers.memberGroups[_].groupName == STRING
    input.Body.groupMembers.memberGroups[_].type == enum_MembershipType[_]
    input.Body.groupMembers.memberUsers[_].userId == STRING
    input.Body.groupMembers.memberUsers[_].type == enum_MembershipType[_]
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartDataSourceSyncJob

valid {
    input.ReqMap.dataSourceId == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopDataSourceSyncJob

valid {
    input.ReqMap.dataSourceId == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.tags[_].key == STRING
    input.Body.tags[_].value == STRING
    input.ReqMap.resourceARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.resourceARN == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApplication

enum_AttachmentsControlMode := [ "ENABLED", "DISABLED" ]
enum_AutoSubscriptionStatus := [ "ENABLED", "DISABLED" ]
enum_PersonalizationControlMode := [ "ENABLED", "DISABLED" ]
enum_QAppsControlMode := [ "ENABLED", "DISABLED" ]
enum_SubscriptionType := [ "Q_LITE", "Q_BUSINESS" ]

valid {
    input.Body.identityCenterInstanceArn == STRING
    input.Body.displayName == STRING
    input.Body.description == STRING
    input.Body.roleArn == STRING
    input.Body.attachmentsConfiguration.attachmentsControlMode == enum_AttachmentsControlMode[_]
    input.Body.qAppsConfiguration.qAppsControlMode == enum_QAppsControlMode[_]
    input.Body.personalizationConfiguration.personalizationControlMode == enum_PersonalizationControlMode[_]
    input.Body.autoSubscriptionConfiguration.autoSubscribe == enum_AutoSubscriptionStatus[_]
    input.Body.autoSubscriptionConfiguration.defaultSubscriptionType == enum_SubscriptionType[_]
    input.ReqMap.applicationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateChatControlsConfiguration

enum_CreatorModeControl := [ "ENABLED", "DISABLED" ]
enum_ResponseScope := [ "ENTERPRISE_CONTENT_ONLY", "EXTENDED_KNOWLEDGE_ENABLED" ]
enum_RuleType := [ "CONTENT_BLOCKER_RULE", "CONTENT_RETRIEVAL_RULE" ]

valid {
    input.Body.clientToken == STRING
    input.Body.responseScope == enum_ResponseScope[_]
    input.Body.blockedPhrasesConfigurationUpdate.blockedPhrasesToCreateOrUpdate[_] == STRING
    input.Body.blockedPhrasesConfigurationUpdate.blockedPhrasesToDelete[_] == STRING
    input.Body.blockedPhrasesConfigurationUpdate.systemMessageOverride == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].name == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].description == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].exampleChatMessages[_] == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].rules[_].includedUsersAndGroups.userIds[_] == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].rules[_].includedUsersAndGroups.userGroups[_] == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].rules[_].excludedUsersAndGroups.userIds[_] == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].rules[_].excludedUsersAndGroups.userGroups[_] == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].rules[_].ruleType == enum_RuleType[_]
    input.Body.topicConfigurationsToCreateOrUpdate[_].rules[_].ruleConfiguration.contentBlockerRule.systemMessageOverride == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].rules[_].ruleConfiguration.contentRetrievalRule.eligibleDataSources[_].indexId == STRING
    input.Body.topicConfigurationsToCreateOrUpdate[_].rules[_].ruleConfiguration.contentRetrievalRule.eligibleDataSources[_].dataSourceId == STRING
    input.Body.topicConfigurationsToDelete[_].name == STRING
    input.Body.topicConfigurationsToDelete[_].description == STRING
    input.Body.topicConfigurationsToDelete[_].exampleChatMessages[_] == STRING
    input.Body.topicConfigurationsToDelete[_].rules[_].includedUsersAndGroups.userIds[_] == STRING
    input.Body.topicConfigurationsToDelete[_].rules[_].includedUsersAndGroups.userGroups[_] == STRING
    input.Body.topicConfigurationsToDelete[_].rules[_].excludedUsersAndGroups.userIds[_] == STRING
    input.Body.topicConfigurationsToDelete[_].rules[_].excludedUsersAndGroups.userGroups[_] == STRING
    input.Body.topicConfigurationsToDelete[_].rules[_].ruleType == enum_RuleType[_]
    input.Body.topicConfigurationsToDelete[_].rules[_].ruleConfiguration.contentBlockerRule.systemMessageOverride == STRING
    input.Body.topicConfigurationsToDelete[_].rules[_].ruleConfiguration.contentRetrievalRule.eligibleDataSources[_].indexId == STRING
    input.Body.topicConfigurationsToDelete[_].rules[_].ruleConfiguration.contentRetrievalRule.eligibleDataSources[_].dataSourceId == STRING
    input.Body.creatorModeConfiguration.creatorModeControl == enum_CreatorModeControl[_]
    input.ReqMap.applicationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDataSource

enum_AttributeValueOperator := [ "DELETE" ]
enum_DocumentContentOperator := [ "DELETE" ]
enum_DocumentEnrichmentConditionOperator := [ "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS", "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "EXISTS", "NOT_EXISTS", "BEGINS_WITH" ]

valid {
    input.Body.displayName == STRING
    input.Body.configuration == {}
    input.Body.vpcConfiguration.subnetIds[_] == STRING
    input.Body.vpcConfiguration.securityGroupIds[_] == STRING
    input.Body.description == STRING
    input.Body.syncSchedule == STRING
    input.Body.roleArn == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.key == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.stringValue == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.stringListValue[_] == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.longValue == LONG
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].condition.value.dateValue == TIMESTAMP
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.key == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.value.stringValue == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.value.stringListValue[_] == STRING
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.value.longValue == LONG
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.value.dateValue == TIMESTAMP
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].target.attributeValueOperator == enum_AttributeValueOperator[_]
    input.Body.documentEnrichmentConfiguration.inlineConfigurations[_].documentContentOperator == enum_DocumentContentOperator[_]
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.key == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.stringValue == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.stringListValue[_] == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.longValue == LONG
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.invocationCondition.value.dateValue == TIMESTAMP
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.lambdaArn == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.s3BucketName == STRING
    input.Body.documentEnrichmentConfiguration.preExtractionHookConfiguration.roleArn == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.key == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.operator == enum_DocumentEnrichmentConditionOperator[_]
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.stringValue == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.stringListValue[_] == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.longValue == LONG
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.invocationCondition.value.dateValue == TIMESTAMP
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.lambdaArn == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.s3BucketName == STRING
    input.Body.documentEnrichmentConfiguration.postExtractionHookConfiguration.roleArn == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ReqMap.dataSourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateIndex

enum_AttributeType := [ "STRING", "STRING_LIST", "NUMBER", "DATE" ]
enum_Status := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.displayName == STRING
    input.Body.description == STRING
    input.Body.capacityConfiguration.units == INTEGER
    input.Body.documentAttributeConfigurations[_].name == STRING
    input.Body.documentAttributeConfigurations[_].type == enum_AttributeType[_]
    input.Body.documentAttributeConfigurations[_].search == enum_Status[_]
    input.ReqMap.applicationId == STRING
    input.ReqMap.indexId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePlugin

enum_APISchemaType := [ "OPEN_API_V3" ]
enum_PluginState := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.displayName == STRING
    input.Body.state == enum_PluginState[_]
    input.Body.serverUrl == STRING
    input.Body.customPluginConfiguration.description == STRING
    input.Body.customPluginConfiguration.apiSchemaType == enum_APISchemaType[_]
    input.Body.customPluginConfiguration.apiSchema.payload == STRING
    input.Body.customPluginConfiguration.apiSchema.s3.bucket == STRING
    input.Body.customPluginConfiguration.apiSchema.s3.key == STRING
    input.Body.authConfiguration.basicAuthConfiguration.secretArn == STRING
    input.Body.authConfiguration.basicAuthConfiguration.roleArn == STRING
    input.Body.authConfiguration.oAuth2ClientCredentialConfiguration.secretArn == STRING
    input.Body.authConfiguration.oAuth2ClientCredentialConfiguration.roleArn == STRING
    input.Body.authConfiguration.noAuthConfiguration == {}
    input.ReqMap.applicationId == STRING
    input.ReqMap.pluginId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRetriever

enum_DocumentAttributeBoostingLevel := [ "NONE", "LOW", "MEDIUM", "HIGH", "VERY_HIGH" ]
enum_NumberAttributeBoostingType := [ "PRIORITIZE_LARGER_VALUES", "PRIORITIZE_SMALLER_VALUES" ]
enum_StringAttributeValueBoostingLevel := [ "LOW", "MEDIUM", "HIGH", "VERY_HIGH" ]

valid {
    input.Body.configuration.nativeIndexConfiguration.indexId == STRING
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.numberConfiguration.boostingLevel == enum_DocumentAttributeBoostingLevel[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.numberConfiguration.boostingType == enum_NumberAttributeBoostingType[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.stringConfiguration.boostingLevel == enum_DocumentAttributeBoostingLevel[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.stringConfiguration.attributeValueBoosting.STRING == enum_StringAttributeValueBoostingLevel[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.dateConfiguration.boostingLevel == enum_DocumentAttributeBoostingLevel[_]
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.dateConfiguration.boostingDurationInSeconds == LONG
    input.Body.configuration.nativeIndexConfiguration.boostingOverride.STRING.stringListConfiguration.boostingLevel == enum_DocumentAttributeBoostingLevel[_]
    input.Body.configuration.kendraIndexConfiguration.indexId == STRING
    input.Body.displayName == STRING
    input.Body.roleArn == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.retrieverId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateUser

valid {
    input.Body.userAliasesToUpdate[_].indexId == STRING
    input.Body.userAliasesToUpdate[_].dataSourceId == STRING
    input.Body.userAliasesToUpdate[_].userId == STRING
    input.Body.userAliasesToDelete[_].indexId == STRING
    input.Body.userAliasesToDelete[_].dataSourceId == STRING
    input.Body.userAliasesToDelete[_].userId == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.userId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWebExperience

enum_WebExperienceSamplePromptsControlMode := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.roleArn == STRING
    input.Body.authenticationConfiguration.samlConfiguration.metadataXML == STRING
    input.Body.authenticationConfiguration.samlConfiguration.roleArn == STRING
    input.Body.authenticationConfiguration.samlConfiguration.userIdAttribute == STRING
    input.Body.authenticationConfiguration.samlConfiguration.userGroupAttribute == STRING
    input.Body.title == STRING
    input.Body.subtitle == STRING
    input.Body.welcomeMessage == STRING
    input.Body.samplePromptsControlMode == enum_WebExperienceSamplePromptsControlMode[_]
    input.Body.identityProviderConfiguration.samlConfiguration.authenticationUrl == STRING
    input.Body.identityProviderConfiguration.openIDConnectConfiguration.secretsArn == STRING
    input.Body.identityProviderConfiguration.openIDConnectConfiguration.secretsRole == STRING
    input.ReqMap.applicationId == STRING
    input.ReqMap.webExperienceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}