DISCOVERYENGINE

discoveryengine.projects.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataConnector.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataConnector.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.chunks.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.chunks.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.create

valid {
    input.Body.content.mimeType == STRING
    input.Body.content.rawBytes == STRING
    input.Body.content.uri == STRING
    input.Body.id == STRING
    input.Body.jsonData == STRING
    input.Body.name == STRING
    input.Body.parentDocumentId == STRING
    input.Body.schemaId == STRING
    input.Body.structData.STRING == ANY
    input.ReqMap.parent == STRING
    input.Qs.documentId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.getProcessedDocument

enum_ProcessedDocumentFormatParameter := [ "PROCESSED_DOCUMENT_FORMAT_UNSPECIFIED", "JSON" ]
enum_ProcessedDocumentTypeParameter := [ "PROCESSED_DOCUMENT_TYPE_UNSPECIFIED", "PARSED_DOCUMENT", "CHUNKED_DOCUMENT", "IMAGE_CONVERTED_DOCUMENT" ]

valid {
    input.ReqMap.name == STRING
    input.Qs.processedDocumentFormat == enum_ProcessedDocumentFormatParameter[_]
    input.Qs.processedDocumentType == enum_ProcessedDocumentTypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.import

enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnEncoding := [ "ENCODING_UNSPECIFIED", "TEXT", "BINARY" ]
enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnFamilyEncoding := [ "ENCODING_UNSPECIFIED", "TEXT", "BINARY" ]
enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnFamilyType := [ "TYPE_UNSPECIFIED", "STRING", "NUMBER", "INTEGER", "VAR_INTEGER", "BIG_NUMERIC", "BOOLEAN", "JSON" ]
enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnType := [ "TYPE_UNSPECIFIED", "STRING", "NUMBER", "INTEGER", "VAR_INTEGER", "BIG_NUMERIC", "BOOLEAN", "JSON" ]
enum_GoogleCloudDiscoveryengineV1ImportDocumentsRequestReconciliationMode := [ "RECONCILIATION_MODE_UNSPECIFIED", "INCREMENTAL", "FULL" ]

valid {
    input.Body.alloyDbSource.clusterId == STRING
    input.Body.alloyDbSource.databaseId == STRING
    input.Body.alloyDbSource.gcsStagingDir == STRING
    input.Body.alloyDbSource.locationId == STRING
    input.Body.alloyDbSource.projectId == STRING
    input.Body.alloyDbSource.tableId == STRING
    input.Body.autoGenerateIds == BOOLEAN
    input.Body.bigquerySource.dataSchema == STRING
    input.Body.bigquerySource.datasetId == STRING
    input.Body.bigquerySource.gcsStagingDir == STRING
    input.Body.bigquerySource.partitionDate.day == INTEGER
    input.Body.bigquerySource.partitionDate.month == INTEGER
    input.Body.bigquerySource.partitionDate.year == INTEGER
    input.Body.bigquerySource.projectId == STRING
    input.Body.bigquerySource.tableId == STRING
    input.Body.bigtableSource.bigtableOptions.families.STRING.columns[_].encoding == enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnEncoding[_]
    input.Body.bigtableSource.bigtableOptions.families.STRING.columns[_].fieldName == STRING
    input.Body.bigtableSource.bigtableOptions.families.STRING.columns[_].qualifier == STRING
    input.Body.bigtableSource.bigtableOptions.families.STRING.columns[_].type == enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnType[_]
    input.Body.bigtableSource.bigtableOptions.families.STRING.encoding == enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnFamilyEncoding[_]
    input.Body.bigtableSource.bigtableOptions.families.STRING.fieldName == STRING
    input.Body.bigtableSource.bigtableOptions.families.STRING.type == enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnFamilyType[_]
    input.Body.bigtableSource.bigtableOptions.keyFieldName == STRING
    input.Body.bigtableSource.instanceId == STRING
    input.Body.bigtableSource.projectId == STRING
    input.Body.bigtableSource.tableId == STRING
    input.Body.cloudSqlSource.databaseId == STRING
    input.Body.cloudSqlSource.gcsStagingDir == STRING
    input.Body.cloudSqlSource.instanceId == STRING
    input.Body.cloudSqlSource.offload == BOOLEAN
    input.Body.cloudSqlSource.projectId == STRING
    input.Body.cloudSqlSource.tableId == STRING
    input.Body.errorConfig.gcsPrefix == STRING
    input.Body.fhirStoreSource.fhirStore == STRING
    input.Body.fhirStoreSource.gcsStagingDir == STRING
    input.Body.firestoreSource.collectionId == STRING
    input.Body.firestoreSource.databaseId == STRING
    input.Body.firestoreSource.gcsStagingDir == STRING
    input.Body.firestoreSource.projectId == STRING
    input.Body.gcsSource.dataSchema == STRING
    input.Body.gcsSource.inputUris[_] == STRING
    input.Body.idField == STRING
    input.Body.inlineSource.documents[_].content.mimeType == STRING
    input.Body.inlineSource.documents[_].content.rawBytes == STRING
    input.Body.inlineSource.documents[_].content.uri == STRING
    input.Body.inlineSource.documents[_].id == STRING
    input.Body.inlineSource.documents[_].jsonData == STRING
    input.Body.inlineSource.documents[_].name == STRING
    input.Body.inlineSource.documents[_].parentDocumentId == STRING
    input.Body.inlineSource.documents[_].schemaId == STRING
    input.Body.inlineSource.documents[_].structData.STRING == ANY
    input.Body.reconciliationMode == enum_GoogleCloudDiscoveryengineV1ImportDocumentsRequestReconciliationMode[_]
    input.Body.spannerSource.databaseId == STRING
    input.Body.spannerSource.enableDataBoost == BOOLEAN
    input.Body.spannerSource.instanceId == STRING
    input.Body.spannerSource.projectId == STRING
    input.Body.spannerSource.tableId == STRING
    input.Body.updateMask == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.patch

valid {
    input.Body.content.mimeType == STRING
    input.Body.content.rawBytes == STRING
    input.Body.content.uri == STRING
    input.Body.id == STRING
    input.Body.jsonData == STRING
    input.Body.name == STRING
    input.Body.parentDocumentId == STRING
    input.Body.schemaId == STRING
    input.Body.structData.STRING == ANY
    input.ReqMap.name == STRING
    input.Qs.allowMissing == BOOLEAN
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.documents.purge

valid {
    input.Body.filter == STRING
    input.Body.force == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.operations.cancel

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.branches.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.completeQuery

valid {
    input.ReqMap.dataStore == STRING
    input.Qs.includeTailSuggestions == BOOLEAN
    input.Qs.query == STRING
    input.Qs.queryModel == STRING
    input.Qs.userPseudoId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.completionSuggestions.import

valid {
    input.Body.bigquerySource.dataSchema == STRING
    input.Body.bigquerySource.datasetId == STRING
    input.Body.bigquerySource.gcsStagingDir == STRING
    input.Body.bigquerySource.partitionDate.day == INTEGER
    input.Body.bigquerySource.partitionDate.month == INTEGER
    input.Body.bigquerySource.partitionDate.year == INTEGER
    input.Body.bigquerySource.projectId == STRING
    input.Body.bigquerySource.tableId == STRING
    input.Body.errorConfig.gcsPrefix == STRING
    input.Body.gcsSource.dataSchema == STRING
    input.Body.gcsSource.inputUris[_] == STRING
    input.Body.inlineSource.suggestions[_].alternativePhrases[_] == STRING
    input.Body.inlineSource.suggestions[_].frequency == STRING
    input.Body.inlineSource.suggestions[_].globalScore == NUMBER
    input.Body.inlineSource.suggestions[_].groupId == STRING
    input.Body.inlineSource.suggestions[_].groupScore == NUMBER
    input.Body.inlineSource.suggestions[_].languageCode == STRING
    input.Body.inlineSource.suggestions[_].suggestion == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.completionSuggestions.purge

valid {
    input.Body.STRING == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.controls.create

enum_GoogleCloudDiscoveryengineV1ControlSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]
enum_GoogleCloudDiscoveryengineV1ControlUseCases := [ "SEARCH_USE_CASE_UNSPECIFIED", "SEARCH_USE_CASE_SEARCH", "SEARCH_USE_CASE_BROWSE" ]

valid {
    input.Body.boostAction.boost == NUMBER
    input.Body.boostAction.dataStore == STRING
    input.Body.boostAction.filter == STRING
    input.Body.conditions[_].activeTimeRange[_].endTime == STRING
    input.Body.conditions[_].activeTimeRange[_].startTime == STRING
    input.Body.conditions[_].queryTerms[_].fullMatch == BOOLEAN
    input.Body.conditions[_].queryTerms[_].value == STRING
    input.Body.displayName == STRING
    input.Body.filterAction.dataStore == STRING
    input.Body.filterAction.filter == STRING
    input.Body.name == STRING
    input.Body.redirectAction.redirectUri == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1ControlSolutionType[_]
    input.Body.synonymsAction.synonyms[_] == STRING
    input.Body.useCases[_] == enum_GoogleCloudDiscoveryengineV1ControlUseCases[_]
    input.ReqMap.parent == STRING
    input.Qs.controlId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.controls.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.controls.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.controls.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.controls.patch

enum_GoogleCloudDiscoveryengineV1ControlSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]
enum_GoogleCloudDiscoveryengineV1ControlUseCases := [ "SEARCH_USE_CASE_UNSPECIFIED", "SEARCH_USE_CASE_SEARCH", "SEARCH_USE_CASE_BROWSE" ]

valid {
    input.Body.boostAction.boost == NUMBER
    input.Body.boostAction.dataStore == STRING
    input.Body.boostAction.filter == STRING
    input.Body.conditions[_].activeTimeRange[_].endTime == STRING
    input.Body.conditions[_].activeTimeRange[_].startTime == STRING
    input.Body.conditions[_].queryTerms[_].fullMatch == BOOLEAN
    input.Body.conditions[_].queryTerms[_].value == STRING
    input.Body.displayName == STRING
    input.Body.filterAction.dataStore == STRING
    input.Body.filterAction.filter == STRING
    input.Body.name == STRING
    input.Body.redirectAction.redirectUri == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1ControlSolutionType[_]
    input.Body.synonymsAction.synonyms[_] == STRING
    input.Body.useCases[_] == enum_GoogleCloudDiscoveryengineV1ControlUseCases[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.conversations.converse

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.conversation.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.conversation.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.conversation.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.conversation.messages[_].reply.summary.summaryText == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.conversation.messages[_].userInput.context.activeDocument == STRING
    input.Body.conversation.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.conversation.messages[_].userInput.input == STRING
    input.Body.conversation.name == STRING
    input.Body.conversation.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.conversation.userPseudoId == STRING
    input.Body.filter == STRING
    input.Body.query.context.activeDocument == STRING
    input.Body.query.context.contextDocuments[_] == STRING
    input.Body.query.input == STRING
    input.Body.safeSearch == BOOLEAN
    input.Body.servingConfig == STRING
    input.Body.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.summarySpec.includeCitations == BOOLEAN
    input.Body.summarySpec.languageCode == STRING
    input.Body.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.summarySpec.modelSpec.version == STRING
    input.Body.summarySpec.summaryResultCount == INTEGER
    input.Body.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.userLabels.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.conversations.create

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.messages[_].reply.summary.summaryText == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.messages[_].userInput.context.activeDocument == STRING
    input.Body.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.messages[_].userInput.input == STRING
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.userPseudoId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.conversations.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.conversations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.conversations.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.conversations.patch

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.messages[_].reply.summary.summaryText == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.messages[_].userInput.context.activeDocument == STRING
    input.Body.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.messages[_].userInput.input == STRING
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.userPseudoId == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.create

enum_GoogleCloudDiscoveryengineV1DataStoreContentConfig := [ "CONTENT_CONFIG_UNSPECIFIED", "NO_CONTENT", "CONTENT_REQUIRED", "PUBLIC_WEBSITE" ]
enum_GoogleCloudDiscoveryengineV1DataStoreIndustryVertical := [ "INDUSTRY_VERTICAL_UNSPECIFIED", "GENERIC", "MEDIA", "HEALTHCARE_FHIR" ]
enum_GoogleCloudDiscoveryengineV1DataStoreSolutionTypes := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.contentConfig == enum_GoogleCloudDiscoveryengineV1DataStoreContentConfig[_]
    input.Body.displayName == STRING
    input.Body.documentProcessingConfig.chunkingConfig.layoutBasedChunkingConfig.chunkSize == INTEGER
    input.Body.documentProcessingConfig.chunkingConfig.layoutBasedChunkingConfig.includeAncestorHeadings == BOOLEAN
    input.Body.documentProcessingConfig.defaultParsingConfig.digitalParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.layoutParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.documentProcessingConfig.name == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.digitalParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.layoutParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.industryVertical == enum_GoogleCloudDiscoveryengineV1DataStoreIndustryVertical[_]
    input.Body.name == STRING
    input.Body.solutionTypes[_] == enum_GoogleCloudDiscoveryengineV1DataStoreSolutionTypes[_]
    input.Body.startingSchema.jsonSchema == STRING
    input.Body.startingSchema.name == STRING
    input.Body.startingSchema.structSchema.STRING == ANY
    input.ReqMap.parent == STRING
    input.Qs.createAdvancedSiteSearch == BOOLEAN
    input.Qs.dataStoreId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.customModels.list

valid {
    input.ReqMap.dataStore == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.getDocumentProcessingConfig

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.getSiteSearchEngine

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.models.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.models.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.patch

enum_GoogleCloudDiscoveryengineV1DataStoreContentConfig := [ "CONTENT_CONFIG_UNSPECIFIED", "NO_CONTENT", "CONTENT_REQUIRED", "PUBLIC_WEBSITE" ]
enum_GoogleCloudDiscoveryengineV1DataStoreIndustryVertical := [ "INDUSTRY_VERTICAL_UNSPECIFIED", "GENERIC", "MEDIA", "HEALTHCARE_FHIR" ]
enum_GoogleCloudDiscoveryengineV1DataStoreSolutionTypes := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.contentConfig == enum_GoogleCloudDiscoveryengineV1DataStoreContentConfig[_]
    input.Body.displayName == STRING
    input.Body.documentProcessingConfig.chunkingConfig.layoutBasedChunkingConfig.chunkSize == INTEGER
    input.Body.documentProcessingConfig.chunkingConfig.layoutBasedChunkingConfig.includeAncestorHeadings == BOOLEAN
    input.Body.documentProcessingConfig.defaultParsingConfig.digitalParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.layoutParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.documentProcessingConfig.name == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.digitalParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.layoutParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.industryVertical == enum_GoogleCloudDiscoveryengineV1DataStoreIndustryVertical[_]
    input.Body.name == STRING
    input.Body.solutionTypes[_] == enum_GoogleCloudDiscoveryengineV1DataStoreSolutionTypes[_]
    input.Body.startingSchema.jsonSchema == STRING
    input.Body.startingSchema.name == STRING
    input.Body.startingSchema.structSchema.STRING == ANY
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.schemas.create

valid {
    input.Body.jsonSchema == STRING
    input.Body.name == STRING
    input.Body.structSchema.STRING == ANY
    input.ReqMap.parent == STRING
    input.Qs.schemaId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.schemas.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.schemas.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.schemas.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.schemas.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.schemas.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.schemas.patch

valid {
    input.Body.jsonSchema == STRING
    input.Body.name == STRING
    input.Body.structSchema.STRING == ANY
    input.ReqMap.name == STRING
    input.Qs.allowMissing == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.servingConfigs.answer

enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestQueryUnderstandingSpecQueryClassificationSpecTypes := [ "TYPE_UNSPECIFIED", "ADVERSARIAL_QUERY", "NON_ANSWER_SEEKING_QUERY" ]
enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestSearchSpecSearchParamsSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]

valid {
    input.Body.answerGenerationSpec.answerLanguageCode == STRING
    input.Body.answerGenerationSpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.answerGenerationSpec.ignoreLowRelevantContent == BOOLEAN
    input.Body.answerGenerationSpec.ignoreNonAnswerSeekingQuery == BOOLEAN
    input.Body.answerGenerationSpec.includeCitations == BOOLEAN
    input.Body.answerGenerationSpec.modelSpec.modelVersion == STRING
    input.Body.answerGenerationSpec.promptSpec.preamble == STRING
    input.Body.asynchronousMode == BOOLEAN
    input.Body.query.queryId == STRING
    input.Body.query.text == STRING
    input.Body.queryUnderstandingSpec.queryClassificationSpec.types[_] == enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestQueryUnderstandingSpecQueryClassificationSpecTypes[_]
    input.Body.queryUnderstandingSpec.queryRephraserSpec.disable == BOOLEAN
    input.Body.queryUnderstandingSpec.queryRephraserSpec.maxRephraseSteps == INTEGER
    input.Body.relatedQuestionsSpec.enable == BOOLEAN
    input.Body.safetySpec.enable == BOOLEAN
    input.Body.searchSpec.searchParams.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.searchSpec.searchParams.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.searchSpec.searchParams.dataStoreSpecs[_].dataStore == STRING
    input.Body.searchSpec.searchParams.filter == STRING
    input.Body.searchSpec.searchParams.maxReturnResults == INTEGER
    input.Body.searchSpec.searchParams.orderBy == STRING
    input.Body.searchSpec.searchParams.searchResultMode == enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestSearchSpecSearchParamsSearchResultMode[_]
    input.Body.searchSpec.searchResultList.searchResults[_].chunkInfo.chunk == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].chunkInfo.content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.document == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.documentContexts[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.documentContexts[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveAnswers[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveAnswers[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveSegments[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveSegments[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.title == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.uri == STRING
    input.Body.session == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.servingConfigs.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.servingConfigs.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.servingConfigs.patch

enum_GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]
enum_GoogleCloudDiscoveryengineV1betaServingConfigSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.boostControlIds[_] == STRING
    input.Body.displayName == STRING
    input.Body.dissociateControlIds[_] == STRING
    input.Body.diversityLevel == STRING
    input.Body.embeddingConfig.fieldPath == STRING
    input.Body.filterControlIds[_] == STRING
    input.Body.genericConfig.contentSearchSpec.chunkSpec.numNextChunks == INTEGER
    input.Body.genericConfig.contentSearchSpec.chunkSpec.numPreviousChunks == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.maxExtractiveAnswerCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.maxExtractiveSegmentCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.numNextSegments == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.numPreviousSegments == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.returnExtractiveSegmentScore == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.searchResultMode == enum_GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSearchResultMode[_]
    input.Body.genericConfig.contentSearchSpec.snippetSpec.maxSnippetCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.snippetSpec.referenceOnly == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.snippetSpec.returnSnippet == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.includeCitations == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.languageCode == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.modelSpec.version == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.summaryResultCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.ignoreControlIds[_] == STRING
    input.Body.mediaConfig.contentFreshnessCutoffDays == INTEGER
    input.Body.mediaConfig.contentWatchedPercentageThreshold == NUMBER
    input.Body.mediaConfig.contentWatchedSecondsThreshold == NUMBER
    input.Body.mediaConfig.demotionEventType == STRING
    input.Body.modelId == STRING
    input.Body.name == STRING
    input.Body.onewaySynonymsControlIds[_] == STRING
    input.Body.rankingExpression == STRING
    input.Body.redirectControlIds[_] == STRING
    input.Body.replacementControlIds[_] == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1betaServingConfigSolutionType[_]
    input.Body.synonymsControlIds[_] == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.servingConfigs.recommend

valid {
    input.Body.filter == STRING
    input.Body.pageSize == INTEGER
    input.Body.params.STRING == ANY
    input.Body.userEvent.attributes.STRING.numbers[_] == NUMBER
    input.Body.userEvent.attributes.STRING.text[_] == STRING
    input.Body.userEvent.attributionToken == STRING
    input.Body.userEvent.completionInfo.selectedPosition == INTEGER
    input.Body.userEvent.completionInfo.selectedSuggestion == STRING
    input.Body.userEvent.dataStore == STRING
    input.Body.userEvent.directUserRequest == BOOLEAN
    input.Body.userEvent.documents[_].id == STRING
    input.Body.userEvent.documents[_].name == STRING
    input.Body.userEvent.documents[_].promotionIds[_] == STRING
    input.Body.userEvent.documents[_].quantity == INTEGER
    input.Body.userEvent.documents[_].uri == STRING
    input.Body.userEvent.engine == STRING
    input.Body.userEvent.eventTime == STRING
    input.Body.userEvent.eventType == STRING
    input.Body.userEvent.filter == STRING
    input.Body.userEvent.mediaInfo.mediaProgressDuration == STRING
    input.Body.userEvent.mediaInfo.mediaProgressPercentage == NUMBER
    input.Body.userEvent.pageInfo.pageCategory == STRING
    input.Body.userEvent.pageInfo.pageviewId == STRING
    input.Body.userEvent.pageInfo.referrerUri == STRING
    input.Body.userEvent.pageInfo.uri == STRING
    input.Body.userEvent.panel.displayName == STRING
    input.Body.userEvent.panel.panelId == STRING
    input.Body.userEvent.panel.panelPosition == INTEGER
    input.Body.userEvent.panel.totalPanels == INTEGER
    input.Body.userEvent.promotionIds[_] == STRING
    input.Body.userEvent.searchInfo.offset == INTEGER
    input.Body.userEvent.searchInfo.orderBy == STRING
    input.Body.userEvent.searchInfo.searchQuery == STRING
    input.Body.userEvent.sessionId == STRING
    input.Body.userEvent.tagIds[_] == STRING
    input.Body.userEvent.transactionInfo.cost == NUMBER
    input.Body.userEvent.transactionInfo.currency == STRING
    input.Body.userEvent.transactionInfo.discountValue == NUMBER
    input.Body.userEvent.transactionInfo.tax == NUMBER
    input.Body.userEvent.transactionInfo.transactionId == STRING
    input.Body.userEvent.transactionInfo.value == NUMBER
    input.Body.userEvent.userInfo.userAgent == STRING
    input.Body.userEvent.userInfo.userId == STRING
    input.Body.userEvent.userPseudoId == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.validateOnly == BOOLEAN
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.servingConfigs.search

enum_GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestQueryExpansionSpecCondition := [ "CONDITION_UNSPECIFIED", "DISABLED", "AUTO" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestSearchAsYouTypeSpecCondition := [ "CONDITION_UNSPECIFIED", "DISABLED", "ENABLED" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestSpellCorrectionSpecMode := [ "MODE_UNSPECIFIED", "SUGGESTION_ONLY", "AUTO" ]

valid {
    input.Body.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.branch == STRING
    input.Body.canonicalFilter == STRING
    input.Body.contentSearchSpec.chunkSpec.numNextChunks == INTEGER
    input.Body.contentSearchSpec.chunkSpec.numPreviousChunks == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.maxExtractiveAnswerCount == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.maxExtractiveSegmentCount == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.numNextSegments == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.numPreviousSegments == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.returnExtractiveSegmentScore == BOOLEAN
    input.Body.contentSearchSpec.searchResultMode == enum_GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSearchResultMode[_]
    input.Body.contentSearchSpec.snippetSpec.maxSnippetCount == INTEGER
    input.Body.contentSearchSpec.snippetSpec.referenceOnly == BOOLEAN
    input.Body.contentSearchSpec.snippetSpec.returnSnippet == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.includeCitations == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.languageCode == STRING
    input.Body.contentSearchSpec.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.contentSearchSpec.summarySpec.modelSpec.version == STRING
    input.Body.contentSearchSpec.summarySpec.summaryResultCount == INTEGER
    input.Body.contentSearchSpec.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.dataStoreSpecs[_].dataStore == STRING
    input.Body.facetSpecs[_].enableDynamicPosition == BOOLEAN
    input.Body.facetSpecs[_].excludedFilterKeys[_] == STRING
    input.Body.facetSpecs[_].facetKey.caseInsensitive == BOOLEAN
    input.Body.facetSpecs[_].facetKey.contains[_] == STRING
    input.Body.facetSpecs[_].facetKey.intervals[_].exclusiveMaximum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].exclusiveMinimum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].maximum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].minimum == NUMBER
    input.Body.facetSpecs[_].facetKey.key == STRING
    input.Body.facetSpecs[_].facetKey.orderBy == STRING
    input.Body.facetSpecs[_].facetKey.prefixes[_] == STRING
    input.Body.facetSpecs[_].facetKey.restrictedValues[_] == STRING
    input.Body.facetSpecs[_].limit == INTEGER
    input.Body.filter == STRING
    input.Body.imageQuery.imageBytes == STRING
    input.Body.languageCode == STRING
    input.Body.offset == INTEGER
    input.Body.orderBy == STRING
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.params.STRING == ANY
    input.Body.query == STRING
    input.Body.queryExpansionSpec.condition == enum_GoogleCloudDiscoveryengineV1SearchRequestQueryExpansionSpecCondition[_]
    input.Body.queryExpansionSpec.pinUnexpandedResults == BOOLEAN
    input.Body.safeSearch == BOOLEAN
    input.Body.searchAsYouTypeSpec.condition == enum_GoogleCloudDiscoveryengineV1SearchRequestSearchAsYouTypeSpecCondition[_]
    input.Body.session == STRING
    input.Body.sessionSpec.queryId == STRING
    input.Body.sessionSpec.searchResultPersistenceCount == INTEGER
    input.Body.spellCorrectionSpec.mode == enum_GoogleCloudDiscoveryengineV1SearchRequestSpellCorrectionSpecMode[_]
    input.Body.userInfo.userAgent == STRING
    input.Body.userInfo.userId == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.sessions.answers.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.sessions.create

enum_GoogleCloudDiscoveryengineV1SessionState := [ "STATE_UNSPECIFIED", "IN_PROGRESS" ]

valid {
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1SessionState[_]
    input.Body.turns[_].answer == STRING
    input.Body.turns[_].query.queryId == STRING
    input.Body.turns[_].query.text == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.sessions.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.sessions.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.sessions.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.sessions.patch

enum_GoogleCloudDiscoveryengineV1SessionState := [ "STATE_UNSPECIFIED", "IN_PROGRESS" ]

valid {
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1SessionState[_]
    input.Body.turns[_].answer == STRING
    input.Body.turns[_].query.queryId == STRING
    input.Body.turns[_].query.text == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.batchVerifyTargetSites

valid {
    input.Body.STRING == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.disableAdvancedSiteSearch

valid {
    input.Body.STRING == STRING
    input.ReqMap.siteSearchEngine == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.enableAdvancedSiteSearch

valid {
    input.Body.STRING == STRING
    input.ReqMap.siteSearchEngine == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.fetchDomainVerificationStatus

valid {
    input.ReqMap.siteSearchEngine == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.recrawlUris

valid {
    input.Body.uris[_] == STRING
    input.ReqMap.siteSearchEngine == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.batchCreate

enum_GoogleCloudDiscoveryengineV1TargetSiteType := [ "TYPE_UNSPECIFIED", "INCLUDE", "EXCLUDE" ]

valid {
    input.Body.requests[_].parent == STRING
    input.Body.requests[_].targetSite.exactMatch == BOOLEAN
    input.Body.requests[_].targetSite.providedUriPattern == STRING
    input.Body.requests[_].targetSite.type == enum_GoogleCloudDiscoveryengineV1TargetSiteType[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.create

enum_GoogleCloudDiscoveryengineV1TargetSiteType := [ "TYPE_UNSPECIFIED", "INCLUDE", "EXCLUDE" ]

valid {
    input.Body.exactMatch == BOOLEAN
    input.Body.providedUriPattern == STRING
    input.Body.type == enum_GoogleCloudDiscoveryengineV1TargetSiteType[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.patch

enum_GoogleCloudDiscoveryengineV1TargetSiteType := [ "TYPE_UNSPECIFIED", "INCLUDE", "EXCLUDE" ]

valid {
    input.Body.exactMatch == BOOLEAN
    input.Body.providedUriPattern == STRING
    input.Body.type == enum_GoogleCloudDiscoveryengineV1TargetSiteType[_]
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.import

enum_GoogleCloudDiscoveryengineV1SuggestionDenyListEntryMatchOperator := [ "MATCH_OPERATOR_UNSPECIFIED", "EXACT_MATCH", "CONTAINS" ]

valid {
    input.Body.gcsSource.dataSchema == STRING
    input.Body.gcsSource.inputUris[_] == STRING
    input.Body.inlineSource.entries[_].blockPhrase == STRING
    input.Body.inlineSource.entries[_].matchOperator == enum_GoogleCloudDiscoveryengineV1SuggestionDenyListEntryMatchOperator[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.purge

valid {
    input.Body.STRING == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.trainCustomModel

valid {
    input.Body.errorConfig.gcsPrefix == STRING
    input.Body.gcsTrainingInput.corpusDataPath == STRING
    input.Body.gcsTrainingInput.queryDataPath == STRING
    input.Body.gcsTrainingInput.testDataPath == STRING
    input.Body.gcsTrainingInput.trainDataPath == STRING
    input.Body.modelId == STRING
    input.Body.modelType == STRING
    input.ReqMap.dataStore == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.updateDocumentProcessingConfig

valid {
    input.Body.chunkingConfig.layoutBasedChunkingConfig.chunkSize == INTEGER
    input.Body.chunkingConfig.layoutBasedChunkingConfig.includeAncestorHeadings == BOOLEAN
    input.Body.defaultParsingConfig.digitalParsingConfig.STRING == STRING
    input.Body.defaultParsingConfig.layoutParsingConfig.STRING == STRING
    input.Body.defaultParsingConfig.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.defaultParsingConfig.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.name == STRING
    input.Body.parsingConfigOverrides.STRING.digitalParsingConfig.STRING == STRING
    input.Body.parsingConfigOverrides.STRING.layoutParsingConfig.STRING == STRING
    input.Body.parsingConfigOverrides.STRING.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.parsingConfigOverrides.STRING.ocrParsingConfig.useNativeText == BOOLEAN
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.userEvents.collect

valid {
    input.ReqMap.parent == STRING
    input.Qs.ets == STRING
    input.Qs.uri == STRING
    input.Qs.userEvent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.userEvents.import

valid {
    input.Body.bigquerySource.dataSchema == STRING
    input.Body.bigquerySource.datasetId == STRING
    input.Body.bigquerySource.gcsStagingDir == STRING
    input.Body.bigquerySource.partitionDate.day == INTEGER
    input.Body.bigquerySource.partitionDate.month == INTEGER
    input.Body.bigquerySource.partitionDate.year == INTEGER
    input.Body.bigquerySource.projectId == STRING
    input.Body.bigquerySource.tableId == STRING
    input.Body.errorConfig.gcsPrefix == STRING
    input.Body.gcsSource.dataSchema == STRING
    input.Body.gcsSource.inputUris[_] == STRING
    input.Body.inlineSource.userEvents[_].attributes.STRING.numbers[_] == NUMBER
    input.Body.inlineSource.userEvents[_].attributes.STRING.text[_] == STRING
    input.Body.inlineSource.userEvents[_].attributionToken == STRING
    input.Body.inlineSource.userEvents[_].completionInfo.selectedPosition == INTEGER
    input.Body.inlineSource.userEvents[_].completionInfo.selectedSuggestion == STRING
    input.Body.inlineSource.userEvents[_].dataStore == STRING
    input.Body.inlineSource.userEvents[_].directUserRequest == BOOLEAN
    input.Body.inlineSource.userEvents[_].documents[_].id == STRING
    input.Body.inlineSource.userEvents[_].documents[_].name == STRING
    input.Body.inlineSource.userEvents[_].documents[_].promotionIds[_] == STRING
    input.Body.inlineSource.userEvents[_].documents[_].quantity == INTEGER
    input.Body.inlineSource.userEvents[_].documents[_].uri == STRING
    input.Body.inlineSource.userEvents[_].engine == STRING
    input.Body.inlineSource.userEvents[_].eventTime == STRING
    input.Body.inlineSource.userEvents[_].eventType == STRING
    input.Body.inlineSource.userEvents[_].filter == STRING
    input.Body.inlineSource.userEvents[_].mediaInfo.mediaProgressDuration == STRING
    input.Body.inlineSource.userEvents[_].mediaInfo.mediaProgressPercentage == NUMBER
    input.Body.inlineSource.userEvents[_].pageInfo.pageCategory == STRING
    input.Body.inlineSource.userEvents[_].pageInfo.pageviewId == STRING
    input.Body.inlineSource.userEvents[_].pageInfo.referrerUri == STRING
    input.Body.inlineSource.userEvents[_].pageInfo.uri == STRING
    input.Body.inlineSource.userEvents[_].panel.displayName == STRING
    input.Body.inlineSource.userEvents[_].panel.panelId == STRING
    input.Body.inlineSource.userEvents[_].panel.panelPosition == INTEGER
    input.Body.inlineSource.userEvents[_].panel.totalPanels == INTEGER
    input.Body.inlineSource.userEvents[_].promotionIds[_] == STRING
    input.Body.inlineSource.userEvents[_].searchInfo.offset == INTEGER
    input.Body.inlineSource.userEvents[_].searchInfo.orderBy == STRING
    input.Body.inlineSource.userEvents[_].searchInfo.searchQuery == STRING
    input.Body.inlineSource.userEvents[_].sessionId == STRING
    input.Body.inlineSource.userEvents[_].tagIds[_] == STRING
    input.Body.inlineSource.userEvents[_].transactionInfo.cost == NUMBER
    input.Body.inlineSource.userEvents[_].transactionInfo.currency == STRING
    input.Body.inlineSource.userEvents[_].transactionInfo.discountValue == NUMBER
    input.Body.inlineSource.userEvents[_].transactionInfo.tax == NUMBER
    input.Body.inlineSource.userEvents[_].transactionInfo.transactionId == STRING
    input.Body.inlineSource.userEvents[_].transactionInfo.value == NUMBER
    input.Body.inlineSource.userEvents[_].userInfo.userAgent == STRING
    input.Body.inlineSource.userEvents[_].userInfo.userId == STRING
    input.Body.inlineSource.userEvents[_].userPseudoId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.userEvents.purge

valid {
    input.Body.filter == STRING
    input.Body.force == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.dataStores.userEvents.write

valid {
    input.Body.attributes.STRING.numbers[_] == NUMBER
    input.Body.attributes.STRING.text[_] == STRING
    input.Body.attributionToken == STRING
    input.Body.completionInfo.selectedPosition == INTEGER
    input.Body.completionInfo.selectedSuggestion == STRING
    input.Body.dataStore == STRING
    input.Body.directUserRequest == BOOLEAN
    input.Body.documents[_].id == STRING
    input.Body.documents[_].name == STRING
    input.Body.documents[_].promotionIds[_] == STRING
    input.Body.documents[_].quantity == INTEGER
    input.Body.documents[_].uri == STRING
    input.Body.engine == STRING
    input.Body.eventTime == STRING
    input.Body.eventType == STRING
    input.Body.filter == STRING
    input.Body.mediaInfo.mediaProgressDuration == STRING
    input.Body.mediaInfo.mediaProgressPercentage == NUMBER
    input.Body.pageInfo.pageCategory == STRING
    input.Body.pageInfo.pageviewId == STRING
    input.Body.pageInfo.referrerUri == STRING
    input.Body.pageInfo.uri == STRING
    input.Body.panel.displayName == STRING
    input.Body.panel.panelId == STRING
    input.Body.panel.panelPosition == INTEGER
    input.Body.panel.totalPanels == INTEGER
    input.Body.promotionIds[_] == STRING
    input.Body.searchInfo.offset == INTEGER
    input.Body.searchInfo.orderBy == STRING
    input.Body.searchInfo.searchQuery == STRING
    input.Body.sessionId == STRING
    input.Body.tagIds[_] == STRING
    input.Body.transactionInfo.cost == NUMBER
    input.Body.transactionInfo.currency == STRING
    input.Body.transactionInfo.discountValue == NUMBER
    input.Body.transactionInfo.tax == NUMBER
    input.Body.transactionInfo.transactionId == STRING
    input.Body.transactionInfo.value == NUMBER
    input.Body.userInfo.userAgent == STRING
    input.Body.userInfo.userId == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.parent == STRING
    input.Qs.writeAsync == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.controls.create

enum_GoogleCloudDiscoveryengineV1ControlSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]
enum_GoogleCloudDiscoveryengineV1ControlUseCases := [ "SEARCH_USE_CASE_UNSPECIFIED", "SEARCH_USE_CASE_SEARCH", "SEARCH_USE_CASE_BROWSE" ]

valid {
    input.Body.boostAction.boost == NUMBER
    input.Body.boostAction.dataStore == STRING
    input.Body.boostAction.filter == STRING
    input.Body.conditions[_].activeTimeRange[_].endTime == STRING
    input.Body.conditions[_].activeTimeRange[_].startTime == STRING
    input.Body.conditions[_].queryTerms[_].fullMatch == BOOLEAN
    input.Body.conditions[_].queryTerms[_].value == STRING
    input.Body.displayName == STRING
    input.Body.filterAction.dataStore == STRING
    input.Body.filterAction.filter == STRING
    input.Body.name == STRING
    input.Body.redirectAction.redirectUri == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1ControlSolutionType[_]
    input.Body.synonymsAction.synonyms[_] == STRING
    input.Body.useCases[_] == enum_GoogleCloudDiscoveryengineV1ControlUseCases[_]
    input.ReqMap.parent == STRING
    input.Qs.controlId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.controls.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.controls.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.controls.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.controls.patch

enum_GoogleCloudDiscoveryengineV1ControlSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]
enum_GoogleCloudDiscoveryengineV1ControlUseCases := [ "SEARCH_USE_CASE_UNSPECIFIED", "SEARCH_USE_CASE_SEARCH", "SEARCH_USE_CASE_BROWSE" ]

valid {
    input.Body.boostAction.boost == NUMBER
    input.Body.boostAction.dataStore == STRING
    input.Body.boostAction.filter == STRING
    input.Body.conditions[_].activeTimeRange[_].endTime == STRING
    input.Body.conditions[_].activeTimeRange[_].startTime == STRING
    input.Body.conditions[_].queryTerms[_].fullMatch == BOOLEAN
    input.Body.conditions[_].queryTerms[_].value == STRING
    input.Body.displayName == STRING
    input.Body.filterAction.dataStore == STRING
    input.Body.filterAction.filter == STRING
    input.Body.name == STRING
    input.Body.redirectAction.redirectUri == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1ControlSolutionType[_]
    input.Body.synonymsAction.synonyms[_] == STRING
    input.Body.useCases[_] == enum_GoogleCloudDiscoveryengineV1ControlUseCases[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.conversations.converse

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.conversation.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.conversation.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.conversation.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.conversation.messages[_].reply.summary.summaryText == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.conversation.messages[_].userInput.context.activeDocument == STRING
    input.Body.conversation.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.conversation.messages[_].userInput.input == STRING
    input.Body.conversation.name == STRING
    input.Body.conversation.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.conversation.userPseudoId == STRING
    input.Body.filter == STRING
    input.Body.query.context.activeDocument == STRING
    input.Body.query.context.contextDocuments[_] == STRING
    input.Body.query.input == STRING
    input.Body.safeSearch == BOOLEAN
    input.Body.servingConfig == STRING
    input.Body.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.summarySpec.includeCitations == BOOLEAN
    input.Body.summarySpec.languageCode == STRING
    input.Body.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.summarySpec.modelSpec.version == STRING
    input.Body.summarySpec.summaryResultCount == INTEGER
    input.Body.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.userLabels.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.conversations.create

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.messages[_].reply.summary.summaryText == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.messages[_].userInput.context.activeDocument == STRING
    input.Body.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.messages[_].userInput.input == STRING
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.userPseudoId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.conversations.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.conversations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.conversations.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.conversations.patch

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.messages[_].reply.summary.summaryText == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.messages[_].userInput.context.activeDocument == STRING
    input.Body.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.messages[_].userInput.input == STRING
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.userPseudoId == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.create

enum_GoogleCloudDiscoveryengineV1EngineIndustryVertical := [ "INDUSTRY_VERTICAL_UNSPECIFIED", "GENERIC", "MEDIA", "HEALTHCARE_FHIR" ]
enum_GoogleCloudDiscoveryengineV1EngineSearchEngineConfigSearchAddOns := [ "SEARCH_ADD_ON_UNSPECIFIED", "SEARCH_ADD_ON_LLM" ]
enum_GoogleCloudDiscoveryengineV1EngineSearchEngineConfigSearchTier := [ "SEARCH_TIER_UNSPECIFIED", "SEARCH_TIER_STANDARD", "SEARCH_TIER_ENTERPRISE" ]
enum_GoogleCloudDiscoveryengineV1EngineSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.chatEngineConfig.agentCreationConfig.business == STRING
    input.Body.chatEngineConfig.agentCreationConfig.defaultLanguageCode == STRING
    input.Body.chatEngineConfig.agentCreationConfig.location == STRING
    input.Body.chatEngineConfig.agentCreationConfig.timeZone == STRING
    input.Body.chatEngineConfig.dialogflowAgentToLink == STRING
    input.Body.commonConfig.companyName == STRING
    input.Body.dataStoreIds[_] == STRING
    input.Body.displayName == STRING
    input.Body.industryVertical == enum_GoogleCloudDiscoveryengineV1EngineIndustryVertical[_]
    input.Body.name == STRING
    input.Body.searchEngineConfig.searchAddOns[_] == enum_GoogleCloudDiscoveryengineV1EngineSearchEngineConfigSearchAddOns[_]
    input.Body.searchEngineConfig.searchTier == enum_GoogleCloudDiscoveryengineV1EngineSearchEngineConfigSearchTier[_]
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1EngineSolutionType[_]
    input.ReqMap.parent == STRING
    input.Qs.engineId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.patch

enum_GoogleCloudDiscoveryengineV1EngineIndustryVertical := [ "INDUSTRY_VERTICAL_UNSPECIFIED", "GENERIC", "MEDIA", "HEALTHCARE_FHIR" ]
enum_GoogleCloudDiscoveryengineV1EngineSearchEngineConfigSearchAddOns := [ "SEARCH_ADD_ON_UNSPECIFIED", "SEARCH_ADD_ON_LLM" ]
enum_GoogleCloudDiscoveryengineV1EngineSearchEngineConfigSearchTier := [ "SEARCH_TIER_UNSPECIFIED", "SEARCH_TIER_STANDARD", "SEARCH_TIER_ENTERPRISE" ]
enum_GoogleCloudDiscoveryengineV1EngineSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.chatEngineConfig.agentCreationConfig.business == STRING
    input.Body.chatEngineConfig.agentCreationConfig.defaultLanguageCode == STRING
    input.Body.chatEngineConfig.agentCreationConfig.location == STRING
    input.Body.chatEngineConfig.agentCreationConfig.timeZone == STRING
    input.Body.chatEngineConfig.dialogflowAgentToLink == STRING
    input.Body.commonConfig.companyName == STRING
    input.Body.dataStoreIds[_] == STRING
    input.Body.displayName == STRING
    input.Body.industryVertical == enum_GoogleCloudDiscoveryengineV1EngineIndustryVertical[_]
    input.Body.name == STRING
    input.Body.searchEngineConfig.searchAddOns[_] == enum_GoogleCloudDiscoveryengineV1EngineSearchEngineConfigSearchAddOns[_]
    input.Body.searchEngineConfig.searchTier == enum_GoogleCloudDiscoveryengineV1EngineSearchEngineConfigSearchTier[_]
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1EngineSolutionType[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.pause

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.resume

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.servingConfigs.answer

enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestQueryUnderstandingSpecQueryClassificationSpecTypes := [ "TYPE_UNSPECIFIED", "ADVERSARIAL_QUERY", "NON_ANSWER_SEEKING_QUERY" ]
enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestSearchSpecSearchParamsSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]

valid {
    input.Body.answerGenerationSpec.answerLanguageCode == STRING
    input.Body.answerGenerationSpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.answerGenerationSpec.ignoreLowRelevantContent == BOOLEAN
    input.Body.answerGenerationSpec.ignoreNonAnswerSeekingQuery == BOOLEAN
    input.Body.answerGenerationSpec.includeCitations == BOOLEAN
    input.Body.answerGenerationSpec.modelSpec.modelVersion == STRING
    input.Body.answerGenerationSpec.promptSpec.preamble == STRING
    input.Body.asynchronousMode == BOOLEAN
    input.Body.query.queryId == STRING
    input.Body.query.text == STRING
    input.Body.queryUnderstandingSpec.queryClassificationSpec.types[_] == enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestQueryUnderstandingSpecQueryClassificationSpecTypes[_]
    input.Body.queryUnderstandingSpec.queryRephraserSpec.disable == BOOLEAN
    input.Body.queryUnderstandingSpec.queryRephraserSpec.maxRephraseSteps == INTEGER
    input.Body.relatedQuestionsSpec.enable == BOOLEAN
    input.Body.safetySpec.enable == BOOLEAN
    input.Body.searchSpec.searchParams.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.searchSpec.searchParams.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.searchSpec.searchParams.dataStoreSpecs[_].dataStore == STRING
    input.Body.searchSpec.searchParams.filter == STRING
    input.Body.searchSpec.searchParams.maxReturnResults == INTEGER
    input.Body.searchSpec.searchParams.orderBy == STRING
    input.Body.searchSpec.searchParams.searchResultMode == enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestSearchSpecSearchParamsSearchResultMode[_]
    input.Body.searchSpec.searchResultList.searchResults[_].chunkInfo.chunk == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].chunkInfo.content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.document == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.documentContexts[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.documentContexts[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveAnswers[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveAnswers[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveSegments[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveSegments[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.title == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.uri == STRING
    input.Body.session == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.servingConfigs.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.servingConfigs.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.servingConfigs.patch

enum_GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]
enum_GoogleCloudDiscoveryengineV1betaServingConfigSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.boostControlIds[_] == STRING
    input.Body.displayName == STRING
    input.Body.dissociateControlIds[_] == STRING
    input.Body.diversityLevel == STRING
    input.Body.embeddingConfig.fieldPath == STRING
    input.Body.filterControlIds[_] == STRING
    input.Body.genericConfig.contentSearchSpec.chunkSpec.numNextChunks == INTEGER
    input.Body.genericConfig.contentSearchSpec.chunkSpec.numPreviousChunks == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.maxExtractiveAnswerCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.maxExtractiveSegmentCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.numNextSegments == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.numPreviousSegments == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.returnExtractiveSegmentScore == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.searchResultMode == enum_GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSearchResultMode[_]
    input.Body.genericConfig.contentSearchSpec.snippetSpec.maxSnippetCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.snippetSpec.referenceOnly == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.snippetSpec.returnSnippet == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.includeCitations == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.languageCode == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.modelSpec.version == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.summaryResultCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.ignoreControlIds[_] == STRING
    input.Body.mediaConfig.contentFreshnessCutoffDays == INTEGER
    input.Body.mediaConfig.contentWatchedPercentageThreshold == NUMBER
    input.Body.mediaConfig.contentWatchedSecondsThreshold == NUMBER
    input.Body.mediaConfig.demotionEventType == STRING
    input.Body.modelId == STRING
    input.Body.name == STRING
    input.Body.onewaySynonymsControlIds[_] == STRING
    input.Body.rankingExpression == STRING
    input.Body.redirectControlIds[_] == STRING
    input.Body.replacementControlIds[_] == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1betaServingConfigSolutionType[_]
    input.Body.synonymsControlIds[_] == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.servingConfigs.recommend

valid {
    input.Body.filter == STRING
    input.Body.pageSize == INTEGER
    input.Body.params.STRING == ANY
    input.Body.userEvent.attributes.STRING.numbers[_] == NUMBER
    input.Body.userEvent.attributes.STRING.text[_] == STRING
    input.Body.userEvent.attributionToken == STRING
    input.Body.userEvent.completionInfo.selectedPosition == INTEGER
    input.Body.userEvent.completionInfo.selectedSuggestion == STRING
    input.Body.userEvent.dataStore == STRING
    input.Body.userEvent.directUserRequest == BOOLEAN
    input.Body.userEvent.documents[_].id == STRING
    input.Body.userEvent.documents[_].name == STRING
    input.Body.userEvent.documents[_].promotionIds[_] == STRING
    input.Body.userEvent.documents[_].quantity == INTEGER
    input.Body.userEvent.documents[_].uri == STRING
    input.Body.userEvent.engine == STRING
    input.Body.userEvent.eventTime == STRING
    input.Body.userEvent.eventType == STRING
    input.Body.userEvent.filter == STRING
    input.Body.userEvent.mediaInfo.mediaProgressDuration == STRING
    input.Body.userEvent.mediaInfo.mediaProgressPercentage == NUMBER
    input.Body.userEvent.pageInfo.pageCategory == STRING
    input.Body.userEvent.pageInfo.pageviewId == STRING
    input.Body.userEvent.pageInfo.referrerUri == STRING
    input.Body.userEvent.pageInfo.uri == STRING
    input.Body.userEvent.panel.displayName == STRING
    input.Body.userEvent.panel.panelId == STRING
    input.Body.userEvent.panel.panelPosition == INTEGER
    input.Body.userEvent.panel.totalPanels == INTEGER
    input.Body.userEvent.promotionIds[_] == STRING
    input.Body.userEvent.searchInfo.offset == INTEGER
    input.Body.userEvent.searchInfo.orderBy == STRING
    input.Body.userEvent.searchInfo.searchQuery == STRING
    input.Body.userEvent.sessionId == STRING
    input.Body.userEvent.tagIds[_] == STRING
    input.Body.userEvent.transactionInfo.cost == NUMBER
    input.Body.userEvent.transactionInfo.currency == STRING
    input.Body.userEvent.transactionInfo.discountValue == NUMBER
    input.Body.userEvent.transactionInfo.tax == NUMBER
    input.Body.userEvent.transactionInfo.transactionId == STRING
    input.Body.userEvent.transactionInfo.value == NUMBER
    input.Body.userEvent.userInfo.userAgent == STRING
    input.Body.userEvent.userInfo.userId == STRING
    input.Body.userEvent.userPseudoId == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.validateOnly == BOOLEAN
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.servingConfigs.search

enum_GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestQueryExpansionSpecCondition := [ "CONDITION_UNSPECIFIED", "DISABLED", "AUTO" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestSearchAsYouTypeSpecCondition := [ "CONDITION_UNSPECIFIED", "DISABLED", "ENABLED" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestSpellCorrectionSpecMode := [ "MODE_UNSPECIFIED", "SUGGESTION_ONLY", "AUTO" ]

valid {
    input.Body.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.branch == STRING
    input.Body.canonicalFilter == STRING
    input.Body.contentSearchSpec.chunkSpec.numNextChunks == INTEGER
    input.Body.contentSearchSpec.chunkSpec.numPreviousChunks == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.maxExtractiveAnswerCount == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.maxExtractiveSegmentCount == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.numNextSegments == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.numPreviousSegments == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.returnExtractiveSegmentScore == BOOLEAN
    input.Body.contentSearchSpec.searchResultMode == enum_GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSearchResultMode[_]
    input.Body.contentSearchSpec.snippetSpec.maxSnippetCount == INTEGER
    input.Body.contentSearchSpec.snippetSpec.referenceOnly == BOOLEAN
    input.Body.contentSearchSpec.snippetSpec.returnSnippet == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.includeCitations == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.languageCode == STRING
    input.Body.contentSearchSpec.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.contentSearchSpec.summarySpec.modelSpec.version == STRING
    input.Body.contentSearchSpec.summarySpec.summaryResultCount == INTEGER
    input.Body.contentSearchSpec.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.dataStoreSpecs[_].dataStore == STRING
    input.Body.facetSpecs[_].enableDynamicPosition == BOOLEAN
    input.Body.facetSpecs[_].excludedFilterKeys[_] == STRING
    input.Body.facetSpecs[_].facetKey.caseInsensitive == BOOLEAN
    input.Body.facetSpecs[_].facetKey.contains[_] == STRING
    input.Body.facetSpecs[_].facetKey.intervals[_].exclusiveMaximum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].exclusiveMinimum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].maximum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].minimum == NUMBER
    input.Body.facetSpecs[_].facetKey.key == STRING
    input.Body.facetSpecs[_].facetKey.orderBy == STRING
    input.Body.facetSpecs[_].facetKey.prefixes[_] == STRING
    input.Body.facetSpecs[_].facetKey.restrictedValues[_] == STRING
    input.Body.facetSpecs[_].limit == INTEGER
    input.Body.filter == STRING
    input.Body.imageQuery.imageBytes == STRING
    input.Body.languageCode == STRING
    input.Body.offset == INTEGER
    input.Body.orderBy == STRING
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.params.STRING == ANY
    input.Body.query == STRING
    input.Body.queryExpansionSpec.condition == enum_GoogleCloudDiscoveryengineV1SearchRequestQueryExpansionSpecCondition[_]
    input.Body.queryExpansionSpec.pinUnexpandedResults == BOOLEAN
    input.Body.safeSearch == BOOLEAN
    input.Body.searchAsYouTypeSpec.condition == enum_GoogleCloudDiscoveryengineV1SearchRequestSearchAsYouTypeSpecCondition[_]
    input.Body.session == STRING
    input.Body.sessionSpec.queryId == STRING
    input.Body.sessionSpec.searchResultPersistenceCount == INTEGER
    input.Body.spellCorrectionSpec.mode == enum_GoogleCloudDiscoveryengineV1SearchRequestSpellCorrectionSpecMode[_]
    input.Body.userInfo.userAgent == STRING
    input.Body.userInfo.userId == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.sessions.answers.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.sessions.create

enum_GoogleCloudDiscoveryengineV1SessionState := [ "STATE_UNSPECIFIED", "IN_PROGRESS" ]

valid {
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1SessionState[_]
    input.Body.turns[_].answer == STRING
    input.Body.turns[_].query.queryId == STRING
    input.Body.turns[_].query.text == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.sessions.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.sessions.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.sessions.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.sessions.patch

enum_GoogleCloudDiscoveryengineV1SessionState := [ "STATE_UNSPECIFIED", "IN_PROGRESS" ]

valid {
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1SessionState[_]
    input.Body.turns[_].answer == STRING
    input.Body.turns[_].query.queryId == STRING
    input.Body.turns[_].query.text == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.engines.tune

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.collections.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.chunks.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.chunks.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.create

valid {
    input.Body.content.mimeType == STRING
    input.Body.content.rawBytes == STRING
    input.Body.content.uri == STRING
    input.Body.id == STRING
    input.Body.jsonData == STRING
    input.Body.name == STRING
    input.Body.parentDocumentId == STRING
    input.Body.schemaId == STRING
    input.Body.structData.STRING == ANY
    input.ReqMap.parent == STRING
    input.Qs.documentId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.getProcessedDocument

enum_ProcessedDocumentFormatParameter := [ "PROCESSED_DOCUMENT_FORMAT_UNSPECIFIED", "JSON" ]
enum_ProcessedDocumentTypeParameter := [ "PROCESSED_DOCUMENT_TYPE_UNSPECIFIED", "PARSED_DOCUMENT", "CHUNKED_DOCUMENT", "IMAGE_CONVERTED_DOCUMENT" ]

valid {
    input.ReqMap.name == STRING
    input.Qs.processedDocumentFormat == enum_ProcessedDocumentFormatParameter[_]
    input.Qs.processedDocumentType == enum_ProcessedDocumentTypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.import

enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnEncoding := [ "ENCODING_UNSPECIFIED", "TEXT", "BINARY" ]
enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnFamilyEncoding := [ "ENCODING_UNSPECIFIED", "TEXT", "BINARY" ]
enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnFamilyType := [ "TYPE_UNSPECIFIED", "STRING", "NUMBER", "INTEGER", "VAR_INTEGER", "BIG_NUMERIC", "BOOLEAN", "JSON" ]
enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnType := [ "TYPE_UNSPECIFIED", "STRING", "NUMBER", "INTEGER", "VAR_INTEGER", "BIG_NUMERIC", "BOOLEAN", "JSON" ]
enum_GoogleCloudDiscoveryengineV1ImportDocumentsRequestReconciliationMode := [ "RECONCILIATION_MODE_UNSPECIFIED", "INCREMENTAL", "FULL" ]

valid {
    input.Body.alloyDbSource.clusterId == STRING
    input.Body.alloyDbSource.databaseId == STRING
    input.Body.alloyDbSource.gcsStagingDir == STRING
    input.Body.alloyDbSource.locationId == STRING
    input.Body.alloyDbSource.projectId == STRING
    input.Body.alloyDbSource.tableId == STRING
    input.Body.autoGenerateIds == BOOLEAN
    input.Body.bigquerySource.dataSchema == STRING
    input.Body.bigquerySource.datasetId == STRING
    input.Body.bigquerySource.gcsStagingDir == STRING
    input.Body.bigquerySource.partitionDate.day == INTEGER
    input.Body.bigquerySource.partitionDate.month == INTEGER
    input.Body.bigquerySource.partitionDate.year == INTEGER
    input.Body.bigquerySource.projectId == STRING
    input.Body.bigquerySource.tableId == STRING
    input.Body.bigtableSource.bigtableOptions.families.STRING.columns[_].encoding == enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnEncoding[_]
    input.Body.bigtableSource.bigtableOptions.families.STRING.columns[_].fieldName == STRING
    input.Body.bigtableSource.bigtableOptions.families.STRING.columns[_].qualifier == STRING
    input.Body.bigtableSource.bigtableOptions.families.STRING.columns[_].type == enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnType[_]
    input.Body.bigtableSource.bigtableOptions.families.STRING.encoding == enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnFamilyEncoding[_]
    input.Body.bigtableSource.bigtableOptions.families.STRING.fieldName == STRING
    input.Body.bigtableSource.bigtableOptions.families.STRING.type == enum_GoogleCloudDiscoveryengineV1BigtableOptionsBigtableColumnFamilyType[_]
    input.Body.bigtableSource.bigtableOptions.keyFieldName == STRING
    input.Body.bigtableSource.instanceId == STRING
    input.Body.bigtableSource.projectId == STRING
    input.Body.bigtableSource.tableId == STRING
    input.Body.cloudSqlSource.databaseId == STRING
    input.Body.cloudSqlSource.gcsStagingDir == STRING
    input.Body.cloudSqlSource.instanceId == STRING
    input.Body.cloudSqlSource.offload == BOOLEAN
    input.Body.cloudSqlSource.projectId == STRING
    input.Body.cloudSqlSource.tableId == STRING
    input.Body.errorConfig.gcsPrefix == STRING
    input.Body.fhirStoreSource.fhirStore == STRING
    input.Body.fhirStoreSource.gcsStagingDir == STRING
    input.Body.firestoreSource.collectionId == STRING
    input.Body.firestoreSource.databaseId == STRING
    input.Body.firestoreSource.gcsStagingDir == STRING
    input.Body.firestoreSource.projectId == STRING
    input.Body.gcsSource.dataSchema == STRING
    input.Body.gcsSource.inputUris[_] == STRING
    input.Body.idField == STRING
    input.Body.inlineSource.documents[_].content.mimeType == STRING
    input.Body.inlineSource.documents[_].content.rawBytes == STRING
    input.Body.inlineSource.documents[_].content.uri == STRING
    input.Body.inlineSource.documents[_].id == STRING
    input.Body.inlineSource.documents[_].jsonData == STRING
    input.Body.inlineSource.documents[_].name == STRING
    input.Body.inlineSource.documents[_].parentDocumentId == STRING
    input.Body.inlineSource.documents[_].schemaId == STRING
    input.Body.inlineSource.documents[_].structData.STRING == ANY
    input.Body.reconciliationMode == enum_GoogleCloudDiscoveryengineV1ImportDocumentsRequestReconciliationMode[_]
    input.Body.spannerSource.databaseId == STRING
    input.Body.spannerSource.enableDataBoost == BOOLEAN
    input.Body.spannerSource.instanceId == STRING
    input.Body.spannerSource.projectId == STRING
    input.Body.spannerSource.tableId == STRING
    input.Body.updateMask == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.patch

valid {
    input.Body.content.mimeType == STRING
    input.Body.content.rawBytes == STRING
    input.Body.content.uri == STRING
    input.Body.id == STRING
    input.Body.jsonData == STRING
    input.Body.name == STRING
    input.Body.parentDocumentId == STRING
    input.Body.schemaId == STRING
    input.Body.structData.STRING == ANY
    input.ReqMap.name == STRING
    input.Qs.allowMissing == BOOLEAN
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.documents.purge

valid {
    input.Body.filter == STRING
    input.Body.force == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.operations.cancel

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.branches.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.completeQuery

valid {
    input.ReqMap.dataStore == STRING
    input.Qs.includeTailSuggestions == BOOLEAN
    input.Qs.query == STRING
    input.Qs.queryModel == STRING
    input.Qs.userPseudoId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.completionSuggestions.import

valid {
    input.Body.bigquerySource.dataSchema == STRING
    input.Body.bigquerySource.datasetId == STRING
    input.Body.bigquerySource.gcsStagingDir == STRING
    input.Body.bigquerySource.partitionDate.day == INTEGER
    input.Body.bigquerySource.partitionDate.month == INTEGER
    input.Body.bigquerySource.partitionDate.year == INTEGER
    input.Body.bigquerySource.projectId == STRING
    input.Body.bigquerySource.tableId == STRING
    input.Body.errorConfig.gcsPrefix == STRING
    input.Body.gcsSource.dataSchema == STRING
    input.Body.gcsSource.inputUris[_] == STRING
    input.Body.inlineSource.suggestions[_].alternativePhrases[_] == STRING
    input.Body.inlineSource.suggestions[_].frequency == STRING
    input.Body.inlineSource.suggestions[_].globalScore == NUMBER
    input.Body.inlineSource.suggestions[_].groupId == STRING
    input.Body.inlineSource.suggestions[_].groupScore == NUMBER
    input.Body.inlineSource.suggestions[_].languageCode == STRING
    input.Body.inlineSource.suggestions[_].suggestion == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.completionSuggestions.purge

valid {
    input.Body.STRING == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.controls.create

enum_GoogleCloudDiscoveryengineV1ControlSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]
enum_GoogleCloudDiscoveryengineV1ControlUseCases := [ "SEARCH_USE_CASE_UNSPECIFIED", "SEARCH_USE_CASE_SEARCH", "SEARCH_USE_CASE_BROWSE" ]

valid {
    input.Body.boostAction.boost == NUMBER
    input.Body.boostAction.dataStore == STRING
    input.Body.boostAction.filter == STRING
    input.Body.conditions[_].activeTimeRange[_].endTime == STRING
    input.Body.conditions[_].activeTimeRange[_].startTime == STRING
    input.Body.conditions[_].queryTerms[_].fullMatch == BOOLEAN
    input.Body.conditions[_].queryTerms[_].value == STRING
    input.Body.displayName == STRING
    input.Body.filterAction.dataStore == STRING
    input.Body.filterAction.filter == STRING
    input.Body.name == STRING
    input.Body.redirectAction.redirectUri == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1ControlSolutionType[_]
    input.Body.synonymsAction.synonyms[_] == STRING
    input.Body.useCases[_] == enum_GoogleCloudDiscoveryengineV1ControlUseCases[_]
    input.ReqMap.parent == STRING
    input.Qs.controlId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.controls.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.controls.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.controls.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.controls.patch

enum_GoogleCloudDiscoveryengineV1ControlSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]
enum_GoogleCloudDiscoveryengineV1ControlUseCases := [ "SEARCH_USE_CASE_UNSPECIFIED", "SEARCH_USE_CASE_SEARCH", "SEARCH_USE_CASE_BROWSE" ]

valid {
    input.Body.boostAction.boost == NUMBER
    input.Body.boostAction.dataStore == STRING
    input.Body.boostAction.filter == STRING
    input.Body.conditions[_].activeTimeRange[_].endTime == STRING
    input.Body.conditions[_].activeTimeRange[_].startTime == STRING
    input.Body.conditions[_].queryTerms[_].fullMatch == BOOLEAN
    input.Body.conditions[_].queryTerms[_].value == STRING
    input.Body.displayName == STRING
    input.Body.filterAction.dataStore == STRING
    input.Body.filterAction.filter == STRING
    input.Body.name == STRING
    input.Body.redirectAction.redirectUri == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1ControlSolutionType[_]
    input.Body.synonymsAction.synonyms[_] == STRING
    input.Body.useCases[_] == enum_GoogleCloudDiscoveryengineV1ControlUseCases[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.conversations.converse

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.conversation.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.conversation.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.conversation.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.conversation.messages[_].reply.summary.summaryText == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.conversation.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.conversation.messages[_].userInput.context.activeDocument == STRING
    input.Body.conversation.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.conversation.messages[_].userInput.input == STRING
    input.Body.conversation.name == STRING
    input.Body.conversation.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.conversation.userPseudoId == STRING
    input.Body.filter == STRING
    input.Body.query.context.activeDocument == STRING
    input.Body.query.context.contextDocuments[_] == STRING
    input.Body.query.input == STRING
    input.Body.safeSearch == BOOLEAN
    input.Body.servingConfig == STRING
    input.Body.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.summarySpec.includeCitations == BOOLEAN
    input.Body.summarySpec.languageCode == STRING
    input.Body.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.summarySpec.modelSpec.version == STRING
    input.Body.summarySpec.summaryResultCount == INTEGER
    input.Body.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.userLabels.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.conversations.create

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.messages[_].reply.summary.summaryText == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.messages[_].userInput.context.activeDocument == STRING
    input.Body.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.messages[_].userInput.input == STRING
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.userPseudoId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.conversations.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.conversations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.conversations.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.conversations.patch

enum_GoogleCloudDiscoveryengineV1ConversationState := [ "STATE_UNSPECIFIED", "IN_PROGRESS", "COMPLETED" ]
enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons := [ "SUMMARY_SKIPPED_REASON_UNSPECIFIED", "ADVERSARIAL_QUERY_IGNORED", "NON_SUMMARY_SEEKING_QUERY_IGNORED", "OUT_OF_DOMAIN_QUERY_IGNORED", "POTENTIAL_POLICY_VIOLATION", "LLM_ADDON_NOT_ENABLED" ]

valid {
    input.Body.messages[_].reply.summary.safetyAttributes.categories[_] == STRING
    input.Body.messages[_].reply.summary.safetyAttributes.scores[_] == NUMBER
    input.Body.messages[_].reply.summary.summarySkippedReasons[_] == enum_GoogleCloudDiscoveryengineV1SearchResponseSummarySummarySkippedReasons[_]
    input.Body.messages[_].reply.summary.summaryText == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].endIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].sources[_].referenceIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.citationMetadata.citations[_].startIndex == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].content == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].chunkContents[_].pageIdentifier == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].document == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].title == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.references[_].uri == STRING
    input.Body.messages[_].reply.summary.summaryWithMetadata.summary == STRING
    input.Body.messages[_].userInput.context.activeDocument == STRING
    input.Body.messages[_].userInput.context.contextDocuments[_] == STRING
    input.Body.messages[_].userInput.input == STRING
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1ConversationState[_]
    input.Body.userPseudoId == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.create

enum_GoogleCloudDiscoveryengineV1DataStoreContentConfig := [ "CONTENT_CONFIG_UNSPECIFIED", "NO_CONTENT", "CONTENT_REQUIRED", "PUBLIC_WEBSITE" ]
enum_GoogleCloudDiscoveryengineV1DataStoreIndustryVertical := [ "INDUSTRY_VERTICAL_UNSPECIFIED", "GENERIC", "MEDIA", "HEALTHCARE_FHIR" ]
enum_GoogleCloudDiscoveryengineV1DataStoreSolutionTypes := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.contentConfig == enum_GoogleCloudDiscoveryengineV1DataStoreContentConfig[_]
    input.Body.displayName == STRING
    input.Body.documentProcessingConfig.chunkingConfig.layoutBasedChunkingConfig.chunkSize == INTEGER
    input.Body.documentProcessingConfig.chunkingConfig.layoutBasedChunkingConfig.includeAncestorHeadings == BOOLEAN
    input.Body.documentProcessingConfig.defaultParsingConfig.digitalParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.layoutParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.documentProcessingConfig.name == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.digitalParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.layoutParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.industryVertical == enum_GoogleCloudDiscoveryengineV1DataStoreIndustryVertical[_]
    input.Body.name == STRING
    input.Body.solutionTypes[_] == enum_GoogleCloudDiscoveryengineV1DataStoreSolutionTypes[_]
    input.Body.startingSchema.jsonSchema == STRING
    input.Body.startingSchema.name == STRING
    input.Body.startingSchema.structSchema.STRING == ANY
    input.ReqMap.parent == STRING
    input.Qs.createAdvancedSiteSearch == BOOLEAN
    input.Qs.dataStoreId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.getDocumentProcessingConfig

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.getSiteSearchEngine

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.models.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.models.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.patch

enum_GoogleCloudDiscoveryengineV1DataStoreContentConfig := [ "CONTENT_CONFIG_UNSPECIFIED", "NO_CONTENT", "CONTENT_REQUIRED", "PUBLIC_WEBSITE" ]
enum_GoogleCloudDiscoveryengineV1DataStoreIndustryVertical := [ "INDUSTRY_VERTICAL_UNSPECIFIED", "GENERIC", "MEDIA", "HEALTHCARE_FHIR" ]
enum_GoogleCloudDiscoveryengineV1DataStoreSolutionTypes := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.contentConfig == enum_GoogleCloudDiscoveryengineV1DataStoreContentConfig[_]
    input.Body.displayName == STRING
    input.Body.documentProcessingConfig.chunkingConfig.layoutBasedChunkingConfig.chunkSize == INTEGER
    input.Body.documentProcessingConfig.chunkingConfig.layoutBasedChunkingConfig.includeAncestorHeadings == BOOLEAN
    input.Body.documentProcessingConfig.defaultParsingConfig.digitalParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.layoutParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.documentProcessingConfig.defaultParsingConfig.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.documentProcessingConfig.name == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.digitalParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.layoutParsingConfig.STRING == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.ocrParsingConfig.enhancedDocumentElements[_] == STRING
    input.Body.documentProcessingConfig.parsingConfigOverrides.STRING.ocrParsingConfig.useNativeText == BOOLEAN
    input.Body.industryVertical == enum_GoogleCloudDiscoveryengineV1DataStoreIndustryVertical[_]
    input.Body.name == STRING
    input.Body.solutionTypes[_] == enum_GoogleCloudDiscoveryengineV1DataStoreSolutionTypes[_]
    input.Body.startingSchema.jsonSchema == STRING
    input.Body.startingSchema.name == STRING
    input.Body.startingSchema.structSchema.STRING == ANY
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.schemas.create

valid {
    input.Body.jsonSchema == STRING
    input.Body.name == STRING
    input.Body.structSchema.STRING == ANY
    input.ReqMap.parent == STRING
    input.Qs.schemaId == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.schemas.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.schemas.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.schemas.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.schemas.patch

valid {
    input.Body.jsonSchema == STRING
    input.Body.name == STRING
    input.Body.structSchema.STRING == ANY
    input.ReqMap.name == STRING
    input.Qs.allowMissing == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.servingConfigs.answer

enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestQueryUnderstandingSpecQueryClassificationSpecTypes := [ "TYPE_UNSPECIFIED", "ADVERSARIAL_QUERY", "NON_ANSWER_SEEKING_QUERY" ]
enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestSearchSpecSearchParamsSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]

valid {
    input.Body.answerGenerationSpec.answerLanguageCode == STRING
    input.Body.answerGenerationSpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.answerGenerationSpec.ignoreLowRelevantContent == BOOLEAN
    input.Body.answerGenerationSpec.ignoreNonAnswerSeekingQuery == BOOLEAN
    input.Body.answerGenerationSpec.includeCitations == BOOLEAN
    input.Body.answerGenerationSpec.modelSpec.modelVersion == STRING
    input.Body.answerGenerationSpec.promptSpec.preamble == STRING
    input.Body.asynchronousMode == BOOLEAN
    input.Body.query.queryId == STRING
    input.Body.query.text == STRING
    input.Body.queryUnderstandingSpec.queryClassificationSpec.types[_] == enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestQueryUnderstandingSpecQueryClassificationSpecTypes[_]
    input.Body.queryUnderstandingSpec.queryRephraserSpec.disable == BOOLEAN
    input.Body.queryUnderstandingSpec.queryRephraserSpec.maxRephraseSteps == INTEGER
    input.Body.relatedQuestionsSpec.enable == BOOLEAN
    input.Body.safetySpec.enable == BOOLEAN
    input.Body.searchSpec.searchParams.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.searchSpec.searchParams.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.searchSpec.searchParams.dataStoreSpecs[_].dataStore == STRING
    input.Body.searchSpec.searchParams.filter == STRING
    input.Body.searchSpec.searchParams.maxReturnResults == INTEGER
    input.Body.searchSpec.searchParams.orderBy == STRING
    input.Body.searchSpec.searchParams.searchResultMode == enum_GoogleCloudDiscoveryengineV1AnswerQueryRequestSearchSpecSearchParamsSearchResultMode[_]
    input.Body.searchSpec.searchResultList.searchResults[_].chunkInfo.chunk == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].chunkInfo.content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.document == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.documentContexts[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.documentContexts[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveAnswers[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveAnswers[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveSegments[_].content == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.extractiveSegments[_].pageIdentifier == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.title == STRING
    input.Body.searchSpec.searchResultList.searchResults[_].unstructuredDocumentInfo.uri == STRING
    input.Body.session == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.servingConfigs.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.servingConfigs.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.servingConfigs.patch

enum_GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]
enum_GoogleCloudDiscoveryengineV1betaServingConfigSolutionType := [ "SOLUTION_TYPE_UNSPECIFIED", "SOLUTION_TYPE_RECOMMENDATION", "SOLUTION_TYPE_SEARCH", "SOLUTION_TYPE_CHAT", "SOLUTION_TYPE_GENERATIVE_CHAT" ]

valid {
    input.Body.boostControlIds[_] == STRING
    input.Body.displayName == STRING
    input.Body.dissociateControlIds[_] == STRING
    input.Body.diversityLevel == STRING
    input.Body.embeddingConfig.fieldPath == STRING
    input.Body.filterControlIds[_] == STRING
    input.Body.genericConfig.contentSearchSpec.chunkSpec.numNextChunks == INTEGER
    input.Body.genericConfig.contentSearchSpec.chunkSpec.numPreviousChunks == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.maxExtractiveAnswerCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.maxExtractiveSegmentCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.numNextSegments == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.numPreviousSegments == INTEGER
    input.Body.genericConfig.contentSearchSpec.extractiveContentSpec.returnExtractiveSegmentScore == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.searchResultMode == enum_GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSearchResultMode[_]
    input.Body.genericConfig.contentSearchSpec.snippetSpec.maxSnippetCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.snippetSpec.referenceOnly == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.snippetSpec.returnSnippet == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.includeCitations == BOOLEAN
    input.Body.genericConfig.contentSearchSpec.summarySpec.languageCode == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.modelSpec.version == STRING
    input.Body.genericConfig.contentSearchSpec.summarySpec.summaryResultCount == INTEGER
    input.Body.genericConfig.contentSearchSpec.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.ignoreControlIds[_] == STRING
    input.Body.mediaConfig.contentFreshnessCutoffDays == INTEGER
    input.Body.mediaConfig.contentWatchedPercentageThreshold == NUMBER
    input.Body.mediaConfig.contentWatchedSecondsThreshold == NUMBER
    input.Body.mediaConfig.demotionEventType == STRING
    input.Body.modelId == STRING
    input.Body.name == STRING
    input.Body.onewaySynonymsControlIds[_] == STRING
    input.Body.rankingExpression == STRING
    input.Body.redirectControlIds[_] == STRING
    input.Body.replacementControlIds[_] == STRING
    input.Body.solutionType == enum_GoogleCloudDiscoveryengineV1betaServingConfigSolutionType[_]
    input.Body.synonymsControlIds[_] == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.servingConfigs.recommend

valid {
    input.Body.filter == STRING
    input.Body.pageSize == INTEGER
    input.Body.params.STRING == ANY
    input.Body.userEvent.attributes.STRING.numbers[_] == NUMBER
    input.Body.userEvent.attributes.STRING.text[_] == STRING
    input.Body.userEvent.attributionToken == STRING
    input.Body.userEvent.completionInfo.selectedPosition == INTEGER
    input.Body.userEvent.completionInfo.selectedSuggestion == STRING
    input.Body.userEvent.dataStore == STRING
    input.Body.userEvent.directUserRequest == BOOLEAN
    input.Body.userEvent.documents[_].id == STRING
    input.Body.userEvent.documents[_].name == STRING
    input.Body.userEvent.documents[_].promotionIds[_] == STRING
    input.Body.userEvent.documents[_].quantity == INTEGER
    input.Body.userEvent.documents[_].uri == STRING
    input.Body.userEvent.engine == STRING
    input.Body.userEvent.eventTime == STRING
    input.Body.userEvent.eventType == STRING
    input.Body.userEvent.filter == STRING
    input.Body.userEvent.mediaInfo.mediaProgressDuration == STRING
    input.Body.userEvent.mediaInfo.mediaProgressPercentage == NUMBER
    input.Body.userEvent.pageInfo.pageCategory == STRING
    input.Body.userEvent.pageInfo.pageviewId == STRING
    input.Body.userEvent.pageInfo.referrerUri == STRING
    input.Body.userEvent.pageInfo.uri == STRING
    input.Body.userEvent.panel.displayName == STRING
    input.Body.userEvent.panel.panelId == STRING
    input.Body.userEvent.panel.panelPosition == INTEGER
    input.Body.userEvent.panel.totalPanels == INTEGER
    input.Body.userEvent.promotionIds[_] == STRING
    input.Body.userEvent.searchInfo.offset == INTEGER
    input.Body.userEvent.searchInfo.orderBy == STRING
    input.Body.userEvent.searchInfo.searchQuery == STRING
    input.Body.userEvent.sessionId == STRING
    input.Body.userEvent.tagIds[_] == STRING
    input.Body.userEvent.transactionInfo.cost == NUMBER
    input.Body.userEvent.transactionInfo.currency == STRING
    input.Body.userEvent.transactionInfo.discountValue == NUMBER
    input.Body.userEvent.transactionInfo.tax == NUMBER
    input.Body.userEvent.transactionInfo.transactionId == STRING
    input.Body.userEvent.transactionInfo.value == NUMBER
    input.Body.userEvent.userInfo.userAgent == STRING
    input.Body.userEvent.userInfo.userId == STRING
    input.Body.userEvent.userPseudoId == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.validateOnly == BOOLEAN
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.servingConfigs.search

enum_GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSearchResultMode := [ "SEARCH_RESULT_MODE_UNSPECIFIED", "DOCUMENTS", "CHUNKS" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestQueryExpansionSpecCondition := [ "CONDITION_UNSPECIFIED", "DISABLED", "AUTO" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestSearchAsYouTypeSpecCondition := [ "CONDITION_UNSPECIFIED", "DISABLED", "ENABLED" ]
enum_GoogleCloudDiscoveryengineV1SearchRequestSpellCorrectionSpecMode := [ "MODE_UNSPECIFIED", "SUGGESTION_ONLY", "AUTO" ]

valid {
    input.Body.boostSpec.conditionBoostSpecs[_].boost == NUMBER
    input.Body.boostSpec.conditionBoostSpecs[_].condition == STRING
    input.Body.branch == STRING
    input.Body.canonicalFilter == STRING
    input.Body.contentSearchSpec.chunkSpec.numNextChunks == INTEGER
    input.Body.contentSearchSpec.chunkSpec.numPreviousChunks == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.maxExtractiveAnswerCount == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.maxExtractiveSegmentCount == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.numNextSegments == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.numPreviousSegments == INTEGER
    input.Body.contentSearchSpec.extractiveContentSpec.returnExtractiveSegmentScore == BOOLEAN
    input.Body.contentSearchSpec.searchResultMode == enum_GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSearchResultMode[_]
    input.Body.contentSearchSpec.snippetSpec.maxSnippetCount == INTEGER
    input.Body.contentSearchSpec.snippetSpec.referenceOnly == BOOLEAN
    input.Body.contentSearchSpec.snippetSpec.returnSnippet == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.ignoreAdversarialQuery == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.ignoreNonSummarySeekingQuery == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.includeCitations == BOOLEAN
    input.Body.contentSearchSpec.summarySpec.languageCode == STRING
    input.Body.contentSearchSpec.summarySpec.modelPromptSpec.preamble == STRING
    input.Body.contentSearchSpec.summarySpec.modelSpec.version == STRING
    input.Body.contentSearchSpec.summarySpec.summaryResultCount == INTEGER
    input.Body.contentSearchSpec.summarySpec.useSemanticChunks == BOOLEAN
    input.Body.dataStoreSpecs[_].dataStore == STRING
    input.Body.facetSpecs[_].enableDynamicPosition == BOOLEAN
    input.Body.facetSpecs[_].excludedFilterKeys[_] == STRING
    input.Body.facetSpecs[_].facetKey.caseInsensitive == BOOLEAN
    input.Body.facetSpecs[_].facetKey.contains[_] == STRING
    input.Body.facetSpecs[_].facetKey.intervals[_].exclusiveMaximum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].exclusiveMinimum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].maximum == NUMBER
    input.Body.facetSpecs[_].facetKey.intervals[_].minimum == NUMBER
    input.Body.facetSpecs[_].facetKey.key == STRING
    input.Body.facetSpecs[_].facetKey.orderBy == STRING
    input.Body.facetSpecs[_].facetKey.prefixes[_] == STRING
    input.Body.facetSpecs[_].facetKey.restrictedValues[_] == STRING
    input.Body.facetSpecs[_].limit == INTEGER
    input.Body.filter == STRING
    input.Body.imageQuery.imageBytes == STRING
    input.Body.languageCode == STRING
    input.Body.offset == INTEGER
    input.Body.orderBy == STRING
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.params.STRING == ANY
    input.Body.query == STRING
    input.Body.queryExpansionSpec.condition == enum_GoogleCloudDiscoveryengineV1SearchRequestQueryExpansionSpecCondition[_]
    input.Body.queryExpansionSpec.pinUnexpandedResults == BOOLEAN
    input.Body.safeSearch == BOOLEAN
    input.Body.searchAsYouTypeSpec.condition == enum_GoogleCloudDiscoveryengineV1SearchRequestSearchAsYouTypeSpecCondition[_]
    input.Body.session == STRING
    input.Body.sessionSpec.queryId == STRING
    input.Body.sessionSpec.searchResultPersistenceCount == INTEGER
    input.Body.spellCorrectionSpec.mode == enum_GoogleCloudDiscoveryengineV1SearchRequestSpellCorrectionSpecMode[_]
    input.Body.userInfo.userAgent == STRING
    input.Body.userInfo.userId == STRING
    input.Body.userLabels.STRING == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.servingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.sessions.answers.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.sessions.create

enum_GoogleCloudDiscoveryengineV1SessionState := [ "STATE_UNSPECIFIED", "IN_PROGRESS" ]

valid {
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1SessionState[_]
    input.Body.turns[_].answer == STRING
    input.Body.turns[_].query.queryId == STRING
    input.Body.turns[_].query.text == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.sessions.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.sessions.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.sessions.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.sessions.patch

enum_GoogleCloudDiscoveryengineV1SessionState := [ "STATE_UNSPECIFIED", "IN_PROGRESS" ]

valid {
    input.Body.name == STRING
    input.Body.state == enum_GoogleCloudDiscoveryengineV1SessionState[_]
    input.Body.turns[_].answer == STRING
    input.Body.turns[_].query.queryId == STRING
    input.Body.turns[_].query.text == STRING
    input.Body.userPseudoId == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.disableAdvancedSiteSearch

valid {
    input.Body.STRING == STRING
    input.ReqMap.siteSearchEngine == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.enableAdvancedSiteSearch

valid {
    input.Body.STRING == STRING
    input.ReqMap.siteSearchEngine == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.recrawlUris

valid {
    input.Body.uris[_] == STRING
    input.ReqMap.siteSearchEngine == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.batchCreate

enum_GoogleCloudDiscoveryengineV1TargetSiteType := [ "TYPE_UNSPECIFIED", "INCLUDE", "EXCLUDE" ]

valid {
    input.Body.requests[_].parent == STRING
    input.Body.requests[_].targetSite.exactMatch == BOOLEAN
    input.Body.requests[_].targetSite.providedUriPattern == STRING
    input.Body.requests[_].targetSite.type == enum_GoogleCloudDiscoveryengineV1TargetSiteType[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.create

enum_GoogleCloudDiscoveryengineV1TargetSiteType := [ "TYPE_UNSPECIFIED", "INCLUDE", "EXCLUDE" ]

valid {
    input.Body.exactMatch == BOOLEAN
    input.Body.providedUriPattern == STRING
    input.Body.type == enum_GoogleCloudDiscoveryengineV1TargetSiteType[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.patch

enum_GoogleCloudDiscoveryengineV1TargetSiteType := [ "TYPE_UNSPECIFIED", "INCLUDE", "EXCLUDE" ]

valid {
    input.Body.exactMatch == BOOLEAN
    input.Body.providedUriPattern == STRING
    input.Body.type == enum_GoogleCloudDiscoveryengineV1TargetSiteType[_]
    input.ReqMap.n