diff --git a/specification/search/cspell.yaml b/specification/search/cspell.yaml index 635b53938d53..64f5eaae8606 100644 --- a/specification/search/cspell.yaml +++ b/specification/search/cspell.yaml @@ -12,6 +12,9 @@ words: - agentic - angika - asturian + - azsearchdocuments + - azsearchdocumentsindexes + - azsearchdocumentssearch - awadhi - bagheli - balkar @@ -19,6 +22,7 @@ words: - beider - bhojpuri - bodo + - Bokm - bokmaal - bokmål - bokmal @@ -28,6 +32,7 @@ words: - decompounder - devanagiri - dhimal + - discretizing - dogri - erzya - exfiltration @@ -57,22 +62,27 @@ words: - kstem - kumyk - kurukh + - lner - lovins - lucene - lule - luxembourgish - mahasu - malto + - Matryoshka - mylocation - niuean - nogay - nysiis - occitan + - odatatype - otomi - phonetik - piqd - pohlmann + - rerank - reranker + - resyncing - rslp - sadri - sami @@ -83,6 +93,7 @@ words: - tetum - tfidf - thangmi + - tiktoken - tokenizes - tuvan - uyghur @@ -90,7 +101,9 @@ words: - vectorize - vectorizer - vectorizers + - vectorizing - viet + - Volap - volapük - yucatec - zhuang diff --git a/specification/search/data-plane/Search/client.tsp b/specification/search/data-plane/Search/client.tsp new file mode 100644 index 000000000000..fb9e3fd23e3e --- /dev/null +++ b/specification/search/data-plane/Search/client.tsp @@ -0,0 +1,3348 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/versioning"; +import "./main.tsp"; + +using TypeSpec.Versioning; +using Azure.ClientGenerator.Core; +using Search; + +@TypeSpec.Versioning.useDependency(Search.Versions.v2025_11_01_preview) +namespace Customizations; + +@client({ + name: "SearchClient", + service: Search, +}) +@clientInitialization(Search.SearchIndexClientOptions) +@clientNamespace("Azure.Search.Documents") +@clientNamespace("com.azure.search.documents", "java") +namespace SearchClient { + interface Documents { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + count is Search.Documents.count; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + searchGet is Search.Documents.searchGet; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + searchPost is Search.Documents.searchPost; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Documents.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + suggestGet is Search.Documents.suggestGet; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + suggestPost is Search.Documents.suggestPost; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + index is Search.Documents.index; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + autocompleteGet is Search.Documents.autocompleteGet; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + autocompletePost is Search.Documents.autocompletePost; + } +} + +@client({ + name: "SearchIndexClient", + service: Search, +}) +@clientNamespace("Azure.Search.Documents.Indexes") +@clientNamespace("com.azure.search.documents.indexes", "java") +namespace SearchIndexClient { + interface SynonymMaps { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.SynonymMaps.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.SynonymMaps.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.SynonymMaps.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.SynonymMaps.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.SynonymMaps.create; + } + interface Indexes { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.Indexes.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.Indexes.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Indexes.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.Indexes.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.Indexes.create; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getStatistics is Search.Indexes.getStatistics; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + analyze is Search.Indexes.analyze; + } + interface Aliases { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.Aliases.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.Aliases.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Aliases.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.Aliases.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.Aliases.create; + } + + interface KnowledgeBases { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.KnowledgeBases.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.KnowledgeBases.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.KnowledgeBases.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.KnowledgeBases.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.KnowledgeBases.create; + } + + interface Sources { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.KnowledgeSources.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.KnowledgeSources.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.KnowledgeSources.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.KnowledgeSources.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.KnowledgeSources.create; + } + + interface Root { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getServiceStatistics is Search.getServiceStatistics; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getIndexStatsSummary is Search.getIndexStatsSummary; + } +} + +@client({ + name: "SearchIndexerClient", + service: Search, +}) +@clientNamespace("Azure.Search.Documents.Indexes") +@clientNamespace("com.azure.search.documents.indexes", "java") +namespace SearchIndexerClient { + interface DataSources { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.DataSources.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.DataSources.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.DataSources.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.DataSources.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.DataSources.create; + } + interface Indexers { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + reset is Search.Indexers.reset; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + resync is Search.Indexers.resync; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + resetDocs is Search.Indexers.resetDocs; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + run is Search.Indexers.run; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.Indexers.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.Indexers.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Indexers.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.Indexers.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.Indexers.create; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getStatus is Search.Indexers.getStatus; + } + interface Skillsets { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.Skillsets.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.Skillsets.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Skillsets.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.Skillsets.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.Skillsets.create; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + resetSkills is Search.Skillsets.resetSkills; + } +} + +@client({ + name: "KnowledgeBaseRetrievalClient", + service: Search, +}) +@clientNamespace("Azure.Search.Documents.KnowledgeBase") +@clientNamespace("com.azure.search.documents.knowledgebase", "java") +namespace KnowledgeBaseRetrievalClient { + interface KnowledgeRetrieval { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + retrieve is Search.KnowledgeRetrieval.retrieve; + } +} + +@@access(VectorSearchAlgorithmKind, Access.public); +@@usage(VectorSearchAlgorithmKind, Usage.input); +@@access(VectorSearchVectorizerKind, Access.public); +@@usage(VectorSearchVectorizerKind, Usage.input); +@@access(SearchIndexPermissionFilterOption, Access.public); +@@usage(SearchIndexPermissionFilterOption, Usage.input); +@@access(IndexerResyncBody, Access.public); +@@usage(IndexerResyncBody, Usage.input); +@@access(KnowledgeBaseAzureOpenAIModel, Access.public); +@@usage(KnowledgeBaseAzureOpenAIModel, Usage.input); +@@access(AnalyzedTokenInfo, Access.public); +@@usage(AnalyzedTokenInfo, Usage.input); +@@access(IndexerExecutionStatus, Access.public); +@@usage(IndexerExecutionStatus, Usage.input); +@@access(IndexerExecutionStatus, Access.public); +@@usage(IndexerExecutionStatus, Usage.input); +@@access(SearchIndexer, Access.public); +@@usage(SearchIndexer, Usage.input); +@@access(SearchIndexerSkillset, Access.public); +@@usage(SearchIndexerSkillset, Usage.input); +@@access(SynonymMap, Access.public); +@@usage(SynonymMap, Usage.input); +@@access(AutocompleteItem, Access.public); +@@usage(AutocompleteItem, Usage.input); +@@access(SuggestResult, Access.public); +@@usage(SuggestResult, Usage.input); +@@access(IndexingResult, Access.public); +@@usage(IndexingResult, Usage.input); +@@access(FacetResult, Access.public); +@@usage(FacetResult, Usage.input); +@@access(QueryAnswerResult, Access.public); +@@usage(QueryAnswerResult, Usage.input); +@@access(DebugInfo, Access.public); +@@usage(DebugInfo, Usage.input); +@@access(SearchResult, Access.public); +@@usage(SearchResult, Usage.input); +@@access(SearchDocumentsResult, Access.public); +@@usage(SearchDocumentsResult, Usage.input); +@@access(SemanticErrorReason, Access.public); +@@usage(SemanticErrorReason, Usage.input); +@@access(IndexBatch, Access.public); +@@usage(IndexBatch, Usage.input); +@@access(KnowledgeSourceStatus, Access.public); +@@usage(KnowledgeSourceStatus, Usage.input); +@@access(WebKnowledgeSource, Access.public); +@@usage(WebKnowledgeSource, Usage.input); +@@access(RemoteSharePointKnowledgeSource, Access.public); +@@usage(RemoteSharePointKnowledgeSource, Usage.input); + +@@access(SearchClient.Documents.searchGet, Access.internal); +@@access(SearchClient.Documents.searchPost, Access.internal); +@@access(SearchClient.Documents.autocompleteGet, Access.internal); +@@access(SearchClient.Documents.autocompletePost, Access.internal); +@@access(SearchClient.Documents.suggestGet, Access.internal); +@@access(SearchClient.Documents.suggestPost, Access.internal); +@@access(SearchClient.Documents.index, Access.internal); +@@access(SearchIndexerClient.DataSources.list, Access.internal); +@@access(SearchIndexerClient.DataSources.createOrUpdate, Access.internal); +@@access(SearchIndexerClient.DataSources.delete, Access.internal, "python"); +@@access(SearchIndexerClient.Indexers.list, Access.internal); +@@access(SearchIndexerClient.Indexers.createOrUpdate, Access.internal); +@@access(SearchIndexerClient.Indexers.delete, Access.internal, "python"); +@@access(SearchIndexerClient.Skillsets.list, Access.internal); +@@access(SearchIndexerClient.Skillsets.createOrUpdate, Access.internal); +@@access(SearchIndexerClient.Skillsets.delete, Access.internal, "python"); +@@access(SearchIndexClient.SynonymMaps.list, Access.internal); +@@access(SearchIndexClient.SynonymMaps.createOrUpdate, Access.internal); +@@access(SearchIndexClient.SynonymMaps.delete, Access.internal, "python"); +@@access(SearchIndexClient.Indexes.createOrUpdate, Access.internal); +@@access(SearchIndexClient.Indexes.delete, Access.internal, "python"); +@@access(SearchIndexClient.Aliases.createOrUpdate, Access.internal); +@@access(SearchIndexClient.Aliases.delete, Access.internal, "python"); +@@access(SearchIndexClient.KnowledgeBases.createOrUpdate, Access.internal); +@@access(SearchIndexClient.KnowledgeBases.delete, Access.internal, "python"); +@@access(SearchIndexClient.Sources.createOrUpdate, Access.internal); +@@access(SearchIndexClient.Sources.delete, Access.internal, "python"); + +@@clientNamespace(Search.ErrorResponse, "Azure.Search.Documents"); +@@clientNamespace(Search.ErrorResponse, "com.azure.search.documents", "java"); +@@clientNamespace(Search.ErrorDetail, "Azure.Search.Documents"); +@@clientNamespace(Search.ErrorDetail, "com.azure.search.documents", "java"); +@@clientNamespace(Search.ErrorAdditionalInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.ErrorAdditionalInfo, + "com.azure.search.documents", + "java" +); + +// Search documents types +@@clientNamespace(Search.SemanticErrorMode, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticErrorMode, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryAnswerType, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryAnswerType, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryCaptionType, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryCaptionType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryRewritesType, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryRewritesType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryDebugMode, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryDebugMode, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryLanguage, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryLanguage, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QuerySpellerType, "Azure.Search.Documents"); +@@clientNamespace(Search.QuerySpellerType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorQueryKind, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorQueryKind, "com.azure.search.documents", "java"); +@@clientNamespace(Search.VectorThresholdKind, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorThresholdKind, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorFilterMode, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorFilterMode, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.HybridCountAndFacetMode, "Azure.Search.Documents"); +@@clientNamespace(Search.HybridCountAndFacetMode, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SemanticFieldState, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticFieldState, + "com.azure.search.documents", + "java" +); +@@clientName(Search.SemanticField.fieldName, "name", "javascript"); +@@clientNamespace(Search.SemanticErrorReason, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticErrorReason, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SemanticSearchResultsType, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticSearchResultsType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SemanticQueryRewritesResultType, + "Azure.Search.Documents" +); +@@clientNamespace(Search.SemanticQueryRewritesResultType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryType, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryType, "com.azure.search.documents", "java"); +@@clientNamespace(Search.SearchMode, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchMode, "com.azure.search.documents", "java"); +@@clientNamespace(Search.ScoringStatistics, "Azure.Search.Documents"); +@@clientNamespace(Search.ScoringStatistics, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.IndexActionType, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexActionType, "com.azure.search.documents", "java"); +@@clientNamespace(Search.AutocompleteMode, "Azure.Search.Documents"); +@@clientNamespace(Search.AutocompleteMode, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SearchDocumentsResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchDocumentsResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.FacetResult, "Azure.Search.Documents"); +@@clientNamespace(Search.FacetResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryAnswerResult, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryAnswerResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.DebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.DebugInfo, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryRewritesDebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryRewritesDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryRewritesValuesDebugInfo, + "Azure.Search.Documents" +); +@@clientNamespace(Search.QueryRewritesValuesDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SearchRequest, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchRequest, "com.azure.search.documents", "java"); +@@clientNamespace(Search.VectorQuery, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorQuery, "com.azure.search.documents", "java"); +@@clientNamespace(Search.VectorThreshold, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorThreshold, "com.azure.search.documents", "java"); +@@clientNamespace(Search.HybridSearch, "Azure.Search.Documents"); +@@clientNamespace(Search.HybridSearch, "com.azure.search.documents", "java"); +@@clientNamespace(Search.SearchResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryCaptionResult, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryCaptionResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.DocumentDebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.DocumentDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SemanticDebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryResultDocumentSemanticField, + "Azure.Search.Documents" +); +@@clientNamespace(Search.QueryResultDocumentSemanticField, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryResultDocumentRerankerInput, + "Azure.Search.Documents" +); +@@clientNamespace(Search.QueryResultDocumentRerankerInput, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorsDebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorsDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryResultDocumentSubscores, + "Azure.Search.Documents" +); +@@clientNamespace(Search.QueryResultDocumentSubscores, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.TextResult, "Azure.Search.Documents"); +@@clientNamespace(Search.TextResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.SingleVectorFieldResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SingleVectorFieldResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SuggestDocumentsResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SuggestDocumentsResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SuggestResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SuggestResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.SuggestRequest, "Azure.Search.Documents"); +@@clientNamespace(Search.SuggestRequest, "com.azure.search.documents", "java"); +@@clientNamespace(Search.IndexBatch, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexBatch, "com.azure.search.documents", "java"); +@@clientNamespace(Search.IndexAction, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexAction, "com.azure.search.documents", "java"); +@@clientNamespace(Search.LookupDocument, "Azure.Search.Documents"); +@@clientNamespace(Search.LookupDocument, "com.azure.search.documents", "java"); +@@clientNamespace(Search.IndexDocumentsResult, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexDocumentsResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.IndexingResult, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexingResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.AutocompleteResult, "Azure.Search.Documents"); +@@clientNamespace(Search.AutocompleteResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.AutocompleteItem, "Azure.Search.Documents"); +@@clientNamespace(Search.AutocompleteItem, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.AutocompleteRequest, "Azure.Search.Documents"); +@@clientNamespace(Search.AutocompleteRequest, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorizedQuery, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorizedQuery, "com.azure.search.documents", "java"); +@@clientNamespace(Search.VectorizableTextQuery, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorizableTextQuery, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorizableImageUrlQuery, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorizableImageUrlQuery, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorizableImageBinaryQuery, + "Azure.Search.Documents" +); +@@clientNamespace(Search.VectorizableImageBinaryQuery, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorSimilarityThreshold, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorSimilarityThreshold, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SearchScoreThreshold, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchScoreThreshold, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryResultDocumentInnerHit, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryResultDocumentInnerHit, + "com.azure.search.documents", + "java" +); + +// Search index types +@@clientNamespace(Search.SearchIndexerDataSourceType, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataSourceType, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BlobIndexerParsingMode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BlobIndexerParsingMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MarkdownParsingSubmode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MarkdownParsingSubmode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MarkdownHeaderDepth, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.MarkdownHeaderDepth, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BlobIndexerDataToExtract, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BlobIndexerDataToExtract, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BlobIndexerImageAction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BlobIndexerImageAction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BlobIndexerPDFTextRotationAlgorithm, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BlobIndexerPDFTextRotationAlgorithm, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerExecutionEnvironment, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerExecutionEnvironment, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerExecutionStatusDetail, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerExecutionStatusDetail, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexingMode, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexingMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexProjectionMode, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexProjectionMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchFieldDataType, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchFieldDataType, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalAnalyzerName, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LexicalAnalyzerName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalNormalizerName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LexicalNormalizerName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorEncodingFormat, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorEncodingFormat, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchAlgorithmKind, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchAlgorithmKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchVectorizerKind, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchVectorizerKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchCompressionKind, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchCompressionKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchCompressionRescoreStorageMethod, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchCompressionRescoreStorageMethod, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalTokenizerName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LexicalTokenizerName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TokenFilterName, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TokenFilterName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CharFilterName, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CharFilterName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RegexFlags, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.RegexFlags, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchAlgorithmMetric, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchAlgorithmMetric, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchCompressionTarget, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchCompressionTarget, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAIModelName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAIModelName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIFoundryModelCatalogName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIFoundryModelCatalogName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeyPhraseExtractionSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KeyPhraseExtractionSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.OcrSkillLanguage, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.OcrSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.OcrLineEnding, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.OcrLineEnding, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ImageAnalysisSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ImageAnalysisSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VisualFeature, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.VisualFeature, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ImageDetail, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ImageDetail, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityCategory, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.EntityCategory, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityRecognitionSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EntityRecognitionSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SentimentSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SentimentSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PIIDetectionSkillMaskingMode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PIIDetectionSkillMaskingMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SplitSkillLanguage, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SplitSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TextSplitMode, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TextSplitMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SplitSkillUnit, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SplitSkillUnit, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SplitSkillEncoderModelName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SplitSkillEncoderModelName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomEntityLookupSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CustomEntityLookupSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TextTranslationSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.TextTranslationSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillOutputMode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillOutputMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillMarkdownHeaderDepth, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillMarkdownHeaderDepth, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerStatus, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerStatus, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerRuntime, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerRuntime, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerExecutionStatus, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerExecutionStatus, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScoringFunctionInterpolation, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ScoringFunctionInterpolation, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScoringFunctionAggregation, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ScoringFunctionAggregation, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TokenCharacterKind, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TokenCharacterKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MicrosoftTokenizerLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MicrosoftTokenizerLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MicrosoftStemmingTokenizerLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MicrosoftStemmingTokenizerLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CjkBigramTokenFilterScripts, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CjkBigramTokenFilterScripts, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EdgeNGramTokenFilterSide, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EdgeNGramTokenFilterSide, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PhoneticEncoder, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PhoneticEncoder, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SnowballTokenFilterLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SnowballTokenFilterLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StemmerTokenFilterLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.StemmerTokenFilterLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StopwordsList, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.StopwordsList, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DataSourceCredentials, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DataSourceCredentials, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataContainer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataContainer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DataChangeDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DataChangeDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DataDeletionDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DataDeletionDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchResourceEncryptionKey, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchResourceEncryptionKey, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureActiveDirectoryApplicationCredentials, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureActiveDirectoryApplicationCredentials, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListDataSourcesResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListDataSourcesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentKeysOrIds, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.DocumentKeysOrIds, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexingSchedule, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexingSchedule, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexingParameters, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexingParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexingParametersConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexingParametersConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.FieldMapping, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.FieldMapping, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.FieldMappingFunction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.FieldMappingFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerCache, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerCache, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListIndexersResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ListIndexersResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerStatus, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerStatus, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerExecutionResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerExecutionResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerCurrentState, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerCurrentState, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerError, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerError, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerWarning, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerWarning, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerLimits, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerLimits, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerSkillset, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerSkillset, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.InputFieldMappingEntry, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.InputFieldMappingEntry, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.OutputFieldMappingEntry, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.OutputFieldMappingEntry, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CognitiveServicesAccount, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CognitiveServicesAccount, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStore, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStore, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreProjection, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreProjection, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreTableProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreTableProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreObjectProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreObjectProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreBlobProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreBlobProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreFileProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreFileProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerIndexProjection, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerIndexProjection, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerIndexProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerIndexProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerIndexProjectionsParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerIndexProjectionsParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListSkillsetsResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ListSkillsetsResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SkillNames, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SkillNames, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SynonymMap, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SynonymMap, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListSynonymMapsResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListSynonymMapsResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndex, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndex, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchField, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchField, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScoringProfile, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ScoringProfile, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TextWeights, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TextWeights, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScoringFunction, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CorsOptions, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CorsOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeBase, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KnowledgeBase, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceReference, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeSourceReference, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceContentExtractionMode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeSourceContentExtractionMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceIngestionPermissionOption, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeSourceIngestionPermissionOption, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceSynchronizationStatus, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeSourceSynchronizationStatus, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListKnowledgeBasesResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListKnowledgeBasesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeBaseModel, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KnowledgeBaseModel, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeBaseModelKind, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeBaseModelKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAzureOpenAIModel, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeBaseAzureOpenAIModel, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAiParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAiParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSource, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceKind, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KnowledgeSourceKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureBlobKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureBlobKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureBlobKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureBlobKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedSharePointContainerName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedSharePointContainerName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebKnowledgeSource, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.WebKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebKnowledgeSourceDomain, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WebKnowledgeSourceDomain, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebKnowledgeSourceDomains, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WebKnowledgeSourceDomains, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WebKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexFieldReference, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexFieldReference, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ServiceIndexersRuntime, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ServiceIndexersRuntime, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListKnowledgeSourcesResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListKnowledgeSourcesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CreatedResources, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CreatedResources, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchSuggester, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchSuggester, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalAnalyzer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LexicalAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LexicalTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CharFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CharFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalNormalizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LexicalNormalizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SimilarityAlgorithm, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SimilarityAlgorithm, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SemanticSearch, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SemanticSearch, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SemanticConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SemanticConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SemanticPrioritizedFields, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SemanticPrioritizedFields, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SemanticField, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SemanticField, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearch, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.VectorSearch, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchProfile, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.VectorSearchProfile, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchAlgorithmConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchAlgorithmConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchVectorizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchCompression, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchCompression, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RescoringOptions, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.RescoringOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListIndexesResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ListIndexesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.GetIndexStatisticsResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.GetIndexStatisticsResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AnalyzeRequest, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AnalyzeRequest, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AnalyzeResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AnalyzeResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AnalyzedTokenInfo, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AnalyzedTokenInfo, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchAlias, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchAlias, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListAliasesResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ListAliasesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchServiceStatistics, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchServiceStatistics, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchServiceCounters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchServiceCounters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ResourceCounter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ResourceCounter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchServiceLimits, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchServiceLimits, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomAnalyzer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CustomAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternAnalyzer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PatternAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LuceneStandardAnalyzer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LuceneStandardAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StopAnalyzer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.StopAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomNormalizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CustomNormalizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ClassicTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ClassicTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EdgeNGramTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.EdgeNGramTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeywordTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KeywordTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeywordTokenizerV2, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KeywordTokenizerV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MicrosoftLanguageTokenizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MicrosoftLanguageTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MicrosoftLanguageStemmingTokenizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MicrosoftLanguageStemmingTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.NGramTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.NGramTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PathHierarchyTokenizerV2, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PathHierarchyTokenizerV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PatternTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LuceneStandardTokenizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LuceneStandardTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LuceneStandardTokenizerV2, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LuceneStandardTokenizerV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.UaxUrlEmailTokenizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.UaxUrlEmailTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AsciiFoldingTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AsciiFoldingTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CjkBigramTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CjkBigramTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CommonGramTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CommonGramTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DictionaryDecompounderTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DictionaryDecompounderTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EdgeNGramTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EdgeNGramTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EdgeNGramTokenFilterV2, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EdgeNGramTokenFilterV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ElisionTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ElisionTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeepTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KeepTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeywordMarkerTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KeywordMarkerTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LengthTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LengthTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LimitTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LimitTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.NGramTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.NGramTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.NGramTokenFilterV2, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.NGramTokenFilterV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternCaptureTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PatternCaptureTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternReplaceTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PatternReplaceTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PhoneticTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PhoneticTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ShingleTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ShingleTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SnowballTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SnowballTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StemmerTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.StemmerTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StemmerOverrideTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.StemmerOverrideTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StopwordsTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.StopwordsTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SynonymTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SynonymTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TruncateTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TruncateTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.UniqueTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.UniqueTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WordDelimiterTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WordDelimiterTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MappingCharFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.MappingCharFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternReplaceCharFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PatternReplaceCharFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ClassicSimilarityAlgorithm, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ClassicSimilarityAlgorithm, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BM25SimilarityAlgorithm, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BM25SimilarityAlgorithm, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.HnswAlgorithmConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.HnswAlgorithmConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.HnswParameters, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.HnswParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ExhaustiveKnnAlgorithmConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ExhaustiveKnnAlgorithmConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ExhaustiveKnnParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ExhaustiveKnnParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScalarQuantizationCompression, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ScalarQuantizationCompression, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScalarQuantizationParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ScalarQuantizationParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BinaryQuantizationCompression, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BinaryQuantizationCompression, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAIVectorizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAIVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAIVectorizerParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAIVectorizerParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataIdentity, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataIdentity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebApiVectorizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.WebApiVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebApiVectorizerParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WebApiVectorizerParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIServicesVisionVectorizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIServicesVisionVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIServicesVisionParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIServicesVisionParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AMLVectorizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AMLVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AMLParameters, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AMLParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataNoneIdentity, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataNoneIdentity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataUserAssignedIdentity, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataUserAssignedIdentity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.HighWaterMarkChangeDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.HighWaterMarkChangeDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SqlIntegratedChangeTrackingPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SqlIntegratedChangeTrackingPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SoftDeleteColumnDeletionDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SoftDeleteColumnDeletionDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.NativeBlobSoftDeleteDeletionDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.NativeBlobSoftDeleteDeletionDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DistanceScoringFunction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DistanceScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DistanceScoringParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DistanceScoringParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.FreshnessScoringFunction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.FreshnessScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.FreshnessScoringParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.FreshnessScoringParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MagnitudeScoringFunction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MagnitudeScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MagnitudeScoringParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MagnitudeScoringParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TagScoringFunction, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TagScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TagScoringParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.TagScoringParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DefaultCognitiveServicesAccount, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DefaultCognitiveServicesAccount, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CognitiveServicesAccountKey, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CognitiveServicesAccountKey, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIServicesAccountKey, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIServicesAccountKey, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIServicesAccountIdentity, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIServicesAccountIdentity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomEntity, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CustomEntity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomEntityAlias, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CustomEntityAlias, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ConditionalSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ConditionalSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeyPhraseExtractionSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KeyPhraseExtractionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.OcrSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.OcrSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ImageAnalysisSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ImageAnalysisSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LanguageDetectionSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LanguageDetectionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ShaperSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ShaperSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MergeSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.MergeSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityRecognitionSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EntityRecognitionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SentimentSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SentimentSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SentimentSkillV3, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SentimentSkillV3, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityLinkingSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.EntityLinkingSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityRecognitionSkillV3, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EntityRecognitionSkillV3, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PIIDetectionSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PIIDetectionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SplitSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SplitSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAITokenizerParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAITokenizerParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomEntityLookupSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CustomEntityLookupSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TextTranslationSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.TextTranslationSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentExtractionSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentExtractionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebApiSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.WebApiSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureMachineLearningSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureMachineLearningSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAIEmbeddingSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAIEmbeddingSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VisionVectorizeSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VisionVectorizeSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ContentUnderstandingSkillChunkingUnit, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ContentUnderstandingSkillChunkingUnit, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ContentUnderstandingSkillExtractionOptions, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ContentUnderstandingSkillExtractionOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ContentUnderstandingSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ContentUnderstandingSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ContentUnderstandingSkillChunkingProperties, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ContentUnderstandingSkillChunkingProperties, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexStatisticsSummary, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexStatisticsSummary, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListIndexStatsSummary, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListIndexStatsSummary, + "com.azure.search.documents.indexes", + "java" +); + +@@clientNamespace(Search.ChatCompletionExtraParametersBehavior, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionExtraParametersBehavior, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionResponseFormatType, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionResponseFormatType, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillChunkingUnit, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillChunkingUnit, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillExtractionOptions, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillExtractionOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillOutputFormat, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillOutputFormat, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerPermissionOption, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerPermissionOption, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PermissionFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PermissionFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RankingOrder, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.RankingOrder, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionCommonModelParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionCommonModelParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionResponseFormat, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionResponseFormat, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionSchema, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionSchema, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionSchemaProperties, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionSchemaProperties, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ChatCompletionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillChunkingProperties, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillChunkingProperties, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebApiHttpHeaders, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.WebApiHttpHeaders, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchOptions, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexPermissionFilterOption, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexPermissionFilterOption, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerResyncBody, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerResyncBody, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerResyncOption, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerResyncOption, + "com.azure.search.documents.indexes", + "java" +); + +@@clientName(SearchClient.Documents.count, "getDocumentCount"); +@@clientName(SearchClient.Documents.get, "getDocument"); +@@clientName(SearchIndexClient.Indexes.list, "listIndexes"); +@@clientName(SearchIndexClient.Indexes.get, "getIndex"); +@@clientName(SearchIndexClient.Indexes.getStatistics, "getIndexStatistics"); +@@clientName(SearchIndexClient.Indexes.delete, "deleteIndex"); +@@clientName(SearchIndexClient.Indexes.create, "createIndex"); +@@clientName(SearchIndexClient.Indexes.createOrUpdate, "createOrUpdateIndex"); +@@clientName(SearchIndexClient.Indexes.analyze, "analyzeText"); +@@clientName(SearchIndexClient.SynonymMaps.list, "getSynonymMaps"); +@@clientName(SearchIndexClient.SynonymMaps.get, "getSynonymMap"); +@@clientName(SearchIndexClient.SynonymMaps.delete, "deleteSynonymMap"); +@@clientName(SearchIndexClient.SynonymMaps.create, "createSynonymMap"); +@@clientName(SearchIndexClient.SynonymMaps.createOrUpdate, + "createOrUpdateSynonymMap" +); +@@clientName(SearchIndexClient.Root.getIndexStatsSummary, + "listIndexStatsSummary" +); +@@clientName(SearchIndexClient.Aliases.list, "listAliases"); +@@clientName(SearchIndexClient.Aliases.get, "getAlias"); +@@clientName(SearchIndexClient.Aliases.delete, "deleteAlias"); +@@clientName(SearchIndexClient.Aliases.create, "createAlias"); +@@clientName(SearchIndexClient.Aliases.createOrUpdate, "createOrUpdateAlias"); +@@clientName(SearchIndexClient.KnowledgeBases.delete, "deleteKnowledgeBase"); +@@clientName(SearchIndexClient.KnowledgeBases.create, "createKnowledgeBase"); +@@clientName(SearchIndexClient.KnowledgeBases.createOrUpdate, + "createOrUpdateKnowledgeBase" +); +@@clientName(SearchIndexClient.KnowledgeBases.get, "getKnowledgeBase"); +@@clientName(SearchIndexClient.KnowledgeBases.list, "listKnowledgeBases"); +@@clientName(SearchIndexClient.Sources.delete, "deleteKnowledgeSource"); +@@clientName(SearchIndexClient.Sources.create, "createKnowledgeSource"); +@@clientName(SearchIndexClient.Sources.createOrUpdate, + "createOrUpdateKnowledgeSource" +); +@@clientName(SearchIndexClient.Sources.get, "getKnowledgeSource"); +@@clientName(SearchIndexClient.Sources.list, "listKnowledgeSources"); +@@clientName(SearchIndexerClient.Indexers.create, "createIndexer"); +@@clientName(SearchIndexerClient.Indexers.createOrUpdate, + "createOrUpdateIndexer" +); +@@clientName(SearchIndexerClient.Indexers.delete, "deleteIndexer"); +@@clientName(SearchIndexerClient.Indexers.get, "getIndexer"); +@@clientName(SearchIndexerClient.Indexers.list, "getIndexers"); +@@clientName(SearchIndexerClient.Indexers.run, "runIndexer"); +@@clientName(SearchIndexerClient.Indexers.reset, "resetIndexer"); +@@clientName(SearchIndexerClient.Indexers.resetDocs, "resetDocuments"); +@@clientName(SearchIndexerClient.Indexers.resync, "resync"); +@@clientName(SearchIndexerClient.Indexers.getStatus, "getIndexerStatus"); +@@clientName(SearchIndexerClient.DataSources.create, + "createDataSourceConnection" +); +@@clientName(SearchIndexerClient.DataSources.createOrUpdate, + "createOrUpdateDataSourceConnection" +); +@@clientName(SearchIndexerClient.DataSources.get, "getDataSourceConnection"); +@@clientName(SearchIndexerClient.DataSources.list, "getDataSourceConnections"); +@@clientName(SearchIndexerClient.DataSources.delete, + "deleteDataSourceConnection" +); +@@clientName(SearchIndexerClient.Skillsets.create, "createSkillset"); +@@clientName(SearchIndexerClient.Skillsets.createOrUpdate, + "createOrUpdateSkillset" +); +@@clientName(SearchIndexerClient.Skillsets.get, "getSkillset"); +@@clientName(SearchIndexerClient.Skillsets.list, "getSkillsets"); +@@clientName(SearchIndexerClient.Skillsets.delete, "deleteSkillset"); + +@@clientName(VectorQuery.k, "kNearestNeighbors"); +@@clientName(SearchDocumentsResult.value, "results"); +@@clientName(SearchRequest.count, "includeTotalCount"); +@@clientName(SearchRequest.highlight, "highlightFields"); +@@clientName(SearchRequest.search, "searchText"); +@@clientName(SearchRequest.orderby, "orderBy"); +@@clientName(SuggestDocumentsResult.value, "results"); +@@clientName(SuggestRequest.fuzzy, "useFuzzyMatching"); +@@clientName(SuggestRequest.orderby, "orderBy"); +@@clientName(SuggestRequest.search, "searchText"); +@@clientName(Search.IndexBatch, "IndexDocumentsBatch"); +@@clientName(IndexBatch.value, "actions"); +@@clientName(IndexDocumentsResult.value, "results"); +@@clientName(IndexingResult.status, "succeeded"); +@@clientName(AutocompleteRequest.autocompleteMode, "mode"); +@@clientName(AutocompleteResult.value, "results"); +@@clientName(AutocompleteRequest.search, "searchText"); +@@clientName(AutocompleteRequest.fuzzy, "useFuzzyMatching"); +@@clientName(ListDataSourcesResult.value, "dataSources"); +@@clientName(SearchResourceEncryptionKey.keyVaultKeyName, "keyName"); +@@clientName(SearchResourceEncryptionKey.keyVaultKeyVersion, "keyVersion"); +@@clientName(SearchResourceEncryptionKey.keyVaultUri, "vaultUri"); +@@clientName(SearchIndexer.disabled, "isDisabled"); +@@clientName(ListIndexersResult.value, "indexers"); +@@clientName(IndexerExecutionResult.itemsProcessed, "itemCount"); +@@clientName(IndexerExecutionResult.itemsFailed, "failedItemCount"); +@@clientName(SearchIndexerSkillset.cognitiveServices, + "cognitiveServicesAccount" +); +@@clientName(SearchIndexerSkillset.indexProjections, "indexProjection"); +@@clientName(ListSkillsetsResult.value, "skillsets"); +@@clientName(ListSynonymMapsResult.value, "synonymMaps"); +@@clientName(AnalyzeRequest, "AnalyzeTextOptions"); +@@clientName(AnalyzeRequest.analyzer, "analyzerName"); +@@clientName(AnalyzeRequest.tokenizer, "tokenizerName"); +@@clientName(AnalyzeRequest.normalizer, "normalizerName"); +@@clientName(SearchIndexerDataSource, "SearchIndexerDataSourceConnection"); +@@clientName(SearchRequest.speller, "querySpeller"); +@@clientName(SearchRequest.semanticConfiguration, "semanticConfigurationName"); +@@clientName(SearchIndex.semantic, "semanticSearch"); +@@clientName(SearchField.analyzer, "analyzerName"); +@@clientName(SearchField.searchAnalyzer, "searchAnalyzerName"); +@@clientName(SearchField.indexAnalyzer, "indexAnalyzerName"); +@@clientName(SearchField.normalizer, "normalizerName"); +@@clientName(SearchField.synonymMaps, "synonymMapNames"); +@@clientName(SearchField.dimensions, "vectorSearchDimensions"); +@@clientName(SearchField.vectorSearchProfile, "vectorSearchProfileName"); +@@clientName(SearchField.vectorEncoding, "vectorEncodingFormat"); +@@clientName(ScoringProfile.text, "textWeights"); +@@clientName(SemanticSearch.defaultConfiguration, "defaultConfigurationName"); +@@clientName(SemanticPrioritizedFields.prioritizedContentFields, + "contentFields" +); +@@clientName(SemanticPrioritizedFields.prioritizedKeywordsFields, + "keywordsFields" +); +@@clientName(VectorSearchProfile.algorithm, "algorithmConfigurationName"); +@@clientName(VectorSearchProfile.vectorizer, "vectorizerName"); +@@clientName(VectorSearchProfile.compression, "compressionName"); +@@clientName(VectorSearchVectorizer.name, "vectorizerName"); +@@clientName(VectorSearchCompression.name, "compressionName"); +@@clientName(ListIndexesResult.value, "indexes"); +@@clientName(SearchServiceCounters.aliasesCount, "aliasCounter"); +@@clientName(SearchServiceCounters.documentCount, "documentCounter"); +@@clientName(SearchServiceCounters.indexesCount, "indexCounter"); +@@clientName(SearchServiceCounters.indexersCount, "indexerCounter"); +@@clientName(SearchServiceCounters.dataSourcesCount, "dataSourceCounter"); +@@clientName(SearchServiceCounters.storageSize, "storageSizeCounter"); +@@clientName(SearchServiceCounters.synonymMaps, "synonymMapCounter"); +@@clientName(SearchServiceCounters.skillsetCount, "skillsetCounter"); +@@clientName(SearchServiceCounters.vectorIndexSize, "vectorIndexSizeCounter"); +@@clientName(SearchServiceLimits.maxStoragePerIndex, + "maxStoragePerIndexInBytes" +); +@@clientName(PatternAnalyzer.lowercase, "lowerCaseTerms"); +@@clientName(PathHierarchyTokenizerV2.reverse, "reverseTokenOrder"); +@@clientName(PathHierarchyTokenizerV2.skip, "numberOfTokensToSkip"); +@@clientName(CommonGramTokenFilter.queryMode, "useQueryMode"); +@@clientName(KeepTokenFilter.keepWordsCase, "lowerCaseKeepWords"); +@@clientName(LengthTokenFilter.min, "minLength"); +@@clientName(LengthTokenFilter.max, "maxLength"); +@@clientName(PhoneticTokenFilter.replace, "replaceOriginalTokens"); +@@clientName(StopwordsTokenFilter.removeTrailing, "removeTrailingStopWords"); +@@clientName(HnswAlgorithmConfiguration.hnswParameters, "parameters"); +@@clientName(ExhaustiveKnnAlgorithmConfiguration.exhaustiveKnnParameters, + "parameters" +); +@@clientName(ScalarQuantizationCompression.scalarQuantizationParameters, + "parameters" +); +@@clientName(AzureOpenAIVectorizer.azureOpenAIParameters, "parameters"); +@@clientName(AzureOpenAIVectorizerParameters.resourceUri, "resourceUrl"); +@@clientName(AzureOpenAIVectorizerParameters.deploymentId, "deploymentName"); +@@clientName(WebApiVectorizer.customWebApiParameters, "webApiParameters"); +@@clientName(WebApiVectorizerParameters.uri, "url"); +@@clientName(SearchIndexerDataUserAssignedIdentity.userAssignedIdentity, + "resourceId" +); +@@clientName(DistanceScoringFunction.distance, "parameters"); +@@clientName(FreshnessScoringFunction.freshness, "parameters"); +@@clientName(MagnitudeScoringFunction.magnitude, "parameters"); +@@clientName(MagnitudeScoringParameters.constantBoostBeyondRange, + "shouldBoostBeyondRangeByConstant" +); +@@clientName(TagScoringFunction.tag, "parameters"); +@@clientName(OcrSkill.detectOrientation, "shouldDetectOrientation"); +@@clientName(PIIDetectionSkill.maskingCharacter, "mask"); +@@clientName(ListAliasesResult.value, "aliases"); +@@clientName(AMLParameters.uri, "scoringUri"); +@@clientName(AMLParameters.key, "authenticationKey"); +@@clientName(AMLVectorizer.amlParameters, "AMLParameters"); +@@clientName(AzureMachineLearningSkill.uri, "scoringUri"); +@@clientName(AzureMachineLearningSkill.key, "authenticationKey"); +@@clientName(SkillNames.skillNames, "skillNameList", "csharp"); +@@clientName(AMLParameters, "AzureMachineLearningParameters"); +@@clientName(AMLVectorizer, "AzureMachineLearningVectorizer"); +@@clientName(DataChangeDetectionPolicy.`@odata.type`, "odataType"); +@@clientName(DataChangeDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(DataDeletionDetectionPolicy.`@odata.type`, "odataType"); +@@clientName(DataDeletionDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SearchIndexerSkill.`@odata.type`, "odataType"); +@@clientName(SearchIndexerSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(CognitiveServicesAccount.`@odata.type`, "odataType"); +@@clientName(CognitiveServicesAccount.`@odata.type`, "odatatype", "javascript"); +@@clientName(LexicalAnalyzer.`@odata.type`, "odataType"); +@@clientName(LexicalAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(LexicalTokenizer.`@odata.type`, "odataType"); +@@clientName(LexicalTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(TokenFilter.`@odata.type`, "odataType"); +@@clientName(TokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(CharFilter.`@odata.type`, "odataType"); +@@clientName(CharFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(LexicalNormalizer.`@odata.type`, "odataType"); +@@clientName(LexicalNormalizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(SimilarityAlgorithm.`@odata.type`, "odataType"); +@@clientName(SimilarityAlgorithm.`@odata.type`, "odatatype", "javascript"); +@@clientName(CustomAnalyzer.`@odata.type`, "odataType"); +@@clientName(CustomAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(PatternAnalyzer.`@odata.type`, "odataType"); +@@clientName(PatternAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(LuceneStandardAnalyzer.`@odata.type`, "odataType"); +@@clientName(LuceneStandardAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(StopAnalyzer.`@odata.type`, "odataType"); +@@clientName(StopAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(CustomNormalizer.`@odata.type`, "odataType"); +@@clientName(CustomNormalizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(ClassicTokenizer.`@odata.type`, "odataType"); +@@clientName(ClassicTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(EdgeNGramTokenizer.`@odata.type`, "odataType"); +@@clientName(EdgeNGramTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeywordTokenizer.`@odata.type`, "odataType"); +@@clientName(KeywordTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeywordTokenizerV2.`@odata.type`, "odataType"); +@@clientName(KeywordTokenizerV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(MicrosoftLanguageTokenizer.`@odata.type`, "odataType"); +@@clientName(MicrosoftLanguageTokenizer.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(MicrosoftLanguageStemmingTokenizer.`@odata.type`, "odataType"); +@@clientName(MicrosoftLanguageStemmingTokenizer.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(NGramTokenizer.`@odata.type`, "odataType"); +@@clientName(NGramTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(PatternTokenizer.`@odata.type`, "odataType"); +@@clientName(PatternTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(LuceneStandardTokenizer.`@odata.type`, "odataType"); +@@clientName(LuceneStandardTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(LuceneStandardTokenizerV2.`@odata.type`, "odataType"); +@@clientName(LuceneStandardTokenizerV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(UaxUrlEmailTokenizer.`@odata.type`, "odataType"); +@@clientName(UaxUrlEmailTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(AsciiFoldingTokenFilter.`@odata.type`, "odataType"); +@@clientName(AsciiFoldingTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(CjkBigramTokenFilter.`@odata.type`, "odataType"); +@@clientName(CjkBigramTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(CommonGramTokenFilter.`@odata.type`, "odataType"); +@@clientName(CommonGramTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(DictionaryDecompounderTokenFilter.`@odata.type`, "odataType"); +@@clientName(DictionaryDecompounderTokenFilter.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(EdgeNGramTokenFilter.`@odata.type`, "odataType"); +@@clientName(EdgeNGramTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(EdgeNGramTokenFilterV2.`@odata.type`, "odataType"); +@@clientName(EdgeNGramTokenFilterV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(ElisionTokenFilter.`@odata.type`, "odataType"); +@@clientName(ElisionTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeepTokenFilter.`@odata.type`, "odataType"); +@@clientName(KeepTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeywordMarkerTokenFilter.`@odata.type`, "odataType"); +@@clientName(KeywordMarkerTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(LengthTokenFilter.`@odata.type`, "odataType"); +@@clientName(LengthTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(LimitTokenFilter.`@odata.type`, "odataType"); +@@clientName(LimitTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(NGramTokenFilter.`@odata.type`, "odataType"); +@@clientName(NGramTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(NGramTokenFilterV2.`@odata.type`, "odataType"); +@@clientName(NGramTokenFilterV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(PatternCaptureTokenFilter.`@odata.type`, "odataType"); +@@clientName(PatternCaptureTokenFilter.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(PatternReplaceTokenFilter.`@odata.type`, "odataType"); +@@clientName(PatternReplaceTokenFilter.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(PhoneticTokenFilter.`@odata.type`, "odataType"); +@@clientName(PhoneticTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(ShingleTokenFilter.`@odata.type`, "odataType"); +@@clientName(ShingleTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(SnowballTokenFilter.`@odata.type`, "odataType"); +@@clientName(SnowballTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(StemmerTokenFilter.`@odata.type`, "odataType"); +@@clientName(StemmerTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(StemmerOverrideTokenFilter.`@odata.type`, "odataType"); +@@clientName(StemmerOverrideTokenFilter.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(StopwordsTokenFilter.`@odata.type`, "odataType"); +@@clientName(StopwordsTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(SynonymTokenFilter.`@odata.type`, "odataType"); +@@clientName(SynonymTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(TruncateTokenFilter.`@odata.type`, "odataType"); +@@clientName(TruncateTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(UniqueTokenFilter.`@odata.type`, "odataType"); +@@clientName(UniqueTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(WordDelimiterTokenFilter.`@odata.type`, "odataType"); +@@clientName(WordDelimiterTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(MappingCharFilter.`@odata.type`, "odataType"); +@@clientName(MappingCharFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(PatternReplaceCharFilter.`@odata.type`, "odataType"); +@@clientName(PatternReplaceCharFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(ClassicSimilarityAlgorithm.`@odata.type`, "odataType"); +@@clientName(ClassicSimilarityAlgorithm.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(BM25SimilarityAlgorithm.`@odata.type`, "odataType"); +@@clientName(BM25SimilarityAlgorithm.`@odata.type`, "odatatype", "javascript"); +@@clientName(SearchIndexerDataIdentity.`@odata.type`, "odataType"); +@@clientName(SearchIndexerDataIdentity.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SearchIndexerDataNoneIdentity.`@odata.type`, "odataType"); +@@clientName(SearchIndexerDataNoneIdentity.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SearchIndexerDataUserAssignedIdentity.`@odata.type`, "odataType"); +@@clientName(SearchIndexerDataUserAssignedIdentity.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(HighWaterMarkChangeDetectionPolicy.`@odata.type`, "odataType"); +@@clientName(HighWaterMarkChangeDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SqlIntegratedChangeTrackingPolicy.`@odata.type`, "odataType"); +@@clientName(SqlIntegratedChangeTrackingPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SoftDeleteColumnDeletionDetectionPolicy.`@odata.type`, + "odataType" +); +@@clientName(SoftDeleteColumnDeletionDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(NativeBlobSoftDeleteDeletionDetectionPolicy.`@odata.type`, + "odataType" +); +@@clientName(NativeBlobSoftDeleteDeletionDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(DefaultCognitiveServicesAccount.`@odata.type`, "odataType"); +@@clientName(DefaultCognitiveServicesAccount.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(CognitiveServicesAccountKey.`@odata.type`, "odataType"); +@@clientName(CognitiveServicesAccountKey.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(AIServicesAccountKey.`@odata.type`, "odataType"); +@@clientName(AIServicesAccountKey.`@odata.type`, "odatatype", "javascript"); +@@clientName(AIServicesAccountIdentity.`@odata.type`, "odataType"); +@@clientName(AIServicesAccountIdentity.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(ConditionalSkill.`@odata.type`, "odataType"); +@@clientName(ConditionalSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeyPhraseExtractionSkill.`@odata.type`, "odataType"); +@@clientName(KeyPhraseExtractionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(OcrSkill.`@odata.type`, "odataType"); +@@clientName(OcrSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(ImageAnalysisSkill.`@odata.type`, "odataType"); +@@clientName(ImageAnalysisSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(LanguageDetectionSkill.`@odata.type`, "odataType"); +@@clientName(LanguageDetectionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(ShaperSkill.`@odata.type`, "odataType"); +@@clientName(ShaperSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(MergeSkill.`@odata.type`, "odataType"); +@@clientName(MergeSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(SentimentSkill.`@odata.type`, "odataType"); +@@clientName(SentimentSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(SentimentSkillV3.`@odata.type`, "odataType"); +@@clientName(SentimentSkillV3.`@odata.type`, "odatatype", "javascript"); +@@clientName(EntityLinkingSkill.`@odata.type`, "odataType"); +@@clientName(EntityLinkingSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(EntityRecognitionSkill.`@odata.type`, "odataType"); +@@clientName(EntityRecognitionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(EntityRecognitionSkillV3.`@odata.type`, "odataType"); +@@clientName(EntityRecognitionSkillV3.`@odata.type`, "odatatype", "javascript"); +@@clientName(PIIDetectionSkill.`@odata.type`, "odataType"); +@@clientName(PIIDetectionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(SplitSkill.`@odata.type`, "odataType"); +@@clientName(SplitSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(CustomEntityLookupSkill.`@odata.type`, "odataType"); +@@clientName(CustomEntityLookupSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(TextTranslationSkill.`@odata.type`, "odataType"); +@@clientName(TextTranslationSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(DocumentExtractionSkill.`@odata.type`, "odataType"); +@@clientName(DocumentExtractionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(DocumentIntelligenceLayoutSkill.`@odata.type`, "odataType"); +@@clientName(DocumentIntelligenceLayoutSkill.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(WebApiSkill.`@odata.type`, "odataType"); +@@clientName(WebApiSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(AzureMachineLearningSkill.`@odata.type`, "odataType"); +@@clientName(AzureMachineLearningSkill.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(AzureOpenAIEmbeddingSkill.`@odata.type`, "odataType"); +@@clientName(AzureOpenAIEmbeddingSkill.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(VisionVectorizeSkill.`@odata.type`, "odataType"); +@@clientName(VisionVectorizeSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(PathHierarchyTokenizerV2.`@odata.type`, "odataType"); +@@clientName(PathHierarchyTokenizerV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(ListIndexStatsSummary.value, "IndexesStatistics"); +@@clientName(Search.BM25SimilarityAlgorithm, "BM25Similarity", "javascript"); +@@clientName(Search.ClassicSimilarityAlgorithm, + "ClassicSimilarity", + "javascript" +); +@@clientName(Search.ChatCompletionCommonModelParameters, + "CommonModelParameters", + "javascript" +); +@@clientName(Search.SearchServiceCounters, "ServiceCounters", "javascript"); +@@clientName(Search.SearchServiceLimits, "ServiceLimits", "javascript"); + +// Knowledge Base types +@@clientNamespace(Search.AIServices, "Azure.Search.Documents.KnowledgeBase"); +@@clientNamespace(Search.AIServices, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.SynchronizationState, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.SynchronizationState, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.CompletedSynchronizationState, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.CompletedSynchronizationState, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalRequest, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalRequest, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalResponse, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalResponse, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalReasoningEffort, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalReasoningEffort, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalMinimalReasoningEffort, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalMinimalReasoningEffort, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalLowReasoningEffort, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalLowReasoningEffort, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalMediumReasoningEffort, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalMediumReasoningEffort, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalReasoningEffortKind, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalReasoningEffortKind, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalOutputMode, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalOutputMode, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.SearchIndexKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.SearchIndexKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.AzureBlobKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.AzureBlobKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.WebKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.WebKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceVectorizer, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceVectorizer, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceAzureOpenAIVectorizer, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceAzureOpenAIVectorizer, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceIngestionParameters, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceIngestionParameters, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceStatistics, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceStatistics, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceStatus, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceStatus, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalIntent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalIntent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalIntentType, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalIntentType, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalSemanticIntent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalSemanticIntent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessage, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessage, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessageContent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessageContent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessageContentType, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessageContentType, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessageTextContent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessageTextContent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessageImageContent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessageImageContent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseImageContent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseImageContent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseActivityRecordType, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseActivityRecordType, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseWebActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseWebActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseWebActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseWebActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseModelQueryPlanningActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseModelQueryPlanningActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseModelAnswerSynthesisActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseModelAnswerSynthesisActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAgenticReasoningActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseAgenticReasoningActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseReferenceType, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseReferenceType, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseWebReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseWebReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.SharePointSensitivityLabelInfo, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.SharePointSensitivityLabelInfo, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseErrorDetail, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseErrorDetail, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseErrorAdditionalInfo, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseErrorAdditionalInfo, + "com.azure.search.documents.knowledgebase", + "java" +); diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieve.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieve.json new file mode 100644 index 000000000000..b0425cc45671 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieve.json @@ -0,0 +1,289 @@ +{ + "operationId": "KnowledgeRetrieval_Retrieve", + "title": "KnowledgeBaseRetrieve", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": null, + "retrievalRequest": { + "messages": [ + { + "role": "user", + "content": [ + { + "text": "hello world", + "type": "text" + } + ] + } + ], + "maxRuntimeInSeconds": 60, + "maxOutputSize": 100000, + "retrievalReasoningEffort": { + "kind": "low" + }, + "includeActivity": true, + "outputMode": "answerSynthesis", + "knowledgeSourceParams": [ + { + "filterAddOn": "foo eq bar", + "knowledgeSourceName": "ks-preview-test", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "rerankerThreshold": 2.1, + "kind": "searchIndex" + } + ] + } + }, + "responses": { + "200": { + "body": { + "response": [ + { + "content": [ + { + "type": "text", + "text": "[{...}]" + } + ] + } + ], + "activity": [ + { + "type": "modelQueryPlanning", + "id": 0, + "inputTokens": 11, + "outputTokens": 22, + "elapsedMs": 10 + }, + { + "type": "searchIndex", + "id": 1, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "hello world", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "searchIndex", + "id": 2, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "hello world two", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "agenticReasoning", + "id": 3, + "retrievalReasoningEffort": { + "kind": "low" + }, + "reasoningTokens": 74 + }, + { + "type": "modelAnswerSynthesis", + "id": 4, + "inputTokens": 664, + "outputTokens": 1328, + "elapsedMs": 10 + } + ], + "references": [ + { + "type": "searchIndex", + "id": "83dd7d40", + "activitySource": 1, + "sourceData": { + "id": "myDocKey1", + "title": "high_doc", + "content": "hello world" + }, + "rerankerScore": 3.5, + "docKey": "myDocKey1" + }, + { + "type": "searchIndex", + "id": "83dd7d41", + "activitySource": 1, + "sourceData": { + "id": "myDocKey2", + "title": "low_doc", + "content": "goodbye world" + }, + "rerankerScore": 2.7, + "docKey": "myDocKey2" + } + ] + } + }, + "206": { + "body": { + "response": [ + { + "content": [ + { + "type": "text", + "text": "[{...}]" + } + ] + } + ], + "activity": [ + { + "type": "modelQueryPlanning", + "id": 0, + "inputTokens": 11, + "outputTokens": 22, + "elapsedMs": 10 + }, + { + "type": "searchIndex", + "id": 1, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "hello world", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "web", + "id": 2, + "knowledgeSourceName": "ks-preview-web", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 10, + "elapsedMs": 2345, + "error": { + "code": "403", + "message": "The error message", + "details": [], + "additionalInfo": [ + { + "type": "SomeErrorType", + "info": { + "someProperty": "Some value" + } + } + ] + } + }, + { + "type": "agenticReasoning", + "id": 3, + "retrievalReasoningEffort": { + "kind": "low" + }, + "reasoningTokens": 74 + }, + { + "type": "modelAnswerSynthesis", + "id": 4, + "inputTokens": 664, + "outputTokens": 1328, + "elapsedMs": 10 + } + ], + "references": [ + { + "type": "searchIndex", + "id": "83dd7d40", + "activitySource": 1, + "sourceData": { + "id": "myDocKey1", + "title": "high_doc", + "content": "hello world" + }, + "rerankerScore": 3.5, + "docKey": "myDocKey1" + }, + { + "type": "searchIndex", + "id": "83dd7d41", + "activitySource": 1, + "sourceData": { + "id": "myDocKey2", + "title": "low_doc", + "content": "goodbye world" + }, + "rerankerScore": 2.7, + "docKey": "myDocKey2" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieveWithIntents.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieveWithIntents.json new file mode 100644 index 000000000000..081cdacbfdfe --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieveWithIntents.json @@ -0,0 +1,224 @@ +{ + "operationId": "KnowledgeRetrieval_Retrieve", + "title": "KnowledgeBaseRetrieveWithIntents", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": null, + "retrievalRequest": { + "intents": [ + { + "search": "foo", + "type": "semantic" + } + ], + "maxRuntimeInSeconds": 60, + "maxOutputSize": 100000, + "retrievalReasoningEffort": { + "kind": "minimal" + }, + "includeActivity": true, + "outputMode": "extractiveData", + "knowledgeSourceParams": [ + { + "filterAddOn": "foo eq bar", + "knowledgeSourceName": "ks-preview-test", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": true, + "rerankerThreshold": 2.1, + "kind": "searchIndex" + } + ] + } + }, + "responses": { + "200": { + "body": { + "response": [ + { + "content": [ + { + "type": "text", + "text": "[{...}]" + } + ] + } + ], + "activity": [ + { + "type": "searchIndex", + "id": 0, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "foo", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "agenticReasoning", + "id": 1, + "retrievalReasoningEffort": { + "kind": "minimal" + }, + "reasoningTokens": 37 + } + ], + "references": [ + { + "type": "searchIndex", + "id": "83dd7d40", + "activitySource": 0, + "sourceData": { + "id": "myDocKey1", + "title": "high_doc", + "content": "hello world" + }, + "rerankerScore": 3.5, + "docKey": "myDocKey1" + }, + { + "type": "searchIndex", + "id": "83dd7d41", + "activitySource": 0, + "sourceData": { + "id": "myDocKey2", + "title": "low_doc", + "content": "goodbye world" + }, + "rerankerScore": 2.7, + "docKey": "myDocKey2" + } + ] + } + }, + "206": { + "body": { + "response": [ + { + "content": [ + { + "type": "text", + "text": "[{...}]" + } + ] + } + ], + "activity": [ + { + "type": "searchIndex", + "id": 0, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "foo", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "web", + "id": 1, + "knowledgeSourceName": "ks-preview-web", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 10, + "elapsedMs": 2345, + "error": { + "code": "403", + "message": "The error message", + "details": [], + "additionalInfo": [ + { + "type": "SomeErrorType", + "info": { + "someProperty": "Some value" + } + } + ] + } + }, + { + "type": "agenticReasoning", + "id": 2, + "retrievalReasoningEffort": { + "kind": "minimal" + }, + "reasoningTokens": 37 + } + ], + "references": [ + { + "type": "searchIndex", + "id": "83dd7d40", + "activitySource": 0, + "sourceData": { + "id": "myDocKey1", + "title": "high_doc", + "content": "hello world" + }, + "rerankerScore": 3.5, + "docKey": "myDocKey1" + }, + { + "type": "searchIndex", + "id": "83dd7d41", + "activitySource": 0, + "sourceData": { + "id": "myDocKey2", + "title": "low_doc", + "content": "goodbye world" + }, + "rerankerScore": 2.7, + "docKey": "myDocKey2" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsGet.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsGet.json new file mode 100644 index 000000000000..62755d8475ae --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsGet.json @@ -0,0 +1,40 @@ +{ + "operationId": "Documents_AutocompleteGet", + "title": "SearchIndexAutocompleteDocumentsGet", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "autocompleteMode": "oneTerm", + "search": "washington medic", + "suggesterName": "sg", + "filter": "search.in(docId,'101,102,105')", + "fuzzy": false, + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "searchFields": [ + "title", + "description" + ], + "top": 10 + }, + "responses": { + "200": { + "body": [ + { + "text": "medicaid", + "queryPlusText": "washington medicaid" + }, + { + "text": "medicare", + "queryPlusText": "washington medicare" + }, + { + "text": "medicine", + "queryPlusText": "washington medicine" + } + ] + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsPost.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsPost.json new file mode 100644 index 000000000000..1f6d0da6fe1e --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsPost.json @@ -0,0 +1,39 @@ +{ + "operationId": "Documents_AutocompletePost", + "title": "SearchIndexAutocompleteDocumentsPost", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "body": { + "search": "p", + "autocompleteMode": "oneTerm", + "filter": "ownerId ne '1'", + "fuzzy": true, + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "searchFields": "category, ownerId", + "suggesterName": "sg", + "top": 10 + } + }, + "responses": { + "200": { + "body": { + "@search.coverage": 100.0, + "value": [ + { + "text": "purple", + "queryPlusText": "purple" + }, + { + "text": "pink", + "queryPlusText": "pink" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexCountDocuments.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexCountDocuments.json new file mode 100644 index 000000000000..af9ada5a889b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexCountDocuments.json @@ -0,0 +1,15 @@ +{ + "operationId": "Documents_Count", + "title": "SearchIndexCountDocuments", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": 50 + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexGetDocument.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexGetDocument.json new file mode 100644 index 000000000000..f5a97cf1fd51 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexGetDocument.json @@ -0,0 +1,31 @@ +{ + "operationId": "Documents_Get", + "title": "SearchIndexGetDocument", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "key": "1", + "$select": [ + "id", + "description", + "name", + "category", + "ownerId" + ], + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": "00000000-0000-0000-0000-000000000000", + "x-ms-enable-elevated-read": true + }, + "responses": { + "200": { + "body": { + "id": "1", + "name": "test", + "description": "test1 hello", + "category": "purple", + "ownerId": "sam" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexIndexDocuments.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexIndexDocuments.json new file mode 100644 index 000000000000..bfba4226a626 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexIndexDocuments.json @@ -0,0 +1,3856 @@ +{ + "operationId": "Documents_Index", + "title": "SearchIndexIndexDocuments", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "batch": { + "value": [ + { + "@search.action": "mergeOrUpload", + "id": "0", + "name": "test", + "description": "test0 hello", + "vector1": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ], + "vector1b": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ], + "vector2": [ + 0, + 1, + 2, + 3, + 4 + ], + "vector3": [ + 0, + 1, + 2, + 3, + 4 + ], + "vector22": [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ], + "ownerId": "benny", + "category": "purple", + "price": 0 + }, + { + "@search.action": "mergeOrUpload", + "id": "1", + "name": "test", + "description": "test1 hello", + "vector1": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "vector1b": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "vector2": [ + 1, + 2, + 3, + 4, + 5 + ], + "vector3": [ + 1, + 2, + 3, + 4, + 5 + ], + "vector22": [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ], + "ownerId": "sam", + "category": "purple", + "price": 1 + }, + { + "@search.action": "mergeOrUpload", + "id": "2", + "name": "test", + "description": "test2 hello", + "vector1": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "vector1b": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "vector2": [ + 2, + 3, + 4, + 5, + 6 + ], + "vector3": [ + 2, + 3, + 4, + 5, + 6 + ], + "vector22": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ], + "ownerId": "sam", + "category": "purple", + "price": 2 + }, + { + "@search.action": "mergeOrUpload", + "id": "3", + "name": "test", + "description": "test3 hello", + "vector1": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "vector1b": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "vector2": [ + 3, + 4, + 5, + 6, + 7 + ], + "vector3": [ + 3, + 4, + 5, + 6, + 7 + ], + "vector22": [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ], + "ownerId": "ryan", + "category": "purple", + "price": 3 + }, + { + "@search.action": "mergeOrUpload", + "id": "4", + "name": "test", + "description": "test4 hello", + "vector1": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "vector1b": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "vector2": [ + 4, + 5, + 6, + 7, + 8 + ], + "vector3": [ + 4, + 5, + 6, + 7, + 8 + ], + "vector22": [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ], + "ownerId": "sam", + "category": "purple", + "price": 4 + }, + { + "@search.action": "mergeOrUpload", + "id": "5", + "name": "test", + "description": "test5 hello", + "vector1": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "vector1b": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "vector2": [ + 5, + 6, + 7, + 8, + 9 + ], + "vector3": [ + 5, + 6, + 7, + 8, + 9 + ], + "vector22": [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ], + "ownerId": "sam", + "category": "purple", + "price": 5 + }, + { + "@search.action": "mergeOrUpload", + "id": "6", + "name": "test", + "description": "test6 hello", + "vector1": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ], + "vector1b": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ], + "vector2": [ + 6, + 7, + 8, + 9, + 10 + ], + "vector3": [ + 6, + 7, + 8, + 9, + 10 + ], + "vector22": [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "ownerId": "ryan", + "category": "purple", + "price": 6 + }, + { + "@search.action": "mergeOrUpload", + "id": "7", + "name": "test", + "description": "test7 hello", + "vector1": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "vector1b": [ + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "vector2": [ + 7, + 8, + 9, + 10, + 11 + ], + "vector3": [ + 7, + 8, + 9, + 10, + 11 + ], + "vector22": [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "ownerId": "sam", + "category": "purple", + "price": 7 + }, + { + "@search.action": "mergeOrUpload", + "id": "8", + "name": "test", + "description": "test8 hello", + "vector1": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27 + ], + "vector1b": [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27 + ], + "vector2": [ + 8, + 9, + 10, + 11, + 12 + ], + "vector3": [ + 8, + 9, + 10, + 11, + 12 + ], + "vector22": [ + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ], + "ownerId": "sam", + "category": "purple", + "price": 8 + }, + { + "@search.action": "mergeOrUpload", + "id": "9", + "name": "test", + "description": "test9 hello", + "vector1": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "vector1b": [ + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "vector2": [ + 9, + 10, + 11, + 12, + 13 + ], + "vector3": [ + 9, + 10, + 11, + 12, + 13 + ], + "vector22": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + "ownerId": "ryan", + "category": "purple", + "price": 9 + }, + { + "@search.action": "mergeOrUpload", + "id": "10", + "name": "test", + "description": "test10 hello", + "vector1": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ], + "vector1b": [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ], + "vector2": [ + 10, + 11, + 12, + 13, + 14 + ], + "vector3": [ + 10, + 11, + 12, + 13, + 14 + ], + "vector22": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "ownerId": "benny", + "category": "purple", + "price": 10 + }, + { + "@search.action": "mergeOrUpload", + "id": "11", + "name": "test", + "description": "test11 hello", + "vector1": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ], + "vector1b": [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ], + "vector2": [ + 11, + 12, + 13, + 14, + 15 + ], + "vector3": [ + 11, + 12, + 13, + 14, + 15 + ], + "vector22": [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ], + "ownerId": "sam", + "category": "purple", + "price": 11 + }, + { + "@search.action": "mergeOrUpload", + "id": "12", + "name": "test", + "description": "test12 hello", + "vector1": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ], + "vector1b": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ], + "vector2": [ + 12, + 13, + 14, + 15, + 16 + ], + "vector3": [ + 12, + 13, + 14, + 15, + 16 + ], + "vector22": [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ], + "ownerId": "ryan", + "category": "purple", + "price": 12 + }, + { + "@search.action": "mergeOrUpload", + "id": "13", + "name": "test", + "description": "test13 hello", + "vector1": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ], + "vector1b": [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ], + "vector2": [ + 13, + 14, + 15, + 16, + 17 + ], + "vector3": [ + 13, + 14, + 15, + 16, + 17 + ], + "vector22": [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "ownerId": "sam", + "category": "purple", + "price": 13 + }, + { + "@search.action": "mergeOrUpload", + "id": "14", + "name": "test", + "description": "test14 hello", + "vector1": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ], + "vector1b": [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ], + "vector2": [ + 14, + 15, + 16, + 17, + 18 + ], + "vector3": [ + 14, + 15, + 16, + 17, + 18 + ], + "vector22": [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "ownerId": "sam", + "category": "purple", + "price": 14 + }, + { + "@search.action": "mergeOrUpload", + "id": "15", + "name": "test", + "description": "test15 hello", + "vector1": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ], + "vector1b": [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ], + "vector2": [ + 15, + 16, + 17, + 18, + 19 + ], + "vector3": [ + 15, + 16, + 17, + 18, + 19 + ], + "vector22": [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ], + "ownerId": "ryan", + "category": "purple", + "price": 15 + }, + { + "@search.action": "mergeOrUpload", + "id": "16", + "name": "test", + "description": "test16 hello", + "vector1": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "vector1b": [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "vector2": [ + 16, + 17, + 18, + 19, + 20 + ], + "vector3": [ + 16, + 17, + 18, + 19, + 20 + ], + "vector22": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "ownerId": "sam", + "category": "purple", + "price": 16 + }, + { + "@search.action": "mergeOrUpload", + "id": "17", + "name": "test", + "description": "test17 hello", + "vector1": [ + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "vector1b": [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "vector2": [ + 17, + 18, + 19, + 20, + 21 + ], + "vector3": [ + 17, + 18, + 19, + 20, + 21 + ], + "vector22": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ], + "ownerId": "sam", + "category": "purple", + "price": 17 + }, + { + "@search.action": "mergeOrUpload", + "id": "18", + "name": "test", + "description": "test18 hello", + "vector1": [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ], + "vector1b": [ + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ], + "vector2": [ + 18, + 19, + 20, + 21, + 22 + ], + "vector3": [ + 18, + 19, + 20, + 21, + 22 + ], + "vector22": [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "ownerId": "ryan", + "category": "purple", + "price": 18 + }, + { + "@search.action": "mergeOrUpload", + "id": "19", + "name": "test", + "description": "test19 hello", + "vector1": [ + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + "vector1b": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + "vector2": [ + 19, + 20, + 21, + 22, + 23 + ], + "vector3": [ + 19, + 20, + 21, + 22, + 23 + ], + "vector22": [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ], + "ownerId": "sam", + "category": "purple", + "price": 19 + }, + { + "@search.action": "mergeOrUpload", + "id": "20", + "name": "test", + "description": "test20 hello", + "vector1": [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "vector1b": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "vector2": [ + 20, + 21, + 22, + 23, + 24 + ], + "vector3": [ + 20, + 21, + 22, + 23, + 24 + ], + "vector22": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "ownerId": "benny", + "category": "purple", + "price": 20 + }, + { + "@search.action": "mergeOrUpload", + "id": "21", + "name": "test", + "description": "test21 hello", + "vector1": [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ], + "vector1b": [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ], + "vector2": [ + 21, + 22, + 23, + 24, + 25 + ], + "vector3": [ + 21, + 22, + 23, + 24, + 25 + ], + "vector22": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ], + "ownerId": "ryan", + "category": "purple", + "price": 21 + }, + { + "@search.action": "mergeOrUpload", + "id": "22", + "name": "test", + "description": "test22 hello", + "vector1": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ], + "vector1b": [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ], + "vector2": [ + 22, + 23, + 24, + 25, + 26 + ], + "vector3": [ + 22, + 23, + 24, + 25, + 26 + ], + "vector22": [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ], + "ownerId": "sam", + "category": "purple", + "price": 22 + }, + { + "@search.action": "mergeOrUpload", + "id": "23", + "name": "test", + "description": "test23 hello", + "vector1": [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "vector1b": [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "vector2": [ + 23, + 24, + 25, + 26, + 27 + ], + "vector3": [ + 23, + 24, + 25, + 26, + 27 + ], + "vector22": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ], + "ownerId": "sam", + "category": "purple", + "price": 23 + }, + { + "@search.action": "mergeOrUpload", + "id": "24", + "name": "test", + "description": "test24 hello", + "vector1": [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "vector1b": [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "vector2": [ + 24, + 25, + 26, + 27, + 28 + ], + "vector3": [ + 24, + 25, + 26, + 27, + 28 + ], + "vector22": [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "ownerId": "ryan", + "category": "purple", + "price": 24 + }, + { + "@search.action": "mergeOrUpload", + "id": "25", + "name": "test", + "description": "test25 hello", + "vector1": [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ], + "vector1b": [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ], + "vector2": [ + 25, + 26, + 27, + 28, + 29 + ], + "vector3": [ + 25, + 26, + 27, + 28, + 29 + ], + "vector22": [ + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ], + "ownerId": "sam", + "category": "pink", + "price": 25 + }, + { + "@search.action": "mergeOrUpload", + "id": "26", + "name": "test", + "description": "test26 hello", + "vector1": [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "vector1b": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "vector2": [ + 26, + 27, + 28, + 29, + 30 + ], + "vector3": [ + 26, + 27, + 28, + 29, + 30 + ], + "vector22": [ + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "ownerId": "sam", + "category": "pink", + "price": 26 + }, + { + "@search.action": "mergeOrUpload", + "id": "27", + "name": "test", + "description": "test27 hello", + "vector1": [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ], + "vector1b": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ], + "vector2": [ + 27, + 28, + 29, + 30, + 31 + ], + "vector3": [ + 27, + 28, + 29, + 30, + 31 + ], + "vector22": [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "ownerId": "ryan", + "category": "pink", + "price": 27 + }, + { + "@search.action": "mergeOrUpload", + "id": "28", + "name": "test", + "description": "test28 hello", + "vector1": [ + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "vector1b": [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "vector2": [ + 28, + 29, + 30, + 31, + 32 + ], + "vector3": [ + 28, + 29, + 30, + 31, + 32 + ], + "vector22": [ + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "ownerId": "sam", + "category": "pink", + "price": 28 + }, + { + "@search.action": "mergeOrUpload", + "id": "29", + "name": "test", + "description": "test29 hello", + "vector1": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ], + "vector1b": [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ], + "vector2": [ + 29, + 30, + 31, + 32, + 33 + ], + "vector3": [ + 29, + 30, + 31, + 32, + 33 + ], + "vector22": [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ], + "ownerId": "sam", + "category": "pink", + "price": 29 + }, + { + "@search.action": "mergeOrUpload", + "id": "30", + "name": "test", + "description": "test30 hello", + "vector1": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "vector1b": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "vector2": [ + 30, + 31, + 32, + 33, + 34 + ], + "vector3": [ + 30, + 31, + 32, + 33, + 34 + ], + "vector22": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "ownerId": "benny", + "category": "pink", + "price": 30 + }, + { + "@search.action": "mergeOrUpload", + "id": "31", + "name": "test", + "description": "test31 hello", + "vector1": [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ], + "vector1b": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ], + "vector2": [ + 31, + 32, + 33, + 34, + 35 + ], + "vector3": [ + 31, + 32, + 33, + 34, + 35 + ], + "vector22": [ + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60 + ], + "ownerId": "sam", + "category": "pink", + "price": 31 + }, + { + "@search.action": "mergeOrUpload", + "id": "32", + "name": "test", + "description": "test32 hello", + "vector1": [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ], + "vector1b": [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ], + "vector2": [ + 32, + 33, + 34, + 35, + 36 + ], + "vector3": [ + 32, + 33, + 34, + 35, + 36 + ], + "vector22": [ + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "ownerId": "sam", + "category": "pink", + "price": 32 + }, + { + "@search.action": "mergeOrUpload", + "id": "33", + "name": "test", + "description": "test33 hello", + "vector1": [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ], + "vector1b": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ], + "vector2": [ + 33, + 34, + 35, + 36, + 37 + ], + "vector3": [ + 33, + 34, + 35, + 36, + 37 + ], + "vector22": [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ], + "ownerId": "ryan", + "category": "pink", + "price": 33 + }, + { + "@search.action": "mergeOrUpload", + "id": "34", + "name": "test", + "description": "test34 hello", + "vector1": [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "vector1b": [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "vector2": [ + 34, + 35, + 36, + 37, + 38 + ], + "vector3": [ + 34, + 35, + 36, + 37, + 38 + ], + "vector22": [ + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "ownerId": "sam", + "category": "pink", + "price": 34 + }, + { + "@search.action": "mergeOrUpload", + "id": "35", + "name": "test", + "description": "test35 hello", + "vector1": [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ], + "vector1b": [ + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ], + "vector2": [ + 35, + 36, + 37, + 38, + 39 + ], + "vector3": [ + 35, + 36, + 37, + 38, + 39 + ], + "vector22": [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + "ownerId": "sam", + "category": "pink", + "price": 35 + }, + { + "@search.action": "mergeOrUpload", + "id": "36", + "name": "test", + "description": "test36 hello", + "vector1": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "vector1b": [ + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "vector2": [ + 36, + 37, + 38, + 39, + 40 + ], + "vector3": [ + 36, + 37, + 38, + 39, + 40 + ], + "vector22": [ + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + "ownerId": "ryan", + "category": "pink", + "price": 36 + }, + { + "@search.action": "mergeOrUpload", + "id": "37", + "name": "test", + "description": "test37 hello", + "vector1": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "vector1b": [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "vector2": [ + 37, + 38, + 39, + 40, + 41 + ], + "vector3": [ + 37, + 38, + 39, + 40, + 41 + ], + "vector22": [ + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ], + "ownerId": "sam", + "category": "pink", + "price": 37 + }, + { + "@search.action": "mergeOrUpload", + "id": "38", + "name": "test", + "description": "test38 hello", + "vector1": [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "vector1b": [ + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "vector2": [ + 38, + 39, + 40, + 41, + 42 + ], + "vector3": [ + 38, + 39, + 40, + 41, + 42 + ], + "vector22": [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67 + ], + "ownerId": "sam", + "category": "pink", + "price": 38 + }, + { + "@search.action": "mergeOrUpload", + "id": "39", + "name": "test", + "description": "test39 hello", + "vector1": [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ], + "vector1b": [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ], + "vector2": [ + 39, + 40, + 41, + 42, + 43 + ], + "vector3": [ + 39, + 40, + 41, + 42, + 43 + ], + "vector22": [ + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ], + "ownerId": "ryan", + "category": "pink", + "price": 39 + }, + { + "@search.action": "mergeOrUpload", + "id": "40", + "name": "test", + "description": "test40 hello", + "vector1": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "vector1b": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "vector2": [ + 40, + 41, + 42, + 43, + 44 + ], + "vector3": [ + 40, + 41, + 42, + 43, + 44 + ], + "vector22": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ], + "ownerId": "benny", + "category": "green", + "price": 40 + }, + { + "@search.action": "mergeOrUpload", + "id": "41", + "name": "test", + "description": "test41 hello", + "vector1": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60 + ], + "vector1b": [ + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60 + ], + "vector2": [ + 41, + 42, + 43, + 44, + 45 + ], + "vector3": [ + 41, + 42, + 43, + 44, + 45 + ], + "vector22": [ + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ], + "ownerId": "sam", + "category": "green", + "price": 41 + }, + { + "@search.action": "mergeOrUpload", + "id": "42", + "name": "test", + "description": "test42 hello", + "vector1": [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "vector1b": [ + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "vector2": [ + 42, + 43, + 44, + 45, + 46 + ], + "vector3": [ + 42, + 43, + 44, + 45, + 46 + ], + "vector22": [ + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ], + "ownerId": "ryan", + "category": "green", + "price": 42 + }, + { + "@search.action": "mergeOrUpload", + "id": "43", + "name": "test", + "description": "test43 hello", + "vector1": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ], + "vector1b": [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ], + "vector2": [ + 43, + 44, + 45, + 46, + 47 + ], + "vector3": [ + 43, + 44, + 45, + 46, + 47 + ], + "vector22": [ + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "ownerId": "sam", + "category": "green", + "price": 43 + }, + { + "@search.action": "mergeOrUpload", + "id": "44", + "name": "test", + "description": "test44 hello", + "vector1": [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "vector1b": [ + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "vector2": [ + 44, + 45, + 46, + 47, + 48 + ], + "vector3": [ + 44, + 45, + 46, + 47, + 48 + ], + "vector22": [ + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73 + ], + "ownerId": "sam", + "category": "green", + "price": 44 + }, + { + "@search.action": "mergeOrUpload", + "id": "45", + "name": "test", + "description": "test45 hello", + "vector1": [ + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + "vector1b": [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + "vector2": [ + 45, + 46, + 47, + 48, + 49 + ], + "vector3": [ + 45, + 46, + 47, + 48, + 49 + ], + "vector22": [ + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74 + ], + "ownerId": "ryan", + "category": "orange", + "price": 45 + }, + { + "@search.action": "mergeOrUpload", + "id": "46", + "name": "test", + "description": "test46 hello", + "vector1": [ + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + "vector1b": [ + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + "vector2": [ + 46, + 47, + 48, + 49, + 50 + ], + "vector3": [ + 46, + 47, + 48, + 49, + 50 + ], + "vector22": [ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75 + ], + "ownerId": "sam", + "category": "orange", + "price": 46 + }, + { + "@search.action": "mergeOrUpload", + "id": "47", + "name": "test", + "description": "test47 hello", + "vector1": [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ], + "vector1b": [ + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ], + "vector2": [ + 47, + 48, + 49, + 50, + 51 + ], + "vector3": [ + 47, + 48, + 49, + 50, + 51 + ], + "vector22": [ + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76 + ], + "ownerId": "sam", + "category": "orange", + "price": 47 + }, + { + "@search.action": "mergeOrUpload", + "id": "no-vectors", + "name": "test", + "description": "no vector", + "ownerId": "sam", + "category": "purple" + }, + { + "@search.action": "mergeOrUpload", + "id": "empty-vectors", + "name": "test", + "description": "no vector", + "ownerId": "sam", + "category": "purple" + } + ] + } + }, + "responses": { + "200": { + "body": { + "value": [ + { + "key": "0", + "status": true, + "statusCode": 201 + }, + { + "key": "1", + "status": true, + "statusCode": 201 + }, + { + "key": "2", + "status": true, + "statusCode": 201 + }, + { + "key": "3", + "status": true, + "statusCode": 201 + }, + { + "key": "4", + "status": true, + "statusCode": 201 + }, + { + "key": "5", + "status": true, + "statusCode": 201 + }, + { + "key": "6", + "status": true, + "statusCode": 201 + }, + { + "key": "7", + "status": true, + "statusCode": 201 + }, + { + "key": "8", + "status": true, + "statusCode": 201 + }, + { + "key": "9", + "status": true, + "statusCode": 201 + }, + { + "key": "10", + "status": true, + "statusCode": 201 + }, + { + "key": "11", + "status": true, + "statusCode": 201 + }, + { + "key": "12", + "status": true, + "statusCode": 201 + }, + { + "key": "13", + "status": true, + "statusCode": 201 + }, + { + "key": "14", + "status": true, + "statusCode": 201 + }, + { + "key": "15", + "status": true, + "statusCode": 201 + }, + { + "key": "16", + "status": true, + "statusCode": 201 + }, + { + "key": "17", + "status": true, + "statusCode": 201 + }, + { + "key": "18", + "status": true, + "statusCode": 201 + }, + { + "key": "19", + "status": true, + "statusCode": 201 + }, + { + "key": "20", + "status": true, + "statusCode": 201 + }, + { + "key": "21", + "status": true, + "statusCode": 201 + }, + { + "key": "22", + "status": true, + "statusCode": 201 + }, + { + "key": "23", + "status": true, + "statusCode": 201 + }, + { + "key": "24", + "status": true, + "statusCode": 201 + }, + { + "key": "25", + "status": true, + "statusCode": 201 + }, + { + "key": "26", + "status": true, + "statusCode": 201 + }, + { + "key": "27", + "status": true, + "statusCode": 201 + }, + { + "key": "28", + "status": true, + "statusCode": 201 + }, + { + "key": "29", + "status": true, + "statusCode": 201 + }, + { + "key": "30", + "status": true, + "statusCode": 201 + }, + { + "key": "31", + "status": true, + "statusCode": 201 + }, + { + "key": "32", + "status": true, + "statusCode": 201 + }, + { + "key": "33", + "status": true, + "statusCode": 201 + }, + { + "key": "34", + "status": true, + "statusCode": 201 + }, + { + "key": "35", + "status": true, + "statusCode": 201 + }, + { + "key": "36", + "status": true, + "statusCode": 201 + }, + { + "key": "37", + "status": true, + "statusCode": 201 + }, + { + "key": "38", + "status": true, + "statusCode": 201 + }, + { + "key": "39", + "status": true, + "statusCode": 201 + }, + { + "key": "40", + "status": true, + "statusCode": 201 + }, + { + "key": "41", + "status": true, + "statusCode": 201 + }, + { + "key": "42", + "status": true, + "statusCode": 201 + }, + { + "key": "43", + "status": true, + "statusCode": 201 + }, + { + "key": "44", + "status": true, + "statusCode": 201 + }, + { + "key": "45", + "status": true, + "statusCode": 201 + }, + { + "key": "46", + "status": true, + "statusCode": 201 + }, + { + "key": "47", + "status": true, + "statusCode": 201 + }, + { + "key": "no-vectors", + "status": true, + "statusCode": 201 + }, + { + "key": "empty-vectors", + "status": true, + "statusCode": 201 + } + ] + } + }, + "207": { + "body": { + "value": [ + { + "key": "0", + "status": true, + "statusCode": 201 + }, + { + "key": "1", + "status": true, + "statusCode": 201 + }, + { + "key": "2", + "status": true, + "statusCode": 201 + }, + { + "key": "3", + "status": true, + "statusCode": 201 + }, + { + "key": "4", + "status": true, + "statusCode": 201 + }, + { + "key": "5", + "status": true, + "statusCode": 201 + }, + { + "key": "6", + "status": true, + "statusCode": 201 + }, + { + "key": "7", + "status": true, + "statusCode": 201 + }, + { + "key": "8", + "status": true, + "statusCode": 201 + }, + { + "key": "9", + "status": true, + "statusCode": 201 + }, + { + "key": "10", + "status": true, + "statusCode": 201 + }, + { + "key": "11", + "status": true, + "statusCode": 201 + }, + { + "key": "12", + "status": true, + "statusCode": 201 + }, + { + "key": "13", + "status": true, + "statusCode": 201 + }, + { + "key": "14", + "status": true, + "statusCode": 201 + }, + { + "key": "15", + "status": true, + "statusCode": 201 + }, + { + "key": "16", + "status": true, + "statusCode": 201 + }, + { + "key": "17", + "status": true, + "statusCode": 201 + }, + { + "key": "18", + "status": true, + "statusCode": 201 + }, + { + "key": "19", + "status": true, + "statusCode": 201 + }, + { + "key": "20", + "status": true, + "statusCode": 201 + }, + { + "key": "21", + "status": true, + "statusCode": 201 + }, + { + "key": "22", + "status": true, + "statusCode": 201 + }, + { + "key": "23", + "status": true, + "statusCode": 201 + }, + { + "key": "24", + "status": true, + "statusCode": 201 + }, + { + "key": "25", + "status": true, + "statusCode": 201 + }, + { + "key": "26", + "status": true, + "statusCode": 201 + }, + { + "key": "27", + "status": true, + "statusCode": 201 + }, + { + "key": "28", + "status": true, + "statusCode": 201 + }, + { + "key": "29", + "status": true, + "statusCode": 201 + }, + { + "key": "30", + "status": true, + "statusCode": 201 + }, + { + "key": "31", + "status": true, + "statusCode": 201 + }, + { + "key": "32", + "status": true, + "statusCode": 201 + }, + { + "key": "33", + "status": true, + "statusCode": 201 + }, + { + "key": "34", + "status": true, + "statusCode": 201 + }, + { + "key": "35", + "status": true, + "statusCode": 201 + }, + { + "key": "36", + "status": true, + "statusCode": 201 + }, + { + "key": "37", + "status": true, + "statusCode": 201 + }, + { + "key": "38", + "status": true, + "statusCode": 201 + }, + { + "key": "39", + "status": true, + "statusCode": 201 + }, + { + "key": "40", + "status": true, + "statusCode": 201 + }, + { + "key": "41", + "status": true, + "statusCode": 201 + }, + { + "key": "42", + "status": true, + "statusCode": 201 + }, + { + "key": "43", + "status": true, + "statusCode": 201 + }, + { + "key": "44", + "status": true, + "statusCode": 201 + }, + { + "key": "45", + "status": true, + "statusCode": 201 + }, + { + "key": "46", + "status": true, + "statusCode": 201 + }, + { + "key": "47", + "status": true, + "statusCode": 201 + }, + { + "key": "no-vectors", + "status": true, + "statusCode": 201 + }, + { + "key": "empty-vectors", + "status": true, + "statusCode": 201 + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsGet.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsGet.json new file mode 100644 index 000000000000..7e702dd46109 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsGet.json @@ -0,0 +1,133 @@ +{ + "operationId": "Documents_SearchGet", + "title": "SearchIndexSearchDocumentsGet", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": "AZURE_AD_ACCESS_TOKEN", + "x-ms-enable-elevated-read": true, + "$count": true, + "facet": [ + "category,count:10,sort:count" + ], + "$filter": "rating gt 10", + "highlight": [ + "title" + ], + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "$orderby": [ + "search.score() desc", + "rating desc" + ], + "queryType": "simple", + "sessionId": "mysessionid", + "scoringStatistics": "global", + "scoringParameters": [ + "currentLocation--122.123,44.77233" + ], + "scoringProfile": "sp", + "search": "nice hotels", + "searchFields": [ + "title", + "description" + ], + "searchMode": "any", + "$select": [ + "docId", + "title", + "description" + ], + "$skip": 100, + "$top": 10 + }, + "responses": { + "200": { + "body": { + "@odata.count": 25, + "@search.coverage": 80, + "@search.facets": { + "category": [ + { + "count": 1, + "value": "Economy" + }, + { + "count": 1, + "value": "Luxury" + } + ] + }, + "value": [ + { + "@search.score": 1.5, + "@search.highlights": { + "title": [ + "Nice Hotel" + ] + }, + "description": "Cheapest hotel in town", + "docId": "1", + "title": "Nice Hotel" + }, + { + "@search.score": 0.7, + "@search.highlights": { + "title": [ + "Fancy Hotel" + ] + }, + "description": "Best hotel in town", + "docId": "2", + "title": "Fancy Hotel" + } + ] + } + }, + "206": { + "body": { + "@odata.count": 25, + "@search.coverage": 80, + "@search.facets": { + "category": [ + { + "count": 1, + "value": "Economy" + }, + { + "count": 1, + "value": "Luxury" + } + ] + }, + "value": [ + { + "@search.score": 1.5, + "@search.highlights": { + "title": [ + "Nice Hotel" + ] + }, + "description": "Cheapest hotel in town", + "docId": "1", + "title": "Nice Hotel" + }, + { + "@search.score": 0.7, + "@search.highlights": { + "title": [ + "Fancy Hotel" + ] + }, + "description": "Best hotel in town", + "docId": "2", + "title": "Fancy Hotel" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsPost.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsPost.json new file mode 100644 index 000000000000..6b63ff5e7598 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsPost.json @@ -0,0 +1,820 @@ +{ + "operationId": "Documents_SearchPost", + "title": "SearchIndexSearchDocumentsPost", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": "00000000-0000-0000-0000-000000000000", + "x-ms-enable-elevated-read": true, + "body": { + "count": true, + "facets": [ + "ownerId", + "price,metric:sum,default:10" + ], + "filter": "category eq 'purple' or category eq 'pink'", + "highlight": "category", + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 100, + "queryType": "semantic", + "scoringStatistics": "global", + "sessionId": "mysessionid", + "scoringParameters": [ + "categoryTag:desiredCategoryValue" + ], + "scoringProfile": "stringFieldBoost", + "debug": "vector", + "search": "purple", + "searchFields": "id,name,description,category,ownerId", + "searchMode": "any", + "queryLanguage": "en-us", + "speller": "lexicon", + "select": "id,name,description,category,ownerId", + "skip": 0, + "top": 10, + "semanticConfiguration": "testconfig", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 5000, + "semanticQuery": "find all purple", + "answers": "extractive", + "captions": "extractive", + "queryRewrites": "generative", + "vectorQueries": [ + { + "vector": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "kind": "vector", + "k": 50, + "fields": "vector22, vector1b", + "oversampling": 20, + "weight": 1, + "threshold": { + "value": 0.984, + "kind": "vectorSimilarity" + }, + "filterOverride": "ownerId eq 'sam'" + } + ], + "vectorFilterMode": "preFilter", + "hybridSearch": { + "maxTextRecallSize": 100, + "countAndFacetMode": "countAllResults" + } + } + }, + "responses": { + "200": { + "body": { + "@odata.count": 27, + "@search.coverage": 100.0, + "@search.facets": { + "ownerId": [ + { + "count": 16, + "value": "sam" + }, + { + "count": 8, + "value": "ryan" + }, + { + "count": 3, + "value": "benny" + } + ], + "price": [ + { + "sum": 320.0 + } + ] + }, + "@search.answers": [], + "value": [ + { + "@search.score": 0.015625, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7178425788879395, + "@search.rerankerBoostedScore": 1.7178425788879395, + "@search.captions": [ + { + "text": "test10 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 27.725889205932617 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "10", + "name": "test", + "description": "test10 hello", + "category": "purple", + "ownerId": "benny" + }, + { + "@search.score": 0.012820512987673283, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7079174518585205, + "@search.rerankerBoostedScore": 1.7079174518585205, + "@search.captions": [ + { + "text": "no vector.", + "highlights": "no vector." + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 21.559860229492188 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "empty-vectors", + "name": "test", + "description": "no vector", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.011627906933426857, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7079174518585205, + "@search.rerankerBoostedScore": 1.7079174518585205, + "@search.captions": [ + { + "text": "no vector.", + "highlights": "no vector." + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "no-vectors", + "name": "test", + "description": "no vector", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.011904762126505375, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6994102001190186, + "@search.rerankerBoostedScore": 1.6994102001190186, + "@search.captions": [ + { + "text": "test4 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "4", + "name": "test", + "description": "test4 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.012345679104328156, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6937386989593506, + "@search.rerankerBoostedScore": 1.6937386989593506, + "@search.captions": [ + { + "text": "test2 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "2", + "name": "test", + "description": "test2 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.0117647061124444, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6923208236694336, + "@search.rerankerBoostedScore": 1.6923208236694336, + "@search.captions": [ + { + "text": "test5 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "5", + "name": "test", + "description": "test5 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.01666666753590107, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.691611886024475, + "@search.rerankerBoostedScore": 1.691611886024475, + "@search.captions": [ + { + "text": "test7 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 39.23316955566406 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "7", + "name": "test", + "description": "test7 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.013698630034923553, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6781420707702637, + "@search.rerankerBoostedScore": 1.6781420707702637, + "@search.captions": [ + { + "text": "test0 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 21.559860229492188 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "0", + "name": "test", + "description": "test0 hello", + "category": "purple", + "ownerId": "benny" + }, + { + "@search.score": 0.013888888992369175, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6653810739517212, + "@search.rerankerBoostedScore": 1.6653810739517212, + "@search.captions": [ + { + "text": "test8 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 23.01456642150879 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "8", + "name": "test", + "description": "test8 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.012658228166401386, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6618363857269287, + "@search.rerankerBoostedScore": 1.6618363857269287, + "@search.captions": [ + { + "text": "test11 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "11", + "name": "test", + "description": "test11 hello", + "category": "purple", + "ownerId": "sam" + } + ] + } + }, + "206": { + "body": { + "@odata.count": 27, + "@search.coverage": 100.0, + "@search.facets": { + "ownerId": [ + { + "count": 16, + "value": "sam" + }, + { + "count": 8, + "value": "ryan" + }, + { + "count": 3, + "value": "benny" + } + ], + "price": [ + { + "sum": 320.0 + } + ] + }, + "@search.answers": [], + "value": [ + { + "@search.score": 0.015625, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7178425788879395, + "@search.rerankerBoostedScore": 1.7178425788879395, + "@search.captions": [ + { + "text": "test10 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 27.725889205932617 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "10", + "name": "test", + "description": "test10 hello", + "category": "purple", + "ownerId": "benny" + }, + { + "@search.score": 0.012820512987673283, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7079174518585205, + "@search.rerankerBoostedScore": 1.7079174518585205, + "@search.captions": [ + { + "text": "no vector.", + "highlights": "no vector." + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 21.559860229492188 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "empty-vectors", + "name": "test", + "description": "no vector", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.011627906933426857, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7079174518585205, + "@search.rerankerBoostedScore": 1.7079174518585205, + "@search.captions": [ + { + "text": "no vector.", + "highlights": "no vector." + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "no-vectors", + "name": "test", + "description": "no vector", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.011904762126505375, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6994102001190186, + "@search.rerankerBoostedScore": 1.6994102001190186, + "@search.captions": [ + { + "text": "test4 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "4", + "name": "test", + "description": "test4 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.012345679104328156, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6937386989593506, + "@search.rerankerBoostedScore": 1.6937386989593506, + "@search.captions": [ + { + "text": "test2 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "2", + "name": "test", + "description": "test2 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.0117647061124444, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6923208236694336, + "@search.rerankerBoostedScore": 1.6923208236694336, + "@search.captions": [ + { + "text": "test5 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "5", + "name": "test", + "description": "test5 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.01666666753590107, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.691611886024475, + "@search.rerankerBoostedScore": 1.691611886024475, + "@search.captions": [ + { + "text": "test7 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 39.23316955566406 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "7", + "name": "test", + "description": "test7 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.013698630034923553, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6781420707702637, + "@search.rerankerBoostedScore": 1.6781420707702637, + "@search.captions": [ + { + "text": "test0 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 21.559860229492188 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "0", + "name": "test", + "description": "test0 hello", + "category": "purple", + "ownerId": "benny" + }, + { + "@search.score": 0.013888888992369175, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6653810739517212, + "@search.rerankerBoostedScore": 1.6653810739517212, + "@search.captions": [ + { + "text": "test8 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 23.01456642150879 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "8", + "name": "test", + "description": "test8 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.012658228166401386, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6618363857269287, + "@search.rerankerBoostedScore": 1.6618363857269287, + "@search.captions": [ + { + "text": "test11 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "11", + "name": "test", + "description": "test11 hello", + "category": "purple", + "ownerId": "sam" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticGet.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticGet.json new file mode 100644 index 000000000000..b0ff6ad39cc8 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticGet.json @@ -0,0 +1,87 @@ +{ + "operationId": "Documents_SearchGet", + "title": "SearchIndexSearchDocumentsSemanticGet", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "$count": true, + "highlightPostTag": "", + "highlightPreTag": "", + "queryType": "semantic", + "search": "how do clouds form", + "semanticConfiguration": "my-semantic-config", + "answers": "extractive|count-3", + "captions": "extractive|highlight-true", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 780 + }, + "responses": { + "200": { + "body": { + "@odata.count": 25, + "@search.answers": [ + { + "key": "4123", + "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "score": 0.94639826 + } + ], + "value": [ + { + "@search.score": 0.5479723, + "@search.rerankerScore": 1.0321671911515296, + "@search.captions": [ + { + "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.", + "highlights": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America." + } + ], + "id": "4123", + "title": "Earth Atmosphere", + "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n", + "locations": [ + "Pacific Northwest", + "North America", + "Vancouver" + ] + } + ] + } + }, + "206": { + "body": { + "@odata.count": 25, + "@search.answers": [ + { + "key": "4123", + "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "score": 0.94639826 + } + ], + "value": [ + { + "@search.score": 0.5479723, + "@search.rerankerScore": 1.0321671911515296, + "@search.captions": [ + { + "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.", + "highlights": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America." + } + ], + "id": "4123", + "title": "Earth Atmosphere", + "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n", + "locations": [ + "Pacific Northwest", + "North America", + "Vancouver" + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticPost.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticPost.json new file mode 100644 index 000000000000..5e166522badc --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticPost.json @@ -0,0 +1,119 @@ +{ + "operationId": "Documents_SearchPost", + "title": "SearchIndexSearchDocumentsSemanticPost", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "body": { + "count": true, + "highlightPostTag": "", + "highlightPreTag": "", + "queryType": "semantic", + "search": "how do clouds form", + "semanticConfiguration": "my-semantic-config", + "answers": "extractive|count-3", + "captions": "extractive|highlight-true", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 780 + } + }, + "responses": { + "200": { + "body": { + "@odata.count": 25, + "@search.answers": [ + { + "key": "4123", + "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "score": 0.94639826 + } + ], + "@search.nextPageParameters": { + "count": true, + "highlightPostTag": "", + "highlightPreTag": "", + "queryType": "semantic", + "search": "how do clouds form", + "semanticConfiguration": "my-semantic-config", + "answers": "extractive|count-3", + "captions": "extractive|highlight-true", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 780, + "skip": 2, + "top": 8 + }, + "value": [ + { + "@search.score": 0.5479723, + "@search.rerankerScore": 1.0321671911515296, + "@search.captions": [ + { + "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.", + "highlights": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America." + } + ], + "id": "4123", + "title": "Earth Atmosphere", + "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n", + "locations": [ + "Pacific Northwest", + "North America", + "Vancouver" + ] + } + ], + "@odata.nextLink": "https://myservice.search.windows.net/indexes('myindex')/docs/search.post.search?api-version=2025-05-01-preview" + } + }, + "206": { + "body": { + "@odata.count": 25, + "@search.answers": [ + { + "key": "4123", + "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "score": 0.94639826 + } + ], + "@search.nextPageParameters": { + "count": true, + "highlightPostTag": "", + "highlightPreTag": "", + "queryType": "semantic", + "search": "how do clouds form", + "semanticConfiguration": "my-semantic-config", + "answers": "extractive|count-3", + "captions": "extractive|highlight-true", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 780, + "skip": 2, + "top": 8 + }, + "value": [ + { + "@search.score": 0.5479723, + "@search.rerankerScore": 1.0321671911515296, + "@search.captions": [ + { + "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.", + "highlights": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America." + } + ], + "id": "4123", + "title": "Earth Atmosphere", + "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n", + "locations": [ + "Pacific Northwest", + "North America", + "Vancouver" + ] + } + ], + "@odata.nextLink": "https://myservice.search.windows.net/indexes('myindex')/docs/search.post.search?api-version=2025-05-01-preview" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsGet.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsGet.json new file mode 100644 index 000000000000..e83526263df9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsGet.json @@ -0,0 +1,49 @@ +{ + "operationId": "Documents_SuggestGet", + "title": "SearchIndexSuggestDocumentsGet", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "$filter": "rating gt 10", + "fuzzy": false, + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "$orderby": [ + "search.score() desc", + "rating desc" + ], + "search": "hote", + "searchFields": [ + "title" + ], + "suggesterName": "sg", + "$select": [ + "docId", + "title", + "description" + ], + "$top": 10 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@search.text": "Nice Hotel", + "description": "Cheapest hotel in town", + "docId": "1", + "title": "Nice Hotel" + }, + { + "@search.text": "Fancy Hotel", + "description": "Best hotel in town", + "docId": "2", + "title": "Fancy Hotel" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsPost.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsPost.json new file mode 100644 index 000000000000..5f75e84ccb39 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsPost.json @@ -0,0 +1,60 @@ +{ + "operationId": "Documents_SuggestPost", + "title": "SearchIndexSuggestDocumentsPost", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "body": { + "filter": "ownerId eq 'sam' and id lt '15'", + "fuzzy": true, + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "orderby": "id desc", + "search": "p", + "searchFields": "category", + "select": "id,name,category,ownerId", + "suggesterName": "sg", + "top": 10 + } + }, + "responses": { + "200": { + "body": { + "@search.coverage": 100.0, + "value": [ + { + "@search.text": "purple", + "id": "14", + "name": "test", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.text": "purple", + "id": "13", + "name": "test", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.text": "purple", + "id": "11", + "name": "test", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.text": "purple", + "id": "1", + "name": "test", + "category": "purple", + "ownerId": "sam" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateAlias.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateAlias.json new file mode 100644 index 000000000000..90efedba46ad --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateAlias.json @@ -0,0 +1,26 @@ +{ + "operationId": "Aliases_Create", + "title": "SearchServiceCreateAlias", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "alias": { + "name": "tempalias", + "indexes": [ + "preview-test" + ], + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "name": "tempalias", + "indexes": [ + "preview-test" + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json new file mode 100644 index 000000000000..afae76cb7af9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json @@ -0,0 +1,64 @@ +{ + "operationId": "DataSources_Create", + "title": "SearchServiceCreateDataSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "dataSource": { + "name": "tempdatasource", + "description": "My Azure Blob data source.", + "type": "azureblob", + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "doc-extraction-skillset", + "query": "E2E_Dsat" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + }, + "dataChangeDetectionPolicy": { + "highWaterMarkColumnName": "metadata_storage_last_modified", + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy" + }, + "dataDeletionDetectionPolicy": { + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true", + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy" + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempdatasource", + "description": "My Azure Blob data source.", + "type": "azureblob", + "indexerPermissionOptions": [], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "doc-extraction-skillset", + "query": "E2E_Dsat" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndex.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndex.json new file mode 100644 index 000000000000..5680442ade41 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndex.json @@ -0,0 +1,860 @@ +{ + "operationId": "Indexes_Create", + "title": "SearchServiceCreateIndex", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "index": { + "name": "temp-preview-test", + "description": "description", + "fields": [ + { + "name": "id", + "type": "Edm.String", + "key": true, + "sortable": true + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 20, + "vectorSearchProfile": "config1" + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 10, + "vectorSearchProfile": "config2" + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 5, + "vectorSearchProfile": "config3" + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 5, + "vectorSearchProfile": "config3" + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 10, + "vectorSearchProfile": "config2" + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 32, + "vectorSearchProfile": "config4" + }, + { + "name": "name", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "description", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "standard.lucene" + }, + { + "name": "category", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "ownerId", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "price", + "type": "Edm.Double", + "retrievable": true, + "filterable": true, + "sortable": true, + "facetable": true + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "retrievable": true, + "filterable": true, + "sortable": false, + "facetable": true, + "permissionFilter": "userIds" + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "retrievable": true, + "filterable": true, + "sortable": false, + "facetable": true, + "sensitivityLabel": true + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "text": { + "weights": { + "name": 3, + "description": 1, + "category": 2, + "ownerId": 1 + } + }, + "functions": [ + { + "tag": { + "tagsParameter": "categoryTag" + }, + "type": "tag", + "fieldName": "category", + "boost": 2 + } + ] + } + ], + "defaultScoringProfile": "stringFieldBoost", + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ], + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer" + } + ], + "tokenizers": [ + { + "maxTokenLength": 100, + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer" + } + ], + "tokenFilters": [ + { + "preserveOriginal": false, + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter" + } + ], + "charFilters": [ + { + "mappings": [ + ".=>,", + "_=>-" + ], + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping" + } + ], + "normalizers": [ + { + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ], + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer" + } + ], + "similarity": { + "k1": 10, + "b": 0.1, + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity" + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + }, + "rankingOrder": "BoostedRerankerScore", + "flightingOptIn": true + } + ] + }, + "vectorSearch": { + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "algorithms": [ + { + "hnswParameters": { + "metric": "cosine" + }, + "name": "cosine", + "kind": "hnsw" + }, + { + "hnswParameters": { + "metric": "euclidean" + }, + "name": "euclidean", + "kind": "hnsw" + }, + { + "hnswParameters": { + "metric": "dotProduct" + }, + "name": "dotProduct", + "kind": "hnsw" + } + ], + "vectorizers": [ + { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "name": "openai", + "kind": "azureOpenAI" + }, + { + "customWebApiParameters": { + "uri": "https://my-custom-endpoint.org/", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "httpMethod": "POST", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + }, + "name": "custom-web-api", + "kind": "customWebApi" + }, + { + "amlParameters": { + "uri": "https://my-custom-endpoint.org/", + "resourceId": "aml resource id", + "timeout": "PT1M", + "region": "aml region", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + }, + "name": "aml", + "kind": "aml" + }, + { + "amlParameters": { + "uri": "https://my-custom-endpoint.org/", + "resourceId": "aml resource id", + "timeout": "PT1M", + "region": "aml region", + "modelName": "Cohere-embed-v4" + }, + "name": "aml-cohere", + "kind": "aml" + } + ], + "compressions": [ + { + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "name": "mySQ8", + "kind": "scalarQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "preserveOriginals" + }, + "truncationDimension": 2 + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "preserveOriginals" + }, + "truncationDimension": 2 + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "discardOriginals" + }, + "truncationDimension": 2 + } + ] + }, + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "temp-preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndexer.json new file mode 100644 index 000000000000..f3899ae9b5f5 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndexer.json @@ -0,0 +1,138 @@ +{ + "operationId": "Indexers_Create", + "title": "SearchServiceCreateIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "indexer": { + "name": "myindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestdatasource", + "skillsetName": "myskillset", + "targetIndexName": "preview-test", + "schedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": { + "parsingMode": "markdown", + "excludedFileNameExtensions": ".png,.mp4", + "indexedFileNameExtensions": ".docx,.pptx", + "failOnUnsupportedContentType": true, + "failOnUnprocessableDocument": false, + "indexStorageMetadataOnlyForOversizedDocuments": true, + "delimitedTextHeaders": "Header1,Header2", + "delimitedTextDelimiter": "|", + "firstLineContainsHeaders": true, + "markdownParsingSubmode": "oneToMany", + "markdownHeaderDepth": "h6", + "documentRoot": "/root", + "dataToExtract": "storageMetadata", + "imageAction": "none", + "allowSkillsetToReadFileData": false, + "pdfTextRotationAlgorithm": "none", + "executionEnvironment": "standard" + } + }, + "fieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "disabled": false, + "@odata.etag": "0x1234568AE7E58A1", + "cache": { + "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "enableReprocessing": true, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestdatasource", + "skillsetName": "myskillset", + "targetIndexName": "preview-test", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": { + "parsingMode": "markdown", + "excludedFileNameExtensions": ".png,.mp4", + "indexedFileNameExtensions": ".docx,.pptx", + "failOnUnsupportedContentType": true, + "failOnUnprocessableDocument": false, + "indexStorageMetadataOnlyForOversizedDocuments": true, + "delimitedTextHeaders": "Header1,Header2", + "delimitedTextDelimiter": "|", + "firstLineContainsHeaders": true, + "markdownParsingSubmode": "oneToMany", + "markdownHeaderDepth": "h6", + "documentRoot": "/root", + "dataToExtract": "storageMetadata", + "imageAction": "none", + "allowSkillsetToReadFileData": false, + "pdfTextRotationAlgorithm": "none", + "executionEnvironment": "standard" + } + }, + "fieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "cache": { + "id": "00000000-0000-0000-0000-000000000000", + "enableReprocessing": true, + "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeAgent.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeAgent.json new file mode 100644 index 000000000000..51e16e65e2bc --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeAgent.json @@ -0,0 +1,65 @@ +{ + "operationId": "KnowledgeAgents_Create", + "title": "SearchServiceCreateKnowledgeAgent", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeAgent": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "apiKey": "myApiKey", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis" + } + } + }, + "responses": { + "201": { + "body": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis" + }, + "eTag": "0x8D9A1234567890A" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeBase.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeBase.json new file mode 100644 index 000000000000..81f4c90d356d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeBase.json @@ -0,0 +1,85 @@ +{ + "operationId": "KnowledgeBases_Create", + "title": "SearchServiceCreateKnowledgeBase", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeBase": { + "name": "base-preview-test", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4.1-nano" + }, + "kind": "azureOpenAI" + } + ], + "retrievalReasoningEffort": { + "kind": "low" + }, + "outputMode": "extractiveData", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis." + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4.1-nano" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSource.json new file mode 100644 index 000000000000..1c354bba5efa --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSource.json @@ -0,0 +1,77 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "searchIndexParameters": { + "searchIndexName": "preview-test", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "searchIndex", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json new file mode 100644 index 000000000000..107a63564eb5 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json @@ -0,0 +1,139 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSourceAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "azureBlob", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedOneLake.json new file mode 100644 index 000000000000..d424949afe6f --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedOneLake.json @@ -0,0 +1,131 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSourceIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the OneLake knowledge source.", + "kind": "indexedOneLake", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json new file mode 100644 index 000000000000..ebeeddffdd0e --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json @@ -0,0 +1,131 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSourceIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the SharePoint knowledge source.", + "kind": "indexedSharePoint", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceWeb.json new file mode 100644 index 000000000000..4624d23074db --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceWeb.json @@ -0,0 +1,87 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSourceWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "web", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateAlias.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateAlias.json new file mode 100644 index 000000000000..cee4bbc56f7b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateAlias.json @@ -0,0 +1,38 @@ +{ + "operationId": "Aliases_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateAlias", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "aliasName": "myalias", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "alias": { + "name": "myalias", + "indexes": [ + "preview-test" + ], + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "name": "myalias", + "indexes": [ + "preview-test" + ] + } + }, + "201": { + "body": { + "name": "myalias", + "indexes": [ + "preview-test" + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json new file mode 100644 index 000000000000..c004be55155a --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json @@ -0,0 +1,110 @@ +{ + "operationId": "DataSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateDataSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "dataSourceName": "tempdatasource", + "api-version": "2025-11-01-preview", + "ignoreResetRequirements": null, + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "dataSource": { + "name": "tempdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + }, + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "dataChangeDetectionPolicy": { + "highWaterMarkColumnName": "metadata_storage_last_modified", + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy" + }, + "dataDeletionDetectionPolicy": { + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true", + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy" + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndex.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndex.json new file mode 100644 index 000000000000..8a8ae2a28194 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndex.json @@ -0,0 +1,1327 @@ +{ + "operationId": "Indexes_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateIndex", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "temp-preview-test", + "allowIndexDowntime": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "index": { + "name": "temp-preview-test", + "description": "description", + "fields": [ + { + "name": "id", + "type": "Edm.String", + "key": true, + "sortable": true + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 20, + "vectorSearchProfile": "config1" + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 10, + "vectorSearchProfile": "config2" + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 5, + "vectorSearchProfile": "config3" + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 5, + "vectorSearchProfile": "config3" + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 10, + "vectorSearchProfile": "config2" + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 32, + "vectorSearchProfile": "config4" + }, + { + "name": "name", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "description", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "standard.lucene" + }, + { + "name": "category", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "ownerId", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "price", + "type": "Edm.Double", + "retrievable": true, + "filterable": true, + "sortable": true, + "facetable": true + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "retrievable": true, + "filterable": true, + "sortable": false, + "facetable": true, + "permissionFilter": "userIds" + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "retrievable": true, + "filterable": true, + "sortable": false, + "facetable": true, + "sensitivityLabel": true + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "text": { + "weights": { + "name": 3, + "description": 1, + "category": 2, + "ownerId": 1 + } + }, + "functions": [ + { + "tag": { + "tagsParameter": "categoryTag" + }, + "type": "tag", + "fieldName": "category", + "boost": 2 + } + ] + } + ], + "defaultScoringProfile": "stringFieldBoost", + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ], + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer" + } + ], + "tokenizers": [ + { + "maxTokenLength": 100, + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer" + } + ], + "tokenFilters": [ + { + "preserveOriginal": false, + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter" + } + ], + "charFilters": [ + { + "mappings": [ + ".=>,", + "_=>-" + ], + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping" + } + ], + "normalizers": [ + { + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ], + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer" + } + ], + "similarity": { + "k1": 10, + "b": 0.1, + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity" + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + }, + "rankingOrder": "BoostedRerankerScore", + "flightingOptIn": true + } + ] + }, + "vectorSearch": { + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "algorithms": [ + { + "hnswParameters": { + "metric": "cosine" + }, + "name": "cosine", + "kind": "hnsw" + }, + { + "hnswParameters": { + "metric": "euclidean" + }, + "name": "euclidean", + "kind": "hnsw" + }, + { + "hnswParameters": { + "metric": "dotProduct" + }, + "name": "dotProduct", + "kind": "hnsw" + } + ], + "vectorizers": [ + { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "name": "openai", + "kind": "azureOpenAI" + }, + { + "customWebApiParameters": { + "uri": "https://my-custom-endpoint.org/", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "httpMethod": "POST", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + }, + "name": "custom-web-api", + "kind": "customWebApi" + }, + { + "amlParameters": { + "uri": "https://my-custom-endpoint.org/", + "resourceId": "aml resource id", + "timeout": "PT1M", + "region": "aml region", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + }, + "name": "aml", + "kind": "aml" + }, + { + "amlParameters": { + "uri": "https://my-custom-endpoint.org/", + "resourceId": "aml resource id", + "timeout": "PT1M", + "region": "aml region", + "modelName": "Cohere-embed-v4" + }, + "name": "aml-cohere", + "kind": "aml" + } + ], + "compressions": [ + { + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "name": "mySQ8", + "kind": "scalarQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "preserveOriginals" + }, + "truncationDimension": 2 + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "preserveOriginals" + }, + "truncationDimension": 2 + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "discardOriginals" + }, + "truncationDimension": 2 + } + ] + }, + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "name": "temp-preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + }, + "201": { + "body": { + "name": "temp-preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndexer.json new file mode 100644 index 000000000000..2624b8dfe6b4 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndexer.json @@ -0,0 +1,140 @@ +{ + "operationId": "Indexers_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myaclindexer", + "api-version": "2025-11-01-preview", + "ignoreResetRequirements": null, + "disableCacheReprocessingChangeDetection": null, + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "indexer": { + "name": "myaclindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestacldatasource", + "targetIndexName": "indexer-test-index", + "schedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5 + }, + "fieldMappings": [ + { + "sourceFieldName": "metadata_storage_title", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + }, + { + "sourceFieldName": "metadata_user_ids", + "targetFieldName": "permissionFilters" + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "disabled": false, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myaclindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestacldatasource", + "targetIndexName": "indexer-test-index", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": {} + }, + "fieldMappings": [ + { + "sourceFieldName": "metadata_storage_title", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + }, + { + "sourceFieldName": "metadata_user_ids", + "targetFieldName": "permissionFilters" + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ] + } + }, + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myaclindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestacldatasource", + "targetIndexName": "indexer-test-index", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": {} + }, + "fieldMappings": [ + { + "sourceFieldName": "metadata_storage_title", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + }, + { + "sourceFieldName": "metadata_user_ids", + "targetFieldName": "permissionFilters" + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeAgent.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeAgent.json new file mode 100644 index 000000000000..ea606db658b7 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeAgent.json @@ -0,0 +1,124 @@ +{ + "operationId": "KnowledgeAgents_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeAgent", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "agentName": "myagent", + "knowledgeAgent": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "apiKey": "myApiKey", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "maxSubQueries": 5, + "rerankerThreshold": 0.7 + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis", + "answerInstructions": "Be concise and professional", + "attemptFastPath": true, + "includeActivity": true + }, + "requestLimits": { + "maxRuntimeInSeconds": 30, + "maxOutputSize": 4000 + } + } + }, + "responses": { + "200": { + "body": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "maxSubQueries": 5, + "rerankerThreshold": 0.7 + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis", + "answerInstructions": "Be concise and professional", + "attemptFastPath": true, + "includeActivity": true + }, + "requestLimits": { + "maxRuntimeInSeconds": 30, + "maxOutputSize": 4000 + }, + "eTag": "0x8D9A1234567890A" + } + }, + "201": { + "body": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "maxSubQueries": 5, + "rerankerThreshold": 0.7 + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis", + "answerInstructions": "Be concise and professional", + "attemptFastPath": true, + "includeActivity": true + }, + "requestLimits": { + "maxRuntimeInSeconds": 30, + "maxOutputSize": 4000 + }, + "eTag": "0x8D9A1234567890A" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeBase.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeBase.json new file mode 100644 index 000000000000..81c562aaf2a9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeBase.json @@ -0,0 +1,127 @@ +{ + "operationId": "KnowledgeBases_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeBase", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeBase": { + "name": "base-preview-test", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + } + ], + "retrievalReasoningEffort": { + "kind": "low" + }, + "outputMode": "extractiveData", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis." + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSource.json new file mode 100644 index 000000000000..7e8e99f499b4 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSource.json @@ -0,0 +1,115 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "searchIndexParameters": { + "searchIndexName": "preview-test", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "searchIndex", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json new file mode 100644 index 000000000000..ba4ed6d5f5a8 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json @@ -0,0 +1,211 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "azureBlob", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json new file mode 100644 index 000000000000..7d084b6bbd61 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json @@ -0,0 +1,196 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the OneLake knowledge source.", + "kind": "indexedOneLake", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json new file mode 100644 index 000000000000..917335c4c4a0 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json @@ -0,0 +1,196 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the SharePoint knowledge source.", + "kind": "indexedSharePoint", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json new file mode 100644 index 000000000000..12563a3596b8 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json @@ -0,0 +1,130 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSourceWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "web", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSkillset.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSkillset.json new file mode 100644 index 000000000000..ab3d4d148edf --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSkillset.json @@ -0,0 +1,820 @@ +{ + "operationId": "Skillsets_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateSkillset", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "skillsetName": "tempskillset", + "api-version": "2025-11-01-preview", + "ignoreResetRequirements": null, + "disableCacheReprocessingChangeDetection": null, + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "skillset": { + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "countryHint", + "source": "/document/countryHint" + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + }, + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "outputFormat": "text", + "outputMode": "oneToMany", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + }, + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ] + }, + { + "apiKey": "", + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "extraParametersBehavior": "error", + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}", + "required": [ + "steps", + "answer" + ], + "additionalProperties": false + } + } + }, + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "systemMessage", + "source": "/document/system_message" + }, + { + "name": "userMessage", + "source": "/document/user_message" + }, + { + "name": "image", + "source": "/document/normalized_images/*" + }, + { + "name": "imageDetail", + "source": "/document/detail" + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ] + }, + { + "extractionOptions": [ + "images", + "locationMetadata" + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + }, + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ] + } + ], + "cognitiveServices": { + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com", + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset" + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + } + ], + "cognitiveServices": { + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset", + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com" + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + } + ], + "cognitiveServices": { + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset", + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSynonymMap.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSynonymMap.json new file mode 100644 index 000000000000..7f54f45817c7 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSynonymMap.json @@ -0,0 +1,64 @@ +{ + "operationId": "SynonymMaps_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateSynonymMap", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "synonymMapName": "mysynonymmap", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "synonymMap": { + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSkillset.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSkillset.json new file mode 100644 index 000000000000..52ae54c50833 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSkillset.json @@ -0,0 +1,540 @@ +{ + "operationId": "Skillsets_Create", + "title": "SearchServiceCreateSkillset", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "skillset": { + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "countryHint", + "source": "/document/countryHint" + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + }, + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "outputFormat": "text", + "outputMode": "oneToMany", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + }, + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ] + }, + { + "apiKey": "", + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "extraParametersBehavior": "error", + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}", + "required": [ + "steps", + "answer" + ], + "additionalProperties": false + } + } + }, + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "systemMessage", + "source": "/document/system_message" + }, + { + "name": "userMessage", + "source": "/document/user_message" + }, + { + "name": "image", + "source": "/document/normalized_images/*" + }, + { + "name": "imageDetail", + "source": "/document/detail" + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ] + }, + { + "extractionOptions": [ + "images", + "locationMetadata" + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + }, + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ] + } + ], + "cognitiveServices": { + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com", + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset" + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + } + ], + "cognitiveServices": { + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset", + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSynonymMap.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSynonymMap.json new file mode 100644 index 000000000000..bbacdc3b119e --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSynonymMap.json @@ -0,0 +1,43 @@ +{ + "operationId": "SynonymMaps_Create", + "title": "SearchServiceCreateSynonymMap", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "synonymMap": { + "name": "tempsynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempsynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteAlias.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteAlias.json new file mode 100644 index 000000000000..214cd436c26b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteAlias.json @@ -0,0 +1,16 @@ +{ + "operationId": "Aliases_Delete", + "title": "SearchServiceDeleteAlias", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "aliasName": "tempalias", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteDataSource.json new file mode 100644 index 000000000000..f0272a811b6c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteDataSource.json @@ -0,0 +1,16 @@ +{ + "operationId": "DataSources_Delete", + "title": "SearchServiceDeleteDataSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "dataSourceName": "tempdatasource", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndex.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndex.json new file mode 100644 index 000000000000..568d7481bc2d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndex.json @@ -0,0 +1,16 @@ +{ + "operationId": "Indexes_Delete", + "title": "SearchServiceDeleteIndex", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "temp-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndexer.json new file mode 100644 index 000000000000..d0a3c173f329 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndexer.json @@ -0,0 +1,16 @@ +{ + "operationId": "Indexers_Delete", + "title": "SearchServiceDeleteIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "tempindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "404": {}, + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeAgent.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeAgent.json new file mode 100644 index 000000000000..c03227fb60cf --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeAgent.json @@ -0,0 +1,14 @@ +{ + "operationId": "KnowledgeAgents_Delete", + "title": "SearchServiceDeleteKnowledgeAgent", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "agentName": "myagent" + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeBase.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeBase.json new file mode 100644 index 000000000000..81b81bcb7088 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeBase.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeBases_Delete", + "title": "SearchServiceDeleteKnowledgeBase", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSource.json new file mode 100644 index 000000000000..63e7b89d1e64 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSource.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceAzureBlob.json new file mode 100644 index 000000000000..45d3792c066d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceAzureBlob.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSourceAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json new file mode 100644 index 000000000000..a0f3024f0678 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSourceIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json new file mode 100644 index 000000000000..4f7c1ed20404 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSourceIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceWeb.json new file mode 100644 index 000000000000..9ea8970dccd7 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceWeb.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSourceWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSkillset.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSkillset.json new file mode 100644 index 000000000000..714a42f04ec6 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSkillset.json @@ -0,0 +1,16 @@ +{ + "operationId": "Skillsets_Delete", + "title": "SearchServiceDeleteSkillset", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "skillsetName": "tempskillset", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSynonymMap.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSynonymMap.json new file mode 100644 index 000000000000..e8437984eb08 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSynonymMap.json @@ -0,0 +1,16 @@ +{ + "operationId": "SynonymMaps_Delete", + "title": "SearchServiceDeleteSynonymMap", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "synonymMapName": "tempsynonymmap", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetAlias.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetAlias.json new file mode 100644 index 000000000000..430932d169a1 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetAlias.json @@ -0,0 +1,20 @@ +{ + "operationId": "Aliases_Get", + "title": "SearchServiceGetAlias", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "aliasName": "myalias", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myalias", + "indexes": [ + "preview-test" + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetDataSource.json new file mode 100644 index 000000000000..194492970eb5 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetDataSource.json @@ -0,0 +1,41 @@ +{ + "operationId": "DataSources_Get", + "title": "SearchServiceGetDataSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "dataSourceName": "mydocdbdatasource", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mydocdbdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndex.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndex.json new file mode 100644 index 000000000000..0ff8d4013d8c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndex.json @@ -0,0 +1,476 @@ +{ + "operationId": "Indexes_Get", + "title": "SearchServiceGetIndex", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatistics.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatistics.json new file mode 100644 index 000000000000..985cf75b3229 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatistics.json @@ -0,0 +1,19 @@ +{ + "operationId": "Indexes_GetStatistics", + "title": "SearchServiceGetIndexStatistics", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "documentCount": 12, + "storageSize": 123456, + "vectorIndexSize": 123456 + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatisticsSummaries.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatisticsSummaries.json new file mode 100644 index 000000000000..541b4e602109 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatisticsSummaries.json @@ -0,0 +1,23 @@ +{ + "operationId": "GetIndexStatisticsSummaries", + "title": "SearchServiceGetIndexStatisticsSummaries", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "preview-test", + "documentCount": 0, + "storageSize": 0, + "vectorIndexSize": 0 + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatsSummary.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatsSummary.json new file mode 100644 index 000000000000..a4b2720723ec --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatsSummary.json @@ -0,0 +1,23 @@ +{ + "operationId": "GetIndexStatsSummary", + "title": "SearchServiceGetIndexStatsSummary", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "preview-test", + "documentCount": 0, + "storageSize": 0, + "vectorIndexSize": 0 + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexer.json new file mode 100644 index 000000000000..6504aa16776a --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexer.json @@ -0,0 +1,51 @@ +{ + "operationId": "Indexers_Get", + "title": "SearchServiceGetIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestdatasource", + "skillsetName": "myskillset", + "targetIndexName": "preview-test", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": {} + }, + "fieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexerStatus.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexerStatus.json new file mode 100644 index 000000000000..2fba9b1edc60 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexerStatus.json @@ -0,0 +1,91 @@ +{ + "operationId": "Indexers_GetStatus", + "title": "SearchServiceGetIndexerStatus", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myindexer", + "status": "running", + "runtime": { + "usedSeconds": 0, + "beginningTime": "2024-06-06T00:00:00.000Z", + "endingTime": "2024-06-07T00:00:00.000Z" + }, + "lastResult": { + "status": "success", + "startTime": "2014-11-26T03:37:18.853Z", + "endTime": "2014-11-26T03:37:19.012Z", + "itemsProcessed": 11, + "itemsFailed": 0, + "mode": "indexingAllDocs", + "errors": [], + "warnings": [] + }, + "executionHistory": [ + { + "status": "success", + "startTime": "2014-11-26T03:37:18.853Z", + "endTime": "2014-11-26T03:37:19.012Z", + "itemsProcessed": 11, + "itemsFailed": 0, + "mode": "indexingAllDocs", + "errors": [], + "warnings": [] + }, + { + "status": "transientFailure", + "startTime": "2014-11-26T03:28:10.125Z", + "endTime": "2014-11-26T03:28:12.007Z", + "itemsProcessed": 1, + "itemsFailed": 2, + "mode": "indexingAllDocs", + "errors": [ + { + "key": "", + "statusCode": 400, + "errorMessage": "Document key cannot be missing or empty." + }, + { + "key": "document id 1", + "statusCode": 400, + "name": "DocumentExtraction.AzureBlob.MyDataSource", + "errorMessage": "Could not read the value of column 'foo' at index '0'.", + "details": "The file could not be parsed.", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388" + } + ], + "warnings": [ + { + "key": "document id", + "message": "A warning doesn't stop indexing, and is intended to inform you of certain interesting situations, like when a blob indexer truncates the amount of text extracted from a blob." + }, + { + "key": "document id 2", + "name": "Enrichment.LanguageDetectionSkill.#4", + "message": "Document was truncated to 50000 characters.", + "details": "The skill did something that didn't break anything, nonetheless something we didn't expect happened, so it might be worth double checking.", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2099692" + } + ] + } + ], + "limits": { + "maxRunTime": "PT22H", + "maxDocumentExtractionSize": 256000000, + "maxDocumentContentCharactersToExtract": 4000000 + }, + "currentState": { + "mode": "indexingAllDocs", + "resetDocumentKeys": [], + "resetDatasourceDocumentIds": [] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeAgent.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeAgent.json new file mode 100644 index 000000000000..2174328c5318 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeAgent.json @@ -0,0 +1,50 @@ +{ + "operationId": "KnowledgeAgents_Get", + "title": "SearchServiceGetKnowledgeAgent", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "agentName": "myagent" + }, + "responses": { + "200": { + "body": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "maxSubQueries": 5, + "rerankerThreshold": 0.7 + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis", + "answerInstructions": "Be concise and professional", + "attemptFastPath": true, + "includeActivity": true + }, + "requestLimits": { + "maxRuntimeInSeconds": 30, + "maxOutputSize": 4000 + }, + "eTag": "0x8D9A1234567890A" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeBase.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeBase.json new file mode 100644 index 000000000000..be3357e5711d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeBase.json @@ -0,0 +1,50 @@ +{ + "operationId": "KnowledgeBases_Get", + "title": "SearchServiceGetKnowledgeBase", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSource.json new file mode 100644 index 000000000000..6b1fbd34c41a --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSource.json @@ -0,0 +1,46 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json new file mode 100644 index 000000000000..0e3332e93d30 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json @@ -0,0 +1,80 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSourceAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json new file mode 100644 index 000000000000..59a5f847f64e --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json @@ -0,0 +1,79 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSourceIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json new file mode 100644 index 000000000000..3defb0ec6346 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json @@ -0,0 +1,79 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSourceIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceStatus.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceStatus.json new file mode 100644 index 000000000000..2e9e72e9f7f9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceStatus.json @@ -0,0 +1,36 @@ +{ + "operationId": "KnowledgeSources_GetStatus", + "title": "SearchServiceGetKnowledgeSourceStatus", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "synchronizationStatus": "active", + "synchronizationInterval": "1d", + "currentSynchronizationState": { + "startTime": "2024-11-26T03:37:18.853Z", + "itemsUpdatesProcessed": 10, + "itemsUpdatesFailed": 2, + "itemsSkipped": 1 + }, + "lastSynchronizationState": { + "startTime": "2024-11-25T03:37:18.853Z", + "endTime": "2024-11-25T03:38:19.012Z", + "itemsUpdatesProcessed": 8, + "itemsUpdatesFailed": 1, + "itemsSkipped": 0 + }, + "statistics": { + "totalSynchronization": 5, + "averageSynchronizationDuration": "PT30M", + "averageItemsProcessedPerSynchronization": 100 + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceWeb.json new file mode 100644 index 000000000000..da83aded0b81 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceWeb.json @@ -0,0 +1,51 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSourceWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedIndexerStatus.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedIndexerStatus.json new file mode 100644 index 000000000000..d96d4941c15c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedIndexerStatus.json @@ -0,0 +1,92 @@ +{ + "operationId": "Indexers_GetStatus", + "title": "SearchServiceGetS3HDUnlimitedIndexerStatus", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myindexer", + "status": "running", + "runtime": { + "usedSeconds": 0, + "remainingSeconds": 39600, + "beginningTime": "2024-06-06T00:00:00.000Z", + "endingTime": "2024-06-07T00:00:00.000Z" + }, + "lastResult": { + "status": "success", + "startTime": "2014-11-26T03:37:18.853Z", + "endTime": "2014-11-26T03:37:19.012Z", + "itemsProcessed": 11, + "itemsFailed": 0, + "mode": "indexingAllDocs", + "errors": [], + "warnings": [] + }, + "executionHistory": [ + { + "status": "success", + "startTime": "2014-11-26T03:37:18.853Z", + "endTime": "2014-11-26T03:37:19.012Z", + "itemsProcessed": 11, + "itemsFailed": 0, + "mode": "indexingAllDocs", + "errors": [], + "warnings": [] + }, + { + "status": "transientFailure", + "startTime": "2014-11-26T03:28:10.125Z", + "endTime": "2014-11-26T03:28:12.007Z", + "itemsProcessed": 1, + "itemsFailed": 2, + "mode": "indexingAllDocs", + "errors": [ + { + "key": "", + "statusCode": 400, + "errorMessage": "Document key cannot be missing or empty." + }, + { + "key": "document id 1", + "statusCode": 400, + "name": "DocumentExtraction.AzureBlob.MyDataSource", + "errorMessage": "Could not read the value of column 'foo' at index '0'.", + "details": "The file could not be parsed.", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388" + } + ], + "warnings": [ + { + "key": "document id", + "message": "A warning doesn't stop indexing, and is intended to inform you of certain interesting situations, like when a blob indexer truncates the amount of text extracted from a blob." + }, + { + "key": "document id 2", + "name": "Enrichment.LanguageDetectionSkill.#4", + "message": "Document was truncated to 50000 characters.", + "details": "The skill did something that didn't break anything, nonetheless something we didn't expect happened, so it might be worth double checking.", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2099692" + } + ] + } + ], + "limits": { + "maxRunTime": "PT22H", + "maxDocumentExtractionSize": 256000000, + "maxDocumentContentCharactersToExtract": 4000000 + }, + "currentState": { + "mode": "indexingAllDocs", + "resetDocumentKeys": [], + "resetDatasourceDocumentIds": [] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedServiceStatistics.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedServiceStatistics.json new file mode 100644 index 000000000000..de59ac78a354 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedServiceStatistics.json @@ -0,0 +1,65 @@ +{ + "operationId": "GetServiceStatistics", + "title": "SearchServiceGetS3HDUnlimitedServiceStatistics", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "counters": { + "documentCount": { + "usage": 12 + }, + "indexesCount": { + "usage": 2, + "quota": 2 + }, + "indexersCount": { + "usage": 2, + "quota": 2 + }, + "dataSourcesCount": { + "usage": 2, + "quota": 2 + }, + "storageSize": { + "usage": 123456, + "quota": 10485760 + }, + "synonymMaps": { + "usage": 3, + "quota": 3 + }, + "skillsetCount": { + "usage": 2, + "quota": 2 + }, + "aliasesCount": { + "usage": 4, + "quota": 4 + }, + "vectorIndexSize": { + "usage": 123456 + } + }, + "indexersRuntime": { + "usedSeconds": 0, + "remainingSeconds": 86400, + "beginningTime": "2024-06-06T00:00:00.000Z", + "endingTime": "2024-06-07T00:00:00.000Z" + }, + "limits": { + "maxStoragePerIndex": 10485760, + "maxFieldsPerIndex": 1000, + "maxFieldNestingDepthPerIndex": 10, + "maxComplexCollectionFieldsPerIndex": 40, + "maxComplexObjectsInCollectionsPerDocument": 3000, + "maxCumulativeIndexerRuntimeSeconds": 86400 + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetServiceStatistics.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetServiceStatistics.json new file mode 100644 index 000000000000..00bfc83633b0 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetServiceStatistics.json @@ -0,0 +1,63 @@ +{ + "operationId": "GetServiceStatistics", + "title": "SearchServiceGetServiceStatistics", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "counters": { + "documentCount": { + "usage": 12 + }, + "indexesCount": { + "usage": 2, + "quota": 2 + }, + "indexersCount": { + "usage": 2, + "quota": 2 + }, + "dataSourcesCount": { + "usage": 2, + "quota": 2 + }, + "storageSize": { + "usage": 123456, + "quota": 10485760 + }, + "synonymMaps": { + "usage": 3, + "quota": 3 + }, + "skillsetCount": { + "usage": 2, + "quota": 2 + }, + "aliasesCount": { + "usage": 4, + "quota": 4 + }, + "vectorIndexSize": { + "usage": 123456 + } + }, + "indexersRuntime": { + "usedSeconds": 0, + "beginningTime": "2024-06-06T00:00:00.000Z", + "endingTime": "2024-06-07T00:00:00.000Z" + }, + "limits": { + "maxStoragePerIndex": 10485760, + "maxFieldsPerIndex": 1000, + "maxFieldNestingDepthPerIndex": 10, + "maxComplexCollectionFieldsPerIndex": 40, + "maxComplexObjectsInCollectionsPerDocument": 3000 + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSkillset.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSkillset.json new file mode 100644 index 000000000000..152f2145dba8 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSkillset.json @@ -0,0 +1,285 @@ +{ + "operationId": "Skillsets_Get", + "title": "SearchServiceGetSkillset", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "skillsetName": "myskillset", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "context": "/document", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "context": "/document", + "defaultLanguageCode": "en", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "pageOverlapLength": 0, + "maximumPagesToTake": 0, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "defaultLanguageCode": "en", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "context": "/document", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "batchSize": 1000, + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ], + "httpHeaders": {} + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "outputFormat": "markdown", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "httpMethod": "POST", + "timeout": "PT30S", + "batchSize": 1, + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "httpHeaders": {}, + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSynonymMap.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSynonymMap.json new file mode 100644 index 000000000000..46944d021bd9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSynonymMap.json @@ -0,0 +1,29 @@ +{ + "operationId": "SynonymMaps_Get", + "title": "SearchServiceGetSynonymMap", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "synonymMapName": "mysynonymmap", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceIndexAnalyze.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceIndexAnalyze.json new file mode 100644 index 000000000000..74fe21feb83d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceIndexAnalyze.json @@ -0,0 +1,40 @@ +{ + "operationId": "Indexes_Analyze", + "title": "SearchServiceIndexAnalyze", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "request": { + "text": "Text to analyze", + "analyzer": "ar.lucene" + } + }, + "responses": { + "200": { + "body": { + "tokens": [ + { + "token": "text", + "startOffset": 0, + "endOffset": 4, + "position": 0 + }, + { + "token": "to", + "startOffset": 5, + "endOffset": 7, + "position": 1 + }, + { + "token": "analyze", + "startOffset": 8, + "endOffset": 15, + "position": 2 + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListAliases.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListAliases.json new file mode 100644 index 000000000000..577639cf3a25 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListAliases.json @@ -0,0 +1,23 @@ +{ + "operationId": "Aliases_List", + "title": "SearchServiceListAliases", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myalias", + "indexes": [ + "preview-test" + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListDataSources.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListDataSources.json new file mode 100644 index 000000000000..403645c1b020 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListDataSources.json @@ -0,0 +1,45 @@ +{ + "operationId": "DataSources_List", + "title": "SearchServiceListDataSources", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mydocdbdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexers.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexers.json new file mode 100644 index 000000000000..16a7234c9dce --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexers.json @@ -0,0 +1,54 @@ +{ + "operationId": "Indexers_List", + "title": "SearchServiceListIndexers", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": "*", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestdatasource", + "skillsetName": "myskillset", + "targetIndexName": "preview-test", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": {} + }, + "fieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexes.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexes.json new file mode 100644 index 000000000000..9a236b41371b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexes.json @@ -0,0 +1,480 @@ +{ + "operationId": "Indexes_List", + "title": "SearchServiceListIndexes", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeAgents.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeAgents.json new file mode 100644 index 000000000000..83ee645c72c0 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeAgents.json @@ -0,0 +1,59 @@ +{ + "operationId": "KnowledgeAgents_List", + "title": "SearchServiceListKnowledgeAgents", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true + } + ], + "eTag": "0x8D9A1234567890A" + }, + { + "name": "anotheragent", + "description": "Another knowledge agent", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-35-turbo", + "modelName": "gpt-35-turbo" + } + } + ], + "knowledgeSources": [ + { + "name": "anothersource", + "includeReferences": false + } + ], + "eTag": "0x8D9A1234567890B" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeBases.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeBases.json new file mode 100644 index 000000000000..3ae238ee2384 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeBases.json @@ -0,0 +1,53 @@ +{ + "operationId": "KnowledgeBases_List", + "title": "SearchServiceListKnowledgeBases", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSources.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSources.json new file mode 100644 index 000000000000..60b79d65a749 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSources.json @@ -0,0 +1,49 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSources", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json new file mode 100644 index 000000000000..bedab455254c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json @@ -0,0 +1,83 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSourcesAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json new file mode 100644 index 000000000000..3687cf7b659b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json @@ -0,0 +1,82 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSourcesIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json new file mode 100644 index 000000000000..ef817f655de0 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json @@ -0,0 +1,82 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSourcesIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesWeb.json new file mode 100644 index 000000000000..7741fafbb87f --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesWeb.json @@ -0,0 +1,54 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSourcesWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSkillsets.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSkillsets.json new file mode 100644 index 000000000000..9af7bcd5c9b6 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSkillsets.json @@ -0,0 +1,289 @@ +{ + "operationId": "Skillsets_List", + "title": "SearchServiceListSkillsets", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "context": "/document", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "context": "/document", + "defaultLanguageCode": "en", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "pageOverlapLength": 0, + "maximumPagesToTake": 0, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "defaultLanguageCode": "en", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "context": "/document", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "batchSize": 1000, + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ], + "httpHeaders": {} + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "outputFormat": "markdown", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "httpMethod": "POST", + "timeout": "PT30S", + "batchSize": 1, + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "httpHeaders": {}, + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ] + } + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSynonymMaps.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSynonymMaps.json new file mode 100644 index 000000000000..a99e001718e9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSynonymMaps.json @@ -0,0 +1,33 @@ +{ + "operationId": "SynonymMaps_List", + "title": "SearchServiceListSynonymMaps", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetDocs.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetDocs.json new file mode 100644 index 000000000000..c8bc18895c2c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetDocs.json @@ -0,0 +1,21 @@ +{ + "operationId": "Indexers_ResetDocs", + "title": "SearchServiceResetDocs", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "overwrite": true, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "keysOrIds": { + "documentKeys": [ + "1", + "2", + "3" + ] + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetIndexer.json new file mode 100644 index 000000000000..e837c98621ec --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetIndexer.json @@ -0,0 +1,13 @@ +{ + "operationId": "Indexers_Reset", + "title": "SearchServiceResetIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetSkills.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetSkills.json new file mode 100644 index 000000000000..dd8ae12e2973 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetSkills.json @@ -0,0 +1,20 @@ +{ + "operationId": "Skillsets_ResetSkills", + "title": "SearchServiceResetSkills", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "skillsetName": "myskillset", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "skillNames": { + "skillNames": [ + "skill2", + "skill3", + "skill4" + ] + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResync.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResync.json new file mode 100644 index 000000000000..34717eae8702 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResync.json @@ -0,0 +1,18 @@ +{ + "operationId": "Indexers_Resync", + "title": "SearchServiceResync", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myaclindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "indexerResync": { + "options": [ + "permissions" + ] + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceRunIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceRunIndexer.json new file mode 100644 index 000000000000..53384fceb6ac --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceRunIndexer.json @@ -0,0 +1,13 @@ +{ + "operationId": "Indexers_Run", + "title": "SearchServiceRunIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": {} + } +} diff --git a/specification/search/data-plane/Search/main.tsp b/specification/search/data-plane/Search/main.tsp new file mode 100644 index 000000000000..32ad7e1b1aea --- /dev/null +++ b/specification/search/data-plane/Search/main.tsp @@ -0,0 +1,35 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Version: 0.8.2 + * Date: 2024-07-30T18:07:11.236Z + */ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "./routes-service.tsp"; +import "./routes-index.tsp"; +import "./routes-knowledgebase.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +@doc("Client that can be used to manage and query indexes and documents, as well as manage other resources, on a search service.") +@useAuth( + ApiKeyAuth | OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + scopes: ["https://search.azure.com/.default"], + } + ]> +) +@service(#{ title: "Azure AI Search" }) +@versioned(Versions) +namespace Search; + +@doc("The available API versions.") +enum Versions { + @doc("The 2025-11-01-preview API version.") + v2025_11_01_preview: "2025-11-01-preview", +} diff --git a/specification/search/data-plane/Search/models-index.tsp b/specification/search/data-plane/Search/models-index.tsp new file mode 100644 index 000000000000..826794381707 --- /dev/null +++ b/specification/search/data-plane/Search/models-index.tsp @@ -0,0 +1,1344 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "./models-shared.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Search; + +@doc("Allows the user to choose whether a semantic call should fail completely, or to return partial results.") +union SemanticErrorMode { + string, + + @doc("If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure.") + Partial: "partial", + + @doc("If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error.") + Fail: "fail", +} + +@doc("This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.") +union QueryAnswerType { + string, + + @doc("Do not return answers for the query.") + None: "none", + + @doc("Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language.") + Extractive: "extractive", +} + +@doc("This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.") +union QueryCaptionType { + string, + + @doc("Do not return captions for the query.") + None: "none", + + @doc("Extracts captions from the matching documents that contain passages relevant to the search query.") + Extractive: "extractive", +} + +@doc("This parameter is only valid if the query type is `semantic`. When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`.") +union QueryRewritesType { + string, + + @doc("Do not generate additional query rewrites for this query.") + None: "none", + + @doc("Generate alternative query terms to increase the recall of a search request.") + Generative: "generative", +} + +@doc("Enables a debugging tool that can be used to further explore your search results. You can enable multiple debug modes simultaneously by separating them with a | character, for example: semantic|queryRewrites.") +union QueryDebugMode { + string, + + @doc("No query debugging information will be returned.") + Disabled: "disabled", + + @doc("Allows the user to further explore their reranked results.") + Semantic: "semantic", + + @doc("Allows the user to further explore their hybrid and vector query results.") + Vector: "vector", + + @doc("Allows the user to explore the list of query rewrites generated for their search request.") + QueryRewrites: "queryRewrites", + + @doc("Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types.") + InnerHits: "innerHits", + + @doc("Turn on all debug options.") + All: "all", +} + +@doc("The language of the query.") +union QueryLanguage { + string, + + @doc("Query language not specified.") + None: "none", + + @doc("Query language value for English (United States).") + EnUs: "en-us", + + @doc("Query language value for English (Great Britain).") + EnGb: "en-gb", + + @doc("Query language value for English (India).") + EnIn: "en-in", + + @doc("Query language value for English (Canada).") + EnCa: "en-ca", + + @doc("Query language value for English (Australia).") + EnAu: "en-au", + + @doc("Query language value for French (France).") + FrFr: "fr-fr", + + @doc("Query language value for French (Canada).") + FrCa: "fr-ca", + + @doc("Query language value for German (Germany).") + DeDe: "de-de", + + @doc("Query language value for Spanish (Spain).") + EsEs: "es-es", + + @doc("Query language value for Spanish (Mexico).") + EsMx: "es-mx", + + @doc("Query language value for Chinese (China).") + ZhCn: "zh-cn", + + @doc("Query language value for Chinese (Taiwan).") + ZhTw: "zh-tw", + + @doc("Query language value for Portuguese (Brazil).") + PtBr: "pt-br", + + @doc("Query language value for Portuguese (Portugal).") + PtPt: "pt-pt", + + @doc("Query language value for Italian (Italy).") + ItIt: "it-it", + + @doc("Query language value for Japanese (Japan).") + JaJp: "ja-jp", + + @doc("Query language value for Korean (Korea).") + KoKr: "ko-kr", + + @doc("Query language value for Russian (Russia).") + RuRu: "ru-ru", + + @doc("Query language value for Czech (Czech Republic).") + CsCz: "cs-cz", + + @doc("Query language value for Dutch (Belgium).") + NlBe: "nl-be", + + @doc("Query language value for Dutch (Netherlands).") + NlNl: "nl-nl", + + @doc("Query language value for Hungarian (Hungary).") + HuHu: "hu-hu", + + @doc("Query language value for Polish (Poland).") + PlPl: "pl-pl", + + @doc("Query language value for Swedish (Sweden).") + SvSe: "sv-se", + + @doc("Query language value for Turkish (Turkey).") + TrTr: "tr-tr", + + @doc("Query language value for Hindi (India).") + HiIn: "hi-in", + + @doc("Query language value for Arabic (Saudi Arabia).") + ArSa: "ar-sa", + + @doc("Query language value for Arabic (Egypt).") + ArEg: "ar-eg", + + @doc("Query language value for Arabic (Morocco).") + ArMa: "ar-ma", + + @doc("Query language value for Arabic (Kuwait).") + ArKw: "ar-kw", + + @doc("Query language value for Arabic (Jordan).") + ArJo: "ar-jo", + + @doc("Query language value for Danish (Denmark).") + DaDk: "da-dk", + + @doc("Query language value for Norwegian (Norway).") + NoNo: "no-no", + + @doc("Query language value for Bulgarian (Bulgaria).") + BgBg: "bg-bg", + + @doc("Query language value for Croatian (Croatia).") + HrHr: "hr-hr", + + @doc("Query language value for Croatian (Bosnia and Herzegovina).") + HrBa: "hr-ba", + + @doc("Query language value for Malay (Malaysia).") + MsMy: "ms-my", + + @doc("Query language value for Malay (Brunei Darussalam).") + MsBn: "ms-bn", + + @doc("Query language value for Slovenian (Slovenia).") + SlSl: "sl-sl", + + @doc("Query language value for Tamil (India).") + TaIn: "ta-in", + + @doc("Query language value for Vietnamese (Viet Nam).") + ViVn: "vi-vn", + + @doc("Query language value for Greek (Greece).") + ElGr: "el-gr", + + @doc("Query language value for Romanian (Romania).") + RoRo: "ro-ro", + + @doc("Query language value for Icelandic (Iceland).") + IsIs: "is-is", + + @doc("Query language value for Indonesian (Indonesia).") + IdId: "id-id", + + @doc("Query language value for Thai (Thailand).") + ThTh: "th-th", + + @doc("Query language value for Lithuanian (Lithuania).") + LtLt: "lt-lt", + + @doc("Query language value for Ukrainian (Ukraine).") + UkUa: "uk-ua", + + @doc("Query language value for Latvian (Latvia).") + LvLv: "lv-lv", + + @doc("Query language value for Estonian (Estonia).") + EtEe: "et-ee", + + @doc("Query language value for Catalan.") + CaEs: "ca-es", + + @doc("Query language value for Finnish (Finland).") + FiFi: "fi-fi", + + @doc("Query language value for Serbian (Bosnia and Herzegovina).") + SrBa: "sr-ba", + + @doc("Query language value for Serbian (Montenegro).") + SrMe: "sr-me", + + @doc("Query language value for Serbian (Serbia).") + SrRs: "sr-rs", + + @doc("Query language value for Slovak (Slovakia).") + SkSk: "sk-sk", + + @doc("Query language value for Norwegian (Norway).") + NbNo: "nb-no", + + @doc("Query language value for Armenian (Armenia).") + HyAm: "hy-am", + + @doc("Query language value for Bengali (India).") + BnIn: "bn-in", + + @doc("Query language value for Basque.") + EuEs: "eu-es", + + @doc("Query language value for Galician.") + GlEs: "gl-es", + + @doc("Query language value for Gujarati (India).") + GuIn: "gu-in", + + @doc("Query language value for Hebrew (Israel).") + HeIl: "he-il", + + @doc("Query language value for Irish (Ireland).") + GaIe: "ga-ie", + + @doc("Query language value for Kannada (India).") + KnIn: "kn-in", + + @doc("Query language value for Malayalam (India).") + MlIn: "ml-in", + + @doc("Query language value for Marathi (India).") + MrIn: "mr-in", + + @doc("Query language value for Persian (U.A.E.).") + FaAe: "fa-ae", + + @doc("Query language value for Punjabi (India).") + PaIn: "pa-in", + + @doc("Query language value for Telugu (India).") + TeIn: "te-in", + + @doc("Query language value for Urdu (Pakistan).") + UrPk: "ur-pk", +} + +@doc("Improve search recall by spell-correcting individual search query terms.") +union QuerySpellerType { + string, + + @doc("Speller not enabled.") + None: "none", + + @doc("Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter.") + Lexicon: "lexicon", +} + +@doc("The kind of vector query being performed.") +union VectorQueryKind { + string, + + @doc("Vector query where a raw vector value is provided.") + Vector: "vector", + + @doc("Vector query where a text value that needs to be vectorized is provided.") + Text: "text", + + @doc("Vector query where an url that represents an image value that needs to be vectorized is provided.") + ImageUrl: "imageUrl", + + @doc("Vector query where a base 64 encoded binary of an image that needs to be vectorized is provided.") + ImageBinary: "imageBinary", +} + +@doc("The kind of threshold used to filter vector queries.") +union VectorThresholdKind { + string, + + @doc("The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field.") + VectorSimilarity: "vectorSimilarity", + + @doc("The results of the vector query will filter based on the '\@search.score' value. Note this is the \@search.score returned as part of the search response. The threshold direction will be chosen for higher \@search.score.") + SearchScore: "searchScore", +} + +@doc("Determines whether or not filters are applied before or after the vector search is performed.") +union VectorFilterMode { + string, + + @doc("The filter will be applied after the candidate set of vector results is returned. Depending on the filter selectivity, this can result in fewer results than requested by the parameter 'k'.") + PostFilter: "postFilter", + + @doc("The filter will be applied before the search query.") + PreFilter: "preFilter", + + @doc("The filter will be applied after the global top-k candidate set of vector results is returned. This will result in fewer results than requested by the parameter 'k'.") + StrictPostFilter: "strictPostFilter", +} + +@doc("Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window. The default value is 'countAllResults'.") +union HybridCountAndFacetMode { + string, + + @doc("Only include documents that were matched within the 'maxTextRecallSize' retrieval window when computing 'count' and 'facets'.") + CountRetrievableResults: "countRetrievableResults", + + @doc("Include all documents that were matched by the search query when computing 'count' and 'facets', regardless of whether or not those documents are within the 'maxTextRecallSize' retrieval window.") + CountAllResults: "countAllResults", +} + +@doc("The way the field was used for the semantic enrichment process.") +union SemanticFieldState { + string, + + @doc("The field was fully used for semantic enrichment.") + Used: "used", + + @doc("The field was not used for semantic enrichment.") + Unused: "unused", + + @doc("The field was partially used for semantic enrichment.") + Partial: "partial", +} + +@doc("Reason that a partial response was returned for a semantic ranking request.") +union SemanticErrorReason { + string, + + @doc("If `semanticMaxWaitInMilliseconds` was set and the semantic processing duration exceeded that value. Only the base results were returned.") + MaxWaitExceeded: "maxWaitExceeded", + + @doc("The request was throttled. Only the base results were returned.") + CapacityOverloaded: "capacityOverloaded", + + @doc("At least one step of the semantic process failed.") + Transient: "transient", +} + +@doc("Type of partial response that was returned for a semantic ranking request.") +union SemanticSearchResultsType { + string, + + @doc("Results without any semantic enrichment or reranking.") + BaseResults: "baseResults", + + @doc("Results have been reranked with the reranker model and will include semantic captions. They will not include any answers, answers highlights or caption highlights.") + RerankedResults: "rerankedResults", +} + +@doc("Type of query rewrite that was used for this request.") +union SemanticQueryRewritesResultType { + string, + + @doc("Query rewrites were not successfully generated for this request. Only the original query was used to retrieve the results.") + OriginalQueryOnly: "originalQueryOnly", +} + +@doc("Specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax and 'semantic' if query syntax is not needed.") +union QueryType { + string, + + @doc("Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified.") + Simple: "simple", + + @doc("Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features.") + Full: "full", + + @doc("Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus.") + Semantic: "semantic", +} + +@doc("Specifies whether any or all of the search terms must be matched in order to count the document as a match.") +union SearchMode { + string, + + @doc("Any of the search terms must be matched in order to count the document as a match.") + Any: "any", + + @doc("All of the search terms must be matched in order to count the document as a match.") + All: "all", +} + +@doc("A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries.") +union ScoringStatistics { + string, + + @doc("The scoring statistics will be calculated locally for lower latency.") + Local: "local", + + @doc("The scoring statistics will be calculated globally for more consistent scoring.") + Global: "global", +} + +@doc("The operation to perform on a document in an indexing batch.") +union IndexActionType { + string, + + @doc("Inserts the document into the index if it is new and updates it if it exists. All fields are replaced in the update case.") + Upload: "upload", + + @doc("Merges the specified field values with an existing document. If the document does not exist, the merge will fail. Any field you specify in a merge will replace the existing field in the document. This also applies to collections of primitive and complex types.") + Merge: "merge", + + @doc("Behaves like merge if a document with the given key already exists in the index. If the document does not exist, it behaves like upload with a new document.") + MergeOrUpload: "mergeOrUpload", + + @doc("Removes the specified document from the index. Any field you specify in a delete operation other than the key field will be ignored. If you want to remove an individual field from a document, use merge instead and set the field explicitly to null.") + Delete: "delete", +} + +@doc("Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context in producing autocomplete terms.") +union AutocompleteMode { + string, + + @doc("Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'.") + OneTerm: "oneTerm", + + @doc("Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'.") + TwoTerms: "twoTerms", + + @doc("Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'.") + OneTermWithContext: "oneTermWithContext", +} + +@doc("Parameters grouped for search operations.") +model SearchOptions { + @doc("A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.") + @query("$count") + includeTotalResultCount?: boolean; + + #suppress "@azure-tools/typespec-azure-core/no-query-explode" "Existing" + @doc("The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.") + @query(#{ name: "facet", explode: true }) + facets?: string[]; + + @doc("The OData $filter expression to apply to the search query.") + @query("$filter") + filter?: string; + + @doc("The list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.") + @query("highlight") + highlightFields?: string[]; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.") + @query + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.") + @query + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.") + @query + minimumCoverage?: float64; + + @doc("The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, and desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no OrderBy is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") + @query("$orderby") + orderBy?: string[]; + + @doc("A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.") + @query + queryType?: QueryType; + + #suppress "@azure-tools/typespec-azure-core/no-query-explode" "Existing" + @doc("The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).") + @query(#{ name: "scoringParameter", explode: true }) + scoringParameters?: string[]; + + @doc("The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.") + @query + scoringProfile?: string; + + @doc("The list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.") + @query + searchFields?: string[]; + + @doc("A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.") + @query + searchMode?: SearchMode; + + @doc("A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency.") + @query + scoringStatistics?: ScoringStatistics; + + @doc("A value to be used to create a sticky session, which can help to get more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.") + @query + sessionId?: string; + + @doc("The list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.") + @query("$select") + select?: string[]; + + @doc("The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use $skip due to this limitation, consider using $orderby on a totally-ordered key and $filter with a range query instead.") + @query("$skip") + skip?: int32; + + @doc("The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.") + @query("$top") + top?: int32; + + @doc("The name of the semantic configuration that lists which fields should be used for semantic ranking, captions, highlights, and answers") + @query + semanticConfiguration?: string; + + @doc("Allows the user to choose whether a semantic call should fail completely, or to return partial results (default).") + @query + semanticErrorHandling?: SemanticErrorMode; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.") + @minValue(700) + @query + semanticMaxWaitInMilliseconds?: int32 | null; + + @doc("This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.") + @query + answers?: QueryAnswerType; + + @doc("This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.") + @query + captions?: QueryCaptionType; + + @doc("Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.") + @query + semanticQuery?: string; + + @doc("When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`. This parameter is only valid if the query type is `semantic`.") + @query + queryRewrites?: QueryRewritesType; + + @doc("Enables a debugging tool that can be used to further explore your search results.") + @query + debug?: QueryDebugMode; + + @doc("The language of the query.") + @query + queryLanguage?: QueryLanguage; + + @doc("Improve search recall by spell-correcting individual search query terms.") + @query + speller?: QuerySpellerType; + + @doc("The list of field names used for semantic ranking.") + @query + semanticFields?: string[]; +} + +@doc("Parameters grouped for suggest operations.") +model SuggestOptions { + @doc("An OData expression that filters the documents considered for suggestions.") + @query("$filter") + filter?: string; + + @doc("A value indicating whether to use fuzzy matching for the suggestions query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestions queries are slower and consume more resources.") + @query("fuzzy") + useFuzzyMatching?: boolean; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled.") + @query + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled.") + @query + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestions query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.") + @query + minimumCoverage?: float64; + + @doc("The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") + @query("$orderby") + orderBy?: string[]; + + @doc("The list of field names to search for the specified search text. Target fields must be included in the specified suggester.") + @query + searchFields?: string[]; + + @doc("The list of fields to retrieve. If unspecified, only the key field will be included in the results.") + @query("$select") + select?: string[]; + + @doc("The number of suggestions to retrieve. The value must be a number between 1 and 100. The default is 5.") + @query("$top") + top?: int32; +} + +@doc("Response containing search results from an index.") +model SearchDocumentsResult { + @doc("The total count of results found by the search operation, or null if the count was not requested. If present, the count may be greater than the number of results in this response. This can happen if you use the $top or $skip parameters, or if the query can't return all the requested documents in a single response.") + @encodedName("application/json", "@odata.count") + @visibility(Lifecycle.Read) + count?: int64; + + @doc("A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not specified in the request.") + @encodedName("application/json", "@search.coverage") + @visibility(Lifecycle.Read) + coverage?: float64; + + @doc("The facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not include any facet expressions.") + @encodedName("application/json", "@search.facets") + @visibility(Lifecycle.Read) + facets?: Record; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The answers query results for the search operation; null if the answers query parameter was not specified or set to 'none'.") + @encodedName("application/json", "@search.answers") + @visibility(Lifecycle.Read) + answers?: QueryAnswerResult[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Debug information that applies to the search results as a whole.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.debug") + debugInfo?: DebugInfo | null; + + @doc("Continuation JSON payload returned when the query can't return all the requested results in a single response. You can use this JSON along with @odata.nextLink to formulate another POST Search request to get the next part of the search response.") + @encodedName("application/json", "@search.nextPageParameters") + @visibility(Lifecycle.Read) + nextPageParameters?: SearchRequest; + + @doc("The sequence of results returned by the query.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchResult[]; + + @doc("Continuation URL returned when the query can't return all the requested results in a single response. You can use this URL to formulate another GET or POST Search request to get the next part of the search response. Make sure to use the same verb (GET or POST) as the request that produced this response.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@odata.nextLink") + @nextLink + nextLink?: string; + + @doc("Reason that a partial response was returned for a semantic ranking request.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.semanticPartialResponseReason") + semanticPartialResponseReason?: SemanticErrorReason; + + @doc("Type of partial response that was returned for a semantic ranking request.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.semanticPartialResponseType") + semanticPartialResponseType?: SemanticSearchResultsType; + + @doc("Type of query rewrite that was used to retrieve documents.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.semanticQueryRewritesResultType") + semanticQueryRewritesResultType?: SemanticQueryRewritesResultType; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A single bucket of a facet query result. Reports the number of documents with a field value falling within a particular range or having a particular value or interval.") +model FacetResult is Record { + @doc("The approximate count of documents falling within the bucket described by this facet.") + @visibility(Lifecycle.Read) + count?: int64; + + @doc("The resulting total avg for the facet when a avg metric is requested.") + @visibility(Lifecycle.Read) + avg?: float64; + + @doc("The resulting total min for the facet when a min metric is requested.") + @visibility(Lifecycle.Read) + min?: float64; + + @doc("The resulting total max for the facet when a max metric is requested.") + @visibility(Lifecycle.Read) + max?: float64; + + @doc("The resulting total sum for the facet when a sum metric is requested.") + @visibility(Lifecycle.Read) + sum?: float64; + + @doc("The resulting total cardinality for the facet when a cardinality metric is requested.") + @visibility(Lifecycle.Read) + cardinality?: int64; + + @doc("The nested facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not contain any nested facets.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.facets") + facets?: Record; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("An answer is a text passage extracted from the contents of the most relevant documents that matched the query. Answers are extracted from the top search results. Answer candidates are scored and the top answers are selected.") +model QueryAnswerResult is Record { + @doc("The score value represents how relevant the answer is to the query relative to other answers returned for the query.") + @visibility(Lifecycle.Read) + score?: float64; + + @doc("The key of the document the answer was extracted from.") + @visibility(Lifecycle.Read) + key?: string; + + @doc("The text passage extracted from the document contents as the answer.") + @visibility(Lifecycle.Read) + text?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Same text passage as in the Text property with highlighted text phrases most relevant to the query.") + @visibility(Lifecycle.Read) + highlights?: string | null; +} + +@doc("Contains debugging information that can be used to further explore your search results.") +model DebugInfo { + @doc("Contains debugging information specific to query rewrites.") + @visibility(Lifecycle.Read) + queryRewrites?: QueryRewritesDebugInfo; +} + +@doc("Contains debugging information specific to query rewrites.") +model QueryRewritesDebugInfo { + @doc("List of query rewrites generated for the text query.") + @visibility(Lifecycle.Read) + text?: QueryRewritesValuesDebugInfo; + + @doc("List of query rewrites generated for the vectorizable text queries.") + @visibility(Lifecycle.Read) + vectors?: QueryRewritesValuesDebugInfo[]; +} + +@doc("Contains debugging information specific to query rewrites.") +model QueryRewritesValuesDebugInfo { + @doc("The input text to the generative query rewriting model. There may be cases where the user query and the input to the generative model are not identical.") + @visibility(Lifecycle.Read) + inputQuery?: string; + + @doc("List of query rewrites.") + @visibility(Lifecycle.Read) + rewrites?: string[]; +} + +@doc("Parameters for filtering, sorting, faceting, paging, and other search query behaviors.") +model SearchRequest { + @doc("A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.") + count?: boolean; + + @doc("The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.") + facets?: string[]; + + @doc("The OData $filter expression to apply to the search query.") + filter?: string; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.") + @encode(ArrayEncoding.commaDelimited) + highlight?: string; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.") + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.") + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.") + minimumCoverage?: float64; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") + @encode(ArrayEncoding.commaDelimited) + orderby?: string; + + @doc("A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.") + queryType?: QueryType; + + @doc("A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries.") + scoringStatistics?: ScoringStatistics; + + @doc("A value to be used to create a sticky session, which can help getting more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.") + sessionId?: string; + + @doc("The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).") + scoringParameters?: string[]; + + @doc("The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.") + scoringProfile?: string; + + @doc("Enables a debugging tool that can be used to further explore your reranked results.") + debug?: QueryDebugMode; + + @doc("A full-text search query expression; Use \"*\" or omit this parameter to match all documents.") + search?: string; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.") + @encode(ArrayEncoding.commaDelimited) + searchFields?: string; + + @doc("A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.") + searchMode?: SearchMode; + + @doc("A value that specifies the language of the search query.") + queryLanguage?: QueryLanguage; + + @doc("A value that specifies the type of the speller to use to spell-correct individual search query terms.") + speller?: QuerySpellerType; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.") + @encode(ArrayEncoding.commaDelimited) + select?: string; + + @doc("The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead.") + skip?: int32; + + @doc("The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.") + top?: int32; + + @doc("The name of a semantic configuration that will be used when processing documents for queries of type semantic.") + semanticConfiguration?: string; + + @doc("Allows the user to choose whether a semantic call should fail completely (default / current behavior), or to return partial results.") + semanticErrorHandling?: SemanticErrorMode; + + @doc("Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.") + @minValue(700) + semanticMaxWaitInMilliseconds?: int32; + + @doc("Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.") + semanticQuery?: string; + + @doc("A value that specifies whether answers should be returned as part of the search response.") + answers?: QueryAnswerType; + + @doc("A value that specifies whether captions should be returned as part of the search response.") + captions?: QueryCaptionType; + + @doc("A value that specifies whether query rewrites should be generated to augment the search query.") + queryRewrites?: QueryRewritesType; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names used for semantic ranking.") + @encode(ArrayEncoding.commaDelimited) + semanticFields?: string; + + @doc("The query parameters for vector and hybrid search queries.") + vectorQueries?: VectorQuery[]; + + @doc("Determines whether or not filters are applied before or after the vector search is performed. Default is 'preFilter' for new indexes.") + vectorFilterMode?: VectorFilterMode; + + @doc("The query parameters to configure hybrid search behaviors.") + hybridSearch?: HybridSearch; +} + +@doc("The query parameters for vector and hybrid search queries.") +@discriminator("kind") +model VectorQuery { + @doc("Number of nearest neighbors to return as top hits.") + k?: int32; + + @doc("Vector Fields of type Collection(Edm.Single) to be included in the vector searched.") + fields?: string; + + @doc("When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values.") + exhaustive?: boolean; + + @doc("Oversampling factor. Minimum value is 1. It overrides the 'defaultOversampling' parameter configured in the index definition. It can be set only when 'rerankWithOriginalVectors' is true. This parameter is only permitted when a compression method is used on the underlying vector field.") + oversampling?: float64; + + @doc("Relative weight of the vector query when compared to other vector query and/or the text query within the same search request. This value is used when combining the results of multiple ranking lists produced by the different vector queries and/or the results retrieved through the text query. The higher the weight, the higher the documents that matched that query will be in the final ranking. Default is 1.0 and the value needs to be a positive number larger than zero.") + weight?: float32; + + @doc("The threshold used for vector queries. Note this can only be set if all 'fields' use the same similarity metric.") + threshold?: VectorThreshold; + + @doc("The OData filter expression to apply to this specific vector query. If no filter expression is defined at the vector level, the expression defined in the top level filter parameter is used instead.") + filterOverride?: string; + + @doc("Controls how many vectors can be matched from each document in a vector search query. Setting it to 1 ensures at most one vector per document is matched, guaranteeing results come from distinct documents. Setting it to 0 (unlimited) allows multiple relevant vectors from the same document to be matched. Default is 0.") + perDocumentVectorLimit?: int32; + + @doc("Type of query.") + kind: VectorQueryKind; +} + +@doc("The threshold used for vector queries.") +@discriminator("kind") +model VectorThreshold { + @doc("Type of threshold.") + kind: VectorThresholdKind; +} + +@doc("TThe query parameters to configure hybrid search behaviors.") +model HybridSearch { + @doc("Determines the maximum number of documents to be retrieved by the text query portion of a hybrid search request. Those documents will be combined with the documents matching the vector queries to produce a single final list of results. Choosing a larger maxTextRecallSize value will allow retrieving and paging through more documents (using the top and skip parameters), at the cost of higher resource utilization and higher latency. The value needs to be between 1 and 10,000. Default is 1000.") + maxTextRecallSize?: int32; + + @doc("Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window.") + countAndFacetMode?: HybridCountAndFacetMode; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("Contains a document found by a search query, plus associated metadata.") +model SearchResult { + ...Record; + + @doc("The relevance score of the document compared to other documents returned by the query.") + @encodedName("application/json", "@search.score") + @visibility(Lifecycle.Read) + score: float64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The relevance score computed by the semantic ranker for the top search results. Search results are sorted by the RerankerScore first and then by the Score. RerankerScore is only returned for queries of type 'semantic'.") + @encodedName("application/json", "@search.rerankerScore") + @visibility(Lifecycle.Read) + rerankerScore?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The relevance score computed by boosting the Reranker Score. Search results are sorted by the RerankerScore/RerankerBoostedScore based on useScoringProfileBoostedRanking in the Semantic Config. RerankerBoostedScore is only returned for queries of type 'semantic'.") + @encodedName("application/json", "@search.rerankerBoostedScore") + @visibility(Lifecycle.Read) + rerankerBoostedScore?: float64 | null; + + @doc("Text fragments from the document that indicate the matching search terms, organized by each applicable field; null if hit highlighting was not enabled for the query.") + @encodedName("application/json", "@search.highlights") + @visibility(Lifecycle.Read) + highlights?: Record; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type 'semantic'.") + @encodedName("application/json", "@search.captions") + @visibility(Lifecycle.Read) + captions?: QueryCaptionResult[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Contains debugging information that can be used to further explore your search results.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.documentDebugInfo") + documentDebugInfo?: DocumentDebugInfo | null; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type `semantic`.") +model QueryCaptionResult { + ...Record; + + @doc("A representative text passage extracted from the document most relevant to the search query.") + @visibility(Lifecycle.Read) + text?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Same text passage as in the Text property with highlighted phrases most relevant to the query.") + @visibility(Lifecycle.Read) + highlights?: string | null; +} + +@doc("Contains debugging information that can be used to further explore your search results.") +model DocumentDebugInfo { + @doc("Contains debugging information specific to semantic ranking requests.") + @visibility(Lifecycle.Read) + semantic?: SemanticDebugInfo; + + @doc("Contains debugging information specific to vector and hybrid search.") + @visibility(Lifecycle.Read) + vectors?: VectorsDebugInfo; + + @doc("Contains debugging information specific to vectors matched within a collection of complex types.") + @visibility(Lifecycle.Read) + innerHits?: Record; +} + +@doc("Contains debugging information specific to semantic ranking requests.") +model SemanticDebugInfo { + @doc("The title field that was sent to the semantic enrichment process, as well as how it was used") + @visibility(Lifecycle.Read) + titleField?: QueryResultDocumentSemanticField; + + @doc("The content fields that were sent to the semantic enrichment process, as well as how they were used") + @visibility(Lifecycle.Read) + contentFields?: QueryResultDocumentSemanticField[]; + + @doc("The keyword fields that were sent to the semantic enrichment process, as well as how they were used") + @visibility(Lifecycle.Read) + keywordFields?: QueryResultDocumentSemanticField[]; + + @doc("The raw concatenated strings that were sent to the semantic enrichment process.") + @visibility(Lifecycle.Read) + rerankerInput?: QueryResultDocumentRerankerInput; +} + +@doc("Detailed scoring information for an individual element of a complex collection.") +model QueryResultDocumentInnerHit { + @doc("Position of this specific matching element within it's original collection. Position starts at 0.") + @visibility(Lifecycle.Read) + ordinal?: int64; + + @doc("Detailed scoring information for an individual element of a complex collection that matched a vector query.") + @visibility(Lifecycle.Read) + vectors?: Record[]; +} + +@doc("Description of fields that were sent to the semantic enrichment process, as well as how they were used") +model QueryResultDocumentSemanticField { + @doc("The name of the field that was sent to the semantic enrichment process") + @visibility(Lifecycle.Read) + name?: string; + + @doc("The way the field was used for the semantic enrichment process (fully used, partially used, or unused)") + @visibility(Lifecycle.Read) + state?: SemanticFieldState; +} + +@doc("The raw concatenated strings that were sent to the semantic enrichment process.") +model QueryResultDocumentRerankerInput { + @doc("The raw string for the title field that was used for semantic enrichment.") + @visibility(Lifecycle.Read) + title?: string; + + @doc("The raw concatenated strings for the content fields that were used for semantic enrichment.") + @visibility(Lifecycle.Read) + content?: string; + + @doc("The raw concatenated strings for the keyword fields that were used for semantic enrichment.") + @visibility(Lifecycle.Read) + keywords?: string; +} + +@doc("\"Contains debugging information specific to vector and hybrid search.\")") +model VectorsDebugInfo { + @doc("The breakdown of subscores of the document prior to the chosen result set fusion/combination method such as RRF.") + @visibility(Lifecycle.Read) + subscores?: QueryResultDocumentSubscores; +} + +@doc("The breakdown of subscores between the text and vector query components of the search query for this document. Each vector query is shown as a separate object in the same order they were received.") +model QueryResultDocumentSubscores { + @doc("The BM25 or Classic score for the text portion of the query.") + @visibility(Lifecycle.Read) + text?: TextResult; + + @doc("The vector similarity and \@search.score values for each vector query.") + @visibility(Lifecycle.Read) + vectors?: Record[]; + + @doc("The BM25 or Classic score for the text portion of the query.") + @visibility(Lifecycle.Read) + documentBoost?: float64; +} + +@doc("The BM25 or Classic score for the text portion of the query.") +model TextResult { + @doc("The BM25 or Classic score for the text portion of the query.") + @visibility(Lifecycle.Read) + searchScore?: float64; +} + +@doc("A single vector field result. Both \@search.score and vector similarity values are returned. Vector similarity is related to \@search.score by an equation.") +model SingleVectorFieldResult { + @doc("The \@search.score value that is calculated from the vector similarity score. This is the score that's visible in a pure single-field single-vector query.") + @visibility(Lifecycle.Read) + searchScore?: float64; + + @doc("The vector similarity score for this document. Note this is the canonical definition of similarity metric, not the 'distance' version. For example, cosine similarity instead of cosine distance.") + @visibility(Lifecycle.Read) + vectorSimilarity?: float64; +} + +@doc("Response containing suggestion query results from an index.") +model SuggestDocumentsResult { + @doc("The sequence of results returned by the query.") + @pageItems + @visibility(Lifecycle.Read) + value: SuggestResult[]; + + @doc("A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not set in the request.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.coverage") + coverage?: float64; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A result containing a document found by a suggestion query, plus associated metadata.") +model SuggestResult { + ...Record; + + @doc("The text of the suggestion result.") + @encodedName("application/json", "@search.text") + @visibility(Lifecycle.Read) + text: string; +} + +@doc("Parameters for filtering, sorting, fuzzy matching, and other suggestions query behaviors.") +model SuggestRequest { + @doc("An OData expression that filters the documents considered for suggestions.") + filter?: string; + + @doc("A value indicating whether to use fuzzy matching for the suggestion query. Default is false. When set to true, the query will find suggestions even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestion searches are slower and consume more resources.") + fuzzy?: boolean; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled.") + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled.") + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestion query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.") + minimumCoverage?: float64; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") + @encode(ArrayEncoding.commaDelimited) + orderby?: string; + + @doc("The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.") + search: string; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester.") + @encode(ArrayEncoding.commaDelimited) + searchFields?: string; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results.") + @encode(ArrayEncoding.commaDelimited) + select?: string; + + @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") + suggesterName: string; + + @doc("The number of suggestions to retrieve. This must be a value between 1 and 100. The default is 5.") + top?: int32; +} + +@doc("Contains a batch of document write actions to send to the index.") +model IndexBatch { + @doc("The actions in the batch.") + value: IndexAction[]; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("Represents an index action that operates on a document.") +model IndexAction { + ...Record; + + @doc("The operation to perform on a document in an indexing batch.") + @encodedName("application/json", "@search.action") + actionType?: IndexActionType; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A document retrieved via a document lookup operation.") +model LookupDocument { + ...Record; +} + +@doc("Response containing the status of operations for all documents in the indexing request.") +model IndexDocumentsResult { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("Response containing the status of operations for all actions in the batch.") + @statusCode + _: 200 | 207; + + @doc("The list of status information for each document in the indexing request.") + @pageItems + @visibility(Lifecycle.Read) + value: IndexingResult[]; +} + +@doc("Status of an indexing operation for a single document.") +model IndexingResult { + @visibility(Lifecycle.Read) + @doc("The key of a document that was in the indexing request.") + key: string; + + @visibility(Lifecycle.Read) + @doc("The error message explaining why the indexing operation failed for the document identified by the key; null if indexing succeeded.") + errorMessage?: string; + + @visibility(Lifecycle.Read) + @doc("A value indicating whether the indexing operation succeeded for the document identified by the key.") + status: boolean; + + @visibility(Lifecycle.Read) + @doc("The status code of the indexing operation. Possible values include: 200 for a successful update or delete, 201 for successful document creation, 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy.") + statusCode: int32; +} + +@doc("The result of Autocomplete query.") +model AutocompleteResult { + @doc("A value indicating the percentage of the index that was considered by the autocomplete request, or null if minimumCoverage was not specified in the request.") + @encodedName("application/json", "@search.coverage") + @visibility(Lifecycle.Read) + coverage?: float64; + + @doc("The list of returned Autocompleted items.") + @pageItems + @visibility(Lifecycle.Read) + value: AutocompleteItem[]; +} + +@doc("The result of Autocomplete requests.") +model AutocompleteItem { + @doc("The completed term.") + @visibility(Lifecycle.Read) + text: string; + + @doc("The query along with the completed term.") + @visibility(Lifecycle.Read) + queryPlusText: string; +} + +@doc("Parameters for fuzzy matching, and other autocomplete query behaviors.") +model AutocompleteRequest { + @doc("The search text on which to base autocomplete results.") + search: string; + + @doc("Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms.") + autocompleteMode?: AutocompleteMode; + + @doc("An OData expression that filters the documents used to produce completed terms for the Autocomplete result.") + filter?: string; + + @doc("A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will autocomplete terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.") + fuzzy?: boolean; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled.") + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled.") + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.") + minimumCoverage?: float64; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.") + @encode(ArrayEncoding.commaDelimited) + searchFields?: string; + + @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") + suggesterName: string; + + @doc("The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5.") + top?: int32; +} + +@doc("The query parameters to use for vector search when a raw vector value is provided.") +model VectorizedQuery extends VectorQuery { + @doc("The vector representation of a search query.") + vector: float32[]; + + @doc("The kind of vector query being performed.") + kind: "vector"; +} + +@doc("The query parameters to use for vector search when a text value that needs to be vectorized is provided.") +model VectorizableTextQuery extends VectorQuery { + @doc("The text to be vectorized to perform a vector search query.") + text: string; + + @doc("Can be configured to let a generative model rewrite the query before sending it to be vectorized.") + queryRewrites?: QueryRewritesType; + + @doc("The kind of vector query being performed.") + kind: "text"; +} + +@doc("The query parameters to use for vector search when an url that represents an image value that needs to be vectorized is provided.") +model VectorizableImageUrlQuery extends VectorQuery { + @doc("The URL of an image to be vectorized to perform a vector search query.") + url?: string; + + @doc("The kind of vector query being performed.") + kind: "imageUrl"; +} + +@doc("The query parameters to use for vector search when a base 64 encoded binary of an image that needs to be vectorized is provided.") +model VectorizableImageBinaryQuery extends VectorQuery { + @doc("The base 64 encoded binary of an image to be vectorized to perform a vector search query.") + base64Image?: string; + + @doc("The kind of vector query being performed.") + kind: "imageBinary"; +} + +@doc("The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field.") +model VectorSimilarityThreshold extends VectorThreshold { + @doc("The threshold will filter based on the similarity metric value. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field.") + value: float64; + + @doc("The kind of threshold used to filter vector queries") + kind: "vectorSimilarity"; +} + +@doc("The results of the vector query will filter based on the '\@search.score' value. Note this is the \@search.score returned as part of the search response. The threshold direction will be chosen for higher \@search.score.") +model SearchScoreThreshold extends VectorThreshold { + @doc("The threshold will filter based on the '\@search.score' value. Note this is the \@search.score returned as part of the search response. The threshold direction will be chosen for higher \@search.score.") + value: float64; + + @doc("The kind of threshold used to filter vector queries") + kind: "searchScore"; +} diff --git a/specification/search/data-plane/Search/models-knowledgebase.tsp b/specification/search/data-plane/Search/models-knowledgebase.tsp new file mode 100644 index 000000000000..77cfaff26cb6 --- /dev/null +++ b/specification/search/data-plane/Search/models-knowledgebase.tsp @@ -0,0 +1,863 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models-service.tsp"; +import "./models-shared.tsp"; + +using TypeSpec.Http; +using Azure.ClientGenerator.Core.Legacy; + +namespace Search; + +@doc("The input contract for the retrieval request.") +model KnowledgeBaseRetrievalRequest { + @doc("A list of chat message style input.") + messages?: KnowledgeBaseMessage[]; + + @doc("A list of intended queries to execute without model query planning.") + intents?: KnowledgeRetrievalIntent[]; + + @doc("The maximum runtime in seconds.") + maxRuntimeInSeconds?: int32; + + @doc("Limits the maximum size of the content in the output.") + maxOutputSize?: int32; + + @doc("The retrieval reasoning effort configuration.") + retrievalReasoningEffort?: KnowledgeRetrievalReasoningEffort; + + @doc("Indicates retrieval results should include activity information.") + includeActivity?: boolean; + + @doc("The output configuration for this retrieval.") + outputMode?: KnowledgeRetrievalOutputMode; + + @doc("A list of runtime parameters for the knowledge sources.") + knowledgeSourceParams?: KnowledgeSourceParams[]; +} + +@doc("The output contract for the retrieval response.") +model KnowledgeBaseRetrievalResponse { + @doc("The response messages.") + response?: KnowledgeBaseMessage[]; + + @doc("The activity records for tracking progress and billing implications.") + activity?: KnowledgeBaseActivityRecord[]; + + @doc("The references for the retrieval data used in the response.") + references?: KnowledgeBaseReference[]; +} + +@doc("Base type for reasoning effort.") +@discriminator("kind") +model KnowledgeRetrievalReasoningEffort { + @doc("The kind of reasoning effort.") + kind: KnowledgeRetrievalReasoningEffortKind; +} + +@doc("Run knowledge retrieval with minimal reasoning effort.") +model KnowledgeRetrievalMinimalReasoningEffort + extends KnowledgeRetrievalReasoningEffort { + @doc("The discriminator value.") + kind: KnowledgeRetrievalReasoningEffortKind.minimal; +} + +@doc("Run knowledge retrieval with low reasoning effort.") +model KnowledgeRetrievalLowReasoningEffort + extends KnowledgeRetrievalReasoningEffort { + @doc("The discriminator value.") + kind: KnowledgeRetrievalReasoningEffortKind.low; +} + +@doc("Run knowledge retrieval with medium reasoning effort.") +model KnowledgeRetrievalMediumReasoningEffort + extends KnowledgeRetrievalReasoningEffort { + @doc("The discriminator value.") + kind: KnowledgeRetrievalReasoningEffortKind.medium; +} + +@doc("The amount of effort to use during retrieval.") +union KnowledgeRetrievalReasoningEffortKind { + string, + + @doc("Does not perform any source selections, query planning, or iterative search.") + minimal: "minimal", + + @doc("Use low reasoning during retrieval.") + low: "low", + + @doc("Use a moderate amount of reasoning during retrieval.") + medium: "medium", +} + +@doc("The output configuration for this retrieval.") +union KnowledgeRetrievalOutputMode { + string, + + @doc("Return data from the knowledge sources directly without generative alteration.") + extractiveData: "extractiveData", + + @doc("Synthesize an answer for the response payload.") + answerSynthesis: "answerSynthesis", +} + +@doc("Base type for knowledge source runtime parameters.") +@discriminator("kind") +model KnowledgeSourceParams { + @doc("The name of the index the params apply to.") + knowledgeSourceName: string; + + @doc("Indicates whether references should be included for data retrieved from this source.") + includeReferences?: boolean; + + @doc("Indicates whether references should include the structured data obtained during retrieval in their payload.") + includeReferenceSourceData?: boolean; + + @doc("Indicates that this knowledge source should bypass source selection and always be queried at retrieval time.") + alwaysQuerySource?: boolean; + + @doc("The reranker threshold all retrieved documents must meet to be included in the response.") + rerankerThreshold?: float32; + + @doc("The type of the knowledge source.") + kind: KnowledgeSourceKind; +} + +@doc("Specifies runtime parameters for a search index knowledge source") +model SearchIndexKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.SearchIndex; + + @doc("A filter condition applied to the index (e.g., 'State eq VA').") + filterAddOn?: string; +} + +@doc("Specifies runtime parameters for a azure blob knowledge source") +model AzureBlobKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.AzureBlob; +} + +@doc("Specifies which SharePoint libraries to access.") +union IndexedSharePointContainerName { + string, + + @doc("Index content from the site's default document library.") + DefaultSiteLibrary: "defaultSiteLibrary", + + @doc("Index content from every document library in the site.") + AllSiteLibraries: "allSiteLibraries", + + @doc("Use a query to filter SharePoint content.") + UseQuery: "useQuery", +} + +@doc("Specifies runtime parameters for a indexed SharePoint knowledge source") +model IndexedSharePointKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.IndexedSharePoint; +} + +@doc("Specifies runtime parameters for a indexed OneLake knowledge source") +model IndexedOneLakeKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.IndexedOneLake; +} + +@doc("Specifies runtime parameters for a web knowledge source") +model WebKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.Web; + + @doc("The language of the web results.") + language?: string; + + @doc("The market of the web results.") + market?: string; + + @doc("The number of web results to return.") + count?: int32; + + @doc("The freshness of web results.") + freshness?: string; +} + +@doc("Specifies runtime parameters for a remote SharePoint knowledge source") +model RemoteSharePointKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.RemoteSharePoint; + + @doc("A filter condition applied to the SharePoint data source. It must be specified in the Keyword Query Language syntax. It will be combined as a conjunction with the filter expression specified in the knowledge source definition.") + filterExpressionAddOn?: string; +} + +@doc("An intended query to execute without model query planning.") +@discriminator("type") +model KnowledgeRetrievalIntent { + @doc("The type of the intent.") + type: KnowledgeRetrievalIntentType; +} + +@doc("The kind of knowledge base configuration to use.") +union KnowledgeRetrievalIntentType { + string, + + @doc("A natural language semantic query intent.") + semantic: "semantic", +} + +@doc("A semantic query intent.") +model KnowledgeRetrievalSemanticIntent extends KnowledgeRetrievalIntent { + @doc("The discriminator value.") + type: KnowledgeRetrievalIntentType.semantic; + + @doc("The semantic query to execute") + search: string; +} + +@doc("The natural language message style object.") +model KnowledgeBaseMessage { + @doc("The role of the tool response.") + role?: string; + + @doc("The content of the message.") + content: KnowledgeBaseMessageContent[]; +} + +@doc("Specifies the type of the message content.") +@discriminator("type") +model KnowledgeBaseMessageContent { + @doc("The type of the message") + type: KnowledgeBaseMessageContentType; +} + +@doc("The type of message content.") +union KnowledgeBaseMessageContentType { + string, + + @doc("Text message content kind.") + text: "text", + + @doc("Image message content kind.") + image: "image", +} + +@doc("Text message type.") +model KnowledgeBaseMessageTextContent extends KnowledgeBaseMessageContent { + @doc("The discriminator value.") + type: KnowledgeBaseMessageContentType.text; + + @doc("The text content.") + text: string; +} + +@doc("Image message type.") +model KnowledgeBaseMessageImageContent extends KnowledgeBaseMessageContent { + @doc("The discriminator value.") + type: KnowledgeBaseMessageContentType.image; + + @doc("The image content.") + image: KnowledgeBaseImageContent; +} + +@doc("Image content.") +model KnowledgeBaseImageContent { + @doc("The url of the image.") + url: url; +} + +@doc("The type of activity record.") +union KnowledgeBaseActivityRecordType { + string, + + @doc("Search index retrieval activity.") + searchIndex: "searchIndex", + + @doc("Azure Blob retrieval activity.") + azureBlob: "azureBlob", + + @doc("Indexed SharePoint retrieval activity.") + indexedSharePoint: "indexedSharePoint", + + @doc("Indexed OneLake retrieval activity.") + indexedOneLake: "indexedOneLake", + + @doc("Web retrieval activity.") + web: "web", + + @doc("Remote SharePoint retrieval activity.") + remoteSharePoint: "remoteSharePoint", + + @doc("LLM query planning activity.") + modelQueryPlanning: "modelQueryPlanning", + + @doc("LLM answer synthesis activity.") + modelAnswerSynthesis: "modelAnswerSynthesis", + + @doc("Agentic reasoning activity.") + agenticReasoning: "agenticReasoning", +} + +@doc("Base type for activity records. Tracks execution details, timing, and errors for knowledge base operations.") +@discriminator("type") +model KnowledgeBaseActivityRecord { + @doc("The ID of the activity record.") + id: int32; + + @doc("The type of the activity record.") + type: KnowledgeBaseActivityRecordType; + + @doc("The elapsed time in milliseconds for the retrieval activity.") + elapsedMs?: int32; + + @doc("The error detail explaining why the operation failed. This property is only included when the activity does not succeed.") + error?: KnowledgeBaseErrorDetail; +} + +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Inherits typed discriminator from base" +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents a retrieval activity record.") +@discriminator("type") +model KnowledgeBaseRetrievalActivityRecord extends KnowledgeBaseActivityRecord { + @doc("The knowledge source for the retrieval activity.") + knowledgeSourceName?: string; + + @doc("The query time for this retrieval activity.") + queryTime?: utcDateTime; + + @doc("The count of documents retrieved that were sufficiently relevant to pass the reranker threshold.") + count?: int32; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a search index retrieval activity record.") +model KnowledgeBaseSearchIndexActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.searchIndex; + + @doc("The search index arguments for the retrieval activity.") + searchIndexArguments?: KnowledgeBaseSearchIndexActivityArguments; +} + +@doc("Represents the arguments the search index retrieval activity was run with.") +model KnowledgeBaseSearchIndexActivityArguments { + @doc("The search string used to query the search index.") + search?: string; + + @doc("The filter string.") + filter?: string; + + @doc("What fields were selected for search.") + sourceDataFields?: SearchIndexFieldReference[]; + + @doc("What fields were searched against.") + searchFields?: SearchIndexFieldReference[]; + + @doc("What semantic configuration was used from the search index.") + semanticConfigurationName?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a azure blob retrieval activity record.") +model KnowledgeBaseAzureBlobActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.azureBlob; + + @doc("The azure blob arguments for the retrieval activity.") + azureBlobArguments?: KnowledgeBaseAzureBlobActivityArguments; +} + +@doc("Represents the arguments the azure blob retrieval activity was run with.") +model KnowledgeBaseAzureBlobActivityArguments { + @doc("The search string used to query blob contents.") + search?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a indexed SharePoint retrieval activity record.") +model KnowledgeBaseIndexedSharePointActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.indexedSharePoint; + + @doc("The indexed SharePoint arguments for the retrieval activity.") + indexedSharePointArguments?: KnowledgeBaseIndexedSharePointActivityArguments; +} + +@doc("Represents the arguments the indexed SharePoint retrieval activity was run with.") +model KnowledgeBaseIndexedSharePointActivityArguments { + @doc("The search string used to query indexed SharePoint contents.") + search?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a indexed OneLake retrieval activity record.") +model KnowledgeBaseIndexedOneLakeActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.indexedOneLake; + + @doc("The indexed OneLake arguments for the retrieval activity.") + indexedOneLakeArguments?: KnowledgeBaseIndexedOneLakeActivityArguments; +} + +@doc("Represents the arguments the indexed OneLake retrieval activity was run with.") +model KnowledgeBaseIndexedOneLakeActivityArguments { + @doc("The search string used to query indexed OneLake contents.") + search?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a web retrieval activity record.") +model KnowledgeBaseWebActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.web; + + @doc("The web arguments for the retrieval activity.") + webArguments?: KnowledgeBaseWebActivityArguments; +} + +@doc("Represents the arguments the web retrieval activity was run with.") +model KnowledgeBaseWebActivityArguments { + @doc("The search string used to query the web.") + search?: string; + + @doc("The language for the retrieval activity.") + language?: string; + + @doc("The market for the retrieval activity.") + market?: string; + + @doc("The number of web results returned.") + count?: int32; + + @doc("The freshness for the retrieval activity.") + freshness?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a remote SharePoint retrieval activity record.") +model KnowledgeBaseRemoteSharePointActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.remoteSharePoint; + + @doc("The remote SharePoint arguments for the retrieval activity.") + remoteSharePointArguments?: KnowledgeBaseRemoteSharePointActivityArguments; +} + +@doc("Represents the arguments the remote SharePoint retrieval activity was run with.") +model KnowledgeBaseRemoteSharePointActivityArguments { + @doc("The search string used to query the remote SharePoint knowledge source.") + search?: string; + + @doc("The filter expression add-on for the retrieval activity.") + filterExpressionAddOn?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an LLM query planning activity record.") +model KnowledgeBaseModelQueryPlanningActivityRecord + extends KnowledgeBaseActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.modelQueryPlanning; + + @doc("The number of input tokens for the LLM query planning activity.") + inputTokens?: int32; + + @doc("The number of output tokens for the LLM query planning activity.") + outputTokens?: int32; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an LLM answer synthesis activity record.") +model KnowledgeBaseModelAnswerSynthesisActivityRecord + extends KnowledgeBaseActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.modelAnswerSynthesis; + + @doc("The number of input tokens for the LLM answer synthesis activity.") + inputTokens?: int32; + + @doc("The number of output tokens for the LLM answer synthesis activity.") + outputTokens?: int32; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an agentic reasoning activity record.") +model KnowledgeBaseAgenticReasoningActivityRecord + extends KnowledgeBaseActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.agenticReasoning; + + @doc("The number of input tokens for agentic reasoning.") + reasoningTokens?: int32; + + @doc("The retrieval reasoning effort configuration.") + retrievalReasoningEffort?: KnowledgeRetrievalReasoningEffort; +} + +@doc("The type of reference.") +union KnowledgeBaseReferenceType { + string, + + @doc("Search index document reference.") + searchIndex: "searchIndex", + + @doc("Azure Blob document reference.") + azureBlob: "azureBlob", + + @doc("Indexed SharePoint document reference.") + indexedSharePoint: "indexedSharePoint", + + @doc("Indexed OneLake document reference.") + indexedOneLake: "indexedOneLake", + + @doc("Web document reference.") + web: "web", + + @doc("Remote SharePoint document reference.") + remoteSharePoint: "remoteSharePoint", +} + +@doc("Base type for references.") +@discriminator("type") +model KnowledgeBaseReference { + @doc("The type of the reference.") + type: KnowledgeBaseReferenceType; + + @doc("The ID of the reference.") + id: string; + + @doc("The source activity ID for the reference.") + activitySource: int32; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Allows arbitrary JSON via additionalProperties: true." + @doc("The source data for the reference.") + sourceData?: Record; + + @doc("The reranker score for the document reference.") + rerankerScore?: float32; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an Azure Search document reference.") +model KnowledgeBaseSearchIndexReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.searchIndex; + + @doc("The document key for the reference.") + docKey?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an Azure Blob Storage document reference.") +model KnowledgeBaseAzureBlobReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.azureBlob; + + @doc("The blob URL for the reference.") + blobUrl?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an indexed SharePoint document reference.") +model KnowledgeBaseIndexedSharePointReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.indexedSharePoint; + + @doc("The document URL for the reference.") + docUrl?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an indexed OneLake document reference.") +model KnowledgeBaseIndexedOneLakeReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.indexedOneLake; + + @doc("The document URL for the reference.") + docUrl?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents a web document reference.") +model KnowledgeBaseWebReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.web; + + @doc("The url the reference data originated from.") + url?: url; + + @doc("The title of the web document.") + title?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents a remote SharePoint document reference.") +model KnowledgeBaseRemoteSharePointReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.remoteSharePoint; + + @doc("The url the reference data originated from.") + webUrl?: url; + + @doc("Information about the sensitivity label applied to the SharePoint document.") + searchSensitivityLabelInfo?: SharePointSensitivityLabelInfo; +} + +@doc("Information about the sensitivity label applied to a SharePoint document.") +model SharePointSensitivityLabelInfo { + @doc("The display name for the sensitivity label.") + displayName?: string; + + @doc("The ID of the sensitivity label.") + sensitivityLabelId?: string; + + @doc("The tooltip that should be displayed for the label in a UI.") + tooltip?: string; + + @doc("The priority in which the sensitivity label is applied.") + priority?: int32; + + @doc("The color that the UI should display for the label, if configured.") + color?: string; + + @doc("Indicates whether the sensitivity label enforces encryption.") + isEncrypted?: boolean; +} + +@doc("The error details.") +model KnowledgeBaseErrorDetail { + @doc("The error code.") + @visibility(Lifecycle.Read) + code?: string; + + @doc("The error message.") + @visibility(Lifecycle.Read) + message?: string; + + @doc("The error target.") + @visibility(Lifecycle.Read) + target?: string; + + @doc("The error details.") + @visibility(Lifecycle.Read) + @Azure.ResourceManager.identifiers(#[]) + details?: KnowledgeBaseErrorDetail[]; + + @doc("The error additional info.") + @visibility(Lifecycle.Read) + @Azure.ResourceManager.identifiers(#[]) + additionalInfo?: KnowledgeBaseErrorAdditionalInfo[]; +} + +@doc("The resource management error additional info.") +model KnowledgeBaseErrorAdditionalInfo { + @doc("The additional info type.") + @visibility(Lifecycle.Read) + type?: string; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Allows arbitrary JSON via additionalProperties: true." + @doc("The additional info.") + @visibility(Lifecycle.Read) + info?: Record; +} + +@doc("Successful retrieval response.") +model KnowledgeBaseRetrievalSuccessResponse { + @doc("The retrieval response is successfully returned.") + @statusCode + code: 200; + + @doc("The retrieval response body.") + @body + body: KnowledgeBaseRetrievalResponse; +} + +@doc("Partial retrieval response.") +model KnowledgeBaseRetrievalPartialResponse { + @doc("A partial retrieval response is returned.") + @statusCode + code: 206; + + @doc("The partial retrieval response body.") + @body + body: KnowledgeBaseRetrievalResponse; +} + +@doc("Parameters for AI Services.") +model AIServices { + @doc("The URI of the AI Services endpoint.") + uri: url; + + @doc("The API key for accessing AI Services.") + apiKey?: string; +} + +@doc("Optional content extraction mode. Default is 'minimal'.") +union KnowledgeSourceContentExtractionMode { + string, + + @doc("Extracts only essential metadata while deferring most content processing.") + Minimal: "minimal", + + @doc("Performs the full default content extraction pipeline.") + Standard: "standard", +} + +@doc("Permission types to ingest together with document content.") +union KnowledgeSourceIngestionPermissionOption { + string, + + @doc("Ingest explicit user identifiers alongside document content.") + UserIds: "userIds", + + @doc("Ingest group identifiers alongside document content.") + GroupIds: "groupIds", + + @doc("Ingest RBAC scope information alongside document content.") + RbacScope: "rbacScope", +} + +@doc("Consolidates all general ingestion settings for knowledge sources.") +model KnowledgeSourceIngestionParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An explicit identity to use for this knowledge source.") + identity?: SearchIndexerDataIdentity | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional vectorizer configuration for vectorizing content.") + embeddingModel?: KnowledgeSourceVectorizer | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional chat completion model for image verbalization or context extraction.") + chatCompletionModel?: KnowledgeBaseModel | null; + + @doc("Indicates whether image verbalization should be disabled. Default is false.") + disableImageVerbalization?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional schedule for data ingestion.") + ingestionSchedule?: IndexingSchedule | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional list of permission types to ingest together with document content. If specified, it will set the indexer permission options for the data source.") + ingestionPermissionOptions?: KnowledgeSourceIngestionPermissionOption[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional content extraction mode. Default is 'minimal'.") + contentExtractionMode?: KnowledgeSourceContentExtractionMode | null = KnowledgeSourceContentExtractionMode.Minimal; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional AI Services configuration for content processing.") + aiServices?: AIServices | null; +} + +@doc("Specifies the vectorization method to be used for knowledge source embedding model.") +@discriminator("kind") +model KnowledgeSourceVectorizer { + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: VectorSearchVectorizerKind; +} + +@doc("Specifies the Azure OpenAI resource used to vectorize a query string.") +model KnowledgeSourceAzureOpenAIVectorizer extends KnowledgeSourceVectorizer { + @doc("The discriminator value.") + kind: VectorSearchVectorizerKind.AzureOpenAI; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("Contains the parameters specific to Azure OpenAI embedding vectorization.") + azureOpenAIParameters?: AzureOpenAIVectorizerParameters; +} + +@doc("The current synchronization status of the knowledge source.") +union KnowledgeSourceSynchronizationStatus { + string, + + @doc("The knowledge source is being provisioned.") + Creating: "creating", + + @doc("The knowledge source is active and synchronization runs are occurring.") + Active: "active", + + @doc("The knowledge source is being deleted and synchronization is paused.") + Deleting: "deleting", +} + +@doc("Represents the status and synchronization history of a knowledge source.") +model KnowledgeSourceStatus { + @doc("The current synchronization status.") + synchronizationStatus: KnowledgeSourceSynchronizationStatus; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The synchronization interval (e.g., '1d' for daily). Null if no schedule is configured.") + synchronizationInterval?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Current synchronization state that spans multiple indexer runs.") + currentSynchronizationState?: SynchronizationState | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Details of the last completed synchronization. Null on first sync.") + lastSynchronizationState?: CompletedSynchronizationState | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Statistical information about the knowledge source synchronization history. Null on first sync.") + statistics?: KnowledgeSourceStatistics | null; +} + +@doc("Statistical information about knowledge source synchronization history.") +model KnowledgeSourceStatistics { + @doc("Total number of synchronizations.") + totalSynchronization: int32; + + @doc("Average synchronization duration in HH:MM:SS format.") + averageSynchronizationDuration: string; + + @doc("Average items processed per synchronization.") + averageItemsProcessedPerSynchronization: int32; +} + +@doc("Represents the current state of an ongoing synchronization that spans multiple indexer runs.") +model SynchronizationState { + @doc("The start time of the current synchronization.") + startTime: utcDateTime; + + @doc("The number of item updates successfully processed in the current synchronization.") + itemsUpdatesProcessed: int32; + + @doc("The number of item updates that failed in the current synchronization.") + itemsUpdatesFailed: int32; + + @doc("The number of items skipped in the current synchronization.") + itemsSkipped: int32; +} + +@doc("Represents the completed state of the last synchronization.") +model CompletedSynchronizationState { + @doc("The start time of the last completed synchronization.") + startTime: utcDateTime; + + @doc("The end time of the last completed synchronization.") + endTime: utcDateTime; + + @doc("The number of item updates successfully processed in the last synchronization.") + itemsUpdatesProcessed: int32; + + @doc("The number of item updates that failed in the last synchronization.") + itemsUpdatesFailed: int32; + + @doc("The number of items skipped in the last synchronization.") + itemsSkipped: int32; +} diff --git a/specification/search/data-plane/Search/models-service.tsp b/specification/search/data-plane/Search/models-service.tsp new file mode 100644 index 000000000000..c179c97e6e36 --- /dev/null +++ b/specification/search/data-plane/Search/models-service.tsp @@ -0,0 +1,6600 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "./models-shared.tsp"; + +using Azure.ClientGenerator.Core.Legacy; + +namespace Search; + +@doc("Defines the type of a datasource.") +union SearchIndexerDataSourceType { + string, + + @doc("Indicates an Azure SQL datasource.") + AzureSql: "azuresql", + + @doc("Indicates a CosmosDB datasource.") + CosmosDb: "cosmosdb", + + @doc("Indicates an Azure Blob datasource.") + AzureBlob: "azureblob", + + @doc("Indicates an Azure Table datasource.") + AzureTable: "azuretable", + + @doc("Indicates a MySql datasource.") + MySql: "mysql", + + @doc("Indicates an ADLS Gen2 datasource.") + AdlsGen2: "adlsgen2", + + @doc("Indicates a Microsoft Fabric OneLake datasource.") + OneLake: "onelake", + + @doc("Indicates a SharePoint datasource.") + SharePoint: "sharepoint", +} + +@doc("Represents the parsing mode for indexing from an Azure blob data source.") +union BlobIndexerParsingMode { + string, + + @doc("Set to default for normal file processing.") + Default: "default", + + @doc("Set to text to improve indexing performance on plain text files in blob storage.") + Text: "text", + + @doc("Set to delimitedText when blobs are plain CSV files.") + DelimitedText: "delimitedText", + + @doc("Set to json to extract structured content from JSON files.") + Json: "json", + + @doc("Set to jsonArray to extract individual elements of a JSON array as separate documents.") + JsonArray: "jsonArray", + + @doc("Set to jsonLines to extract individual JSON entities, separated by a new line, as separate documents.") + JsonLines: "jsonLines", + + @doc("Set to markdown to extract content from markdown files.") + Markdown: "markdown", +} + +@doc("Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`.") +union MarkdownParsingSubmode { + string, + + @doc("Indicates that each section of the markdown file (up to a specified depth) will be parsed into individual search documents. This can result in a single markdown file producing multiple search documents. This is the default sub-mode.") + OneToMany: "oneToMany", + + @doc("Indicates that each markdown file will be parsed into a single search document.") + OneToOne: "oneToOne", +} + +@doc("Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`.") +union MarkdownHeaderDepth { + string, + + @doc("Indicates that headers up to a level of h1 will be considered while grouping markdown content.") + h1: "h1", + + @doc("Indicates that headers up to a level of h2 will be considered while grouping markdown content.") + h2: "h2", + + @doc("Indicates that headers up to a level of h3 will be considered while grouping markdown content.") + h3: "h3", + + @doc("Indicates that headers up to a level of h4 will be considered while grouping markdown content.") + h4: "h4", + + @doc("Indicates that headers up to a level of h5 will be considered while grouping markdown content.") + h5: "h5", + + @doc("Indicates that headers up to a level of h6 will be considered while grouping markdown content. This is the default.") + h6: "h6", +} + +@doc("Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.") +union BlobIndexerDataToExtract { + string, + + @doc("Indexes just the standard blob properties and user-specified metadata.") + StorageMetadata: "storageMetadata", + + @doc("Extracts metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files are indexed).") + AllMetadata: "allMetadata", + + @doc("Extracts all metadata and textual content from each blob.") + ContentAndMetadata: "contentAndMetadata", +} + +@doc("Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer.") +union BlobIndexerImageAction { + string, + + @doc("Ignores embedded images or image files in the data set. This is the default.") + None: "none", + + @doc("Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field. This action requires that \"dataToExtract\" is set to \"contentAndMetadata\". A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results. This information is generated for each image when you use this option.") + GenerateNormalizedImages: "generateNormalizedImages", + + @doc("Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field, but treats PDF files differently in that each page will be rendered as an image and normalized accordingly, instead of extracting embedded images. Non-PDF file types will be treated the same as if \"generateNormalizedImages\" was set.") + GenerateNormalizedImagePerPage: "generateNormalizedImagePerPage", +} + +@doc("Determines algorithm for text extraction from PDF files in Azure blob storage.") +union BlobIndexerPDFTextRotationAlgorithm { + string, + + @doc("Leverages normal text extraction. This is the default.") + None: "none", + + @doc("May produce better and more readable text extraction from PDF files that have rotated text within them. Note that there may be a small performance speed impact when this parameter is used. This parameter only applies to PDF files, and only to PDFs with embedded text. If the rotated text appears within an embedded image in the PDF, this parameter does not apply.") + DetectAngles: "detectAngles", +} + +@doc("Specifies the environment in which the indexer should execute.") +union IndexerExecutionEnvironment { + string, + + @doc("Indicates that the search service can determine where the indexer should execute. This is the default environment when nothing is specified and is the recommended value.") + standard: "standard", + + @doc("Indicates that the indexer should run with the environment provisioned specifically for the search service. This should only be specified as the execution environment if the indexer needs to access resources securely over shared private link resources.") + private: "private", +} + +@doc("Details the status of an individual indexer execution.") +union IndexerExecutionStatusDetail { + string, + + @doc("Indicates that the reset that occurred was for a call to ResetDocs.") + ResetDocs: "resetDocs", + + @doc("Indicates to selectively resync based on option(s) from data source.") + Resync: "resync", +} + +@doc("Represents the mode the indexer is executing in.") +union IndexingMode { + string, + + @doc("The indexer is indexing all documents in the datasource.") + IndexingAllDocs: "indexingAllDocs", + + @doc("The indexer is indexing selective, reset documents in the datasource. The documents being indexed are defined on indexer status.") + IndexingResetDocs: "indexingResetDocs", + + @doc("The indexer is resyncing and indexing selective option(s) from the datasource.") + IndexingResync: "indexingResync", +} + +@doc("Defines behavior of the index projections in relation to the rest of the indexer.") +union IndexProjectionMode { + string, + + @doc("The source document will be skipped from writing into the indexer's target index.") + SkipIndexingParentDocuments: "skipIndexingParentDocuments", + + @doc("The source document will be written into the indexer's target index. This is the default pattern.") + IncludeIndexingParentDocuments: "includeIndexingParentDocuments", +} + +@doc("Defines the data type of a field in a search index.") +union SearchFieldDataType { + string, + + @doc("Indicates that a field contains a string.") + String: "Edm.String", + + @doc("Indicates that a field contains a 32-bit signed integer.") + Int32: "Edm.Int32", + + @doc("Indicates that a field contains a 64-bit signed integer.") + Int64: "Edm.Int64", + + @doc("Indicates that a field contains an IEEE double-precision floating point number.") + Double: "Edm.Double", + + @doc("Indicates that a field contains a Boolean value (true or false).") + Boolean: "Edm.Boolean", + + @doc("Indicates that a field contains a date/time value, including timezone information.") + DateTimeOffset: "Edm.DateTimeOffset", + + @doc("Indicates that a field contains a geo-location in terms of longitude and latitude.") + GeographyPoint: "Edm.GeographyPoint", + + @doc("Indicates that a field contains one or more complex objects that in turn have sub-fields of other types.") + Complex: "Edm.ComplexType", + + @doc("Indicates that a field contains a single-precision floating point number. This is only valid when used with Collection(Edm.Single).") + Single: "Edm.Single", + + @doc("Indicates that a field contains a half-precision floating point number. This is only valid when used with Collection(Edm.Half).") + Half: "Edm.Half", + + @doc("Indicates that a field contains a 16-bit signed integer. This is only valid when used with Collection(Edm.Int16).") + Int16: "Edm.Int16", + + @doc("Indicates that a field contains a 8-bit signed integer. This is only valid when used with Collection(Edm.SByte).") + SByte: "Edm.SByte", + + @doc("Indicates that a field contains a 8-bit unsigned integer. This is only valid when used with Collection(Edm.Byte).") + Byte: "Edm.Byte", +} + +@doc("Defines the names of all text analyzers supported by the search engine.") +union LexicalAnalyzerName { + string, + + @doc("Microsoft analyzer for Arabic.") + ArMicrosoft: "ar.microsoft", + + @doc("Lucene analyzer for Arabic.") + ArLucene: "ar.lucene", + + @doc("Lucene analyzer for Armenian.") + HyLucene: "hy.lucene", + + @doc("Microsoft analyzer for Bangla.") + BnMicrosoft: "bn.microsoft", + + @doc("Lucene analyzer for Basque.") + EuLucene: "eu.lucene", + + @doc("Microsoft analyzer for Bulgarian.") + BgMicrosoft: "bg.microsoft", + + @doc("Lucene analyzer for Bulgarian.") + BgLucene: "bg.lucene", + + @doc("Microsoft analyzer for Catalan.") + CaMicrosoft: "ca.microsoft", + + @doc("Lucene analyzer for Catalan.") + CaLucene: "ca.lucene", + + @doc("Microsoft analyzer for Chinese (Simplified).") + ZhHansMicrosoft: "zh-Hans.microsoft", + + @doc("Lucene analyzer for Chinese (Simplified).") + ZhHansLucene: "zh-Hans.lucene", + + @doc("Microsoft analyzer for Chinese (Traditional).") + ZhHantMicrosoft: "zh-Hant.microsoft", + + @doc("Lucene analyzer for Chinese (Traditional).") + ZhHantLucene: "zh-Hant.lucene", + + @doc("Microsoft analyzer for Croatian.") + HrMicrosoft: "hr.microsoft", + + @doc("Microsoft analyzer for Czech.") + CsMicrosoft: "cs.microsoft", + + @doc("Lucene analyzer for Czech.") + CsLucene: "cs.lucene", + + @doc("Microsoft analyzer for Danish.") + DaMicrosoft: "da.microsoft", + + @doc("Lucene analyzer for Danish.") + DaLucene: "da.lucene", + + @doc("Microsoft analyzer for Dutch.") + NlMicrosoft: "nl.microsoft", + + @doc("Lucene analyzer for Dutch.") + NlLucene: "nl.lucene", + + @doc("Microsoft analyzer for English.") + EnMicrosoft: "en.microsoft", + + @doc("Lucene analyzer for English.") + EnLucene: "en.lucene", + + @doc("Microsoft analyzer for Estonian.") + EtMicrosoft: "et.microsoft", + + @doc("Microsoft analyzer for Finnish.") + FiMicrosoft: "fi.microsoft", + + @doc("Lucene analyzer for Finnish.") + FiLucene: "fi.lucene", + + @doc("Microsoft analyzer for French.") + FrMicrosoft: "fr.microsoft", + + @doc("Lucene analyzer for French.") + FrLucene: "fr.lucene", + + @doc("Lucene analyzer for Galician.") + GlLucene: "gl.lucene", + + @doc("Microsoft analyzer for German.") + DeMicrosoft: "de.microsoft", + + @doc("Lucene analyzer for German.") + DeLucene: "de.lucene", + + @doc("Microsoft analyzer for Greek.") + ElMicrosoft: "el.microsoft", + + @doc("Lucene analyzer for Greek.") + ElLucene: "el.lucene", + + @doc("Microsoft analyzer for Gujarati.") + GuMicrosoft: "gu.microsoft", + + @doc("Microsoft analyzer for Hebrew.") + HeMicrosoft: "he.microsoft", + + @doc("Microsoft analyzer for Hindi.") + HiMicrosoft: "hi.microsoft", + + @doc("Lucene analyzer for Hindi.") + HiLucene: "hi.lucene", + + @doc("Microsoft analyzer for Hungarian.") + HuMicrosoft: "hu.microsoft", + + @doc("Lucene analyzer for Hungarian.") + HuLucene: "hu.lucene", + + @doc("Microsoft analyzer for Icelandic.") + IsMicrosoft: "is.microsoft", + + @doc("Microsoft analyzer for Indonesian (Bahasa).") + IdMicrosoft: "id.microsoft", + + @doc("Lucene analyzer for Indonesian.") + IdLucene: "id.lucene", + + @doc("Lucene analyzer for Irish.") + GaLucene: "ga.lucene", + + @doc("Microsoft analyzer for Italian.") + ItMicrosoft: "it.microsoft", + + @doc("Lucene analyzer for Italian.") + ItLucene: "it.lucene", + + @doc("Microsoft analyzer for Japanese.") + JaMicrosoft: "ja.microsoft", + + @doc("Lucene analyzer for Japanese.") + JaLucene: "ja.lucene", + + @doc("Microsoft analyzer for Kannada.") + KnMicrosoft: "kn.microsoft", + + @doc("Microsoft analyzer for Korean.") + KoMicrosoft: "ko.microsoft", + + @doc("Lucene analyzer for Korean.") + KoLucene: "ko.lucene", + + @doc("Microsoft analyzer for Latvian.") + LvMicrosoft: "lv.microsoft", + + @doc("Lucene analyzer for Latvian.") + LvLucene: "lv.lucene", + + @doc("Microsoft analyzer for Lithuanian.") + LtMicrosoft: "lt.microsoft", + + @doc("Microsoft analyzer for Malayalam.") + MlMicrosoft: "ml.microsoft", + + @doc("Microsoft analyzer for Malay (Latin).") + MsMicrosoft: "ms.microsoft", + + @doc("Microsoft analyzer for Marathi.") + MrMicrosoft: "mr.microsoft", + + @doc("Microsoft analyzer for Norwegian (BokmÃ¥l).") + NbMicrosoft: "nb.microsoft", + + @doc("Lucene analyzer for Norwegian.") + NoLucene: "no.lucene", + + @doc("Lucene analyzer for Persian.") + FaLucene: "fa.lucene", + + @doc("Microsoft analyzer for Polish.") + PlMicrosoft: "pl.microsoft", + + @doc("Lucene analyzer for Polish.") + PlLucene: "pl.lucene", + + @doc("Microsoft analyzer for Portuguese (Brazil).") + PtBrMicrosoft: "pt-BR.microsoft", + + @doc("Lucene analyzer for Portuguese (Brazil).") + PtBrLucene: "pt-BR.lucene", + + @doc("Microsoft analyzer for Portuguese (Portugal).") + PtPtMicrosoft: "pt-PT.microsoft", + + @doc("Lucene analyzer for Portuguese (Portugal).") + PtPtLucene: "pt-PT.lucene", + + @doc("Microsoft analyzer for Punjabi.") + PaMicrosoft: "pa.microsoft", + + @doc("Microsoft analyzer for Romanian.") + RoMicrosoft: "ro.microsoft", + + @doc("Lucene analyzer for Romanian.") + RoLucene: "ro.lucene", + + @doc("Microsoft analyzer for Russian.") + RuMicrosoft: "ru.microsoft", + + @doc("Lucene analyzer for Russian.") + RuLucene: "ru.lucene", + + @doc("Microsoft analyzer for Serbian (Cyrillic).") + SrCyrillicMicrosoft: "sr-cyrillic.microsoft", + + @doc("Microsoft analyzer for Serbian (Latin).") + SrLatinMicrosoft: "sr-latin.microsoft", + + @doc("Microsoft analyzer for Slovak.") + SkMicrosoft: "sk.microsoft", + + @doc("Microsoft analyzer for Slovenian.") + SlMicrosoft: "sl.microsoft", + + @doc("Microsoft analyzer for Spanish.") + EsMicrosoft: "es.microsoft", + + @doc("Lucene analyzer for Spanish.") + EsLucene: "es.lucene", + + @doc("Microsoft analyzer for Swedish.") + SvMicrosoft: "sv.microsoft", + + @doc("Lucene analyzer for Swedish.") + SvLucene: "sv.lucene", + + @doc("Microsoft analyzer for Tamil.") + TaMicrosoft: "ta.microsoft", + + @doc("Microsoft analyzer for Telugu.") + TeMicrosoft: "te.microsoft", + + @doc("Microsoft analyzer for Thai.") + ThMicrosoft: "th.microsoft", + + @doc("Lucene analyzer for Thai.") + ThLucene: "th.lucene", + + @doc("Microsoft analyzer for Turkish.") + TrMicrosoft: "tr.microsoft", + + @doc("Lucene analyzer for Turkish.") + TrLucene: "tr.lucene", + + @doc("Microsoft analyzer for Ukrainian.") + UkMicrosoft: "uk.microsoft", + + @doc("Microsoft analyzer for Urdu.") + UrMicrosoft: "ur.microsoft", + + @doc("Microsoft analyzer for Vietnamese.") + ViMicrosoft: "vi.microsoft", + + @doc("Standard Lucene analyzer.") + StandardLucene: "standard.lucene", + + @doc("Standard ASCII Folding Lucene analyzer. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#Analyzers") + StandardAsciiFoldingLucene: "standardasciifolding.lucene", + + @doc("Treats the entire content of a field as a single token. This is useful for data like zip codes, ids, and some product names. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordAnalyzer.html") + Keyword: "keyword", + + @doc("Flexibly separates text into terms via a regular expression pattern. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.html") + Pattern: "pattern", + + @doc("Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/SimpleAnalyzer.html") + Simple: "simple", + + @doc("Divides text at non-letters; Applies the lowercase and stopword token filters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html") + Stop: "stop", + + @doc("An analyzer that uses the whitespace tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceAnalyzer.html") + Whitespace: "whitespace", +} + +@doc("Defines the names of all text normalizers supported by the search engine.") +union LexicalNormalizerName { + string, + + @doc("Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html") + AsciiFolding: "asciifolding", + + @doc("Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html") + Elision: "elision", + + @doc("Normalizes token text to lowercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html") + Lowercase: "lowercase", + + @doc("Standard normalizer, which consists of lowercase and asciifolding. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html") + Standard: "standard", + + @doc("Normalizes token text to uppercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html") + Uppercase: "uppercase", +} + +@doc("The encoding format for interpreting vector field contents.") +union VectorEncodingFormat { + string, + + @doc("Encoding format representing bits packed into a wider data type.") + PackedBit: "packedBit", +} + +@doc("The algorithm used for indexing and querying.") +union VectorSearchAlgorithmKind { + string, + + @doc("HNSW (Hierarchical Navigable Small World), a type of approximate nearest neighbors algorithm.") + Hnsw: "hnsw", + + @doc("Exhaustive KNN algorithm which will perform brute-force search.") + ExhaustiveKnn: "exhaustiveKnn", +} + +@doc("The vectorization method to be used during query time.") +union VectorSearchVectorizerKind { + string, + + @doc("Generate embeddings using an Azure OpenAI resource at query time.") + AzureOpenAI: "azureOpenAI", + + @doc("Generate embeddings using a custom web endpoint at query time.") + CustomWebApi: "customWebApi", + + @doc("Generate embeddings for an image or text input at query time using the Azure AI Services Vision Vectorize API.") + AIServicesVision: "aiServicesVision", + + @doc("Generate embeddings using an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog at query time.") + AML: "aml", +} + +@doc("The compression method used for indexing and querying.") +union VectorSearchCompressionKind { + string, + + @doc("Scalar Quantization, a type of compression method. In scalar quantization, the original vectors values are compressed to a narrower type by discretizing and representing each component of a vector using a reduced set of quantized values, thereby reducing the overall data size.") + ScalarQuantization: "scalarQuantization", + + @doc("Binary Quantization, a type of compression method. In binary quantization, the original vectors values are compressed to the narrower binary type by discretizing and representing each component of a vector using binary values, thereby reducing the overall data size.") + BinaryQuantization: "binaryQuantization", +} + +@doc("The storage method for the original full-precision vectors used for rescoring and internal index operations.") +union VectorSearchCompressionRescoreStorageMethod { + string, + + @doc("This option preserves the original full-precision vectors. Choose this option for maximum flexibility and highest quality of compressed search results. This consumes more storage but allows for rescoring and oversampling.") + PreserveOriginals: "preserveOriginals", + + @doc("This option discards the original full-precision vectors. Choose this option for maximum storage savings. Since this option does not allow for rescoring and oversampling, it will often cause slight to moderate reductions in quality.") + DiscardOriginals: "discardOriginals", +} + +@doc("Defines the names of all tokenizers supported by the search engine.") +union LexicalTokenizerName { + string, + + @doc("Grammar-based tokenizer that is suitable for processing most European-language documents. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicTokenizer.html") + Classic: "classic", + + @doc("Tokenizes the input from an edge into n-grams of the given size(s). See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.html") + EdgeNGram: "edgeNGram", + + @doc("Emits the entire input as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html") + Keyword: "keyword_v2", + + @doc("Divides text at non-letters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LetterTokenizer.html") + Letter: "letter", + + @doc("Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LowerCaseTokenizer.html") + Lowercase: "lowercase", + + @doc("Divides text using language-specific rules.") + MicrosoftLanguageTokenizer: "microsoft_language_tokenizer", + + @doc("Divides text using language-specific rules and reduces words to their base forms.") + MicrosoftLanguageStemmingTokenizer: "microsoft_language_stemming_tokenizer", + + @doc("Tokenizes the input into n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenizer.html") + NGram: "nGram", + + @doc("Tokenizer for path-like hierarchies. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/path/PathHierarchyTokenizer.html") + PathHierarchy: "path_hierarchy_v2", + + @doc("Tokenizer that uses regex pattern matching to construct distinct tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternTokenizer.html") + Pattern: "pattern", + + @doc("Standard Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html") + Standard: "standard_v2", + + @doc("Tokenizes urls and emails as one token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizer.html") + UaxUrlEmail: "uax_url_email", + + @doc("Divides text at whitespace. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceTokenizer.html") + Whitespace: "whitespace", +} + +@doc("Defines the names of all token filters supported by the search engine.") +union TokenFilterName { + string, + + @doc("A token filter that applies the Arabic normalizer to normalize the orthography. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ar/ArabicNormalizationFilter.html") + ArabicNormalization: "arabic_normalization", + + @doc("Strips all characters after an apostrophe (including the apostrophe itself). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/tr/ApostropheFilter.html") + Apostrophe: "apostrophe", + + @doc("Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html") + AsciiFolding: "asciifolding", + + @doc("Forms bigrams of CJK terms that are generated from the standard tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKBigramFilter.html") + CjkBigram: "cjk_bigram", + + @doc("Normalizes CJK width differences. Folds full-width ASCII variants into the equivalent basic Latin, and half-width Katakana variants into the equivalent Kana. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKWidthFilter.html") + CjkWidth: "cjk_width", + + @doc("Removes English possessives, and dots from acronyms. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicFilter.html") + Classic: "classic", + + @doc("Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/commongrams/CommonGramsFilter.html") + CommonGram: "common_grams", + + @doc("Generates n-grams of the given size(s) starting from the front or the back of an input token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html") + EdgeNGram: "edgeNGram_v2", + + @doc("Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html") + Elision: "elision", + + @doc("Normalizes German characters according to the heuristics of the German2 snowball algorithm. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/de/GermanNormalizationFilter.html") + GermanNormalization: "german_normalization", + + @doc("Normalizes text in Hindi to remove some differences in spelling variations. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/hi/HindiNormalizationFilter.html") + HindiNormalization: "hindi_normalization", + + @doc("Normalizes the Unicode representation of text in Indian languages. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/in/IndicNormalizationFilter.html") + IndicNormalization: "indic_normalization", + + @doc("Emits each incoming token twice, once as keyword and once as non-keyword. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilter.html") + KeywordRepeat: "keyword_repeat", + + @doc("A high-performance kstem filter for English. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/en/KStemFilter.html") + KStem: "kstem", + + @doc("Removes words that are too long or too short. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LengthFilter.html") + Length: "length", + + @doc("Limits the number of tokens while indexing. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilter.html") + Limit: "limit", + + @doc("Normalizes token text to lower case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html") + Lowercase: "lowercase", + + @doc("Generates n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html") + NGram: "nGram_v2", + + @doc("Applies normalization for Persian. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/fa/PersianNormalizationFilter.html") + PersianNormalization: "persian_normalization", + + @doc("Create tokens for phonetic matches. See https://lucene.apache.org/core/4_10_3/analyzers-phonetic/org/apache/lucene/analysis/phonetic/package-tree.html") + Phonetic: "phonetic", + + @doc("Uses the Porter stemming algorithm to transform the token stream. See http://tartarus.org/~martin/PorterStemmer") + PorterStem: "porter_stem", + + @doc("Reverses the token string. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html") + Reverse: "reverse", + + @doc("Normalizes use of the interchangeable Scandinavian characters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilter.html") + ScandinavianNormalization: "scandinavian_normalization", + + @doc("Folds Scandinavian characters åÅäæÄÆ->a and öÖøØ->o. It also discriminates against use of double vowels aa, ae, ao, oe and oo, leaving just the first one. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilter.html") + ScandinavianFoldingNormalization: "scandinavian_folding", + + @doc("Creates combinations of tokens as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/shingle/ShingleFilter.html") + Shingle: "shingle", + + @doc("A filter that stems words using a Snowball-generated stemmer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/snowball/SnowballFilter.html") + Snowball: "snowball", + + @doc("Normalizes the Unicode representation of Sorani text. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ckb/SoraniNormalizationFilter.html") + SoraniNormalization: "sorani_normalization", + + @doc("Language specific stemming filter. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters") + Stemmer: "stemmer", + + @doc("Removes stop words from a token stream. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html") + Stopwords: "stopwords", + + @doc("Trims leading and trailing whitespace from tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TrimFilter.html") + Trim: "trim", + + @doc("Truncates the terms to a specific length. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilter.html") + Truncate: "truncate", + + @doc("Filters out tokens with same text as the previous token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilter.html") + Unique: "unique", + + @doc("Normalizes token text to upper case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html") + Uppercase: "uppercase", + + @doc("Splits words into subwords and performs optional transformations on subword groups.") + WordDelimiter: "word_delimiter", +} + +@doc("Defines the names of all character filters supported by the search engine.") +union CharFilterName { + string, + + @doc("A character filter that attempts to strip out HTML constructs. See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.html") + HtmlStrip: "html_strip", +} + +@doc("Defines flags that can be combined to control how regular expressions are used in the pattern analyzer and pattern tokenizer.") +union RegexFlags { + string, + + @doc("Enables canonical equivalence.") + CanonEq: "CANON_EQ", + + @doc("Enables case-insensitive matching.") + CaseInsensitive: "CASE_INSENSITIVE", + + @doc("Permits whitespace and comments in the pattern.") + Comments: "COMMENTS", + + @doc("Enables dotall mode.") + DotAll: "DOTALL", + + @doc("Enables literal parsing of the pattern.") + Literal: "LITERAL", + + @doc("Enables multiline mode.") + Multiline: "MULTILINE", + + @doc("Enables Unicode-aware case folding.") + UnicodeCase: "UNICODE_CASE", + + @doc("Enables Unix lines mode.") + UnixLines: "UNIX_LINES", +} + +@doc("The similarity metric to use for vector comparisons. It is recommended to choose the same similarity metric as the embedding model was trained on.") +union VectorSearchAlgorithmMetric { + string, + + @doc("Measures the angle between vectors to quantify their similarity, disregarding magnitude. The smaller the angle, the closer the similarity.") + Cosine: "cosine", + + @doc("Computes the straight-line distance between vectors in a multi-dimensional space. The smaller the distance, the closer the similarity.") + Euclidean: "euclidean", + + @doc("Calculates the sum of element-wise products to gauge alignment and magnitude similarity. The larger and more positive, the closer the similarity.") + DotProduct: "dotProduct", + + @doc("Only applicable to bit-packed binary data types. Determines dissimilarity by counting differing positions in binary vectors. The fewer differences, the closer the similarity.") + Hamming: "hamming", +} + +@doc("The quantized data type of compressed vector values.") +union VectorSearchCompressionTarget { + string, + + @doc("8-bit signed integer.") + Int8: "int8", +} + +@doc("The Azure Open AI model name that will be called.") +union AzureOpenAIModelName { + string, + + @doc("TextEmbeddingAda002 model.") + TextEmbeddingAda002: "text-embedding-ada-002", + + @doc("TextEmbedding3Large model.") + TextEmbedding3Large: "text-embedding-3-large", + + @doc("TextEmbedding3Small model.") + TextEmbedding3Small: "text-embedding-3-small", + + @doc("Gpt4o model.") + Gpt4o: "gpt-4o", + + @doc("Gpt4oMini model.") + Gpt4oMini: "gpt-4o-mini", + + @doc("Gpt41 model.") + Gpt41: "gpt-4.1", + + @doc("Gpt41Mini model.") + Gpt41Mini: "gpt-4.1-mini", + + @doc("Gpt41Nano model.") + Gpt41Nano: "gpt-4.1-nano", + + @doc("Gpt5 model.") + Gpt5: "gpt-5", + + @doc("Gpt5Mini model.") + Gpt5Mini: "gpt-5-mini", + + @doc("Gpt5Nano model.") + Gpt5Nano: "gpt-5-nano", +} + +@doc("The name of the embedding model from the Azure AI Foundry Catalog that will be called.") +union AIFoundryModelCatalogName { + string, + + @doc("OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32") + OpenAICLIPImageTextEmbeddingsVitBasePatch32: "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", + + @doc("OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336") + OpenAICLIPImageTextEmbeddingsViTLargePatch14336: "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", + + @doc("Facebook-DinoV2-Image-Embeddings-ViT-Base") + FacebookDinoV2ImageEmbeddingsViTBase: "Facebook-DinoV2-Image-Embeddings-ViT-Base", + + @doc("Facebook-DinoV2-Image-Embeddings-ViT-Giant") + FacebookDinoV2ImageEmbeddingsViTGiant: "Facebook-DinoV2-Image-Embeddings-ViT-Giant", + + @doc("Cohere-embed-v3-english") + CohereEmbedV3English: "Cohere-embed-v3-english", + + @doc("Cohere-embed-v3-multilingual") + CohereEmbedV3Multilingual: "Cohere-embed-v3-multilingual", + + @doc("Cohere embed v4 model for generating embeddings from both text and images.") + CohereEmbedV4: "Cohere-embed-v4", +} + +@doc("The language codes supported for input text by KeyPhraseExtractionSkill.") +union KeyPhraseExtractionSkillLanguage { + string, + + @doc("Danish") + da: "da", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("German") + de: "de", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Korean") + ko: "ko", + + @doc("Norwegian (Bokmaal)") + no: "no", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese (Portugal)") + `pt-PT`: "pt-PT", + + @doc("Portuguese (Brazil)") + `pt-BR`: "pt-BR", + + @doc("Russian") + ru: "ru", + + @doc("Spanish") + es: "es", + + @doc("Swedish") + sv: "sv", +} + +@doc("The language codes supported for input by OcrSkill.") +union OcrSkillLanguage { + string, + + @doc("Afrikaans") + af: "af", + + @doc("Albanian") + sq: "sq", + + @doc("Angika (Devanagiri)") + anp: "anp", + + @doc("Arabic") + ar: "ar", + + @doc("Asturian") + ast: "ast", + + @doc("Awadhi-Hindi (Devanagiri)") + awa: "awa", + + @doc("Azerbaijani (Latin)") + az: "az", + + @doc("Bagheli") + bfy: "bfy", + + @doc("Basque") + eu: "eu", + + @doc("Belarusian (Cyrillic and Latin)") + be: "be", + + @doc("Belarusian (Cyrillic)") + `be-cyrl`: "be-cyrl", + + @doc("Belarusian (Latin)") + `be-latn`: "be-latn", + + @doc("Bhojpuri-Hindi (Devanagiri)") + bho: "bho", + + @doc("Bislama") + bi: "bi", + + @doc("Bodo (Devanagiri)") + brx: "brx", + + @doc("Bosnian Latin") + bs: "bs", + + @doc("Brajbha") + bra: "bra", + + @doc("Breton") + br: "br", + + @doc("Bulgarian") + bg: "bg", + + @doc("Bundeli") + bns: "bns", + + @doc("Buryat (Cyrillic)") + bua: "bua", + + @doc("Catalan") + ca: "ca", + + @doc("Cebuano") + ceb: "ceb", + + @doc("Chamling") + rab: "rab", + + @doc("Chamorro") + ch: "ch", + + @doc("Chhattisgarhi (Devanagiri)") + hne: "hne", + + @doc("Chinese Simplified") + `zh-Hans`: "zh-Hans", + + @doc("Chinese Traditional") + `zh-Hant`: "zh-Hant", + + @doc("Cornish") + kw: "kw", + + @doc("Corsican") + co: "co", + + @doc("Crimean Tatar (Latin)") + crh: "crh", + + @doc("Croatian") + hr: "hr", + + @doc("Czech") + cs: "cs", + + @doc("Danish") + da: "da", + + @doc("Dari") + prs: "prs", + + @doc("Dhimal (Devanagiri)") + dhi: "dhi", + + @doc("Dogri (Devanagiri)") + doi: "doi", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Erzya (Cyrillic)") + myv: "myv", + + @doc("Estonian") + et: "et", + + @doc("Faroese") + fo: "fo", + + @doc("Fijian") + fj: "fj", + + @doc("Filipino") + fil: "fil", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("Frulian") + fur: "fur", + + @doc("Gagauz (Latin)") + gag: "gag", + + @doc("Galician") + gl: "gl", + + @doc("German") + de: "de", + + @doc("Gilbertese") + gil: "gil", + + @doc("Gondi (Devanagiri)") + gon: "gon", + + @doc("Greek") + el: "el", + + @doc("Greenlandic") + kl: "kl", + + @doc("Gurung (Devanagiri)") + gvr: "gvr", + + @doc("Haitian Creole") + ht: "ht", + + @doc("Halbi (Devanagiri)") + hlb: "hlb", + + @doc("Hani") + hni: "hni", + + @doc("Haryanvi") + bgc: "bgc", + + @doc("Hawaiian") + haw: "haw", + + @doc("Hindi") + hi: "hi", + + @doc("Hmong Daw (Latin)") + mww: "mww", + + @doc("Ho (Devanagiri)") + hoc: "hoc", + + @doc("Hungarian") + hu: "hu", + + @doc("Icelandic") + `is`: "is", + + @doc("Inari Sami") + smn: "smn", + + @doc("Indonesian") + id: "id", + + @doc("Interlingua") + ia: "ia", + + @doc("Inuktitut (Latin)") + iu: "iu", + + @doc("Irish") + ga: "ga", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Jaunsari (Devanagiri)") + Jns: "Jns", + + @doc("Javanese") + jv: "jv", + + @doc("Kabuverdianu") + kea: "kea", + + @doc("Kachin (Latin)") + kac: "kac", + + @doc("Kangri (Devanagiri)") + xnr: "xnr", + + @doc("Karachay-Balkar") + krc: "krc", + + @doc("Kara-Kalpak (Cyrillic)") + `kaa-cyrl`: "kaa-cyrl", + + @doc("Kara-Kalpak (Latin)") + kaa: "kaa", + + @doc("Kashubian") + csb: "csb", + + @doc("Kazakh (Cyrillic)") + `kk-cyrl`: "kk-cyrl", + + @doc("Kazakh (Latin)") + `kk-latn`: "kk-latn", + + @doc("Khaling") + klr: "klr", + + @doc("Khasi") + kha: "kha", + + @doc("K'iche'") + quc: "quc", + + @doc("Korean") + ko: "ko", + + @doc("Korku") + kfq: "kfq", + + @doc("Koryak") + kpy: "kpy", + + @doc("Kosraean") + kos: "kos", + + @doc("Kumyk (Cyrillic)") + kum: "kum", + + @doc("Kurdish (Arabic)") + `ku-arab`: "ku-arab", + + @doc("Kurdish (Latin)") + `ku-latn`: "ku-latn", + + @doc("Kurukh (Devanagiri)") + kru: "kru", + + @doc("Kyrgyz (Cyrillic)") + ky: "ky", + + @doc("Lakota") + lkt: "lkt", + + @doc("Latin") + la: "la", + + @doc("Lithuanian") + lt: "lt", + + @doc("Lower Sorbian") + dsb: "dsb", + + @doc("Lule Sami") + smj: "smj", + + @doc("Luxembourgish") + lb: "lb", + + @doc("Mahasu Pahari (Devanagiri)") + bfz: "bfz", + + @doc("Malay (Latin)") + ms: "ms", + + @doc("Maltese") + mt: "mt", + + @doc("Malto (Devanagiri)") + kmj: "kmj", + + @doc("Manx") + gv: "gv", + + @doc("Maori") + mi: "mi", + + @doc("Marathi") + mr: "mr", + + @doc("Mongolian (Cyrillic)") + mn: "mn", + + @doc("Montenegrin (Cyrillic)") + `cnr-cyrl`: "cnr-cyrl", + + @doc("Montenegrin (Latin)") + `cnr-latn`: "cnr-latn", + + @doc("Neapolitan") + nap: "nap", + + @doc("Nepali") + ne: "ne", + + @doc("Niuean") + niu: "niu", + + @doc("Nogay") + nog: "nog", + + @doc("Northern Sami (Latin)") + sme: "sme", + + @doc("Norwegian") + nb: "nb", + + @doc("Norwegian") + no: "no", + + @doc("Occitan") + oc: "oc", + + @doc("Ossetic") + os: "os", + + @doc("Pashto") + ps: "ps", + + @doc("Persian") + fa: "fa", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese") + pt: "pt", + + @doc("Punjabi (Arabic)") + pa: "pa", + + @doc("Ripuarian") + ksh: "ksh", + + @doc("Romanian") + ro: "ro", + + @doc("Romansh") + rm: "rm", + + @doc("Russian") + ru: "ru", + + @doc("Sadri (Devanagiri)") + sck: "sck", + + @doc("Samoan (Latin)") + sm: "sm", + + @doc("Sanskrit (Devanagiri)") + sa: "sa", + + @doc("Santali (Devanagiri)") + sat: "sat", + + @doc("Scots") + sco: "sco", + + @doc("Scottish Gaelic") + gd: "gd", + + @doc("Serbian (Latin)") + sr: "sr", + + @doc("Serbian (Cyrillic)") + `sr-Cyrl`: "sr-Cyrl", + + @doc("Serbian (Latin)") + `sr-Latn`: "sr-Latn", + + @doc("Sherpa (Devanagiri)") + xsr: "xsr", + + @doc("Sirmauri (Devanagiri)") + srx: "srx", + + @doc("Skolt Sami") + sms: "sms", + + @doc("Slovak") + sk: "sk", + + @doc("Slovenian") + sl: "sl", + + @doc("Somali (Arabic)") + so: "so", + + @doc("Southern Sami") + sma: "sma", + + @doc("Spanish") + es: "es", + + @doc("Swahili (Latin)") + sw: "sw", + + @doc("Swedish") + sv: "sv", + + @doc("Tajik (Cyrillic)") + tg: "tg", + + @doc("Tatar (Latin)") + tt: "tt", + + @doc("Tetum") + tet: "tet", + + @doc("Thangmi") + thf: "thf", + + @doc("Tongan") + to: "to", + + @doc("Turkish") + tr: "tr", + + @doc("Turkmen (Latin)") + tk: "tk", + + @doc("Tuvan") + tyv: "tyv", + + @doc("Upper Sorbian") + hsb: "hsb", + + @doc("Urdu") + ur: "ur", + + @doc("Uyghur (Arabic)") + ug: "ug", + + @doc("Uzbek (Arabic)") + `uz-arab`: "uz-arab", + + @doc("Uzbek (Cyrillic)") + `uz-cyrl`: "uz-cyrl", + + @doc("Uzbek (Latin)") + uz: "uz", + + @doc("Volapük") + vo: "vo", + + @doc("Walser") + wae: "wae", + + @doc("Welsh") + cy: "cy", + + @doc("Western Frisian") + fy: "fy", + + @doc("Yucatec Maya") + yua: "yua", + + @doc("Zhuang") + za: "za", + + @doc("Zulu") + zu: "zu", + + @doc("Unknown (All)") + unk: "unk", +} + +@doc("Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\".") +union OcrLineEnding { + string, + + @doc("Lines are separated by a single space character.") + Space: "space", + + @doc("Lines are separated by a carriage return ('\r') character.") + CarriageReturn: "carriageReturn", + + @doc("Lines are separated by a single line feed ('\n') character.") + LineFeed: "lineFeed", + + @doc("Lines are separated by a carriage return and a line feed ('\r\n') character.") + CarriageReturnLineFeed: "carriageReturnLineFeed", +} + +@doc("The language codes supported for input by ImageAnalysisSkill.") +union ImageAnalysisSkillLanguage { + string, + + @doc("Arabic") + ar: "ar", + + @doc("Azerbaijani") + az: "az", + + @doc("Bulgarian") + bg: "bg", + + @doc("Bosnian Latin") + bs: "bs", + + @doc("Catalan") + ca: "ca", + + @doc("Czech") + cs: "cs", + + @doc("Welsh") + cy: "cy", + + @doc("Danish") + da: "da", + + @doc("German") + de: "de", + + @doc("Greek") + el: "el", + + @doc("English") + en: "en", + + @doc("Spanish") + es: "es", + + @doc("Estonian") + et: "et", + + @doc("Basque") + eu: "eu", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("Irish") + ga: "ga", + + @doc("Galician") + gl: "gl", + + @doc("Hebrew") + he: "he", + + @doc("Hindi") + hi: "hi", + + @doc("Croatian") + hr: "hr", + + @doc("Hungarian") + hu: "hu", + + @doc("Indonesian") + id: "id", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Kazakh") + kk: "kk", + + @doc("Korean") + ko: "ko", + + @doc("Lithuanian") + lt: "lt", + + @doc("Latvian") + lv: "lv", + + @doc("Macedonian") + mk: "mk", + + @doc("Malay Malaysia") + ms: "ms", + + @doc("Norwegian (Bokmal)") + nb: "nb", + + @doc("Dutch") + nl: "nl", + + @doc("Polish") + pl: "pl", + + @doc("Dari") + prs: "prs", + + @doc("Portuguese-Brazil") + `pt-BR`: "pt-BR", + + @doc("Portuguese-Portugal") + pt: "pt", + + @doc("Portuguese-Portugal") + `pt-PT`: "pt-PT", + + @doc("Romanian") + ro: "ro", + + @doc("Russian") + ru: "ru", + + @doc("Slovak") + sk: "sk", + + @doc("Slovenian") + sl: "sl", + + @doc("Serbian - Cyrillic RS") + `sr-Cyrl`: "sr-Cyrl", + + @doc("Serbian - Latin RS") + `sr-Latn`: "sr-Latn", + + @doc("Swedish") + sv: "sv", + + @doc("Thai") + th: "th", + + @doc("Turkish") + tr: "tr", + + @doc("Ukrainian") + uk: "uk", + + @doc("Vietnamese") + vi: "vi", + + @doc("Chinese Simplified") + zh: "zh", + + @doc("Chinese Simplified") + `zh-Hans`: "zh-Hans", + + @doc("Chinese Traditional") + `zh-Hant`: "zh-Hant", +} + +@doc("The strings indicating what visual feature types to return.") +union VisualFeature { + string, + + @doc("Visual features recognized as adult persons.") + Adult: "adult", + + @doc("Visual features recognized as commercial brands.") + Brands: "brands", + + @doc("Categories.") + Categories: "categories", + + @doc("Description.") + Description: "description", + + @doc("Visual features recognized as people faces.") + Faces: "faces", + + @doc("Visual features recognized as objects.") + Objects: "objects", + + @doc("Tags.") + Tags: "tags", +} + +@doc("A string indicating which domain-specific details to return.") +union ImageDetail { + string, + + @doc("Details recognized as celebrities.") + Celebrities: "celebrities", + + @doc("Details recognized as landmarks.") + Landmarks: "landmarks", +} + +@doc("A string indicating what entity categories to return.") +union EntityCategory { + string, + + @doc("Entities describing a physical location.") + Location: "location", + + @doc("Entities describing an organization.") + Organization: "organization", + + @doc("Entities describing a person.") + Person: "person", + + @doc("Entities describing a quantity.") + Quantity: "quantity", + + @doc("Entities describing a date and time.") + Datetime: "datetime", + + @doc("Entities describing a URL.") + Url: "url", + + @doc("Entities describing an email address.") + Email: "email", +} + +@doc("Deprecated. The language codes supported for input text by EntityRecognitionSkill.") +union EntityRecognitionSkillLanguage { + string, + + @doc("Arabic") + ar: "ar", + + @doc("Czech") + cs: "cs", + + @doc("Chinese-Simplified") + `zh-Hans`: "zh-Hans", + + @doc("Chinese-Traditional") + `zh-Hant`: "zh-Hant", + + @doc("Danish") + da: "da", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("German") + de: "de", + + @doc("Greek") + el: "el", + + @doc("Hungarian") + hu: "hu", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Korean") + ko: "ko", + + @doc("Norwegian (Bokmaal)") + no: "no", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese (Portugal)") + `pt-PT`: "pt-PT", + + @doc("Portuguese (Brazil)") + `pt-BR`: "pt-BR", + + @doc("Russian") + ru: "ru", + + @doc("Spanish") + es: "es", + + @doc("Swedish") + sv: "sv", + + @doc("Turkish") + tr: "tr", +} + +@doc("Deprecated. The language codes supported for input text by SentimentSkill.") +union SentimentSkillLanguage { + string, + + @doc("Danish") + da: "da", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("German") + de: "de", + + @doc("Greek") + el: "el", + + @doc("Italian") + it: "it", + + @doc("Norwegian (Bokmaal)") + no: "no", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese (Portugal)") + `pt-PT`: "pt-PT", + + @doc("Russian") + ru: "ru", + + @doc("Spanish") + es: "es", + + @doc("Swedish") + sv: "sv", + + @doc("Turkish") + tr: "tr", +} + +@doc("A string indicating what maskingMode to use to mask the personal information detected in the input text.") +union PIIDetectionSkillMaskingMode { + string, + + @doc("No masking occurs and the maskedText output will not be returned.") + None: "none", + + @doc("Replaces the detected entities with the character given in the maskingCharacter parameter. The character will be repeated to the length of the detected entity so that the offsets will correctly correspond to both the input text as well as the output maskedText.") + Replace: "replace", +} + +@doc("The language codes supported for input text by SplitSkill.") +union SplitSkillLanguage { + string, + + @doc("Amharic") + am: "am", + + @doc("Bosnian") + bs: "bs", + + @doc("Czech") + cs: "cs", + + @doc("Danish") + da: "da", + + @doc("German") + de: "de", + + @doc("English") + en: "en", + + @doc("Spanish") + es: "es", + + @doc("Estonian") + et: "et", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("Hebrew") + he: "he", + + @doc("Hindi") + hi: "hi", + + @doc("Croatian") + hr: "hr", + + @doc("Hungarian") + hu: "hu", + + @doc("Indonesian") + id: "id", + + @doc("Icelandic") + `is`: "is", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Korean") + ko: "ko", + + @doc("Latvian") + lv: "lv", + + @doc("Norwegian") + nb: "nb", + + @doc("Dutch") + nl: "nl", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese (Portugal)") + pt: "pt", + + @doc("Portuguese (Brazil)") + `pt-br`: "pt-br", + + @doc("Russian") + ru: "ru", + + @doc("Slovak") + sk: "sk", + + @doc("Slovenian") + sl: "sl", + + @doc("Serbian") + sr: "sr", + + @doc("Swedish") + sv: "sv", + + @doc("Turkish") + tr: "tr", + + @doc("Urdu") + ur: "ur", + + @doc("Chinese (Simplified)") + zh: "zh", +} + +@doc("A value indicating which split mode to perform.") +union TextSplitMode { + string, + + @doc("Split the text into individual pages.") + Pages: "pages", + + @doc("Split the text into individual sentences.") + Sentences: "sentences", +} + +@doc("A value indicating which unit to use.") +union SplitSkillUnit { + string, + + @doc("The length will be measured by character.") + Characters: "characters", + + @doc("The length will be measured by an AzureOpenAI tokenizer from the tiktoken library.") + AzureOpenAITokens: "azureOpenAITokens", +} + +@doc("A value indicating which tokenizer to use.") +union SplitSkillEncoderModelName { + string, + + @doc("Refers to a base model trained with a 50,000 token vocabulary, often used in general natural language processing tasks.") + R50kBase: "r50k_base", + + @doc("A base model with a 50,000 token vocabulary, optimized for prompt-based tasks.") + P50kBase: "p50k_base", + + @doc("Similar to p50k_base but fine-tuned for editing or rephrasing tasks with a 50,000 token vocabulary.") + P50kEdit: "p50k_edit", + + @doc("A base model with a 100,000 token vocabulary.") + CL100kBase: "cl100k_base", +} + +@doc("The language codes supported for input text by CustomEntityLookupSkill.") +union CustomEntityLookupSkillLanguage { + string, + + @doc("Danish") + da: "da", + + @doc("German") + de: "de", + + @doc("English") + en: "en", + + @doc("Spanish") + es: "es", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("Italian") + it: "it", + + @doc("Korean") + ko: "ko", + + @doc("Portuguese") + pt: "pt", +} + +@doc("The language codes supported for input text by TextTranslationSkill.") +union TextTranslationSkillLanguage { + string, + + @doc("Afrikaans") + af: "af", + + @doc("Arabic") + ar: "ar", + + @doc("Bangla") + bn: "bn", + + @doc("Bosnian (Latin)") + bs: "bs", + + @doc("Bulgarian") + bg: "bg", + + @doc("Cantonese (Traditional)") + yue: "yue", + + @doc("Catalan") + ca: "ca", + + @doc("Chinese Simplified") + `zh-Hans`: "zh-Hans", + + @doc("Chinese Traditional") + `zh-Hant`: "zh-Hant", + + @doc("Croatian") + hr: "hr", + + @doc("Czech") + cs: "cs", + + @doc("Danish") + da: "da", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Estonian") + et: "et", + + @doc("Fijian") + fj: "fj", + + @doc("Filipino") + fil: "fil", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("German") + de: "de", + + @doc("Greek") + el: "el", + + @doc("Haitian Creole") + ht: "ht", + + @doc("Hebrew") + he: "he", + + @doc("Hindi") + hi: "hi", + + @doc("Hmong Daw") + mww: "mww", + + @doc("Hungarian") + hu: "hu", + + @doc("Icelandic") + `is`: "is", + + @doc("Indonesian") + id: "id", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Kiswahili") + sw: "sw", + + @doc("Klingon") + tlh: "tlh", + + @doc("Klingon (Latin script)") + `tlh-Latn`: "tlh-Latn", + + @doc("Klingon (Klingon script)") + `tlh-Piqd`: "tlh-Piqd", + + @doc("Korean") + ko: "ko", + + @doc("Latvian") + lv: "lv", + + @doc("Lithuanian") + lt: "lt", + + @doc("Malagasy") + mg: "mg", + + @doc("Malay") + ms: "ms", + + @doc("Maltese") + mt: "mt", + + @doc("Norwegian") + nb: "nb", + + @doc("Persian") + fa: "fa", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese") + pt: "pt", + + @doc("Portuguese (Brazil)") + `pt-br`: "pt-br", + + @doc("Portuguese (Portugal)") + `pt-PT`: "pt-PT", + + @doc("Queretaro Otomi") + otq: "otq", + + @doc("Romanian") + ro: "ro", + + @doc("Russian") + ru: "ru", + + @doc("Samoan") + sm: "sm", + + @doc("Serbian (Cyrillic)") + `sr-Cyrl`: "sr-Cyrl", + + @doc("Serbian (Latin)") + `sr-Latn`: "sr-Latn", + + @doc("Slovak") + sk: "sk", + + @doc("Slovenian") + sl: "sl", + + @doc("Spanish") + es: "es", + + @doc("Swedish") + sv: "sv", + + @doc("Tahitian") + ty: "ty", + + @doc("Tamil") + ta: "ta", + + @doc("Telugu") + te: "te", + + @doc("Thai") + th: "th", + + @doc("Tongan") + to: "to", + + @doc("Turkish") + tr: "tr", + + @doc("Ukrainian") + uk: "uk", + + @doc("Urdu") + ur: "ur", + + @doc("Vietnamese") + vi: "vi", + + @doc("Welsh") + cy: "cy", + + @doc("Yucatec Maya") + yua: "yua", + + @doc("Irish") + ga: "ga", + + @doc("Kannada") + kn: "kn", + + @doc("Maori") + mi: "mi", + + @doc("Malayalam") + ml: "ml", + + @doc("Punjabi") + pa: "pa", +} + +@doc("Controls the cardinality of the output produced by the skill. Default is 'oneToMany'.") +union DocumentIntelligenceLayoutSkillOutputMode { + string, + + @doc("Specify that the output should be parsed as 'oneToMany'.") + OneToMany: "oneToMany", +} + +@doc("Controls the cardinality of the output format. Default is 'markdown'.") +union DocumentIntelligenceLayoutSkillOutputFormat { + string, + + @doc("Specify the format of the output as text.") + Text: "text", + + @doc("Specify the format of the output as markdown.") + Markdown: "markdown", +} + +@doc("The depth of headers in the markdown output. Default is h6.") +union DocumentIntelligenceLayoutSkillMarkdownHeaderDepth { + string, + + @doc("Header level 1.") + H1: "h1", + + @doc("Header level 2.") + H2: "h2", + + @doc("Header level 3.") + H3: "h3", + + @doc("Header level 4.") + H4: "h4", + + @doc("Header level 5.") + H5: "h5", + + @doc("Header level 6.") + H6: "h6", +} + +@doc("Controls the cardinality of the content extracted from the document by the skill.") +union DocumentIntelligenceLayoutSkillExtractionOptions { + string, + + @doc("Specify that image content should be extracted from the document.") + Images: "images", + + @doc("Specify that location metadata should be extracted from the document.") + LocationMetadata: "locationMetadata", +} + +@doc("Controls the cardinality of the chunk unit. Default is 'characters'") +union DocumentIntelligenceLayoutSkillChunkingUnit { + string, + + @doc("Specifies chunk by characters.") + Characters: "characters", +} + +@doc("Represents the overall indexer status.") +union IndexerStatus { + string, + + @doc("Indicates that the indexer is in an unknown state.") + Unknown: "unknown", + + @doc("Indicates that the indexer experienced an error that cannot be corrected without human intervention.") + Error: "error", + + @doc("Indicates that the indexer is running normally.") + Running: "running", +} + +@doc("Represents the status of an individual indexer execution.") +union IndexerExecutionStatus { + string, + + @doc("An indexer invocation has failed, but the failure may be transient. Indexer invocations will continue per schedule.") + TransientFailure: "transientFailure", + + @doc("Indexer execution completed successfully.") + Success: "success", + + @doc("Indexer execution is in progress.") + InProgress: "inProgress", + + @doc("Indexer has been reset.") + Reset: "reset", +} + +@doc("Defines the function used to interpolate score boosting across a range of documents.") +union ScoringFunctionInterpolation { + string, + + @doc("Boosts scores by a linearly decreasing amount. This is the default interpolation for scoring functions.") + Linear: "linear", + + @doc("Boosts scores by a constant factor.") + Constant: "constant", + + @doc("Boosts scores by an amount that decreases quadratically. Boosts decrease slowly for higher scores, and more quickly as the scores decrease. This interpolation option is not allowed in tag scoring functions.") + Quadratic: "quadratic", + + @doc("Boosts scores by an amount that decreases logarithmically. Boosts decrease quickly for higher scores, and more slowly as the scores decrease. This interpolation option is not allowed in tag scoring functions.") + Logarithmic: "logarithmic", +} + +@doc("Defines the aggregation function used to combine the results of all the scoring functions in a scoring profile.") +union ScoringFunctionAggregation { + string, + + @doc("Boost scores by the sum of all scoring function results.") + Sum: "sum", + + @doc("Boost scores by the average of all scoring function results.") + Average: "average", + + @doc("Boost scores by the minimum of all scoring function results.") + Minimum: "minimum", + + @doc("Boost scores by the maximum of all scoring function results.") + Maximum: "maximum", + + @doc("Boost scores using the first applicable scoring function in the scoring profile.") + FirstMatching: "firstMatching", + + @doc("Boost scores by the product of all scoring function results.") + Product: "product", +} + +@doc("Represents classes of characters on which a token filter can operate.") +union TokenCharacterKind { + string, + + @doc("Keeps letters in tokens.") + Letter: "letter", + + @doc("Keeps digits in tokens.") + Digit: "digit", + + @doc("Keeps whitespace in tokens.") + Whitespace: "whitespace", + + @doc("Keeps punctuation in tokens.") + Punctuation: "punctuation", + + @doc("Keeps symbols in tokens.") + Symbol: "symbol", +} + +@doc("Lists the languages supported by the Microsoft language tokenizer.") +union MicrosoftTokenizerLanguage { + string, + + @doc("Selects the Microsoft tokenizer for Bangla.") + Bangla: "bangla", + + @doc("Selects the Microsoft tokenizer for Bulgarian.") + Bulgarian: "bulgarian", + + @doc("Selects the Microsoft tokenizer for Catalan.") + Catalan: "catalan", + + @doc("Selects the Microsoft tokenizer for Chinese (Simplified).") + ChineseSimplified: "chineseSimplified", + + @doc("Selects the Microsoft tokenizer for Chinese (Traditional).") + ChineseTraditional: "chineseTraditional", + + @doc("Selects the Microsoft tokenizer for Croatian.") + Croatian: "croatian", + + @doc("Selects the Microsoft tokenizer for Czech.") + Czech: "czech", + + @doc("Selects the Microsoft tokenizer for Danish.") + Danish: "danish", + + @doc("Selects the Microsoft tokenizer for Dutch.") + Dutch: "dutch", + + @doc("Selects the Microsoft tokenizer for English.") + English: "english", + + @doc("Selects the Microsoft tokenizer for French.") + French: "french", + + @doc("Selects the Microsoft tokenizer for German.") + German: "german", + + @doc("Selects the Microsoft tokenizer for Greek.") + Greek: "greek", + + @doc("Selects the Microsoft tokenizer for Gujarati.") + Gujarati: "gujarati", + + @doc("Selects the Microsoft tokenizer for Hindi.") + Hindi: "hindi", + + @doc("Selects the Microsoft tokenizer for Icelandic.") + Icelandic: "icelandic", + + @doc("Selects the Microsoft tokenizer for Indonesian.") + Indonesian: "indonesian", + + @doc("Selects the Microsoft tokenizer for Italian.") + Italian: "italian", + + @doc("Selects the Microsoft tokenizer for Japanese.") + Japanese: "japanese", + + @doc("Selects the Microsoft tokenizer for Kannada.") + Kannada: "kannada", + + @doc("Selects the Microsoft tokenizer for Korean.") + Korean: "korean", + + @doc("Selects the Microsoft tokenizer for Malay.") + Malay: "malay", + + @doc("Selects the Microsoft tokenizer for Malayalam.") + Malayalam: "malayalam", + + @doc("Selects the Microsoft tokenizer for Marathi.") + Marathi: "marathi", + + @doc("Selects the Microsoft tokenizer for Norwegian (BokmÃ¥l).") + NorwegianBokmaal: "norwegianBokmaal", + + @doc("Selects the Microsoft tokenizer for Polish.") + Polish: "polish", + + @doc("Selects the Microsoft tokenizer for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the Microsoft tokenizer for Portuguese (Brazil).") + PortugueseBrazilian: "portugueseBrazilian", + + @doc("Selects the Microsoft tokenizer for Punjabi.") + Punjabi: "punjabi", + + @doc("Selects the Microsoft tokenizer for Romanian.") + Romanian: "romanian", + + @doc("Selects the Microsoft tokenizer for Russian.") + Russian: "russian", + + @doc("Selects the Microsoft tokenizer for Serbian (Cyrillic).") + SerbianCyrillic: "serbianCyrillic", + + @doc("Selects the Microsoft tokenizer for Serbian (Latin).") + SerbianLatin: "serbianLatin", + + @doc("Selects the Microsoft tokenizer for Slovenian.") + Slovenian: "slovenian", + + @doc("Selects the Microsoft tokenizer for Spanish.") + Spanish: "spanish", + + @doc("Selects the Microsoft tokenizer for Swedish.") + Swedish: "swedish", + + @doc("Selects the Microsoft tokenizer for Tamil.") + Tamil: "tamil", + + @doc("Selects the Microsoft tokenizer for Telugu.") + Telugu: "telugu", + + @doc("Selects the Microsoft tokenizer for Thai.") + Thai: "thai", + + @doc("Selects the Microsoft tokenizer for Ukrainian.") + Ukrainian: "ukrainian", + + @doc("Selects the Microsoft tokenizer for Urdu.") + Urdu: "urdu", + + @doc("Selects the Microsoft tokenizer for Vietnamese.") + Vietnamese: "vietnamese", +} + +@doc("Lists the languages supported by the Microsoft language stemming tokenizer.") +union MicrosoftStemmingTokenizerLanguage { + string, + + @doc("Selects the Microsoft stemming tokenizer for Arabic.") + Arabic: "arabic", + + @doc("Selects the Microsoft stemming tokenizer for Bangla.") + Bangla: "bangla", + + @doc("Selects the Microsoft stemming tokenizer for Bulgarian.") + Bulgarian: "bulgarian", + + @doc("Selects the Microsoft stemming tokenizer for Catalan.") + Catalan: "catalan", + + @doc("Selects the Microsoft stemming tokenizer for Croatian.") + Croatian: "croatian", + + @doc("Selects the Microsoft stemming tokenizer for Czech.") + Czech: "czech", + + @doc("Selects the Microsoft stemming tokenizer for Danish.") + Danish: "danish", + + @doc("Selects the Microsoft stemming tokenizer for Dutch.") + Dutch: "dutch", + + @doc("Selects the Microsoft stemming tokenizer for English.") + English: "english", + + @doc("Selects the Microsoft stemming tokenizer for Estonian.") + Estonian: "estonian", + + @doc("Selects the Microsoft stemming tokenizer for Finnish.") + Finnish: "finnish", + + @doc("Selects the Microsoft stemming tokenizer for French.") + French: "french", + + @doc("Selects the Microsoft stemming tokenizer for German.") + German: "german", + + @doc("Selects the Microsoft stemming tokenizer for Greek.") + Greek: "greek", + + @doc("Selects the Microsoft stemming tokenizer for Gujarati.") + Gujarati: "gujarati", + + @doc("Selects the Microsoft stemming tokenizer for Hebrew.") + Hebrew: "hebrew", + + @doc("Selects the Microsoft stemming tokenizer for Hindi.") + Hindi: "hindi", + + @doc("Selects the Microsoft stemming tokenizer for Hungarian.") + Hungarian: "hungarian", + + @doc("Selects the Microsoft stemming tokenizer for Icelandic.") + Icelandic: "icelandic", + + @doc("Selects the Microsoft stemming tokenizer for Indonesian.") + Indonesian: "indonesian", + + @doc("Selects the Microsoft stemming tokenizer for Italian.") + Italian: "italian", + + @doc("Selects the Microsoft stemming tokenizer for Kannada.") + Kannada: "kannada", + + @doc("Selects the Microsoft stemming tokenizer for Latvian.") + Latvian: "latvian", + + @doc("Selects the Microsoft stemming tokenizer for Lithuanian.") + Lithuanian: "lithuanian", + + @doc("Selects the Microsoft stemming tokenizer for Malay.") + Malay: "malay", + + @doc("Selects the Microsoft stemming tokenizer for Malayalam.") + Malayalam: "malayalam", + + @doc("Selects the Microsoft stemming tokenizer for Marathi.") + Marathi: "marathi", + + @doc("Selects the Microsoft stemming tokenizer for Norwegian (BokmÃ¥l).") + NorwegianBokmaal: "norwegianBokmaal", + + @doc("Selects the Microsoft stemming tokenizer for Polish.") + Polish: "polish", + + @doc("Selects the Microsoft stemming tokenizer for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the Microsoft stemming tokenizer for Portuguese (Brazil).") + PortugueseBrazilian: "portugueseBrazilian", + + @doc("Selects the Microsoft stemming tokenizer for Punjabi.") + Punjabi: "punjabi", + + @doc("Selects the Microsoft stemming tokenizer for Romanian.") + Romanian: "romanian", + + @doc("Selects the Microsoft stemming tokenizer for Russian.") + Russian: "russian", + + @doc("Selects the Microsoft stemming tokenizer for Serbian (Cyrillic).") + SerbianCyrillic: "serbianCyrillic", + + @doc("Selects the Microsoft stemming tokenizer for Serbian (Latin).") + SerbianLatin: "serbianLatin", + + @doc("Selects the Microsoft stemming tokenizer for Slovak.") + Slovak: "slovak", + + @doc("Selects the Microsoft stemming tokenizer for Slovenian.") + Slovenian: "slovenian", + + @doc("Selects the Microsoft stemming tokenizer for Spanish.") + Spanish: "spanish", + + @doc("Selects the Microsoft stemming tokenizer for Swedish.") + Swedish: "swedish", + + @doc("Selects the Microsoft stemming tokenizer for Tamil.") + Tamil: "tamil", + + @doc("Selects the Microsoft stemming tokenizer for Telugu.") + Telugu: "telugu", + + @doc("Selects the Microsoft stemming tokenizer for Turkish.") + Turkish: "turkish", + + @doc("Selects the Microsoft stemming tokenizer for Ukrainian.") + Ukrainian: "ukrainian", + + @doc("Selects the Microsoft stemming tokenizer for Urdu.") + Urdu: "urdu", +} + +@doc("Scripts that can be ignored by CjkBigramTokenFilter.") +union CjkBigramTokenFilterScripts { + string, + + @doc("Ignore Han script when forming bigrams of CJK terms.") + Han: "han", + + @doc("Ignore Hiragana script when forming bigrams of CJK terms.") + Hiragana: "hiragana", + + @doc("Ignore Katakana script when forming bigrams of CJK terms.") + Katakana: "katakana", + + @doc("Ignore Hangul script when forming bigrams of CJK terms.") + Hangul: "hangul", +} + +@doc("Specifies which side of the input an n-gram should be generated from.") +union EdgeNGramTokenFilterSide { + string, + + @doc("Specifies that the n-gram should be generated from the front of the input.") + Front: "front", + + @doc("Specifies that the n-gram should be generated from the back of the input.") + Back: "back", +} + +@doc("Identifies the type of phonetic encoder to use with a PhoneticTokenFilter.") +union PhoneticEncoder { + string, + + @doc("Encodes a token into a Metaphone value.") + Metaphone: "metaphone", + + @doc("Encodes a token into a double metaphone value.") + DoubleMetaphone: "doubleMetaphone", + + @doc("Encodes a token into a Soundex value.") + Soundex: "soundex", + + @doc("Encodes a token into a Refined Soundex value.") + RefinedSoundex: "refinedSoundex", + + @doc("Encodes a token into a Caverphone 1.0 value.") + Caverphone1: "caverphone1", + + @doc("Encodes a token into a Caverphone 2.0 value.") + Caverphone2: "caverphone2", + + @doc("Encodes a token into a Cologne Phonetic value.") + Cologne: "cologne", + + @doc("Encodes a token into a NYSIIS value.") + Nysiis: "nysiis", + + @doc("Encodes a token using the Kölner Phonetik algorithm.") + KoelnerPhonetik: "koelnerPhonetik", + + @doc("Encodes a token using the Haase refinement of the Kölner Phonetik algorithm.") + HaasePhonetik: "haasePhonetik", + + @doc("Encodes a token into a Beider-Morse value.") + BeiderMorse: "beiderMorse", +} + +@doc("The language to use for a Snowball token filter.") +union SnowballTokenFilterLanguage { + string, + + @doc("Selects the Lucene Snowball stemming tokenizer for Armenian.") + Armenian: "armenian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Basque.") + Basque: "basque", + + @doc("Selects the Lucene Snowball stemming tokenizer for Catalan.") + Catalan: "catalan", + + @doc("Selects the Lucene Snowball stemming tokenizer for Danish.") + Danish: "danish", + + @doc("Selects the Lucene Snowball stemming tokenizer for Dutch.") + Dutch: "dutch", + + @doc("Selects the Lucene Snowball stemming tokenizer for English.") + English: "english", + + @doc("Selects the Lucene Snowball stemming tokenizer for Finnish.") + Finnish: "finnish", + + @doc("Selects the Lucene Snowball stemming tokenizer for French.") + French: "french", + + @doc("Selects the Lucene Snowball stemming tokenizer for German.") + German: "german", + + @doc("Selects the Lucene Snowball stemming tokenizer that uses the German variant algorithm.") + German2: "german2", + + @doc("Selects the Lucene Snowball stemming tokenizer for Hungarian.") + Hungarian: "hungarian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Italian.") + Italian: "italian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm.") + Kp: "kp", + + @doc("Selects the Lucene Snowball stemming tokenizer for English that uses the Lovins stemming algorithm.") + Lovins: "lovins", + + @doc("Selects the Lucene Snowball stemming tokenizer for Norwegian.") + Norwegian: "norwegian", + + @doc("Selects the Lucene Snowball stemming tokenizer for English that uses the Porter stemming algorithm.") + Porter: "porter", + + @doc("Selects the Lucene Snowball stemming tokenizer for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the Lucene Snowball stemming tokenizer for Romanian.") + Romanian: "romanian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Russian.") + Russian: "russian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Spanish.") + Spanish: "spanish", + + @doc("Selects the Lucene Snowball stemming tokenizer for Swedish.") + Swedish: "swedish", + + @doc("Selects the Lucene Snowball stemming tokenizer for Turkish.") + Turkish: "turkish", +} + +@doc("The language to use for a stemmer token filter.") +union StemmerTokenFilterLanguage { + string, + + @doc("Selects the Lucene stemming tokenizer for Arabic.") + Arabic: "arabic", + + @doc("Selects the Lucene stemming tokenizer for Armenian.") + Armenian: "armenian", + + @doc("Selects the Lucene stemming tokenizer for Basque.") + Basque: "basque", + + @doc("Selects the Lucene stemming tokenizer for Portuguese (Brazil).") + Brazilian: "brazilian", + + @doc("Selects the Lucene stemming tokenizer for Bulgarian.") + Bulgarian: "bulgarian", + + @doc("Selects the Lucene stemming tokenizer for Catalan.") + Catalan: "catalan", + + @doc("Selects the Lucene stemming tokenizer for Czech.") + Czech: "czech", + + @doc("Selects the Lucene stemming tokenizer for Danish.") + Danish: "danish", + + @doc("Selects the Lucene stemming tokenizer for Dutch.") + Dutch: "dutch", + + @doc("Selects the Lucene stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm.") + DutchKp: "dutchKp", + + @doc("Selects the Lucene stemming tokenizer for English.") + English: "english", + + @doc("Selects the Lucene stemming tokenizer for English that does light stemming.") + LightEnglish: "lightEnglish", + + @doc("Selects the Lucene stemming tokenizer for English that does minimal stemming.") + MinimalEnglish: "minimalEnglish", + + @doc("Selects the Lucene stemming tokenizer for English that removes trailing possessives from words.") + PossessiveEnglish: "possessiveEnglish", + + @doc("Selects the Lucene stemming tokenizer for English that uses the Porter2 stemming algorithm.") + Porter2: "porter2", + + @doc("Selects the Lucene stemming tokenizer for English that uses the Lovins stemming algorithm.") + Lovins: "lovins", + + @doc("Selects the Lucene stemming tokenizer for Finnish.") + Finnish: "finnish", + + @doc("Selects the Lucene stemming tokenizer for Finnish that does light stemming.") + LightFinnish: "lightFinnish", + + @doc("Selects the Lucene stemming tokenizer for French.") + French: "french", + + @doc("Selects the Lucene stemming tokenizer for French that does light stemming.") + LightFrench: "lightFrench", + + @doc("Selects the Lucene stemming tokenizer for French that does minimal stemming.") + MinimalFrench: "minimalFrench", + + @doc("Selects the Lucene stemming tokenizer for Galician.") + Galician: "galician", + + @doc("Selects the Lucene stemming tokenizer for Galician that does minimal stemming.") + MinimalGalician: "minimalGalician", + + @doc("Selects the Lucene stemming tokenizer for German.") + German: "german", + + @doc("Selects the Lucene stemming tokenizer that uses the German variant algorithm.") + German2: "german2", + + @doc("Selects the Lucene stemming tokenizer for German that does light stemming.") + LightGerman: "lightGerman", + + @doc("Selects the Lucene stemming tokenizer for German that does minimal stemming.") + MinimalGerman: "minimalGerman", + + @doc("Selects the Lucene stemming tokenizer for Greek.") + Greek: "greek", + + @doc("Selects the Lucene stemming tokenizer for Hindi.") + Hindi: "hindi", + + @doc("Selects the Lucene stemming tokenizer for Hungarian.") + Hungarian: "hungarian", + + @doc("Selects the Lucene stemming tokenizer for Hungarian that does light stemming.") + LightHungarian: "lightHungarian", + + @doc("Selects the Lucene stemming tokenizer for Indonesian.") + Indonesian: "indonesian", + + @doc("Selects the Lucene stemming tokenizer for Irish.") + Irish: "irish", + + @doc("Selects the Lucene stemming tokenizer for Italian.") + Italian: "italian", + + @doc("Selects the Lucene stemming tokenizer for Italian that does light stemming.") + LightItalian: "lightItalian", + + @doc("Selects the Lucene stemming tokenizer for Sorani.") + Sorani: "sorani", + + @doc("Selects the Lucene stemming tokenizer for Latvian.") + Latvian: "latvian", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l).") + Norwegian: "norwegian", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l) that does light stemming.") + LightNorwegian: "lightNorwegian", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l) that does minimal stemming.") + MinimalNorwegian: "minimalNorwegian", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does light stemming.") + LightNynorsk: "lightNynorsk", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does minimal stemming.") + MinimalNynorsk: "minimalNynorsk", + + @doc("Selects the Lucene stemming tokenizer for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the Lucene stemming tokenizer for Portuguese that does light stemming.") + LightPortuguese: "lightPortuguese", + + @doc("Selects the Lucene stemming tokenizer for Portuguese that does minimal stemming.") + MinimalPortuguese: "minimalPortuguese", + + @doc("Selects the Lucene stemming tokenizer for Portuguese that uses the RSLP stemming algorithm.") + PortugueseRslp: "portugueseRslp", + + @doc("Selects the Lucene stemming tokenizer for Romanian.") + Romanian: "romanian", + + @doc("Selects the Lucene stemming tokenizer for Russian.") + Russian: "russian", + + @doc("Selects the Lucene stemming tokenizer for Russian that does light stemming.") + LightRussian: "lightRussian", + + @doc("Selects the Lucene stemming tokenizer for Spanish.") + Spanish: "spanish", + + @doc("Selects the Lucene stemming tokenizer for Spanish that does light stemming.") + LightSpanish: "lightSpanish", + + @doc("Selects the Lucene stemming tokenizer for Swedish.") + Swedish: "swedish", + + @doc("Selects the Lucene stemming tokenizer for Swedish that does light stemming.") + LightSwedish: "lightSwedish", + + @doc("Selects the Lucene stemming tokenizer for Turkish.") + Turkish: "turkish", +} + +@doc("Identifies a predefined list of language-specific stopwords.") +union StopwordsList { + string, + + @doc("Selects the stopword list for Arabic.") + Arabic: "arabic", + + @doc("Selects the stopword list for Armenian.") + Armenian: "armenian", + + @doc("Selects the stopword list for Basque.") + Basque: "basque", + + @doc("Selects the stopword list for Portuguese (Brazil).") + Brazilian: "brazilian", + + @doc("Selects the stopword list for Bulgarian.") + Bulgarian: "bulgarian", + + @doc("Selects the stopword list for Catalan.") + Catalan: "catalan", + + @doc("Selects the stopword list for Czech.") + Czech: "czech", + + @doc("Selects the stopword list for Danish.") + Danish: "danish", + + @doc("Selects the stopword list for Dutch.") + Dutch: "dutch", + + @doc("Selects the stopword list for English.") + English: "english", + + @doc("Selects the stopword list for Finnish.") + Finnish: "finnish", + + @doc("Selects the stopword list for French.") + French: "french", + + @doc("Selects the stopword list for Galician.") + Galician: "galician", + + @doc("Selects the stopword list for German.") + German: "german", + + @doc("Selects the stopword list for Greek.") + Greek: "greek", + + @doc("Selects the stopword list for Hindi.") + Hindi: "hindi", + + @doc("Selects the stopword list for Hungarian.") + Hungarian: "hungarian", + + @doc("Selects the stopword list for Indonesian.") + Indonesian: "indonesian", + + @doc("Selects the stopword list for Irish.") + Irish: "irish", + + @doc("Selects the stopword list for Italian.") + Italian: "italian", + + @doc("Selects the stopword list for Latvian.") + Latvian: "latvian", + + @doc("Selects the stopword list for Norwegian.") + Norwegian: "norwegian", + + @doc("Selects the stopword list for Persian.") + Persian: "persian", + + @doc("Selects the stopword list for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the stopword list for Romanian.") + Romanian: "romanian", + + @doc("Selects the stopword list for Russian.") + Russian: "russian", + + @doc("Selects the stopword list for Sorani.") + Sorani: "sorani", + + @doc("Selects the stopword list for Spanish.") + Spanish: "spanish", + + @doc("Selects the stopword list for Swedish.") + Swedish: "swedish", + + @doc("Selects the stopword list for Thai.") + Thai: "thai", + + @doc("Selects the stopword list for Turkish.") + Turkish: "turkish", +} + +@doc("Options with various types of permission data to index.") +union IndexerPermissionOption { + string, + + @doc("Indexer to ingest ACL userIds from data source to index.") + UserIds: "userIds", + + @doc("Indexer to ingest ACL groupIds from data source to index.") + GroupIds: "groupIds", + + @doc("Indexer to ingest Azure RBAC scope from data source to index.") + RbacScope: "rbacScope", +} + +@doc("A value indicating whether the field should be used as a permission filter.") +union PermissionFilter { + string, + + @doc("Field represents user IDs that should be used to filter document access on queries.") + UserIds: "userIds", + + @doc("Field represents group IDs that should be used to filter document access on queries.") + GroupIds: "groupIds", + + @doc("Field represents an RBAC scope that should be used to filter document access on queries.") + RbacScope: "rbacScope", +} + +@doc("A value indicating whether permission filtering is enabled for the index.") +union SearchIndexPermissionFilterOption { + string, + + @doc("enabled.") + Enabled: "enabled", + + @doc("disabled.") + Disabled: "disabled", +} + +@doc("Specifies how 'extraParameters' should be handled by Azure AI Foundry. Defaults to 'error'.") +union ChatCompletionExtraParametersBehavior { + string, + + @doc("Passes any extra parameters directly to the model.") + PassThrough: "pass-through", + + @doc("Drops all extra parameters.") + Drop: "drop", + + @doc("Raises an error if any extra parameter is present.") + Error: "error", +} + +@doc("Specifies how the LLM should format the response.") +union ChatCompletionResponseFormatType { + string, + + @doc("Plain text response format.") + Text: "text", + + @doc("Arbitrary JSON object response format.") + JsonObject: "jsonObject", + + @doc("JSON schema-adhering response format.") + JsonSchema: "jsonSchema", +} + +@doc("Represents score to use for sort order of documents.") +union RankingOrder { + string, + + @doc("Sets sort order as BoostedRerankerScore") + BoostedRerankerScore: "BoostedRerankerScore", + + @doc("Sets sort order as ReRankerScore") + RerankerScore: "RerankerScore", +} + +@doc("Options with various types of permission data to index.") +union IndexerResyncOption { + string, + + @doc("Indexer to re-ingest pre-selected permissions data from data source to index.") + Permissions: "permissions", +} + +@doc("Request body for resync indexer operation.") +model IndexerResyncBody { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Re-sync options that have been pre-defined from data source.") + options?: IndexerResyncOption[] | null; +} + +@doc("Represents a datasource definition, which can be used to configure an indexer.") +model SearchIndexerDataSource { + @doc("The name of the datasource.") + name: string; + + @doc("The description of the datasource.") + description?: string; + + @doc("The type of the datasource.") + type: SearchIndexerDataSourceType; + + @doc("A specific type of the data source, in case the resource is capable of different modalities. For example, 'MongoDb' for certain 'cosmosDb' accounts.") + @visibility(Lifecycle.Read) + subType?: string; + + #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Pre-existing API contract" + @doc("Credentials for the datasource.") + @flattenProperty + credentials: DataSourceCredentials; + + @doc("The data container for the datasource.") + container: SearchIndexerDataContainer; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An explicit managed identity to use for this datasource. If not specified and the connection string is a managed identity, the system-assigned managed identity is used. If not specified, the value remains unchanged. If \"none\" is specified, the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Ingestion options with various types of permission data.") + indexerPermissionOptions?: IndexerPermissionOption[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The data change detection policy for the datasource.") + dataChangeDetectionPolicy?: DataChangeDetectionPolicy | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The data deletion detection policy for the datasource.") + dataDeletionDetectionPolicy?: DataDeletionDetectionPolicy | null; + + @doc("The ETag of the data source.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your datasource definition when you want full assurance that no one, not even Microsoft, can decrypt your data source definition. Once you have encrypted your data source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your datasource definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; +} + +@doc("Represents credentials that can be used to connect to a datasource.") +model DataSourceCredentials { + @doc("The connection string for the datasource. Set to `` (with brackets) if you don't want the connection string updated. Set to `` if you want to remove the connection string value from the datasource.") + connectionString?: string; +} + +@doc("Represents information about the entity (such as Azure SQL table or CosmosDB collection) that will be indexed.") +model SearchIndexerDataContainer { + @doc("The name of the table or view (for Azure SQL data source) or collection (for CosmosDB data source) that will be indexed.") + name: string; + + @doc("A query that is applied to this data container. The syntax and meaning of this parameter is datasource-specific. Not supported by Azure SQL datasources.") + query?: string; +} + +@doc("Base type for data change detection policies.") +@discriminator("@odata.type") +model DataChangeDetectionPolicy { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; +} + +@doc("Base type for data deletion detection policies.") +@discriminator("@odata.type") +model DataDeletionDetectionPolicy { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; +} + +@doc("A customer-managed encryption key in Azure Key Vault. Keys that you create and manage can be used to encrypt or decrypt data-at-rest, such as indexes and synonym maps.") +model SearchResourceEncryptionKey { + @doc("The name of your Azure Key Vault key to be used to encrypt your data at rest.") + keyVaultKeyName: string; + + @doc("The version of your Azure Key Vault key to be used to encrypt your data at rest.") + keyVaultKeyVersion?: string; + + @doc("The URI of your Azure Key Vault, also referred to as DNS name, that contains the key to be used to encrypt your data at rest. An example URI might be `https://my-keyvault-name.vault.azure.net`.") + keyVaultUri: string; + + #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Pre-existing API contract" + @doc("Optional Azure Active Directory credentials used for accessing your Azure Key Vault. Not required if using managed identity instead.") + @flattenProperty + accessCredentials?: AzureActiveDirectoryApplicationCredentials; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An explicit managed identity to use for this encryption key. If not specified and the access credentials property is null, the system-assigned managed identity is used. On update to the resource, if the explicit identity is unspecified, it remains unchanged. If \"none\" is specified, the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; +} + +@doc("Credentials of a registered application created for your search service, used for authenticated access to the encryption keys stored in Azure Key Vault.") +model AzureActiveDirectoryApplicationCredentials { + @doc("An AAD Application ID that was granted the required access permissions to the Azure Key Vault that is to be used when encrypting your data at rest. The Application ID should not be confused with the Object ID for your AAD Application.") + applicationId: string; + + @doc("The authentication key of the specified AAD application.") + applicationSecret?: string; +} + +@doc("Response from a List Datasources request. If successful, it includes the full definitions of all datasources.") +model ListDataSourcesResult { + @doc("The datasources in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchIndexerDataSource[]; +} + +@doc("The type of the keysOrIds.") +model DocumentKeysOrIds { + @doc("document keys to be reset") + documentKeys?: string[]; + + @doc("datasource document identifiers to be reset") + datasourceDocumentIds?: string[]; +} + +@doc("Represents an indexer.") +model SearchIndexer { + @doc("The name of the indexer.") + name: string; + + @doc("The description of the indexer.") + description?: string; + + @doc("The name of the datasource from which this indexer reads data.") + dataSourceName: string; + + @doc("The name of the skillset executing with this indexer.") + skillsetName?: string; + + @doc("The name of the index to which this indexer writes data.") + targetIndexName: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The schedule for this indexer.") + schedule?: IndexingSchedule | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Parameters for indexer execution.") + parameters?: IndexingParameters | null; + + @doc("Defines mappings between fields in the data source and corresponding target fields in the index.") + fieldMappings?: FieldMapping[]; + + @doc("Output field mappings are applied after enrichment and immediately before indexing.") + outputFieldMappings?: FieldMapping[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether the indexer is disabled. Default is false.") + disabled?: boolean | null = false; + + @doc("The ETag of the indexer.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your indexer definition (as well as indexer execution status) when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your indexer definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your indexer definition (and indexer execution status) will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Adds caching to an enrichment pipeline to allow for incremental modification steps without having to rebuild the index every time.") + cache?: SearchIndexerCache | null; +} + +@doc("Represents a schedule for indexer execution.") +model IndexingSchedule { + @doc("The interval of time between indexer executions.") + interval: duration; + + @doc("The time when an indexer should start running.") + startTime?: utcDateTime; +} + +@doc("Represents parameters for indexer execution.") +model IndexingParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The number of items that are read from the data source and indexed as a single batch in order to improve performance. The default depends on the data source type.") + batchSize?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0.") + maxFailedItems?: int32 | null = 0; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0.") + maxFailedItemsPerBatch?: int32 | null = 0; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") + configuration?: IndexingParametersConfiguration; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") +model IndexingParametersConfiguration { + ...Record; + + @doc("Represents the parsing mode for indexing from an Azure blob data source.") + parsingMode?: BlobIndexerParsingMode = BlobIndexerParsingMode.Default; + + @doc("Comma-delimited list of filename extensions to ignore when processing from Azure blob storage. For example, you could exclude \".png, .mp4\" to skip over those files during indexing.") + excludedFileNameExtensions?: string = ""; + + @doc("Comma-delimited list of filename extensions to select when processing from Azure blob storage. For example, you could focus indexing on specific application files \".docx, .pptx, .msg\" to specifically include those file types.") + indexedFileNameExtensions?: string = ""; + + @doc("For Azure blobs, set to false if you want to continue indexing when an unsupported content type is encountered, and you don't know all the content types (file extensions) in advance.") + failOnUnsupportedContentType?: boolean = false; + + @doc("For Azure blobs, set to false if you want to continue indexing if a document fails indexing.") + failOnUnprocessableDocument?: boolean = false; + + @doc("For Azure blobs, set this property to true to still index storage metadata for blob content that is too large to process. Oversized blobs are treated as errors by default. For limits on blob size, see https://learn.microsoft.com/azure/search/search-limits-quotas-capacity.") + indexStorageMetadataOnlyForOversizedDocuments?: boolean = false; + + @doc("For CSV blobs, specifies a comma-delimited list of column headers, useful for mapping source fields to destination fields in an index.") + delimitedTextHeaders?: string; + + @doc("For CSV blobs, specifies the end-of-line single-character delimiter for CSV files where each line starts a new document (for example, \"|\").") + delimitedTextDelimiter?: string; + + @doc("For CSV blobs, indicates that the first (non-blank) line of each blob contains headers.") + firstLineContainsHeaders?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`.") + markdownParsingSubmode?: MarkdownParsingSubmode | null = MarkdownParsingSubmode.OneToMany; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`.") + markdownHeaderDepth?: MarkdownHeaderDepth | null = MarkdownHeaderDepth.h6; + + @doc("For JSON arrays, given a structured or semi-structured document, you can specify a path to the array using this property.") + documentRoot?: string; + + @doc("Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.") + dataToExtract?: BlobIndexerDataToExtract = BlobIndexerDataToExtract.ContentAndMetadata; + + @doc("Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer.") + imageAction?: BlobIndexerImageAction = BlobIndexerImageAction.None; + + @doc("If true, will create a path //document//file_data that is an object representing the original file data downloaded from your blob data source. This allows you to pass the original file data to a custom skill for processing within the enrichment pipeline, or to the Document Extraction skill.") + allowSkillsetToReadFileData?: boolean = false; + + @doc("Determines algorithm for text extraction from PDF files in Azure blob storage.") + pdfTextRotationAlgorithm?: BlobIndexerPDFTextRotationAlgorithm = BlobIndexerPDFTextRotationAlgorithm.None; + + @doc("Specifies the environment in which the indexer should execute.") + executionEnvironment?: IndexerExecutionEnvironment = IndexerExecutionEnvironment.standard; + + @doc("Increases the timeout beyond the 5-minute default for Azure SQL database data sources, specified in the format \"hh:mm:ss\".") + queryTimeout?: string = "00:05:00"; +} + +@doc("Defines a mapping between a field in a data source and a target field in an index.") +model FieldMapping { + @doc("The name of the field in the data source.") + sourceFieldName: string; + + @doc("The name of the target field in the index. Same as the source field name by default.") + targetFieldName?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A function to apply to each source field value before indexing.") + mappingFunction?: FieldMappingFunction | null; +} + +@doc("Represents a function that transforms a value from a data source before indexing.") +model FieldMappingFunction { + @doc("The name of the field mapping function.") + name: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of parameter name/value pairs to pass to the function. Each value must be of a primitive type.") + parameters?: Record | null; +} + +@doc("The type of the cache.") +model SearchIndexerCache { + @doc("A guid for the SearchIndexerCache.") + id?: string; + + @doc("The connection string to the storage account where the cache data will be persisted.") + storageConnectionString?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Specifies whether incremental reprocessing is enabled.") + enableReprocessing?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for connections to the enrichment cache. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; +} + +@doc("Response from a List Indexers request. If successful, it includes the full definitions of all indexers.") +model ListIndexersResult { + @doc("The indexers in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchIndexer[]; +} + +@doc("Represents the current status and execution history of an indexer.") +model SearchIndexerStatus { + @doc("The name of the indexer.") + @visibility(Lifecycle.Read) + name: string; + + @doc("Overall indexer status.") + @visibility(Lifecycle.Read) + status: IndexerStatus; + + @doc("Snapshot of the indexer's cumulative runtime consumption for the service over the current UTC period.") + @visibility(Lifecycle.Read) + runtime: IndexerRuntime; + + @doc("The result of the most recent or an in-progress indexer execution.") + @visibility(Lifecycle.Read) + lastResult?: IndexerExecutionResult; + + @doc("History of the recent indexer executions, sorted in reverse chronological order.") + @visibility(Lifecycle.Read) + executionHistory: IndexerExecutionResult[]; + + @doc("The execution limits for the indexer.") + @visibility(Lifecycle.Read) + limits: SearchIndexerLimits; + + @doc("All of the state that defines and dictates the indexer's current execution.") + @visibility(Lifecycle.Read) + currentState?: IndexerCurrentState; +} + +@doc("Represents the result of an individual indexer execution.") +model IndexerExecutionResult { + @doc("The outcome of this indexer execution.") + @visibility(Lifecycle.Read) + status: IndexerExecutionStatus; + + @doc("The outcome of this indexer execution.") + @visibility(Lifecycle.Read) + statusDetail?: IndexerExecutionStatusDetail; + + @doc("The mode the indexer is running in.") + @visibility(Lifecycle.Read) + mode?: IndexingMode; + + @doc("The error message indicating the top-level error, if any.") + @visibility(Lifecycle.Read) + errorMessage?: string; + + @doc("The start time of this indexer execution.") + @visibility(Lifecycle.Read) + startTime?: utcDateTime; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The end time of this indexer execution, if the execution has already completed.") + @visibility(Lifecycle.Read) + endTime?: utcDateTime | null; + + @doc("The item-level indexing errors.") + @visibility(Lifecycle.Read) + errors: SearchIndexerError[]; + + @doc("The item-level indexing warnings.") + @visibility(Lifecycle.Read) + warnings: SearchIndexerWarning[]; + + @doc("The number of items that were processed during this indexer execution. This includes both successfully processed items and items where indexing was attempted but failed.") + @visibility(Lifecycle.Read) + itemsProcessed: int32; + + @doc("The number of items that failed to be indexed during this indexer execution.") + @visibility(Lifecycle.Read) + itemsFailed: int32; + + @doc("Change tracking state with which an indexer execution started.") + @visibility(Lifecycle.Read) + initialTrackingState?: string; + + @doc("Change tracking state with which an indexer execution finished.") + @visibility(Lifecycle.Read) + finalTrackingState?: string; +} + +@doc("Represents all of the state that defines and dictates the indexer's current execution.") +model IndexerCurrentState { + @doc("The mode the indexer is running in.") + @visibility(Lifecycle.Read) + mode?: IndexingMode; + + @doc("Change tracking state used when indexing starts on all documents in the datasource.") + @visibility(Lifecycle.Read) + allDocsInitialTrackingState?: string; + + @doc("Change tracking state value when indexing finishes on all documents in the datasource.") + @visibility(Lifecycle.Read) + allDocsFinalTrackingState?: string; + + @doc("Change tracking state used when indexing starts on select, reset documents in the datasource.") + @visibility(Lifecycle.Read) + resetDocsInitialTrackingState?: string; + + @doc("Change tracking state value when indexing finishes on select, reset documents in the datasource.") + @visibility(Lifecycle.Read) + resetDocsFinalTrackingState?: string; + + @doc("Change tracking state used when indexing starts on selective options from the datasource.") + @visibility(Lifecycle.Read) + resyncInitialTrackingState?: string; + + @doc("Change tracking state value when indexing finishes on selective options from the datasource.") + @visibility(Lifecycle.Read) + resyncFinalTrackingState?: string; + + @doc("The list of document keys that have been reset. The document key is the document's unique identifier for the data in the search index. The indexer will prioritize selectively re-ingesting these keys.") + @visibility(Lifecycle.Read) + resetDocumentKeys?: string[]; + + @doc("The list of datasource document ids that have been reset. The datasource document id is the unique identifier for the data in the datasource. The indexer will prioritize selectively re-ingesting these ids.") + @visibility(Lifecycle.Read) + resetDatasourceDocumentIds?: string[]; +} + +@doc("Represents an item- or document-level indexing error.") +@error +model SearchIndexerError { + @doc("The key of the item for which indexing failed.") + @visibility(Lifecycle.Read) + key?: string; + + @doc("The message describing the error that occurred while processing the item.") + @visibility(Lifecycle.Read) + errorMessage: string; + + @doc("The status code indicating why the indexing operation failed. Possible values include: 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy.") + @visibility(Lifecycle.Read) + statusCode: int32; + + @doc("The name of the source at which the error originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available.") + @visibility(Lifecycle.Read) + name?: string; + + @doc("Additional, verbose details about the error to assist in debugging the indexer. This may not be always available.") + @visibility(Lifecycle.Read) + details?: string; + + @doc("A link to a troubleshooting guide for these classes of errors. This may not be always available.") + @visibility(Lifecycle.Read) + documentationLink?: string; +} + +@doc("Represents an item-level warning.") +model SearchIndexerWarning { + @doc("The key of the item which generated a warning.") + @visibility(Lifecycle.Read) + key?: string; + + @doc("The message describing the warning that occurred while processing the item.") + @visibility(Lifecycle.Read) + message: string; + + @doc("The name of the source at which the warning originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available.") + @visibility(Lifecycle.Read) + name?: string; + + @doc("Additional, verbose details about the warning to assist in debugging the indexer. This may not be always available.") + @visibility(Lifecycle.Read) + details?: string; + + @doc("A link to a troubleshooting guide for these classes of warnings. This may not be always available.") + @visibility(Lifecycle.Read) + documentationLink?: string; +} + +@doc("Represents the limits that can be applied to an indexer.") +model SearchIndexerLimits { + @doc("The maximum duration that the indexer is permitted to run for one execution.") + @visibility(Lifecycle.Read) + maxRunTime?: duration; + + @doc("The maximum size of a document, in bytes, which will be considered valid for indexing.") + @visibility(Lifecycle.Read) + maxDocumentExtractionSize?: int64; + + @doc("The maximum number of characters that will be extracted from a document picked up for indexing.") + @visibility(Lifecycle.Read) + maxDocumentContentCharactersToExtract?: int64; +} + +@doc("Represents the indexer's cumulative runtime consumption in the service.") +model IndexerRuntime { + @doc("Cumulative runtime of the indexer from the beginningTime to endingTime, in seconds.") + usedSeconds: int64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds.") + remainingSeconds?: int64 | null; + + @doc("Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive).") + beginningTime: utcDateTime; + + @doc("End UTC time of the 24-hour period considered for indexer runtime usage (inclusive).") + endingTime: utcDateTime; +} + +@doc("A list of skills.") +model SearchIndexerSkillset { + @doc("The name of the skillset.") + name: string; + + @doc("The description of the skillset.") + description?: string; + + @doc("A list of skills in the skillset.") + skills: SearchIndexerSkill[]; + + @doc("Details about the Azure AI service to be used when running skills.") + cognitiveServices?: CognitiveServicesAccount; + + @doc("Definition of additional projections to Azure blob, table, or files, of enriched data.") + knowledgeStore?: SearchIndexerKnowledgeStore; + + @doc("Definition of additional projections to secondary search index(es).") + indexProjections?: SearchIndexerIndexProjection; + + @doc("The ETag of the skillset.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your skillset definition when you want full assurance that no one, not even Microsoft, can decrypt your skillset definition. Once you have encrypted your skillset definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your skillset definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; +} + +@doc("Base type for skills.") +@discriminator("@odata.type") +model SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'.") + name?: string; + + @doc("The description of the skill which describes the inputs, outputs, and usage of the skill.") + description?: string; + + @doc("Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document.") + context?: string; + + @doc("Inputs of the skills could be a column in the source data set, or the output of an upstream skill.") + inputs: InputFieldMappingEntry[]; + + @doc("The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill.") + outputs: OutputFieldMappingEntry[]; +} + +@doc("Input field mapping for a skill.") +model InputFieldMappingEntry { + @doc("The name of the input.") + name: string; + + @doc("The source of the input.") + source?: string; + + @doc("The source context used for selecting recursive inputs.") + sourceContext?: string; + + @doc("The recursive inputs used when creating a complex type.") + inputs?: InputFieldMappingEntry[]; +} + +@doc("Output field mapping for a skill.") +model OutputFieldMappingEntry { + @doc("The name of the output defined by the skill.") + name: string; + + @doc("The target name of the output. It is optional and default to name.") + targetName?: string; +} + +@doc("Base type for describing any Azure AI service resource attached to a skillset.") +@discriminator("@odata.type") +model CognitiveServicesAccount { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("Description of the Azure AI service resource attached to a skillset.") + description?: string; +} + +@doc("Definition of additional projections to azure blob, table, or files, of enriched data.") +model SearchIndexerKnowledgeStore { + @doc("The connection string to the storage account projections will be stored in.") + storageConnectionString: string; + + @doc("A list of additional projections to perform during indexing.") + projections: SearchIndexerKnowledgeStoreProjection[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for connections to Azure Storage when writing knowledge store projections. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") + parameters?: SearchIndexerKnowledgeStoreParameters; +} + +@doc("Container object for various projection selectors.") +model SearchIndexerKnowledgeStoreProjection { + @doc("Projections to Azure Table storage.") + tables?: SearchIndexerKnowledgeStoreTableProjectionSelector[]; + + @doc("Projections to Azure Blob storage.") + objects?: SearchIndexerKnowledgeStoreObjectProjectionSelector[]; + + @doc("Projections to Azure File storage.") + files?: SearchIndexerKnowledgeStoreFileProjectionSelector[]; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@doc("Description for what data to store in Azure Tables.") +model SearchIndexerKnowledgeStoreTableProjectionSelector + extends SearchIndexerKnowledgeStoreProjectionSelector { + @doc("Name of generated key to store projection under.") + generatedKeyName: string; + + @doc("Name of the Azure table to store projected data in.") + tableName: string; +} + +@doc("Abstract class to share properties between concrete selectors.") +model SearchIndexerKnowledgeStoreProjectionSelector { + @doc("Name of reference key to different projection.") + referenceKeyName?: string; + + @doc("Name of generated key to store projection under.") + generatedKeyName?: string; + + @doc("Source data to project.") + source?: string; + + @doc("Source context for complex projections.") + sourceContext?: string; + + @doc("Nested inputs for complex projections.") + inputs?: InputFieldMappingEntry[]; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@doc("Projection definition for what data to store in Azure Blob.") +model SearchIndexerKnowledgeStoreObjectProjectionSelector + extends SearchIndexerKnowledgeStoreBlobProjectionSelector {} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@doc("Abstract class to share properties between concrete selectors.") +model SearchIndexerKnowledgeStoreBlobProjectionSelector + extends SearchIndexerKnowledgeStoreProjectionSelector { + @doc("Blob container to store projections in.") + storageContainer: string; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@doc("Projection definition for what data to store in Azure Files.") +model SearchIndexerKnowledgeStoreFileProjectionSelector + extends SearchIndexerKnowledgeStoreBlobProjectionSelector {} + +@doc("Definition of additional projections to secondary search indexes.") +model SearchIndexerIndexProjection { + @doc("A list of projections to be performed to secondary search indexes.") + selectors: SearchIndexerIndexProjectionSelector[]; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") + parameters?: SearchIndexerIndexProjectionsParameters; +} + +@doc("Description for what data to store in the designated search index.") +model SearchIndexerIndexProjectionSelector { + @doc("Name of the search index to project to. Must have a key field with the 'keyword' analyzer set.") + targetIndexName: string; + + @doc("Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field.") + parentKeyFieldName: string; + + @doc("Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents.") + sourceContext: string; + + @doc("Mappings for the projection, or which source should be mapped to which field in the target index.") + mappings: InputFieldMappingEntry[]; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") +model SearchIndexerIndexProjectionsParameters { + ...Record; + + @doc("Defines behavior of the index projections in relation to the rest of the indexer.") + projectionMode?: IndexProjectionMode; +} + +@doc("Response from a list skillset request. If successful, it includes the full definitions of all skillsets.") +model ListSkillsetsResult { + @doc("The skillsets defined in the Search service.") + @visibility(Lifecycle.Read) + @pageItems + value: SearchIndexerSkillset[]; +} + +#suppress "@azure-tools/typespec-client-generator-core/property-name-conflict" +@doc("The type of the skill names.") +model SkillNames { + @doc("the names of skills to be reset.") + skillNames?: string[]; +} + +@doc("Represents a synonym map definition.") +model SynonymMap { + @doc("The name of the synonym map.") + name: string; + + @doc("The format of the synonym map. Only the 'solr' format is currently supported.") + format: "solr"; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("A series of synonym rules in the specified synonym map format. The rules must be separated by newlines.") + @encode(ArrayEncoding.newlineDelimited) + synonyms: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; + + @doc("The ETag of the synonym map.") + @encodedName("application/json", "@odata.etag") + eTag?: string; +} + +@doc("Response from a List SynonymMaps request. If successful, it includes the full definitions of all synonym maps.") +model ListSynonymMapsResult { + @doc("The synonym maps in the Search service.") + @visibility(Lifecycle.Read) + @pageItems + value: SynonymMap[]; +} + +@doc("Represents a search index definition, which describes the fields and search behavior of an index.") +model SearchIndex { + @doc("The name of the index.") + name: string; + + @doc("The description of the index.") + description?: string; + + @doc("The fields of the index.") + fields: SearchField[]; + + @doc("The scoring profiles for the index.") + scoringProfiles?: ScoringProfile[]; + + @doc("The name of the scoring profile to use if none is specified in the query. If this property is not set and no scoring profile is specified in the query, then default scoring (tf-idf) will be used.") + defaultScoringProfile?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Options to control Cross-Origin Resource Sharing (CORS) for the index.") + corsOptions?: CorsOptions | null; + + @doc("The suggesters for the index.") + suggesters?: SearchSuggester[]; + + @doc("The analyzers for the index.") + analyzers?: LexicalAnalyzer[]; + + @doc("The tokenizers for the index.") + tokenizers?: LexicalTokenizer[]; + + @doc("The token filters for the index.") + tokenFilters?: TokenFilter[]; + + @doc("The character filters for the index.") + charFilters?: CharFilter[]; + + @doc("The normalizers for the index.") + normalizers?: LexicalNormalizer[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; + + @doc("The type of similarity algorithm to be used when scoring and ranking the documents matching a search query. The similarity algorithm can only be defined at index creation time and cannot be modified on existing indexes. If null, the ClassicSimilarity algorithm is used.") + similarity?: SimilarityAlgorithm; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Defines parameters for a search index that influence semantic capabilities.") + semantic?: SemanticSearch | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Contains configuration options related to vector search.") + vectorSearch?: VectorSearch | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether permission filtering is enabled for the index.") + permissionFilterOption?: SearchIndexPermissionFilterOption | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether Purview is enabled for the index.") + purviewEnabled?: boolean | null; + + @doc("The ETag of the index.") + @encodedName("application/json", "@odata.etag") + eTag?: string; +} + +@doc("Represents a field in an index definition, which describes the name, data type, and search behavior of a field.") +model SearchField { + @doc("The name of the field, which must be unique within the fields collection of the index or parent field.") + name: string; + + @doc("The data type of the field.") + type: SearchFieldDataType; + + @doc("A value indicating whether the field uniquely identifies documents in the index. Exactly one top-level field in each index must be chosen as the key field and it must be of type Edm.String. Key fields can be used to look up documents directly and update or delete specific documents. Default is false for simple fields and null for complex fields.") + key?: boolean; + + @doc("A value indicating whether the field can be returned in a search result. You can disable this option if you want to use a field (for example, margin) as a filter, sorting, or scoring mechanism but do not want the field to be visible to the end user. This property must be true for key fields, and it must be null for complex fields. This property can be changed on existing fields. Enabling this property does not cause any increase in index storage requirements. Default is true for simple fields, false for vector fields, and null for complex fields.") + retrievable?: boolean; + + @doc("An immutable value indicating whether the field will be persisted separately on disk to be returned in a search result. You can disable this option if you don't plan to return the field contents in a search response to save on storage overhead. This can only be set during index creation and only for vector fields. This property cannot be changed for existing fields or set as false for new fields. If this property is set as false, the property 'retrievable' must also be set to false. This property must be true or unset for key fields, for new fields, and for non-vector fields, and it must be null for complex fields. Disabling this property will reduce index storage requirements. The default is true for vector fields.") + stored?: boolean; + + @doc("A value indicating whether the field is full-text searchable. This means it will undergo analysis such as word-breaking during indexing. If you set a searchable field to a value like \"sunny day\", internally it will be split into the individual tokens \"sunny\" and \"day\". This enables full-text searches for these terms. Fields of type Edm.String or Collection(Edm.String) are searchable by default. This property must be false for simple fields of other non-string data types, and it must be null for complex fields. Note: searchable fields consume extra space in your index to accommodate additional tokenized versions of the field value for full-text searches. If you want to save space in your index and you don't need a field to be included in searches, set searchable to false.") + searchable?: boolean; + + @doc("A value indicating whether to enable the field to be referenced in $filter queries. filterable differs from searchable in how strings are handled. Fields of type Edm.String or Collection(Edm.String) that are filterable do not undergo word-breaking, so comparisons are for exact matches only. For example, if you set such a field f to \"sunny day\", $filter=f eq 'sunny' will find no matches, but $filter=f eq 'sunny day' will. This property must be null for complex fields. Default is true for simple fields and null for complex fields.") + filterable?: boolean; + + @doc("A value indicating whether to enable the field to be referenced in $orderby expressions. By default, the search engine sorts results by score, but in many experiences users will want to sort by fields in the documents. A simple field can be sortable only if it is single-valued (it has a single value in the scope of the parent document). Simple collection fields cannot be sortable, since they are multi-valued. Simple sub-fields of complex collections are also multi-valued, and therefore cannot be sortable. This is true whether it's an immediate parent field, or an ancestor field, that's the complex collection. Complex fields cannot be sortable and the sortable property must be null for such fields. The default for sortable is true for single-valued simple fields, false for multi-valued simple fields, and null for complex fields.") + sortable?: boolean; + + @doc("A value indicating whether to enable the field to be referenced in facet queries. Typically used in a presentation of search results that includes hit count by category (for example, search for digital cameras and see hits by brand, by megapixels, by price, and so on). This property must be null for complex fields. Fields of type Edm.GeographyPoint or Collection(Edm.GeographyPoint) cannot be facetable. Default is true for all other simple fields.") + facetable?: boolean; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether the field should be used as a permission filter.") + permissionFilter?: PermissionFilter | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether the field contains sensitivity label information.") + sensitivityLabel?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.") + analyzer?: LexicalAnalyzerName | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields.") + searchAnalyzer?: LexicalAnalyzerName | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.") + indexAnalyzer?: LexicalAnalyzerName | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the normalizer to use for the field. This option can be used only with fields with filterable, sortable, or facetable enabled. Once the normalizer is chosen, it cannot be changed for the field. Must be null for complex fields.") + normalizer?: LexicalNormalizerName | null; + + @doc("The dimensionality of the vector field.") + @maxValue(4096) + @minValue(2) + dimensions?: int32; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the vector search profile that specifies the algorithm and vectorizer to use when searching the vector field.") + vectorSearchProfile?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The encoding format to interpret the field contents.") + vectorEncoding?: VectorEncodingFormat | null; + + @doc("A list of the names of synonym maps to associate with this field. This option can be used only with searchable fields. Currently only one synonym map per field is supported. Assigning a synonym map to a field ensures that query terms targeting that field are expanded at query-time using the rules in the synonym map. This attribute can be changed on existing fields. Must be null or an empty collection for complex fields.") + synonymMaps?: string[]; + + @doc("A list of sub-fields if this is a field of type Edm.ComplexType or Collection(Edm.ComplexType). Must be null or empty for simple fields.") + fields?: SearchField[]; +} + +@doc("Defines parameters for a search index that influence scoring in search queries.") +model ScoringProfile { + @doc("The name of the scoring profile.") + name: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Parameters that boost scoring based on text matches in certain index fields.") + text?: TextWeights | null; + + @doc("The collection of functions that influence the scoring of documents.") + functions?: ScoringFunction[]; + + @doc("A value indicating how the results of individual scoring functions should be combined. Defaults to \"Sum\". Ignored if there are no scoring functions.") + functionAggregation?: ScoringFunctionAggregation; +} + +@doc("Defines weights on index fields for which matches should boost scoring in search queries.") +model TextWeights { + @doc("The dictionary of per-field weights to boost document scoring. The keys are field names and the values are the weights for each field.") + weights: Record; +} + +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" +@doc("Base type for functions that can modify document scores during ranking.") +@discriminator("type") +model ScoringFunction { + @doc("The name of the field used as input to the scoring function.") + fieldName: string; + + @doc("A multiplier for the raw score. Must be a positive number not equal to 1.0.") + boost: float64; + + @doc("A value indicating how boosting will be interpolated across document scores; defaults to \"Linear\".") + interpolation?: ScoringFunctionInterpolation; + + @doc("Type of ScoringFunction.") + type: string; +} + +@doc("Defines options to control Cross-Origin Resource Sharing (CORS) for an index.") +model CorsOptions { + @doc("The list of origins from which JavaScript code will be granted access to your index. Can contain a list of hosts of the form {protocol}://{fully-qualified-domain-name}[:{port#}], or a single '*' to allow all origins (not recommended).") + allowedOrigins: string[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The duration for which browsers should cache CORS preflight responses. Defaults to 5 minutes.") + maxAgeInSeconds?: int64 | null; +} + +@doc("Defines how the Suggest API should apply to a group of fields in the index.") +model SearchSuggester { + @doc("The name of the suggester.") + name: string; + + @doc("A value indicating the capabilities of the suggester.") + searchMode: "analyzingInfixMatching"; + + @doc("The list of field names to which the suggester applies. Each field must be searchable.") + sourceFields: string[]; +} + +@doc("Base type for analyzers.") +@discriminator("@odata.type") +model LexicalAnalyzer { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the analyzer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for tokenizers.") +@discriminator("@odata.type") +model LexicalTokenizer { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the tokenizer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for token filters.") +@discriminator("@odata.type") +model TokenFilter { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the token filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for character filters.") +@discriminator("@odata.type") +model CharFilter { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for normalizers.") +@discriminator("@odata.type") +model LexicalNormalizer { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for similarity algorithms. Similarity algorithms are used to calculate scores that tie queries to documents. The higher the score, the more relevant the document is to that specific query. Those scores are used to rank the search results.") +@discriminator("@odata.type") +model SimilarityAlgorithm { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; +} + +@doc("Defines parameters for a search index that influence semantic capabilities.") +model SemanticSearch { + @doc("Allows you to set the name of a default semantic configuration in your index, making it optional to pass it on as a query parameter every time.") + defaultConfiguration?: string; + + @doc("The semantic configurations for the index.") + configurations?: SemanticConfiguration[]; +} + +@doc("Defines a specific configuration to be used in the context of semantic capabilities.") +model SemanticConfiguration { + @doc("The name of the semantic configuration.") + name: string; + + @doc("Describes the title, content, and keyword fields to be used for semantic ranking, captions, highlights, and answers. At least one of the three sub properties (titleField, prioritizedKeywordsFields and prioritizedContentFields) need to be set.") + prioritizedFields: SemanticPrioritizedFields; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Specifies the score type to be used for the sort order of the search results.") + rankingOrder?: RankingOrder | null; + + @doc("Determines which semantic or query rewrite models to use during model flighting/upgrades.") + flightingOptIn?: boolean = false; +} + +@doc("Describes the title, content, and keywords fields to be used for semantic ranking, captions, highlights, and answers.") +model SemanticPrioritizedFields { + @doc("Defines the title field to be used for semantic ranking, captions, highlights, and answers. If you don't have a title field in your index, leave this blank.") + titleField?: SemanticField; + + @doc("Defines the content fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain text in natural language form. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long.") + prioritizedContentFields?: SemanticField[]; + + @doc("Defines the keyword fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain a list of keywords. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long.") + prioritizedKeywordsFields?: SemanticField[]; +} + +@doc("A field that is used as part of the semantic configuration.") +model SemanticField { + @doc("File name") + fieldName: string; +} + +@doc("Contains configuration options related to vector search.") +model VectorSearch { + @doc("Defines combinations of configurations to use with vector search.") + profiles?: VectorSearchProfile[]; + + @doc("Contains configuration options specific to the algorithm used during indexing or querying.") + algorithms?: VectorSearchAlgorithmConfiguration[]; + + @doc("Contains configuration options on how to vectorize text vector queries.") + vectorizers?: VectorSearchVectorizer[]; + + @doc("Contains configuration options specific to the compression method used during indexing or querying.") + compressions?: VectorSearchCompression[]; +} + +@doc("Defines a combination of configurations to use with vector search.") +model VectorSearchProfile { + @doc("The name to associate with this particular vector search profile.") + name: string; + + @doc("The name of the vector search algorithm configuration that specifies the algorithm and optional parameters.") + algorithm: string; + + @doc("The name of the vectorization being configured for use with vector search.") + vectorizer?: string; + + @doc("The name of the compression method configuration that specifies the compression method and optional parameters.") + compression?: string; +} + +@doc("Contains configuration options specific to the algorithm used during indexing or querying.") +@discriminator("kind") +model VectorSearchAlgorithmConfiguration { + @doc("The name to associate with this particular configuration.") + name: string; + + @doc("Type of VectorSearchAlgorithmConfiguration.") + kind: VectorSearchAlgorithmKind; +} + +@doc("Specifies the vectorization method to be used during query time.") +@discriminator("kind") +model VectorSearchVectorizer { + @doc("The name to associate with this particular vectorization method.") + name: string; + + @doc("Type of VectorSearchVectorizer.") + kind: VectorSearchVectorizerKind; +} + +@doc("Contains configuration options specific to the compression method used during indexing or querying.") +@discriminator("kind") +model VectorSearchCompression { + @doc("The name to associate with this particular configuration.") + name: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Contains the options for rescoring.") + rescoringOptions?: RescoringOptions | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The number of dimensions to truncate the vectors to. Truncating the vectors reduces the size of the vectors and the amount of data that needs to be transferred during search. This can save storage cost and improve search performance at the expense of recall. It should be only used for embeddings trained with Matryoshka Representation Learning (MRL) such as OpenAI text-embedding-3-large (small). The default value is null, which means no truncation.") + truncationDimension?: int32 | null; + + @doc("Type of VectorSearchCompression.") + kind: VectorSearchCompressionKind; +} + +@doc("Contains the options for rescoring.") +model RescoringOptions { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("If set to true, after the initial search on the compressed vectors, the similarity scores are recalculated using the full-precision vectors. This will improve recall at the expense of latency.") + enableRescoring?: boolean | null = true; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Default oversampling factor. Oversampling retrieves a greater set of potential documents to offset the resolution loss due to quantization. This increases the set of results that will be rescored on full-precision vectors. Minimum value is 1, meaning no oversampling (1x). This parameter can only be set when 'enableRescoring' is true. Higher values improve recall at the expense of latency.") + defaultOversampling?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the storage method for original vectors. This setting is immutable.") + rescoreStorageMethod?: VectorSearchCompressionRescoreStorageMethod | null = VectorSearchCompressionRescoreStorageMethod.PreserveOriginals; +} + +@doc("Response from a List Indexes request. If successful, it includes the full definitions of all indexes.") +model ListIndexesResult { + @doc("The indexes in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchIndex[]; +} + +@doc("Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.") +model GetIndexStatisticsResult { + @doc("The number of documents in the index.") + @visibility(Lifecycle.Read) + documentCount: int64; + + @doc("The amount of storage in bytes consumed by the index.") + @visibility(Lifecycle.Read) + storageSize: int64; + + @doc("The amount of memory in bytes consumed by vectors in the index.") + @visibility(Lifecycle.Read) + vectorIndexSize: int64; +} + +@doc("Specifies some text and analysis components used to break that text into tokens.") +model AnalyzeRequest { + @doc("The text to break into tokens.") + text: string; + + @doc("The name of the analyzer to use to break the given text. If this parameter is not specified, you must specify a tokenizer instead. The tokenizer and analyzer parameters are mutually exclusive.") + analyzer?: LexicalAnalyzerName; + + @doc("The name of the tokenizer to use to break the given text. If this parameter is not specified, you must specify an analyzer instead. The tokenizer and analyzer parameters are mutually exclusive.") + tokenizer?: LexicalTokenizerName; + + @doc("The name of the normalizer to use to normalize the given text.") + normalizer?: LexicalNormalizerName; + + @doc("An optional list of token filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter.") + tokenFilters?: TokenFilterName[]; + + @doc("An optional list of character filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter.") + charFilters?: CharFilterName[]; +} + +@doc("The result of testing an analyzer on text.") +model AnalyzeResult { + @doc("The list of tokens returned by the analyzer specified in the request.") + tokens: AnalyzedTokenInfo[]; +} + +@doc("Information about a token returned by an analyzer.") +model AnalyzedTokenInfo { + @doc("The token returned by the analyzer.") + @visibility(Lifecycle.Read) + token: string; + + @doc("The index of the first character of the token in the input text.") + @visibility(Lifecycle.Read) + startOffset: int32; + + @doc("The index of the last character of the token in the input text.") + @visibility(Lifecycle.Read) + endOffset: int32; + + @doc("The position of the token in the input text relative to other tokens. The first token in the input text has position 0, the next has position 1, and so on. Depending on the analyzer used, some tokens might have the same position, for example if they are synonyms of each other.") + @visibility(Lifecycle.Read) + position: int32; +} + +@doc("Represents an index alias, which describes a mapping from the alias name to an index. The alias name can be used in place of the index name for supported operations.") +model SearchAlias { + @doc("The name of the alias.") + name: string; + + @doc("The name of the index this alias maps to. Only one index name may be specified.") + indexes: string[]; + + @doc("The ETag of the alias.") + @encodedName("application/json", "@odata.etag") + eTag?: string; +} + +@doc("Response from a List Aliases request. If successful, it includes the associated index mappings for all aliases.") +model ListAliasesResult { + @doc("The aliases in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchAlias[]; +} + +// Knowledge Base models +@doc("Represents a knowledge base definition.") +model KnowledgeBase { + @doc("The name of the knowledge base.") + name: string; + + @doc("Knowledge sources referenced by this knowledge base.") + knowledgeSources: KnowledgeSourceReference[]; + + @doc("Contains configuration options on how to connect to AI models.") + models?: KnowledgeBaseModel[]; + + @doc("The retrieval reasoning effort configuration.") + retrievalReasoningEffort?: KnowledgeRetrievalReasoningEffort; + + @doc("The output mode for the knowledge base.") + outputMode?: KnowledgeRetrievalOutputMode; + + @doc("The ETag of the knowledge base.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault.") + encryptionKey?: SearchResourceEncryptionKey | null; + + @doc("The description of the knowledge base.") + description?: string; + + @doc("Instructions considered by the knowledge base when developing query plan.") + retrievalInstructions?: string; + + @doc("Instructions considered by the knowledge base when generating answers.") + answerInstructions?: string; +} + +@doc("Result from listing knowledge bases.") +model ListKnowledgeBasesResult { + @doc("The knowledge bases in the service.") + @pageItems + value: KnowledgeBase[]; +} + +@discriminator("kind") +@doc("Specifies the connection parameters for the model to use for query planning.") +model KnowledgeBaseModel { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The AI model to be used for query planning.") + kind: KnowledgeBaseModelKind; +} + +@doc("The AI model to be used for query planning.") +union KnowledgeBaseModelKind { + string, + + @doc("Use Azure Open AI models for query planning.") + AzureOpenAI: "azureOpenAI", +} + +@doc("Specifies the Azure OpenAI resource used to do query planning.") +model KnowledgeBaseAzureOpenAIModel extends KnowledgeBaseModel { + kind: KnowledgeBaseModelKind.AzureOpenAI; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("Azure OpenAI parameters.") + azureOpenAIParameters: AzureOpenAIVectorizerParameters; +} + +// Knowledge Source models +@doc("Reference to a knowledge source.") +model KnowledgeSourceReference { + @doc("The name of the knowledge source.") + name: string; +} + +@doc("Specifies the parameters for connecting to the Azure OpenAI resource.") +model AzureOpenAiParameters { + @doc("The resource URI of the Azure OpenAI resource.") + resourceUri?: url; + + @doc("ID of the Azure OpenAI model deployment on the designated resource.") + deploymentId?: string; + + @doc("API key of the designated Azure OpenAI resource.") + apiKey?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections.") + authIdentity?: SearchIndexerDataIdentity | null; + + @doc("The name of the embedding model that is deployed at the provided deploymentId path.") + modelName?: AzureOpenAIModelName; +} + +// Knowledge Source models +@discriminator("kind") +@doc("Represents a knowledge source definition.") +model KnowledgeSource { + @doc("The name of the knowledge source.") + name: string; + + @doc("Optional user-defined description.") + description?: string; + + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The type of the knowledge source.") + kind: KnowledgeSourceKind; + + @doc("The ETag of the knowledge source.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your knowledge source definition when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your knowledge source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your knowledge source definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; +} + +@doc("The kind of the knowledge source.") +union KnowledgeSourceKind { + string, + + @doc("A knowledge source that reads data from a Search Index.") + SearchIndex: "searchIndex", + + @doc("A knowledge source that read and ingest data from Azure Blob Storage to a Search Index.") + AzureBlob: "azureBlob", + + @doc("A knowledge source that reads data from indexed SharePoint.") + IndexedSharePoint: "indexedSharePoint", + + @doc("A knowledge source that reads data from indexed OneLake.") + IndexedOneLake: "indexedOneLake", + + @doc("A knowledge source that reads data from the web.") + Web: "web", + + @doc("A knowledge source that reads data from remote SharePoint.") + RemoteSharePoint: "remoteSharePoint", +} + +@doc("Knowledge Source targeting a search index.") +model SearchIndexKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.SearchIndex; + + @doc("The parameters for the knowledge source.") + searchIndexParameters: SearchIndexKnowledgeSourceParameters; +} + +@doc("Parameters for search index knowledge source.") +model SearchIndexKnowledgeSourceParameters { + @doc("The name of the Search index.") + searchIndexName: string; + + @doc("Used to request additional fields for referenced source data.") + sourceDataFields?: SearchIndexFieldReference[]; + + @doc("Used to restrict which fields to search on the search index.") + searchFields?: SearchIndexFieldReference[]; + + @doc("Used to specify a different semantic configuration on the target search index other than the default one.") + semanticConfigurationName?: string; +} + +@doc("Field reference for a search index.") +model SearchIndexFieldReference { + @doc("The name of the field.") + name: string; +} + +@doc("Configuration for Azure Blob Storage knowledge source.") +model AzureBlobKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.AzureBlob; + + @doc("The type of the knowledge source.") + azureBlobParameters: AzureBlobKnowledgeSourceParameters; +} + +@doc("Parameters for Azure Blob Storage knowledge source.") +model AzureBlobKnowledgeSourceParameters { + @doc("Key-based connection string or the ResourceId format if using a managed identity.") + connectionString: string; + + @doc("The name of the blob storage container.") + containerName: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional folder path within the container.") + folderPath?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("Set to true if connecting to an ADLS Gen2 storage account. Default is false.") + isADLSGen2?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Consolidates all general ingestion settings.") + ingestionParameters?: KnowledgeSourceIngestionParameters | null; + + @doc("Resources created by the knowledge source.") + @visibility(Lifecycle.Read) + createdResources?: CreatedResources; +} + +@doc("Configuration for SharePoint knowledge source.") +model IndexedSharePointKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.IndexedSharePoint; + + @doc("The parameters for the knowledge source.") + indexedSharePointParameters: IndexedSharePointKnowledgeSourceParameters; +} + +@doc("Parameters for SharePoint knowledge source.") +model IndexedSharePointKnowledgeSourceParameters { + @doc("SharePoint connection string with format: SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]") + connectionString: string; + + @doc("Specifies which SharePoint libraries to access.") + containerName: IndexedSharePointContainerName; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional query to filter SharePoint content.") + query?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Consolidates all general ingestion settings.") + ingestionParameters?: KnowledgeSourceIngestionParameters | null; + + @doc("Resources created by the knowledge source.") + @visibility(Lifecycle.Read) + createdResources?: CreatedResources; +} + +@doc("Configuration for OneLake knowledge source.") +model IndexedOneLakeKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.IndexedOneLake; + + @doc("The parameters for the knowledge source.") + indexedOneLakeParameters: IndexedOneLakeKnowledgeSourceParameters; +} + +@doc("Parameters for OneLake knowledge source.") +model IndexedOneLakeKnowledgeSourceParameters { + @doc("OneLake workspace ID.") + fabricWorkspaceId: string; + + @doc("Specifies which OneLake lakehouse to access.") + lakehouseId: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional OneLakehouse folder or shortcut to filter OneLake content.") + targetPath?: string | null; + + @doc("Consolidates all general ingestion settings.") + ingestionParameters?: KnowledgeSourceIngestionParameters; + + @doc("Resources created by the knowledge source.") + @visibility(Lifecycle.Read) + createdResources?: CreatedResources; +} + +@doc("Knowledge Source targeting web results.") +model WebKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.Web; + + @doc("The parameters for the web knowledge source.") + webParameters?: WebKnowledgeSourceParameters; +} + +@doc("Parameters for web knowledge source.") +model WebKnowledgeSourceParameters { + @doc("Domain allow/block configuration for web results.") + domains?: WebKnowledgeSourceDomains; +} + +@doc("Domain allow/block configuration for web knowledge source.") +model WebKnowledgeSourceDomains { + @doc("Domains that are allowed for web results.") + allowedDomains?: WebKnowledgeSourceDomain[]; + + @doc("Domains that are blocked from web results.") + blockedDomains?: WebKnowledgeSourceDomain[]; +} + +@doc("Configuration for web knowledge source domain.") +model WebKnowledgeSourceDomain { + @doc("The address of the domain.") + address: string; + + @doc("Whether or not to include subpages from this domain.") + includeSubpages?: boolean; +} + +@doc("Configuration for remote SharePoint knowledge source.") +model RemoteSharePointKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.RemoteSharePoint; + + @doc("The parameters for the remote SharePoint knowledge source.") + remoteSharePointParameters?: RemoteSharePointKnowledgeSourceParameters; +} + +@doc("Parameters for remote SharePoint knowledge source.") +model RemoteSharePointKnowledgeSourceParameters { + @doc("Keyword Query Language (KQL) expression with queryable SharePoint properties and attributes to scope the retrieval before the query runs.") + filterExpression?: string; + + @doc("A list of metadata fields to be returned for each item in the response. Only retrievable metadata properties can be included in this list. By default, no metadata is returned.") + resourceMetadata?: string[]; + + @doc("Container ID for SharePoint Embedded connection. When this is null, it will use SharePoint Online.") + containerTypeId?: string; +} + +@doc("Result from listing knowledge sources.") +model ListKnowledgeSourcesResult { + @doc("The knowledge sources in the service.") + @pageItems + value: KnowledgeSource[]; +} + +@doc("Resources created by the knowledge source. Keys represent resource types (e.g., 'datasource', 'indexer', 'skillset', 'index') and values represent resource names.") +model CreatedResources { + ...Record; +} + +@doc("Response from a get service statistics request. If successful, it includes service level counters and limits.") +model SearchServiceStatistics { + @doc("Service level resource counters.") + counters: SearchServiceCounters; + + @doc("Service level general limits.") + limits: SearchServiceLimits; + + @doc("Service level indexer runtime consumption.") + indexersRuntime: ServiceIndexersRuntime; +} + +@doc("Represents service-level resource counters and quotas.") +model SearchServiceCounters { + @doc("Total number of aliases.") + aliasesCount: ResourceCounter; + + @doc("Total number of documents across all indexes in the service.") + documentCount: ResourceCounter; + + @doc("Total number of indexes.") + indexesCount: ResourceCounter; + + @doc("Total number of indexers.") + indexersCount: ResourceCounter; + + @doc("Total number of data sources.") + dataSourcesCount: ResourceCounter; + + @doc("Total size of used storage in bytes.") + storageSize: ResourceCounter; + + @doc("Total number of synonym maps.") + synonymMaps: ResourceCounter; + + @doc("Total number of skillsets.") + skillsetCount: ResourceCounter; + + @doc("Total memory consumption of all vector indexes within the service, in bytes.") + vectorIndexSize: ResourceCounter; +} + +@doc("Represents a resource's usage and quota.") +model ResourceCounter { + @doc("The resource usage amount.") + usage: int64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The resource amount quota.") + quota?: int64 | null; +} + +@doc("Represents various service level limits.") +model SearchServiceLimits { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum allowed fields per index.") + maxFieldsPerIndex?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum depth which you can nest sub-fields in an index, including the top-level complex field. For example, a/b/c has a nesting depth of 3.") + maxFieldNestingDepthPerIndex?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum number of fields of type Collection(Edm.ComplexType) allowed in an index.") + maxComplexCollectionFieldsPerIndex?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum number of objects in complex collections allowed per document.") + maxComplexObjectsInCollectionsPerDocument?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum amount of storage in bytes allowed per index.") + maxStoragePerIndex?: int64 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum cumulative indexer runtime in seconds allowed for the service.") + maxCumulativeIndexerRuntimeSeconds?: int64 | null; +} + +@doc("Represents service-level indexer runtime counters.") +model ServiceIndexersRuntime { + @doc("Cumulative runtime of all indexers in the service from the beginningTime to endingTime, in seconds.") + usedSeconds: int64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds.") + remainingSeconds?: int64 | null; + + @doc("Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive).") + beginningTime: utcDateTime; + + @doc("End UTC time of the 24-hour period considered for indexer runtime usage (inclusive).") + endingTime: utcDateTime; +} + +@doc("Allows you to take control over the process of converting text into indexable/searchable tokens. It's a user-defined configuration consisting of a single predefined tokenizer and one or more filters. The tokenizer is responsible for breaking text into tokens, and the filters for modifying tokens emitted by the tokenizer.") +model CustomAnalyzer extends LexicalAnalyzer { + @doc("The name of the tokenizer to use to divide continuous text into a sequence of tokens, such as breaking a sentence into words.") + tokenizer: LexicalTokenizerName; + + @doc("A list of token filters used to filter out or modify the tokens generated by a tokenizer. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed.") + tokenFilters?: TokenFilterName[]; + + @doc("A list of character filters used to prepare input text before it is processed by the tokenizer. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed.") + charFilters?: CharFilterName[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of analyzer.") + `@odata.type`: "#Microsoft.Azure.Search.CustomAnalyzer"; +} + +@doc("Flexibly separates text into terms via a regular expression pattern. This analyzer is implemented using Apache Lucene.") +model PatternAnalyzer extends LexicalAnalyzer { + @doc("A value indicating whether terms should be lower-cased. Default is true.") + lowercase?: boolean = true; + + @doc("A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters.") + pattern?: string = "\\W+"; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("Regular expression flags.") + @encode(ArrayEncoding.pipeDelimited) + flags?: RegexFlags; + + @doc("A list of stopwords.") + stopwords?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of analyzer.") + `@odata.type`: "#Microsoft.Azure.Search.PatternAnalyzer"; +} + +@doc("Standard Apache Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter.") +model LuceneStandardAnalyzer extends LexicalAnalyzer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + @doc("A list of stopwords.") + stopwords?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of analyzer.") + `@odata.type`: "#Microsoft.Azure.Search.StandardAnalyzer"; +} + +@doc("Divides text at non-letters; Applies the lowercase and stopword token filters. This analyzer is implemented using Apache Lucene.") +model StopAnalyzer extends LexicalAnalyzer { + @doc("A list of stopwords.") + stopwords?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of analyzer.") + `@odata.type`: "#Microsoft.Azure.Search.StopAnalyzer"; +} + +@doc("Allows you to configure normalization for filterable, sortable, and facetable fields, which by default operate with strict matching. This is a user-defined configuration consisting of at least one or more filters, which modify the token that is stored.") +model CustomNormalizer extends LexicalNormalizer { + @doc("A list of token filters used to filter out or modify the input token. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed.") + tokenFilters?: TokenFilterName[]; + + @doc("A list of character filters used to prepare input text before it is processed. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed.") + charFilters?: CharFilterName[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of normalizer.") + `@odata.type`: "#Microsoft.Azure.Search.CustomNormalizer"; +} + +@doc("Grammar-based tokenizer that is suitable for processing most European-language documents. This tokenizer is implemented using Apache Lucene.") +model ClassicTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.ClassicTokenizer"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Tokenizes the input from an edge into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.") +model EdgeNGramTokenizer extends LexicalTokenizer { + @doc("The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.") + @maxValue(300) + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2. Maximum is 300.") + @maxValue(300) + maxGram?: int32 = 2; + + @doc("Character classes to keep in the tokens.") + tokenChars?: TokenCharacterKind[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.EdgeNGramTokenizer"; +} + +#deprecated "Use KeywordTokenizerV2 instead." +@doc("Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.") +model KeywordTokenizer extends LexicalTokenizer { + @doc("The read buffer size in bytes. Default is 256.") + bufferSize?: int32 = 256; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.KeywordTokenizer"; +} + +@doc("Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.") +model KeywordTokenizerV2 extends LexicalTokenizer { + @doc("The maximum token length. Default is 256. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 256; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.KeywordTokenizerV2"; +} + +@doc("Divides text using language-specific rules.") +model MicrosoftLanguageTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + @doc("A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false.") + isSearchTokenizer?: boolean = false; + + @doc("The language to use. The default is English.") + language?: MicrosoftTokenizerLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.MicrosoftLanguageTokenizer"; +} + +@doc("Divides text using language-specific rules and reduces words to their base forms.") +model MicrosoftLanguageStemmingTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + @doc("A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false.") + isSearchTokenizer?: boolean = false; + + @doc("The language to use. The default is English.") + language?: MicrosoftStemmingTokenizerLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.MicrosoftLanguageStemmingTokenizer"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Tokenizes the input into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.") +model NGramTokenizer extends LexicalTokenizer { + @doc("The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.") + @maxValue(300) + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2. Maximum is 300.") + @maxValue(300) + maxGram?: int32 = 2; + + @doc("Character classes to keep in the tokens.") + tokenChars?: TokenCharacterKind[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.NGramTokenizer"; +} + +@doc("Tokenizer for path-like hierarchies. This tokenizer is implemented using Apache Lucene.") +model PathHierarchyTokenizerV2 extends LexicalTokenizer { + @doc("The delimiter character to use. Default is \"/\".") + @maxLength(1) + delimiter?: string = "/"; + + @doc("A value that, if set, replaces the delimiter character. Default is \"/\".") + @maxLength(1) + replacement?: string = "/"; + + @doc("The maximum token length. Default and maximum is 300.") + @maxValue(300) + maxTokenLength?: int32 = 300; + + @doc("A value indicating whether to generate tokens in reverse order. Default is false.") + reverse?: boolean = false; + + @doc("The number of initial tokens to skip. Default is 0.") + skip?: int32 = 0; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.PathHierarchyTokenizerV2"; +} + +@doc("Tokenizer that uses regex pattern matching to construct distinct tokens. This tokenizer is implemented using Apache Lucene.") +model PatternTokenizer extends LexicalTokenizer { + @doc("A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters.") + pattern?: string = "\\W+"; + + @doc("Regular expression flags.") + flags?: RegexFlags; + + @doc("The zero-based ordinal of the matching group in the regular expression pattern to extract into tokens. Use -1 if you want to use the entire pattern to split the input into tokens, irrespective of matching groups. Default is -1.") + group?: int32 = -1; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.PatternTokenizer"; +} + +#deprecated "LuceneStandardTokenizer is deprecated. Use LuceneStandardTokenizerV2 instead." +@doc("Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.") +model LuceneStandardTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split.") + maxTokenLength?: int32 = 255; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.StandardTokenizer"; +} + +@doc("Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.") +model LuceneStandardTokenizerV2 extends LexicalTokenizer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.StandardTokenizerV2"; +} + +@doc("Tokenizes urls and emails as one token. This tokenizer is implemented using Apache Lucene.") +model UaxUrlEmailTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.UaxUrlEmailTokenizer"; +} + +@doc("Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. This token filter is implemented using Apache Lucene.") +model AsciiFoldingTokenFilter extends TokenFilter { + @doc("A value indicating whether the original token will be kept. Default is false.") + preserveOriginal?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.AsciiFoldingTokenFilter"; +} + +@doc("Forms bigrams of CJK terms that are generated from the standard tokenizer. This token filter is implemented using Apache Lucene.") +model CjkBigramTokenFilter extends TokenFilter { + @doc("The scripts to ignore.") + ignoreScripts?: CjkBigramTokenFilterScripts[]; + + @doc("A value indicating whether to output both unigrams and bigrams (if true), or just bigrams (if false). Default is false.") + outputUnigrams?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.CjkBigramTokenFilter"; +} + +@doc("Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. This token filter is implemented using Apache Lucene.") +model CommonGramTokenFilter extends TokenFilter { + @doc("The set of common words.") + commonWords: string[]; + + @doc("A value indicating whether common words matching will be case insensitive. Default is false.") + ignoreCase?: boolean = false; + + @doc("A value that indicates whether the token filter is in query mode. When in query mode, the token filter generates bigrams and then removes common words and single terms followed by a common word. Default is false.") + queryMode?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.CommonGramTokenFilter"; +} + +@doc("Decomposes compound words found in many Germanic languages. This token filter is implemented using Apache Lucene.") +model DictionaryDecompounderTokenFilter extends TokenFilter { + @doc("The list of words to match against.") + wordList: string[]; + + @doc("The minimum word size. Only words longer than this get processed. Default is 5. Maximum is 300.") + @maxValue(300) + minWordSize?: int32 = 5; + + @doc("The minimum subword size. Only subwords longer than this are outputted. Default is 2. Maximum is 300.") + @maxValue(300) + minSubwordSize?: int32 = 2; + + @doc("The maximum subword size. Only subwords shorter than this are outputted. Default is 15. Maximum is 300.") + @maxValue(300) + maxSubwordSize?: int32 = 15; + + @doc("A value indicating whether to add only the longest matching subword to the output. Default is false.") + onlyLongestMatch?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.DictionaryDecompounderTokenFilter"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.") +#deprecated "EdgeNGramTokenFilter is deprecated. Use EdgeNGramTokenFilterV2 instead." +model EdgeNGramTokenFilter extends TokenFilter { + @doc("The minimum n-gram length. Default is 1. Must be less than the value of maxGram.") + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2.") + maxGram?: int32 = 2; + + @doc("Specifies which side of the input the n-gram should be generated from. Default is \"front\".") + side?: EdgeNGramTokenFilterSide = EdgeNGramTokenFilterSide.Front; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.EdgeNGramTokenFilter"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.") +model EdgeNGramTokenFilterV2 extends TokenFilter { + @doc("The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.") + @maxValue(300) + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2. Maximum is 300.") + @maxValue(300) + maxGram?: int32 = 2; + + @doc("Specifies which side of the input the n-gram should be generated from. Default is \"front\".") + side?: EdgeNGramTokenFilterSide = EdgeNGramTokenFilterSide.Front; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.EdgeNGramTokenFilterV2"; +} + +@doc("Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). This token filter is implemented using Apache Lucene.") +model ElisionTokenFilter extends TokenFilter { + @doc("The set of articles to remove.") + articles?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.ElisionTokenFilter"; +} + +@doc("A token filter that only keeps tokens with text contained in a specified list of words. This token filter is implemented using Apache Lucene.") +model KeepTokenFilter extends TokenFilter { + @doc("The list of words to keep.") + keepWords: string[]; + + @doc("A value indicating whether to lower case all words first. Default is false.") + keepWordsCase?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.KeepTokenFilter"; +} + +@doc("Marks terms as keywords. This token filter is implemented using Apache Lucene.") +model KeywordMarkerTokenFilter extends TokenFilter { + @doc("A list of words to mark as keywords.") + keywords: string[]; + + @doc("A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false.") + ignoreCase?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.KeywordMarkerTokenFilter"; +} + +@doc("Removes words that are too long or too short. This token filter is implemented using Apache Lucene.") +model LengthTokenFilter extends TokenFilter { + @doc("The minimum length in characters. Default is 0. Maximum is 300. Must be less than the value of max.") + @maxValue(300) + min?: int32 = 0; + + @doc("The maximum length in characters. Default and maximum is 300.") + @maxValue(300) + max?: int32 = 300; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.LengthTokenFilter"; +} + +@doc("Limits the number of tokens while indexing. This token filter is implemented using Apache Lucene.") +model LimitTokenFilter extends TokenFilter { + @doc("The maximum number of tokens to produce. Default is 1.") + maxTokenCount?: int32 = 1; + + @doc("A value indicating whether all tokens from the input must be consumed even if maxTokenCount is reached. Default is false.") + consumeAllTokens?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.LimitTokenFilter"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.") +#deprecated "NGramTokenFilter is deprecated. Use NGramTokenFilterV2 instead." +model NGramTokenFilter extends TokenFilter { + @doc("The minimum n-gram length. Default is 1. Must be less than the value of maxGram.") + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2.") + maxGram?: int32 = 2; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.NGramTokenFilter"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.") +model NGramTokenFilterV2 extends TokenFilter { + @doc("The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.") + @maxValue(300) + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2. Maximum is 300.") + @maxValue(300) + maxGram?: int32 = 2; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.NGramTokenFilterV2"; +} + +@doc("Uses Java regexes to emit multiple tokens - one for each capture group in one or more patterns. This token filter is implemented using Apache Lucene.") +model PatternCaptureTokenFilter extends TokenFilter { + @doc("A list of patterns to match against each token.") + patterns: string[]; + + @doc("A value indicating whether to return the original token even if one of the patterns matches. Default is true.") + preserveOriginal?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.PatternCaptureTokenFilter"; +} + +@doc("A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This token filter is implemented using Apache Lucene.") +model PatternReplaceTokenFilter extends TokenFilter { + @doc("A regular expression pattern.") + pattern: string; + + @doc("The replacement text.") + replacement: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.PatternReplaceTokenFilter"; +} + +@doc("Create tokens for phonetic matches. This token filter is implemented using Apache Lucene.") +model PhoneticTokenFilter extends TokenFilter { + @doc("The phonetic encoder to use. Default is \"metaphone\".") + encoder?: PhoneticEncoder = PhoneticEncoder.Metaphone; + + @doc("A value indicating whether encoded tokens should replace original tokens. If false, encoded tokens are added as synonyms. Default is true.") + replace?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.PhoneticTokenFilter"; +} + +@doc("Creates combinations of tokens as a single token. This token filter is implemented using Apache Lucene.") +model ShingleTokenFilter extends TokenFilter { + @doc("The maximum shingle size. Default and minimum value is 2.") + @minValue(2) + maxShingleSize?: int32 = 2; + + @doc("The minimum shingle size. Default and minimum value is 2. Must be less than the value of maxShingleSize.") + @minValue(2) + minShingleSize?: int32 = 2; + + @doc("A value indicating whether the output stream will contain the input tokens (unigrams) as well as shingles. Default is true.") + outputUnigrams?: boolean = true; + + @doc("A value indicating whether to output unigrams for those times when no shingles are available. This property takes precedence when outputUnigrams is set to false. Default is false.") + outputUnigramsIfNoShingles?: boolean = false; + + @doc("The string to use when joining adjacent tokens to form a shingle. Default is a single space (\" \").") + tokenSeparator?: string = " "; + + @doc("The string to insert for each position at which there is no token. Default is an underscore (\"_\").") + filterToken?: string = "_"; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.ShingleTokenFilter"; +} + +@doc("A filter that stems words using a Snowball-generated stemmer. This token filter is implemented using Apache Lucene.") +model SnowballTokenFilter extends TokenFilter { + @doc("The language to use.") + language: SnowballTokenFilterLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.SnowballTokenFilter"; +} + +@doc("Language specific stemming filter. This token filter is implemented using Apache Lucene. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters") +model StemmerTokenFilter extends TokenFilter { + @doc("The language to use.") + language: StemmerTokenFilterLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.StemmerTokenFilter"; +} + +@doc("Provides the ability to override other stemming filters with custom dictionary-based stemming. Any dictionary-stemmed terms will be marked as keywords so that they will not be stemmed with stemmers down the chain. Must be placed before any stemming filters. This token filter is implemented using Apache Lucene. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilter.html") +model StemmerOverrideTokenFilter extends TokenFilter { + @doc("A list of stemming rules in the following format: \"word => stem\", for example: \"ran => run\".") + rules: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.StemmerOverrideTokenFilter"; +} + +@doc("Removes stop words from a token stream. This token filter is implemented using Apache Lucene. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html") +model StopwordsTokenFilter extends TokenFilter { + @doc("The list of stopwords. This property and the stopwords list property cannot both be set.") + stopwords?: string[]; + + @doc("A predefined list of stopwords to use. This property and the stopwords property cannot both be set. Default is English.") + stopwordsList?: StopwordsList = StopwordsList.English; + + @doc("A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false.") + ignoreCase?: boolean = false; + + @doc("A value indicating whether to ignore the last search term if it's a stop word. Default is true.") + removeTrailing?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.StopwordsTokenFilter"; +} + +@doc("Matches single or multi-word synonyms in a token stream. This token filter is implemented using Apache Lucene.") +model SynonymTokenFilter extends TokenFilter { + @doc("A list of synonyms in following one of two formats: 1. incredible, unbelievable, fabulous => amazing - all terms on the left side of => symbol will be replaced with all terms on its right side; 2. incredible, unbelievable, fabulous, amazing - comma separated list of equivalent words. Set the expand option to change how this list is interpreted.") + synonyms: string[]; + + @doc("A value indicating whether to case-fold input for matching. Default is false.") + ignoreCase?: boolean = false; + + @doc("A value indicating whether all words in the list of synonyms (if => notation is not used) will map to one another. If true, all words in the list of synonyms (if => notation is not used) will map to one another. The following list: incredible, unbelievable, fabulous, amazing is equivalent to: incredible, unbelievable, fabulous, amazing => incredible, unbelievable, fabulous, amazing. If false, the following list: incredible, unbelievable, fabulous, amazing will be equivalent to: incredible, unbelievable, fabulous, amazing => incredible. Default is true.") + expand?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.SynonymTokenFilter"; +} + +@doc("Truncates the terms to a specific length. This token filter is implemented using Apache Lucene.") +model TruncateTokenFilter extends TokenFilter { + @doc("The length at which terms will be truncated. Default and maximum is 300.") + @maxValue(300) + length?: int32 = 300; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.TruncateTokenFilter"; +} + +@doc("Filters out tokens with same text as the previous token. This token filter is implemented using Apache Lucene.") +model UniqueTokenFilter extends TokenFilter { + @doc("A value indicating whether to remove duplicates only at the same position. Default is false.") + onlyOnSamePosition?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.UniqueTokenFilter"; +} + +@doc("Splits words into subwords and performs optional transformations on subword groups. This token filter is implemented using Apache Lucene.") +model WordDelimiterTokenFilter extends TokenFilter { + @doc("A value indicating whether to generate part words. If set, causes parts of words to be generated; for example \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true.") + generateWordParts?: boolean = true; + + @doc("A value indicating whether to generate number subwords. Default is true.") + generateNumberParts?: boolean = true; + + @doc("A value indicating whether maximum runs of word parts will be catenated. For example, if this is set to true, \"Azure-Search\" becomes \"AzureSearch\". Default is false.") + catenateWords?: boolean = false; + + @doc("A value indicating whether maximum runs of number parts will be catenated. For example, if this is set to true, \"1-2\" becomes \"12\". Default is false.") + catenateNumbers?: boolean = false; + + @doc("A value indicating whether all subword parts will be catenated. For example, if this is set to true, \"Azure-Search-1\" becomes \"AzureSearch1\". Default is false.") + catenateAll?: boolean = false; + + @doc("A value indicating whether to split words on caseChange. For example, if this is set to true, \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true.") + splitOnCaseChange?: boolean = true; + + @doc("A value indicating whether original words will be preserved and added to the subword list. Default is false.") + preserveOriginal?: boolean = false; + + @doc("A value indicating whether to split on numbers. For example, if this is set to true, \"Azure1Search\" becomes \"Azure\" \"1\" \"Search\". Default is true.") + splitOnNumerics?: boolean = true; + + @doc("A value indicating whether to remove trailing \"'s\" for each subword. Default is true.") + stemEnglishPossessive?: boolean = true; + + @doc("A list of tokens to protect from being delimited.") + protectedWords?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.WordDelimiterTokenFilter"; +} + +@doc("A character filter that applies mappings defined with the mappings option. Matching is greedy (longest pattern matching at a given point wins). Replacement is allowed to be the empty string. This character filter is implemented using Apache Lucene.") +model MappingCharFilter extends CharFilter { + @doc("A list of mappings of the following format: \"a=>b\" (all occurrences of the character \"a\" will be replaced with character \"b\").") + mappings: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of char filter.") + `@odata.type`: "#Microsoft.Azure.Search.MappingCharFilter"; +} + +@doc("A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This character filter is implemented using Apache Lucene.") +model PatternReplaceCharFilter extends CharFilter { + @doc("A regular expression pattern.") + pattern: string; + + @doc("The replacement text.") + replacement: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of char filter.") + `@odata.type`: "#Microsoft.Azure.Search.PatternReplaceCharFilter"; +} + +@doc("Legacy similarity algorithm which uses the Lucene TFIDFSimilarity implementation of TF-IDF. This variation of TF-IDF introduces static document length normalization as well as coordinating factors that penalize documents that only partially match the searched queries.") +model ClassicSimilarityAlgorithm extends SimilarityAlgorithm { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: "#Microsoft.Azure.Search.ClassicSimilarity"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Ranking function based on the Okapi BM25 similarity algorithm. BM25 is a TF-IDF-like algorithm that includes length normalization (controlled by the 'b' parameter) as well as term frequency saturation (controlled by the 'k1' parameter).") +model BM25SimilarityAlgorithm extends SimilarityAlgorithm { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency.") + k1?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document.") + b?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: "#Microsoft.Azure.Search.BM25Similarity"; +} + +@doc("Contains configuration options specific to the HNSW approximate nearest neighbors algorithm used during indexing and querying. The HNSW algorithm offers a tunable trade-off between search speed and accuracy.") +model HnswAlgorithmConfiguration extends VectorSearchAlgorithmConfiguration { + @doc("Contains the parameters specific to HNSW algorithm.") + hnswParameters?: HnswParameters; + + @doc("The name of the kind of algorithm being configured for use with vector search.") + kind: "hnsw"; +} + +@doc("Contains the parameters specific to the HNSW algorithm.") +model HnswParameters { + @doc("The number of bi-directional links created for every new element during construction. Increasing this parameter value may improve recall and reduce retrieval times for datasets with high intrinsic dimensionality at the expense of increased memory consumption and longer indexing time.") + @maxValue(10) + @minValue(4) + m?: int32 = 4; + + @doc("The size of the dynamic list containing the nearest neighbors, which is used during index time. Increasing this parameter may improve index quality, at the expense of increased indexing time. At a certain point, increasing this parameter leads to diminishing returns.") + @maxValue(1000) + @minValue(100) + efConstruction?: int32 = 400; + + @doc("The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. At a certain point, increasing this parameter leads to diminishing returns.") + @maxValue(1000) + @minValue(100) + efSearch?: int32 = 500; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The similarity metric to use for vector comparisons.") + metric?: VectorSearchAlgorithmMetric | null; +} + +@doc("Contains configuration options specific to the exhaustive KNN algorithm used during querying, which will perform brute-force search across the entire vector index.") +model ExhaustiveKnnAlgorithmConfiguration + extends VectorSearchAlgorithmConfiguration { + @doc("Contains the parameters specific to exhaustive KNN algorithm.") + exhaustiveKnnParameters?: ExhaustiveKnnParameters; + + @doc("The name of the kind of algorithm being configured for use with vector search.") + kind: "exhaustiveKnn"; +} + +@doc("Contains the parameters specific to exhaustive KNN algorithm.") +model ExhaustiveKnnParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The similarity metric to use for vector comparisons.") + metric?: VectorSearchAlgorithmMetric | null; +} + +@doc("Contains configuration options specific to the scalar quantization compression method used during indexing and querying.") +model ScalarQuantizationCompression extends VectorSearchCompression { + @doc("Contains the parameters specific to Scalar Quantization.") + scalarQuantizationParameters?: ScalarQuantizationParameters; + + @doc("The name of the kind of compression method being configured for use with vector search.") + kind: "scalarQuantization"; +} + +@doc("Contains the parameters specific to Scalar Quantization.") +model ScalarQuantizationParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The quantized data type of compressed vector values.") + quantizedDataType?: VectorSearchCompressionTarget | null; +} + +@doc("Contains configuration options specific to the binary quantization compression method used during indexing and querying.") +model BinaryQuantizationCompression extends VectorSearchCompression { + @doc("The name of the kind of compression method being configured for use with vector search.") + kind: "binaryQuantization"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies the Azure OpenAI resource used to vectorize a query string.") +model AzureOpenAIVectorizer extends VectorSearchVectorizer { + @doc("Contains the parameters specific to Azure OpenAI embedding vectorization.") + azureOpenAIParameters?: AzureOpenAIVectorizerParameters; + + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: "azureOpenAI"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies the parameters for connecting to the Azure OpenAI resource.") +model AzureOpenAIVectorizerParameters { + @doc("The resource URI of the Azure OpenAI resource.") + resourceUri?: url; + + @doc("ID of the Azure OpenAI model deployment on the designated resource.") + deploymentId?: string; + + @doc("API key of the designated Azure OpenAI resource.") + apiKey?: string; + + @doc("The user-assigned managed identity used for outbound connections.") + authIdentity?: SearchIndexerDataIdentity; + + @doc("The name of the embedding model that is deployed at the provided deploymentId path.") + modelName?: AzureOpenAIModelName; +} + +@doc("Abstract base type for data identities.") +@discriminator("@odata.type") +model SearchIndexerDataIdentity { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of identity.") + `@odata.type`: string; +} + +@doc("Specifies a user-defined vectorizer for generating the vector embedding of a query string. Integration of an external vectorizer is achieved using the custom Web API interface of a skillset.") +model WebApiVectorizer extends VectorSearchVectorizer { + @doc("Specifies the properties of the user-defined vectorizer.") + customWebApiParameters?: WebApiVectorizerParameters; + + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: "customWebApi"; +} + +@doc("Specifies the properties for connecting to a user-defined vectorizer.") +model WebApiVectorizerParameters { + @doc("The URI of the Web API providing the vectorizer.") + uri?: url; + + @doc("The headers required to make the HTTP request.") + httpHeaders?: Record; + + @doc("The method for the HTTP request.") + httpMethod?: string; + + @doc("The desired timeout for the request. Default is 30 seconds.") + timeout?: duration; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Applies to custom endpoints that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the vectorization connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.") + authResourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + authIdentity?: SearchIndexerDataIdentity | null; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Clears the identity property of a datasource.") +model AIServicesVisionVectorizer extends VectorSearchVectorizer { + @doc("Contains the parameters specific to AI Services Vision embedding vectorization.") + aiServicesVisionParameters?: AIServicesVisionParameters; + + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: "aiServicesVision"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies the AI Services Vision parameters for vectorizing a query image or text.") +model AIServicesVisionParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified.") + modelVersion: string | null; + + @doc("The resource URI of the AI Services resource.") + resourceUri: url; + + @doc("API key of the designated AI Services resource.") + apiKey?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the index, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + authIdentity?: SearchIndexerDataIdentity | null; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog for generating the vector embedding of a query string.") +model AMLVectorizer extends VectorSearchVectorizer { + @doc("Specifies the properties of the AML vectorizer.") + amlParameters?: AMLParameters; + + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: "aml"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies the properties for connecting to an AML vectorizer.") +model AMLParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed.") + uri: url | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for key authentication) The key for the AML service.") + key?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}.") + resourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional) When specified, indicates the timeout for the http client making the API call.") + timeout?: duration | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional for token authentication). The region the AML service is deployed in.") + region?: string | null; + + @doc("The name of the embedding model from the Azure AI Foundry Catalog that is deployed at the provided endpoint.") + modelName?: AIFoundryModelCatalogName; +} + +@doc("Clears the identity property of a datasource.") +model SearchIndexerDataNoneIdentity extends SearchIndexerDataIdentity { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: "#Microsoft.Azure.Search.DataNoneIdentity"; +} + +@doc("Specifies the identity for a datasource to use.") +model SearchIndexerDataUserAssignedIdentity extends SearchIndexerDataIdentity { + @doc("The fully qualified Azure resource Id of a user assigned managed identity typically in the form \"/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId\" that should have been assigned to the search service.") + userAssignedIdentity: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of identity.") + `@odata.type`: "#Microsoft.Azure.Search.DataUserAssignedIdentity"; +} + +@doc("Defines a data change detection policy that captures changes based on the value of a high water mark column.") +model HighWaterMarkChangeDetectionPolicy extends DataChangeDetectionPolicy { + @doc("The name of the high water mark column.") + highWaterMarkColumnName: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of data change detection policy.") + `@odata.type`: "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy"; +} + +@doc("Defines a data change detection policy that captures changes using the Integrated Change Tracking feature of Azure SQL Database.") +model SqlIntegratedChangeTrackingPolicy extends DataChangeDetectionPolicy { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of data change detection policy.") + `@odata.type`: "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy"; +} + +@doc("Defines a data deletion detection policy that implements a soft-deletion strategy. It determines whether an item should be deleted based on the value of a designated 'soft delete' column.") +model SoftDeleteColumnDeletionDetectionPolicy + extends DataDeletionDetectionPolicy { + @doc("The name of the column to use for soft-deletion detection.") + softDeleteColumnName?: string; + + @doc("The marker value that identifies an item as deleted.") + softDeleteMarkerValue?: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of data deletion detection policy.") + `@odata.type`: "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy"; +} + +@doc("Defines a data deletion detection policy utilizing Azure Blob Storage's native soft delete feature for deletion detection.") +model NativeBlobSoftDeleteDeletionDetectionPolicy + extends DataDeletionDetectionPolicy { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of data deletion detection policy.") + `@odata.type`: "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy"; +} + +@doc("Defines a function that boosts scores based on distance from a geographic location.") +model DistanceScoringFunction extends ScoringFunction { + @doc("Parameter values for the distance scoring function.") + distance: DistanceScoringParameters; + + @doc("Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case.") + type: "distance"; +} + +@doc("Provides parameter values to a distance scoring function.") +model DistanceScoringParameters { + @doc("The name of the parameter passed in search queries to specify the reference location.") + referencePointParameter: string; + + @doc("The distance in kilometers from the reference location where the boosting range ends.") + boostingDistance: float64; +} + +@doc("Defines a function that boosts scores based on the value of a date-time field.") +model FreshnessScoringFunction extends ScoringFunction { + @doc("Parameter values for the freshness scoring function.") + freshness: FreshnessScoringParameters; + + @doc("Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case.") + type: "freshness"; +} + +@doc("Provides parameter values to a freshness scoring function.") +model FreshnessScoringParameters { + @doc("The expiration period after which boosting will stop for a particular document.") + boostingDuration: duration; +} + +@doc("Defines a function that boosts scores based on the magnitude of a numeric field.") +model MagnitudeScoringFunction extends ScoringFunction { + @doc("Parameter values for the magnitude scoring function.") + magnitude: MagnitudeScoringParameters; + + @doc("Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case.") + type: "magnitude"; +} + +@doc("Provides parameter values to a magnitude scoring function.") +model MagnitudeScoringParameters { + @doc("The field value at which boosting starts.") + boostingRangeStart: float64; + + @doc("The field value at which boosting ends.") + boostingRangeEnd: float64; + + @doc("A value indicating whether to apply a constant boost for field values beyond the range end value; default is false.") + constantBoostBeyondRange?: boolean; +} + +@doc("Defines a function that boosts scores of documents with string values matching a given list of tags.") +model TagScoringFunction extends ScoringFunction { + @doc("Parameter values for the tag scoring function.") + tag: TagScoringParameters; + + @doc("Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case.") + type: "tag"; +} + +@doc("Provides parameter values to a tag scoring function.") +model TagScoringParameters { + @doc("The name of the parameter passed in search queries to specify the list of tags to compare against the target field.") + tagsParameter: string; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") +model SearchIndexerKnowledgeStoreParameters { + ...Record; + + @doc("Whether or not projections should synthesize a generated key name if one isn't already present.") + synthesizeGeneratedKeyName?: boolean = false; +} + +@doc("An empty object that represents the default Azure AI service resource for a skillset.") +model DefaultCognitiveServicesAccount extends CognitiveServicesAccount { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of Azure AI service resource attached to a skillset.") + `@odata.type`: "#Microsoft.Azure.Search.DefaultCognitiveServices"; +} + +@doc("The multi-region account key of an Azure AI service resource that's attached to a skillset.") +model CognitiveServicesAccountKey extends CognitiveServicesAccount { + @doc("The key used to provision the Azure AI service resource attached to a skillset.") + key: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of Azure AI service resource attached to a skillset.") + `@odata.type`: "#Microsoft.Azure.Search.CognitiveServicesByKey"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("The account key of an Azure AI service resource that's attached to a skillset, to be used with the resource's subdomain.") +model AIServicesAccountKey extends CognitiveServicesAccount { + @doc("The key used to provision the Azure AI service resource attached to a skillset.") + key: string; + + @doc("The subdomain url for the corresponding AI Service.") + subdomainUrl: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of Azure AI service resource attached to a skillset.") + `@odata.type`: "#Microsoft.Azure.Search.AIServicesByKey"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("The multi-region account of an Azure AI service resource that's attached to a skillset.") +model AIServicesAccountIdentity extends CognitiveServicesAccount { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for connections to AI Service. If not specified, the system-assigned managed identity is used. On updates to the skillset, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; + + @doc("The subdomain url for the corresponding AI Service.") + subdomainUrl: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of Azure AI service resource attached to a skillset.") + `@odata.type`: "#Microsoft.Azure.Search.AIServicesByIdentity"; +} + +@doc("An object that contains information about the matches that were found, and related metadata.") +model CustomEntity { + @doc("The top-level entity descriptor. Matches in the skill output will be grouped by this name, and it should represent the \"normalized\" form of the text being found.") + name: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.") + description?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.") + type?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.") + subtype?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.") + id?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to character casing. Sample case insensitive matches of \"Microsoft\" could be: microsoft, microSoft, MICROSOFT.") + caseSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to accent.") + accentSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Defaults to 0. Maximum value of 5. Denotes the acceptable number of divergent characters that would still constitute a match with the entity name. The smallest possible fuzziness for any given match is returned. For instance, if the edit distance is set to 3, \"Windows10\" would still match \"Windows\", \"Windows10\" and \"Windows 7\". When case sensitivity is set to false, case differences do NOT count towards fuzziness tolerance, but otherwise do.") + fuzzyEditDistance?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Changes the default case sensitivity value for this entity. It be used to change the default value of all aliases caseSensitive values.") + defaultCaseSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Changes the default accent sensitivity value for this entity. It be used to change the default value of all aliases accentSensitive values.") + defaultAccentSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Changes the default fuzzy edit distance value for this entity. It can be used to change the default value of all aliases fuzzyEditDistance values.") + defaultFuzzyEditDistance?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An array of complex objects that can be used to specify alternative spellings or synonyms to the root entity name.") + aliases?: CustomEntityAlias[] | null; +} + +@doc("A complex object that can be used to specify alternative spellings or synonyms to the root entity name.") +model CustomEntityAlias { + @doc("The text of the alias.") + text: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Determine if the alias is case sensitive.") + caseSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Determine if the alias is accent sensitive.") + accentSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Determine the fuzzy edit distance of the alias.") + fuzzyEditDistance?: int32 | null; +} + +@doc("A skill that enables scenarios that require a Boolean operation to determine the data to assign to an output.") +model ConditionalSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.ConditionalSkill"; +} + +@doc("A skill that uses text analytics for key phrase extraction.") +model KeyPhraseExtractionSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: KeyPhraseExtractionSkillLanguage; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A number indicating how many key phrases to return. If absent, all identified key phrases will be returned.") + maxKeyPhraseCount?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.KeyPhraseExtractionSkill"; +} + +@doc("A skill that extracts text from image files.") +model OcrSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: OcrSkillLanguage; + + @doc("A value indicating to turn orientation detection on or not. Default is false.") + detectOrientation?: boolean = false; + + @doc("Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\".") + lineEnding?: OcrLineEnding; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Vision.OcrSkill"; +} + +@doc("A skill that analyzes image files. It extracts a rich set of visual features based on the image content.") +model ImageAnalysisSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: ImageAnalysisSkillLanguage; + + @doc("A list of visual features.") + visualFeatures?: VisualFeature[]; + + @doc("A string indicating which domain-specific details to return.") + details?: ImageDetail[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Vision.ImageAnalysisSkill"; +} + +@doc("A skill that detects the language of input text and reports a single language code for every document submitted on the request. The language code is paired with a score indicating the confidence of the analysis.") +model LanguageDetectionSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A country code to use as a hint to the language detection model if it cannot disambiguate the language.") + defaultCountryHint?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.LanguageDetectionSkill"; +} + +@doc("A skill for reshaping the outputs. It creates a complex type to support composite fields (also known as multipart fields).") +model ShaperSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.ShaperSkill"; +} + +@doc("A skill for merging two or more strings into a single unified string, with an optional user-defined delimiter separating each component part.") +model MergeSkill extends SearchIndexerSkill { + @doc("The tag indicates the start of the merged text. By default, the tag is an empty space.") + insertPreTag?: string = " "; + + @doc("The tag indicates the end of the merged text. By default, the tag is an empty space.") + insertPostTag?: string = " "; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.MergeSkill"; +} + +@doc("This skill is deprecated. Use the V3.EntityRecognitionSkill instead.") +model EntityRecognitionSkill extends SearchIndexerSkill { + @doc("A list of entity categories that should be extracted.") + categories?: EntityCategory[]; + + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: EntityRecognitionSkillLanguage; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Determines whether or not to include entities which are well known but don't conform to a pre-defined type. If this configuration is not set (default), set to null or set to false, entities which don't conform to one of the pre-defined types will not be surfaced.") + includeTypelessEntities?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.") + minimumPrecision?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.EntityRecognitionSkill"; +} + +@doc("This skill is deprecated. Use the V3.SentimentSkill instead.") +model SentimentSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: SentimentSkillLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.SentimentSkill"; +} + +@doc("Using the Text Analytics API, evaluates unstructured text and for each record, provides sentiment labels (such as \"negative\", \"neutral\" and \"positive\") based on the highest confidence score found by the service at a sentence and document-level.") +model SentimentSkillV3 extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: string | null; + + @doc("If set to true, the skill output will include information from Text Analytics for opinion mining, namely targets (nouns or verbs) and their associated assessment (adjective) in the text. Default is false.") + includeOpinionMining?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.V3.SentimentSkill"; +} + +@doc("Using the Text Analytics API, extracts linked entities from text.") +model EntityLinkingSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: string | null; + + @doc("A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.") + @minValue(0) + @maxValue(1) + minimumPrecision?: float64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.V3.EntityLinkingSkill"; +} + +@doc("Using the Text Analytics API, extracts entities of different types from text.") +model EntityRecognitionSkillV3 extends SearchIndexerSkill { + @doc("A list of entity categories that should be extracted.") + categories?: string[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: string | null; + + @doc("A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.") + @minValue(0) + @maxValue(1) + minimumPrecision?: float64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics API. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.V3.EntityRecognitionSkill"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Using the Text Analytics API, extracts personal information from an input text and gives you the option of masking it.") +model PIIDetectionSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: string | null; + + @doc("A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.") + @minValue(0) + @maxValue(1) + minimumPrecision?: float64; + + @doc("A parameter that provides various ways to mask the personal information detected in the input text. Default is 'none'.") + maskingMode?: PIIDetectionSkillMaskingMode; + + @doc("The character used to mask the text if the maskingMode parameter is set to replace. Default is '*'.") + @maxLength(1) + maskingCharacter?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + @doc("A list of PII entity categories that should be extracted and masked.") + piiCategories?: string[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("If specified, will set the PII domain to include only a subset of the entity categories. Possible values include: 'phi', 'none'. Default is 'none'.") + domain?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.PIIDetectionSkill"; +} + +@doc("A skill to split a string into chunks of text.") +model SplitSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: SplitSkillLanguage; + + @doc("A value indicating which split mode to perform.") + textSplitMode?: TextSplitMode; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The desired maximum page length. Default is 10000.") + maximumPageLength?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Only applicable when textSplitMode is set to 'pages'. If specified, n+1th chunk will start with this number of characters/tokens from the end of the nth chunk.") + pageOverlapLength?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Only applicable when textSplitMode is set to 'pages'. If specified, the SplitSkill will discontinue splitting after processing the first 'maximumPagesToTake' pages, in order to improve performance when only a few initial pages are needed from each document.") + maximumPagesToTake?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Only applies if textSplitMode is set to pages. There are two possible values. The choice of the values will decide the length (maximumPageLength and pageOverlapLength) measurement. The default is 'characters', which means the length will be measured by character.") + unit?: SplitSkillUnit | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("Only applies if the unit is set to azureOpenAITokens. If specified, the splitSkill will use these parameters when performing the tokenization. The parameters are a valid 'encoderModelName' and an optional 'allowedSpecialTokens' property.") + azureOpenAITokenizerParameters?: AzureOpenAITokenizerParameters | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.SplitSkill"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Azure OpenAI Tokenizer parameters.") +model AzureOpenAITokenizerParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Only applies if the unit is set to azureOpenAITokens. Options include 'R50k_base', 'P50k_base', 'P50k_edit' and 'CL100k_base'. The default value is 'CL100k_base'.") + encoderModelName?: SplitSkillEncoderModelName | null; + + @doc("(Optional) Only applies if the unit is set to azureOpenAITokens. This parameter defines a collection of special tokens that are permitted within the tokenization process.") + allowedSpecialTokens?: string[]; +} + +@doc("A skill looks for text from a custom, user-defined list of words and phrases.") +model CustomEntityLookupSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: CustomEntityLookupSkillLanguage | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Path to a JSON or CSV file containing all the target text to match against. This entity definition is read at the beginning of an indexer run. Any updates to this file during an indexer run will not take effect until subsequent runs. This config must be accessible over HTTPS.") + entitiesDefinitionUri?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The inline CustomEntity definition.") + inlineEntitiesDefinition?: CustomEntity[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A global flag for CaseSensitive. If CaseSensitive is not set in CustomEntity, this value will be the default value.") + globalDefaultCaseSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A global flag for AccentSensitive. If AccentSensitive is not set in CustomEntity, this value will be the default value.") + globalDefaultAccentSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A global flag for FuzzyEditDistance. If FuzzyEditDistance is not set in CustomEntity, this value will be the default value.") + globalDefaultFuzzyEditDistance?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.CustomEntityLookupSkill"; +} + +@doc("A skill to translate text from one language to another.") +model TextTranslationSkill extends SearchIndexerSkill { + @doc("The language code to translate documents into for documents that don't specify the to language explicitly.") + defaultToLanguageCode: TextTranslationSkillLanguage; + + @doc("The language code to translate documents from for documents that don't specify the from language explicitly.") + defaultFromLanguageCode?: TextTranslationSkillLanguage; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The language code to translate documents from when neither the fromLanguageCode input nor the defaultFromLanguageCode parameter are provided, and the automatic language detection is unsuccessful. Default is `en`.") + suggestedFrom?: TextTranslationSkillLanguage | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.TranslationSkill"; +} + +@doc("A skill that extracts content from a file within the enrichment pipeline.") +model DocumentExtractionSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The parsingMode for the skill. Will be set to 'default' if not defined.") + parsingMode?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The type of data to be extracted for the skill. Will be set to 'contentAndMetadata' if not defined.") + dataToExtract?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of configurations for the skill.") + configuration?: Record | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.DocumentExtractionSkill"; +} + +@doc("A skill that extracts content and layout information, via Azure AI Services, from files within the enrichment pipeline.") +model DocumentIntelligenceLayoutSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the output format. Default is 'markdown'.") + outputFormat?: DocumentIntelligenceLayoutSkillOutputFormat | null = DocumentIntelligenceLayoutSkillOutputFormat.Markdown; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality of the output produced by the skill. Default is 'oneToMany'.") + outputMode?: DocumentIntelligenceLayoutSkillOutputMode | null = DocumentIntelligenceLayoutSkillOutputMode.OneToMany; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The depth of headers in the markdown output. Default is h6.") + markdownHeaderDepth?: DocumentIntelligenceLayoutSkillMarkdownHeaderDepth | null = DocumentIntelligenceLayoutSkillMarkdownHeaderDepth.H6; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality of the content extracted from the document by the skill.") + extractionOptions?: DocumentIntelligenceLayoutSkillExtractionOptions[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality for chunking the content.") + chunkingProperties?: DocumentIntelligenceLayoutSkillChunkingProperties | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill"; +} + +@doc("A skill that can call a Web API endpoint, allowing you to extend a skillset by having it call your custom code.") +model WebApiSkill extends SearchIndexerSkill { + @doc("The url for the Web API.") + uri: string; + + @doc("The headers required to make the http request.") + httpHeaders?: WebApiHttpHeaders; + + @doc("The method for the http request.") + httpMethod?: string; + + @doc("The desired timeout for the request. Default is 30 seconds.") + timeout?: duration; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The desired batch size which indicates number of documents.") + batchSize?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("If set, the number of parallel calls that can be made to the Web API.") + degreeOfParallelism?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.") + authResourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + authIdentity?: SearchIndexerDataIdentity | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Custom.WebApiSkill"; +} + +@doc("The AML skill allows you to extend AI enrichment with a custom Azure Machine Learning (AML) model. Once an AML model is trained and deployed, an AML skill integrates it into AI enrichment.") +model AzureMachineLearningSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed.") + uri?: url | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for key authentication) The key for the AML service.") + key?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}.") + resourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional) When specified, indicates the timeout for the http client making the API call.") + timeout?: duration | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional for token authentication). The region the AML service is deployed in.") + region?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional) When specified, indicates the number of calls the indexer will make in parallel to the endpoint you have provided. You can decrease this value if your endpoint is failing under too high of a request load, or raise it if your endpoint is able to accept more requests and you would like an increase in the performance of the indexer. If not set, a default value of 5 is used. The degreeOfParallelism can be set to a maximum of 10 and a minimum of 1.") + degreeOfParallelism?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Custom.AmlSkill"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Allows you to generate a vector embedding for a given text input using the Azure OpenAI resource.") +model AzureOpenAIEmbeddingSkill extends SearchIndexerSkill { + ...AzureOpenAIVectorizerParameters; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.") + dimensions?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill"; +} + +@doc("Allows you to generate a vector embedding for a given image or text input using the Azure AI Services Vision Vectorize API.") +model VisionVectorizeSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified.") + modelVersion: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Vision.VectorizeSkill"; +} + +@doc("A skill that leverages Azure AI Content Understanding to process and extract structured insights from documents, enabling enriched, searchable content for enhanced document indexing and retrieval.") +model ContentUnderstandingSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality of the content extracted from the document by the skill.") + extractionOptions?: ContentUnderstandingSkillExtractionOptions[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality for chunking the content.") + chunkingProperties?: ContentUnderstandingSkillChunkingProperties | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.ContentUnderstandingSkill"; +} + +@doc("Controls the cardinality of the content extracted from the document by the skill.") +union ContentUnderstandingSkillExtractionOptions { + string, + + @doc("Specify that image content should be extracted from the document.") + Images: "images", + + @doc("Specify that location metadata should be extracted from the document.") + LocationMetadata: "locationMetadata", +} + +@doc("Controls the cardinality for chunking the content.") +model ContentUnderstandingSkillChunkingProperties { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The unit of the chunk.") + unit?: ContentUnderstandingSkillChunkingUnit | null = ContentUnderstandingSkillChunkingUnit.Characters; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum chunk length in characters. Default is 500.") + maximumLength?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The length of overlap provided between two text chunks. Default is 0.") + overlapLength?: int32 | null; +} + +@doc("Controls the cardinality of the chunk unit. Default is 'characters'") +union ContentUnderstandingSkillChunkingUnit { + string, + + @doc("Specifies chunk by characters.") + Characters: "characters", +} + +@doc("Object defining the custom schema the model will use to structure its output.") +model ChatCompletionSchema { + @doc("Type of schema representation. Usually 'object'. Default is 'object'.") + type?: string = "object"; + + @doc("A JSON-formatted string that defines the output schema's properties and constraints for the model.") + properties?: string; + + @doc("An array of the property names that are required to be part of the model's response. All properties must be included for structured outputs.") + required?: string[]; + + @doc("Controls whether it is allowable for an object to contain additional keys / values that were not defined in the JSON Schema. Default is false.") + additionalProperties?: boolean = false; +} + +@doc("Determines how the language model's response should be serialized. Defaults to 'text'.") +model ChatCompletionResponseFormat { + @doc("Specifies how the LLM should format the response.") + type?: ChatCompletionResponseFormatType = ChatCompletionResponseFormatType.Text; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An open dictionary for extended properties. Required if 'type' == 'json_schema'") + jsonSchemaProperties?: ChatCompletionSchemaProperties | null; +} + +@doc("Properties for JSON schema response format.") +model ChatCompletionSchemaProperties { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Name of the json schema the model will adhere to.") + name?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Description of the json schema the model will adhere to.") + description?: string | null; + + @doc("Whether or not the model's response should use structured outputs. Default is true.") + strict?: boolean = true; + + @doc("The schema definition.") + schema?: ChatCompletionSchema; +} + +@doc("Common language model parameters for Chat Completions. If omitted, default values are used.") +model ChatCompletionCommonModelParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the model to use (e.g., 'gpt-4o', etc.). Default is null if not specified.") + @encodedName("application/json", "model") + modelName?: string | null = null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A float in the range [-2,2] that reduces or increases likelihood of repeated tokens. Default is 0.") + frequencyPenalty?: float64 | null = 0; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A float in the range [-2,2] that penalizes new tokens based on their existing presence. Default is 0.") + presencePenalty?: float64 | null = 0; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Maximum number of tokens to generate.") + maxTokens?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Sampling temperature. Default is 0.7.") + temperature?: float64 | null = 0.7; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Random seed for controlling deterministic outputs. If omitted, randomization is used.") + seed?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("List of stop sequences that will cut off text generation. Default is none.") + stop?: string[] | null; +} + +@doc("A skill that calls a language model via Azure AI Foundry's Chat Completions endpoint.") +model ChatCompletionSkill extends SearchIndexerSkill { + @doc("The url for the Web API.") + uri: string; + + @doc("The headers required to make the http request.") + httpHeaders?: WebApiHttpHeaders; + + @doc("The method for the http request.") + httpMethod?: string; + + @doc("The desired timeout for the request. Default is 30 seconds.") + timeout?: duration; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The desired batch size which indicates number of documents.") + batchSize?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("If set, the number of parallel calls that can be made to the Web API.") + degreeOfParallelism?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.") + authResourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + authIdentity?: SearchIndexerDataIdentity | null; + + @doc("API key for authenticating to the model. Both apiKey and authIdentity cannot be specified at the same time.") + apiKey?: string; + + @doc("Common language model parameters that customers can tweak. If omitted, reasonable defaults will be applied.") + commonModelParameters?: ChatCompletionCommonModelParameters; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("Open-type dictionary for model-specific parameters that should be appended to the chat completions call. Follows Azure AI Foundry's extensibility pattern.") + extraParameters?: Record | null; + + @doc("How extra parameters are handled by Azure AI Foundry. Default is 'error'.") + extraParametersBehavior?: ChatCompletionExtraParametersBehavior = ChatCompletionExtraParametersBehavior.Error; + + @doc("Determines how the LLM should format its response. Defaults to 'text' response type.") + responseFormat?: ChatCompletionResponseFormat; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Custom.ChatCompletionSkill"; +} + +@doc("Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.") +model IndexStatisticsSummary { + @doc("The name of the index.") + name: string; + + @doc("The number of documents in the index.") + @visibility(Lifecycle.Read) + documentCount: int64; + + @doc("The amount of storage in bytes consumed by the index.") + @visibility(Lifecycle.Read) + storageSize: int64; + + @doc("The amount of memory in bytes consumed by vectors in the index.") + @visibility(Lifecycle.Read) + vectorIndexSize: int64; +} + +@doc("Response from a request to retrieve stats summary of all indexes. If successful, it includes the stats of each index in the service.") +model ListIndexStatsSummary { + @doc("The Statistics summary of all indexes in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: IndexStatisticsSummary[]; +} + +@doc("Controls the cardinality for chunking the content.") +model DocumentIntelligenceLayoutSkillChunkingProperties { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The unit of the chunk.") + unit?: DocumentIntelligenceLayoutSkillChunkingUnit | null = DocumentIntelligenceLayoutSkillChunkingUnit.Characters; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum chunk length in characters. Default is 500.") + maximumLength?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The length of overlap provided between two text chunks. Default is 0.") + overlapLength?: int32 | null; +} + +@doc("A dictionary of http request headers.") +model WebApiHttpHeaders { + ...Record; +} diff --git a/specification/search/data-plane/Search/models-shared.tsp b/specification/search/data-plane/Search/models-shared.tsp new file mode 100644 index 000000000000..fc056b6763dc --- /dev/null +++ b/specification/search/data-plane/Search/models-shared.tsp @@ -0,0 +1,259 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; + +using TypeSpec.Http; +using Azure.Core; +using Azure.ClientGenerator.Core; + +namespace Search; + +alias matchingHeader = { + @doc("Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.") + @header("If-Match") + ifMatch?: string; + + @doc("Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.") + @header("If-None-Match") + ifNoneMatch?: string; +}; + +alias preferHeader = { + @doc("For HTTP PUT requests, instructs the service to return the created/updated resource on success.") + @header("Prefer") + prefer: "return=representation"; +}; + +alias selectQuery = { + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.") + @query + @encode(ArrayEncoding.commaDelimited) + $select?: string; +}; + +alias indexNamePath = { + @doc("The name of the index.") + @clientName("name") + @path + indexName: string; +}; + +alias indexerNamePath = { + @doc("The name of the indexer.") + @clientName("name") + @path + indexerName: string; +}; + +alias dataSourceNamePath = { + @doc("The name of the datasource.") + @clientName("name") + @path + dataSourceName: string; +}; + +alias skillsetNamePath = { + @doc("The name of the skillset.") + @clientName("name") + @path + skillsetName: string; +}; + +alias synonymMapNamePath = { + @doc("The name of the synonym map.") + @clientName("name") + @path + synonymMapName: string; +}; + +alias aliasNamePath = { + @doc("The name of the alias.") + @clientName("name") + @path + aliasName: string; +}; + +alias sourceNamePath = { + @doc("The name of the knowledge source.") + @clientName("name") + @path + sourceName: string; +}; + +alias knowledgeBaseNamePath = { + @doc("The name of the knowledge base.") + @clientName("name") + @path + knowledgeBaseName: string; +}; + +alias querySourceAuthorizationHeader = { + @doc("Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.") + @header("x-ms-query-source-authorization") + querySourceAuthorization?: string; +}; + +alias enableElevatedReadHeader = { + @doc("A value that enables elevated read that bypass document level permission checks for the query operation.") + @header("x-ms-enable-elevated-read") + enableElevatedRead?: boolean; +}; + +@doc("Client initialization options for SearchIndexClient.") +model SearchIndexClientOptions { + @doc("The name of the index.") + @paramAlias("indexName") + indexName: string; +} + +alias SearchOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader, + TResponse, + Traits, + TError +>; + +alias SearchIndexOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & indexNamePath, + TResponse, + Traits, + TError +>; + +alias SearchIndexerOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & indexerNamePath, + TResponse, + Traits, + TError +>; + +alias SearchDataSourceOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & dataSourceNamePath, + TResponse, + Traits, + TError +>; + +alias SearchSkillsetOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & skillsetNamePath, + TResponse, + Traits, + TError +>; + +alias SearchSynonymMapOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & synonymMapNamePath, + TResponse, + Traits, + TError +>; + +alias SearchAliasOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & aliasNamePath, + TResponse, + Traits, + TError +>; + +alias SearchSourceOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & sourceNamePath, + TResponse, + Traits, + TError +>; + +alias SearchKnowledgeBaseOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & knowledgeBaseNamePath, + TResponse, + Traits, + TError +>; + +@doc("Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).") +@error +model ErrorResponse { + @doc("The error object.") + error?: ErrorDetail; +} + +@doc("The error detail.") +model ErrorDetail { + @doc("The error code.") + @visibility(Lifecycle.Read) + code?: string; + + @doc("The error message.") + @visibility(Lifecycle.Read) + message?: string; + + @doc("The error target.") + @visibility(Lifecycle.Read) + target?: string; + + @doc("The error details.") + @visibility(Lifecycle.Read) + details?: ErrorDetail[]; + + @doc("The error additional info.") + @visibility(Lifecycle.Read) + additionalInfo?: ErrorAdditionalInfo[]; +} + +@doc("The resource management error additional info.") +model ErrorAdditionalInfo { + @doc("The additional info type.") + @visibility(Lifecycle.Read) + type?: string; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("The additional info.") + @visibility(Lifecycle.Read) + info?: Record; +} diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsGet.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsGet.json index 9cc5ba4aabac..62755d8475ae 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsGet.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsGet.json @@ -1,4 +1,6 @@ { + "operationId": "Documents_AutocompleteGet", + "title": "SearchIndexAutocompleteDocumentsGet", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsPost.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsPost.json index 70a35efbb805..1f6d0da6fe1e 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsPost.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsPost.json @@ -6,7 +6,7 @@ "indexName": "preview-test", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "autocompleteRequest": { + "body": { "search": "p", "autocompleteMode": "oneTerm", "filter": "ownerId ne '1'", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsGet.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsGet.json index 8b58dd48237b..7e702dd46109 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsGet.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsGet.json @@ -1,4 +1,6 @@ { + "operationId": "Documents_SearchGet", + "title": "SearchIndexSearchDocumentsGet", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsPost.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsPost.json index 0f7d05fbd8a1..6b63ff5e7598 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsPost.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsPost.json @@ -8,7 +8,7 @@ "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", "x-ms-query-source-authorization": "00000000-0000-0000-0000-000000000000", "x-ms-enable-elevated-read": true, - "searchRequest": { + "body": { "count": true, "facets": [ "ownerId", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticGet.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticGet.json index e59e97280993..b0ff6ad39cc8 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticGet.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticGet.json @@ -1,4 +1,6 @@ { + "operationId": "Documents_SearchGet", + "title": "SearchIndexSearchDocumentsSemanticGet", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticPost.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticPost.json index a987e39975e8..5e166522badc 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticPost.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticPost.json @@ -1,9 +1,11 @@ { + "operationId": "Documents_SearchPost", + "title": "SearchIndexSearchDocumentsSemanticPost", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", "api-version": "2025-11-01-preview", - "searchRequest": { + "body": { "count": true, "highlightPostTag": "", "highlightPreTag": "", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsGet.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsGet.json index c517f3434093..e83526263df9 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsGet.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsGet.json @@ -1,4 +1,6 @@ { + "operationId": "Documents_SuggestGet", + "title": "SearchIndexSuggestDocumentsGet", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsPost.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsPost.json index badb59cdadd5..5f75e84ccb39 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsPost.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsPost.json @@ -6,7 +6,7 @@ "indexName": "preview-test", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "suggestRequest": { + "body": { "filter": "ownerId eq 'sam' and id lt '15'", "fuzzy": true, "highlightPostTag": "", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeBase.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeBase.json index 08ff93f829ea..81f4c90d356d 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeBase.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeBase.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeBase": { + "knowledgeBase": { "name": "base-preview-test", "knowledgeSources": [ { diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSource.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSource.json index 89c180046636..1c354bba5efa 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSource.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSource.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "searchIndexParameters": { "searchIndexName": "preview-test", "sourceDataFields": [ diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json index 4c9f89a1267d..107a63564eb5 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "azureBlobParameters": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", "containerName": "test-container", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json index b8f7dc682df1..d424949afe6f 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "indexedOneLakeParameters": { "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", "lakehouseId": "fakeLakehouseId", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json index d48f38a196f2..ebeeddffdd0e 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "indexedSharePointParameters": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", "containerName": "defaultSiteLibrary", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceWeb.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceWeb.json index fa52760088ee..4624d23074db 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceWeb.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceWeb.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "webParameters": { "domains": { "allowedDomains": [ diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeBase.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeBase.json index 4a44b1e02623..81c562aaf2a9 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeBase.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeBase.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeBase": { + "knowledgeBase": { "name": "base-preview-test", "knowledgeSources": [ { diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSource.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSource.json index 81bbf07db57b..7e8e99f499b4 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSource.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSource.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "searchIndexParameters": { "searchIndexName": "preview-test", "sourceDataFields": [ diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json index fd53a8c5caf5..ba4ed6d5f5a8 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "azureBlobParameters": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", "containerName": "test-container", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json index f2cb9014bd13..7d084b6bbd61 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "indexedOneLakeParameters": { "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", "lakehouseId": "fakeLakehouseId", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json index b54651b40c0a..917335c4c4a0 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "indexedSharePointParameters": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", "containerName": "defaultSiteLibrary", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json index ac06edf25fa5..12563a3596b8 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "webParameters": { "domains": { "allowedDomains": [ diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/knowledgebase.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/knowledgebase.json deleted file mode 100644 index 1403aa8cbf9a..000000000000 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/knowledgebase.json +++ /dev/null @@ -1,1139 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "KnowledgeBaseRetrievalClient", - "description": "Client that can be used to query an knowledge base.", - "version": "2025-11-01-preview", - "x-ms-code-generation-settings": { - "useDateTimeOffset": true, - "syncMethods": "None" - } - }, - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}/knowledgebases('{knowledgeBaseName}')", - "useSchemePrefix": false, - "parameters": [ - { - "$ref": "#/parameters/EndpointParameter" - }, - { - "$ref": "#/parameters/KnowledgeBaseNameParameter" - } - ] - }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/retrieve": { - "post": { - "tags": [ - "KnowledgeRetrieval" - ], - "operationId": "KnowledgeRetrieval_Retrieve", - "x-ms-examples": { - "KnowledgeBaseRetrieve": { - "$ref": "./examples/KnowledgeBaseRetrieve.json" - }, - "KnowledgeBaseRetrieveWithIntents": { - "$ref": "./examples/KnowledgeBaseRetrieveWithIntents.json" - } - }, - "description": "KnowledgeBase retrieves relevant data from backing stores.", - "parameters": [ - { - "name": "retrievalRequest", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KnowledgeBaseRetrievalRequest" - }, - "description": "The retrieval request to process." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/QuerySourceAuthorizationParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "The retrieval response is successfully returned.", - "schema": { - "$ref": "#/definitions/KnowledgeBaseRetrievalResponse" - } - }, - "206": { - "description": "A partial retrieval response is returned.", - "schema": { - "$ref": "#/definitions/KnowledgeBaseRetrievalResponse" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - } - }, - "definitions": { - "KnowledgeBaseRetrievalRequest": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseMessage" - }, - "description": "A list of chat message style input." - }, - "intents": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeRetrievalIntent" - }, - "description": "A list of intended queries to execute without model query planning." - }, - "maxRuntimeInSeconds": { - "type": "integer", - "format": "int32", - "description": "The maximum runtime in seconds." - }, - "maxOutputSize": { - "type": "integer", - "format": "int32", - "description": "Limits the maximum size of the content in the output." - }, - "retrievalReasoningEffort": { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - }, - "includeActivity": { - "type": "boolean", - "description": "Indicates retrieval results should include activity information." - }, - "outputMode": { - "$ref": "#/definitions/KnowledgeRetrievalOutputMode" - }, - "knowledgeSourceParams": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeSourceParams" - }, - "description": "A list of runtime parameters for the knowledge sources." - } - }, - "description": "The input contract for the retrieval request." - }, - "KnowledgeRetrievalReasoningEffort": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffortKind", - "x-nullable": false, - "description": "The kind of reasoning effort." - } - }, - "required": [ - "kind" - ] - }, - "KnowledgeRetrievalMinimalReasoningEffort": { - "type": "object", - "x-ms-discriminator-value": "minimal", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - } - ], - "description": "Run knowledge retrieval with minimal reasoning effort." - }, - "KnowledgeRetrievalLowReasoningEffort": { - "type": "object", - "x-ms-discriminator-value": "low", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - } - ], - "description": "Run knowledge retrieval with low reasoning effort." - }, - "KnowledgeRetrievalMediumReasoningEffort": { - "type": "object", - "x-ms-discriminator-value": "medium", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - } - ], - "description": "Run knowledge retrieval with medium reasoning effort." - }, - "KnowledgeRetrievalReasoningEffortKind": { - "type": "string", - "enum": [ - "minimal", - "low", - "medium" - ], - "x-ms-enum": { - "name": "KnowledgeRetrievalReasoningEffortKind", - "modelAsString": true, - "values": [ - { - "value": "minimal", - "name": "Minimal", - "description": "Does not perform any source selections, query planning, or iterative search." - }, - { - "value": "low", - "name": "Low", - "description": "Use low reasoning during retrieval." - }, - { - "value": "medium", - "name": "Medium", - "description": "Use a moderate amount of reasoning during retrieval." - } - ] - }, - "description": "The amount of effort to use during retrieval." - }, - "KnowledgeRetrievalOutputMode": { - "type": "string", - "enum": [ - "extractiveData", - "answerSynthesis" - ], - "x-ms-enum": { - "name": "KnowledgeRetrievalOutputMode", - "modelAsString": true, - "values": [ - { - "value": "extractiveData", - "name": "ExtractiveData", - "description": "Return data from the knowledge sources directly without generative alteration." - }, - { - "value": "answerSynthesis", - "name": "AnswerSynthesis", - "description": "Synthesize an answer for the response payload." - } - ] - }, - "description": "The output configuration for this retrieval." - }, - "KnowledgeBaseRetrievalResponse": { - "type": "object", - "properties": { - "response": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseMessage" - } - }, - "activity": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - }, - "description": "The activity records for tracking progress and billing implications." - }, - "references": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseReference" - }, - "description": "The references for the retrieval data used in the response." - } - }, - "description": "The output contract for the retrieval response." - }, - "KnowledgeSourceParams": { - "type": "object", - "discriminator": "kind", - "properties": { - "knowledgeSourceName": { - "type": "string", - "description": "The name of the index the params apply to." - }, - "includeReferences": { - "type": "boolean", - "description": "Indicates whether references should be included for data retrieved from this source." - }, - "includeReferenceSourceData": { - "type": "boolean", - "description": "Indicates whether references should include the structured data obtained during retrieval in their payload." - }, - "alwaysQuerySource": { - "type": "boolean", - "description": "Indicates that this knowledge source should bypass source selection and always be queried at retrieval time." - }, - "rerankerThreshold": { - "type": "number", - "format": "float", - "description": "The reranker threshold all retrieved documents must meet to be included in the response." - }, - "kind": { - "$ref": "searchservice.json#/definitions/KnowledgeSourceKind", - "x-nullable": false, - "description": "The type of the knowledge source." - } - }, - "required": [ - "knowledgeSourceName", - "kind" - ] - }, - "SearchIndexKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "searchIndex", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "properties": { - "filterAddOn": { - "type": "string", - "description": "A filter condition applied to the index (e.g., 'State eq VA')." - } - }, - "description": "Specifies runtime parameters for a search index knowledge source" - }, - "AzureBlobKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "azureBlob", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "description": "Specifies runtime parameters for a azure blob knowledge source" - }, - "IndexedSharePointKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "indexedSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "description": "Specifies runtime parameters for a indexed SharePoint knowledge source" - }, - "IndexedOneLakeKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "indexedOneLake", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "description": "Specifies runtime parameters for a indexed OneLake knowledge source" - }, - "WebKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "web", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "properties": { - "language": { - "type": "string", - "description": "The language of the web results." - }, - "market": { - "type": "string", - "description": "The market of the web results." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The number of web results to return." - }, - "freshness": { - "type": "string", - "description": "The freshness of web results." - } - }, - "description": "Specifies runtime parameters for a web knowledge source" - }, - "RemoteSharePointKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "remoteSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "properties": { - "filterExpressionAddOn": { - "type": "string", - "description": "A filter condition applied to the SharePoint data source. It must be specified in the Keyword Query Language syntax. It will be combined as a conjunction with the filter expression specified in the knowledge source definition." - } - }, - "description": "Specifies runtime parameters for a remote SharePoint knowledge source" - }, - "KnowledgeRetrievalIntent": { - "type": "object", - "discriminator": "type", - "properties": { - "type": { - "$ref": "#/definitions/KnowledgeRetrievalIntentType", - "description": "The type of the intent.", - "x-nullable": false - } - }, - "required": [ - "type" - ], - "description": "An intended query to execute without model query planning." - }, - "KnowledgeRetrievalIntentType": { - "type": "string", - "enum": [ - "semantic" - ], - "x-ms-enum": { - "name": "KnowledgeRetrievalIntentType", - "modelAsString": true, - "values": [ - { - "value": "semantic", - "name": "Semantic", - "description": "A natural language semantic query intent." - } - ] - }, - "description": "The kind of knowledge base configuration to use." - }, - "KnowledgeRetrievalSemanticIntent": { - "type": "object", - "x-ms-discriminator-value": "semantic", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeRetrievalIntent" - } - ], - "properties": { - "search": { - "type": "string", - "description": "The semantic query to execute" - } - }, - "required": [ - "search" - ] - }, - "KnowledgeBaseMessage": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the tool response." - }, - "content": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseMessageContent" - } - } - }, - "required": [ - "content" - ], - "description": "The natural language message style object." - }, - "KnowledgeBaseMessageContent": { - "type": "object", - "discriminator": "type", - "properties": { - "type": { - "$ref": "#/definitions/KnowledgeBaseMessageContentType", - "description": "The type of the message", - "x-nullable": false - } - }, - "required": [ - "type" - ], - "description": "Specifies the type of the message content." - }, - "KnowledgeBaseMessageContentType": { - "type": "string", - "enum": [ - "text", - "image" - ], - "x-ms-enum": { - "name": "KnowledgeBaseMessageContentType", - "modelAsString": true, - "values": [ - { - "value": "text", - "name": "Text", - "description": "Text message content kind." - }, - { - "value": "image", - "name": "Image", - "description": "Image message content kind." - } - ] - }, - "description": "The type of message content." - }, - "KnowledgeBaseMessageTextContent": { - "type": "object", - "x-ms-discriminator-value": "text", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseMessageContent" - } - ], - "properties": { - "text": { - "type": "string" - } - }, - "required": [ - "text" - ], - "description": "Text message type." - }, - "KnowledgeBaseMessageImageContent": { - "type": "object", - "x-ms-discriminator-value": "image", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseMessageContent" - } - ], - "properties": { - "image": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "The url of the image." - } - }, - "required": [ - "url" - ] - } - }, - "required": [ - "image" - ], - "description": "Text message type." - }, - "KnowledgeBaseActivityRecord": { - "type": "object", - "discriminator": "type", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the activity record." - }, - "type": { - "type": "string", - "description": "The type of the activity record." - }, - "elapsedMs": { - "type": "integer", - "format": "int32", - "description": "The elapsed time in milliseconds for the retrieval activity." - }, - "error": { - "$ref": "#/definitions/KnowledgeBaseErrorDetail", - "description": "The error detail explaining why the operation failed. This property is only included when the activity does not succeed." - } - }, - "required": [ - "id", - "type" - ], - "description": "Base type for activity records." - }, - "KnowledgeBaseRetrievalActivityRecord": { - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - } - ], - "properties": { - "knowledgeSourceName": { - "type": "string", - "description": "The knowledge source for the retrieval activity." - }, - "queryTime": { - "type": "string", - "format": "date-time", - "description": "The query time for this retrieval activity." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The count of documents retrieved that were sufficiently relevant to pass the reranker threshold." - } - }, - "description": "Represents a retrieval activity record." - }, - "KnowledgeBaseSearchIndexActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "searchIndex", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "searchIndexArguments": { - "$ref": "#/definitions/KnowledgeBaseSearchIndexActivityArguments", - "description": "The search index arguments for the retrieval activity." - } - }, - "description": "Represents a search index retrieval activity record." - }, - "KnowledgeBaseSearchIndexActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query the search index." - }, - "filter": { - "type": "string", - "description": "The filter string." - }, - "sourceDataFields": { - "type": "array", - "items": { - "$ref": "searchservice.json#/definitions/SearchIndexFieldReference" - }, - "description": "What fields were selected for search." - }, - "searchFields": { - "type": "array", - "items": { - "$ref": "searchservice.json#/definitions/SearchIndexFieldReference" - }, - "description": "What fields were searched against." - }, - "semanticConfigurationName": { - "type": "string", - "description": "What semantic configuration was used from the search index." - } - }, - "description": "Represents the arguments the search index retrieval activity was run with." - }, - "KnowledgeBaseAzureBlobActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "azureBlob", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "azureBlobArguments": { - "$ref": "#/definitions/KnowledgeBaseAzureBlobActivityArguments", - "description": "The azure blob arguments for the retrieval activity." - } - }, - "description": "Represents a azure blob retrieval activity record." - }, - "KnowledgeBaseAzureBlobActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query blob contents." - } - }, - "description": "Represents the arguments the azure blob retrieval activity was run with." - }, - "KnowledgeBaseIndexedSharePointActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "indexedSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "indexedSharePointArguments": { - "$ref": "#/definitions/KnowledgeBaseIndexedSharePointActivityArguments", - "description": "The indexed SharePoint arguments for the retrieval activity." - } - }, - "description": "Represents a indexed SharePoint retrieval activity record." - }, - "KnowledgeBaseIndexedSharePointActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query indexed SharePoint contents." - } - }, - "description": "Represents the arguments the indexed SharePoint retrieval activity was run with." - }, - "KnowledgeBaseIndexedOneLakeActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "indexedOneLake", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "indexedOneLakeArguments": { - "$ref": "#/definitions/KnowledgeBaseIndexedOneLakeActivityArguments", - "description": "The indexed OneLake arguments for the retrieval activity." - } - }, - "description": "Represents a indexed OneLake retrieval activity record." - }, - "KnowledgeBaseIndexedOneLakeActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query indexed OneLake contents." - } - }, - "description": "Represents the arguments the indexed OneLake retrieval activity was run with." - }, - "KnowledgeBaseWebActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "web", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "webArguments": { - "$ref": "#/definitions/KnowledgeBaseWebActivityArguments", - "description": "The web arguments for the retrieval activity." - } - }, - "description": "Represents a web retrieval activity record." - }, - "KnowledgeBaseWebActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query the web." - }, - "language": { - "type": "string", - "description": "The language for the retrieval activity." - }, - "market": { - "type": "string", - "description": "The market for the retrieval activity." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The number of web results returned." - }, - "freshness": { - "type": "string", - "description": "The freshness for the retrieval activity." - } - }, - "description": "Represents the arguments the web retrieval activity was run with." - }, - "KnowledgeBaseRemoteSharePointActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "remoteSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "remoteSharePointArguments": { - "$ref": "#/definitions/KnowledgeBaseRemoteSharePointActivityArguments", - "description": "The remote SharePoint arguments for the retrieval activity." - } - }, - "description": "Represents a remote SharePoint retrieval activity record." - }, - "KnowledgeBaseRemoteSharePointActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query the remote SharePoint knowledge source." - }, - "filterExpressionAddOn": { - "type": "string", - "description": "The filter expression add-on for the retrieval activity." - } - }, - "description": "Represents the arguments the remote SharePoint retrieval activity was run with." - }, - "KnowledgeBaseModelQueryPlanningActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "modelQueryPlanning", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - } - ], - "properties": { - "inputTokens": { - "type": "integer", - "format": "int32", - "description": "The number of input tokens for the LLM query planning activity." - }, - "outputTokens": { - "type": "integer", - "format": "int32", - "description": "The number of output tokens for the LLM query planning activity." - } - }, - "description": "Represents an LLM query planning activity record." - }, - "KnowledgeBaseModelAnswerSynthesisActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "modelAnswerSynthesis", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - } - ], - "properties": { - "inputTokens": { - "type": "integer", - "format": "int32", - "description": "The number of input tokens for the LLM answer synthesis activity." - }, - "outputTokens": { - "type": "integer", - "format": "int32", - "description": "The number of output tokens for the LLM answer synthesis activity." - } - }, - "description": "Represents an LLM answer synthesis activity record." - }, - "KnowledgeBaseAgenticReasoningActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "agenticReasoning", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - } - ], - "properties": { - "reasoningTokens": { - "type": "integer", - "format": "int32", - "description": "The number of input tokens for agentic reasoning." - }, - "retrievalReasoningEffort": { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - } - }, - "description": "Represents an agentic reasoning activity record." - }, - "KnowledgeBaseReference": { - "type": "object", - "discriminator": "type", - "properties": { - "type": { - "type": "string", - "description": "The type of the reference." - }, - "id": { - "type": "string", - "description": "The ID of the reference." - }, - "activitySource": { - "type": "integer", - "format": "int32", - "description": "The source activity ID for the reference." - }, - "sourceData": { - "type": "object", - "additionalProperties": true - }, - "rerankerScore": { - "type": "number", - "format": "float", - "description": "The reranker score for the document reference." - } - }, - "required": [ - "type", - "id", - "activitySource" - ], - "description": "Base type for references." - }, - "KnowledgeBaseSearchIndexReference": { - "type": "object", - "x-ms-discriminator-value": "searchIndex", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "docKey": { - "type": "string", - "description": "The document key for the reference." - } - }, - "description": "Represents an Azure Search document reference." - }, - "KnowledgeBaseAzureBlobReference": { - "type": "object", - "x-ms-discriminator-value": "azureBlob", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "blobUrl": { - "type": "string", - "description": "The blob URL for the reference." - } - }, - "description": "Represents an Azure Blob Storage document reference." - }, - "KnowledgeBaseIndexedSharePointReference": { - "type": "object", - "x-ms-discriminator-value": "indexedSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "docUrl": { - "type": "string", - "description": "The document URL for the reference." - } - }, - "description": "Represents an Azure Blob Storage document reference." - }, - "KnowledgeBaseIndexedOneLakeReference": { - "type": "object", - "x-ms-discriminator-value": "indexedOneLake", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "docUrl": { - "type": "string", - "description": "The document URL for the reference." - } - }, - "description": "Represents an Azure Blob Storage document reference." - }, - "KnowledgeBaseWebReference": { - "type": "object", - "x-ms-discriminator-value": "web", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "The url the reference data originated from." - }, - "title": { - "type": "string", - "description": "The title of the web document." - } - }, - "description": "Represents a web document reference." - }, - "KnowledgeBaseRemoteSharePointReference": { - "type": "object", - "x-ms-discriminator-value": "remoteSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "webUrl": { - "type": "string", - "format": "uri", - "description": "The url the reference data originated from." - }, - "searchSensitivityLabelInfo": { - "type": "object", - "$ref": "#/definitions/SharePointSensitivityLabelInfo" - } - }, - "description": "Represents a remote SharePoint document reference." - }, - "SharePointSensitivityLabelInfo": { - "type": "object", - "description": "Information about the sensitivity label applied to a SharePoint document.", - "properties": { - "displayName": { - "type": "string", - "description": "The display name for the sensitivity label." - }, - "sensitivityLabelId": { - "type": "string", - "description": "The ID of the sensitivity label." - }, - "tooltip": { - "type": "string", - "description": "The tooltip that should be displayed for the label in a UI." - }, - "priority": { - "type": "integer", - "format": "int32", - "description": "The priority in which the sensitivity label is applied." - }, - "color": { - "type": "string", - "description": "The color that the UI should display for the label, if configured." - }, - "isEncrypted": { - "type": "boolean", - "description": "Indicates whether the sensitivity label enforces encryption." - } - } - }, - "KnowledgeBaseErrorDetail": { - "type": "object", - "description": "The error details.", - "properties": { - "code": { - "readOnly": true, - "type": "string", - "description": "The error code." - }, - "message": { - "readOnly": true, - "type": "string", - "description": "The error message." - }, - "target": { - "readOnly": true, - "type": "string", - "description": "The error target." - }, - "details": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseErrorDetail" - }, - "x-ms-identifiers": [], - "description": "The error details." - }, - "additionalInfo": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseErrorAdditionalInfo" - }, - "x-ms-identifiers": [], - "description": "The error additional info." - } - } - }, - "KnowledgeBaseErrorAdditionalInfo": { - "type": "object", - "properties": { - "type": { - "readOnly": true, - "type": "string", - "description": "The additional info type." - }, - "info": { - "readOnly": true, - "type": "object", - "description": "The additional info." - } - }, - "description": "The resource management error additional info." - } - }, - "parameters": { - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "Client Api Version.", - "x-ms-parameter-location": "client" - }, - "ClientRequestIdParameter": { - "name": "x-ms-client-request-id", - "in": "header", - "required": false, - "type": "string", - "format": "uuid", - "description": "The tracking ID sent with the request to help with debugging.", - "x-ms-client-request-id": true, - "x-ms-parameter-grouping": { - "name": "request-options" - }, - "x-ms-parameter-location": "method" - }, - "QuerySourceAuthorizationParameter": { - "name": "x-ms-query-source-authorization", - "in": "header", - "required": false, - "type": "string", - "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", - "x-ms-query-source-authorization": true, - "x-ms-parameter-location": "method" - }, - "EndpointParameter": { - "name": "endpoint", - "in": "path", - "required": true, - "type": "string", - "format": "url", - "x-ms-skip-url-encoding": true, - "description": "The endpoint URL of the search service.", - "x-ms-parameter-location": "client" - }, - "KnowledgeBaseNameParameter": { - "name": "knowledgeBaseName", - "in": "path", - "required": true, - "type": "string", - "x-ms-skip-url-encoding": false, - "description": "The name of the knowledge base.", - "x-ms-parameter-location": "client" - } - } -} diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/searchservice.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/search.json similarity index 57% rename from specification/search/data-plane/Search/preview/2025-11-01-preview/searchservice.json rename to specification/search/data-plane/Search/preview/2025-11-01-preview/search.json index b17f5969a015..4dabfbb0036e 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/searchservice.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/search.json @@ -1,3582 +1,3717 @@ { "swagger": "2.0", "info": { - "title": "SearchServiceClient", - "description": "Client that can be used to manage and query indexes and documents, as well as manage other resources, on a search service.", + "title": "Azure AI Search", "version": "2025-11-01-preview", - "x-ms-code-generation-settings": { - "useDateTimeOffset": true - } - }, - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}", - "useSchemePrefix": false, - "parameters": [ + "description": "Client that can be used to manage and query indexes and documents, as well as manage other resources, on a search service.", + "x-typespec-generated": [ { - "$ref": "#/parameters/EndpointParameter" + "emitter": "@azure-tools/typespec-autorest" } ] }, - "consumes": [ - "application/json" + "schemes": [ + "https" ], "produces": [ "application/json" ], + "consumes": [ + "application/json" + ], + "security": [ + { + "ApiKeyAuth": [] + }, + { + "OAuth2Auth": [ + "https://search.azure.com/.default" + ] + } + ], + "securityDefinitions": { + "ApiKeyAuth": { + "type": "apiKey", + "name": "api-key", + "in": "header" + }, + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "scopes": { + "https://search.azure.com/.default": "" + } + } + }, + "tags": [], "paths": { - "/knowledgebases('{knowledgeBaseName}')": { - "put": { - "tags": [ - "KnowledgeBases" + "/aliases": { + "get": { + "operationId": "Aliases_List", + "description": "Lists all aliases available for a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } ], - "operationId": "KnowledgeBases_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateKnowledgeBase": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeBase.json" + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListAliasesResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } } }, - "description": "Creates a new knowledge base or updates an knowledge base if it already exists.", + "x-ms-examples": { + "SearchServiceListAliases": { + "$ref": "./examples/SearchServiceListAliases.json" + } + } + }, + "post": { + "operationId": "Aliases_Create", + "description": "Creates a new search alias.", "parameters": [ { - "name": "knowledgeBaseName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the knowledge base to create or update." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "name": "KnowledgeBase", + "name": "alias", "in": "body", + "description": "The definition of the alias to create.", "required": true, "schema": { - "$ref": "#/definitions/KnowledgeBase" - }, - "description": "The definition of the knowledge base to create or update." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/definitions/SearchAlias" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchAlias" + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceCreateAlias": { + "$ref": "./examples/SearchServiceCreateAlias.json" + } + } + } + }, + "/aliases('{aliasName}')": { + "get": { + "operationId": "Aliases_Get", + "description": "Retrieves an alias definition.", + "parameters": [ { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/PreferHeaderParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "aliasName", + "in": "path", + "description": "The name of the alias.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], "responses": { "200": { - "description": "", - "schema": { - "$ref": "#/definitions/KnowledgeBase" - } - }, - "201": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/KnowledgeBase" + "$ref": "#/definitions/SearchAlias" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "KnowledgeBases" - ], - "operationId": "KnowledgeBases_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteKnowledgeBase": { - "$ref": "./examples/SearchServiceDeleteKnowledgeBase.json" + "SearchServiceGetAlias": { + "$ref": "./examples/SearchServiceGetAlias.json" } - }, - "description": "Deletes an existing knowledge base.", + } + }, + "put": { + "operationId": "Aliases_CreateOrUpdate", + "description": "Creates a new search alias or updates an alias if it already exists.", "parameters": [ { - "name": "knowledgeBaseName", - "in": "path", - "required": true, + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, "type": "string", - "description": "The name of the knowledge base to delete." + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" }, { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "aliasName", + "in": "path", + "description": "The name of the alias.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "alias", + "in": "body", + "description": "The definition of the alias to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchAlias" + } } ], - "x-ms-request-id": "request-id", "responses": { - "204": { - "description": "" + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchAlias" + } }, - "404": { - "description": "" + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchAlias" + } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "KnowledgeBases" - ], - "operationId": "KnowledgeBases_Get", + }, "x-ms-examples": { - "SearchServiceGetKnowledgeBase": { - "$ref": "./examples/SearchServiceGetKnowledgeBase.json" + "SearchServiceCreateOrUpdateAlias": { + "$ref": "./examples/SearchServiceCreateOrUpdateAlias.json" } - }, - "description": "Retrieves an knowledge base definition.", + } + }, + "delete": { + "operationId": "Aliases_Delete", + "description": "Deletes a search alias and its associated mapping to an index. This operation is permanent, with no recovery option. The mapped index is untouched by this operation.", "parameters": [ { - "name": "knowledgeBaseName", - "in": "path", - "required": true, + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, "type": "string", - "description": "The name of the knowledge base to retrieve." + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "aliasName", + "in": "path", + "description": "The name of the alias.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/KnowledgeBase" - } + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceDeleteAlias": { + "$ref": "./examples/SearchServiceDeleteAlias.json" + } } } }, - "/knowledgebases": { + "/datasources": { "get": { - "tags": [ - "KnowledgeBases" - ], - "operationId": "KnowledgeBases_List", - "x-ms-examples": { - "SearchServiceListKnowledgeBases": { - "$ref": "./examples/SearchServiceListKnowledgeBases.json" - } - }, - "description": "Lists all knowledge bases available for a search service.", + "operationId": "DataSources_List", + "description": "Lists all datasources available for a search service.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "$select", + "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", + "required": false, + "type": "string", + "format": "ArrayEncoding.commaDelimited" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListKnowledgeBasesResult" + "$ref": "#/definitions/ListDataSourcesResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "SearchServiceListDataSources": { + "$ref": "./examples/SearchServiceListDataSources.json" + } } }, "post": { - "tags": [ - "KnowledgeBases" - ], - "operationId": "KnowledgeBases_Create", - "x-ms-examples": { - "SearchServiceCreateKnowledgeBase": { - "$ref": "./examples/SearchServiceCreateKnowledgeBase.json" - } - }, - "description": "Creates a new knowledge base.", + "operationId": "DataSources_Create", + "description": "Creates a new datasource.", "parameters": [ { - "name": "KnowledgeBase", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KnowledgeBase" - }, - "description": "The definition of the knowledge base to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "dataSource", + "in": "body", + "description": "The definition of the datasource to create.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexerDataSource" + } } ], "responses": { "201": { - "description": "Successfully created an knowledge base", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/KnowledgeBase" + "$ref": "#/definitions/SearchIndexerDataSource" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateDataSource": { + "$ref": "./examples/SearchServiceCreateDataSource.json" + } } } }, - "/knowledgesources('{sourceName}')": { - "put": { - "tags": [ - "KnowledgeSource" - ], - "operationId": "KnowledgeSources_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateKnowledgeSource": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSource.json" - }, - "SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json" - }, - "SearchServiceCreateOrUpdateKnowledgeSourceWeb": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json" - }, - "SearchServiceCreateOrUpdateKnowledgeSourceSharePoint": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json" - }, - "SearchServiceCreateOrUpdateKnowledgeSourceOneLake": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json" - } - }, - "description": "Creates a new knowledge source or updates an knowledge source if it already exists.", + "/datasources('{dataSourceName}')": { + "get": { + "operationId": "DataSources_Get", + "description": "Retrieves a datasource definition.", "parameters": [ { - "name": "sourceName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the knowledge source to create or update." - }, - { - "name": "KnowledgeSource", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KnowledgeSource" - }, - "description": "The definition of the knowledge source to create or update." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/PreferHeaderParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "name": "dataSourceName", + "in": "path", + "description": "The name of the datasource.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], "responses": { "200": { - "description": "", - "schema": { - "$ref": "#/definitions/KnowledgeSource" - } - }, - "201": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/KnowledgeSource" + "$ref": "#/definitions/SearchIndexerDataSource" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceGetDataSource": { + "$ref": "./examples/SearchServiceGetDataSource.json" + } } }, - "delete": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_Delete", - "x-ms-examples": { - "SearchServiceDeleteKnowledgeSource": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSource.json" - }, - "SearchServiceDeleteKnowledgeSourceAzureBlob": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSourceAzureBlob.json" + "put": { + "operationId": "DataSources_CreateOrUpdate", + "description": "Creates a new datasource or updates a datasource if it already exists.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "SearchServiceDeleteKnowledgeSourceWeb": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSourceWeb.json" + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, - "SearchServiceDeleteKnowledgeSourceSharePoint": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json" + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, - "SearchServiceDeleteKnowledgeSourceOneLake": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json" - } - }, - "description": "Deletes an existing knowledge source.", - "parameters": [ { - "name": "sourceName", - "in": "path", + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", "required": true, "type": "string", - "description": "The name of the knowledge source to delete." + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "ignoreResetRequirements", + "in": "query", + "description": "Ignores cache reset requirements.", + "required": false, + "type": "boolean", + "x-ms-client-name": "skipIndexerResetRequirementForCache" }, { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "dataSourceName", + "in": "path", + "description": "The name of the datasource.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "dataSource", + "in": "body", + "description": "The definition of the datasource to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexerDataSource" + } } ], - "x-ms-request-id": "request-id", "responses": { - "204": { - "description": "" + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchIndexerDataSource" + } }, - "404": { - "description": "" + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchIndexerDataSource" + } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateOrUpdateDataSource": { + "$ref": "./examples/SearchServiceCreateOrUpdateDataSource.json" + } } }, - "get": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_Get", - "x-ms-examples": { - "SearchServiceGetKnowledgeSource": { - "$ref": "./examples/SearchServiceGetKnowledgeSource.json" - }, - "SearchServiceGetKnowledgeSourceAzureBlob": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceAzureBlob.json" - }, - "SearchServiceGetKnowledgeSourceWeb": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceWeb.json" + "delete": { + "operationId": "DataSources_Delete", + "description": "Deletes a datasource.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "SearchServiceGetKnowledgeSourceSharePoint": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceIndexedSharePoint.json" + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, - "SearchServiceGetKnowledgeSourceOneLake": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceIndexedOneLake.json" - } - }, - "description": "Retrieves a knowledge source definition.", - "parameters": [ { - "name": "sourceName", - "in": "path", - "required": true, + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, "type": "string", - "description": "The name of the knowledge source to retrieve." + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "dataSourceName", + "in": "path", + "description": "The name of the datasource.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/KnowledgeSource" - } + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceDeleteDataSource": { + "$ref": "./examples/SearchServiceDeleteDataSource.json" + } } } }, - "/knowledgesources": { + "/indexers": { "get": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_List", - "x-ms-examples": { - "SearchServiceListKnowledgeSources": { - "$ref": "./examples/SearchServiceListKnowledgeSources.json" - }, - "SearchServiceListKnowledgeSourcesAzureBlob": { - "$ref": "./examples/SearchServiceListKnowledgeSourcesAzureBlob.json" - }, - "SearchServiceListKnowledgeSourcesWeb": { - "$ref": "./examples/SearchServiceListKnowledgeSourcesWeb.json" - }, - "SearchServiceListKnowledgeSourcesSharePoint": { - "$ref": "./examples/SearchServiceListKnowledgeSourcesIndexedSharePoint.json" - }, - "SearchServiceListKnowledgeSourcesOneLake": { - "$ref": "./examples/SearchServiceListKnowledgeSourcesIndexedOneLake.json" - } - }, - "description": "Lists all knowledge sources available for a search service.", + "operationId": "Indexers_List", + "description": "Lists all indexers available for a search service.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "$select", + "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", + "required": false, + "type": "string", + "format": "ArrayEncoding.commaDelimited" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListKnowledgeSourcesResult" + "$ref": "#/definitions/ListIndexersResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "SearchServiceListIndexers": { + "$ref": "./examples/SearchServiceListIndexers.json" + } } }, "post": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_Create", - "x-ms-examples": { - "SearchServiceCreateKnowledgeSource": { - "$ref": "./examples/SearchServiceCreateKnowledgeSource.json" - }, - "SearchServiceCreateKnowledgeSourceAzureBlob": { - "$ref": "./examples/SearchServiceCreateKnowledgeSourceAzureBlob.json" - }, - "SearchServiceCreateKnowledgeSourceWeb": { - "$ref": "./examples/SearchServiceCreateKnowledgeSourceWeb.json" - }, - "SearchServiceCreateKnowledgeSourceSharePoint": { - "$ref": "./examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json" - }, - "SearchServiceCreateKnowledgeSourceOneLake": { - "$ref": "./examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json" - } - }, - "description": "Creates a new knowledge source.", + "operationId": "Indexers_Create", + "description": "Creates a new indexer.", "parameters": [ { - "name": "KnowledgeSource", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KnowledgeSource" - }, - "description": "The definition of the knowledge source to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexer", + "in": "body", + "description": "The definition of the indexer to create.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexer" + } } ], "responses": { "201": { - "description": "Successfully created an knowledge source", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/KnowledgeSource" + "$ref": "#/definitions/SearchIndexer" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateIndexer": { + "$ref": "./examples/SearchServiceCreateIndexer.json" + } } } }, - "/knowledgesources('{sourceName}')/status": { + "/indexers('{indexerName}')": { "get": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_GetStatus", - "x-ms-examples": { - "SearchServiceGetKnowledgeSourceStatus": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceStatus.json" - } - }, - "description": "Returns the current status and synchronization history of a knowledge source.", + "operationId": "Indexers_Get", + "description": "Retrieves an indexer definition.", "parameters": [ { - "name": "sourceName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the knowledge source for which to retrieve status." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexerName", + "in": "path", + "description": "The name of the indexer.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "Knowledge source status retrieved successfully.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/KnowledgeSourceStatus" + "$ref": "#/definitions/SearchIndexer" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceGetIndexer": { + "$ref": "./examples/SearchServiceGetIndexer.json" + } } - } - }, - "/datasources('{dataSourceName}')": { + }, "put": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateDataSource": { - "$ref": "./examples/SearchServiceCreateOrUpdateDataSource.json" - } - }, - "description": "Creates a new datasource or updates a datasource if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Update-Data-Source" - }, + "operationId": "Indexers_CreateOrUpdate", + "description": "Creates a new indexer or updates an indexer if it already exists.", "parameters": [ { - "name": "dataSourceName", - "in": "path", - "required": true, + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, "type": "string", - "description": "The name of the datasource to create or update." + "x-ms-client-name": "ifMatch" }, { - "name": "dataSource", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" - }, - "description": "The definition of the datasource to create or update." + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "ignoreResetRequirements", + "in": "query", + "description": "Ignores cache reset requirements.", + "required": false, + "type": "boolean", + "x-ms-client-name": "skipIndexerResetRequirementForCache" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "disableCacheReprocessingChangeDetection", + "in": "query", + "description": "Disables cache reprocessing change detection.", + "required": false, + "type": "boolean" }, { - "$ref": "#/parameters/PreferHeaderParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexerName", + "in": "path", + "description": "The name of the indexer.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/IgnoreResetRequirementsParameter" + "name": "indexer", + "in": "body", + "description": "The definition of the indexer to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexer" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" + "$ref": "#/definitions/SearchIndexer" } }, "201": { - "description": "", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" + "$ref": "#/definitions/SearchIndexer" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateOrUpdateIndexer": { + "$ref": "./examples/SearchServiceCreateOrUpdateIndexer.json" + } } }, "delete": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_Delete", - "x-ms-examples": { - "SearchServiceDeleteDataSource": { - "$ref": "./examples/SearchServiceDeleteDataSource.json" - } - }, - "description": "Deletes a datasource.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Data-Source" - }, + "operationId": "Indexers_Delete", + "description": "Deletes an indexer.", "parameters": [ { - "name": "dataSourceName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the datasource to delete." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "204": { - "description": "" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, - "404": { - "description": "" - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_Get", - "x-ms-examples": { - "SearchServiceGetDataSource": { - "$ref": "./examples/SearchServiceGetDataSource.json" - } - }, - "description": "Retrieves a datasource definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Data-Source" - }, - "parameters": [ { - "name": "dataSourceName", + "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the datasource to retrieve." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/datasources": { - "get": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_List", - "x-ms-examples": { - "SearchServiceListDataSources": { - "$ref": "./examples/SearchServiceListDataSources.json" - } - }, - "description": "Lists all datasources available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Data-Sources" - }, - "parameters": [ - { - "name": "$select", - "in": "query", - "required": false, - "type": "string", - "description": "Selects which top-level properties of the data sources to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/ListDataSourcesResult" - } + "404": { + "description": "The server cannot find the requested resource." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "post": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_Create", - "x-ms-examples": { - "SearchServiceCreateDataSource": { - "$ref": "./examples/SearchServiceCreateDataSource.json" - } - }, - "description": "Creates a new datasource.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Data-Source" }, - "parameters": [ - { - "name": "dataSource", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" - }, - "description": "The definition of the datasource to create." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "201": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } + "x-ms-examples": { + "SearchServiceDeleteIndexer": { + "$ref": "./examples/SearchServiceDeleteIndexer.json" } } } }, "/indexers('{indexerName}')/search.reset": { "post": { - "tags": [ - "Indexers" - ], "operationId": "Indexers_Reset", - "x-ms-examples": { - "SearchServiceResetIndexer": { - "$ref": "./examples/SearchServiceResetIndexer.json" - } - }, "description": "Resets the change tracking state associated with an indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Reset-Indexer" - }, "parameters": [ { - "name": "indexerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the indexer to reset." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexerName", + "in": "path", + "description": "The name of the indexer.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "204": { - "description": "" + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceResetIndexer": { + "$ref": "./examples/SearchServiceResetIndexer.json" + } } } }, "/indexers('{indexerName}')/search.resetdocs": { "post": { - "tags": [ - "Indexers" - ], "operationId": "Indexers_ResetDocs", - "x-ms-examples": { - "SearchServiceResetDocs": { - "$ref": "./examples/SearchServiceResetDocs.json" - } - }, "description": "Resets specific documents in the datasource to be selectively re-ingested by the indexer.", - "externalDocs": { - "url": "https://aka.ms/reset-documents" - }, "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "overwrite", + "in": "query", + "description": "If false, keys or ids will be appended to existing ones. If true, only the keys or ids in this payload will be queued to be re-ingested.", + "required": false, + "type": "boolean", + "default": false + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the indexer to reset documents for." + "x-ms-client-name": "name" }, { "name": "keysOrIds", "in": "body", + "description": "The keys or ids of the documents to be re-ingested. If keys are provided, the document key field must be specified in the indexer configuration. If ids are provided, the document key field is ignored.", "required": false, "schema": { - "type": "object", - "x-ms-client-name": "DocumentKeysOrIds", - "properties": { - "documentKeys": { - "type": "array", - "items": { - "type": "string" - }, - "description": "document keys to be reset" - }, - "datasourceDocumentIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "datasource document identifiers to be reset" - } - } + "$ref": "#/definitions/DocumentKeysOrIds" } - }, - { - "name": "overwrite", - "in": "query", - "required": false, - "default": false, - "type": "boolean", - "description": "If false, keys or ids will be appended to existing ones. If true, only the keys or ids in this payload will be queued to be re-ingested." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" } ], - "x-ms-request-id": "request-id", "responses": { "204": { - "description": "" + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceResetDocs": { + "$ref": "./examples/SearchServiceResetDocs.json" + } } } }, "/indexers('{indexerName}')/search.resync": { "post": { - "tags": [ - "Indexers" - ], "operationId": "Indexers_Resync", - "x-ms-examples": { - "SearchServiceResync": { - "$ref": "./examples/SearchServiceResync.json" - } - }, - "description": "Resync selective options from the datasource to be re-ingested by the indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Resync-Indexer" - }, + "description": "Resync selective options from the datasource to be re-ingested by the indexer.\"", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the indexer to resync for." + "x-ms-client-name": "name" }, { "name": "indexerResync", "in": "body", + "description": "The definition of the indexer resync options.", "required": true, "schema": { - "type": "object", - "x-ms-client-name": "IndexerResyncBody", - "properties": { - "options": { - "type": "array", - "x-ms-client-name": "options", - "x-nullable": true, - "items": { - "$ref": "#/definitions/IndexerResyncOption", - "x-nullable": false - }, - "description": "Re-sync options that have been pre-defined from data source." - } - } + "$ref": "#/definitions/IndexerResyncBody" } - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" } ], - "x-ms-request-id": "request-id", "responses": { "204": { - "description": "" + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "SearchServiceResync": { + "$ref": "./examples/SearchServiceResync.json" + } + } } }, "/indexers('{indexerName}')/search.run": { "post": { - "tags": [ - "Indexers" - ], "operationId": "Indexers_Run", - "x-ms-examples": { - "SearchServiceRunIndexer": { - "$ref": "./examples/SearchServiceRunIndexer.json" - } - }, "description": "Runs an indexer on-demand.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Run-Indexer" - }, "parameters": [ { - "name": "indexerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the indexer to run." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "202": { - "description": "" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/indexers('{indexerName}')": { - "put": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateIndexer": { - "$ref": "./examples/SearchServiceCreateOrUpdateIndexer.json" - } - }, - "description": "Creates a new indexer or updates an indexer if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Indexer" - }, - "parameters": [ { "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the indexer to create or update." - }, - { - "name": "indexer", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexer" - }, - "description": "The definition of the indexer to create or update." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" - }, - { - "$ref": "#/parameters/PreferHeaderParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/IgnoreResetRequirementsParameter" - }, - { - "$ref": "#/parameters/DisableCacheReprocessingChangeDetectionParameter" + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "201": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchIndexer" - } - }, - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchIndexer" - } + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteIndexer": { - "$ref": "./examples/SearchServiceDeleteIndexer.json" + "SearchServiceRunIndexer": { + "$ref": "./examples/SearchServiceRunIndexer.json" } - }, - "description": "Deletes an indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Indexer" - }, + } + } + }, + "/indexers('{indexerName}')/search.status": { + "get": { + "operationId": "Indexers_GetStatus", + "description": "Returns the current status and execution history of an indexer.", "parameters": [ { - "name": "indexerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the indexer to delete." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "404": { - "description": "" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, - "204": { - "description": "" - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_Get", - "x-ms-examples": { - "SearchServiceGetIndexer": { - "$ref": "./examples/SearchServiceGetIndexer.json" - } - }, - "description": "Retrieves an indexer definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Indexer" - }, - "parameters": [ { "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the indexer to retrieve." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndexer" + "$ref": "#/definitions/SearchIndexerStatus" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceGetIndexerStatus": { + "$ref": "./examples/SearchServiceGetIndexerStatus.json" + }, + "SearchServiceGetS3HDUnlimitedIndexerStatus": { + "$ref": "./examples/SearchServiceGetS3HDUnlimitedIndexerStatus.json" + } } } }, - "/indexers": { + "/indexes": { "get": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_List", - "x-ms-examples": { - "SearchServiceListIndexers": { - "$ref": "./examples/SearchServiceListIndexers.json" - } - }, - "description": "Lists all indexers available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Indexers" - }, + "operationId": "Indexes_List", + "description": "Lists all indexes available for a search service.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "$select", "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", "required": false, "type": "string", - "description": "Selects which top-level properties of the indexers to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "format": "ArrayEncoding.commaDelimited" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListIndexersResult" + "$ref": "#/definitions/ListIndexesResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceListIndexes": { + "$ref": "./examples/SearchServiceListIndexes.json" + } } }, "post": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_Create", - "x-ms-examples": { - "SearchServiceCreateIndexer": { - "$ref": "./examples/SearchServiceCreateIndexer.json" - } - }, - "description": "Creates a new indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Indexer" - }, + "operationId": "Indexes_Create", + "description": "Creates a new search index.", "parameters": [ { - "name": "indexer", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexer" - }, - "description": "The definition of the indexer to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "index", + "in": "body", + "description": "The definition of the index to create.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndex" + } } ], - "x-ms-request-id": "request-id", "responses": { "201": { - "description": "", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/SearchIndexer" + "$ref": "#/definitions/SearchIndex" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateIndex": { + "$ref": "./examples/SearchServiceCreateIndex.json" + } } } }, - "/indexers('{indexerName}')/search.status": { + "/indexes('{indexName}')": { "get": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_GetStatus", - "x-ms-examples": { - "SearchServiceGetIndexerStatus": { - "$ref": "./examples/SearchServiceGetIndexerStatus.json" - } - }, - "description": "Returns the current status and execution history of an indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Indexer-Status" - }, + "operationId": "Indexes_Get", + "description": "Retrieves an index definition.", "parameters": [ { - "name": "indexerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the indexer for which to retrieve status." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndexerStatus" + "$ref": "#/definitions/SearchIndex" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - } - }, - "/skillsets('{skillsetName}')": { - "put": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_CreateOrUpdate", + }, "x-ms-examples": { - "SearchServiceCreateOrUpdateSkillset": { - "$ref": "./examples/SearchServiceCreateOrUpdateSkillset.json" + "SearchServiceGetIndex": { + "$ref": "./examples/SearchServiceGetIndex.json" } - }, - "description": "Creates a new skillset in a search service or updates the skillset if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/update-skillset" - }, + } + }, + "put": { + "operationId": "Indexes_CreateOrUpdate", + "description": "Creates a new search index or updates an index if it already exists.", "parameters": [ { - "name": "skillsetName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the skillset to create or update." - }, - { - "name": "skillset", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" - }, - "description": "The skillset containing one or more skills to create or update in a search service." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "allowIndexDowntime", + "in": "query", + "description": "Allows new analyzers, tokenizers, token filters, or char filters to be added to an index by taking the index offline for at least a few seconds. This temporarily causes indexing and query requests to fail. Performance and write availability of the index can be impaired for several minutes after the index is updated, or longer for very large indexes.", + "required": false, + "type": "boolean" }, { - "$ref": "#/parameters/PreferHeaderParameter" - }, + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IgnoreResetRequirementsParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/DisableCacheReprocessingChangeDetectionParameter" + "name": "index", + "in": "body", + "description": "The definition of the index to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndex" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "The skillset is successfully updated.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" + "$ref": "#/definitions/SearchIndex" } }, "201": { - "description": "The skillset is successfully created.", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" + "$ref": "#/definitions/SearchIndex" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateOrUpdateIndex": { + "$ref": "./examples/SearchServiceCreateOrUpdateIndex.json" + } } }, "delete": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_Delete", - "x-ms-examples": { - "SearchServiceDeleteSkillset": { - "$ref": "./examples/SearchServiceDeleteSkillset.json" - } - }, - "description": "Deletes a skillset in a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/delete-skillset" - }, + "operationId": "Indexes_Delete", + "description": "Deletes a search index and all the documents it contains. This operation is permanent, with no recovery option. Make sure you have a master copy of your index definition, data ingestion code, and a backup of the primary data source in case you need to re-build the index.", "parameters": [ { - "name": "skillsetName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the skillset to delete." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "204": { - "description": "The skillset is successfully deleted." + "description": "There is no content to send for this request, but the headers may be useful. " }, "404": { - "description": "The provided skillset name is not found." + "description": "The server cannot find the requested resource." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_Get", + }, "x-ms-examples": { - "SearchServiceGetSkillset": { - "$ref": "./examples/SearchServiceGetSkillset.json" + "SearchServiceDeleteIndex": { + "$ref": "./examples/SearchServiceDeleteIndex.json" } - }, - "description": "Retrieves a skillset in a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/get-skillset" - }, + } + } + }, + "/indexes('{indexName}')/docs": { + "get": { + "operationId": "Documents_SearchGet", + "description": "Searches for documents in the index.", "parameters": [ { - "name": "skillsetName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the skillset to retrieve." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-query-source-authorization", + "in": "header", + "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", + "required": false, + "type": "string", + "x-ms-client-name": "querySourceAuthorization" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "The skillset is successfully returned.", - "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" - } + "name": "x-ms-enable-elevated-read", + "in": "header", + "description": "A value that enables elevated read that bypass document level permission checks for the query operation.", + "required": false, + "type": "boolean", + "x-ms-client-name": "enableElevatedRead" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/skillsets": { - "get": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_List", - "x-ms-examples": { - "SearchServiceListSkillsets": { - "$ref": "./examples/SearchServiceListSkillsets.json" - } - }, - "description": "List all skillsets in a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/list-skillset" - }, - "parameters": [ { - "name": "$select", + "name": "search", "in": "query", + "description": "A full-text search query expression; Use \"*\" or omit this parameter to match all documents.", "required": false, "type": "string", - "description": "Selects which top-level properties of the skillsets to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." + "x-ms-client-name": "searchText" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/SearchOptions.includeTotalResultCount" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "The list is successfully returned.", - "schema": { - "$ref": "#/definitions/ListSkillsetsResult" - } + "$ref": "#/parameters/SearchOptions.facets" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "post": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_Create", - "x-ms-examples": { - "SearchServiceCreateSkillset": { - "$ref": "./examples/SearchServiceCreateSkillset.json" - } - }, - "description": "Creates a new skillset in a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/create-skillset" - }, - "parameters": [ { - "name": "skillset", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" - }, - "description": "The skillset containing one or more skills to create in a search service." + "$ref": "#/parameters/SearchOptions.filter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/SearchOptions.highlightFields" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "201": { - "description": "The skillset is successfully created.", - "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" - } + "$ref": "#/parameters/SearchOptions.highlightPostTag" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/skillsets('{skillsetName}')/search.resetskills": { - "post": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_ResetSkills", - "x-ms-examples": { - "SearchServiceResetSkills": { - "$ref": "./examples/SearchServiceResetSkills.json" - } - }, - "description": "Reset an existing skillset in a search service.", - "externalDocs": { - "url": "https://aka.ms/reset-skills" - }, - "parameters": [ { - "name": "skillsetName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the skillset to reset." + "$ref": "#/parameters/SearchOptions.highlightPreTag" }, { - "name": "skillNames", - "in": "body", - "required": true, - "schema": { - "type": "object", - "x-ms-client-name": "SkillNames", - "properties": { - "skillNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "the names of skills to be reset." - } - } - }, - "description": "The names of skills to reset." + "$ref": "#/parameters/SearchOptions.minimumCoverage" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/SearchOptions.orderBy" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "204": { - "description": "The skills in the skillset are successfully reset." + "$ref": "#/parameters/SearchOptions.queryType" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/synonymmaps('{synonymMapName}')": { - "put": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateSynonymMap": { - "$ref": "./examples/SearchServiceCreateOrUpdateSynonymMap.json" - } - }, - "description": "Creates a new synonym map or updates a synonym map if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Update-Synonym-Map" - }, - "parameters": [ { - "name": "synonymMapName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the synonym map to create or update." + "$ref": "#/parameters/SearchOptions.scoringParameters" }, { - "name": "synonymMap", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SynonymMap" - }, - "description": "The definition of the synonym map to create or update." + "$ref": "#/parameters/SearchOptions.scoringProfile" + }, + { + "$ref": "#/parameters/SearchOptions.searchFields" + }, + { + "$ref": "#/parameters/SearchOptions.searchMode" + }, + { + "$ref": "#/parameters/SearchOptions.scoringStatistics" + }, + { + "$ref": "#/parameters/SearchOptions.sessionId" + }, + { + "$ref": "#/parameters/SearchOptions.select" + }, + { + "$ref": "#/parameters/SearchOptions.skip" + }, + { + "$ref": "#/parameters/SearchOptions.top" + }, + { + "$ref": "#/parameters/SearchOptions.semanticConfiguration" + }, + { + "$ref": "#/parameters/SearchOptions.semanticErrorHandling" + }, + { + "$ref": "#/parameters/SearchOptions.semanticMaxWaitInMilliseconds" + }, + { + "$ref": "#/parameters/SearchOptions.answers" + }, + { + "$ref": "#/parameters/SearchOptions.captions" + }, + { + "$ref": "#/parameters/SearchOptions.semanticQuery" + }, + { + "$ref": "#/parameters/SearchOptions.queryRewrites" + }, + { + "$ref": "#/parameters/SearchOptions.debug" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/SearchOptions.queryLanguage" }, { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/parameters/SearchOptions.speller" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/SearchOptions.semanticFields" }, { - "$ref": "#/parameters/PreferHeaderParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SynonymMap" + "$ref": "#/definitions/SearchDocumentsResult" } }, - "201": { - "description": "", + "206": { + "description": "Successful", "schema": { - "$ref": "#/definitions/SynonymMap" + "$ref": "#/definitions/SearchDocumentsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteSynonymMap": { - "$ref": "./examples/SearchServiceDeleteSynonymMap.json" + "SearchIndexSearchDocumentsGet": { + "$ref": "./examples/SearchIndexSearchDocumentsGet.json" + }, + "SearchIndexSearchDocumentsSemanticGet": { + "$ref": "./examples/SearchIndexSearchDocumentsSemanticGet.json" } - }, - "description": "Deletes a synonym map.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Synonym-Map" - }, + } + } + }, + "/indexes('{indexName}')/docs/$count": { + "get": { + "operationId": "Documents_Count", + "description": "Queries the number of documents in the index.", "parameters": [ { - "name": "synonymMapName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the synonym map to delete." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "204": { - "description": "" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, - "404": { - "description": "" - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_Get", - "x-ms-examples": { - "SearchServiceGetSynonymMap": { - "$ref": "./examples/SearchServiceGetSynonymMap.json" - } - }, - "description": "Retrieves a synonym map definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Synonym-Map" - }, - "parameters": [ { - "name": "synonymMapName", + "name": "indexName", "in": "path", + "description": "The name of the index.", "required": true, "type": "string", - "description": "The name of the synonym map to retrieve." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SynonymMap" + "type": "integer", + "format": "int64" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchIndexCountDocuments": { + "$ref": "./examples/SearchIndexCountDocuments.json" + } } } }, - "/synonymmaps": { + "/indexes('{indexName}')/docs/search.autocomplete": { "get": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_List", - "x-ms-examples": { - "SearchServiceListSynonymMaps": { - "$ref": "./examples/SearchServiceListSynonymMaps.json" - } - }, - "description": "Lists all synonym maps available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Synonym-Maps" - }, + "operationId": "Documents_AutocompleteGet", + "description": "Autocompletes incomplete query terms based on input text and matching terms in the index.", "parameters": [ { - "name": "$select", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "search", "in": "query", - "required": false, + "description": "The incomplete term which should be auto-completed.", + "required": true, "type": "string", - "description": "Selects which top-level properties of the synonym maps to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." + "x-ms-client-name": "searchText" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "suggesterName", + "in": "query", + "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/ListSynonymMapsResult" + "name": "autocompleteMode", + "in": "query", + "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms.", + "required": false, + "type": "string", + "enum": [ + "oneTerm", + "twoTerms", + "oneTermWithContext" + ], + "x-ms-enum": { + "name": "AutocompleteMode", + "modelAsString": true, + "values": [ + { + "name": "OneTerm", + "value": "oneTerm", + "description": "Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'." + }, + { + "name": "TwoTerms", + "value": "twoTerms", + "description": "Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'." + }, + { + "name": "OneTermWithContext", + "value": "oneTermWithContext", + "description": "Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'." + } + ] } }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "post": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_Create", - "x-ms-examples": { - "SearchServiceCreateSynonymMap": { - "$ref": "./examples/SearchServiceCreateSynonymMap.json" - } - }, - "description": "Creates a new synonym map.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Synonym-Map" - }, - "parameters": [ { - "name": "synonymMap", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SynonymMap" + "name": "$filter", + "in": "query", + "description": "An OData expression that filters the documents used to produce completed terms for the Autocomplete result.", + "required": false, + "type": "string" + }, + { + "name": "fuzzy", + "in": "query", + "description": "A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.", + "required": false, + "type": "boolean", + "x-ms-client-name": "useFuzzyMatching" + }, + { + "name": "highlightPostTag", + "in": "query", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled.", + "required": false, + "type": "string" + }, + { + "name": "highlightPreTag", + "in": "query", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled.", + "required": false, + "type": "string" + }, + { + "name": "minimumCoverage", + "in": "query", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.", + "required": false, + "type": "number", + "format": "double" + }, + { + "name": "searchFields", + "in": "query", + "description": "The list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.", + "required": false, + "type": "array", + "items": { + "type": "string" }, - "description": "The definition of the synonym map to create." + "collectionFormat": "csv" + }, + { + "name": "$top", + "in": "query", + "description": "The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5.", + "required": false, + "type": "integer", + "format": "int32" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "201": { - "description": "", + "200": { + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SynonymMap" + "$ref": "#/definitions/AutocompleteResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchIndexAutocompleteDocumentsGet": { + "$ref": "./examples/SearchIndexAutocompleteDocumentsGet.json" + } } } }, - "/indexes": { + "/indexes('{indexName}')/docs/search.index": { "post": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_Create", - "x-ms-examples": { - "SearchServiceCreateIndex": { - "$ref": "./examples/SearchServiceCreateIndex.json" - } - }, - "description": "Creates a new search index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Index" - }, + "operationId": "Documents_Index", + "description": "Sends a batch of document write actions to the index.", "parameters": [ { - "name": "index", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndex" - }, - "description": "The definition of the index to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "batch", + "in": "body", + "description": "The batch of index actions.", + "required": true, + "schema": { + "$ref": "#/definitions/IndexBatch" + } } ], - "x-ms-request-id": "request-id", "responses": { - "201": { - "description": "", + "200": { + "description": "Response containing the status of operations for all documents in the indexing request.", "schema": { - "$ref": "#/definitions/SearchIndex" + "$ref": "#/definitions/IndexDocumentsResult" + } + }, + "207": { + "description": "Response containing the status of operations for all documents in the indexing request.", + "schema": { + "$ref": "#/definitions/IndexDocumentsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_List", + }, "x-ms-examples": { - "SearchServiceListIndexes": { - "$ref": "./examples/SearchServiceListIndexes.json" + "SearchIndexIndexDocuments": { + "$ref": "./examples/SearchIndexIndexDocuments.json" } - }, - "description": "Lists all indexes available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Indexes" - }, + } + } + }, + "/indexes('{indexName}')/docs/search.post.autocomplete": { + "post": { + "operationId": "Documents_AutocompletePost", + "description": "Autocompletes incomplete query terms based on input text and matching terms in the index.", "parameters": [ { - "name": "$select", - "in": "query", - "required": false, - "type": "string", - "description": "Selects which top-level properties of the index definitions to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AutocompleteRequest" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListIndexesResult" + "$ref": "#/definitions/AutocompleteResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "SearchIndexAutocompleteDocumentsPost": { + "$ref": "./examples/SearchIndexAutocompleteDocumentsPost.json" + } } } }, - "/indexes('{indexName}')": { - "put": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateIndex": { - "$ref": "./examples/SearchServiceCreateOrUpdateIndex.json" - } - }, - "description": "Creates a new search index or updates an index if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Update-Index" - }, + "/indexes('{indexName}')/docs/search.post.search": { + "post": { + "operationId": "Documents_SearchPost", + "description": "Searches for documents in the index.", "parameters": [ { - "name": "indexName", - "in": "path", - "required": true, - "type": "string", - "description": "The definition of the index to create or update." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "index", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndex" - }, - "description": "The definition of the index to create or update." + "name": "x-ms-query-source-authorization", + "in": "header", + "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", + "required": false, + "type": "string", + "x-ms-client-name": "querySourceAuthorization" }, { - "name": "allowIndexDowntime", - "in": "query", + "name": "x-ms-enable-elevated-read", + "in": "header", + "description": "A value that enables elevated read that bypass document level permission checks for the query operation.", "required": false, "type": "boolean", - "description": "Allows new analyzers, tokenizers, token filters, or char filters to be added to an index by taking the index offline for at least a few seconds. This temporarily causes indexing and query requests to fail. Performance and write availability of the index can be impaired for several minutes after the index is updated, or longer for very large indexes." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" + "x-ms-client-name": "enableElevatedRead" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/PreferHeaderParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SearchRequest" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndex" + "$ref": "#/definitions/SearchDocumentsResult" } }, - "201": { - "description": "", + "206": { + "description": "Successful", "schema": { - "$ref": "#/definitions/SearchIndex" + "$ref": "#/definitions/SearchDocumentsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteIndex": { - "$ref": "./examples/SearchServiceDeleteIndex.json" + "SearchIndexSearchDocumentsPost": { + "$ref": "./examples/SearchIndexSearchDocumentsPost.json" + }, + "SearchIndexSearchDocumentsSemanticPost": { + "$ref": "./examples/SearchIndexSearchDocumentsSemanticPost.json" } - }, - "description": "Deletes a search index and all the documents it contains. This operation is permanent, with no recovery option. Make sure you have a master copy of your index definition, data ingestion code, and a backup of the primary data source in case you need to re-build the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Index" - }, + } + } + }, + "/indexes('{indexName}')/docs/search.post.suggest": { + "post": { + "operationId": "Documents_SuggestPost", + "description": "Suggests documents in the index that match the given partial query text.", "parameters": [ { - "name": "indexName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the index to delete." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SuggestRequest" + } } ], - "x-ms-request-id": "request-id", "responses": { - "204": { - "description": "" - }, - "404": { - "description": "" + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SuggestDocumentsResult" + } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_Get", + }, "x-ms-examples": { - "SearchServiceGetIndex": { - "$ref": "./examples/SearchServiceGetIndex.json" + "SearchIndexSuggestDocumentsPost": { + "$ref": "./examples/SearchIndexSuggestDocumentsPost.json" } - }, - "description": "Retrieves an index definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Index" - }, + } + } + }, + "/indexes('{indexName}')/docs/search.suggest": { + "get": { + "operationId": "Documents_SuggestGet", + "description": "Suggests documents in the index that match the given partial query text.", "parameters": [ { - "name": "indexName", - "in": "path", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "search", + "in": "query", + "description": "The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.", "required": true, "type": "string", - "description": "The name of the index to retrieve." + "x-ms-client-name": "searchText" + }, + { + "name": "suggesterName", + "in": "query", + "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SuggestOptions.filter" + }, + { + "$ref": "#/parameters/SuggestOptions.useFuzzyMatching" + }, + { + "$ref": "#/parameters/SuggestOptions.highlightPostTag" + }, + { + "$ref": "#/parameters/SuggestOptions.highlightPreTag" + }, + { + "$ref": "#/parameters/SuggestOptions.minimumCoverage" + }, + { + "$ref": "#/parameters/SuggestOptions.orderBy" + }, + { + "$ref": "#/parameters/SuggestOptions.searchFields" + }, + { + "$ref": "#/parameters/SuggestOptions.select" + }, + { + "$ref": "#/parameters/SuggestOptions.top" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndex" + "$ref": "#/definitions/SuggestDocumentsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchIndexSuggestDocumentsGet": { + "$ref": "./examples/SearchIndexSuggestDocumentsGet.json" + } } } }, - "/indexes('{indexName}')/search.stats": { + "/indexes('{indexName}')/docs('{key}')": { "get": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_GetStatistics", - "x-ms-examples": { - "SearchServiceGetIndexStatistics": { - "$ref": "./examples/SearchServiceGetIndexStatistics.json" - } - }, - "description": "Returns statistics for the given index, including a document count and storage usage.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Index-Statistics" - }, + "operationId": "Documents_Get", + "description": "Retrieves a document from the index.", "parameters": [ { - "name": "indexName", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "x-ms-query-source-authorization", + "in": "header", + "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", + "required": false, + "type": "string", + "x-ms-client-name": "querySourceAuthorization" + }, + { + "name": "x-ms-enable-elevated-read", + "in": "header", + "description": "A value that enables elevated read that bypass document level permission checks for the query operation.", + "required": false, + "type": "boolean", + "x-ms-client-name": "enableElevatedRead" + }, + { + "name": "key", "in": "path", + "description": "The key of the document to retrieve.", "required": true, - "type": "string", - "description": "The name of the index for which to retrieve statistics." + "type": "string" + }, + { + "name": "$select", + "in": "query", + "description": "List of field names to retrieve for the document; Any field not retrieved will be missing from the returned document.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-client-name": "selectedFields" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/GetIndexStatisticsResult" + "$ref": "#/definitions/LookupDocument" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchIndexGetDocument": { + "$ref": "./examples/SearchIndexGetDocument.json" + } } } }, "/indexes('{indexName}')/search.analyze": { "post": { - "tags": [ - "Indexes" - ], "operationId": "Indexes_Analyze", - "x-ms-examples": { - "SearchServiceIndexAnalyze": { - "$ref": "./examples/SearchServiceIndexAnalyze.json" - } - }, "description": "Shows how an analyzer breaks text into tokens.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/test-analyzer" - }, "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "indexName", "in": "path", + "description": "The name of the index.", "required": true, "type": "string", - "description": "The name of the index for which to test an analyzer." + "x-ms-client-name": "name" }, { "name": "request", "in": "body", + "description": "The text and analyzer or analysis components to test.", "required": true, "schema": { "$ref": "#/definitions/AnalyzeRequest" - }, - "description": "The text and analyzer or analysis components to test." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/AnalyzeResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceIndexAnalyze": { + "$ref": "./examples/SearchServiceIndexAnalyze.json" + } } } }, - "/aliases": { - "post": { - "tags": [ - "Aliases" - ], - "operationId": "Aliases_Create", - "x-ms-examples": { - "SearchServiceCreateAlias": { - "$ref": "./examples/SearchServiceCreateAlias.json" - } - }, - "description": "Creates a new search alias.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Alias" - }, + "/indexes('{indexName}')/search.stats": { + "get": { + "operationId": "Indexes_GetStatistics", + "description": "Returns statistics for the given index, including a document count and storage usage.", "parameters": [ { - "name": "alias", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchAlias" - }, - "description": "The definition of the alias to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "201": { - "description": "", + "200": { + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchAlias" + "$ref": "#/definitions/GetIndexStatisticsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "Aliases" - ], - "operationId": "Aliases_List", + }, "x-ms-examples": { - "SearchServiceListAliases": { - "$ref": "./examples/SearchServiceListAliases.json" + "SearchServiceGetIndexStatistics": { + "$ref": "./examples/SearchServiceGetIndexStatistics.json" } - }, - "description": "Lists all aliases available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Aliases" - }, + } + } + }, + "/indexstats": { + "get": { + "operationId": "GetIndexStatsSummary", + "description": "Retrieves a summary of statistics for all indexes in the search service.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListAliasesResult" + "$ref": "#/definitions/ListIndexStatsSummary" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "SearchServiceGetIndexStatsSummary": { + "$ref": "./examples/SearchServiceGetIndexStatsSummary.json" + } } } }, - "/aliases('{aliasName}')": { - "put": { - "tags": [ - "Aliases" - ], - "operationId": "Aliases_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateAlias": { - "$ref": "./examples/SearchServiceCreateOrUpdateAlias.json" - } - }, - "description": "Creates a new search alias or updates an alias if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Update-Alias" - }, + "/knowledgebases": { + "get": { + "operationId": "KnowledgeBases_List", + "description": "Lists all knowledge bases available for a search service.", "parameters": [ { - "name": "aliasName", - "in": "path", - "required": true, - "type": "string", - "description": "The definition of the alias to create or update." - }, - { - "name": "alias", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchAlias" - }, - "description": "The definition of the alias to create or update." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" - }, - { - "$ref": "#/parameters/PreferHeaderParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchAlias" - } - }, - "201": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchAlias" + "$ref": "#/definitions/ListKnowledgeBasesResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "Aliases" - ], - "operationId": "Aliases_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteAlias": { - "$ref": "./examples/SearchServiceDeleteAlias.json" + "SearchServiceListKnowledgeBases": { + "$ref": "./examples/SearchServiceListKnowledgeBases.json" } - }, - "description": "Deletes a search alias and its associated mapping to an index. This operation is permanent, with no recovery option. The mapped index is untouched by this operation.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Alias" - }, + } + }, + "post": { + "operationId": "KnowledgeBases_Create", + "description": "Creates a new knowledge base.", "parameters": [ { - "name": "aliasName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the alias to delete." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "knowledgeBase", + "in": "body", + "description": "The definition of the knowledge base to create.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceCreateKnowledgeBase": { + "$ref": "./examples/SearchServiceCreateKnowledgeBase.json" + } + } + } + }, + "/knowledgebases('{knowledgeBaseName}')": { + "get": { + "operationId": "KnowledgeBases_Get", + "description": "Retrieves a knowledge base definition.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "knowledgeBaseName", + "in": "path", + "description": "The name of the knowledge base.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "204": { - "description": "" - }, - "404": { - "description": "" + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceGetKnowledgeBase": { + "$ref": "./examples/SearchServiceGetKnowledgeBase.json" + } } }, - "get": { - "tags": [ - "Aliases" + "put": { + "operationId": "KnowledgeBases_CreateOrUpdate", + "description": "Creates a new knowledge base or updates a knowledge base if it already exists.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "knowledgeBaseName", + "in": "path", + "description": "The name of the knowledge base.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "knowledgeBase", + "in": "body", + "description": "The definition of the knowledge base to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + } ], - "operationId": "Aliases_Get", - "x-ms-examples": { - "SearchServiceGetAlias": { - "$ref": "./examples/SearchServiceGetAlias.json" + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } } }, - "description": "Retrieves an alias definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Alias" + "x-ms-examples": { + "SearchServiceCreateOrUpdateKnowledgeBase": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeBase.json" + } + } + }, + "delete": { + "operationId": "KnowledgeBases_Delete", + "description": "Deletes a knowledge base.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "knowledgeBaseName", + "in": "path", + "description": "The name of the knowledge base.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, + "x-ms-examples": { + "SearchServiceDeleteKnowledgeBase": { + "$ref": "./examples/SearchServiceDeleteKnowledgeBase.json" + } + } + } + }, + "/knowledgebases('{knowledgeBaseName}')/retrieve": { + "post": { + "operationId": "KnowledgeRetrieval_Retrieve", + "description": "KnowledgeBase retrieves relevant data from backing stores.", "parameters": [ { - "name": "aliasName", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "knowledgeBaseName", "in": "path", + "description": "The name of the knowledge base.", "required": true, + "type": "string" + }, + { + "name": "x-ms-query-source-authorization", + "in": "header", + "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", + "required": false, "type": "string", - "description": "The name of the alias to retrieve." + "x-ms-client-name": "querySourceAuthorization" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "retrievalRequest", + "in": "body", + "description": "The retrieval request to process.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeBaseRetrievalRequest" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "Successful retrieval response.", "schema": { - "$ref": "#/definitions/SearchAlias" + "$ref": "#/definitions/KnowledgeBaseRetrievalResponse" + } + }, + "206": { + "description": "Partial retrieval response.", + "schema": { + "$ref": "#/definitions/KnowledgeBaseRetrievalResponse" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "KnowledgeBaseRetrieve": { + "$ref": "./examples/KnowledgeBaseRetrieve.json" + }, + "KnowledgeBaseRetrieveWithIntents": { + "$ref": "./examples/KnowledgeBaseRetrieveWithIntents.json" + } } } }, - "/servicestats": { + "/knowledgesources": { "get": { - "tags": [ - "Service" + "operationId": "KnowledgeSources_List", + "description": "Lists all knowledge sources available for a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } ], - "operationId": "GetServiceStatistics", - "x-ms-examples": { - "SearchServiceGetServiceStatistics": { - "$ref": "./examples/SearchServiceGetServiceStatistics.json" + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListKnowledgeSourcesResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } } }, - "description": "Gets service level statistics for a search service.", + "x-ms-examples": { + "SearchServiceListKnowledgeSources": { + "$ref": "./examples/SearchServiceListKnowledgeSources.json" + }, + "SearchServiceListKnowledgeSourcesAzureBlob": { + "$ref": "./examples/SearchServiceListKnowledgeSourcesAzureBlob.json" + }, + "SearchServiceListKnowledgeSourcesIndexedOneLake": { + "$ref": "./examples/SearchServiceListKnowledgeSourcesIndexedOneLake.json" + }, + "SearchServiceListKnowledgeSourcesIndexedSharePoint": { + "$ref": "./examples/SearchServiceListKnowledgeSourcesIndexedSharePoint.json" + }, + "SearchServiceListKnowledgeSourcesWeb": { + "$ref": "./examples/SearchServiceListKnowledgeSourcesWeb.json" + } + } + }, + "post": { + "operationId": "KnowledgeSources_Create", + "description": "Creates a new knowledge source.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "knowledgeSource", + "in": "body", + "description": "The definition of the knowledge source to create.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeSource" + } } ], - "x-ms-request-id": "request-id", "responses": { - "200": { - "description": "", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/ServiceStatistics" + "$ref": "#/definitions/KnowledgeSource" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateKnowledgeSource": { + "$ref": "./examples/SearchServiceCreateKnowledgeSource.json" + }, + "SearchServiceCreateKnowledgeSourceAzureBlob": { + "$ref": "./examples/SearchServiceCreateKnowledgeSourceAzureBlob.json" + }, + "SearchServiceCreateKnowledgeSourceIndexedOneLake": { + "$ref": "./examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json" + }, + "SearchServiceCreateKnowledgeSourceIndexedSharePoint": { + "$ref": "./examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json" + }, + "SearchServiceCreateKnowledgeSourceWeb": { + "$ref": "./examples/SearchServiceCreateKnowledgeSourceWeb.json" + } } } }, - "/indexstats": { + "/knowledgesources('{sourceName}')": { "get": { - "tags": [ - "Service" - ], - "operationId": "GetIndexStatsSummary", - "x-ms-examples": { - "SearchServiceIndexStatsSummary": { - "$ref": "./examples/SearchServiceGetIndexStatsSummary.json" - } - }, - "description": "Retrieves a summary of statistics for all indexes in the search service.", + "operationId": "KnowledgeSources_Get", + "description": "Retrieves a knowledge source definition.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "sourceName", + "in": "path", + "description": "The name of the knowledge source.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], "responses": { "200": { - "description": "Statistics summary for all indexes.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListIndexStatsSummary" + "$ref": "#/definitions/KnowledgeSource" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null - } - } - } - }, - "definitions": { - "KnowledgeBase": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the knowledge knowledge base." - }, - "knowledgeSources": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeSourceReference" - } - }, - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseModel" + "x-ms-examples": { + "SearchServiceGetKnowledgeSource": { + "$ref": "./examples/SearchServiceGetKnowledgeSource.json" }, - "description": "Contains configuration options on how to connect to AI models." - }, - "retrievalReasoningEffort": { - "$ref": "knowledgebase.json#/definitions/KnowledgeRetrievalReasoningEffort" - }, - "outputMode": { - "$ref": "knowledgebase.json#/definitions/KnowledgeRetrievalOutputMode" - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the knowledge base." - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your knowledge base definition when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your knowledge base definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your knowledge base definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" + "SearchServiceGetKnowledgeSourceAzureBlob": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceAzureBlob.json" }, - "x-nullable": true - }, - "description": { - "type": "string", - "description": "The description of the knowledge base." - }, - "retrievalInstructions": { - "type": "string", - "description": "Instructions considered by the knowledge knowledge base when developing query plan." - }, - "answerInstructions": { - "type": "string", - "description": "Instructions considered by the knowledge knowledge base when generating answers." - } - }, - "required": [ - "name", - "knowledgeSources" - ] - }, - "KnowledgeSourceReference": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the knowledge source." - } - }, - "required": [ - "name" - ] - }, - "ListKnowledgeBasesResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "KnowledgeBases", - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBase" + "SearchServiceGetKnowledgeSourceIndexedOneLake": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceIndexedOneLake.json" + }, + "SearchServiceGetKnowledgeSourceIndexedSharePoint": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceIndexedSharePoint.json" + }, + "SearchServiceGetKnowledgeSourceWeb": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceWeb.json" } } }, - "required": [ - "value" - ] - }, - "KnowledgeBaseModel": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/KnowledgeBaseModelKind", - "description": "The type of AI model.", - "x-nullable": false - } - }, - "required": [ - "kind" - ], - "description": "Specifies the connection parameters for the model to use for query planning." - }, - "KnowledgeBaseModelKind": { - "type": "string", - "enum": [ - "azureOpenAI" - ], - "x-ms-enum": { - "name": "KnowledgeBaseModelKind", - "modelAsString": true, - "values": [ + "put": { + "operationId": "KnowledgeSources_CreateOrUpdate", + "description": "Creates a new knowledge source or updates an knowledge source if it already exists.", + "parameters": [ { - "value": "azureOpenAI", - "name": "AzureOpenAI", - "description": "Use Azure Open AI models for query planning." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "sourceName", + "in": "path", + "description": "The name of the knowledge source.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "knowledgeSource", + "in": "body", + "description": "The definition of the knowledge source to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeSource" + } } - ] - }, - "description": "The AI model to be used for query planning." - }, - "KnowledgeBaseAzureOpenAIModel": { - "type": "object", - "x-ms-discriminator-value": "azureOpenAI", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseModel" - } - ], - "properties": { - "azureOpenAIParameters": { - "x-ms-client-name": "AzureOpenAIParameters", - "$ref": "#/definitions/AzureOpenAIParameters", - "description": "Contains the parameters specific to Azure OpenAI model endpoint." - } - }, - "required": [ - "azureOpenAIParameters" - ], - "description": "Specifies the Azure OpenAI resource used to do query planning." - }, - "KnowledgeSource": { - "type": "object", - "discriminator": "kind", - "properties": { - "name": { - "type": "string", - "description": "The name of the knowledge source." - }, - "description": { - "type": "string", - "description": "Optional user-defined description." - }, - "kind": { - "$ref": "#/definitions/KnowledgeSourceKind", - "x-nullable": false, - "description": "The type of the knowledge source." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the knowledge base." - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your knowledge base definition when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your knowledge base definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your knowledge base definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/KnowledgeSource" + } }, - "x-nullable": true - } - }, - "required": [ - "name", - "kind" - ], - "description": "Represents a knowledge source definition." - }, - "SearchIndexKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "searchIndex", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "searchIndexParameters": { - "$ref": "#/definitions/SearchIndexKnowledgeSourceParameters", - "description": "The parameters for the knowledge source." - } - }, - "required": [ - "searchIndexParameters" - ], - "description": "Knowledge Source targeting a search index." - }, - "SearchIndexKnowledgeSourceParameters": { - "type": "object", - "properties": { - "searchIndexName": { - "type": "string", - "description": "The name of the Search index." - }, - "sourceDataFields": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexFieldReference" + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/KnowledgeSource" + } }, - "description": "Used to request additional fields for referenced source data." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "searchFields": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexFieldReference" + "x-ms-examples": { + "SearchServiceCreateOrUpdateKnowledgeSource": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSource.json" }, - "description": "Used to restrict which fields to search on the search index." - }, - "semanticConfigurationName": { - "type": "string", - "description": "Used to specify a different semantic configuration on the target search index other than the default one." + "SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json" + }, + "SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json" + }, + "SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json" + }, + "SearchServiceCreateOrUpdateKnowledgeSourceWeb": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json" + } } }, - "required": [ - "searchIndexName" - ], - "description": "Parameters for search index knowledge source." - }, - "SearchIndexFieldReference": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - }, - "AzureBlobKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "azureBlob", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "azureBlobParameters": { - "$ref": "#/definitions/AzureBlobKnowledgeSourceParameters", - "description": "The type of the knowledge source." - } - }, - "required": [ - "azureBlobParameters" - ], - "description": "Configuration for Azure Blob Storage knowledge source." - }, - "AzureBlobKnowledgeSourceParameters": { - "type": "object", - "properties": { - "connectionString": { - "type": "string", - "description": "Key-based connection string or the ResourceId format if using a managed identity." - }, - "containerName": { - "type": "string", - "description": "The name of the blob storage container." - }, - "folderPath": { - "type": "string", - "description": "Optional folder path within the container.", - "x-nullable": true - }, - "isADLSGen2": { - "type": "boolean", - "description": "Set to true if connecting to an ADLS Gen2 storage account. Default is false.", - "default": false - }, - "ingestionParameters": { - "$ref": "#/definitions/KnowledgeSourceIngestionParameters", - "description": "Consolidates all general ingestion settings.", - "x-nullable": true + "delete": { + "operationId": "KnowledgeSources_Delete", + "description": "Deletes an existing knowledge source.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "sourceName", + "in": "path", + "description": "The name of the knowledge source.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "createdResources": { - "$ref": "#/definitions/CreatedResources", - "description": "Resources created by the knowledge source.", - "readOnly": true + "x-ms-examples": { + "SearchServiceDeleteKnowledgeSource": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSource.json" + }, + "SearchServiceDeleteKnowledgeSourceAzureBlob": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSourceAzureBlob.json" + }, + "SearchServiceDeleteKnowledgeSourceIndexedOneLake": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json" + }, + "SearchServiceDeleteKnowledgeSourceIndexedSharePoint": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json" + }, + "SearchServiceDeleteKnowledgeSourceWeb": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSourceWeb.json" + } } - }, - "required": [ - "connectionString", - "containerName" - ], - "description": "Parameters for Azure Blob Storage knowledge source." + } }, - "IndexedSharePointKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "indexedSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "indexedSharePointParameters": { - "$ref": "#/definitions/IndexedSharePointKnowledgeSourceParameters", - "description": "The parameters for the SharePoint knowledge source." + "/knowledgesources('{sourceName}')/status": { + "get": { + "operationId": "KnowledgeSources_GetStatus", + "description": "Retrieves the status of a knowledge source.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "sourceName", + "in": "path", + "description": "The name of the knowledge source.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/KnowledgeSourceStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceGetKnowledgeSourceStatus": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceStatus.json" + } } - }, - "required": [ - "indexedSharePointParameters" - ], - "description": "Configuration for SharePoint knowledge source." + } }, - "IndexedSharePointKnowledgeSourceParameters": { - "type": "object", - "properties": { - "connectionString": { - "type": "string", - "description": "SharePoint connection string with format: SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]" - }, - "containerName": { - "type": "string", - "enum": [ - "defaultSiteLibrary", - "allSiteLibraries", - "useQuery" - ], - "x-ms-enum": { - "name": "IndexedSharePointContainerName", - "modelAsString": true, - "values": [ - { - "value": "defaultSiteLibrary", - "name": "DefaultSiteLibrary", - "description": "Index content from the site's default document library." - }, - { - "value": "allSiteLibraries", - "name": "AllSiteLibraries", - "description": "Index content from every document library in the site." - }, - { - "value": "useQuery", - "name": "UseQuery", - "description": "Index only content that matches the query specified in the knowledge source." - } - ] + "/servicestats": { + "get": { + "operationId": "GetServiceStatistics", + "description": "Gets service level statistics for a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "description": "Specifies which SharePoint libraries to access." - }, - "query": { - "type": "string", - "description": "Optional query to filter SharePoint content.", - "x-nullable": true - }, - "ingestionParameters": { - "$ref": "#/definitions/KnowledgeSourceIngestionParameters", - "description": "Consolidates all general ingestion settings.", - "x-nullable": true + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchServiceStatistics" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "createdResources": { - "$ref": "#/definitions/CreatedResources", - "description": "Resources created by the knowledge source.", - "readOnly": true + "x-ms-examples": { + "SearchServiceGetS3HDUnlimitedServiceStatistics": { + "$ref": "./examples/SearchServiceGetS3HDUnlimitedServiceStatistics.json" + }, + "SearchServiceGetServiceStatistics": { + "$ref": "./examples/SearchServiceGetServiceStatistics.json" + } } - }, - "required": [ - "connectionString", - "containerName" - ], - "description": "Parameters for SharePoint knowledge source." + } }, - "IndexedOneLakeKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "indexedOneLake", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "indexedOneLakeParameters": { - "$ref": "#/definitions/IndexedOneLakeKnowledgeSourceParameters", - "description": "The parameters for the OneLake knowledge source." + "/skillsets": { + "get": { + "operationId": "Skillsets_List", + "description": "List all skillsets in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "$select", + "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", + "required": false, + "type": "string", + "format": "ArrayEncoding.commaDelimited" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListSkillsetsResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceListSkillsets": { + "$ref": "./examples/SearchServiceListSkillsets.json" + } } }, - "required": [ - "indexedOneLakeParameters" - ], - "description": "Configuration for OneLake knowledge source." - }, - "IndexedOneLakeKnowledgeSourceParameters": { - "type": "object", - "properties": { - "fabricWorkspaceId": { - "type": "string", - "description": "OneLake workspace ID." - }, - "lakehouseId": { - "type": "string", - "description": "Specifies which OneLake lakehouse to access." - }, - "targetPath": { - "type": "string", - "description": "Optional OneLakehouse folder or shortcut to filter OneLake content.", - "x-nullable": true - }, - "ingestionParameters": { - "$ref": "#/definitions/KnowledgeSourceIngestionParameters", - "description": "Consolidates all general ingestion settings.", - "x-nullable": true + "post": { + "operationId": "Skillsets_Create", + "description": "Creates a new skillset in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillset", + "in": "body", + "description": "The skillset containing one or more skills to create in a search service.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "createdResources": { - "$ref": "#/definitions/CreatedResources", - "description": "Resources created by the knowledge source.", - "readOnly": true + "x-ms-examples": { + "SearchServiceCreateSkillset": { + "$ref": "./examples/SearchServiceCreateSkillset.json" + } } - }, - "required": [ - "fabricWorkspaceId", - "lakehouseId" - ], - "description": "Parameters for OneLake knowledge source." + } }, - "KnowledgeSourceIngestionParameters": { - "type": "object", - "properties": { - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "An explicit identity to use for this knowledge source." - }, - "embeddingModel": { - "$ref": "#/definitions/KnowledgeSourceVectorizer", - "description": "Optional vectorizer configuration for vectorizing content.", - "x-nullable": true - }, - "chatCompletionModel": { - "$ref": "#/definitions/KnowledgeBaseModel", - "description": "Optional chat completion model for image verbalization or context extraction.", - "x-nullable": true - }, - "disableImageVerbalization": { - "type": "boolean", - "description": "Indicates whether image verbalization should be disabled. Default is false.", - "default": false - }, - "ingestionSchedule": { - "$ref": "#/definitions/IndexingSchedule", - "description": "Optional schedule for data ingestion.", - "x-nullable": true + "/skillsets('{skillsetName}')": { + "get": { + "operationId": "Skillsets_Get", + "description": "Retrieves a skillset in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillsetName", + "in": "path", + "description": "The name of the skillset.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "ingestionPermissionOptions": { - "type": "array", - "items": { + "x-ms-examples": { + "SearchServiceGetSkillset": { + "$ref": "./examples/SearchServiceGetSkillset.json" + } + } + }, + "put": { + "operationId": "Skillsets_CreateOrUpdate", + "description": "Creates a new skillset in a search service or updates the skillset if it already exists.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, "type": "string", "enum": [ - "userIds", - "groupIds", - "rbacScope" + "return=representation" ], "x-ms-enum": { - "name": "KnowledgeSourceIngestionPermissionOption", - "modelAsString": true, - "values": [ - { - "value": "userIds", - "name": "UserIds", - "description": "Ingest explicit user identifiers alongside document content." - }, - { - "value": "groupIds", - "name": "GroupIds", - "description": "Ingest group identifiers alongside document content." - }, - { - "value": "rbacScope", - "name": "RbacScope", - "description": "Ingest RBAC scope information alongside document content." - } - ] + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, + { + "name": "ignoreResetRequirements", + "in": "query", + "description": "Ignores cache reset requirements.", + "required": false, + "type": "boolean", + "x-ms-client-name": "skipIndexerResetRequirementForCache" + }, + { + "name": "disableCacheReprocessingChangeDetection", + "in": "query", + "description": "Disables cache reprocessing change detection.", + "required": false, + "type": "boolean" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillsetName", + "in": "path", + "description": "The name of the skillset.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "skillset", + "in": "body", + "description": "The skillset containing one or more skills to create or update in a search service.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" } }, - "description": "Optional list of permission types to ingest together with document content. If specified, it will set the indexer permission options for the data source.", - "x-nullable": true - }, - "contentExtractionMode": { - "type": "string", - "enum": [ - "minimal", - "standard" - ], - "x-ms-enum": { - "name": "KnowledgeSourceContentExtractionMode", - "modelAsString": true, - "values": [ - { - "value": "minimal", - "name": "Minimal", - "description": "Extracts only essential metadata while deferring most content processing." - }, - { - "value": "standard", - "name": "Standard", - "description": "Performs the full default content extraction pipeline." - } - ] + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } }, - "description": "Optional content extraction mode. Default is 'minimal'.", - "default": "minimal", - "x-nullable": true - }, - "aiServices": { - "$ref": "#/definitions/AIServices", - "description": "Optional AI Services configuration for content processing.", - "x-nullable": true - } - }, - "description": "Consolidates all general ingestion settings for knowledge sources." - }, - "AIServices": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "format": "uri", - "description": "The URI of the AI Services endpoint." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "apiKey": { - "type": "string", - "description": "The API key for accessing AI Services." - } - }, - "required": [ - "uri" - ], - "description": "Parameters for Azure Blob Storage knowledge source." - }, - "WebKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "web", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "webParameters": { - "$ref": "#/definitions/WebKnowledgeSourceParameters", - "description": "The parameters for the web knowledge source." + "x-ms-examples": { + "SearchServiceCreateOrUpdateSkillset": { + "$ref": "./examples/SearchServiceCreateOrUpdateSkillset.json" + } } }, - "description": "Knowledge Source targeting web results." - }, - "WebKnowledgeSourceParameters": { - "type": "object", - "properties": { - "domains": { - "$ref": "#/definitions/WebKnowledgeSourceDomains", - "description": "Domain allow/block configuration for web results." - } - }, - "description": "Parameters for web knowledge source." - }, - "WebKnowledgeSourceDomains": { - "type": "object", - "properties": { - "allowedDomains": { - "type": "array", - "items": { - "$ref": "#/definitions/WebKnowledgeSourceDomain" + "delete": { + "operationId": "Skillsets_Delete", + "description": "Deletes a skillset in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "description": "Domains that are allowed for web results" - }, - "blockedDomains": { - "type": "array", - "items": { - "$ref": "#/definitions/WebKnowledgeSourceDomain" + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, - "description": "Domains that are blocked from web results" - } - }, - "description": "Domain allow/block configuration for web knowledge source." - }, - "WebKnowledgeSourceDomain": { - "type": "object", - "properties": { - "address": { - "type": "string", - "description": "The address of the domain." + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillsetName", + "in": "path", + "description": "The name of the skillset.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "includeSubpages": { - "type": "boolean", - "description": "Whether or not to include subpages from this domain." + "x-ms-examples": { + "SearchServiceDeleteSkillset": { + "$ref": "./examples/SearchServiceDeleteSkillset.json" + } } - }, - "required": [ - "address" - ], - "description": "Configuration for web knowledge source domain." + } }, - "RemoteSharePointKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "remoteSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "remoteSharePointParameters": { - "$ref": "#/definitions/RemoteSharePointKnowledgeSourceParameters", - "description": "The parameters for the knowledge source." + "/skillsets('{skillsetName}')/search.resetskills": { + "post": { + "operationId": "Skillsets_ResetSkills", + "description": "Reset an existing skillset in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillsetName", + "in": "path", + "description": "The name of the skillset.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "skillNames", + "in": "body", + "description": "The names of the skills to reset. If not specified, all skills in the skillset will be reset.", + "required": true, + "schema": { + "$ref": "#/definitions/SkillNames" + } + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceResetSkills": { + "$ref": "./examples/SearchServiceResetSkills.json" + } } - }, - "description": "Configuration for remote SharePoint knowledge source." + } }, - "RemoteSharePointKnowledgeSourceParameters": { - "type": "object", - "properties": { - "filterExpression": { - "type": "string", - "description": "Keyword Query Language (KQL) expression with queryable SharePoint properties and attributes to scope the retrieval before the query runs. See documentation: https://learn.microsoft.com/en-us/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference" - }, - "resourceMetadata": { - "type": "array", - "items": { - "type": "string" + "/synonymmaps": { + "get": { + "operationId": "SynonymMaps_List", + "description": "Lists all synonym maps available for a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "$select", + "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", + "required": false, + "type": "string", + "format": "ArrayEncoding.commaDelimited" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListSynonymMapsResult" + } }, - "description": "A list of metadata fields to be returned for each item in the response. Only retrievable metadata properties can be included in this list. By default, no metadata is returned. Optional." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "containerTypeId": { - "type": "string", - "description": "Container ID for SharePoint Embedded connection. When this is null, it will use SharePoint Online." + "x-ms-examples": { + "SearchServiceListSynonymMaps": { + "$ref": "./examples/SearchServiceListSynonymMaps.json" + } } }, - "description": "Parameters for remote SharePoint knowledge source." - }, - "KnowledgeSourceKind": { - "type": "string", - "enum": [ - "searchIndex", - "azureBlob", - "web", - "remoteSharePoint", - "indexedSharePoint", - "indexedOneLake" - ], - "x-ms-enum": { - "name": "KnowledgeSourceKind", - "modelAsString": true, - "values": [ + "post": { + "operationId": "SynonymMaps_Create", + "description": "Creates a new synonym map.", + "parameters": [ { - "value": "searchIndex", - "name": "SearchIndex", - "description": "A knowledge source that retrieves data from a Search Index." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "value": "azureBlob", - "name": "AzureBlob", - "description": "A knowledge source that retrieves and ingests data from Azure Blob Storage to a Search Index." + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "value": "web", - "name": "Web", - "description": "A knowledge source that retrieves data from the web." + "name": "synonymMap", + "in": "body", + "description": "The definition of the synonym map to create.", + "required": true, + "schema": { + "$ref": "#/definitions/SynonymMap" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SynonymMap" + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceCreateSynonymMap": { + "$ref": "./examples/SearchServiceCreateSynonymMap.json" + } + } + } + }, + "/synonymmaps('{synonymMapName}')": { + "get": { + "operationId": "SynonymMaps_Get", + "description": "Retrieves a synonym map definition.", + "parameters": [ { - "value": "remoteSharePoint", - "name": "RemoteSharePoint", - "description": "A knowledge source that retrieves data from a remote SharePoint endpoint." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "value": "indexedSharePoint", - "name": "IndexedSharePoint", - "description": "A knowledge source that retrieves and ingests data from SharePoint to a Search Index." + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "value": "indexedOneLake", - "name": "IndexedOneLake", - "description": "A knowledge source that retrieves and ingests data from OneLake to a Search Index." + "name": "synonymMapName", + "in": "path", + "description": "The name of the synonym map.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } - ] - }, - "description": "The kind of the knowledge source." - }, - "ListKnowledgeSourcesResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "KnowledgeSources", - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeSource" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SynonymMap" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceGetSynonymMap": { + "$ref": "./examples/SearchServiceGetSynonymMap.json" } } }, - "required": [ - "value" - ] - }, - "CreatedResources": { - "type": "object", - "additionalProperties": { - "type": "string", - "description": "The name of the created resource." + "put": { + "operationId": "SynonymMaps_CreateOrUpdate", + "description": "Creates a new synonym map or updates a synonym map if it already exists.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "synonymMapName", + "in": "path", + "description": "The name of the synonym map.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "synonymMap", + "in": "body", + "description": "The definition of the synonym map to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SynonymMap" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SynonymMap" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SynonymMap" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceCreateOrUpdateSynonymMap": { + "$ref": "./examples/SearchServiceCreateOrUpdateSynonymMap.json" + } + } }, - "description": "Resources created by the knowledge source. Keys represent resource types (e.g., 'datasource', 'indexer', 'skillset', 'index') and values represent resource names." + "delete": { + "operationId": "SynonymMaps_Delete", + "description": "Deletes a synonym map.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "synonymMapName", + "in": "path", + "description": "The name of the synonym map.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceDeleteSynonymMap": { + "$ref": "./examples/SearchServiceDeleteSynonymMap.json" + } + } + } + } + }, + "definitions": { + "AIFoundryModelCatalogName": { + "type": "string", + "description": "The name of the embedding model from the Azure AI Foundry Catalog that will be called.", + "enum": [ + "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", + "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", + "Facebook-DinoV2-Image-Embeddings-ViT-Base", + "Facebook-DinoV2-Image-Embeddings-ViT-Giant", + "Cohere-embed-v3-english", + "Cohere-embed-v3-multilingual", + "Cohere-embed-v4" + ], + "x-ms-enum": { + "name": "AIFoundryModelCatalogName", + "modelAsString": true, + "values": [ + { + "name": "OpenAICLIPImageTextEmbeddingsVitBasePatch32", + "value": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", + "description": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + }, + { + "name": "OpenAICLIPImageTextEmbeddingsViTLargePatch14336", + "value": "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", + "description": "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336" + }, + { + "name": "FacebookDinoV2ImageEmbeddingsViTBase", + "value": "Facebook-DinoV2-Image-Embeddings-ViT-Base", + "description": "Facebook-DinoV2-Image-Embeddings-ViT-Base" + }, + { + "name": "FacebookDinoV2ImageEmbeddingsViTGiant", + "value": "Facebook-DinoV2-Image-Embeddings-ViT-Giant", + "description": "Facebook-DinoV2-Image-Embeddings-ViT-Giant" + }, + { + "name": "CohereEmbedV3English", + "value": "Cohere-embed-v3-english", + "description": "Cohere-embed-v3-english" + }, + { + "name": "CohereEmbedV3Multilingual", + "value": "Cohere-embed-v3-multilingual", + "description": "Cohere-embed-v3-multilingual" + }, + { + "name": "CohereEmbedV4", + "value": "Cohere-embed-v4", + "description": "Cohere embed v4 model for generating embeddings from both text and images." + } + ] + } }, - "KnowledgeSourceStatus": { + "AIServices": { "type": "object", + "description": "Parameters for AI Services.", "properties": { - "synchronizationStatus": { + "uri": { "type": "string", - "enum": [ - "creating", - "active", - "deleting" - ], - "x-ms-enum": { - "name": "KnowledgeSourceSynchronizationStatus", - "modelAsString": true, - "values": [ - { - "value": "creating", - "name": "Creating", - "description": "The knowledge source is being provisioned." - }, - { - "value": "active", - "name": "Active", - "description": "The knowledge source is active and synchronization runs are occurring." - }, - { - "value": "deleting", - "name": "Deleting", - "description": "The knowledge source is being deleted and synchronization is paused." - } - ] - }, - "description": "The current synchronization status of the knowledge source." + "format": "uri", + "description": "The URI of the AI Services endpoint." }, - "synchronizationInterval": { + "apiKey": { "type": "string", - "description": "The synchronization interval (e.g., '1d' for daily). Null if no schedule is configured.", - "x-nullable": true - }, - "currentSynchronizationState": { - "$ref": "#/definitions/SynchronizationState", - "description": "Current synchronization state that spans multiple indexer runs.", - "x-nullable": true - }, - "lastSynchronizationState": { - "$ref": "#/definitions/CompletedSynchronizationState", - "description": "Details of the last completed synchronization. Null on first sync.", - "x-nullable": true - }, - "statistics": { - "$ref": "#/definitions/KnowledgeSourceStatistics", - "description": "Statistical information about the knowledge source synchronization history. Null on first sync.", - "x-nullable": true + "description": "The API key for accessing AI Services." } }, "required": [ - "synchronizationStatus" - ], - "description": "Represents the status and synchronization history of a knowledge source." + "uri" + ] }, - "KnowledgeSourceStatistics": { + "AIServicesAccountIdentity": { "type": "object", + "description": "The multi-region account of an Azure AI service resource that's attached to a skillset.", "properties": { - "totalSynchronization": { - "type": "integer", - "format": "int32", - "description": "The total number of synchronizations completed." + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for connections to AI Service. If not specified, the system-assigned managed identity is used. On updates to the skillset, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true }, - "averageSynchronizationDuration": { + "subdomainUrl": { "type": "string", - "description": "The average duration of synchronizations in HH:MM:SS format." - }, - "averageItemsProcessedPerSynchronization": { - "type": "integer", - "format": "int32", - "description": "The average number of items processed per synchronization." + "description": "The subdomain url for the corresponding AI Service." } }, "required": [ - "totalSynchronization", - "averageSynchronizationDuration", - "averageItemsProcessedPerSynchronization" + "subdomainUrl" + ], + "allOf": [ + { + "$ref": "#/definitions/CognitiveServicesAccount" + } ], - "description": "Statistical information about knowledge source synchronization history." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.AIServicesByIdentity" }, - "SynchronizationState": { + "AIServicesAccountKey": { "type": "object", + "description": "The account key of an Azure AI service resource that's attached to a skillset, to be used with the resource's subdomain.", "properties": { - "startTime": { + "key": { "type": "string", - "format": "date-time", - "description": "The start time of the current synchronization." - }, - "itemsUpdatesProcessed": { - "type": "integer", - "format": "int32", - "description": "The number of item updates successfully processed in the current synchronization." - }, - "itemsUpdatesFailed": { - "type": "integer", - "format": "int32", - "description": "The number of item updates that failed in the current synchronization." + "description": "The key used to provision the Azure AI service resource attached to a skillset." }, - "itemsSkipped": { - "type": "integer", - "format": "int32", - "description": "The number of items skipped in the current synchronization." + "subdomainUrl": { + "type": "string", + "description": "The subdomain url for the corresponding AI Service." } }, "required": [ - "startTime", - "itemsUpdatesProcessed", - "itemsUpdatesFailed", - "itemsSkipped" + "key", + "subdomainUrl" + ], + "allOf": [ + { + "$ref": "#/definitions/CognitiveServicesAccount" + } ], - "description": "Represents the current state of an ongoing synchronization that spans multiple indexer runs." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.AIServicesByKey" }, - "CompletedSynchronizationState": { + "AIServicesVisionParameters": { "type": "object", + "description": "Specifies the AI Services Vision parameters for vectorizing a query image or text.", "properties": { - "startTime": { + "modelVersion": { "type": "string", - "format": "date-time", - "description": "The start time of the last completed synchronization." + "description": "The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified.", + "x-nullable": true }, - "endTime": { + "resourceUri": { "type": "string", - "format": "date-time", - "description": "The end time of the last completed synchronization." + "format": "uri", + "description": "The resource URI of the AI Services resource." }, - "itemsUpdatesProcessed": { - "type": "integer", - "format": "int32", - "description": "The number of item updates successfully processed in the last synchronization." + "apiKey": { + "type": "string", + "description": "API key of the designated AI Services resource." }, - "itemsUpdatesFailed": { - "type": "integer", - "format": "int32", - "description": "The number of item updates that failed in the last synchronization." + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the index, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + } + }, + "required": [ + "modelVersion", + "resourceUri" + ] + }, + "AIServicesVisionVectorizer": { + "type": "object", + "description": "Clears the identity property of a datasource.", + "properties": { + "aiServicesVisionParameters": { + "$ref": "#/definitions/AIServicesVisionParameters", + "description": "Contains the parameters specific to AI Services Vision embedding vectorization." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchVectorizer" + } + ], + "x-ms-discriminator-value": "aiServicesVision" + }, + "AMLParameters": { + "type": "object", + "description": "Specifies the properties for connecting to an AML vectorizer.", + "properties": { + "uri": { + "type": "string", + "format": "uri", + "description": "(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed.", + "x-nullable": true }, - "itemsSkipped": { - "type": "integer", - "format": "int32", - "description": "The number of items skipped in the last synchronization." + "key": { + "type": "string", + "description": "(Required for key authentication) The key for the AML service.", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}.", + "x-nullable": true + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "(Optional) When specified, indicates the timeout for the http client making the API call.", + "x-nullable": true + }, + "region": { + "type": "string", + "description": "(Optional for token authentication). The region the AML service is deployed in.", + "x-nullable": true + }, + "modelName": { + "$ref": "#/definitions/AIFoundryModelCatalogName", + "description": "The name of the embedding model from the Azure AI Foundry Catalog that is deployed at the provided endpoint." } }, "required": [ - "startTime", - "endTime", - "itemsUpdatesProcessed", - "itemsUpdatesFailed", - "itemsSkipped" + "uri" + ] + }, + "AMLVectorizer": { + "type": "object", + "description": "Specifies an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog for generating the vector embedding of a query string.", + "properties": { + "amlParameters": { + "$ref": "#/definitions/AMLParameters", + "description": "Specifies the properties of the AML vectorizer." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchVectorizer" + } ], - "description": "Represents the completed state of the last synchronization." + "x-ms-discriminator-value": "aml" }, "AnalyzeRequest": { "type": "object", + "description": "Specifies some text and analysis components used to break that text into tokens.", "properties": { "text": { "type": "string", @@ -3596,70 +3731,65 @@ }, "tokenFilters": { "type": "array", + "description": "An optional list of token filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter.", "items": { - "$ref": "#/definitions/TokenFilterName", - "x-nullable": false - }, - "description": "An optional list of token filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter." + "$ref": "#/definitions/TokenFilterName" + } }, "charFilters": { "type": "array", + "description": "An optional list of character filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter.", "items": { - "$ref": "#/definitions/CharFilterName", - "x-nullable": false - }, - "description": "An optional list of character filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter." + "$ref": "#/definitions/CharFilterName" + } } }, "required": [ "text" - ], - "description": "Specifies some text and analysis components used to break that text into tokens." + ] }, "AnalyzeResult": { "type": "object", + "description": "The result of testing an analyzer on text.", "properties": { "tokens": { "type": "array", + "description": "The list of tokens returned by the analyzer specified in the request.", "items": { "$ref": "#/definitions/AnalyzedTokenInfo" - }, - "description": "The list of tokens returned by the analyzer specified in the request." + } } }, "required": [ "tokens" - ], - "description": "The result of testing an analyzer on text." + ] }, "AnalyzedTokenInfo": { "type": "object", + "description": "Information about a token returned by an analyzer.", "properties": { "token": { "type": "string", - "readOnly": true, - "description": "The token returned by the analyzer." + "description": "The token returned by the analyzer.", + "readOnly": true }, "startOffset": { "type": "integer", "format": "int32", - "readOnly": true, - "x-nullable": false, - "description": "The index of the first character of the token in the input text." + "description": "The index of the first character of the token in the input text.", + "readOnly": true }, "endOffset": { "type": "integer", "format": "int32", - "readOnly": true, - "x-nullable": false, - "description": "The index of the last character of the token in the input text." + "description": "The index of the last character of the token in the input text.", + "readOnly": true }, "position": { "type": "integer", "format": "int32", - "readOnly": true, - "x-nullable": false, - "description": "The position of the token in the input text relative to other tokens. The first token in the input text has position 0, the next has position 1, and so on. Depending on the analyzer used, some tokens might have the same position, for example if they are synonyms of each other." + "description": "The position of the token in the input text relative to other tokens. The first token in the input text has position 0, the next has position 1, and so on. Depending on the analyzer used, some tokens might have the same position, for example if they are synonyms of each other.", + "readOnly": true } }, "required": [ @@ -3667,11741 +3797,17445 @@ "startOffset", "endOffset", "position" + ] + }, + "AsciiFoldingTokenFilter": { + "type": "object", + "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. This token filter is implemented using Apache Lucene.", + "properties": { + "preserveOriginal": { + "type": "boolean", + "description": "A value indicating whether the original token will be kept. Default is false.", + "default": false + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } ], - "description": "Information about a token returned by an analyzer." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter" }, - "LexicalAnalyzerName": { + "AutocompleteItem": { + "type": "object", + "description": "The result of Autocomplete requests.", + "properties": { + "text": { + "type": "string", + "description": "The completed term.", + "readOnly": true + }, + "queryPlusText": { + "type": "string", + "description": "The query along with the completed term.", + "readOnly": true + } + }, + "required": [ + "text", + "queryPlusText" + ] + }, + "AutocompleteMode": { "type": "string", + "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context in producing autocomplete terms.", "enum": [ - "ar.microsoft", - "ar.lucene", - "hy.lucene", - "bn.microsoft", - "eu.lucene", - "bg.microsoft", - "bg.lucene", - "ca.microsoft", - "ca.lucene", - "zh-Hans.microsoft", - "zh-Hans.lucene", - "zh-Hant.microsoft", - "zh-Hant.lucene", - "hr.microsoft", - "cs.microsoft", - "cs.lucene", - "da.microsoft", - "da.lucene", - "nl.microsoft", - "nl.lucene", - "en.microsoft", - "en.lucene", - "et.microsoft", - "fi.microsoft", - "fi.lucene", - "fr.microsoft", - "fr.lucene", - "gl.lucene", - "de.microsoft", - "de.lucene", - "el.microsoft", - "el.lucene", - "gu.microsoft", - "he.microsoft", - "hi.microsoft", - "hi.lucene", - "hu.microsoft", - "hu.lucene", - "is.microsoft", - "id.microsoft", - "id.lucene", - "ga.lucene", - "it.microsoft", - "it.lucene", - "ja.microsoft", - "ja.lucene", - "kn.microsoft", - "ko.microsoft", - "ko.lucene", - "lv.microsoft", - "lv.lucene", - "lt.microsoft", - "ml.microsoft", - "ms.microsoft", - "mr.microsoft", - "nb.microsoft", - "no.lucene", - "fa.lucene", - "pl.microsoft", - "pl.lucene", - "pt-BR.microsoft", - "pt-BR.lucene", - "pt-PT.microsoft", - "pt-PT.lucene", - "pa.microsoft", - "ro.microsoft", - "ro.lucene", - "ru.microsoft", - "ru.lucene", - "sr-cyrillic.microsoft", - "sr-latin.microsoft", - "sk.microsoft", - "sl.microsoft", - "es.microsoft", - "es.lucene", - "sv.microsoft", - "sv.lucene", - "ta.microsoft", - "te.microsoft", - "th.microsoft", - "th.lucene", - "tr.microsoft", - "tr.lucene", - "uk.microsoft", - "ur.microsoft", - "vi.microsoft", - "standard.lucene", - "standardasciifolding.lucene", - "keyword", - "pattern", - "simple", - "stop", - "whitespace" + "oneTerm", + "twoTerms", + "oneTermWithContext" ], "x-ms-enum": { - "name": "LexicalAnalyzerName", + "name": "AutocompleteMode", "modelAsString": true, "values": [ { - "value": "ar.microsoft", - "name": "ArMicrosoft", - "description": "Microsoft analyzer for Arabic." - }, - { - "value": "ar.lucene", - "name": "ArLucene", - "description": "Lucene analyzer for Arabic." - }, - { - "value": "hy.lucene", - "name": "HyLucene", - "description": "Lucene analyzer for Armenian." - }, - { - "value": "bn.microsoft", - "name": "BnMicrosoft", - "description": "Microsoft analyzer for Bangla." + "name": "OneTerm", + "value": "oneTerm", + "description": "Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'." }, { - "value": "eu.lucene", - "name": "EuLucene", - "description": "Lucene analyzer for Basque." + "name": "TwoTerms", + "value": "twoTerms", + "description": "Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'." }, { - "value": "bg.microsoft", - "name": "BgMicrosoft", - "description": "Microsoft analyzer for Bulgarian." + "name": "OneTermWithContext", + "value": "oneTermWithContext", + "description": "Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'." + } + ] + } + }, + "AutocompleteRequest": { + "type": "object", + "description": "Parameters for fuzzy matching, and other autocomplete query behaviors.", + "properties": { + "search": { + "type": "string", + "description": "The search text on which to base autocomplete results." + }, + "autocompleteMode": { + "$ref": "#/definitions/AutocompleteMode", + "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms." + }, + "filter": { + "type": "string", + "description": "An OData expression that filters the documents used to produce completed terms for the Autocomplete result." + }, + "fuzzy": { + "type": "boolean", + "description": "A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will autocomplete terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources." + }, + "highlightPostTag": { + "type": "string", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled." + }, + "highlightPreTag": { + "type": "string", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled." + }, + "minimumCoverage": { + "type": "number", + "format": "double", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80." + }, + "searchFields": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester." + }, + "suggesterName": { + "type": "string", + "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." + }, + "top": { + "type": "integer", + "format": "int32", + "description": "The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5." + } + }, + "required": [ + "search", + "suggesterName" + ] + }, + "AutocompleteResult": { + "type": "object", + "description": "The result of Autocomplete query.", + "properties": { + "@search.coverage": { + "type": "number", + "format": "double", + "description": "A value indicating the percentage of the index that was considered by the autocomplete request, or null if minimumCoverage was not specified in the request.", + "readOnly": true, + "x-ms-client-name": "coverage" + }, + "value": { + "type": "array", + "description": "The list of returned Autocompleted items.", + "items": { + "$ref": "#/definitions/AutocompleteItem" }, + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "AzureActiveDirectoryApplicationCredentials": { + "type": "object", + "description": "Credentials of a registered application created for your search service, used for authenticated access to the encryption keys stored in Azure Key Vault.", + "properties": { + "applicationId": { + "type": "string", + "description": "An AAD Application ID that was granted the required access permissions to the Azure Key Vault that is to be used when encrypting your data at rest. The Application ID should not be confused with the Object ID for your AAD Application." + }, + "applicationSecret": { + "type": "string", + "description": "The authentication key of the specified AAD application." + } + }, + "required": [ + "applicationId" + ] + }, + "AzureBlobKnowledgeSource": { + "type": "object", + "description": "Configuration for Azure Blob Storage knowledge source.", + "properties": { + "azureBlobParameters": { + "$ref": "#/definitions/AzureBlobKnowledgeSourceParameters", + "description": "The type of the knowledge source." + } + }, + "required": [ + "azureBlobParameters" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSource" + } + ], + "x-ms-discriminator-value": "azureBlob" + }, + "AzureBlobKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for Azure Blob Storage knowledge source.", + "properties": { + "connectionString": { + "type": "string", + "description": "Key-based connection string or the ResourceId format if using a managed identity." + }, + "containerName": { + "type": "string", + "description": "The name of the blob storage container." + }, + "folderPath": { + "type": "string", + "description": "Optional folder path within the container.", + "x-nullable": true + }, + "isADLSGen2": { + "type": "boolean", + "description": "Set to true if connecting to an ADLS Gen2 storage account. Default is false.", + "default": false + }, + "ingestionParameters": { + "$ref": "#/definitions/KnowledgeSourceIngestionParameters", + "description": "Consolidates all general ingestion settings.", + "x-nullable": true + }, + "createdResources": { + "$ref": "#/definitions/CreatedResources", + "description": "Resources created by the knowledge source.", + "readOnly": true + } + }, + "required": [ + "connectionString", + "containerName" + ] + }, + "AzureBlobKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a azure blob knowledge source", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } + ], + "x-ms-discriminator-value": "azureBlob" + }, + "AzureMachineLearningSkill": { + "type": "object", + "description": "The AML skill allows you to extend AI enrichment with a custom Azure Machine Learning (AML) model. Once an AML model is trained and deployed, an AML skill integrates it into AI enrichment.", + "properties": { + "uri": { + "type": "string", + "format": "uri", + "description": "(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed.", + "x-nullable": true + }, + "key": { + "type": "string", + "description": "(Required for key authentication) The key for the AML service.", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}.", + "x-nullable": true + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "(Optional) When specified, indicates the timeout for the http client making the API call.", + "x-nullable": true + }, + "region": { + "type": "string", + "description": "(Optional for token authentication). The region the AML service is deployed in.", + "x-nullable": true + }, + "degreeOfParallelism": { + "type": "integer", + "format": "int32", + "description": "(Optional) When specified, indicates the number of calls the indexer will make in parallel to the endpoint you have provided. You can decrease this value if your endpoint is failing under too high of a request load, or raise it if your endpoint is able to accept more requests and you would like an increase in the performance of the indexer. If not set, a default value of 5 is used. The degreeOfParallelism can be set to a maximum of 10 and a minimum of 1.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Custom.AmlSkill" + }, + "AzureOpenAIEmbeddingSkill": { + "type": "object", + "description": "Allows you to generate a vector embedding for a given text input using the Azure OpenAI resource.", + "properties": { + "resourceUri": { + "type": "string", + "format": "uri", + "description": "The resource URI of the Azure OpenAI resource." + }, + "deploymentId": { + "type": "string", + "description": "ID of the Azure OpenAI model deployment on the designated resource." + }, + "apiKey": { + "type": "string", + "description": "API key of the designated Azure OpenAI resource." + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections." + }, + "modelName": { + "$ref": "#/definitions/AzureOpenAIModelName", + "description": "The name of the embedding model that is deployed at the provided deploymentId path." + }, + "dimensions": { + "type": "integer", + "format": "int32", + "description": "The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill" + }, + "AzureOpenAIModelName": { + "type": "string", + "description": "The Azure Open AI model name that will be called.", + "enum": [ + "text-embedding-ada-002", + "text-embedding-3-large", + "text-embedding-3-small", + "gpt-4o", + "gpt-4o-mini", + "gpt-4.1", + "gpt-4.1-mini", + "gpt-4.1-nano", + "gpt-5", + "gpt-5-mini", + "gpt-5-nano" + ], + "x-ms-enum": { + "name": "AzureOpenAIModelName", + "modelAsString": true, + "values": [ { - "value": "bg.lucene", - "name": "BgLucene", - "description": "Lucene analyzer for Bulgarian." + "name": "TextEmbeddingAda002", + "value": "text-embedding-ada-002", + "description": "TextEmbeddingAda002 model." }, { - "value": "ca.microsoft", - "name": "CaMicrosoft", - "description": "Microsoft analyzer for Catalan." + "name": "TextEmbedding3Large", + "value": "text-embedding-3-large", + "description": "TextEmbedding3Large model." }, { - "value": "ca.lucene", - "name": "CaLucene", - "description": "Lucene analyzer for Catalan." + "name": "TextEmbedding3Small", + "value": "text-embedding-3-small", + "description": "TextEmbedding3Small model." }, { - "value": "zh-Hans.microsoft", - "name": "ZhHansMicrosoft", - "description": "Microsoft analyzer for Chinese (Simplified)." + "name": "Gpt4o", + "value": "gpt-4o", + "description": "Gpt4o model." }, { - "value": "zh-Hans.lucene", - "name": "ZhHansLucene", - "description": "Lucene analyzer for Chinese (Simplified)." + "name": "Gpt4oMini", + "value": "gpt-4o-mini", + "description": "Gpt4oMini model." }, { - "value": "zh-Hant.microsoft", - "name": "ZhHantMicrosoft", - "description": "Microsoft analyzer for Chinese (Traditional)." + "name": "Gpt41", + "value": "gpt-4.1", + "description": "Gpt41 model." }, { - "value": "zh-Hant.lucene", - "name": "ZhHantLucene", - "description": "Lucene analyzer for Chinese (Traditional)." + "name": "Gpt41Mini", + "value": "gpt-4.1-mini", + "description": "Gpt41Mini model." }, { - "value": "hr.microsoft", - "name": "HrMicrosoft", - "description": "Microsoft analyzer for Croatian." + "name": "Gpt41Nano", + "value": "gpt-4.1-nano", + "description": "Gpt41Nano model." }, { - "value": "cs.microsoft", - "name": "CsMicrosoft", - "description": "Microsoft analyzer for Czech." + "name": "Gpt5", + "value": "gpt-5", + "description": "Gpt5 model." }, { - "value": "cs.lucene", - "name": "CsLucene", - "description": "Lucene analyzer for Czech." + "name": "Gpt5Mini", + "value": "gpt-5-mini", + "description": "Gpt5Mini model." }, { - "value": "da.microsoft", - "name": "DaMicrosoft", - "description": "Microsoft analyzer for Danish." - }, + "name": "Gpt5Nano", + "value": "gpt-5-nano", + "description": "Gpt5Nano model." + } + ] + } + }, + "AzureOpenAITokenizerParameters": { + "type": "object", + "description": "Azure OpenAI Tokenizer parameters.", + "properties": { + "encoderModelName": { + "$ref": "#/definitions/SplitSkillEncoderModelName", + "description": "Only applies if the unit is set to azureOpenAITokens. Options include 'R50k_base', 'P50k_base', 'P50k_edit' and 'CL100k_base'. The default value is 'CL100k_base'.", + "x-nullable": true + }, + "allowedSpecialTokens": { + "type": "array", + "description": "(Optional) Only applies if the unit is set to azureOpenAITokens. This parameter defines a collection of special tokens that are permitted within the tokenization process.", + "items": { + "type": "string" + } + } + } + }, + "AzureOpenAIVectorizer": { + "type": "object", + "description": "Specifies the Azure OpenAI resource used to vectorize a query string.", + "properties": { + "azureOpenAIParameters": { + "$ref": "#/definitions/AzureOpenAIVectorizerParameters", + "description": "Contains the parameters specific to Azure OpenAI embedding vectorization." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchVectorizer" + } + ], + "x-ms-discriminator-value": "azureOpenAI" + }, + "AzureOpenAIVectorizerParameters": { + "type": "object", + "description": "Specifies the parameters for connecting to the Azure OpenAI resource.", + "properties": { + "resourceUri": { + "type": "string", + "format": "uri", + "description": "The resource URI of the Azure OpenAI resource." + }, + "deploymentId": { + "type": "string", + "description": "ID of the Azure OpenAI model deployment on the designated resource." + }, + "apiKey": { + "type": "string", + "description": "API key of the designated Azure OpenAI resource." + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections." + }, + "modelName": { + "$ref": "#/definitions/AzureOpenAIModelName", + "description": "The name of the embedding model that is deployed at the provided deploymentId path." + } + } + }, + "AzureOpenAiParameters": { + "type": "object", + "description": "Specifies the parameters for connecting to the Azure OpenAI resource.", + "properties": { + "resourceUri": { + "type": "string", + "format": "uri", + "description": "The resource URI of the Azure OpenAI resource." + }, + "deploymentId": { + "type": "string", + "description": "ID of the Azure OpenAI model deployment on the designated resource." + }, + "apiKey": { + "type": "string", + "description": "API key of the designated Azure OpenAI resource." + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections.", + "x-nullable": true + }, + "modelName": { + "$ref": "#/definitions/AzureOpenAIModelName", + "description": "The name of the embedding model that is deployed at the provided deploymentId path." + } + } + }, + "BM25SimilarityAlgorithm": { + "type": "object", + "description": "Ranking function based on the Okapi BM25 similarity algorithm. BM25 is a TF-IDF-like algorithm that includes length normalization (controlled by the 'b' parameter) as well as term frequency saturation (controlled by the 'k1' parameter).", + "properties": { + "k1": { + "type": "number", + "format": "double", + "description": "This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency.", + "x-nullable": true + }, + "b": { + "type": "number", + "format": "double", + "description": "This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SimilarityAlgorithm" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.BM25Similarity" + }, + "BinaryQuantizationCompression": { + "type": "object", + "description": "Contains configuration options specific to the binary quantization compression method used during indexing and querying.", + "allOf": [ + { + "$ref": "#/definitions/VectorSearchCompression" + } + ], + "x-ms-discriminator-value": "binaryQuantization" + }, + "BlobIndexerDataToExtract": { + "type": "string", + "description": "Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.", + "enum": [ + "storageMetadata", + "allMetadata", + "contentAndMetadata" + ], + "x-ms-enum": { + "name": "BlobIndexerDataToExtract", + "modelAsString": true, + "values": [ { - "value": "da.lucene", - "name": "DaLucene", - "description": "Lucene analyzer for Danish." + "name": "StorageMetadata", + "value": "storageMetadata", + "description": "Indexes just the standard blob properties and user-specified metadata." }, { - "value": "nl.microsoft", - "name": "NlMicrosoft", - "description": "Microsoft analyzer for Dutch." + "name": "AllMetadata", + "value": "allMetadata", + "description": "Extracts metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files are indexed)." }, { - "value": "nl.lucene", - "name": "NlLucene", - "description": "Lucene analyzer for Dutch." - }, + "name": "ContentAndMetadata", + "value": "contentAndMetadata", + "description": "Extracts all metadata and textual content from each blob." + } + ] + } + }, + "BlobIndexerImageAction": { + "type": "string", + "description": "Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer.", + "enum": [ + "none", + "generateNormalizedImages", + "generateNormalizedImagePerPage" + ], + "x-ms-enum": { + "name": "BlobIndexerImageAction", + "modelAsString": true, + "values": [ { - "value": "en.microsoft", - "name": "EnMicrosoft", - "description": "Microsoft analyzer for English." + "name": "None", + "value": "none", + "description": "Ignores embedded images or image files in the data set. This is the default." }, { - "value": "en.lucene", - "name": "EnLucene", - "description": "Lucene analyzer for English." + "name": "GenerateNormalizedImages", + "value": "generateNormalizedImages", + "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field. This action requires that \"dataToExtract\" is set to \"contentAndMetadata\". A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results. This information is generated for each image when you use this option." }, { - "value": "et.microsoft", - "name": "EtMicrosoft", - "description": "Microsoft analyzer for Estonian." - }, + "name": "GenerateNormalizedImagePerPage", + "value": "generateNormalizedImagePerPage", + "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field, but treats PDF files differently in that each page will be rendered as an image and normalized accordingly, instead of extracting embedded images. Non-PDF file types will be treated the same as if \"generateNormalizedImages\" was set." + } + ] + } + }, + "BlobIndexerPDFTextRotationAlgorithm": { + "type": "string", + "description": "Determines algorithm for text extraction from PDF files in Azure blob storage.", + "enum": [ + "none", + "detectAngles" + ], + "x-ms-enum": { + "name": "BlobIndexerPDFTextRotationAlgorithm", + "modelAsString": true, + "values": [ { - "value": "fi.microsoft", - "name": "FiMicrosoft", - "description": "Microsoft analyzer for Finnish." + "name": "None", + "value": "none", + "description": "Leverages normal text extraction. This is the default." }, { - "value": "fi.lucene", - "name": "FiLucene", - "description": "Lucene analyzer for Finnish." - }, + "name": "DetectAngles", + "value": "detectAngles", + "description": "May produce better and more readable text extraction from PDF files that have rotated text within them. Note that there may be a small performance speed impact when this parameter is used. This parameter only applies to PDF files, and only to PDFs with embedded text. If the rotated text appears within an embedded image in the PDF, this parameter does not apply." + } + ] + } + }, + "BlobIndexerParsingMode": { + "type": "string", + "description": "Represents the parsing mode for indexing from an Azure blob data source.", + "enum": [ + "default", + "text", + "delimitedText", + "json", + "jsonArray", + "jsonLines", + "markdown" + ], + "x-ms-enum": { + "name": "BlobIndexerParsingMode", + "modelAsString": true, + "values": [ { - "value": "fr.microsoft", - "name": "FrMicrosoft", - "description": "Microsoft analyzer for French." + "name": "Default", + "value": "default", + "description": "Set to default for normal file processing." }, { - "value": "fr.lucene", - "name": "FrLucene", - "description": "Lucene analyzer for French." + "name": "Text", + "value": "text", + "description": "Set to text to improve indexing performance on plain text files in blob storage." }, { - "value": "gl.lucene", - "name": "GlLucene", - "description": "Lucene analyzer for Galician." + "name": "DelimitedText", + "value": "delimitedText", + "description": "Set to delimitedText when blobs are plain CSV files." }, { - "value": "de.microsoft", - "name": "DeMicrosoft", - "description": "Microsoft analyzer for German." + "name": "Json", + "value": "json", + "description": "Set to json to extract structured content from JSON files." }, { - "value": "de.lucene", - "name": "DeLucene", - "description": "Lucene analyzer for German." + "name": "JsonArray", + "value": "jsonArray", + "description": "Set to jsonArray to extract individual elements of a JSON array as separate documents." }, { - "value": "el.microsoft", - "name": "ElMicrosoft", - "description": "Microsoft analyzer for Greek." + "name": "JsonLines", + "value": "jsonLines", + "description": "Set to jsonLines to extract individual JSON entities, separated by a new line, as separate documents." }, { - "value": "el.lucene", - "name": "ElLucene", - "description": "Lucene analyzer for Greek." - }, - { - "value": "gu.microsoft", - "name": "GuMicrosoft", - "description": "Microsoft analyzer for Gujarati." - }, - { - "value": "he.microsoft", - "name": "HeMicrosoft", - "description": "Microsoft analyzer for Hebrew." - }, - { - "value": "hi.microsoft", - "name": "HiMicrosoft", - "description": "Microsoft analyzer for Hindi." - }, - { - "value": "hi.lucene", - "name": "HiLucene", - "description": "Lucene analyzer for Hindi." - }, - { - "value": "hu.microsoft", - "name": "HuMicrosoft", - "description": "Microsoft analyzer for Hungarian." - }, - { - "value": "hu.lucene", - "name": "HuLucene", - "description": "Lucene analyzer for Hungarian." - }, - { - "value": "is.microsoft", - "name": "IsMicrosoft", - "description": "Microsoft analyzer for Icelandic." - }, - { - "value": "id.microsoft", - "name": "IdMicrosoft", - "description": "Microsoft analyzer for Indonesian (Bahasa)." - }, - { - "value": "id.lucene", - "name": "IdLucene", - "description": "Lucene analyzer for Indonesian." - }, - { - "value": "ga.lucene", - "name": "GaLucene", - "description": "Lucene analyzer for Irish." - }, - { - "value": "it.microsoft", - "name": "ItMicrosoft", - "description": "Microsoft analyzer for Italian." - }, - { - "value": "it.lucene", - "name": "ItLucene", - "description": "Lucene analyzer for Italian." - }, - { - "value": "ja.microsoft", - "name": "JaMicrosoft", - "description": "Microsoft analyzer for Japanese." - }, - { - "value": "ja.lucene", - "name": "JaLucene", - "description": "Lucene analyzer for Japanese." - }, - { - "value": "kn.microsoft", - "name": "KnMicrosoft", - "description": "Microsoft analyzer for Kannada." - }, - { - "value": "ko.microsoft", - "name": "KoMicrosoft", - "description": "Microsoft analyzer for Korean." - }, - { - "value": "ko.lucene", - "name": "KoLucene", - "description": "Lucene analyzer for Korean." - }, + "name": "Markdown", + "value": "markdown", + "description": "Set to markdown to extract content from markdown files." + } + ] + } + }, + "CharFilter": { + "type": "object", + "description": "Base type for character filters.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "name": { + "type": "string", + "description": "The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type", + "name" + ] + }, + "CharFilterName": { + "type": "string", + "description": "Defines the names of all character filters supported by the search engine.", + "enum": [ + "html_strip" + ], + "x-ms-enum": { + "name": "CharFilterName", + "modelAsString": true, + "values": [ { - "value": "lv.microsoft", - "name": "LvMicrosoft", - "description": "Microsoft analyzer for Latvian." - }, + "name": "HtmlStrip", + "value": "html_strip", + "description": "A character filter that attempts to strip out HTML constructs. See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.html" + } + ] + } + }, + "ChatCompletionCommonModelParameters": { + "type": "object", + "description": "Common language model parameters for Chat Completions. If omitted, default values are used.", + "properties": { + "model": { + "type": "string", + "description": "The name of the model to use (e.g., 'gpt-4o', etc.). Default is null if not specified.", + "default": null, + "x-nullable": true, + "x-ms-client-name": "modelName" + }, + "frequencyPenalty": { + "type": "number", + "format": "double", + "description": "A float in the range [-2,2] that reduces or increases likelihood of repeated tokens. Default is 0.", + "default": 0, + "x-nullable": true + }, + "presencePenalty": { + "type": "number", + "format": "double", + "description": "A float in the range [-2,2] that penalizes new tokens based on their existing presence. Default is 0.", + "default": 0, + "x-nullable": true + }, + "maxTokens": { + "type": "integer", + "format": "int32", + "description": "Maximum number of tokens to generate.", + "x-nullable": true + }, + "temperature": { + "type": "number", + "format": "double", + "description": "Sampling temperature. Default is 0.7.", + "default": 0.7, + "x-nullable": true + }, + "seed": { + "type": "integer", + "format": "int32", + "description": "Random seed for controlling deterministic outputs. If omitted, randomization is used.", + "x-nullable": true + }, + "stop": { + "type": "array", + "description": "List of stop sequences that will cut off text generation. Default is none.", + "x-nullable": true, + "items": { + "type": "string" + } + } + } + }, + "ChatCompletionExtraParametersBehavior": { + "type": "string", + "description": "Specifies how 'extraParameters' should be handled by Azure AI Foundry. Defaults to 'error'.", + "enum": [ + "pass-through", + "drop", + "error" + ], + "x-ms-enum": { + "name": "ChatCompletionExtraParametersBehavior", + "modelAsString": true, + "values": [ { - "value": "lv.lucene", - "name": "LvLucene", - "description": "Lucene analyzer for Latvian." + "name": "PassThrough", + "value": "pass-through", + "description": "Passes any extra parameters directly to the model." }, { - "value": "lt.microsoft", - "name": "LtMicrosoft", - "description": "Microsoft analyzer for Lithuanian." + "name": "Drop", + "value": "drop", + "description": "Drops all extra parameters." }, { - "value": "ml.microsoft", - "name": "MlMicrosoft", - "description": "Microsoft analyzer for Malayalam." - }, + "name": "Error", + "value": "error", + "description": "Raises an error if any extra parameter is present." + } + ] + } + }, + "ChatCompletionResponseFormat": { + "type": "object", + "description": "Determines how the language model's response should be serialized. Defaults to 'text'.", + "properties": { + "type": { + "type": "string", + "description": "Specifies how the LLM should format the response.", + "default": "text", + "enum": [ + "text", + "jsonObject", + "jsonSchema" + ], + "x-ms-enum": { + "name": "ChatCompletionResponseFormatType", + "modelAsString": true, + "values": [ + { + "name": "Text", + "value": "text", + "description": "Plain text response format." + }, + { + "name": "JsonObject", + "value": "jsonObject", + "description": "Arbitrary JSON object response format." + }, + { + "name": "JsonSchema", + "value": "jsonSchema", + "description": "JSON schema-adhering response format." + } + ] + } + }, + "jsonSchemaProperties": { + "$ref": "#/definitions/ChatCompletionSchemaProperties", + "description": "An open dictionary for extended properties. Required if 'type' == 'json_schema'", + "x-nullable": true + } + } + }, + "ChatCompletionResponseFormatType": { + "type": "string", + "description": "Specifies how the LLM should format the response.", + "enum": [ + "text", + "jsonObject", + "jsonSchema" + ], + "x-ms-enum": { + "name": "ChatCompletionResponseFormatType", + "modelAsString": true, + "values": [ { - "value": "ms.microsoft", - "name": "MsMicrosoft", - "description": "Microsoft analyzer for Malay (Latin)." + "name": "Text", + "value": "text", + "description": "Plain text response format." }, { - "value": "mr.microsoft", - "name": "MrMicrosoft", - "description": "Microsoft analyzer for Marathi." + "name": "JsonObject", + "value": "jsonObject", + "description": "Arbitrary JSON object response format." }, { - "value": "nb.microsoft", - "name": "NbMicrosoft", - "description": "Microsoft analyzer for Norwegian (Bokmål)." - }, - { - "value": "no.lucene", - "name": "NoLucene", - "description": "Lucene analyzer for Norwegian." - }, - { - "value": "fa.lucene", - "name": "FaLucene", - "description": "Lucene analyzer for Persian." - }, - { - "value": "pl.microsoft", - "name": "PlMicrosoft", - "description": "Microsoft analyzer for Polish." - }, - { - "value": "pl.lucene", - "name": "PlLucene", - "description": "Lucene analyzer for Polish." - }, - { - "value": "pt-BR.microsoft", - "name": "PtBrMicrosoft", - "description": "Microsoft analyzer for Portuguese (Brazil)." - }, - { - "value": "pt-BR.lucene", - "name": "PtBrLucene", - "description": "Lucene analyzer for Portuguese (Brazil)." - }, - { - "value": "pt-PT.microsoft", - "name": "PtPtMicrosoft", - "description": "Microsoft analyzer for Portuguese (Portugal)." - }, - { - "value": "pt-PT.lucene", - "name": "PtPtLucene", - "description": "Lucene analyzer for Portuguese (Portugal)." - }, - { - "value": "pa.microsoft", - "name": "PaMicrosoft", - "description": "Microsoft analyzer for Punjabi." - }, - { - "value": "ro.microsoft", - "name": "RoMicrosoft", - "description": "Microsoft analyzer for Romanian." - }, - { - "value": "ro.lucene", - "name": "RoLucene", - "description": "Lucene analyzer for Romanian." - }, - { - "value": "ru.microsoft", - "name": "RuMicrosoft", - "description": "Microsoft analyzer for Russian." - }, - { - "value": "ru.lucene", - "name": "RuLucene", - "description": "Lucene analyzer for Russian." - }, - { - "value": "sr-cyrillic.microsoft", - "name": "SrCyrillicMicrosoft", - "description": "Microsoft analyzer for Serbian (Cyrillic)." - }, - { - "value": "sr-latin.microsoft", - "name": "SrLatinMicrosoft", - "description": "Microsoft analyzer for Serbian (Latin)." - }, - { - "value": "sk.microsoft", - "name": "SkMicrosoft", - "description": "Microsoft analyzer for Slovak." - }, + "name": "JsonSchema", + "value": "jsonSchema", + "description": "JSON schema-adhering response format." + } + ] + } + }, + "ChatCompletionSchema": { + "type": "object", + "description": "Object defining the custom schema the model will use to structure its output.", + "properties": { + "type": { + "type": "string", + "description": "Type of schema representation. Usually 'object'. Default is 'object'.", + "default": "object" + }, + "properties": { + "type": "string", + "description": "A JSON-formatted string that defines the output schema's properties and constraints for the model." + }, + "required": { + "type": "array", + "description": "An array of the property names that are required to be part of the model's response. All properties must be included for structured outputs.", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean", + "description": "Controls whether it is allowable for an object to contain additional keys / values that were not defined in the JSON Schema. Default is false.", + "default": false + } + } + }, + "ChatCompletionSchemaProperties": { + "type": "object", + "description": "Properties for JSON schema response format.", + "properties": { + "name": { + "type": "string", + "description": "Name of the json schema the model will adhere to.", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Description of the json schema the model will adhere to.", + "x-nullable": true + }, + "strict": { + "type": "boolean", + "description": "Whether or not the model's response should use structured outputs. Default is true.", + "default": true + }, + "schema": { + "$ref": "#/definitions/ChatCompletionSchema", + "description": "The schema definition." + } + } + }, + "ChatCompletionSkill": { + "type": "object", + "description": "A skill that calls a language model via Azure AI Foundry's Chat Completions endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The url for the Web API." + }, + "httpHeaders": { + "$ref": "#/definitions/WebApiHttpHeaders", + "description": "The headers required to make the http request." + }, + "httpMethod": { + "type": "string", + "description": "The method for the http request." + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "The desired timeout for the request. Default is 30 seconds." + }, + "batchSize": { + "type": "integer", + "format": "int32", + "description": "The desired batch size which indicates number of documents.", + "x-nullable": true + }, + "degreeOfParallelism": { + "type": "integer", + "format": "int32", + "description": "If set, the number of parallel calls that can be made to the Web API.", + "x-nullable": true + }, + "authResourceId": { + "type": "string", + "description": "Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.", + "x-nullable": true + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "API key for authenticating to the model. Both apiKey and authIdentity cannot be specified at the same time." + }, + "commonModelParameters": { + "$ref": "#/definitions/ChatCompletionCommonModelParameters", + "description": "Common language model parameters that customers can tweak. If omitted, reasonable defaults will be applied." + }, + "extraParameters": { + "type": "object", + "description": "Open-type dictionary for model-specific parameters that should be appended to the chat completions call. Follows Azure AI Foundry's extensibility pattern.", + "x-nullable": true, + "additionalProperties": {} + }, + "extraParametersBehavior": { + "type": "string", + "description": "How extra parameters are handled by Azure AI Foundry. Default is 'error'.", + "default": "error", + "enum": [ + "pass-through", + "drop", + "error" + ], + "x-ms-enum": { + "name": "ChatCompletionExtraParametersBehavior", + "modelAsString": true, + "values": [ + { + "name": "PassThrough", + "value": "pass-through", + "description": "Passes any extra parameters directly to the model." + }, + { + "name": "Drop", + "value": "drop", + "description": "Drops all extra parameters." + }, + { + "name": "Error", + "value": "error", + "description": "Raises an error if any extra parameter is present." + } + ] + } + }, + "responseFormat": { + "$ref": "#/definitions/ChatCompletionResponseFormat", + "description": "Determines how the LLM should format its response. Defaults to 'text' response type." + } + }, + "required": [ + "uri" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Custom.ChatCompletionSkill" + }, + "CjkBigramTokenFilter": { + "type": "object", + "description": "Forms bigrams of CJK terms that are generated from the standard tokenizer. This token filter is implemented using Apache Lucene.", + "properties": { + "ignoreScripts": { + "type": "array", + "description": "The scripts to ignore.", + "items": { + "$ref": "#/definitions/CjkBigramTokenFilterScripts" + } + }, + "outputUnigrams": { + "type": "boolean", + "description": "A value indicating whether to output both unigrams and bigrams (if true), or just bigrams (if false). Default is false.", + "default": false + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CjkBigramTokenFilter" + }, + "CjkBigramTokenFilterScripts": { + "type": "string", + "description": "Scripts that can be ignored by CjkBigramTokenFilter.", + "enum": [ + "han", + "hiragana", + "katakana", + "hangul" + ], + "x-ms-enum": { + "name": "CjkBigramTokenFilterScripts", + "modelAsString": true, + "values": [ { - "value": "sl.microsoft", - "name": "SlMicrosoft", - "description": "Microsoft analyzer for Slovenian." + "name": "Han", + "value": "han", + "description": "Ignore Han script when forming bigrams of CJK terms." }, { - "value": "es.microsoft", - "name": "EsMicrosoft", - "description": "Microsoft analyzer for Spanish." + "name": "Hiragana", + "value": "hiragana", + "description": "Ignore Hiragana script when forming bigrams of CJK terms." }, { - "value": "es.lucene", - "name": "EsLucene", - "description": "Lucene analyzer for Spanish." + "name": "Katakana", + "value": "katakana", + "description": "Ignore Katakana script when forming bigrams of CJK terms." }, { - "value": "sv.microsoft", - "name": "SvMicrosoft", - "description": "Microsoft analyzer for Swedish." - }, - { - "value": "sv.lucene", - "name": "SvLucene", - "description": "Lucene analyzer for Swedish." - }, - { - "value": "ta.microsoft", - "name": "TaMicrosoft", - "description": "Microsoft analyzer for Tamil." - }, - { - "value": "te.microsoft", - "name": "TeMicrosoft", - "description": "Microsoft analyzer for Telugu." - }, - { - "value": "th.microsoft", - "name": "ThMicrosoft", - "description": "Microsoft analyzer for Thai." - }, - { - "value": "th.lucene", - "name": "ThLucene", - "description": "Lucene analyzer for Thai." - }, - { - "value": "tr.microsoft", - "name": "TrMicrosoft", - "description": "Microsoft analyzer for Turkish." - }, - { - "value": "tr.lucene", - "name": "TrLucene", - "description": "Lucene analyzer for Turkish." - }, - { - "value": "uk.microsoft", - "name": "UkMicrosoft", - "description": "Microsoft analyzer for Ukrainian." - }, - { - "value": "ur.microsoft", - "name": "UrMicrosoft", - "description": "Microsoft analyzer for Urdu." - }, - { - "value": "vi.microsoft", - "name": "ViMicrosoft", - "description": "Microsoft analyzer for Vietnamese." - }, - { - "value": "standard.lucene", - "name": "StandardLucene", - "description": "Standard Lucene analyzer." - }, - { - "value": "standardasciifolding.lucene", - "name": "StandardAsciiFoldingLucene", - "description": "Standard ASCII Folding Lucene analyzer. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#Analyzers" - }, - { - "value": "keyword", - "name": "Keyword", - "description": "Treats the entire content of a field as a single token. This is useful for data like zip codes, ids, and some product names. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordAnalyzer.html" - }, - { - "value": "pattern", - "name": "Pattern", - "description": "Flexibly separates text into terms via a regular expression pattern. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.html" - }, - { - "value": "simple", - "name": "Simple", - "description": "Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/SimpleAnalyzer.html" - }, - { - "value": "stop", - "name": "Stop", - "description": "Divides text at non-letters; Applies the lowercase and stopword token filters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html" - }, - { - "value": "whitespace", - "name": "Whitespace", - "description": "An analyzer that uses the whitespace tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceAnalyzer.html" + "name": "Hangul", + "value": "hangul", + "description": "Ignore Hangul script when forming bigrams of CJK terms." } ] - }, - "description": "Defines the names of all text analyzers supported by the search engine.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Language-support" } }, - "LexicalTokenizerName": { - "type": "string", - "enum": [ - "classic", - "edgeNGram", - "keyword_v2", - "letter", - "lowercase", - "microsoft_language_tokenizer", - "microsoft_language_stemming_tokenizer", - "nGram", - "path_hierarchy_v2", - "pattern", - "standard_v2", - "uax_url_email", - "whitespace" + "ClassicSimilarityAlgorithm": { + "type": "object", + "description": "Legacy similarity algorithm which uses the Lucene TFIDFSimilarity implementation of TF-IDF. This variation of TF-IDF introduces static document length normalization as well as coordinating factors that penalize documents that only partially match the searched queries.", + "allOf": [ + { + "$ref": "#/definitions/SimilarityAlgorithm" + } ], - "x-ms-enum": { - "name": "LexicalTokenizerName", - "modelAsString": true, - "values": [ - { - "value": "classic", - "name": "Classic", - "description": "Grammar-based tokenizer that is suitable for processing most European-language documents. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicTokenizer.html" - }, - { - "value": "edgeNGram", - "name": "EdgeNGram", - "description": "Tokenizes the input from an edge into n-grams of the given size(s). See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.html" - }, - { - "value": "keyword_v2", - "name": "Keyword", - "description": "Emits the entire input as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html" - }, - { - "value": "letter", - "name": "Letter", - "description": "Divides text at non-letters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LetterTokenizer.html" - }, - { - "value": "lowercase", - "name": "Lowercase", - "description": "Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LowerCaseTokenizer.html" - }, - { - "value": "microsoft_language_tokenizer", - "name": "MicrosoftLanguageTokenizer", - "description": "Divides text using language-specific rules." - }, - { - "value": "microsoft_language_stemming_tokenizer", - "name": "MicrosoftLanguageStemmingTokenizer", - "description": "Divides text using language-specific rules and reduces words to their base forms." - }, - { - "value": "nGram", - "name": "NGram", - "description": "Tokenizes the input into n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenizer.html" - }, - { - "value": "path_hierarchy_v2", - "name": "PathHierarchy", - "description": "Tokenizer for path-like hierarchies. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/path/PathHierarchyTokenizer.html" - }, - { - "value": "pattern", - "name": "Pattern", - "description": "Tokenizer that uses regex pattern matching to construct distinct tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternTokenizer.html" - }, - { - "value": "standard_v2", - "name": "Standard", - "description": "Standard Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html" - }, - { - "value": "uax_url_email", - "name": "UaxUrlEmail", - "description": "Tokenizes urls and emails as one token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizer.html" - }, - { - "value": "whitespace", - "name": "Whitespace", - "description": "Divides text at whitespace. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceTokenizer.html" - } - ] - }, - "description": "Defines the names of all tokenizers supported by the search engine.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } + "x-ms-discriminator-value": "#Microsoft.Azure.Search.ClassicSimilarity" }, - "TokenFilterName": { - "type": "string", - "enum": [ - "arabic_normalization", - "apostrophe", - "asciifolding", - "cjk_bigram", - "cjk_width", - "classic", - "common_grams", - "edgeNGram_v2", - "elision", - "german_normalization", - "hindi_normalization", - "indic_normalization", - "keyword_repeat", - "kstem", - "length", - "limit", - "lowercase", - "nGram_v2", - "persian_normalization", - "phonetic", - "porter_stem", - "reverse", - "scandinavian_normalization", - "scandinavian_folding", - "shingle", - "snowball", - "sorani_normalization", - "stemmer", - "stopwords", - "trim", - "truncate", - "unique", - "uppercase", - "word_delimiter" + "ClassicTokenizer": { + "type": "object", + "description": "Grammar-based tokenizer that is suitable for processing most European-language documents. This tokenizer is implemented using Apache Lucene.", + "properties": { + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 255, + "maximum": 300 + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } ], - "x-ms-enum": { - "name": "TokenFilterName", - "modelAsString": true, - "values": [ - { - "value": "arabic_normalization", - "name": "ArabicNormalization", - "description": "A token filter that applies the Arabic normalizer to normalize the orthography. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ar/ArabicNormalizationFilter.html" - }, - { - "value": "apostrophe", - "name": "Apostrophe", - "description": "Strips all characters after an apostrophe (including the apostrophe itself). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/tr/ApostropheFilter.html" - }, - { - "value": "asciifolding", - "name": "AsciiFolding", - "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" - }, - { - "value": "cjk_bigram", - "name": "CjkBigram", - "description": "Forms bigrams of CJK terms that are generated from the standard tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKBigramFilter.html" - }, - { - "value": "cjk_width", - "name": "CjkWidth", - "description": "Normalizes CJK width differences. Folds fullwidth ASCII variants into the equivalent basic Latin, and half-width Katakana variants into the equivalent Kana. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKWidthFilter.html" - }, - { - "value": "classic", - "name": "Classic", - "description": "Removes English possessives, and dots from acronyms. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicFilter.html" - }, - { - "value": "common_grams", - "name": "CommonGram", - "description": "Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/commongrams/CommonGramsFilter.html" - }, - { - "value": "edgeNGram_v2", - "name": "EdgeNGram", - "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html" - }, - { - "value": "elision", - "name": "Elision", - "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" - }, - { - "value": "german_normalization", - "name": "GermanNormalization", - "description": "Normalizes German characters according to the heuristics of the German2 snowball algorithm. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/de/GermanNormalizationFilter.html" - }, - { - "value": "hindi_normalization", - "name": "HindiNormalization", - "description": "Normalizes text in Hindi to remove some differences in spelling variations. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/hi/HindiNormalizationFilter.html" - }, - { - "value": "indic_normalization", - "name": "IndicNormalization", - "description": "Normalizes the Unicode representation of text in Indian languages. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/in/IndicNormalizationFilter.html" - }, - { - "value": "keyword_repeat", - "name": "KeywordRepeat", - "description": "Emits each incoming token twice, once as keyword and once as non-keyword. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilter.html" - }, - { - "value": "kstem", - "name": "KStem", - "description": "A high-performance kstem filter for English. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/en/KStemFilter.html" - }, - { - "value": "length", - "name": "Length", - "description": "Removes words that are too long or too short. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LengthFilter.html" - }, - { - "value": "limit", - "name": "Limit", - "description": "Limits the number of tokens while indexing. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilter.html" - }, - { - "value": "lowercase", - "name": "Lowercase", - "description": "Normalizes token text to lower case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html" - }, - { - "value": "nGram_v2", - "name": "NGram", - "description": "Generates n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html" - }, - { - "value": "persian_normalization", - "name": "PersianNormalization", - "description": "Applies normalization for Persian. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/fa/PersianNormalizationFilter.html" - }, - { - "value": "phonetic", - "name": "Phonetic", - "description": "Create tokens for phonetic matches. See https://lucene.apache.org/core/4_10_3/analyzers-phonetic/org/apache/lucene/analysis/phonetic/package-tree.html" - }, - { - "value": "porter_stem", - "name": "PorterStem", - "description": "Uses the Porter stemming algorithm to transform the token stream. See http://tartarus.org/~martin/PorterStemmer" - }, - { - "value": "reverse", - "name": "Reverse", - "description": "Reverses the token string. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html" - }, - { - "value": "scandinavian_normalization", - "name": "ScandinavianNormalization", - "description": "Normalizes use of the interchangeable Scandinavian characters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilter.html" - }, - { - "value": "scandinavian_folding", - "name": "ScandinavianFoldingNormalization", - "description": "Folds Scandinavian characters åÅäæÄÆ->a and öÖøØ->o. It also discriminates against use of double vowels aa, ae, ao, oe and oo, leaving just the first one. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilter.html" - }, - { - "value": "shingle", - "name": "Shingle", - "description": "Creates combinations of tokens as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/shingle/ShingleFilter.html" - }, - { - "value": "snowball", - "name": "Snowball", - "description": "A filter that stems words using a Snowball-generated stemmer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/snowball/SnowballFilter.html" - }, - { - "value": "sorani_normalization", - "name": "SoraniNormalization", - "description": "Normalizes the Unicode representation of Sorani text. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ckb/SoraniNormalizationFilter.html" - }, - { - "value": "stemmer", - "name": "Stemmer", - "description": "Language specific stemming filter. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters" - }, - { - "value": "stopwords", - "name": "Stopwords", - "description": "Removes stop words from a token stream. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html" - }, - { - "value": "trim", - "name": "Trim", - "description": "Trims leading and trailing whitespace from tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TrimFilter.html" - }, - { - "value": "truncate", - "name": "Truncate", - "description": "Truncates the terms to a specific length. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilter.html" - }, - { - "value": "unique", - "name": "Unique", - "description": "Filters out tokens with same text as the previous token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilter.html" - }, - { - "value": "uppercase", - "name": "Uppercase", - "description": "Normalizes token text to upper case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html" - }, - { - "value": "word_delimiter", - "name": "WordDelimiter", - "description": "Splits words into subwords and performs optional transformations on subword groups." - } - ] + "x-ms-discriminator-value": "#Microsoft.Azure.Search.ClassicTokenizer" + }, + "CognitiveServicesAccount": { + "type": "object", + "description": "Base type for describing any Azure AI service resource attached to a skillset.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "description": { + "type": "string", + "description": "Description of the Azure AI service resource attached to a skillset." + } }, - "description": "Defines the names of all token filters supported by the search engine.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] }, - "LexicalNormalizerName": { - "type": "string", - "enum": [ - "asciifolding", - "elision", - "lowercase", - "standard", - "uppercase" + "CognitiveServicesAccountKey": { + "type": "object", + "description": "The multi-region account key of an Azure AI service resource that's attached to a skillset.", + "properties": { + "key": { + "type": "string", + "description": "The key used to provision the Azure AI service resource attached to a skillset." + } + }, + "required": [ + "key" ], - "x-ms-enum": { - "name": "LexicalNormalizerName", - "modelAsString": true, - "values": [ - { - "value": "asciifolding", - "name": "AsciiFolding", - "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" - }, - { - "value": "elision", - "name": "Elision", - "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" - }, - { - "value": "lowercase", - "name": "Lowercase", - "description": "Normalizes token text to lowercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html" - }, - { - "value": "standard", - "name": "Standard", - "description": "Standard normalizer, which consists of lowercase and asciifolding. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html" - }, - { - "value": "uppercase", - "name": "Uppercase", - "description": "Normalizes token text to uppercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html" + "allOf": [ + { + "$ref": "#/definitions/CognitiveServicesAccount" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CognitiveServicesByKey" + }, + "CommonGramTokenFilter": { + "type": "object", + "description": "Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. This token filter is implemented using Apache Lucene.", + "properties": { + "commonWords": { + "type": "array", + "description": "The set of common words.", + "items": { + "type": "string" } - ] + }, + "ignoreCase": { + "type": "boolean", + "description": "A value indicating whether common words matching will be case insensitive. Default is false.", + "default": false + }, + "queryMode": { + "type": "boolean", + "description": "A value that indicates whether the token filter is in query mode. When in query mode, the token filter generates bigrams and then removes common words and single terms followed by a common word. Default is false.", + "default": false + } }, - "description": "Defines the names of all text normalizers supported by the search engine.", - "externalDocs": { - "url": "https://aka.ms/azs-normalizers" - } - }, - "CharFilterName": { - "type": "string", - "enum": [ - "html_strip" + "required": [ + "commonWords" ], - "x-ms-enum": { - "name": "CharFilterName", - "modelAsString": true, - "values": [ - { - "value": "html_strip", - "name": "HtmlStrip", - "description": "A character filter that attempts to strip out HTML constructs. See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.html" - } - ] - }, - "description": "Defines the names of all character filters supported by the search engine.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "RegexFlags": { - "type": "string", - "enum": [ - "CANON_EQ", - "CASE_INSENSITIVE", - "COMMENTS", - "DOTALL", - "LITERAL", - "MULTILINE", - "UNICODE_CASE", - "UNIX_LINES" - ], - "x-ms-enum": { - "name": "RegexFlags", - "modelAsString": true, - "values": [ - { - "value": "CANON_EQ", - "name": "CanonEq", - "description": "Enables canonical equivalence." - }, - { - "value": "CASE_INSENSITIVE", - "name": "CaseInsensitive", - "description": "Enables case-insensitive matching." - }, - { - "value": "COMMENTS", - "name": "Comments", - "description": "Permits whitespace and comments in the pattern." - }, - { - "value": "DOTALL", - "name": "DotAll", - "description": "Enables dotall mode." - }, - { - "value": "LITERAL", - "name": "Literal", - "description": "Enables literal parsing of the pattern." - }, - { - "value": "MULTILINE", - "name": "Multiline", - "description": "Enables multiline mode." - }, - { - "value": "UNICODE_CASE", - "name": "UnicodeCase", - "description": "Enables Unicode-aware case folding." - }, - { - "value": "UNIX_LINES", - "name": "UnixLines", - "description": "Enables Unix lines mode." - } - ] - }, - "description": "Defines flags that can be combined to control how regular expressions are used in the pattern analyzer and pattern tokenizer.", - "externalDocs": { - "url": "http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#field_summary" - } - }, - "VectorEncodingFormat": { - "type": "string", - "enum": [ - "packedBit" - ], - "x-ms-enum": { - "name": "VectorEncodingFormat", - "modelAsString": true, - "values": [ - { - "value": "packedBit", - "name": "PackedBit", - "description": "Encoding format representing bits packed into a wider data type." - } - ] - }, - "description": "The encoding format for interpreting vector field contents." - }, - "SearchFieldDataType": { - "type": "string", - "enum": [ - "Edm.String", - "Edm.Int32", - "Edm.Int64", - "Edm.Double", - "Edm.Boolean", - "Edm.DateTimeOffset", - "Edm.GeographyPoint", - "Edm.ComplexType", - "Edm.Single", - "Edm.Half", - "Edm.Int16", - "Edm.SByte", - "Edm.Byte" + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } ], - "x-ms-enum": { - "name": "SearchFieldDataType", - "modelAsString": true, - "values": [ - { - "value": "Edm.String", - "name": "String", - "description": "Indicates that a field contains a string." - }, - { - "value": "Edm.Int32", - "name": "Int32", - "description": "Indicates that a field contains a 32-bit signed integer." - }, - { - "value": "Edm.Int64", - "name": "Int64", - "description": "Indicates that a field contains a 64-bit signed integer." - }, - { - "value": "Edm.Double", - "name": "Double", - "description": "Indicates that a field contains an IEEE double-precision floating point number." - }, - { - "value": "Edm.Boolean", - "name": "Boolean", - "description": "Indicates that a field contains a Boolean value (true or false)." - }, - { - "value": "Edm.DateTimeOffset", - "name": "DateTimeOffset", - "description": "Indicates that a field contains a date/time value, including timezone information." - }, - { - "value": "Edm.GeographyPoint", - "name": "GeographyPoint", - "description": "Indicates that a field contains a geo-location in terms of longitude and latitude." - }, - { - "value": "Edm.ComplexType", - "name": "Complex", - "description": "Indicates that a field contains one or more complex objects that in turn have sub-fields of other types." - }, - { - "value": "Edm.Single", - "name": "Single", - "description": "Indicates that a field contains a single-precision floating point number. This is only valid when used with Collection(Edm.Single)." - }, - { - "value": "Edm.Half", - "name": "Half", - "description": "Indicates that a field contains a half-precision floating point number. This is only valid when used with Collection(Edm.Half)." - }, - { - "value": "Edm.Int16", - "name": "Int16", - "description": "Indicates that a field contains a 16-bit signed integer. This is only valid when used with Collection(Edm.Int16)." - }, - { - "value": "Edm.SByte", - "name": "SByte", - "description": "Indicates that a field contains a 8-bit signed integer. This is only valid when used with Collection(Edm.SByte)." - }, - { - "value": "Edm.Byte", - "name": "Byte", - "description": "Indicates that a field contains a 8-bit unsigned integer. This is only valid when used with Collection(Edm.Byte)." - } - ] - }, - "description": "Defines the data type of a field in a search index." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CommonGramTokenFilter" }, - "LexicalAnalyzer": { + "CompletedSynchronizationState": { "type": "object", - "discriminator": "@odata.type", + "description": "Represents the completed state of the last synchronization.", "properties": { - "@odata.type": { + "startTime": { "type": "string", - "description": "A URI fragment specifying the type of analyzer." + "format": "date-time", + "description": "The start time of the last completed synchronization." }, - "name": { + "endTime": { "type": "string", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/custom-analyzers-in-azure-search#index-attribute-reference" - }, - "description": "The name of the analyzer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + "format": "date-time", + "description": "The end time of the last completed synchronization." + }, + "itemsUpdatesProcessed": { + "type": "integer", + "format": "int32", + "description": "The number of item updates successfully processed in the last synchronization." + }, + "itemsUpdatesFailed": { + "type": "integer", + "format": "int32", + "description": "The number of item updates that failed in the last synchronization." + }, + "itemsSkipped": { + "type": "integer", + "format": "int32", + "description": "The number of items skipped in the last synchronization." } }, "required": [ - "@odata.type", - "name" - ], - "description": "Base type for analyzers." + "startTime", + "endTime", + "itemsUpdatesProcessed", + "itemsUpdatesFailed", + "itemsSkipped" + ] }, - "CustomAnalyzer": { + "ConditionalSkill": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CustomAnalyzer", + "description": "A skill that enables scenarios that require a Boolean operation to determine the data to assign to an output.", "allOf": [ { - "$ref": "#/definitions/LexicalAnalyzer" + "$ref": "#/definitions/SearchIndexerSkill" } ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.ConditionalSkill" + }, + "ContentUnderstandingSkill": { + "type": "object", + "description": "A skill that leverages Azure AI Content Understanding to process and extract structured insights from documents, enabling enriched, searchable content for enhanced document indexing and retrieval.", "properties": { - "tokenizer": { - "$ref": "#/definitions/LexicalTokenizerName", - "description": "The name of the tokenizer to use to divide continuous text into a sequence of tokens, such as breaking a sentence into words." - }, - "tokenFilters": { + "extractionOptions": { "type": "array", + "description": "Controls the cardinality of the content extracted from the document by the skill.", + "x-nullable": true, "items": { - "$ref": "#/definitions/TokenFilterName", - "x-nullable": false - }, - "description": "A list of token filters used to filter out or modify the tokens generated by a tokenizer. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed." + "$ref": "#/definitions/ContentUnderstandingSkillExtractionOptions" + } }, - "charFilters": { - "type": "array", - "items": { - "$ref": "#/definitions/CharFilterName", - "x-nullable": false - }, - "description": "A list of character filters used to prepare input text before it is processed by the tokenizer. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed." + "chunkingProperties": { + "$ref": "#/definitions/ContentUnderstandingSkillChunkingProperties", + "description": "Controls the cardinality for chunking the content.", + "x-nullable": true } }, - "required": [ - "tokenizer" - ], - "description": "Allows you to take control over the process of converting text into indexable/searchable tokens. It's a user-defined configuration consisting of a single predefined tokenizer and one or more filters. The tokenizer is responsible for breaking text into tokens, and the filters for modifying tokens emitted by the tokenizer." - }, - "PatternAnalyzer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternAnalyzer", "allOf": [ { - "$ref": "#/definitions/LexicalAnalyzer" + "$ref": "#/definitions/SearchIndexerSkill" } ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.ContentUnderstandingSkill" + }, + "ContentUnderstandingSkillChunkingProperties": { + "type": "object", + "description": "Controls the cardinality for chunking the content.", "properties": { - "lowercase": { - "x-ms-client-name": "LowerCaseTerms", - "type": "boolean", - "default": true, - "description": "A value indicating whether terms should be lower-cased. Default is true." - }, - "pattern": { + "unit": { "type": "string", - "default": "\\W+", - "description": "A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters." + "description": "The unit of the chunk.", + "default": "characters", + "enum": [ + "characters" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "Characters", + "value": "characters", + "description": "Specifies chunk by characters." + } + ] + }, + "x-nullable": true }, - "flags": { - "$ref": "#/definitions/RegexFlags", - "description": "Regular expression flags." + "maximumLength": { + "type": "integer", + "format": "int32", + "description": "The maximum chunk length in characters. Default is 500.", + "x-nullable": true }, - "stopwords": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of stopwords." + "overlapLength": { + "type": "integer", + "format": "int32", + "description": "The length of overlap provided between two text chunks. Default is 0.", + "x-nullable": true } - }, - "description": "Flexibly separates text into terms via a regular expression pattern. This analyzer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.html" } }, - "LuceneStandardAnalyzer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardAnalyzer", - "allOf": [ - { - "$ref": "#/definitions/LexicalAnalyzer" - } + "ContentUnderstandingSkillChunkingUnit": { + "type": "string", + "description": "Controls the cardinality of the chunk unit. Default is 'characters'", + "enum": [ + "characters" ], - "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." - }, - "stopwords": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of stopwords." - } - }, - "description": "Standard Apache Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html" + "x-ms-enum": { + "name": "ContentUnderstandingSkillChunkingUnit", + "modelAsString": true, + "values": [ + { + "name": "Characters", + "value": "characters", + "description": "Specifies chunk by characters." + } + ] } }, - "StopAnalyzer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StopAnalyzer", - "allOf": [ - { - "$ref": "#/definitions/LexicalAnalyzer" - } + "ContentUnderstandingSkillExtractionOptions": { + "type": "string", + "description": "Controls the cardinality of the content extracted from the document by the skill.", + "enum": [ + "images", + "locationMetadata" ], - "properties": { - "stopwords": { - "type": "array", - "items": { - "type": "string" + "x-ms-enum": { + "name": "ContentUnderstandingSkillExtractionOptions", + "modelAsString": true, + "values": [ + { + "name": "Images", + "value": "images", + "description": "Specify that image content should be extracted from the document." }, - "description": "A list of stopwords." - } - }, - "description": "Divides text at non-letters; Applies the lowercase and stopword token filters. This analyzer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html" + { + "name": "LocationMetadata", + "value": "locationMetadata", + "description": "Specify that location metadata should be extracted from the document." + } + ] } }, - "LexicalNormalizer": { + "CorsOptions": { "type": "object", - "discriminator": "@odata.type", + "description": "Defines options to control Cross-Origin Resource Sharing (CORS) for an index.", "properties": { - "@odata.type": { - "type": "string", - "description": "A URI fragment specifying the type of normalizer." + "allowedOrigins": { + "type": "array", + "description": "The list of origins from which JavaScript code will be granted access to your index. Can contain a list of hosts of the form {protocol}://{fully-qualified-domain-name}[:{port#}], or a single '*' to allow all origins (not recommended).", + "items": { + "type": "string" + } }, - "name": { - "type": "string", - "externalDocs": { - "url": "https://aka.ms/azs-normalizers" - }, - "description": "The name of the normalizer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters. It cannot end in '.microsoft' nor '.lucene', nor be named 'asciifolding', 'standard', 'lowercase', 'uppercase', or 'elision'." + "maxAgeInSeconds": { + "type": "integer", + "format": "int64", + "description": "The duration for which browsers should cache CORS preflight responses. Defaults to 5 minutes.", + "x-nullable": true } }, "required": [ - "@odata.type", - "name" - ], - "description": "Base type for normalizers." + "allowedOrigins" + ] }, - "CustomNormalizer": { + "CreatedResources": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CustomNormalizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalNormalizer" - } - ], + "description": "Resources created by the knowledge source. Keys represent resource types (e.g., 'datasource', 'indexer', 'skillset', 'index') and values represent resource names.", + "additionalProperties": { + "type": "string" + } + }, + "CustomAnalyzer": { + "type": "object", + "description": "Allows you to take control over the process of converting text into indexable/searchable tokens. It's a user-defined configuration consisting of a single predefined tokenizer and one or more filters. The tokenizer is responsible for breaking text into tokens, and the filters for modifying tokens emitted by the tokenizer.", "properties": { + "tokenizer": { + "$ref": "#/definitions/LexicalTokenizerName", + "description": "The name of the tokenizer to use to divide continuous text into a sequence of tokens, such as breaking a sentence into words." + }, "tokenFilters": { "type": "array", + "description": "A list of token filters used to filter out or modify the tokens generated by a tokenizer. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed.", "items": { - "$ref": "#/definitions/TokenFilterName", - "x-nullable": false - }, - "description": "A list of token filters used to filter out or modify the input token. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed." + "$ref": "#/definitions/TokenFilterName" + } }, "charFilters": { "type": "array", + "description": "A list of character filters used to prepare input text before it is processed by the tokenizer. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed.", "items": { - "$ref": "#/definitions/CharFilterName", - "x-nullable": false - }, - "description": "A list of character filters used to prepare input text before it is processed. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed." + "$ref": "#/definitions/CharFilterName" + } } }, - "description": "Allows you to configure normalization for filterable, sortable, and facetable fields, which by default operate with strict matching. This is a user-defined configuration consisting of at least one or more filters, which modify the token that is stored.", - "externalDocs": { - "url": "https://aka.ms/azs-custom-normalizers" - } + "required": [ + "tokenizer" + ], + "allOf": [ + { + "$ref": "#/definitions/LexicalAnalyzer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CustomAnalyzer" }, - "LexicalTokenizer": { + "CustomEntity": { "type": "object", - "discriminator": "@odata.type", + "description": "An object that contains information about the matches that were found, and related metadata.", "properties": { - "@odata.type": { + "name": { "type": "string", - "description": "A URI fragment specifying the type of tokenizer." + "description": "The top-level entity descriptor. Matches in the skill output will be grouped by this name, and it should represent the \"normalized\" form of the text being found." }, - "name": { + "description": { "type": "string", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/custom-analyzers-in-azure-search#index-attribute-reference" - }, - "description": "The name of the tokenizer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.", + "x-nullable": true + }, + "type": { + "type": "string", + "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.", + "x-nullable": true + }, + "subtype": { + "type": "string", + "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.", + "x-nullable": true + }, + "id": { + "type": "string", + "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.", + "x-nullable": true + }, + "caseSensitive": { + "type": "boolean", + "description": "Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to character casing. Sample case insensitive matches of \"Microsoft\" could be: microsoft, microSoft, MICROSOFT.", + "x-nullable": true + }, + "accentSensitive": { + "type": "boolean", + "description": "Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to accent.", + "x-nullable": true + }, + "fuzzyEditDistance": { + "type": "integer", + "format": "int32", + "description": "Defaults to 0. Maximum value of 5. Denotes the acceptable number of divergent characters that would still constitute a match with the entity name. The smallest possible fuzziness for any given match is returned. For instance, if the edit distance is set to 3, \"Windows10\" would still match \"Windows\", \"Windows10\" and \"Windows 7\". When case sensitivity is set to false, case differences do NOT count towards fuzziness tolerance, but otherwise do.", + "x-nullable": true + }, + "defaultCaseSensitive": { + "type": "boolean", + "description": "Changes the default case sensitivity value for this entity. It be used to change the default value of all aliases caseSensitive values.", + "x-nullable": true + }, + "defaultAccentSensitive": { + "type": "boolean", + "description": "Changes the default accent sensitivity value for this entity. It be used to change the default value of all aliases accentSensitive values.", + "x-nullable": true + }, + "defaultFuzzyEditDistance": { + "type": "integer", + "format": "int32", + "description": "Changes the default fuzzy edit distance value for this entity. It can be used to change the default value of all aliases fuzzyEditDistance values.", + "x-nullable": true + }, + "aliases": { + "type": "array", + "description": "An array of complex objects that can be used to specify alternative spellings or synonyms to the root entity name.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/CustomEntityAlias" + } } }, "required": [ - "@odata.type", "name" - ], - "description": "Base type for tokenizers.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } + ] }, - "ClassicTokenizer": { + "CustomEntityAlias": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.ClassicTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "A complex object that can be used to specify alternative spellings or synonyms to the root entity name.", "properties": { - "maxTokenLength": { + "text": { + "type": "string", + "description": "The text of the alias." + }, + "caseSensitive": { + "type": "boolean", + "description": "Determine if the alias is case sensitive.", + "x-nullable": true + }, + "accentSensitive": { + "type": "boolean", + "description": "Determine if the alias is accent sensitive.", + "x-nullable": true + }, + "fuzzyEditDistance": { "type": "integer", "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." + "description": "Determine the fuzzy edit distance of the alias.", + "x-nullable": true } }, - "description": "Grammar-based tokenizer that is suitable for processing most European-language documents. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicTokenizer.html" - } + "required": [ + "text" + ] }, - "TokenCharacterKind": { - "type": "string", - "enum": [ - "letter", - "digit", - "whitespace", - "punctuation", - "symbol" - ], - "x-ms-enum": { - "name": "TokenCharacterKind", - "modelAsString": false, - "values": [ - { - "value": "letter", - "name": "Letter", - "description": "Keeps letters in tokens." - }, - { - "value": "digit", - "name": "Digit", - "description": "Keeps digits in tokens." - }, - { - "value": "whitespace", - "name": "Whitespace", - "description": "Keeps whitespace in tokens." - }, - { - "value": "punctuation", - "name": "Punctuation", - "description": "Keeps punctuation in tokens." - }, - { - "value": "symbol", - "name": "Symbol", - "description": "Keeps symbols in tokens." + "CustomEntityLookupSkill": { + "type": "object", + "description": "A skill looks for text from a custom, user-defined list of words and phrases.", + "properties": { + "defaultLanguageCode": { + "$ref": "#/definitions/CustomEntityLookupSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true + }, + "entitiesDefinitionUri": { + "type": "string", + "description": "Path to a JSON or CSV file containing all the target text to match against. This entity definition is read at the beginning of an indexer run. Any updates to this file during an indexer run will not take effect until subsequent runs. This config must be accessible over HTTPS.", + "x-nullable": true + }, + "inlineEntitiesDefinition": { + "type": "array", + "description": "The inline CustomEntity definition.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/CustomEntity" } - ] + }, + "globalDefaultCaseSensitive": { + "type": "boolean", + "description": "A global flag for CaseSensitive. If CaseSensitive is not set in CustomEntity, this value will be the default value.", + "x-nullable": true + }, + "globalDefaultAccentSensitive": { + "type": "boolean", + "description": "A global flag for AccentSensitive. If AccentSensitive is not set in CustomEntity, this value will be the default value.", + "x-nullable": true + }, + "globalDefaultFuzzyEditDistance": { + "type": "integer", + "format": "int32", + "description": "A global flag for FuzzyEditDistance. If FuzzyEditDistance is not set in CustomEntity, this value will be the default value.", + "x-nullable": true + } }, - "description": "Represents classes of characters on which a token filter can operate." + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.CustomEntityLookupSkill" }, - "RankingOrder": { + "CustomEntityLookupSkillLanguage": { "type": "string", + "description": "The language codes supported for input text by CustomEntityLookupSkill.", "enum": [ - "BoostedRerankerScore", - "RerankerScore" + "da", + "de", + "en", + "es", + "fi", + "fr", + "it", + "ko", + "pt" ], "x-ms-enum": { - "name": "RankingOrder", + "name": "CustomEntityLookupSkillLanguage", "modelAsString": true, "values": [ { - "value": "BoostedRerankerScore", - "name": "BoostedRerankerScore", - "description": "Sets sort order as BoostedRerankerScore" + "name": "da", + "value": "da", + "description": "Danish" }, { - "value": "RerankerScore", - "name": "ReRankerScore", - "description": "Sets sort order as ReRankerScore" + "name": "de", + "value": "de", + "description": "German" + }, + { + "name": "en", + "value": "en", + "description": "English" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "fi", + "value": "fi", + "description": "Finnish" + }, + { + "name": "fr", + "value": "fr", + "description": "French" + }, + { + "name": "it", + "value": "it", + "description": "Italian" + }, + { + "name": "ko", + "value": "ko", + "description": "Korean" + }, + { + "name": "pt", + "value": "pt", + "description": "Portuguese" } ] + } + }, + "CustomNormalizer": { + "type": "object", + "description": "Allows you to configure normalization for filterable, sortable, and facetable fields, which by default operate with strict matching. This is a user-defined configuration consisting of at least one or more filters, which modify the token that is stored.", + "properties": { + "tokenFilters": { + "type": "array", + "description": "A list of token filters used to filter out or modify the input token. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed.", + "items": { + "$ref": "#/definitions/TokenFilterName" + } + }, + "charFilters": { + "type": "array", + "description": "A list of character filters used to prepare input text before it is processed. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed.", + "items": { + "$ref": "#/definitions/CharFilterName" + } + } }, - "description": "Represents score to use for sort order of documents." + "allOf": [ + { + "$ref": "#/definitions/LexicalNormalizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CustomNormalizer" }, - "EdgeNGramTokenizer": { + "DataChangeDetectionPolicy": { + "type": "object", + "description": "Base type for data change detection policies.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] + }, + "DataDeletionDetectionPolicy": { + "type": "object", + "description": "Base type for data deletion detection policies.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] + }, + "DataSourceCredentials": { + "type": "object", + "description": "Represents credentials that can be used to connect to a datasource.", + "properties": { + "connectionString": { + "type": "string", + "description": "The connection string for the datasource. Set to `` (with brackets) if you don't want the connection string updated. Set to `` if you want to remove the connection string value from the datasource." + } + } + }, + "DebugInfo": { + "type": "object", + "description": "Contains debugging information that can be used to further explore your search results.", + "properties": { + "queryRewrites": { + "$ref": "#/definitions/QueryRewritesDebugInfo", + "description": "Contains debugging information specific to query rewrites.", + "readOnly": true + } + } + }, + "DefaultCognitiveServicesAccount": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenizer", + "description": "An empty object that represents the default Azure AI service resource for a skillset.", "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/CognitiveServicesAccount" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.DefaultCognitiveServices" + }, + "DictionaryDecompounderTokenFilter": { + "type": "object", + "description": "Decomposes compound words found in many Germanic languages. This token filter is implemented using Apache Lucene.", "properties": { - "minGram": { + "wordList": { + "type": "array", + "description": "The list of words to match against.", + "items": { + "type": "string" + } + }, + "minWordSize": { "type": "integer", "format": "int32", - "default": 1, - "maximum": 300, - "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram." + "description": "The minimum word size. Only words longer than this get processed. Default is 5. Maximum is 300.", + "default": 5, + "maximum": 300 }, - "maxGram": { + "minSubwordSize": { "type": "integer", "format": "int32", + "description": "The minimum subword size. Only subwords longer than this are outputted. Default is 2. Maximum is 300.", "default": 2, - "maximum": 300, - "description": "The maximum n-gram length. Default is 2. Maximum is 300." + "maximum": 300 }, - "tokenChars": { - "type": "array", - "items": { - "$ref": "#/definitions/TokenCharacterKind", - "x-nullable": false - }, - "description": "Character classes to keep in the tokens." + "maxSubwordSize": { + "type": "integer", + "format": "int32", + "description": "The maximum subword size. Only subwords shorter than this are outputted. Default is 15. Maximum is 300.", + "default": 15, + "maximum": 300 + }, + "onlyLongestMatch": { + "type": "boolean", + "description": "A value indicating whether to add only the longest matching subword to the output. Default is false.", + "default": false } }, - "description": "Tokenizes the input from an edge into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.html" - } - }, - "KeywordTokenizer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordTokenizer", + "required": [ + "wordList" + ], "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.DictionaryDecompounderTokenFilter" + }, + "DistanceScoringFunction": { + "type": "object", + "description": "Defines a function that boosts scores based on distance from a geographic location.", "properties": { - "bufferSize": { - "type": "integer", - "format": "int32", - "default": 256, - "description": "The read buffer size in bytes. Default is 256." + "distance": { + "$ref": "#/definitions/DistanceScoringParameters", + "description": "Parameter values for the distance scoring function." } }, - "description": "Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html" - }, - "x-az-search-deprecated": true - }, - "KeywordTokenizerV2": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordTokenizerV2", + "required": [ + "distance" + ], "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/ScoringFunction" } ], + "x-ms-discriminator-value": "distance" + }, + "DistanceScoringParameters": { + "type": "object", + "description": "Provides parameter values to a distance scoring function.", "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 256, - "maximum": 300, - "description": "The maximum token length. Default is 256. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." + "referencePointParameter": { + "type": "string", + "description": "The name of the parameter passed in search queries to specify the reference location." + }, + "boostingDistance": { + "type": "number", + "format": "double", + "description": "The distance in kilometers from the reference location where the boosting range ends." } }, - "description": "Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html" - } + "required": [ + "referencePointParameter", + "boostingDistance" + ] }, - "MicrosoftTokenizerLanguage": { - "type": "string", - "enum": [ - "bangla", - "bulgarian", - "catalan", - "chineseSimplified", - "chineseTraditional", - "croatian", - "czech", - "danish", - "dutch", - "english", - "french", - "german", - "greek", - "gujarati", - "hindi", - "icelandic", - "indonesian", - "italian", - "japanese", - "kannada", - "korean", - "malay", - "malayalam", - "marathi", - "norwegianBokmaal", - "polish", - "portuguese", - "portugueseBrazilian", - "punjabi", - "romanian", - "russian", - "serbianCyrillic", - "serbianLatin", - "slovenian", - "spanish", - "swedish", - "tamil", - "telugu", - "thai", - "ukrainian", - "urdu", - "vietnamese" + "DocumentDebugInfo": { + "type": "object", + "description": "Contains debugging information that can be used to further explore your search results.", + "properties": { + "semantic": { + "$ref": "#/definitions/SemanticDebugInfo", + "description": "Contains debugging information specific to semantic ranking requests.", + "readOnly": true + }, + "vectors": { + "$ref": "#/definitions/VectorsDebugInfo", + "description": "Contains debugging information specific to vector and hybrid search.", + "readOnly": true + }, + "innerHits": { + "type": "object", + "description": "Contains debugging information specific to vectors matched within a collection of complex types.", + "additionalProperties": { + "items": { + "$ref": "#/definitions/QueryResultDocumentInnerHit" + }, + "type": "array" + }, + "readOnly": true + } + } + }, + "DocumentExtractionSkill": { + "type": "object", + "description": "A skill that extracts content from a file within the enrichment pipeline.", + "properties": { + "parsingMode": { + "type": "string", + "description": "The parsingMode for the skill. Will be set to 'default' if not defined.", + "x-nullable": true + }, + "dataToExtract": { + "type": "string", + "description": "The type of data to be extracted for the skill. Will be set to 'contentAndMetadata' if not defined.", + "x-nullable": true + }, + "configuration": { + "type": "object", + "description": "A dictionary of configurations for the skill.", + "x-nullable": true, + "additionalProperties": {} + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.DocumentExtractionSkill" + }, + "DocumentIntelligenceLayoutSkill": { + "type": "object", + "description": "A skill that extracts content and layout information, via Azure AI Services, from files within the enrichment pipeline.", + "properties": { + "outputFormat": { + "type": "string", + "description": "Controls the output format. Default is 'markdown'.", + "default": "markdown", + "enum": [ + "text", + "markdown" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "Text", + "value": "text", + "description": "Specify the format of the output as text." + }, + { + "name": "Markdown", + "value": "markdown", + "description": "Specify the format of the output as markdown." + } + ] + }, + "x-nullable": true + }, + "outputMode": { + "type": "string", + "description": "Controls the cardinality of the output produced by the skill. Default is 'oneToMany'.", + "default": "oneToMany", + "enum": [ + "oneToMany" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "OneToMany", + "value": "oneToMany", + "description": "Specify that the output should be parsed as 'oneToMany'." + } + ] + }, + "x-nullable": true + }, + "markdownHeaderDepth": { + "type": "string", + "description": "The depth of headers in the markdown output. Default is h6.", + "default": "h6", + "enum": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "H1", + "value": "h1", + "description": "Header level 1." + }, + { + "name": "H2", + "value": "h2", + "description": "Header level 2." + }, + { + "name": "H3", + "value": "h3", + "description": "Header level 3." + }, + { + "name": "H4", + "value": "h4", + "description": "Header level 4." + }, + { + "name": "H5", + "value": "h5", + "description": "Header level 5." + }, + { + "name": "H6", + "value": "h6", + "description": "Header level 6." + } + ] + }, + "x-nullable": true + }, + "extractionOptions": { + "type": "array", + "description": "Controls the cardinality of the content extracted from the document by the skill.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/DocumentIntelligenceLayoutSkillExtractionOptions" + } + }, + "chunkingProperties": { + "$ref": "#/definitions/DocumentIntelligenceLayoutSkillChunkingProperties", + "description": "Controls the cardinality for chunking the content.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill" + }, + "DocumentIntelligenceLayoutSkillChunkingProperties": { + "type": "object", + "description": "Controls the cardinality for chunking the content.", + "properties": { + "unit": { + "type": "string", + "description": "The unit of the chunk.", + "default": "characters", + "enum": [ + "characters" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "Characters", + "value": "characters", + "description": "Specifies chunk by characters." + } + ] + }, + "x-nullable": true + }, + "maximumLength": { + "type": "integer", + "format": "int32", + "description": "The maximum chunk length in characters. Default is 500.", + "x-nullable": true + }, + "overlapLength": { + "type": "integer", + "format": "int32", + "description": "The length of overlap provided between two text chunks. Default is 0.", + "x-nullable": true + } + } + }, + "DocumentIntelligenceLayoutSkillChunkingUnit": { + "type": "string", + "description": "Controls the cardinality of the chunk unit. Default is 'characters'", + "enum": [ + "characters" ], "x-ms-enum": { - "name": "MicrosoftTokenizerLanguage", - "modelAsString": false, + "name": "DocumentIntelligenceLayoutSkillChunkingUnit", + "modelAsString": true, "values": [ { - "value": "bangla", - "name": "Bangla", - "description": "Selects the Microsoft tokenizer for Bangla." - }, + "name": "Characters", + "value": "characters", + "description": "Specifies chunk by characters." + } + ] + } + }, + "DocumentIntelligenceLayoutSkillExtractionOptions": { + "type": "string", + "description": "Controls the cardinality of the content extracted from the document by the skill.", + "enum": [ + "images", + "locationMetadata" + ], + "x-ms-enum": { + "name": "DocumentIntelligenceLayoutSkillExtractionOptions", + "modelAsString": true, + "values": [ { - "value": "bulgarian", - "name": "Bulgarian", - "description": "Selects the Microsoft tokenizer for Bulgarian." + "name": "Images", + "value": "images", + "description": "Specify that image content should be extracted from the document." }, { - "value": "catalan", - "name": "Catalan", - "description": "Selects the Microsoft tokenizer for Catalan." - }, + "name": "LocationMetadata", + "value": "locationMetadata", + "description": "Specify that location metadata should be extracted from the document." + } + ] + } + }, + "DocumentIntelligenceLayoutSkillMarkdownHeaderDepth": { + "type": "string", + "description": "The depth of headers in the markdown output. Default is h6.", + "enum": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "x-ms-enum": { + "name": "DocumentIntelligenceLayoutSkillMarkdownHeaderDepth", + "modelAsString": true, + "values": [ { - "value": "chineseSimplified", - "name": "ChineseSimplified", - "description": "Selects the Microsoft tokenizer for Chinese (Simplified)." + "name": "H1", + "value": "h1", + "description": "Header level 1." }, { - "value": "chineseTraditional", - "name": "ChineseTraditional", - "description": "Selects the Microsoft tokenizer for Chinese (Traditional)." + "name": "H2", + "value": "h2", + "description": "Header level 2." }, { - "value": "croatian", - "name": "Croatian", - "description": "Selects the Microsoft tokenizer for Croatian." + "name": "H3", + "value": "h3", + "description": "Header level 3." }, { - "value": "czech", - "name": "Czech", - "description": "Selects the Microsoft tokenizer for Czech." - }, - { - "value": "danish", - "name": "Danish", - "description": "Selects the Microsoft tokenizer for Danish." - }, - { - "value": "dutch", - "name": "Dutch", - "description": "Selects the Microsoft tokenizer for Dutch." - }, - { - "value": "english", - "name": "English", - "description": "Selects the Microsoft tokenizer for English." - }, - { - "value": "french", - "name": "French", - "description": "Selects the Microsoft tokenizer for French." - }, - { - "value": "german", - "name": "German", - "description": "Selects the Microsoft tokenizer for German." - }, - { - "value": "greek", - "name": "Greek", - "description": "Selects the Microsoft tokenizer for Greek." - }, - { - "value": "gujarati", - "name": "Gujarati", - "description": "Selects the Microsoft tokenizer for Gujarati." - }, - { - "value": "hindi", - "name": "Hindi", - "description": "Selects the Microsoft tokenizer for Hindi." - }, - { - "value": "icelandic", - "name": "Icelandic", - "description": "Selects the Microsoft tokenizer for Icelandic." - }, - { - "value": "indonesian", - "name": "Indonesian", - "description": "Selects the Microsoft tokenizer for Indonesian." - }, - { - "value": "italian", - "name": "Italian", - "description": "Selects the Microsoft tokenizer for Italian." - }, - { - "value": "japanese", - "name": "Japanese", - "description": "Selects the Microsoft tokenizer for Japanese." - }, - { - "value": "kannada", - "name": "Kannada", - "description": "Selects the Microsoft tokenizer for Kannada." - }, - { - "value": "korean", - "name": "Korean", - "description": "Selects the Microsoft tokenizer for Korean." - }, - { - "value": "malay", - "name": "Malay", - "description": "Selects the Microsoft tokenizer for Malay." - }, - { - "value": "malayalam", - "name": "Malayalam", - "description": "Selects the Microsoft tokenizer for Malayalam." - }, - { - "value": "marathi", - "name": "Marathi", - "description": "Selects the Microsoft tokenizer for Marathi." - }, - { - "value": "norwegianBokmaal", - "name": "NorwegianBokmaal", - "description": "Selects the Microsoft tokenizer for Norwegian (Bokmål)." - }, - { - "value": "polish", - "name": "Polish", - "description": "Selects the Microsoft tokenizer for Polish." - }, - { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the Microsoft tokenizer for Portuguese." - }, - { - "value": "portugueseBrazilian", - "name": "PortugueseBrazilian", - "description": "Selects the Microsoft tokenizer for Portuguese (Brazil)." - }, - { - "value": "punjabi", - "name": "Punjabi", - "description": "Selects the Microsoft tokenizer for Punjabi." - }, - { - "value": "romanian", - "name": "Romanian", - "description": "Selects the Microsoft tokenizer for Romanian." - }, - { - "value": "russian", - "name": "Russian", - "description": "Selects the Microsoft tokenizer for Russian." - }, - { - "value": "serbianCyrillic", - "name": "SerbianCyrillic", - "description": "Selects the Microsoft tokenizer for Serbian (Cyrillic)." - }, - { - "value": "serbianLatin", - "name": "SerbianLatin", - "description": "Selects the Microsoft tokenizer for Serbian (Latin)." - }, - { - "value": "slovenian", - "name": "Slovenian", - "description": "Selects the Microsoft tokenizer for Slovenian." - }, - { - "value": "spanish", - "name": "Spanish", - "description": "Selects the Microsoft tokenizer for Spanish." - }, - { - "value": "swedish", - "name": "Swedish", - "description": "Selects the Microsoft tokenizer for Swedish." - }, - { - "value": "tamil", - "name": "Tamil", - "description": "Selects the Microsoft tokenizer for Tamil." + "name": "H4", + "value": "h4", + "description": "Header level 4." }, { - "value": "telugu", - "name": "Telugu", - "description": "Selects the Microsoft tokenizer for Telugu." + "name": "H5", + "value": "h5", + "description": "Header level 5." }, { - "value": "thai", - "name": "Thai", - "description": "Selects the Microsoft tokenizer for Thai." - }, + "name": "H6", + "value": "h6", + "description": "Header level 6." + } + ] + } + }, + "DocumentIntelligenceLayoutSkillOutputFormat": { + "type": "string", + "description": "Controls the cardinality of the output format. Default is 'markdown'.", + "enum": [ + "text", + "markdown" + ], + "x-ms-enum": { + "name": "DocumentIntelligenceLayoutSkillOutputFormat", + "modelAsString": true, + "values": [ { - "value": "ukrainian", - "name": "Ukrainian", - "description": "Selects the Microsoft tokenizer for Ukrainian." + "name": "Text", + "value": "text", + "description": "Specify the format of the output as text." }, { - "value": "urdu", - "name": "Urdu", - "description": "Selects the Microsoft tokenizer for Urdu." - }, + "name": "Markdown", + "value": "markdown", + "description": "Specify the format of the output as markdown." + } + ] + } + }, + "DocumentIntelligenceLayoutSkillOutputMode": { + "type": "string", + "description": "Controls the cardinality of the output produced by the skill. Default is 'oneToMany'.", + "enum": [ + "oneToMany" + ], + "x-ms-enum": { + "name": "DocumentIntelligenceLayoutSkillOutputMode", + "modelAsString": true, + "values": [ { - "value": "vietnamese", - "name": "Vietnamese", - "description": "Selects the Microsoft tokenizer for Vietnamese." + "name": "OneToMany", + "value": "oneToMany", + "description": "Specify that the output should be parsed as 'oneToMany'." } ] - }, - "description": "Lists the languages supported by the Microsoft language tokenizer." + } }, - "MicrosoftLanguageTokenizer": { + "DocumentKeysOrIds": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.MicrosoftLanguageTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" + "description": "The type of the keysOrIds.", + "properties": { + "documentKeys": { + "type": "array", + "description": "document keys to be reset", + "items": { + "type": "string" + } + }, + "datasourceDocumentIds": { + "type": "array", + "description": "datasource document identifiers to be reset", + "items": { + "type": "string" + } } - ], + } + }, + "EdgeNGramTokenFilter": { + "type": "object", + "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.", "properties": { - "maxTokenLength": { + "minGram": { "type": "integer", "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255." + "description": "The minimum n-gram length. Default is 1. Must be less than the value of maxGram.", + "default": 1 }, - "isSearchTokenizer": { - "type": "boolean", - "default": false, - "description": "A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false." + "maxGram": { + "type": "integer", + "format": "int32", + "description": "The maximum n-gram length. Default is 2.", + "default": 2 }, - "language": { - "$ref": "#/definitions/MicrosoftTokenizerLanguage", - "description": "The language to use. The default is English." - } - }, - "description": "Divides text using language-specific rules." - }, - "MicrosoftStemmingTokenizerLanguage": { - "type": "string", - "enum": [ - "arabic", - "bangla", - "bulgarian", - "catalan", - "croatian", - "czech", - "danish", - "dutch", - "english", - "estonian", - "finnish", - "french", - "german", - "greek", - "gujarati", - "hebrew", - "hindi", - "hungarian", - "icelandic", - "indonesian", - "italian", - "kannada", - "latvian", - "lithuanian", - "malay", - "malayalam", - "marathi", - "norwegianBokmaal", - "polish", - "portuguese", - "portugueseBrazilian", - "punjabi", - "romanian", - "russian", - "serbianCyrillic", - "serbianLatin", - "slovak", - "slovenian", - "spanish", - "swedish", - "tamil", - "telugu", - "turkish", - "ukrainian", - "urdu" + "side": { + "type": "string", + "description": "Specifies which side of the input the n-gram should be generated from. Default is \"front\".", + "default": "front", + "enum": [ + "front", + "back" + ], + "x-ms-enum": { + "name": "EdgeNGramTokenFilterSide", + "modelAsString": true, + "values": [ + { + "name": "Front", + "value": "front", + "description": "Specifies that the n-gram should be generated from the front of the input." + }, + { + "name": "Back", + "value": "back", + "description": "Specifies that the n-gram should be generated from the back of the input." + } + ] + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenFilter" + }, + "EdgeNGramTokenFilterSide": { + "type": "string", + "description": "Specifies which side of the input an n-gram should be generated from.", + "enum": [ + "front", + "back" ], "x-ms-enum": { - "name": "MicrosoftStemmingTokenizerLanguage", - "modelAsString": false, + "name": "EdgeNGramTokenFilterSide", + "modelAsString": true, "values": [ { - "value": "arabic", - "name": "Arabic", - "description": "Selects the Microsoft stemming tokenizer for Arabic." - }, - { - "value": "bangla", - "name": "Bangla", - "description": "Selects the Microsoft stemming tokenizer for Bangla." - }, - { - "value": "bulgarian", - "name": "Bulgarian", - "description": "Selects the Microsoft stemming tokenizer for Bulgarian." - }, - { - "value": "catalan", - "name": "Catalan", - "description": "Selects the Microsoft stemming tokenizer for Catalan." - }, - { - "value": "croatian", - "name": "Croatian", - "description": "Selects the Microsoft stemming tokenizer for Croatian." - }, - { - "value": "czech", - "name": "Czech", - "description": "Selects the Microsoft stemming tokenizer for Czech." - }, - { - "value": "danish", - "name": "Danish", - "description": "Selects the Microsoft stemming tokenizer for Danish." - }, - { - "value": "dutch", - "name": "Dutch", - "description": "Selects the Microsoft stemming tokenizer for Dutch." + "name": "Front", + "value": "front", + "description": "Specifies that the n-gram should be generated from the front of the input." }, { - "value": "english", - "name": "English", - "description": "Selects the Microsoft stemming tokenizer for English." - }, + "name": "Back", + "value": "back", + "description": "Specifies that the n-gram should be generated from the back of the input." + } + ] + } + }, + "EdgeNGramTokenFilterV2": { + "type": "object", + "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.", + "properties": { + "minGram": { + "type": "integer", + "format": "int32", + "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.", + "default": 1, + "maximum": 300 + }, + "maxGram": { + "type": "integer", + "format": "int32", + "description": "The maximum n-gram length. Default is 2. Maximum is 300.", + "default": 2, + "maximum": 300 + }, + "side": { + "type": "string", + "description": "Specifies which side of the input the n-gram should be generated from. Default is \"front\".", + "default": "front", + "enum": [ + "front", + "back" + ], + "x-ms-enum": { + "name": "EdgeNGramTokenFilterSide", + "modelAsString": true, + "values": [ + { + "name": "Front", + "value": "front", + "description": "Specifies that the n-gram should be generated from the front of the input." + }, + { + "name": "Back", + "value": "back", + "description": "Specifies that the n-gram should be generated from the back of the input." + } + ] + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenFilterV2" + }, + "EdgeNGramTokenizer": { + "type": "object", + "description": "Tokenizes the input from an edge into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.", + "properties": { + "minGram": { + "type": "integer", + "format": "int32", + "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.", + "default": 1, + "maximum": 300 + }, + "maxGram": { + "type": "integer", + "format": "int32", + "description": "The maximum n-gram length. Default is 2. Maximum is 300.", + "default": 2, + "maximum": 300 + }, + "tokenChars": { + "type": "array", + "description": "Character classes to keep in the tokens.", + "items": { + "$ref": "#/definitions/TokenCharacterKind" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenizer" + }, + "ElisionTokenFilter": { + "type": "object", + "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). This token filter is implemented using Apache Lucene.", + "properties": { + "articles": { + "type": "array", + "description": "The set of articles to remove.", + "items": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.ElisionTokenFilter" + }, + "EntityCategory": { + "type": "string", + "description": "A string indicating what entity categories to return.", + "enum": [ + "location", + "organization", + "person", + "quantity", + "datetime", + "url", + "email" + ], + "x-ms-enum": { + "name": "EntityCategory", + "modelAsString": true, + "values": [ { - "value": "estonian", - "name": "Estonian", - "description": "Selects the Microsoft stemming tokenizer for Estonian." + "name": "Location", + "value": "location", + "description": "Entities describing a physical location." }, { - "value": "finnish", - "name": "Finnish", - "description": "Selects the Microsoft stemming tokenizer for Finnish." + "name": "Organization", + "value": "organization", + "description": "Entities describing an organization." }, { - "value": "french", - "name": "French", - "description": "Selects the Microsoft stemming tokenizer for French." + "name": "Person", + "value": "person", + "description": "Entities describing a person." }, { - "value": "german", - "name": "German", - "description": "Selects the Microsoft stemming tokenizer for German." + "name": "Quantity", + "value": "quantity", + "description": "Entities describing a quantity." }, { - "value": "greek", - "name": "Greek", - "description": "Selects the Microsoft stemming tokenizer for Greek." + "name": "Datetime", + "value": "datetime", + "description": "Entities describing a date and time." }, { - "value": "gujarati", - "name": "Gujarati", - "description": "Selects the Microsoft stemming tokenizer for Gujarati." + "name": "Url", + "value": "url", + "description": "Entities describing a URL." }, { - "value": "hebrew", - "name": "Hebrew", - "description": "Selects the Microsoft stemming tokenizer for Hebrew." - }, - { - "value": "hindi", - "name": "Hindi", - "description": "Selects the Microsoft stemming tokenizer for Hindi." - }, - { - "value": "hungarian", - "name": "Hungarian", - "description": "Selects the Microsoft stemming tokenizer for Hungarian." - }, - { - "value": "icelandic", - "name": "Icelandic", - "description": "Selects the Microsoft stemming tokenizer for Icelandic." - }, - { - "value": "indonesian", - "name": "Indonesian", - "description": "Selects the Microsoft stemming tokenizer for Indonesian." - }, - { - "value": "italian", - "name": "Italian", - "description": "Selects the Microsoft stemming tokenizer for Italian." - }, - { - "value": "kannada", - "name": "Kannada", - "description": "Selects the Microsoft stemming tokenizer for Kannada." - }, + "name": "Email", + "value": "email", + "description": "Entities describing an email address." + } + ] + } + }, + "EntityLinkingSkill": { + "type": "object", + "description": "Using the Text Analytics API, extracts linked entities from text.", + "properties": { + "defaultLanguageCode": { + "type": "string", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true + }, + "minimumPrecision": { + "type": "number", + "format": "double", + "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.", + "minimum": 0, + "maximum": 1 + }, + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.EntityLinkingSkill" + }, + "EntityRecognitionSkill": { + "type": "object", + "description": "This skill is deprecated. Use the V3.EntityRecognitionSkill instead.", + "properties": { + "categories": { + "type": "array", + "description": "A list of entity categories that should be extracted.", + "items": { + "$ref": "#/definitions/EntityCategory" + } + }, + "defaultLanguageCode": { + "$ref": "#/definitions/EntityRecognitionSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." + }, + "includeTypelessEntities": { + "type": "boolean", + "description": "Determines whether or not to include entities which are well known but don't conform to a pre-defined type. If this configuration is not set (default), set to null or set to false, entities which don't conform to one of the pre-defined types will not be surfaced.", + "x-nullable": true + }, + "minimumPrecision": { + "type": "number", + "format": "double", + "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.EntityRecognitionSkill" + }, + "EntityRecognitionSkillLanguage": { + "type": "string", + "description": "Deprecated. The language codes supported for input text by EntityRecognitionSkill.", + "enum": [ + "ar", + "cs", + "zh-Hans", + "zh-Hant", + "da", + "nl", + "en", + "fi", + "fr", + "de", + "el", + "hu", + "it", + "ja", + "ko", + "no", + "pl", + "pt-PT", + "pt-BR", + "ru", + "es", + "sv", + "tr" + ], + "x-ms-enum": { + "name": "EntityRecognitionSkillLanguage", + "modelAsString": true, + "values": [ { - "value": "latvian", - "name": "Latvian", - "description": "Selects the Microsoft stemming tokenizer for Latvian." + "name": "ar", + "value": "ar", + "description": "Arabic" }, { - "value": "lithuanian", - "name": "Lithuanian", - "description": "Selects the Microsoft stemming tokenizer for Lithuanian." + "name": "cs", + "value": "cs", + "description": "Czech" }, { - "value": "malay", - "name": "Malay", - "description": "Selects the Microsoft stemming tokenizer for Malay." + "name": "zh-Hans", + "value": "zh-Hans", + "description": "Chinese-Simplified" }, { - "value": "malayalam", - "name": "Malayalam", - "description": "Selects the Microsoft stemming tokenizer for Malayalam." + "name": "zh-Hant", + "value": "zh-Hant", + "description": "Chinese-Traditional" }, { - "value": "marathi", - "name": "Marathi", - "description": "Selects the Microsoft stemming tokenizer for Marathi." + "name": "da", + "value": "da", + "description": "Danish" }, { - "value": "norwegianBokmaal", - "name": "NorwegianBokmaal", - "description": "Selects the Microsoft stemming tokenizer for Norwegian (Bokmål)." + "name": "nl", + "value": "nl", + "description": "Dutch" }, { - "value": "polish", - "name": "Polish", - "description": "Selects the Microsoft stemming tokenizer for Polish." + "name": "en", + "value": "en", + "description": "English" }, { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the Microsoft stemming tokenizer for Portuguese." + "name": "fi", + "value": "fi", + "description": "Finnish" }, { - "value": "portugueseBrazilian", - "name": "PortugueseBrazilian", - "description": "Selects the Microsoft stemming tokenizer for Portuguese (Brazil)." + "name": "fr", + "value": "fr", + "description": "French" }, { - "value": "punjabi", - "name": "Punjabi", - "description": "Selects the Microsoft stemming tokenizer for Punjabi." + "name": "de", + "value": "de", + "description": "German" }, { - "value": "romanian", - "name": "Romanian", - "description": "Selects the Microsoft stemming tokenizer for Romanian." + "name": "el", + "value": "el", + "description": "Greek" }, { - "value": "russian", - "name": "Russian", - "description": "Selects the Microsoft stemming tokenizer for Russian." + "name": "hu", + "value": "hu", + "description": "Hungarian" }, { - "value": "serbianCyrillic", - "name": "SerbianCyrillic", - "description": "Selects the Microsoft stemming tokenizer for Serbian (Cyrillic)." + "name": "it", + "value": "it", + "description": "Italian" }, { - "value": "serbianLatin", - "name": "SerbianLatin", - "description": "Selects the Microsoft stemming tokenizer for Serbian (Latin)." + "name": "ja", + "value": "ja", + "description": "Japanese" }, { - "value": "slovak", - "name": "Slovak", - "description": "Selects the Microsoft stemming tokenizer for Slovak." + "name": "ko", + "value": "ko", + "description": "Korean" }, { - "value": "slovenian", - "name": "Slovenian", - "description": "Selects the Microsoft stemming tokenizer for Slovenian." + "name": "no", + "value": "no", + "description": "Norwegian (Bokmaal)" }, { - "value": "spanish", - "name": "Spanish", - "description": "Selects the Microsoft stemming tokenizer for Spanish." + "name": "pl", + "value": "pl", + "description": "Polish" }, { - "value": "swedish", - "name": "Swedish", - "description": "Selects the Microsoft stemming tokenizer for Swedish." + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese (Portugal)" }, { - "value": "tamil", - "name": "Tamil", - "description": "Selects the Microsoft stemming tokenizer for Tamil." + "name": "pt-BR", + "value": "pt-BR", + "description": "Portuguese (Brazil)" }, { - "value": "telugu", - "name": "Telugu", - "description": "Selects the Microsoft stemming tokenizer for Telugu." + "name": "ru", + "value": "ru", + "description": "Russian" }, { - "value": "turkish", - "name": "Turkish", - "description": "Selects the Microsoft stemming tokenizer for Turkish." + "name": "es", + "value": "es", + "description": "Spanish" }, { - "value": "ukrainian", - "name": "Ukrainian", - "description": "Selects the Microsoft stemming tokenizer for Ukrainian." + "name": "sv", + "value": "sv", + "description": "Swedish" }, { - "value": "urdu", - "name": "Urdu", - "description": "Selects the Microsoft stemming tokenizer for Urdu." + "name": "tr", + "value": "tr", + "description": "Turkish" } ] - }, - "description": "Lists the languages supported by the Microsoft language stemming tokenizer." + } }, - "MicrosoftLanguageStemmingTokenizer": { + "EntityRecognitionSkillV3": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.MicrosoftLanguageStemmingTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "Using the Text Analytics API, extracts entities of different types from text.", "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255." + "categories": { + "type": "array", + "description": "A list of entity categories that should be extracted.", + "items": { + "type": "string" + } }, - "isSearchTokenizer": { - "type": "boolean", - "default": false, - "description": "A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false." + "defaultLanguageCode": { + "type": "string", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true }, - "language": { - "$ref": "#/definitions/MicrosoftStemmingTokenizerLanguage", - "description": "The language to use. The default is English." + "minimumPrecision": { + "type": "number", + "format": "double", + "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.", + "minimum": 0, + "maximum": 1 + }, + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the Text Analytics API. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true } }, - "description": "Divides text using language-specific rules and reduces words to their base forms." - }, - "NGramTokenizer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenizer", "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/SearchIndexerSkill" } ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill" + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "maximum": 300, - "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram." - }, - "maxGram": { - "type": "integer", - "format": "int32", - "default": 2, - "maximum": 300, - "description": "The maximum n-gram length. Default is 2. Maximum is 300." + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true }, - "tokenChars": { - "type": "array", - "items": { - "$ref": "#/definitions/TokenCharacterKind", - "x-nullable": false - }, - "description": "Character classes to keep in the tokens." + "info": { + "type": "object", + "description": "The additional info.", + "additionalProperties": {}, + "readOnly": true } - }, - "description": "Tokenizes the input into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenizer.html" } }, - "PathHierarchyTokenizerV2": { + "ErrorDetail": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PathHierarchyTokenizerV2", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "The error detail.", "properties": { - "delimiter": { + "code": { "type": "string", - "format": "char", - "default": "/", - "description": "The delimiter character to use. Default is \"/\"." + "description": "The error code.", + "readOnly": true }, - "replacement": { + "message": { "type": "string", - "format": "char", - "default": "/", - "description": "A value that, if set, replaces the delimiter character. Default is \"/\"." + "description": "The error message.", + "readOnly": true }, - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 300, - "maximum": 300, - "description": "The maximum token length. Default and maximum is 300." + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true }, - "reverse": { - "x-ms-client-name": "ReverseTokenOrder", - "type": "boolean", - "default": false, - "description": "A value indicating whether to generate tokens in reverse order. Default is false." + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true }, - "skip": { - "x-ms-client-name": "NumberOfTokensToSkip", - "type": "integer", - "format": "int32", - "default": 0, - "description": "The number of initial tokens to skip. Default is 0." + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true } - }, - "description": "Tokenizer for path-like hierarchies. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/path/PathHierarchyTokenizer.html" } }, - "PatternTokenizer": { + "ErrorResponse": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).", "properties": { - "pattern": { - "type": "string", - "default": "\\W+", - "description": "A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters." - }, - "flags": { - "$ref": "#/definitions/RegexFlags", - "description": "Regular expression flags." - }, - "group": { - "type": "integer", - "format": "int32", - "default": -1, - "description": "The zero-based ordinal of the matching group in the regular expression pattern to extract into tokens. Use -1 if you want to use the entire pattern to split the input into tokens, irrespective of matching groups. Default is -1." + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." } - }, - "description": "Tokenizer that uses regex pattern matching to construct distinct tokens. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternTokenizer.html" } }, - "LuceneStandardTokenizer": { + "ExhaustiveKnnAlgorithmConfiguration": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "Contains configuration options specific to the exhaustive KNN algorithm used during querying, which will perform brute-force search across the entire vector index.", "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 255, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split." + "exhaustiveKnnParameters": { + "$ref": "#/definitions/ExhaustiveKnnParameters", + "description": "Contains the parameters specific to exhaustive KNN algorithm." } }, - "description": "Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html" - }, - "x-az-search-deprecated": true - }, - "LuceneStandardTokenizerV2": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardTokenizerV2", "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" } ], + "x-ms-discriminator-value": "exhaustiveKnn" + }, + "ExhaustiveKnnParameters": { + "type": "object", + "description": "Contains the parameters specific to exhaustive KNN algorithm.", "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." + "metric": { + "$ref": "#/definitions/VectorSearchAlgorithmMetric", + "description": "The similarity metric to use for vector comparisons.", + "x-nullable": true } - }, - "description": "Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html" } }, - "UaxUrlEmailTokenizer": { + "FacetResult": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.UaxUrlEmailTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "A single bucket of a facet query result. Reports the number of documents with a field value falling within a particular range or having a particular value or interval.", "properties": { - "maxTokenLength": { + "count": { "type": "integer", - "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." + "format": "int64", + "description": "The approximate count of documents falling within the bucket described by this facet.", + "readOnly": true + }, + "avg": { + "type": "number", + "format": "double", + "description": "The resulting total avg for the facet when a avg metric is requested.", + "readOnly": true + }, + "min": { + "type": "number", + "format": "double", + "description": "The resulting total min for the facet when a min metric is requested.", + "readOnly": true + }, + "max": { + "type": "number", + "format": "double", + "description": "The resulting total max for the facet when a max metric is requested.", + "readOnly": true + }, + "sum": { + "type": "number", + "format": "double", + "description": "The resulting total sum for the facet when a sum metric is requested.", + "readOnly": true + }, + "cardinality": { + "type": "integer", + "format": "int64", + "description": "The resulting total cardinality for the facet when a cardinality metric is requested.", + "readOnly": true + }, + "@search.facets": { + "type": "object", + "description": "The nested facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not contain any nested facets.", + "additionalProperties": { + "items": { + "$ref": "#/definitions/FacetResult" + }, + "type": "array" + }, + "readOnly": true, + "x-ms-client-name": "facets" } }, - "description": "Tokenizes urls and emails as one token. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizer.html" - } + "additionalProperties": {} }, - "TokenFilter": { + "FieldMapping": { "type": "object", - "discriminator": "@odata.type", + "description": "Defines a mapping between a field in a data source and a target field in an index.", "properties": { - "@odata.type": { + "sourceFieldName": { + "type": "string", + "description": "The name of the field in the data source." + }, + "targetFieldName": { "type": "string", - "description": "A URI fragment specifying the type of token filter." + "description": "The name of the target field in the index. Same as the source field name by default." }, + "mappingFunction": { + "$ref": "#/definitions/FieldMappingFunction", + "description": "A function to apply to each source field value before indexing.", + "x-nullable": true + } + }, + "required": [ + "sourceFieldName" + ] + }, + "FieldMappingFunction": { + "type": "object", + "description": "Represents a function that transforms a value from a data source before indexing.", + "properties": { "name": { "type": "string", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/custom-analyzers-in-azure-search#index-attribute-reference" - }, - "description": "The name of the token filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + "description": "The name of the field mapping function." + }, + "parameters": { + "type": "object", + "description": "A dictionary of parameter name/value pairs to pass to the function. Each value must be of a primitive type.", + "x-nullable": true, + "additionalProperties": {} } }, "required": [ - "@odata.type", "name" - ], - "description": "Base type for token filters.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } + ] }, - "AsciiFoldingTokenFilter": { + "FreshnessScoringFunction": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "description": "Defines a function that boosts scores based on the value of a date-time field.", + "properties": { + "freshness": { + "$ref": "#/definitions/FreshnessScoringParameters", + "description": "Parameter values for the freshness scoring function." + } + }, + "required": [ + "freshness" + ], "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/ScoringFunction" } ], + "x-ms-discriminator-value": "freshness" + }, + "FreshnessScoringParameters": { + "type": "object", + "description": "Provides parameter values to a freshness scoring function.", "properties": { - "preserveOriginal": { - "type": "boolean", - "default": false, - "description": "A value indicating whether the original token will be kept. Default is false." + "boostingDuration": { + "type": "string", + "format": "duration", + "description": "The expiration period after which boosting will stop for a particular document." } }, - "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" - } + "required": [ + "boostingDuration" + ] }, - "CjkBigramTokenFilterScripts": { - "type": "string", - "enum": [ - "han", - "hiragana", - "katakana", - "hangul" - ], - "x-ms-enum": { - "name": "CjkBigramTokenFilterScripts", - "modelAsString": false, - "values": [ - { - "value": "han", - "name": "Han", - "description": "Ignore Han script when forming bigrams of CJK terms." - }, - { - "value": "hiragana", - "name": "Hiragana", - "description": "Ignore Hiragana script when forming bigrams of CJK terms." - }, - { - "value": "katakana", - "name": "Katakana", - "description": "Ignore Katakana script when forming bigrams of CJK terms." - }, - { - "value": "hangul", - "name": "Hangul", - "description": "Ignore Hangul script when forming bigrams of CJK terms." - } - ] - }, - "description": "Scripts that can be ignored by CjkBigramTokenFilter." - }, - "CjkBigramTokenFilter": { + "GetIndexStatisticsResult": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CjkBigramTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.", "properties": { - "ignoreScripts": { - "type": "array", - "items": { - "$ref": "#/definitions/CjkBigramTokenFilterScripts", - "x-nullable": false - }, - "description": "The scripts to ignore." + "documentCount": { + "type": "integer", + "format": "int64", + "description": "The number of documents in the index.", + "readOnly": true }, - "outputUnigrams": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to output both unigrams and bigrams (if true), or just bigrams (if false). Default is false." + "storageSize": { + "type": "integer", + "format": "int64", + "description": "The amount of storage in bytes consumed by the index.", + "readOnly": true + }, + "vectorIndexSize": { + "type": "integer", + "format": "int64", + "description": "The amount of memory in bytes consumed by vectors in the index.", + "readOnly": true } }, - "description": "Forms bigrams of CJK terms that are generated from the standard tokenizer. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKBigramFilter.html" - } + "required": [ + "documentCount", + "storageSize", + "vectorIndexSize" + ] }, - "CommonGramTokenFilter": { + "HighWaterMarkChangeDetectionPolicy": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CommonGramTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "Defines a data change detection policy that captures changes based on the value of a high water mark column.", "properties": { - "commonWords": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The set of common words." - }, - "ignoreCase": { - "type": "boolean", - "default": false, - "description": "A value indicating whether common words matching will be case insensitive. Default is false." - }, - "queryMode": { - "x-ms-client-name": "UseQueryMode", - "type": "boolean", - "default": false, - "description": "A value that indicates whether the token filter is in query mode. When in query mode, the token filter generates bigrams and then removes common words and single terms followed by a common word. Default is false." + "highWaterMarkColumnName": { + "type": "string", + "description": "The name of the high water mark column." } }, "required": [ - "commonWords" + "highWaterMarkColumnName" ], - "description": "Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/commongrams/CommonGramsFilter.html" - } + "allOf": [ + { + "$ref": "#/definitions/DataChangeDetectionPolicy" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy" }, - "DictionaryDecompounderTokenFilter": { + "HnswAlgorithmConfiguration": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.DictionaryDecompounderTokenFilter", + "description": "Contains configuration options specific to the HNSW approximate nearest neighbors algorithm used during indexing and querying. The HNSW algorithm offers a tunable trade-off between search speed and accuracy.", + "properties": { + "hnswParameters": { + "$ref": "#/definitions/HnswParameters", + "description": "Contains the parameters specific to HNSW algorithm." + } + }, "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" } ], + "x-ms-discriminator-value": "hnsw" + }, + "HnswParameters": { + "type": "object", + "description": "Contains the parameters specific to the HNSW algorithm.", "properties": { - "wordList": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of words to match against." - }, - "minWordSize": { + "m": { "type": "integer", "format": "int32", - "default": 5, - "maximum": 300, - "description": "The minimum word size. Only words longer than this get processed. Default is 5. Maximum is 300." + "description": "The number of bi-directional links created for every new element during construction. Increasing this parameter value may improve recall and reduce retrieval times for datasets with high intrinsic dimensionality at the expense of increased memory consumption and longer indexing time.", + "default": 4, + "minimum": 4, + "maximum": 10 }, - "minSubwordSize": { + "efConstruction": { "type": "integer", "format": "int32", - "default": 2, - "maximum": 300, - "description": "The minimum subword size. Only subwords longer than this are outputted. Default is 2. Maximum is 300." + "description": "The size of the dynamic list containing the nearest neighbors, which is used during index time. Increasing this parameter may improve index quality, at the expense of increased indexing time. At a certain point, increasing this parameter leads to diminishing returns.", + "default": 400, + "minimum": 100, + "maximum": 1000 }, - "maxSubwordSize": { + "efSearch": { "type": "integer", "format": "int32", - "default": 15, - "maximum": 300, - "description": "The maximum subword size. Only subwords shorter than this are outputted. Default is 15. Maximum is 300." + "description": "The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. At a certain point, increasing this parameter leads to diminishing returns.", + "default": 500, + "minimum": 100, + "maximum": 1000 }, - "onlyLongestMatch": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to add only the longest matching subword to the output. Default is false." + "metric": { + "$ref": "#/definitions/VectorSearchAlgorithmMetric", + "description": "The similarity metric to use for vector comparisons.", + "x-nullable": true } - }, - "required": [ - "wordList" - ], - "description": "Decomposes compound words found in many Germanic languages. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilter.html" } }, - "EdgeNGramTokenFilterSide": { + "HybridCountAndFacetMode": { "type": "string", + "description": "Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window. The default value is 'countAllResults'.", "enum": [ - "front", - "back" + "countRetrievableResults", + "countAllResults" ], "x-ms-enum": { - "name": "EdgeNGramTokenFilterSide", - "modelAsString": false, + "name": "HybridCountAndFacetMode", + "modelAsString": true, "values": [ { - "value": "front", - "name": "Front", - "description": "Specifies that the n-gram should be generated from the front of the input." + "name": "CountRetrievableResults", + "value": "countRetrievableResults", + "description": "Only include documents that were matched within the 'maxTextRecallSize' retrieval window when computing 'count' and 'facets'." }, { - "value": "back", - "name": "Back", - "description": "Specifies that the n-gram should be generated from the back of the input." + "name": "CountAllResults", + "value": "countAllResults", + "description": "Include all documents that were matched by the search query when computing 'count' and 'facets', regardless of whether or not those documents are within the 'maxTextRecallSize' retrieval window." } ] - }, - "description": "Specifies which side of the input an n-gram should be generated from." - }, - "EdgeNGramTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "description": "The minimum n-gram length. Default is 1. Must be less than the value of maxGram." - }, - "maxGram": { - "type": "integer", - "format": "int32", - "default": 2, - "description": "The maximum n-gram length. Default is 2." - }, - "side": { - "$ref": "#/definitions/EdgeNGramTokenFilterSide", - "default": "front", - "description": "Specifies which side of the input the n-gram should be generated from. Default is \"front\"." - } - }, - "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html" - }, - "x-az-search-deprecated": true + } }, - "EdgeNGramTokenFilterV2": { + "HybridSearch": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenFilterV2", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "TThe query parameters to configure hybrid search behaviors.", "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "maximum": 300, - "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram." - }, - "maxGram": { + "maxTextRecallSize": { "type": "integer", "format": "int32", - "default": 2, - "maximum": 300, - "description": "The maximum n-gram length. Default is 2. Maximum is 300." + "description": "Determines the maximum number of documents to be retrieved by the text query portion of a hybrid search request. Those documents will be combined with the documents matching the vector queries to produce a single final list of results. Choosing a larger maxTextRecallSize value will allow retrieving and paging through more documents (using the top and skip parameters), at the cost of higher resource utilization and higher latency. The value needs to be between 1 and 10,000. Default is 1000." }, - "side": { - "$ref": "#/definitions/EdgeNGramTokenFilterSide", - "default": "front", - "description": "Specifies which side of the input the n-gram should be generated from. Default is \"front\"." - } - }, - "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html" - } - }, - "ElisionTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.ElisionTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "articles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The set of articles to remove." + "countAndFacetMode": { + "$ref": "#/definitions/HybridCountAndFacetMode", + "description": "Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window." } - }, - "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" } }, - "KeepTokenFilter": { + "ImageAnalysisSkill": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeepTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "A skill that analyzes image files. It extracts a rich set of visual features based on the image content.", "properties": { - "keepWords": { + "defaultLanguageCode": { + "$ref": "#/definitions/ImageAnalysisSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." + }, + "visualFeatures": { "type": "array", + "description": "A list of visual features.", "items": { - "type": "string" - }, - "description": "The list of words to keep." + "$ref": "#/definitions/VisualFeature" + } }, - "keepWordsCase": { - "x-ms-client-name": "LowerCaseKeepWords", - "type": "boolean", - "default": false, - "description": "A value indicating whether to lower case all words first. Default is false." - } - }, - "required": [ - "keepWords" - ], - "description": "A token filter that only keeps tokens with text contained in a specified list of words. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeepWordFilter.html" - } - }, - "KeywordMarkerTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordMarkerTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "keywords": { + "details": { "type": "array", + "description": "A string indicating which domain-specific details to return.", "items": { - "type": "string" - }, - "description": "A list of words to mark as keywords." - }, - "ignoreCase": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false." + "$ref": "#/definitions/ImageDetail" + } } }, - "required": [ - "keywords" - ], - "description": "Marks terms as keywords. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeywordMarkerFilter.html" - } - }, - "LengthTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.LengthTokenFilter", "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/SearchIndexerSkill" } ], - "properties": { - "min": { - "x-ms-client-name": "minLength", - "type": "integer", - "format": "int32", - "default": 0, - "maximum": 300, - "description": "The minimum length in characters. Default is 0. Maximum is 300. Must be less than the value of max." - }, - "max": { - "x-ms-client-name": "maxLength", - "type": "integer", - "format": "int32", - "default": 300, - "maximum": 300, - "description": "The maximum length in characters. Default and maximum is 300." - } - }, - "description": "Removes words that are too long or too short. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LengthFilter.html" - } - }, - "LimitTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.LimitTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "maxTokenCount": { - "type": "integer", - "format": "int32", - "default": 1, - "description": "The maximum number of tokens to produce. Default is 1." - }, - "consumeAllTokens": { - "type": "boolean", - "default": false, - "description": "A value indicating whether all tokens from the input must be consumed even if maxTokenCount is reached. Default is false." - } - }, - "description": "Limits the number of tokens while indexing. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilter.html" - } - }, - "NGramTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "description": "The minimum n-gram length. Default is 1. Must be less than the value of maxGram." - }, - "maxGram": { - "type": "integer", - "format": "int32", - "default": 2, - "description": "The maximum n-gram length. Default is 2." - } - }, - "description": "Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html" - }, - "x-az-search-deprecated": true - }, - "NGramTokenFilterV2": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenFilterV2", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "maximum": 300, - "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram." - }, - "maxGram": { - "type": "integer", - "format": "int32", - "default": 2, - "maximum": 300, - "description": "The maximum n-gram length. Default is 2. Maximum is 300." - } - }, - "description": "Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html" - } - }, - "PatternCaptureTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternCaptureTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of patterns to match against each token." - }, - "preserveOriginal": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to return the original token even if one of the patterns matches. Default is true." - } - }, - "required": [ - "patterns" - ], - "description": "Uses Java regexes to emit multiple tokens - one for each capture group in one or more patterns. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternCaptureGroupTokenFilter.html" - } - }, - "PatternReplaceTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternReplaceTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "pattern": { - "type": "string", - "description": "A regular expression pattern." - }, - "replacement": { - "type": "string", - "description": "The replacement text." - } - }, - "required": [ - "pattern", - "replacement" - ], - "description": "A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternReplaceFilter.html" - } + "x-ms-discriminator-value": "#Microsoft.Skills.Vision.ImageAnalysisSkill" }, - "PhoneticEncoder": { + "ImageAnalysisSkillLanguage": { "type": "string", + "description": "The language codes supported for input by ImageAnalysisSkill.", "enum": [ - "metaphone", - "doubleMetaphone", - "soundex", - "refinedSoundex", - "caverphone1", - "caverphone2", - "cologne", - "nysiis", - "koelnerPhonetik", - "haasePhonetik", - "beiderMorse" + "ar", + "az", + "bg", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "el", + "en", + "es", + "et", + "eu", + "fi", + "fr", + "ga", + "gl", + "he", + "hi", + "hr", + "hu", + "id", + "it", + "ja", + "kk", + "ko", + "lt", + "lv", + "mk", + "ms", + "nb", + "nl", + "pl", + "prs", + "pt-BR", + "pt", + "pt-PT", + "ro", + "ru", + "sk", + "sl", + "sr-Cyrl", + "sr-Latn", + "sv", + "th", + "tr", + "uk", + "vi", + "zh", + "zh-Hans", + "zh-Hant" ], "x-ms-enum": { - "name": "PhoneticEncoder", - "modelAsString": false, + "name": "ImageAnalysisSkillLanguage", + "modelAsString": true, "values": [ { - "value": "metaphone", - "name": "Metaphone", - "description": "Encodes a token into a Metaphone value." + "name": "ar", + "value": "ar", + "description": "Arabic" }, { - "value": "doubleMetaphone", - "name": "DoubleMetaphone", - "description": "Encodes a token into a double metaphone value." + "name": "az", + "value": "az", + "description": "Azerbaijani" }, { - "value": "soundex", - "name": "Soundex", - "description": "Encodes a token into a Soundex value." + "name": "bg", + "value": "bg", + "description": "Bulgarian" }, { - "value": "refinedSoundex", - "name": "RefinedSoundex", - "description": "Encodes a token into a Refined Soundex value." + "name": "bs", + "value": "bs", + "description": "Bosnian Latin" }, { - "value": "caverphone1", - "name": "Caverphone1", - "description": "Encodes a token into a Caverphone 1.0 value." + "name": "ca", + "value": "ca", + "description": "Catalan" }, { - "value": "caverphone2", - "name": "Caverphone2", - "description": "Encodes a token into a Caverphone 2.0 value." + "name": "cs", + "value": "cs", + "description": "Czech" }, { - "value": "cologne", - "name": "Cologne", - "description": "Encodes a token into a Cologne Phonetic value." + "name": "cy", + "value": "cy", + "description": "Welsh" }, { - "value": "nysiis", - "name": "Nysiis", - "description": "Encodes a token into a NYSIIS value." + "name": "da", + "value": "da", + "description": "Danish" }, { - "value": "koelnerPhonetik", - "name": "KoelnerPhonetik", - "description": "Encodes a token using the Kölner Phonetik algorithm." + "name": "de", + "value": "de", + "description": "German" }, { - "value": "haasePhonetik", - "name": "HaasePhonetik", - "description": "Encodes a token using the Haase refinement of the Kölner Phonetik algorithm." + "name": "el", + "value": "el", + "description": "Greek" }, { - "value": "beiderMorse", - "name": "BeiderMorse", - "description": "Encodes a token into a Beider-Morse value." - } - ] - }, - "description": "Identifies the type of phonetic encoder to use with a PhoneticTokenFilter." - }, - "PhoneticTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PhoneticTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "encoder": { - "$ref": "#/definitions/PhoneticEncoder", - "default": "metaphone", - "description": "The phonetic encoder to use. Default is \"metaphone\"." - }, - "replace": { - "x-ms-client-name": "ReplaceOriginalTokens", - "type": "boolean", - "default": true, - "description": "A value indicating whether encoded tokens should replace original tokens. If false, encoded tokens are added as synonyms. Default is true." - } - }, - "description": "Create tokens for phonetic matches. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://lucene.apache.org/core/4_10_3/analyzers-phonetic/org/apache/lucene/analysis/phonetic/package-tree.html" - } - }, - "ShingleTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.ShingleTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "maxShingleSize": { - "type": "integer", - "format": "int32", - "default": 2, - "minimum": 2, - "description": "The maximum shingle size. Default and minimum value is 2." - }, - "minShingleSize": { - "type": "integer", - "format": "int32", - "default": 2, - "minimum": 2, - "description": "The minimum shingle size. Default and minimum value is 2. Must be less than the value of maxShingleSize." - }, - "outputUnigrams": { - "type": "boolean", - "default": true, - "description": "A value indicating whether the output stream will contain the input tokens (unigrams) as well as shingles. Default is true." - }, - "outputUnigramsIfNoShingles": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to output unigrams for those times when no shingles are available. This property takes precedence when outputUnigrams is set to false. Default is false." - }, - "tokenSeparator": { - "type": "string", - "default": " ", - "description": "The string to use when joining adjacent tokens to form a shingle. Default is a single space (\" \")." - }, - "filterToken": { - "type": "string", - "default": "_", - "description": "The string to insert for each position at which there is no token. Default is an underscore (\"_\")." - } - }, - "description": "Creates combinations of tokens as a single token. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/shingle/ShingleFilter.html" - } - }, - "SnowballTokenFilterLanguage": { - "type": "string", - "enum": [ - "armenian", - "basque", - "catalan", - "danish", - "dutch", - "english", - "finnish", - "french", - "german", - "german2", - "hungarian", - "italian", - "kp", - "lovins", - "norwegian", - "porter", - "portuguese", - "romanian", - "russian", - "spanish", - "swedish", - "turkish" - ], - "x-ms-enum": { - "name": "SnowballTokenFilterLanguage", - "modelAsString": false, - "values": [ + "name": "en", + "value": "en", + "description": "English" + }, { - "value": "armenian", - "name": "Armenian", - "description": "Selects the Lucene Snowball stemming tokenizer for Armenian." + "name": "es", + "value": "es", + "description": "Spanish" }, { - "value": "basque", - "name": "Basque", - "description": "Selects the Lucene Snowball stemming tokenizer for Basque." + "name": "et", + "value": "et", + "description": "Estonian" }, { - "value": "catalan", - "name": "Catalan", - "description": "Selects the Lucene Snowball stemming tokenizer for Catalan." + "name": "eu", + "value": "eu", + "description": "Basque" }, { - "value": "danish", - "name": "Danish", - "description": "Selects the Lucene Snowball stemming tokenizer for Danish." + "name": "fi", + "value": "fi", + "description": "Finnish" }, { - "value": "dutch", - "name": "Dutch", - "description": "Selects the Lucene Snowball stemming tokenizer for Dutch." + "name": "fr", + "value": "fr", + "description": "French" }, { - "value": "english", - "name": "English", - "description": "Selects the Lucene Snowball stemming tokenizer for English." + "name": "ga", + "value": "ga", + "description": "Irish" }, { - "value": "finnish", - "name": "Finnish", - "description": "Selects the Lucene Snowball stemming tokenizer for Finnish." + "name": "gl", + "value": "gl", + "description": "Galician" }, { - "value": "french", - "name": "French", - "description": "Selects the Lucene Snowball stemming tokenizer for French." + "name": "he", + "value": "he", + "description": "Hebrew" }, { - "value": "german", - "name": "German", - "description": "Selects the Lucene Snowball stemming tokenizer for German." + "name": "hi", + "value": "hi", + "description": "Hindi" }, { - "value": "german2", - "name": "German2", - "description": "Selects the Lucene Snowball stemming tokenizer that uses the German variant algorithm." + "name": "hr", + "value": "hr", + "description": "Croatian" }, { - "value": "hungarian", - "name": "Hungarian", - "description": "Selects the Lucene Snowball stemming tokenizer for Hungarian." + "name": "hu", + "value": "hu", + "description": "Hungarian" }, { - "value": "italian", - "name": "Italian", - "description": "Selects the Lucene Snowball stemming tokenizer for Italian." + "name": "id", + "value": "id", + "description": "Indonesian" }, { - "value": "kp", - "name": "Kp", - "description": "Selects the Lucene Snowball stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm." + "name": "it", + "value": "it", + "description": "Italian" }, { - "value": "lovins", - "name": "Lovins", - "description": "Selects the Lucene Snowball stemming tokenizer for English that uses the Lovins stemming algorithm." + "name": "ja", + "value": "ja", + "description": "Japanese" }, { - "value": "norwegian", - "name": "Norwegian", - "description": "Selects the Lucene Snowball stemming tokenizer for Norwegian." + "name": "kk", + "value": "kk", + "description": "Kazakh" }, { - "value": "porter", - "name": "Porter", - "description": "Selects the Lucene Snowball stemming tokenizer for English that uses the Porter stemming algorithm." + "name": "ko", + "value": "ko", + "description": "Korean" }, { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the Lucene Snowball stemming tokenizer for Portuguese." + "name": "lt", + "value": "lt", + "description": "Lithuanian" }, { - "value": "romanian", - "name": "Romanian", - "description": "Selects the Lucene Snowball stemming tokenizer for Romanian." + "name": "lv", + "value": "lv", + "description": "Latvian" }, { - "value": "russian", - "name": "Russian", - "description": "Selects the Lucene Snowball stemming tokenizer for Russian." + "name": "mk", + "value": "mk", + "description": "Macedonian" }, { - "value": "spanish", - "name": "Spanish", - "description": "Selects the Lucene Snowball stemming tokenizer for Spanish." + "name": "ms", + "value": "ms", + "description": "Malay Malaysia" }, { - "value": "swedish", - "name": "Swedish", - "description": "Selects the Lucene Snowball stemming tokenizer for Swedish." + "name": "nb", + "value": "nb", + "description": "Norwegian (Bokmal)" }, { - "value": "turkish", - "name": "Turkish", - "description": "Selects the Lucene Snowball stemming tokenizer for Turkish." - } - ] - }, - "description": "The language to use for a Snowball token filter." - }, - "SnowballTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.SnowballTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "language": { - "$ref": "#/definitions/SnowballTokenFilterLanguage", - "description": "The language to use." - } - }, - "required": [ - "language" - ], - "description": "A filter that stems words using a Snowball-generated stemmer. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/snowball/SnowballFilter.html" - } - }, - "StemmerTokenFilterLanguage": { - "type": "string", - "enum": [ - "arabic", - "armenian", - "basque", - "brazilian", - "bulgarian", - "catalan", - "czech", - "danish", - "dutch", - "dutchKp", - "english", - "lightEnglish", - "minimalEnglish", - "possessiveEnglish", - "porter2", - "lovins", - "finnish", - "lightFinnish", - "french", - "lightFrench", - "minimalFrench", - "galician", - "minimalGalician", - "german", - "german2", - "lightGerman", - "minimalGerman", - "greek", - "hindi", - "hungarian", - "lightHungarian", - "indonesian", - "irish", - "italian", - "lightItalian", - "sorani", - "latvian", - "norwegian", - "lightNorwegian", - "minimalNorwegian", - "lightNynorsk", - "minimalNynorsk", - "portuguese", - "lightPortuguese", - "minimalPortuguese", - "portugueseRslp", - "romanian", - "russian", - "lightRussian", - "spanish", - "lightSpanish", - "swedish", - "lightSwedish", - "turkish" - ], - "x-ms-enum": { - "name": "StemmerTokenFilterLanguage", - "modelAsString": false, - "values": [ - { - "value": "arabic", - "name": "Arabic", - "description": "Selects the Lucene stemming tokenizer for Arabic." - }, - { - "value": "armenian", - "name": "Armenian", - "description": "Selects the Lucene stemming tokenizer for Armenian." - }, - { - "value": "basque", - "name": "Basque", - "description": "Selects the Lucene stemming tokenizer for Basque." - }, - { - "value": "brazilian", - "name": "Brazilian", - "description": "Selects the Lucene stemming tokenizer for Portuguese (Brazil)." - }, - { - "value": "bulgarian", - "name": "Bulgarian", - "description": "Selects the Lucene stemming tokenizer for Bulgarian." - }, - { - "value": "catalan", - "name": "Catalan", - "description": "Selects the Lucene stemming tokenizer for Catalan." - }, - { - "value": "czech", - "name": "Czech", - "description": "Selects the Lucene stemming tokenizer for Czech." - }, - { - "value": "danish", - "name": "Danish", - "description": "Selects the Lucene stemming tokenizer for Danish." - }, - { - "value": "dutch", - "name": "Dutch", - "description": "Selects the Lucene stemming tokenizer for Dutch." + "name": "nl", + "value": "nl", + "description": "Dutch" }, { - "value": "dutchKp", - "name": "DutchKp", - "description": "Selects the Lucene stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm." + "name": "pl", + "value": "pl", + "description": "Polish" }, { - "value": "english", - "name": "English", - "description": "Selects the Lucene stemming tokenizer for English." + "name": "prs", + "value": "prs", + "description": "Dari" }, { - "value": "lightEnglish", - "name": "LightEnglish", - "description": "Selects the Lucene stemming tokenizer for English that does light stemming." + "name": "pt-BR", + "value": "pt-BR", + "description": "Portuguese-Brazil" }, { - "value": "minimalEnglish", - "name": "MinimalEnglish", - "description": "Selects the Lucene stemming tokenizer for English that does minimal stemming." + "name": "pt", + "value": "pt", + "description": "Portuguese-Portugal" }, { - "value": "possessiveEnglish", - "name": "PossessiveEnglish", - "description": "Selects the Lucene stemming tokenizer for English that removes trailing possessives from words." + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese-Portugal" }, { - "value": "porter2", - "name": "Porter2", - "description": "Selects the Lucene stemming tokenizer for English that uses the Porter2 stemming algorithm." + "name": "ro", + "value": "ro", + "description": "Romanian" }, { - "value": "lovins", - "name": "Lovins", - "description": "Selects the Lucene stemming tokenizer for English that uses the Lovins stemming algorithm." + "name": "ru", + "value": "ru", + "description": "Russian" }, { - "value": "finnish", - "name": "Finnish", - "description": "Selects the Lucene stemming tokenizer for Finnish." + "name": "sk", + "value": "sk", + "description": "Slovak" }, { - "value": "lightFinnish", - "name": "LightFinnish", - "description": "Selects the Lucene stemming tokenizer for Finnish that does light stemming." + "name": "sl", + "value": "sl", + "description": "Slovenian" }, { - "value": "french", - "name": "French", - "description": "Selects the Lucene stemming tokenizer for French." + "name": "sr-Cyrl", + "value": "sr-Cyrl", + "description": "Serbian - Cyrillic RS" }, { - "value": "lightFrench", - "name": "LightFrench", - "description": "Selects the Lucene stemming tokenizer for French that does light stemming." + "name": "sr-Latn", + "value": "sr-Latn", + "description": "Serbian - Latin RS" }, { - "value": "minimalFrench", - "name": "MinimalFrench", - "description": "Selects the Lucene stemming tokenizer for French that does minimal stemming." + "name": "sv", + "value": "sv", + "description": "Swedish" }, { - "value": "galician", - "name": "Galician", - "description": "Selects the Lucene stemming tokenizer for Galician." + "name": "th", + "value": "th", + "description": "Thai" }, { - "value": "minimalGalician", - "name": "MinimalGalician", - "description": "Selects the Lucene stemming tokenizer for Galician that does minimal stemming." + "name": "tr", + "value": "tr", + "description": "Turkish" }, { - "value": "german", - "name": "German", - "description": "Selects the Lucene stemming tokenizer for German." + "name": "uk", + "value": "uk", + "description": "Ukrainian" }, { - "value": "german2", - "name": "German2", - "description": "Selects the Lucene stemming tokenizer that uses the German variant algorithm." + "name": "vi", + "value": "vi", + "description": "Vietnamese" }, { - "value": "lightGerman", - "name": "LightGerman", - "description": "Selects the Lucene stemming tokenizer for German that does light stemming." + "name": "zh", + "value": "zh", + "description": "Chinese Simplified" }, { - "value": "minimalGerman", - "name": "MinimalGerman", - "description": "Selects the Lucene stemming tokenizer for German that does minimal stemming." + "name": "zh-Hans", + "value": "zh-Hans", + "description": "Chinese Simplified" }, { - "value": "greek", - "name": "Greek", - "description": "Selects the Lucene stemming tokenizer for Greek." - }, + "name": "zh-Hant", + "value": "zh-Hant", + "description": "Chinese Traditional" + } + ] + } + }, + "ImageDetail": { + "type": "string", + "description": "A string indicating which domain-specific details to return.", + "enum": [ + "celebrities", + "landmarks" + ], + "x-ms-enum": { + "name": "ImageDetail", + "modelAsString": true, + "values": [ { - "value": "hindi", - "name": "Hindi", - "description": "Selects the Lucene stemming tokenizer for Hindi." + "name": "Celebrities", + "value": "celebrities", + "description": "Details recognized as celebrities." }, { - "value": "hungarian", - "name": "Hungarian", - "description": "Selects the Lucene stemming tokenizer for Hungarian." - }, + "name": "Landmarks", + "value": "landmarks", + "description": "Details recognized as landmarks." + } + ] + } + }, + "IndexAction": { + "type": "object", + "description": "Represents an index action that operates on a document.", + "properties": { + "@search.action": { + "$ref": "#/definitions/IndexActionType", + "description": "The operation to perform on a document in an indexing batch.", + "x-ms-client-name": "actionType" + } + }, + "additionalProperties": {} + }, + "IndexActionType": { + "type": "string", + "description": "The operation to perform on a document in an indexing batch.", + "enum": [ + "upload", + "merge", + "mergeOrUpload", + "delete" + ], + "x-ms-enum": { + "name": "IndexActionType", + "modelAsString": true, + "values": [ { - "value": "lightHungarian", - "name": "LightHungarian", - "description": "Selects the Lucene stemming tokenizer for Hungarian that does light stemming." + "name": "Upload", + "value": "upload", + "description": "Inserts the document into the index if it is new and updates it if it exists. All fields are replaced in the update case." }, { - "value": "indonesian", - "name": "Indonesian", - "description": "Selects the Lucene stemming tokenizer for Indonesian." + "name": "Merge", + "value": "merge", + "description": "Merges the specified field values with an existing document. If the document does not exist, the merge will fail. Any field you specify in a merge will replace the existing field in the document. This also applies to collections of primitive and complex types." }, { - "value": "irish", - "name": "Irish", - "description": "Selects the Lucene stemming tokenizer for Irish." + "name": "MergeOrUpload", + "value": "mergeOrUpload", + "description": "Behaves like merge if a document with the given key already exists in the index. If the document does not exist, it behaves like upload with a new document." }, { - "value": "italian", - "name": "Italian", - "description": "Selects the Lucene stemming tokenizer for Italian." + "name": "Delete", + "value": "delete", + "description": "Removes the specified document from the index. Any field you specify in a delete operation other than the key field will be ignored. If you want to remove an individual field from a document, use merge instead and set the field explicitly to null." + } + ] + } + }, + "IndexBatch": { + "type": "object", + "description": "Contains a batch of document write actions to send to the index.", + "properties": { + "value": { + "type": "array", + "description": "The actions in the batch.", + "items": { + "$ref": "#/definitions/IndexAction" + } + } + }, + "required": [ + "value" + ] + }, + "IndexDocumentsResult": { + "type": "object", + "description": "Response containing the status of operations for all documents in the indexing request.", + "properties": { + "value": { + "type": "array", + "description": "The list of status information for each document in the indexing request.", + "items": { + "$ref": "#/definitions/IndexingResult" }, + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "IndexProjectionMode": { + "type": "string", + "description": "Defines behavior of the index projections in relation to the rest of the indexer.", + "enum": [ + "skipIndexingParentDocuments", + "includeIndexingParentDocuments" + ], + "x-ms-enum": { + "name": "IndexProjectionMode", + "modelAsString": true, + "values": [ { - "value": "lightItalian", - "name": "LightItalian", - "description": "Selects the Lucene stemming tokenizer for Italian that does light stemming." + "name": "SkipIndexingParentDocuments", + "value": "skipIndexingParentDocuments", + "description": "The source document will be skipped from writing into the indexer's target index." }, { - "value": "sorani", - "name": "Sorani", - "description": "Selects the Lucene stemming tokenizer for Sorani." - }, - { - "value": "latvian", - "name": "Latvian", - "description": "Selects the Lucene stemming tokenizer for Latvian." - }, - { - "value": "norwegian", - "name": "Norwegian", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Bokmål)." - }, - { - "value": "lightNorwegian", - "name": "LightNorwegian", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Bokmål) that does light stemming." - }, - { - "value": "minimalNorwegian", - "name": "MinimalNorwegian", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Bokmål) that does minimal stemming." - }, - { - "value": "lightNynorsk", - "name": "LightNynorsk", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does light stemming." - }, - { - "value": "minimalNynorsk", - "name": "MinimalNynorsk", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does minimal stemming." - }, - { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the Lucene stemming tokenizer for Portuguese." - }, - { - "value": "lightPortuguese", - "name": "LightPortuguese", - "description": "Selects the Lucene stemming tokenizer for Portuguese that does light stemming." - }, - { - "value": "minimalPortuguese", - "name": "MinimalPortuguese", - "description": "Selects the Lucene stemming tokenizer for Portuguese that does minimal stemming." - }, - { - "value": "portugueseRslp", - "name": "PortugueseRslp", - "description": "Selects the Lucene stemming tokenizer for Portuguese that uses the RSLP stemming algorithm." - }, - { - "value": "romanian", - "name": "Romanian", - "description": "Selects the Lucene stemming tokenizer for Romanian." - }, - { - "value": "russian", - "name": "Russian", - "description": "Selects the Lucene stemming tokenizer for Russian." - }, - { - "value": "lightRussian", - "name": "LightRussian", - "description": "Selects the Lucene stemming tokenizer for Russian that does light stemming." - }, - { - "value": "spanish", - "name": "Spanish", - "description": "Selects the Lucene stemming tokenizer for Spanish." - }, - { - "value": "lightSpanish", - "name": "LightSpanish", - "description": "Selects the Lucene stemming tokenizer for Spanish that does light stemming." - }, - { - "value": "swedish", - "name": "Swedish", - "description": "Selects the Lucene stemming tokenizer for Swedish." - }, - { - "value": "lightSwedish", - "name": "LightSwedish", - "description": "Selects the Lucene stemming tokenizer for Swedish that does light stemming." - }, - { - "value": "turkish", - "name": "Turkish", - "description": "Selects the Lucene stemming tokenizer for Turkish." + "name": "IncludeIndexingParentDocuments", + "value": "includeIndexingParentDocuments", + "description": "The source document will be written into the indexer's target index. This is the default pattern." } ] - }, - "description": "The language to use for a stemmer token filter." + } }, - "StemmerTokenFilter": { + "IndexStatisticsSummary": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StemmerTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.", "properties": { - "language": { - "$ref": "#/definitions/StemmerTokenFilterLanguage", - "description": "The language to use." + "name": { + "type": "string", + "description": "The name of the index." + }, + "documentCount": { + "type": "integer", + "format": "int64", + "description": "The number of documents in the index.", + "readOnly": true + }, + "storageSize": { + "type": "integer", + "format": "int64", + "description": "The amount of storage in bytes consumed by the index.", + "readOnly": true + }, + "vectorIndexSize": { + "type": "integer", + "format": "int64", + "description": "The amount of memory in bytes consumed by vectors in the index.", + "readOnly": true } }, "required": [ - "language" - ], - "description": "Language specific stemming filter. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters" - } + "name", + "documentCount", + "storageSize", + "vectorIndexSize" + ] }, - "StemmerOverrideTokenFilter": { + "IndexedOneLakeKnowledgeSource": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StemmerOverrideTokenFilter", + "description": "Configuration for OneLake knowledge source.", + "properties": { + "indexedOneLakeParameters": { + "$ref": "#/definitions/IndexedOneLakeKnowledgeSourceParameters", + "description": "The parameters for the knowledge source." + } + }, + "required": [ + "indexedOneLakeParameters" + ], "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/KnowledgeSource" } ], + "x-ms-discriminator-value": "indexedOneLake" + }, + "IndexedOneLakeKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for OneLake knowledge source.", "properties": { - "rules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of stemming rules in the following format: \"word => stem\", for example: \"ran => run\"." + "fabricWorkspaceId": { + "type": "string", + "description": "OneLake workspace ID." + }, + "lakehouseId": { + "type": "string", + "description": "Specifies which OneLake lakehouse to access." + }, + "targetPath": { + "type": "string", + "description": "Optional OneLakehouse folder or shortcut to filter OneLake content.", + "x-nullable": true + }, + "ingestionParameters": { + "$ref": "#/definitions/KnowledgeSourceIngestionParameters", + "description": "Consolidates all general ingestion settings." + }, + "createdResources": { + "$ref": "#/definitions/CreatedResources", + "description": "Resources created by the knowledge source.", + "readOnly": true } }, "required": [ - "rules" + "fabricWorkspaceId", + "lakehouseId" + ] + }, + "IndexedOneLakeKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a indexed OneLake knowledge source", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } ], - "description": "Provides the ability to override other stemming filters with custom dictionary-based stemming. Any dictionary-stemmed terms will be marked as keywords so that they will not be stemmed with stemmers down the chain. Must be placed before any stemming filters. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilter.html" - } + "x-ms-discriminator-value": "indexedOneLake" }, - "StopwordsList": { + "IndexedSharePointContainerName": { "type": "string", + "description": "Specifies which SharePoint libraries to access.", "enum": [ - "arabic", - "armenian", - "basque", - "brazilian", - "bulgarian", - "catalan", - "czech", - "danish", - "dutch", - "english", - "finnish", - "french", - "galician", - "german", - "greek", - "hindi", - "hungarian", - "indonesian", - "irish", - "italian", - "latvian", - "norwegian", - "persian", - "portuguese", - "romanian", - "russian", - "sorani", - "spanish", - "swedish", - "thai", - "turkish" + "defaultSiteLibrary", + "allSiteLibraries", + "useQuery" ], "x-ms-enum": { - "name": "StopwordsList", - "modelAsString": false, + "name": "IndexedSharePointContainerName", + "modelAsString": true, "values": [ { - "value": "arabic", - "name": "Arabic", - "description": "Selects the stopword list for Arabic." - }, - { - "value": "armenian", - "name": "Armenian", - "description": "Selects the stopword list for Armenian." - }, - { - "value": "basque", - "name": "Basque", - "description": "Selects the stopword list for Basque." - }, - { - "value": "brazilian", - "name": "Brazilian", - "description": "Selects the stopword list for Portuguese (Brazil)." - }, - { - "value": "bulgarian", - "name": "Bulgarian", - "description": "Selects the stopword list for Bulgarian." - }, - { - "value": "catalan", - "name": "Catalan", - "description": "Selects the stopword list for Catalan." - }, - { - "value": "czech", - "name": "Czech", - "description": "Selects the stopword list for Czech." + "name": "DefaultSiteLibrary", + "value": "defaultSiteLibrary", + "description": "Index content from the site's default document library." }, { - "value": "danish", - "name": "Danish", - "description": "Selects the stopword list for Danish." - }, - { - "value": "dutch", - "name": "Dutch", - "description": "Selects the stopword list for Dutch." + "name": "AllSiteLibraries", + "value": "allSiteLibraries", + "description": "Index content from every document library in the site." }, { - "value": "english", - "name": "English", - "description": "Selects the stopword list for English." - }, - { - "value": "finnish", - "name": "Finnish", - "description": "Selects the stopword list for Finnish." - }, - { - "value": "french", - "name": "French", - "description": "Selects the stopword list for French." - }, - { - "value": "galician", - "name": "Galician", - "description": "Selects the stopword list for Galician." - }, - { - "value": "german", - "name": "German", - "description": "Selects the stopword list for German." - }, - { - "value": "greek", - "name": "Greek", - "description": "Selects the stopword list for Greek." - }, - { - "value": "hindi", - "name": "Hindi", - "description": "Selects the stopword list for Hindi." - }, - { - "value": "hungarian", - "name": "Hungarian", - "description": "Selects the stopword list for Hungarian." - }, - { - "value": "indonesian", - "name": "Indonesian", - "description": "Selects the stopword list for Indonesian." - }, - { - "value": "irish", - "name": "Irish", - "description": "Selects the stopword list for Irish." - }, - { - "value": "italian", - "name": "Italian", - "description": "Selects the stopword list for Italian." - }, - { - "value": "latvian", - "name": "Latvian", - "description": "Selects the stopword list for Latvian." - }, - { - "value": "norwegian", - "name": "Norwegian", - "description": "Selects the stopword list for Norwegian." - }, - { - "value": "persian", - "name": "Persian", - "description": "Selects the stopword list for Persian." - }, - { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the stopword list for Portuguese." - }, - { - "value": "romanian", - "name": "Romanian", - "description": "Selects the stopword list for Romanian." - }, - { - "value": "russian", - "name": "Russian", - "description": "Selects the stopword list for Russian." - }, - { - "value": "sorani", - "name": "Sorani", - "description": "Selects the stopword list for Sorani." - }, - { - "value": "spanish", - "name": "Spanish", - "description": "Selects the stopword list for Spanish." - }, - { - "value": "swedish", - "name": "Swedish", - "description": "Selects the stopword list for Swedish." - }, - { - "value": "thai", - "name": "Thai", - "description": "Selects the stopword list for Thai." - }, - { - "value": "turkish", - "name": "Turkish", - "description": "Selects the stopword list for Turkish." + "name": "UseQuery", + "value": "useQuery", + "description": "Use a query to filter SharePoint content." } ] - }, - "description": "Identifies a predefined list of language-specific stopwords." + } }, - "StopwordsTokenFilter": { + "IndexedSharePointKnowledgeSource": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StopwordsTokenFilter", + "description": "Configuration for SharePoint knowledge source.", + "properties": { + "indexedSharePointParameters": { + "$ref": "#/definitions/IndexedSharePointKnowledgeSourceParameters", + "description": "The parameters for the knowledge source." + } + }, + "required": [ + "indexedSharePointParameters" + ], "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/KnowledgeSource" } ], + "x-ms-discriminator-value": "indexedSharePoint" + }, + "IndexedSharePointKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for SharePoint knowledge source.", "properties": { - "stopwords": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of stopwords. This property and the stopwords list property cannot both be set." + "connectionString": { + "type": "string", + "description": "SharePoint connection string with format: SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]" }, - "stopwordsList": { - "$ref": "#/definitions/StopwordsList", - "default": "english", - "description": "A predefined list of stopwords to use. This property and the stopwords property cannot both be set. Default is English." + "containerName": { + "$ref": "#/definitions/IndexedSharePointContainerName", + "description": "Specifies which SharePoint libraries to access." }, - "ignoreCase": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false." + "query": { + "type": "string", + "description": "Optional query to filter SharePoint content.", + "x-nullable": true }, - "removeTrailing": { - "x-ms-client-name": "RemoveTrailingStopWords", - "type": "boolean", - "default": true, - "description": "A value indicating whether to ignore the last search term if it's a stop word. Default is true." + "ingestionParameters": { + "$ref": "#/definitions/KnowledgeSourceIngestionParameters", + "description": "Consolidates all general ingestion settings.", + "x-nullable": true + }, + "createdResources": { + "$ref": "#/definitions/CreatedResources", + "description": "Resources created by the knowledge source.", + "readOnly": true } }, - "description": "Removes stop words from a token stream. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html" - } + "required": [ + "connectionString", + "containerName" + ] }, - "SynonymTokenFilter": { + "IndexedSharePointKnowledgeSourceParams": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.SynonymTokenFilter", + "description": "Specifies runtime parameters for a indexed SharePoint knowledge source", "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/KnowledgeSourceParams" } ], + "x-ms-discriminator-value": "indexedSharePoint" + }, + "IndexerCurrentState": { + "type": "object", + "description": "Represents all of the state that defines and dictates the indexer's current execution.", "properties": { - "synonyms": { + "mode": { + "$ref": "#/definitions/IndexingMode", + "description": "The mode the indexer is running in.", + "readOnly": true + }, + "allDocsInitialTrackingState": { + "type": "string", + "description": "Change tracking state used when indexing starts on all documents in the datasource.", + "readOnly": true + }, + "allDocsFinalTrackingState": { + "type": "string", + "description": "Change tracking state value when indexing finishes on all documents in the datasource.", + "readOnly": true + }, + "resetDocsInitialTrackingState": { + "type": "string", + "description": "Change tracking state used when indexing starts on select, reset documents in the datasource.", + "readOnly": true + }, + "resetDocsFinalTrackingState": { + "type": "string", + "description": "Change tracking state value when indexing finishes on select, reset documents in the datasource.", + "readOnly": true + }, + "resyncInitialTrackingState": { + "type": "string", + "description": "Change tracking state used when indexing starts on selective options from the datasource.", + "readOnly": true + }, + "resyncFinalTrackingState": { + "type": "string", + "description": "Change tracking state value when indexing finishes on selective options from the datasource.", + "readOnly": true + }, + "resetDocumentKeys": { "type": "array", + "description": "The list of document keys that have been reset. The document key is the document's unique identifier for the data in the search index. The indexer will prioritize selectively re-ingesting these keys.", "items": { "type": "string" }, - "description": "A list of synonyms in following one of two formats: 1. incredible, unbelievable, fabulous => amazing - all terms on the left side of => symbol will be replaced with all terms on its right side; 2. incredible, unbelievable, fabulous, amazing - comma separated list of equivalent words. Set the expand option to change how this list is interpreted." - }, - "ignoreCase": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to case-fold input for matching. Default is false." + "readOnly": true }, - "expand": { - "type": "boolean", - "default": true, - "description": "A value indicating whether all words in the list of synonyms (if => notation is not used) will map to one another. If true, all words in the list of synonyms (if => notation is not used) will map to one another. The following list: incredible, unbelievable, fabulous, amazing is equivalent to: incredible, unbelievable, fabulous, amazing => incredible, unbelievable, fabulous, amazing. If false, the following list: incredible, unbelievable, fabulous, amazing will be equivalent to: incredible, unbelievable, fabulous, amazing => incredible. Default is true." + "resetDatasourceDocumentIds": { + "type": "array", + "description": "The list of datasource document ids that have been reset. The datasource document id is the unique identifier for the data in the datasource. The indexer will prioritize selectively re-ingesting these ids.", + "items": { + "type": "string" + }, + "readOnly": true } - }, - "required": [ - "synonyms" - ], - "description": "Matches single or multi-word synonyms in a token stream. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/synonym/SynonymFilter.html" } }, - "TruncateTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.TruncateTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } + "IndexerExecutionEnvironment": { + "type": "string", + "description": "Specifies the environment in which the indexer should execute.", + "enum": [ + "standard", + "private" ], - "properties": { - "length": { - "type": "integer", - "format": "int32", - "default": 300, - "maximum": 300, - "description": "The length at which terms will be truncated. Default and maximum is 300." - } - }, - "description": "Truncates the terms to a specific length. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilter.html" + "x-ms-enum": { + "name": "IndexerExecutionEnvironment", + "modelAsString": true, + "values": [ + { + "name": "standard", + "value": "standard", + "description": "Indicates that the search service can determine where the indexer should execute. This is the default environment when nothing is specified and is the recommended value." + }, + { + "name": "private", + "value": "private", + "description": "Indicates that the indexer should run with the environment provisioned specifically for the search service. This should only be specified as the execution environment if the indexer needs to access resources securely over shared private link resources." + } + ] } }, - "UniqueTokenFilter": { + "IndexerExecutionResult": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.UniqueTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "Represents the result of an individual indexer execution.", "properties": { - "onlyOnSamePosition": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to remove duplicates only at the same position. Default is false." - } - }, - "description": "Filters out tokens with same text as the previous token. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilter.html" - } - }, - "WordDelimiterTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.WordDelimiterTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "generateWordParts": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to generate part words. If set, causes parts of words to be generated; for example \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true." - }, - "generateNumberParts": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to generate number subwords. Default is true." - }, - "catenateWords": { - "type": "boolean", - "default": false, - "description": "A value indicating whether maximum runs of word parts will be catenated. For example, if this is set to true, \"Azure-Search\" becomes \"AzureSearch\". Default is false." + "status": { + "$ref": "#/definitions/IndexerExecutionStatus", + "description": "The outcome of this indexer execution.", + "readOnly": true }, - "catenateNumbers": { - "type": "boolean", - "default": false, - "description": "A value indicating whether maximum runs of number parts will be catenated. For example, if this is set to true, \"1-2\" becomes \"12\". Default is false." + "statusDetail": { + "$ref": "#/definitions/IndexerExecutionStatusDetail", + "description": "The outcome of this indexer execution.", + "readOnly": true }, - "catenateAll": { - "type": "boolean", - "default": false, - "description": "A value indicating whether all subword parts will be catenated. For example, if this is set to true, \"Azure-Search-1\" becomes \"AzureSearch1\". Default is false." + "mode": { + "$ref": "#/definitions/IndexingMode", + "description": "The mode the indexer is running in.", + "readOnly": true }, - "splitOnCaseChange": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to split words on caseChange. For example, if this is set to true, \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true." + "errorMessage": { + "type": "string", + "description": "The error message indicating the top-level error, if any.", + "readOnly": true }, - "preserveOriginal": { - "type": "boolean", - "default": false, - "description": "A value indicating whether original words will be preserved and added to the subword list. Default is false." + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of this indexer execution.", + "readOnly": true }, - "splitOnNumerics": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to split on numbers. For example, if this is set to true, \"Azure1Search\" becomes \"Azure\" \"1\" \"Search\". Default is true." + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of this indexer execution, if the execution has already completed.", + "x-nullable": true, + "readOnly": true }, - "stemEnglishPossessive": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to remove trailing \"'s\" for each subword. Default is true." + "errors": { + "type": "array", + "description": "The item-level indexing errors.", + "items": { + "$ref": "#/definitions/SearchIndexerError" + }, + "readOnly": true }, - "protectedWords": { + "warnings": { "type": "array", + "description": "The item-level indexing warnings.", "items": { - "type": "string" + "$ref": "#/definitions/SearchIndexerWarning" }, - "description": "A list of tokens to protect from being delimited." - } - }, - "description": "Splits words into subwords and performs optional transformations on subword groups. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilter.html" - } - }, - "CharFilter": { - "type": "object", - "discriminator": "@odata.type", - "properties": { - "@odata.type": { + "readOnly": true + }, + "itemsProcessed": { + "type": "integer", + "format": "int32", + "description": "The number of items that were processed during this indexer execution. This includes both successfully processed items and items where indexing was attempted but failed.", + "readOnly": true + }, + "itemsFailed": { + "type": "integer", + "format": "int32", + "description": "The number of items that failed to be indexed during this indexer execution.", + "readOnly": true + }, + "initialTrackingState": { "type": "string", - "description": "A URI fragment specifying the type of char filter." + "description": "Change tracking state with which an indexer execution started.", + "readOnly": true }, - "name": { + "finalTrackingState": { "type": "string", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/custom-analyzers-in-azure-search#index-attribute-reference" - }, - "description": "The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + "description": "Change tracking state with which an indexer execution finished.", + "readOnly": true } }, "required": [ - "@odata.type", - "name" + "status", + "errors", + "warnings", + "itemsProcessed", + "itemsFailed" + ] + }, + "IndexerExecutionStatus": { + "type": "string", + "description": "Represents the status of an individual indexer execution.", + "enum": [ + "transientFailure", + "success", + "inProgress", + "reset" ], - "description": "Base type for character filters.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" + "x-ms-enum": { + "name": "IndexerExecutionStatus", + "modelAsString": true, + "values": [ + { + "name": "TransientFailure", + "value": "transientFailure", + "description": "An indexer invocation has failed, but the failure may be transient. Indexer invocations will continue per schedule." + }, + { + "name": "Success", + "value": "success", + "description": "Indexer execution completed successfully." + }, + { + "name": "InProgress", + "value": "inProgress", + "description": "Indexer execution is in progress." + }, + { + "name": "Reset", + "value": "reset", + "description": "Indexer has been reset." + } + ] } }, - "MappingCharFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.MappingCharFilter", - "allOf": [ - { - "$ref": "#/definitions/CharFilter" - } + "IndexerExecutionStatusDetail": { + "type": "string", + "description": "Details the status of an individual indexer execution.", + "enum": [ + "resetDocs", + "resync" ], - "properties": { - "mappings": { - "type": "array", - "items": { - "type": "string" + "x-ms-enum": { + "name": "IndexerExecutionStatusDetail", + "modelAsString": true, + "values": [ + { + "name": "ResetDocs", + "value": "resetDocs", + "description": "Indicates that the reset that occurred was for a call to ResetDocs." }, - "description": "A list of mappings of the following format: \"a=>b\" (all occurrences of the character \"a\" will be replaced with character \"b\")." - } - }, - "required": [ - "mappings" - ], - "description": "A character filter that applies mappings defined with the mappings option. Matching is greedy (longest pattern matching at a given point wins). Replacement is allowed to be the empty string. This character filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/charfilter/MappingCharFilter.html" + { + "name": "Resync", + "value": "resync", + "description": "Indicates to selectively resync based on option(s) from data source." + } + ] } }, - "PatternReplaceCharFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternReplaceCharFilter", - "allOf": [ - { - "$ref": "#/definitions/CharFilter" - } - ], - "properties": { - "pattern": { - "type": "string", - "description": "A regular expression pattern." - }, - "replacement": { - "type": "string", - "description": "The replacement text." - } - }, - "required": [ - "pattern", - "replacement" + "IndexerPermissionOption": { + "type": "string", + "description": "Options with various types of permission data to index.", + "enum": [ + "userIds", + "groupIds", + "rbacScope" ], - "description": "A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This character filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternReplaceCharFilter.html" + "x-ms-enum": { + "name": "IndexerPermissionOption", + "modelAsString": true, + "values": [ + { + "name": "UserIds", + "value": "userIds", + "description": "Indexer to ingest ACL userIds from data source to index." + }, + { + "name": "GroupIds", + "value": "groupIds", + "description": "Indexer to ingest ACL groupIds from data source to index." + }, + { + "name": "RbacScope", + "value": "rbacScope", + "description": "Indexer to ingest Azure RBAC scope from data source to index." + } + ] } }, - "Similarity": { + "IndexerResyncBody": { "type": "object", - "discriminator": "@odata.type", + "description": "Request body for resync indexer operation.", "properties": { - "@odata.type": { - "type": "string" + "options": { + "type": "array", + "description": "Re-sync options that have been pre-defined from data source.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/IndexerResyncOption" + } } - }, - "required": [ - "@odata.type" - ], - "description": "Base type for similarity algorithms. Similarity algorithms are used to calculate scores that tie queries to documents. The higher the score, the more relevant the document is to that specific query. Those scores are used to rank the search results.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/index-ranking-similarity" } }, - "ClassicSimilarity": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.ClassicSimilarity", - "allOf": [ - { - "$ref": "#/definitions/Similarity" - } - ], - "description": "Legacy similarity algorithm which uses the Lucene TFIDFSimilarity implementation of TF-IDF. This variation of TF-IDF introduces static document length normalization as well as coordinating factors that penalize documents that only partially match the searched queries." - }, - "BM25Similarity": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.BM25Similarity", - "allOf": [ - { - "$ref": "#/definitions/Similarity" - } + "IndexerResyncOption": { + "type": "string", + "description": "Options with various types of permission data to index.", + "enum": [ + "permissions" ], - "properties": { - "k1": { - "type": "number", - "format": "double", - "description": "This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency.", - "x-nullable": true - }, - "b": { - "type": "number", - "format": "double", - "description": "This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document.", - "x-nullable": true - } - }, - "description": "Ranking function based on the Okapi BM25 similarity algorithm. BM25 is a TF-IDF-like algorithm that includes length normalization (controlled by the 'b' parameter) as well as term frequency saturation (controlled by the 'k1' parameter)." - }, - "VectorSearch": { - "type": "object", - "properties": { - "profiles": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorSearchProfile" - }, - "description": "Defines combinations of configurations to use with vector search." - }, - "algorithms": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" - }, - "description": "Contains configuration options specific to the algorithm used during indexing or querying." - }, - "vectorizers": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorSearchVectorizer" - }, - "description": "Contains configuration options on how to vectorize text vector queries." - }, - "compressions": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorSearchCompressionConfiguration" - }, - "description": "Contains configuration options specific to the compression method used during indexing or querying." - } - }, - "description": "Contains configuration options related to vector search." + "x-ms-enum": { + "name": "IndexerResyncOption", + "modelAsString": true, + "values": [ + { + "name": "Permissions", + "value": "permissions", + "description": "Indexer to re-ingest pre-selected permissions data from data source to index." + } + ] + } }, - "VectorSearchProfile": { + "IndexerRuntime": { "type": "object", + "description": "Represents the indexer's cumulative runtime consumption in the service.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name to associate with this particular vector search profile.", - "x-nullable": false + "usedSeconds": { + "type": "integer", + "format": "int64", + "description": "Cumulative runtime of the indexer from the beginningTime to endingTime, in seconds." }, - "algorithm": { - "x-ms-client-name": "algorithmConfigurationName", - "type": "string", - "description": "The name of the vector search algorithm configuration that specifies the algorithm and optional parameters.", - "x-nullable": false + "remainingSeconds": { + "type": "integer", + "format": "int64", + "description": "Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds.", + "x-nullable": true }, - "vectorizer": { - "x-ms-client-name": "vectorizerName", + "beginningTime": { "type": "string", - "description": "The name of the vectorization being configured for use with vector search.", - "x-nullable": false + "format": "date-time", + "description": "Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." }, - "compression": { - "x-ms-client-name": "compressionConfigurationName", - "type": "string", - "description": "The name of the compression method configuration that specifies the compression method and optional parameters.", - "x-nullable": false - } - }, - "required": [ - "name", - "algorithm" - ], - "description": "Defines a combination of configurations to use with vector search." - }, - "VectorSearchAlgorithmConfiguration": { - "type": "object", - "discriminator": "kind", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, + "endingTime": { "type": "string", - "description": "The name to associate with this particular configuration.", - "x-nullable": false - }, - "kind": { - "$ref": "#/definitions/VectorSearchAlgorithmKind", - "description": "The name of the kind of algorithm being configured for use with vector search.", - "x-nullable": false + "format": "date-time", + "description": "End UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." } }, "required": [ - "name", - "kind" - ], - "description": "Contains configuration options specific to the algorithm used during indexing or querying." - }, - "HnswVectorSearchAlgorithmConfiguration": { - "type": "object", - "x-ms-client-name": "HnswAlgorithmConfiguration", - "x-ms-discriminator-value": "hnsw", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" - } - ], - "properties": { - "hnswParameters": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/HnswParameters", - "description": "Contains the parameters specific to HNSW algorithm." - } - }, - "description": "Contains configuration options specific to the HNSW approximate nearest neighbors algorithm used during indexing and querying. The HNSW algorithm offers a tunable trade-off between search speed and accuracy." - }, - "HnswParameters": { - "type": "object", - "properties": { - "m": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 4, - "maximum": 10, - "default": 4, - "description": "The number of bi-directional links created for every new element during construction. Increasing this parameter value may improve recall and reduce retrieval times for datasets with high intrinsic dimensionality at the expense of increased memory consumption and longer indexing time." - }, - "efConstruction": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 100, - "maximum": 1000, - "default": 400, - "description": "The size of the dynamic list containing the nearest neighbors, which is used during index time. Increasing this parameter may improve index quality, at the expense of increased indexing time. At a certain point, increasing this parameter leads to diminishing returns." - }, - "efSearch": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 100, - "maximum": 1000, - "default": 500, - "description": "The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. At a certain point, increasing this parameter leads to diminishing returns." - }, - "metric": { - "$ref": "#/definitions/VectorSearchAlgorithmMetric", - "x-nullable": true, - "description": "The similarity metric to use for vector comparisons." - } - }, - "description": "Contains the parameters specific to the HNSW algorithm." - }, - "ExhaustiveKnnVectorSearchAlgorithmConfiguration": { - "x-ms-client-name": "ExhaustiveKnnAlgorithmConfiguration", - "type": "object", - "x-ms-discriminator-value": "exhaustiveKnn", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" - } - ], - "properties": { - "exhaustiveKnnParameters": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/ExhaustiveKnnParameters", - "description": "Contains the parameters specific to exhaustive KNN algorithm." - } - }, - "description": "Contains configuration options specific to the exhaustive KNN algorithm used during querying, which will perform brute-force search across the entire vector index." - }, - "ExhaustiveKnnParameters": { - "type": "object", - "properties": { - "metric": { - "$ref": "#/definitions/VectorSearchAlgorithmMetric", - "x-nullable": true, - "description": "The similarity metric to use for vector comparisons." - } - }, - "description": "Contains the parameters specific to exhaustive KNN algorithm." + "usedSeconds", + "beginningTime", + "endingTime" + ] }, - "VectorSearchAlgorithmMetric": { + "IndexerStatus": { "type": "string", + "description": "Represents the overall indexer status.", "enum": [ - "cosine", - "euclidean", - "dotProduct", - "hamming" + "unknown", + "error", + "running" ], "x-ms-enum": { - "name": "VectorSearchAlgorithmMetric", + "name": "IndexerStatus", "modelAsString": true, "values": [ { - "value": "cosine", - "name": "Cosine", - "description": "Measures the angle between vectors to quantify their similarity, disregarding magnitude. The smaller the angle, the closer the similarity." - }, - { - "value": "euclidean", - "name": "Euclidean", - "description": "Computes the straight-line distance between vectors in a multi-dimensional space. The smaller the distance, the closer the similarity." + "name": "Unknown", + "value": "unknown", + "description": "Indicates that the indexer is in an unknown state." }, { - "value": "dotProduct", - "name": "DotProduct", - "description": "Calculates the sum of element-wise products to gauge alignment and magnitude similarity. The larger and more positive, the closer the similarity." + "name": "Error", + "value": "error", + "description": "Indicates that the indexer experienced an error that cannot be corrected without human intervention." }, { - "value": "hamming", - "name": "Hamming", - "description": "Only applicable to bit-packed binary data types. Determines dissimilarity by counting differing positions in binary vectors. The fewer differences, the closer the similarity." + "name": "Running", + "value": "running", + "description": "Indicates that the indexer is running normally." } ] - }, - "description": "The similarity metric to use for vector comparisons. It is recommended to choose the same similarity metric as the embedding model was trained on." + } }, - "VectorSearchAlgorithmKind": { + "IndexingMode": { "type": "string", + "description": "Represents the mode the indexer is executing in.", "enum": [ - "hnsw", - "exhaustiveKnn" + "indexingAllDocs", + "indexingResetDocs", + "indexingResync" ], "x-ms-enum": { - "name": "VectorSearchAlgorithmKind", + "name": "IndexingMode", "modelAsString": true, "values": [ { - "value": "hnsw", - "name": "Hnsw", - "description": "HNSW (Hierarchical Navigable Small World), a type of approximate nearest neighbors algorithm." + "name": "IndexingAllDocs", + "value": "indexingAllDocs", + "description": "The indexer is indexing all documents in the datasource." }, { - "value": "exhaustiveKnn", - "name": "ExhaustiveKnn", - "description": "Exhaustive KNN algorithm which will perform brute-force search." + "name": "IndexingResetDocs", + "value": "indexingResetDocs", + "description": "The indexer is indexing selective, reset documents in the datasource. The documents being indexed are defined on indexer status." + }, + { + "name": "IndexingResync", + "value": "indexingResync", + "description": "The indexer is resyncing and indexing selective option(s) from the datasource." } ] - }, - "description": "The algorithm used for indexing and querying." + } }, - "VectorSearchCompressionConfiguration": { + "IndexingParameters": { "type": "object", - "discriminator": "kind", + "description": "Represents parameters for indexer execution.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name to associate with this particular configuration.", - "x-nullable": false - }, - "kind": { - "$ref": "#/definitions/VectorSearchCompressionKind", - "description": "The name of the kind of compression method being configured for use with vector search.", - "x-nullable": false + "batchSize": { + "type": "integer", + "format": "int32", + "description": "The number of items that are read from the data source and indexed as a single batch in order to improve performance. The default depends on the data source type.", + "x-nullable": true }, - "rescoringOptions": { - "type": "object", - "$ref": "#/definitions/RescoringOptions", - "description": "Contains the options for rescoring.", + "maxFailedItems": { + "type": "integer", + "format": "int32", + "description": "The maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0.", + "default": 0, "x-nullable": true }, - "truncationDimension": { + "maxFailedItemsPerBatch": { "type": "integer", "format": "int32", - "description": "The number of dimensions to truncate the vectors to. Truncating the vectors reduces the size of the vectors and the amount of data that needs to be transferred during search. This can save storage cost and improve search performance at the expense of recall. It should be only used for embeddings trained with Matryoshka Representation Learning (MRL) such as OpenAI text-embedding-3-large (small). The default value is null, which means no truncation.", + "description": "The maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0.", + "default": 0, "x-nullable": true + }, + "configuration": { + "$ref": "#/definitions/IndexingParametersConfiguration", + "description": "A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." } - }, - "required": [ - "name", - "kind" - ], - "description": "Contains configuration options specific to the compression method used during indexing or querying." + } }, - "RescoringOptions": { + "IndexingParametersConfiguration": { "type": "object", - "x-ms-client-name": "RescoringOptions", + "description": "A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.", "properties": { - "enableRescoring": { + "parsingMode": { + "type": "string", + "description": "Represents the parsing mode for indexing from an Azure blob data source.", + "default": "default", + "enum": [ + "default", + "text", + "delimitedText", + "json", + "jsonArray", + "jsonLines", + "markdown" + ], + "x-ms-enum": { + "name": "BlobIndexerParsingMode", + "modelAsString": true, + "values": [ + { + "name": "Default", + "value": "default", + "description": "Set to default for normal file processing." + }, + { + "name": "Text", + "value": "text", + "description": "Set to text to improve indexing performance on plain text files in blob storage." + }, + { + "name": "DelimitedText", + "value": "delimitedText", + "description": "Set to delimitedText when blobs are plain CSV files." + }, + { + "name": "Json", + "value": "json", + "description": "Set to json to extract structured content from JSON files." + }, + { + "name": "JsonArray", + "value": "jsonArray", + "description": "Set to jsonArray to extract individual elements of a JSON array as separate documents." + }, + { + "name": "JsonLines", + "value": "jsonLines", + "description": "Set to jsonLines to extract individual JSON entities, separated by a new line, as separate documents." + }, + { + "name": "Markdown", + "value": "markdown", + "description": "Set to markdown to extract content from markdown files." + } + ] + } + }, + "excludedFileNameExtensions": { + "type": "string", + "description": "Comma-delimited list of filename extensions to ignore when processing from Azure blob storage. For example, you could exclude \".png, .mp4\" to skip over those files during indexing.", + "default": "" + }, + "indexedFileNameExtensions": { + "type": "string", + "description": "Comma-delimited list of filename extensions to select when processing from Azure blob storage. For example, you could focus indexing on specific application files \".docx, .pptx, .msg\" to specifically include those file types.", + "default": "" + }, + "failOnUnsupportedContentType": { "type": "boolean", - "default": true, - "description": "If set to true, after the initial search on the compressed vectors, the similarity scores are recalculated using the full-precision vectors. This will improve recall at the expense of latency.", - "x-nullable": true + "description": "For Azure blobs, set to false if you want to continue indexing when an unsupported content type is encountered, and you don't know all the content types (file extensions) in advance.", + "default": false }, - "defaultOversampling": { - "type": "number", - "format": "double", - "description": "Default oversampling factor. Oversampling retrieves a greater set of potential documents to offset the resolution loss due to quantization. This increases the set of results that will be rescored on full-precision vectors. Minimum value is 1, meaning no oversampling (1x). This parameter can only be set when 'enableRescoring' is true. Higher values improve recall at the expense of latency.", + "failOnUnprocessableDocument": { + "type": "boolean", + "description": "For Azure blobs, set to false if you want to continue indexing if a document fails indexing.", + "default": false + }, + "indexStorageMetadataOnlyForOversizedDocuments": { + "type": "boolean", + "description": "For Azure blobs, set this property to true to still index storage metadata for blob content that is too large to process. Oversized blobs are treated as errors by default. For limits on blob size, see https://learn.microsoft.com/azure/search/search-limits-quotas-capacity.", + "default": false + }, + "delimitedTextHeaders": { + "type": "string", + "description": "For CSV blobs, specifies a comma-delimited list of column headers, useful for mapping source fields to destination fields in an index." + }, + "delimitedTextDelimiter": { + "type": "string", + "description": "For CSV blobs, specifies the end-of-line single-character delimiter for CSV files where each line starts a new document (for example, \"|\")." + }, + "firstLineContainsHeaders": { + "type": "boolean", + "description": "For CSV blobs, indicates that the first (non-blank) line of each blob contains headers.", + "default": true + }, + "markdownParsingSubmode": { + "type": "string", + "description": "Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`.", + "default": "oneToMany", + "enum": [ + "oneToMany", + "oneToOne" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "OneToMany", + "value": "oneToMany", + "description": "Indicates that each section of the markdown file (up to a specified depth) will be parsed into individual search documents. This can result in a single markdown file producing multiple search documents. This is the default sub-mode." + }, + { + "name": "OneToOne", + "value": "oneToOne", + "description": "Indicates that each markdown file will be parsed into a single search document." + } + ] + }, "x-nullable": true }, - "rescoreStorageMethod": { - "$ref": "#/definitions/VectorSearchCompressionRescoreStorageMethod", - "default": "preserveOriginals", - "description": "Controls the storage method for original vectors. This setting is immutable.", + "markdownHeaderDepth": { + "type": "string", + "description": "Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`.", + "default": "h6", + "enum": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "h1", + "value": "h1", + "description": "Indicates that headers up to a level of h1 will be considered while grouping markdown content." + }, + { + "name": "h2", + "value": "h2", + "description": "Indicates that headers up to a level of h2 will be considered while grouping markdown content." + }, + { + "name": "h3", + "value": "h3", + "description": "Indicates that headers up to a level of h3 will be considered while grouping markdown content." + }, + { + "name": "h4", + "value": "h4", + "description": "Indicates that headers up to a level of h4 will be considered while grouping markdown content." + }, + { + "name": "h5", + "value": "h5", + "description": "Indicates that headers up to a level of h5 will be considered while grouping markdown content." + }, + { + "name": "h6", + "value": "h6", + "description": "Indicates that headers up to a level of h6 will be considered while grouping markdown content. This is the default." + } + ] + }, "x-nullable": true + }, + "documentRoot": { + "type": "string", + "description": "For JSON arrays, given a structured or semi-structured document, you can specify a path to the array using this property." + }, + "dataToExtract": { + "type": "string", + "description": "Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.", + "default": "contentAndMetadata", + "enum": [ + "storageMetadata", + "allMetadata", + "contentAndMetadata" + ], + "x-ms-enum": { + "name": "BlobIndexerDataToExtract", + "modelAsString": true, + "values": [ + { + "name": "StorageMetadata", + "value": "storageMetadata", + "description": "Indexes just the standard blob properties and user-specified metadata." + }, + { + "name": "AllMetadata", + "value": "allMetadata", + "description": "Extracts metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files are indexed)." + }, + { + "name": "ContentAndMetadata", + "value": "contentAndMetadata", + "description": "Extracts all metadata and textual content from each blob." + } + ] + } + }, + "imageAction": { + "type": "string", + "description": "Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer.", + "default": "none", + "enum": [ + "none", + "generateNormalizedImages", + "generateNormalizedImagePerPage" + ], + "x-ms-enum": { + "name": "BlobIndexerImageAction", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Ignores embedded images or image files in the data set. This is the default." + }, + { + "name": "GenerateNormalizedImages", + "value": "generateNormalizedImages", + "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field. This action requires that \"dataToExtract\" is set to \"contentAndMetadata\". A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results. This information is generated for each image when you use this option." + }, + { + "name": "GenerateNormalizedImagePerPage", + "value": "generateNormalizedImagePerPage", + "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field, but treats PDF files differently in that each page will be rendered as an image and normalized accordingly, instead of extracting embedded images. Non-PDF file types will be treated the same as if \"generateNormalizedImages\" was set." + } + ] + } + }, + "allowSkillsetToReadFileData": { + "type": "boolean", + "description": "If true, will create a path //document//file_data that is an object representing the original file data downloaded from your blob data source. This allows you to pass the original file data to a custom skill for processing within the enrichment pipeline, or to the Document Extraction skill.", + "default": false + }, + "pdfTextRotationAlgorithm": { + "type": "string", + "description": "Determines algorithm for text extraction from PDF files in Azure blob storage.", + "default": "none", + "enum": [ + "none", + "detectAngles" + ], + "x-ms-enum": { + "name": "BlobIndexerPDFTextRotationAlgorithm", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Leverages normal text extraction. This is the default." + }, + { + "name": "DetectAngles", + "value": "detectAngles", + "description": "May produce better and more readable text extraction from PDF files that have rotated text within them. Note that there may be a small performance speed impact when this parameter is used. This parameter only applies to PDF files, and only to PDFs with embedded text. If the rotated text appears within an embedded image in the PDF, this parameter does not apply." + } + ] + } + }, + "executionEnvironment": { + "type": "string", + "description": "Specifies the environment in which the indexer should execute.", + "default": "standard", + "enum": [ + "standard", + "private" + ], + "x-ms-enum": { + "name": "IndexerExecutionEnvironment", + "modelAsString": true, + "values": [ + { + "name": "standard", + "value": "standard", + "description": "Indicates that the search service can determine where the indexer should execute. This is the default environment when nothing is specified and is the recommended value." + }, + { + "name": "private", + "value": "private", + "description": "Indicates that the indexer should run with the environment provisioned specifically for the search service. This should only be specified as the execution environment if the indexer needs to access resources securely over shared private link resources." + } + ] + } + }, + "queryTimeout": { + "type": "string", + "description": "Increases the timeout beyond the 5-minute default for Azure SQL database data sources, specified in the format \"hh:mm:ss\".", + "default": "00:05:00" } }, - "description": "Contains the options for rescoring." + "additionalProperties": {} }, - "ScalarQuantizationVectorSearchCompressionConfiguration": { - "x-ms-client-name": "ScalarQuantizationCompressionConfiguration", + "IndexingResult": { "type": "object", - "x-ms-discriminator-value": "scalarQuantization", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchCompressionConfiguration" - } - ], + "description": "Status of an indexing operation for a single document.", "properties": { - "scalarQuantizationParameters": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/ScalarQuantizationParameters", - "description": "Contains the parameters specific to Scalar Quantization." + "key": { + "type": "string", + "description": "The key of a document that was in the indexing request.", + "readOnly": true + }, + "errorMessage": { + "type": "string", + "description": "The error message explaining why the indexing operation failed for the document identified by the key; null if indexing succeeded.", + "readOnly": true + }, + "status": { + "type": "boolean", + "description": "A value indicating whether the indexing operation succeeded for the document identified by the key.", + "readOnly": true + }, + "statusCode": { + "type": "integer", + "format": "int32", + "description": "The status code of the indexing operation. Possible values include: 200 for a successful update or delete, 201 for successful document creation, 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy.", + "readOnly": true } }, - "description": "Contains configuration options specific to the scalar quantization compression method used during indexing and querying." + "required": [ + "key", + "status", + "statusCode" + ] }, - "ScalarQuantizationParameters": { + "IndexingSchedule": { "type": "object", + "description": "Represents a schedule for indexer execution.", "properties": { - "quantizedDataType": { - "$ref": "#/definitions/VectorSearchCompressionTargetDataType", - "x-nullable": true, - "description": "The quantized data type of compressed vector values." + "interval": { + "type": "string", + "format": "duration", + "description": "The interval of time between indexer executions." + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The time when an indexer should start running." } }, - "description": "Contains the parameters specific to Scalar Quantization." + "required": [ + "interval" + ] }, - "BinaryQuantizationVectorSearchCompressionConfiguration": { - "x-ms-client-name": "BinaryQuantizationCompressionConfiguration", + "InputFieldMappingEntry": { "type": "object", - "x-ms-discriminator-value": "binaryQuantization", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchCompressionConfiguration" - } - ], - "description": "Contains configuration options specific to the binary quantization compression method used during indexing and querying." - }, - "VectorSearchCompressionTargetDataType": { - "type": "string", - "enum": [ - "int8" - ], - "x-ms-enum": { - "name": "VectorSearchCompressionTargetDataType", - "modelAsString": true, - "values": [ - { - "value": "int8", - "name": "Int8" + "description": "Input field mapping for a skill.", + "properties": { + "name": { + "type": "string", + "description": "The name of the input." + }, + "source": { + "type": "string", + "description": "The source of the input." + }, + "sourceContext": { + "type": "string", + "description": "The source context used for selecting recursive inputs." + }, + "inputs": { + "type": "array", + "description": "The recursive inputs used when creating a complex type.", + "items": { + "$ref": "#/definitions/InputFieldMappingEntry" } - ] - }, - "description": "The quantized data type of compressed vector values." - }, - "VectorSearchCompressionKind": { - "type": "string", - "enum": [ - "scalarQuantization", - "binaryQuantization" - ], - "x-ms-enum": { - "name": "VectorSearchCompressionKind", - "modelAsString": true, - "values": [ - { - "value": "scalarQuantization", - "name": "ScalarQuantization", - "description": "Scalar Quantization, a type of compression method. In scalar quantization, the original vectors values are compressed to a narrower type by discretizing and representing each component of a vector using a reduced set of quantized values, thereby reducing the overall data size." - }, - { - "value": "binaryQuantization", - "name": "BinaryQuantization", - "description": "Binary Quantization, a type of compression method. In binary quantization, the original vectors values are compressed to the narrower binary type by discretizing and representing each component of a vector using binary values, thereby reducing the overall data size." - } - ] - }, - "description": "The compression method used for indexing and querying." - }, - "VectorSearchCompressionRescoreStorageMethod": { - "type": "string", - "enum": [ - "preserveOriginals", - "discardOriginals" - ], - "x-ms-enum": { - "name": "VectorSearchCompressionRescoreStorageMethod", - "modelAsString": true, - "values": [ - { - "value": "preserveOriginals", - "name": "PreserveOriginals", - "description": "This option preserves the original full-precision vectors. Choose this option for maximum flexibility and highest quality of compressed search results. This consumes more storage but allows for rescoring and oversampling." - }, - { - "value": "discardOriginals", - "name": "DiscardOriginals", - "description": "This option discards the original full-precision vectors. Choose this option for maximum storage savings. Since this option does not allow for rescoring and oversampling, it will often cause slight to moderate reductions in quality." - } - ] - }, - "description": "The storage method for the original full-precision vectors used for rescoring and internal index operations." - }, - "KnowledgeSourceVectorizer": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/VectorSearchVectorizerKind", - "description": "The name of the kind of vectorization method being configured for use with vector search.", - "x-nullable": false - } + } }, "required": [ - "kind" - ], - "description": "Specifies the vectorization method to be used for knowledge source embedding model, with optional name." - }, - "KnowledgeSourceAzureOpenAIVectorizer": { - "type": "object", - "x-ms-discriminator-value": "azureOpenAI", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceVectorizer" - } - ], - "properties": { - "azureOpenAIParameters": { - "x-ms-client-name": "AzureOpenAIParameters", - "$ref": "#/definitions/AzureOpenAIParameters", - "description": "Contains the parameters specific to Azure OpenAI embedding vectorization." - } - }, - "description": "Specifies the Azure OpenAI resource used to vectorize a query string." + "name" + ] }, - "VectorSearchVectorizer": { + "KeepTokenFilter": { "type": "object", - "discriminator": "kind", + "description": "A token filter that only keeps tokens with text contained in a specified list of words. This token filter is implemented using Apache Lucene.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name to associate with this particular vectorization method.", - "x-nullable": false + "keepWords": { + "type": "array", + "description": "The list of words to keep.", + "items": { + "type": "string" + } }, - "kind": { - "$ref": "#/definitions/VectorSearchVectorizerKind", - "description": "The name of the kind of vectorization method being configured for use with vector search.", - "x-nullable": false + "keepWordsCase": { + "type": "boolean", + "description": "A value indicating whether to lower case all words first. Default is false.", + "default": false } }, "required": [ - "name", - "kind" + "keepWords" ], - "description": "Specifies the vectorization method to be used during query time." - }, - "AzureOpenAIVectorizer": { - "type": "object", - "x-ms-discriminator-value": "azureOpenAI", "allOf": [ { - "$ref": "#/definitions/VectorSearchVectorizer" + "$ref": "#/definitions/TokenFilter" } ], - "properties": { - "azureOpenAIParameters": { - "x-ms-client-name": "AzureOpenAIParameters", - "$ref": "#/definitions/AzureOpenAIParameters", - "description": "Contains the parameters specific to Azure OpenAI embedding vectorization." - } - }, - "description": "Specifies the Azure OpenAI resource used to vectorize a query string." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeepTokenFilter" }, - "AzureOpenAIParameters": { + "KeyPhraseExtractionSkill": { "type": "object", + "description": "A skill that uses text analytics for key phrase extraction.", "properties": { - "resourceUri": { - "type": "string", - "format": "uri", - "description": "The resource URI of the Azure OpenAI resource." + "defaultLanguageCode": { + "$ref": "#/definitions/KeyPhraseExtractionSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." }, - "deploymentId": { - "x-ms-client-name": "deploymentName", - "type": "string", - "description": "ID of the Azure OpenAI model deployment on the designated resource." + "maxKeyPhraseCount": { + "type": "integer", + "format": "int32", + "description": "A number indicating how many key phrases to return. If absent, all identified key phrases will be returned.", + "x-nullable": true }, - "apiKey": { + "modelVersion": { "type": "string", - "description": "API key of the designated Azure OpenAI resource." - }, - "authIdentity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for outbound connections." - }, - "modelName": { - "$ref": "#/definitions/AzureOpenAIModelName", - "description": "The name of the embedding model that is deployed at the provided deploymentId path." + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true } }, - "description": "Specifies the parameters for connecting to the Azure OpenAI resource." + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill" }, - "AzureOpenAIModelName": { + "KeyPhraseExtractionSkillLanguage": { "type": "string", + "description": "The language codes supported for input text by KeyPhraseExtractionSkill.", "enum": [ - "text-embedding-ada-002", - "text-embedding-3-large", - "text-embedding-3-small", - "gpt-4o", - "gpt-4o-mini", - "gpt-4.1", - "gpt-4.1-mini", - "gpt-4.1-nano", - "gpt-5", - "gpt-5-mini", - "gpt-5-nano" + "da", + "nl", + "en", + "fi", + "fr", + "de", + "it", + "ja", + "ko", + "no", + "pl", + "pt-PT", + "pt-BR", + "ru", + "es", + "sv" ], "x-ms-enum": { - "name": "AzureOpenAIModelName", + "name": "KeyPhraseExtractionSkillLanguage", "modelAsString": true, "values": [ { - "value": "text-embedding-ada-002", - "name": "TextEmbeddingAda002" + "name": "da", + "value": "da", + "description": "Danish" }, { - "value": "text-embedding-3-large", - "name": "TextEmbedding3Large" + "name": "nl", + "value": "nl", + "description": "Dutch" }, { - "value": "text-embedding-3-small", - "name": "TextEmbedding3Small" + "name": "en", + "value": "en", + "description": "English" }, { - "value": "gpt-4o", - "name": "Gpt4o" + "name": "fi", + "value": "fi", + "description": "Finnish" }, { - "value": "gpt-4o-mini", - "name": "Gpt4oMini" + "name": "fr", + "value": "fr", + "description": "French" }, { - "value": "gpt-4.1", - "name": "Gpt41" + "name": "de", + "value": "de", + "description": "German" }, { - "value": "gpt-4.1-mini", - "name": "Gpt41Mini" + "name": "it", + "value": "it", + "description": "Italian" }, { - "value": "gpt-4.1-nano", - "name": "Gpt41Nano" + "name": "ja", + "value": "ja", + "description": "Japanese" }, { - "value": "gpt-5", - "name": "Gpt5" + "name": "ko", + "value": "ko", + "description": "Korean" }, { - "value": "gpt-5-mini", - "name": "Gpt5Mini" + "name": "no", + "value": "no", + "description": "Norwegian (Bokmaal)" }, { - "value": "gpt-5-nano", - "name": "Gpt5Nano" + "name": "pl", + "value": "pl", + "description": "Polish" + }, + { + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese (Portugal)" + }, + { + "name": "pt-BR", + "value": "pt-BR", + "description": "Portuguese (Brazil)" + }, + { + "name": "ru", + "value": "ru", + "description": "Russian" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "sv", + "value": "sv", + "description": "Swedish" } ] - }, - "description": "The Azure Open AI model name that will be called." + } }, - "WebApiVectorizer": { + "KeywordMarkerTokenFilter": { "type": "object", - "x-ms-discriminator-value": "customWebApi", + "description": "Marks terms as keywords. This token filter is implemented using Apache Lucene.", + "properties": { + "keywords": { + "type": "array", + "description": "A list of words to mark as keywords.", + "items": { + "type": "string" + } + }, + "ignoreCase": { + "type": "boolean", + "description": "A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false.", + "default": false + } + }, + "required": [ + "keywords" + ], "allOf": [ { - "$ref": "#/definitions/VectorSearchVectorizer" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordMarkerTokenFilter" + }, + "KeywordTokenizer": { + "type": "object", + "description": "Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.", "properties": { - "customWebApiParameters": { - "x-ms-client-name": "WebApiParameters", - "$ref": "#/definitions/WebApiParameters", - "description": "Specifies the properties of the user-defined vectorizer." + "bufferSize": { + "type": "integer", + "format": "int32", + "description": "The read buffer size in bytes. Default is 256.", + "default": 256 } }, - "description": "Specifies a user-defined vectorizer for generating the vector embedding of a query string. Integration of an external vectorizer is achieved using the custom Web API interface of a skillset." + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordTokenizer" }, - "WebApiParameters": { + "KeywordTokenizerV2": { "type": "object", + "description": "Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.", "properties": { - "uri": { - "type": "string", - "format": "uri", - "description": "The URI of the Web API providing the vectorizer." - }, - "httpHeaders": { - "$ref": "#/definitions/WebApiHttpHeaders", - "description": "The headers required to make the HTTP request." - }, - "httpMethod": { - "type": "string", - "description": "The method for the HTTP request." - }, - "timeout": { - "type": "string", - "format": "duration", - "description": "The desired timeout for the request. Default is 30 seconds." - }, - "authResourceId": { - "type": "string", - "x-nullable": true, - "x-ms-format": "arm-id", - "description": "Applies to custom endpoints that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the vectorization connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token." - }, - "authIdentity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 256. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 256, + "maximum": 300 } }, - "description": "Specifies the properties for connecting to a user-defined vectorizer." - }, - "AIServicesVisionVectorizer": { - "type": "object", - "x-ms-discriminator-value": "aiServicesVision", "allOf": [ { - "$ref": "#/definitions/VectorSearchVectorizer" + "$ref": "#/definitions/LexicalTokenizer" } ], - "properties": { - "aiServicesVisionParameters": { - "x-ms-client-name": "AIServicesVisionParameters", - "$ref": "#/definitions/AIServicesVisionParameters", - "description": "Contains the parameters specific to AI Services Vision embedding vectorization." - } - }, - "description": "Specifies the AI Services Vision parameters for vectorizing a query image or text." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordTokenizerV2" }, - "AIServicesVisionParameters": { + "KnowledgeBase": { "type": "object", + "description": "Represents a knowledge base definition.", "properties": { - "modelVersion": { + "name": { "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified." + "description": "The name of the knowledge base." }, - "resourceUri": { + "knowledgeSources": { + "type": "array", + "description": "Knowledge sources referenced by this knowledge base.", + "items": { + "$ref": "#/definitions/KnowledgeSourceReference" + } + }, + "models": { + "type": "array", + "description": "Contains configuration options on how to connect to AI models.", + "items": { + "$ref": "#/definitions/KnowledgeBaseModel" + } + }, + "retrievalReasoningEffort": { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort", + "description": "The retrieval reasoning effort configuration." + }, + "outputMode": { + "$ref": "#/definitions/KnowledgeRetrievalOutputMode", + "description": "The output mode for the knowledge base." + }, + "@odata.etag": { "type": "string", - "format": "uri", - "description": "The resource URI of the AI Services resource." + "description": "The ETag of the knowledge base.", + "x-ms-client-name": "eTag" }, - "apiKey": { + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault.", + "x-nullable": true + }, + "description": { "type": "string", - "description": "API key of the designated AI Services resource." + "description": "The description of the knowledge base." }, - "authIdentity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the index, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." + "retrievalInstructions": { + "type": "string", + "description": "Instructions considered by the knowledge base when developing query plan." + }, + "answerInstructions": { + "type": "string", + "description": "Instructions considered by the knowledge base when generating answers." } }, - "description": "Specifies the AI Services Vision parameters for vectorizing a query image or text.", "required": [ - "resourceUri", - "modelVersion" + "name", + "knowledgeSources" ] }, - "AMLVectorizer": { - "type": "object", - "x-ms-discriminator-value": "aml", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchVectorizer" - } - ], - "properties": { - "amlParameters": { - "x-ms-client-name": "AMLParameters", - "$ref": "#/definitions/AMLParameters", - "description": "Specifies the properties of the AML vectorizer." - } - }, - "description": "Specifies an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog for generating the vector embedding of a query string." - }, - "AMLParameters": { + "KnowledgeBaseActivityRecord": { "type": "object", + "description": "Base type for activity records. Tracks execution details, timing, and errors for knowledge base operations.", "properties": { - "uri": { - "x-ms-client-name": "ScoringUri", - "type": "string", - "format": "uri", - "x-nullable": true, - "description": "(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed." - }, - "key": { - "x-ms-client-name": "AuthenticationKey", - "type": "string", - "x-nullable": true, - "description": "(Required for key authentication) The key for the AML service." - }, - "resourceId": { - "type": "string", - "x-nullable": true, - "description": "(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}." + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the activity record." }, - "timeout": { - "type": "string", - "format": "duration", - "x-nullable": true, - "description": "(Optional) When specified, indicates the timeout for the http client making the API call." + "type": { + "$ref": "#/definitions/KnowledgeBaseActivityRecordType", + "description": "The type of the activity record." }, - "region": { - "type": "string", - "x-nullable": true, - "description": "(Optional for token authentication). The region the AML service is deployed in." + "elapsedMs": { + "type": "integer", + "format": "int32", + "description": "The elapsed time in milliseconds for the retrieval activity." }, - "modelName": { - "$ref": "#/definitions/AIFoundryModelCatalogName", - "description": "The name of the embedding model from the Azure AI Foundry Catalog that is deployed at the provided endpoint." + "error": { + "$ref": "#/definitions/KnowledgeBaseErrorDetail", + "description": "The error detail explaining why the operation failed. This property is only included when the activity does not succeed." } }, + "discriminator": "type", "required": [ - "uri" - ], - "description": "Specifies the properties for connecting to an AML vectorizer." + "id", + "type" + ] }, - "AIFoundryModelCatalogName": { + "KnowledgeBaseActivityRecordType": { "type": "string", + "description": "The type of activity record.", "enum": [ - "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", - "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", - "Facebook-DinoV2-Image-Embeddings-ViT-Base", - "Facebook-DinoV2-Image-Embeddings-ViT-Giant", - "Cohere-embed-v3-english", - "Cohere-embed-v3-multilingual", - "Cohere-embed-v4" + "searchIndex", + "azureBlob", + "indexedSharePoint", + "indexedOneLake", + "web", + "remoteSharePoint", + "modelQueryPlanning", + "modelAnswerSynthesis", + "agenticReasoning" ], "x-ms-enum": { - "name": "AIFoundryModelCatalogName", + "name": "KnowledgeBaseActivityRecordType", "modelAsString": true, "values": [ { - "value": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", - "name": "OpenAI_CLIP_Image_Text_Embeddings_vit_base_patch32" - }, - { - "value": "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", - "name": "OpenAI_CLIP_Image_Text_Embeddings_ViT_Large_Patch14_336" + "name": "searchIndex", + "value": "searchIndex", + "description": "Search index retrieval activity." }, { - "value": "Facebook-DinoV2-Image-Embeddings-ViT-Base", - "name": "Facebook_DinoV2_Image_Embeddings_ViT_Base" + "name": "azureBlob", + "value": "azureBlob", + "description": "Azure Blob retrieval activity." }, { - "value": "Facebook-DinoV2-Image-Embeddings-ViT-Giant", - "name": "Facebook_DinoV2_Image_Embeddings_ViT_Giant" + "name": "indexedSharePoint", + "value": "indexedSharePoint", + "description": "Indexed SharePoint retrieval activity." }, { - "value": "Cohere-embed-v3-english", - "name": "Cohere_embed_v3_english" + "name": "indexedOneLake", + "value": "indexedOneLake", + "description": "Indexed OneLake retrieval activity." }, { - "value": "Cohere-embed-v3-multilingual", - "name": "Cohere_embed_v3_multilingual" + "name": "web", + "value": "web", + "description": "Web retrieval activity." }, { - "value": "Cohere-embed-v4", - "name": "Cohere_embed_v4", - "description": "Cohere embed v4 model for generating embeddings from both text and images." - } - ] - }, - "description": "The name of the embedding model from the Azure AI Foundry Catalog that will be called." - }, - "VectorSearchVectorizerKind": { - "type": "string", - "enum": [ - "azureOpenAI", - "customWebApi", - "aiServicesVision", - "aml" - ], - "x-ms-enum": { - "name": "VectorSearchVectorizerKind", - "modelAsString": true, - "values": [ - { - "value": "azureOpenAI", - "name": "AzureOpenAI", - "description": "Generate embeddings using an Azure OpenAI resource at query time." + "name": "remoteSharePoint", + "value": "remoteSharePoint", + "description": "Remote SharePoint retrieval activity." }, { - "value": "customWebApi", - "name": "CustomWebApi", - "description": "Generate embeddings using a custom web endpoint at query time." + "name": "modelQueryPlanning", + "value": "modelQueryPlanning", + "description": "LLM query planning activity." }, { - "value": "aiServicesVision", - "name": "AIServicesVision", - "description": "Generate embeddings for an image or text input at query time using the Azure AI Services Vision Vectorize API." + "name": "modelAnswerSynthesis", + "value": "modelAnswerSynthesis", + "description": "LLM answer synthesis activity." }, { - "value": "aml", - "name": "AML", - "description": "Generate embeddings using an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog at query time." + "name": "agenticReasoning", + "value": "agenticReasoning", + "description": "Agentic reasoning activity." } ] - }, - "description": "The vectorization method to be used during query time." + } }, - "DataSourceCredentials": { + "KnowledgeBaseAgenticReasoningActivityRecord": { "type": "object", + "description": "Represents an agentic reasoning activity record.", "properties": { - "connectionString": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Data-Source" - }, - "type": "string", - "description": "The connection string for the datasource. Set to `` (with brackets) if you don't want the connection string updated. Set to `` if you want to remove the connection string value from the datasource." + "reasoningTokens": { + "type": "integer", + "format": "int32", + "description": "The number of input tokens for agentic reasoning." + }, + "retrievalReasoningEffort": { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort", + "description": "The retrieval reasoning effort configuration." } }, - "description": "Represents credentials that can be used to connect to a datasource." + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + ], + "x-ms-discriminator-value": "agenticReasoning" }, - "SearchIndexerDataContainer": { + "KnowledgeBaseAzureBlobActivityArguments": { "type": "object", + "description": "Represents the arguments the azure blob retrieval activity was run with.", "properties": { - "name": { + "search": { "type": "string", - "description": "The name of the table or view (for Azure SQL data source) or collection (for CosmosDB data source) that will be indexed." - }, - "query": { - "type": "string", - "description": "A query that is applied to this data container. The syntax and meaning of this parameter is datasource-specific. Not supported by Azure SQL datasources." + "description": "The search string used to query blob contents." } - }, - "required": [ - "name" - ], - "description": "Represents information about the entity (such as Azure SQL table or CosmosDB collection) that will be indexed." + } }, - "SearchIndexerDataIdentity": { + "KnowledgeBaseAzureBlobActivityRecord": { "type": "object", - "discriminator": "@odata.type", + "description": "Represents a azure blob retrieval activity record.", "properties": { - "@odata.type": { - "type": "string", - "description": "A URI fragment specifying the type of identity." + "azureBlobArguments": { + "$ref": "#/definitions/KnowledgeBaseAzureBlobActivityArguments", + "description": "The azure blob arguments for the retrieval activity." } }, - "required": [ - "@odata.type" - ], - "description": "Abstract base type for data identities." - }, - "SearchIndexerDataNoneIdentity": { - "type": "object", - "description": "Clears the identity property of a datasource.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.DataNoneIdentity", "allOf": [ { - "$ref": "#/definitions/SearchIndexerDataIdentity" + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" } - ] + ], + "x-ms-discriminator-value": "azureBlob" }, - "SearchIndexerDataUserAssignedIdentity": { + "KnowledgeBaseAzureBlobReference": { "type": "object", - "description": "Specifies the identity for a datasource to use.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "description": "Represents an Azure Blob Storage document reference.", + "properties": { + "blobUrl": { + "type": "string", + "description": "The blob URL for the reference." + } + }, "allOf": [ { - "$ref": "#/definitions/SearchIndexerDataIdentity" + "$ref": "#/definitions/KnowledgeBaseReference" } ], + "x-ms-discriminator-value": "azureBlob" + }, + "KnowledgeBaseAzureOpenAIModel": { + "type": "object", + "description": "Specifies the Azure OpenAI resource used to do query planning.", "properties": { - "userAssignedIdentity": { - "type": "string", - "description": "The fully qualified Azure resource Id of a user assigned managed identity typically in the form \"/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId\" that should have been assigned to the search service." + "azureOpenAIParameters": { + "$ref": "#/definitions/AzureOpenAIVectorizerParameters", + "description": "Azure OpenAI parameters." } }, "required": [ - "userAssignedIdentity" - ] + "azureOpenAIParameters" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseModel" + } + ], + "x-ms-discriminator-value": "azureOpenAI" }, - "IndexerPermissionOption": { - "type": "string", - "enum": [ - "userIds", - "groupIds", - "rbacScope" - ], - "x-ms-enum": { - "name": "IndexerPermissionOption", - "modelAsString": true, - "values": [ - { - "value": "userIds", - "name": "UserIds", - "description": "Indexer to ingest ACL userIds from data source to index." + "KnowledgeBaseErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "additionalProperties": {}, + "readOnly": true + } + } + }, + "KnowledgeBaseErrorDetail": { + "type": "object", + "description": "The error details.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/KnowledgeBaseErrorDetail" }, - { - "value": "groupIds", - "name": "GroupIds", - "description": "Indexer to ingest ACL groupIds from data source to index." + "readOnly": true, + "x-ms-identifiers": [] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/KnowledgeBaseErrorAdditionalInfo" }, - { - "value": "rbacScope", - "name": "RbacScope", - "description": "Indexer to ingest Azure RBAC scope from data source to index." - } - ] - }, - "description": "Options with various types of permission data to index." + "readOnly": true, + "x-ms-identifiers": [] + } + } }, - "DataChangeDetectionPolicy": { + "KnowledgeBaseImageContent": { "type": "object", - "discriminator": "@odata.type", + "description": "Image content.", "properties": { - "@odata.type": { + "url": { "type": "string", - "description": "A URI fragment specifying the type of data change detection policy." + "format": "uri", + "description": "The url of the image." } }, "required": [ - "@odata.type" - ], - "description": "Base type for data change detection policies." + "url" + ] }, - "HighWaterMarkChangeDetectionPolicy": { + "KnowledgeBaseIndexedOneLakeActivityArguments": { "type": "object", - "description": "Defines a data change detection policy that captures changes based on the value of a high water mark column.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "description": "Represents the arguments the indexed OneLake retrieval activity was run with.", + "properties": { + "search": { + "type": "string", + "description": "The search string used to query indexed OneLake contents." + } + } + }, + "KnowledgeBaseIndexedOneLakeActivityRecord": { + "type": "object", + "description": "Represents a indexed OneLake retrieval activity record.", + "properties": { + "indexedOneLakeArguments": { + "$ref": "#/definitions/KnowledgeBaseIndexedOneLakeActivityArguments", + "description": "The indexed OneLake arguments for the retrieval activity." + } + }, "allOf": [ { - "$ref": "#/definitions/DataChangeDetectionPolicy" + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" } ], + "x-ms-discriminator-value": "indexedOneLake" + }, + "KnowledgeBaseIndexedOneLakeReference": { + "type": "object", + "description": "Represents an indexed OneLake document reference.", "properties": { - "highWaterMarkColumnName": { + "docUrl": { "type": "string", - "description": "The name of the high water mark column." + "description": "The document URL for the reference." } }, - "required": [ - "highWaterMarkColumnName" - ] - }, - "SqlIntegratedChangeTrackingPolicy": { - "type": "object", - "description": "Defines a data change detection policy that captures changes using the Integrated Change Tracking feature of Azure SQL Database.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy", "allOf": [ { - "$ref": "#/definitions/DataChangeDetectionPolicy" + "$ref": "#/definitions/KnowledgeBaseReference" } - ] + ], + "x-ms-discriminator-value": "indexedOneLake" }, - "DataDeletionDetectionPolicy": { + "KnowledgeBaseIndexedSharePointActivityArguments": { "type": "object", - "discriminator": "@odata.type", + "description": "Represents the arguments the indexed SharePoint retrieval activity was run with.", "properties": { - "@odata.type": { + "search": { "type": "string", - "description": "A URI fragment specifying the type of data deletion detection policy." + "description": "The search string used to query indexed SharePoint contents." + } + } + }, + "KnowledgeBaseIndexedSharePointActivityRecord": { + "type": "object", + "description": "Represents a indexed SharePoint retrieval activity record.", + "properties": { + "indexedSharePointArguments": { + "$ref": "#/definitions/KnowledgeBaseIndexedSharePointActivityArguments", + "description": "The indexed SharePoint arguments for the retrieval activity." } }, - "required": [ - "@odata.type" + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" + } ], - "description": "Base type for data deletion detection policies." + "x-ms-discriminator-value": "indexedSharePoint" }, - "SoftDeleteColumnDeletionDetectionPolicy": { + "KnowledgeBaseIndexedSharePointReference": { "type": "object", - "description": "Defines a data deletion detection policy that implements a soft-deletion strategy. It determines whether an item should be deleted based on the value of a designated 'soft delete' column.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "description": "Represents an indexed SharePoint document reference.", + "properties": { + "docUrl": { + "type": "string", + "description": "The document URL for the reference." + } + }, "allOf": [ { - "$ref": "#/definitions/DataDeletionDetectionPolicy" + "$ref": "#/definitions/KnowledgeBaseReference" } ], + "x-ms-discriminator-value": "indexedSharePoint" + }, + "KnowledgeBaseMessage": { + "type": "object", + "description": "The natural language message style object.", "properties": { - "softDeleteColumnName": { + "role": { "type": "string", - "description": "The name of the column to use for soft-deletion detection." + "description": "The role of the tool response." }, - "softDeleteMarkerValue": { - "type": "string", - "description": "The marker value that identifies an item as deleted." + "content": { + "type": "array", + "description": "The content of the message.", + "items": { + "$ref": "#/definitions/KnowledgeBaseMessageContent" + } } - } + }, + "required": [ + "content" + ] }, - "NativeBlobSoftDeleteDeletionDetectionPolicy": { + "KnowledgeBaseMessageContent": { "type": "object", - "description": "Defines a data deletion detection policy utilizing Azure Blob Storage's native soft delete feature for deletion detection.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy", - "allOf": [ - { - "$ref": "#/definitions/DataDeletionDetectionPolicy" + "description": "Specifies the type of the message content.", + "properties": { + "type": { + "$ref": "#/definitions/KnowledgeBaseMessageContentType", + "description": "The type of the message" } + }, + "discriminator": "type", + "required": [ + "type" ] }, - "SearchIndexerDataSourceType": { + "KnowledgeBaseMessageContentType": { "type": "string", + "description": "The type of message content.", "enum": [ - "azuresql", - "cosmosdb", - "azureblob", - "azuretable", - "mysql", - "adlsgen2", - "onelake", - "sharepoint" + "text", + "image" ], "x-ms-enum": { - "name": "SearchIndexerDataSourceType", + "name": "KnowledgeBaseMessageContentType", "modelAsString": true, "values": [ { - "value": "azuresql", - "name": "AzureSql", - "description": "Indicates an Azure SQL datasource." - }, - { - "value": "cosmosdb", - "name": "CosmosDb", - "description": "Indicates a CosmosDB datasource." - }, - { - "value": "azureblob", - "name": "AzureBlob", - "description": "Indicates an Azure Blob datasource." - }, - { - "value": "azuretable", - "name": "AzureTable", - "description": "Indicates an Azure Table datasource." - }, - { - "value": "mysql", - "name": "MySql", - "description": "Indicates a MySql datasource." - }, - { - "value": "adlsgen2", - "name": "AdlsGen2", - "description": "Indicates an ADLS Gen2 datasource." - }, - { - "value": "onelake", - "name": "OneLake", - "description": "Indicates a Microsoft Fabric OneLake datasource." + "name": "text", + "value": "text", + "description": "Text message content kind." }, { - "value": "sharepoint", - "name": "SharePoint", - "description": "Indicates a SharePoint datasource." + "name": "image", + "value": "image", + "description": "Image message content kind." } ] + } + }, + "KnowledgeBaseMessageImageContent": { + "type": "object", + "description": "Image message type.", + "properties": { + "image": { + "$ref": "#/definitions/KnowledgeBaseImageContent", + "description": "The image content." + } + }, + "required": [ + "image" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseMessageContent" + } + ], + "x-ms-discriminator-value": "image" + }, + "KnowledgeBaseMessageTextContent": { + "type": "object", + "description": "Text message type.", + "properties": { + "text": { + "type": "string", + "description": "The text content." + } + }, + "required": [ + "text" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseMessageContent" + } + ], + "x-ms-discriminator-value": "text" + }, + "KnowledgeBaseModel": { + "type": "object", + "description": "Specifies the connection parameters for the model to use for query planning.", + "properties": { + "kind": { + "$ref": "#/definitions/KnowledgeBaseModelKind", + "description": "The AI model to be used for query planning." + } }, - "description": "Defines the type of a datasource." + "discriminator": "kind", + "required": [ + "kind" + ] }, - "IndexerResyncOption": { + "KnowledgeBaseModelAnswerSynthesisActivityRecord": { + "type": "object", + "description": "Represents an LLM answer synthesis activity record.", + "properties": { + "inputTokens": { + "type": "integer", + "format": "int32", + "description": "The number of input tokens for the LLM answer synthesis activity." + }, + "outputTokens": { + "type": "integer", + "format": "int32", + "description": "The number of output tokens for the LLM answer synthesis activity." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + ], + "x-ms-discriminator-value": "modelAnswerSynthesis" + }, + "KnowledgeBaseModelKind": { "type": "string", + "description": "The AI model to be used for query planning.", "enum": [ - "permissions" + "azureOpenAI" ], "x-ms-enum": { - "name": "IndexerResyncOption", + "name": "KnowledgeBaseModelKind", "modelAsString": true, "values": [ { - "value": "permissions", - "name": "Permissions", - "description": "Indexer to re-ingest pre-selected permissions data from data source to index." + "name": "AzureOpenAI", + "value": "azureOpenAI", + "description": "Use Azure Open AI models for query planning." } ] - }, - "description": "Options with various types of permission data to index." + } }, - "SearchIndexerDataSource": { + "KnowledgeBaseModelQueryPlanningActivityRecord": { "type": "object", + "description": "Represents an LLM query planning activity record.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name of the datasource." - }, - "description": { - "type": "string", - "description": "The description of the datasource." + "inputTokens": { + "type": "integer", + "format": "int32", + "description": "The number of input tokens for the LLM query planning activity." }, + "outputTokens": { + "type": "integer", + "format": "int32", + "description": "The number of output tokens for the LLM query planning activity." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + ], + "x-ms-discriminator-value": "modelQueryPlanning" + }, + "KnowledgeBaseReference": { + "type": "object", + "description": "Base type for references.", + "properties": { "type": { - "$ref": "#/definitions/SearchIndexerDataSourceType", - "description": "The type of the datasource." + "$ref": "#/definitions/KnowledgeBaseReferenceType", + "description": "The type of the reference." }, - "subType": { + "id": { "type": "string", - "description": "A specific type of the data source, in case the resource is capable of different modalities. For example, 'MongoDb' for certain 'cosmosDb' accounts.", - "readOnly": true - }, - "credentials": { - "$ref": "#/definitions/DataSourceCredentials", - "description": "Credentials for the datasource." + "description": "The ID of the reference." }, - "container": { - "$ref": "#/definitions/SearchIndexerDataContainer", - "description": "The data container for the datasource." + "activitySource": { + "type": "integer", + "format": "int32", + "description": "The source activity ID for the reference." }, - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "An explicit managed identity to use for this datasource. If not specified and the connection string is a managed identity, the system-assigned managed identity is used. If not specified, the value remains unchanged. If \"none\" is specified, the value of this property is cleared." + "sourceData": { + "type": "object", + "description": "The source data for the reference.", + "additionalProperties": {} }, - "indexerPermissionOptions": { - "type": "array", - "x-nullable": true, - "items": { - "$ref": "#/definitions/IndexerPermissionOption", - "x-nullable": false + "rerankerScore": { + "type": "number", + "format": "float", + "description": "The reranker score for the document reference." + } + }, + "discriminator": "type", + "required": [ + "type", + "id", + "activitySource" + ] + }, + "KnowledgeBaseReferenceType": { + "type": "string", + "description": "The type of reference.", + "enum": [ + "searchIndex", + "azureBlob", + "indexedSharePoint", + "indexedOneLake", + "web", + "remoteSharePoint" + ], + "x-ms-enum": { + "name": "KnowledgeBaseReferenceType", + "modelAsString": true, + "values": [ + { + "name": "searchIndex", + "value": "searchIndex", + "description": "Search index document reference." }, - "description": "Ingestion options with various types of permission data." - }, - "dataChangeDetectionPolicy": { - "$ref": "#/definitions/DataChangeDetectionPolicy", - "x-nullable": true, - "description": "The data change detection policy for the datasource." - }, - "dataDeletionDetectionPolicy": { - "$ref": "#/definitions/DataDeletionDetectionPolicy", - "x-nullable": true, - "description": "The data deletion detection policy for the datasource." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", + { + "name": "azureBlob", + "value": "azureBlob", + "description": "Azure Blob document reference." + }, + { + "name": "indexedSharePoint", + "value": "indexedSharePoint", + "description": "Indexed SharePoint document reference." + }, + { + "name": "indexedOneLake", + "value": "indexedOneLake", + "description": "Indexed OneLake document reference." + }, + { + "name": "web", + "value": "web", + "description": "Web document reference." + }, + { + "name": "remoteSharePoint", + "value": "remoteSharePoint", + "description": "Remote SharePoint document reference." + } + ] + } + }, + "KnowledgeBaseRemoteSharePointActivityArguments": { + "type": "object", + "description": "Represents the arguments the remote SharePoint retrieval activity was run with.", + "properties": { + "search": { "type": "string", - "description": "The ETag of the data source." + "description": "The search string used to query the remote SharePoint knowledge source." }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your datasource definition when you want full assurance that no one, not even Microsoft, can decrypt your data source definition. Once you have encrypted your data source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your datasource definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" - }, - "x-nullable": true + "filterExpressionAddOn": { + "type": "string", + "description": "The filter expression add-on for the retrieval activity." + } + } + }, + "KnowledgeBaseRemoteSharePointActivityRecord": { + "type": "object", + "description": "Represents a remote SharePoint retrieval activity record.", + "properties": { + "remoteSharePointArguments": { + "$ref": "#/definitions/KnowledgeBaseRemoteSharePointActivityArguments", + "description": "The remote SharePoint arguments for the retrieval activity." } }, - "required": [ - "name", - "type", - "credentials", - "container" + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" + } ], - "description": "Represents a datasource definition, which can be used to configure an indexer." + "x-ms-discriminator-value": "remoteSharePoint" }, - "ListDataSourcesResult": { + "KnowledgeBaseRemoteSharePointReference": { "type": "object", + "description": "Represents a remote SharePoint document reference.", "properties": { - "value": { - "x-ms-client-name": "DataSources", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexerDataSource" - }, - "description": "The datasources in the Search service." + "webUrl": { + "type": "string", + "format": "uri", + "description": "The url the reference data originated from." + }, + "searchSensitivityLabelInfo": { + "$ref": "#/definitions/SharePointSensitivityLabelInfo", + "description": "Information about the sensitivity label applied to the SharePoint document." } }, - "required": [ - "value" + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseReference" + } ], - "description": "Response from a List Datasources request. If successful, it includes the full definitions of all datasources." + "x-ms-discriminator-value": "remoteSharePoint" }, - "IndexingSchedule": { + "KnowledgeBaseRetrievalActivityRecord": { "type": "object", + "description": "Represents a retrieval activity record.", "properties": { - "interval": { + "type": { "type": "string", - "format": "duration", - "description": "The interval of time between indexer executions." + "description": "Discriminator property for KnowledgeBaseRetrievalActivityRecord." }, - "startTime": { + "knowledgeSourceName": { + "type": "string", + "description": "The knowledge source for the retrieval activity." + }, + "queryTime": { "type": "string", "format": "date-time", - "description": "The time when an indexer should start running." + "description": "The query time for this retrieval activity." + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of documents retrieved that were sufficiently relevant to pass the reranker threshold." } }, + "discriminator": "type", "required": [ - "interval" + "type" ], - "description": "Represents a schedule for indexer execution." + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + ] }, - "IndexingParameters": { + "KnowledgeBaseRetrievalPartialResponse": { "type": "object", + "description": "Partial retrieval response.", "properties": { - "batchSize": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The number of items that are read from the data source and indexed as a single batch in order to improve performance. The default depends on the data source type." + "body": { + "$ref": "#/definitions/KnowledgeBaseRetrievalResponse", + "description": "The partial retrieval response body." + } + }, + "required": [ + "body" + ] + }, + "KnowledgeBaseRetrievalRequest": { + "type": "object", + "description": "The input contract for the retrieval request.", + "properties": { + "messages": { + "type": "array", + "description": "A list of chat message style input.", + "items": { + "$ref": "#/definitions/KnowledgeBaseMessage" + } }, - "maxFailedItems": { + "intents": { + "type": "array", + "description": "A list of intended queries to execute without model query planning.", + "items": { + "$ref": "#/definitions/KnowledgeRetrievalIntent" + } + }, + "maxRuntimeInSeconds": { "type": "integer", "format": "int32", - "default": 0, - "x-nullable": true, - "description": "The maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0." + "description": "The maximum runtime in seconds." }, - "maxFailedItemsPerBatch": { + "maxOutputSize": { "type": "integer", "format": "int32", - "default": 0, - "x-nullable": true, - "description": "The maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0." + "description": "Limits the maximum size of the content in the output." }, - "configuration": { - "$ref": "#/definitions/IndexingParametersConfiguration" + "retrievalReasoningEffort": { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort", + "description": "The retrieval reasoning effort configuration." + }, + "includeActivity": { + "type": "boolean", + "description": "Indicates retrieval results should include activity information." + }, + "outputMode": { + "$ref": "#/definitions/KnowledgeRetrievalOutputMode", + "description": "The output configuration for this retrieval." + }, + "knowledgeSourceParams": { + "type": "array", + "description": "A list of runtime parameters for the knowledge sources.", + "items": { + "$ref": "#/definitions/KnowledgeSourceParams" + } } - }, - "description": "Represents parameters for indexer execution.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/create-indexer#parameters" } }, - "IndexingParametersConfiguration": { + "KnowledgeBaseRetrievalResponse": { "type": "object", + "description": "The output contract for the retrieval response.", "properties": { - "parsingMode": { - "$ref": "#/definitions/ParsingMode" + "response": { + "type": "array", + "description": "The response messages.", + "items": { + "$ref": "#/definitions/KnowledgeBaseMessage" + } }, - "excludedFileNameExtensions": { + "activity": { + "type": "array", + "description": "The activity records for tracking progress and billing implications.", + "items": { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + }, + "references": { + "type": "array", + "description": "The references for the retrieval data used in the response.", + "items": { + "$ref": "#/definitions/KnowledgeBaseReference" + } + } + } + }, + "KnowledgeBaseRetrievalSuccessResponse": { + "type": "object", + "description": "Successful retrieval response.", + "properties": { + "body": { + "$ref": "#/definitions/KnowledgeBaseRetrievalResponse", + "description": "The retrieval response body." + } + }, + "required": [ + "body" + ] + }, + "KnowledgeBaseSearchIndexActivityArguments": { + "type": "object", + "description": "Represents the arguments the search index retrieval activity was run with.", + "properties": { + "search": { "type": "string", - "default": "", - "description": "Comma-delimited list of filename extensions to ignore when processing from Azure blob storage. For example, you could exclude \".png, .mp4\" to skip over those files during indexing." + "description": "The search string used to query the search index." }, - "indexedFileNameExtensions": { + "filter": { "type": "string", - "default": "", - "description": "Comma-delimited list of filename extensions to select when processing from Azure blob storage. For example, you could focus indexing on specific application files \".docx, .pptx, .msg\" to specifically include those file types." + "description": "The filter string." }, - "failOnUnsupportedContentType": { - "type": "boolean", - "default": false, - "description": "For Azure blobs, set to false if you want to continue indexing when an unsupported content type is encountered, and you don't know all the content types (file extensions) in advance." + "sourceDataFields": { + "type": "array", + "description": "What fields were selected for search.", + "items": { + "$ref": "#/definitions/SearchIndexFieldReference" + } }, - "failOnUnprocessableDocument": { - "type": "boolean", - "default": false, - "description": "For Azure blobs, set to false if you want to continue indexing if a document fails indexing." + "searchFields": { + "type": "array", + "description": "What fields were searched against.", + "items": { + "$ref": "#/definitions/SearchIndexFieldReference" + } }, - "indexStorageMetadataOnlyForOversizedDocuments": { - "type": "boolean", - "default": false, - "description": "For Azure blobs, set this property to true to still index storage metadata for blob content that is too large to process. Oversized blobs are treated as errors by default. For limits on blob size, see https://learn.microsoft.com/azure/search/search-limits-quotas-capacity." + "semanticConfigurationName": { + "type": "string", + "description": "What semantic configuration was used from the search index." + } + } + }, + "KnowledgeBaseSearchIndexActivityRecord": { + "type": "object", + "description": "Represents a search index retrieval activity record.", + "properties": { + "searchIndexArguments": { + "$ref": "#/definitions/KnowledgeBaseSearchIndexActivityArguments", + "description": "The search index arguments for the retrieval activity." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" + } + ], + "x-ms-discriminator-value": "searchIndex" + }, + "KnowledgeBaseSearchIndexReference": { + "type": "object", + "description": "Represents an Azure Search document reference.", + "properties": { + "docKey": { + "type": "string", + "description": "The document key for the reference." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseReference" + } + ], + "x-ms-discriminator-value": "searchIndex" + }, + "KnowledgeBaseWebActivityArguments": { + "type": "object", + "description": "Represents the arguments the web retrieval activity was run with.", + "properties": { + "search": { + "type": "string", + "description": "The search string used to query the web." }, - "delimitedTextHeaders": { + "language": { "type": "string", - "description": "For CSV blobs, specifies a comma-delimited list of column headers, useful for mapping source fields to destination fields in an index." + "description": "The language for the retrieval activity." }, - "delimitedTextDelimiter": { + "market": { "type": "string", - "description": "For CSV blobs, specifies the end-of-line single-character delimiter for CSV files where each line starts a new document (for example, \"|\")." + "description": "The market for the retrieval activity." }, - "firstLineContainsHeaders": { - "type": "boolean", - "default": true, - "description": "For CSV blobs, indicates that the first (non-blank) line of each blob contains headers." - }, - "markdownParsingSubmode": { - "$ref": "#/definitions/MarkdownParsingSubmode", - "x-nullable": true - }, - "markdownHeaderDepth": { - "$ref": "#/definitions/MarkdownHeaderDepth", - "x-nullable": true + "count": { + "type": "integer", + "format": "int32", + "description": "The number of web results returned." }, - "documentRoot": { + "freshness": { "type": "string", - "description": "For JSON arrays, given a structured or semi-structured document, you can specify a path to the array using this property." - }, - "dataToExtract": { - "$ref": "#/definitions/DataToExtract" - }, - "imageAction": { - "$ref": "#/definitions/ImageAction" - }, - "allowSkillsetToReadFileData": { - "type": "boolean", - "default": false, - "description": "If true, will create a path //document//file_data that is an object representing the original file data downloaded from your blob data source. This allows you to pass the original file data to a custom skill for processing within the enrichment pipeline, or to the Document Extraction skill." - }, - "pdfTextRotationAlgorithm": { - "$ref": "#/definitions/PdfTextRotationAlgorithm" - }, - "executionEnvironment": { - "$ref": "#/definitions/ExecutionEnvironment" + "description": "The freshness for the retrieval activity." + } + } + }, + "KnowledgeBaseWebActivityRecord": { + "type": "object", + "description": "Represents a web retrieval activity record.", + "properties": { + "webArguments": { + "$ref": "#/definitions/KnowledgeBaseWebActivityArguments", + "description": "The web arguments for the retrieval activity." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" + } + ], + "x-ms-discriminator-value": "web" + }, + "KnowledgeBaseWebReference": { + "type": "object", + "description": "Represents a web document reference.", + "properties": { + "url": { + "type": "string", + "format": "uri", + "description": "The url the reference data originated from." }, - "queryTimeout": { + "title": { "type": "string", - "default": "00:05:00", - "description": "Increases the timeout beyond the 5-minute default for Azure SQL database data sources, specified in the format \"hh:mm:ss\"." + "description": "The title of the web document." } }, - "additionalProperties": true, - "description": "A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/create-indexer#parameters" - } + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseReference" + } + ], + "x-ms-discriminator-value": "web" + }, + "KnowledgeRetrievalIntent": { + "type": "object", + "description": "An intended query to execute without model query planning.", + "properties": { + "type": { + "$ref": "#/definitions/KnowledgeRetrievalIntentType", + "description": "The type of the intent." + } + }, + "discriminator": "type", + "required": [ + "type" + ] }, - "ParsingMode": { + "KnowledgeRetrievalIntentType": { "type": "string", + "description": "The kind of knowledge base configuration to use.", "enum": [ - "default", - "text", - "delimitedText", - "json", - "jsonArray", - "jsonLines", - "markdown" + "semantic" ], "x-ms-enum": { - "name": "BlobIndexerParsingMode", + "name": "KnowledgeRetrievalIntentType", "modelAsString": true, "values": [ { - "value": "default", - "name": "Default", - "description": "Set to default for normal file processing." - }, - { - "value": "text", - "name": "Text", - "description": "Set to text to improve indexing performance on plain text files in blob storage." - }, - { - "value": "delimitedText", - "name": "DelimitedText", - "description": "Set to delimitedText when blobs are plain CSV files." - }, - { - "value": "json", - "name": "Json", - "description": "Set to json to extract structured content from JSON files." - }, - { - "value": "jsonArray", - "name": "JsonArray", - "description": "Set to jsonArray to extract individual elements of a JSON array as separate documents." - }, - { - "value": "jsonLines", - "name": "JsonLines", - "description": "Set to jsonLines to extract individual JSON entities, separated by a new line, as separate documents." - }, - { - "value": "markdown", - "name": "Markdown", - "description": "Set to markdown to extract content from markdown files." + "name": "semantic", + "value": "semantic", + "description": "A natural language semantic query intent." } ] - }, - "default": "default", - "description": "Represents the parsing mode for indexing from an Azure blob data source." + } + }, + "KnowledgeRetrievalLowReasoningEffort": { + "type": "object", + "description": "Run knowledge retrieval with low reasoning effort.", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" + } + ], + "x-ms-discriminator-value": "low" + }, + "KnowledgeRetrievalMediumReasoningEffort": { + "type": "object", + "description": "Run knowledge retrieval with medium reasoning effort.", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" + } + ], + "x-ms-discriminator-value": "medium" + }, + "KnowledgeRetrievalMinimalReasoningEffort": { + "type": "object", + "description": "Run knowledge retrieval with minimal reasoning effort.", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" + } + ], + "x-ms-discriminator-value": "minimal" }, - "DataToExtract": { + "KnowledgeRetrievalOutputMode": { "type": "string", + "description": "The output configuration for this retrieval.", "enum": [ - "storageMetadata", - "allMetadata", - "contentAndMetadata" + "extractiveData", + "answerSynthesis" ], "x-ms-enum": { - "name": "BlobIndexerDataToExtract", + "name": "KnowledgeRetrievalOutputMode", "modelAsString": true, "values": [ { - "value": "storageMetadata", - "name": "StorageMetadata", - "description": "Indexes just the standard blob properties and user-specified metadata." - }, - { - "value": "allMetadata", - "name": "AllMetadata", - "description": "Extracts metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files are indexed)." + "name": "extractiveData", + "value": "extractiveData", + "description": "Return data from the knowledge sources directly without generative alteration." }, { - "value": "contentAndMetadata", - "name": "ContentAndMetadata", - "description": "Extracts all metadata and textual content from each blob." + "name": "answerSynthesis", + "value": "answerSynthesis", + "description": "Synthesize an answer for the response payload." } ] + } + }, + "KnowledgeRetrievalReasoningEffort": { + "type": "object", + "description": "Base type for reasoning effort.", + "properties": { + "kind": { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffortKind", + "description": "The kind of reasoning effort." + } }, - "default": "contentAndMetadata", - "description": "Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs." + "discriminator": "kind", + "required": [ + "kind" + ] }, - "ImageAction": { + "KnowledgeRetrievalReasoningEffortKind": { "type": "string", + "description": "The amount of effort to use during retrieval.", "enum": [ - "none", - "generateNormalizedImages", - "generateNormalizedImagePerPage" + "minimal", + "low", + "medium" ], "x-ms-enum": { - "name": "BlobIndexerImageAction", + "name": "KnowledgeRetrievalReasoningEffortKind", "modelAsString": true, "values": [ { - "value": "none", - "name": "None", - "description": "Ignores embedded images or image files in the data set. This is the default." + "name": "minimal", + "value": "minimal", + "description": "Does not perform any source selections, query planning, or iterative search." }, { - "value": "generateNormalizedImages", - "name": "GenerateNormalizedImages", - "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field. This action requires that \"dataToExtract\" is set to \"contentAndMetadata\". A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results. This information is generated for each image when you use this option." + "name": "low", + "value": "low", + "description": "Use low reasoning during retrieval." }, { - "value": "generateNormalizedImagePerPage", - "name": "GenerateNormalizedImagePerPage", - "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field, but treats PDF files differently in that each page will be rendered as an image and normalized accordingly, instead of extracting embedded images. Non-PDF file types will be treated the same as if \"generateNormalizedImages\" was set." + "name": "medium", + "value": "medium", + "description": "Use a moderate amount of reasoning during retrieval." } ] - }, - "default": "none", - "description": "Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer." + } }, - "PdfTextRotationAlgorithm": { - "type": "string", - "enum": [ - "none", - "detectAngles" + "KnowledgeRetrievalSemanticIntent": { + "type": "object", + "description": "A semantic query intent.", + "properties": { + "search": { + "type": "string", + "description": "The semantic query to execute" + } + }, + "required": [ + "search" ], - "x-ms-enum": { - "name": "BlobIndexerPDFTextRotationAlgorithm", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Leverages normal text extraction. This is the default." - }, - { - "value": "detectAngles", - "name": "DetectAngles", - "description": "May produce better and more readable text extraction from PDF files that have rotated text within them. Note that there may be a small performance speed impact when this parameter is used. This parameter only applies to PDF files, and only to PDFs with embedded text. If the rotated text appears within an embedded image in the PDF, this parameter does not apply." - } - ] + "allOf": [ + { + "$ref": "#/definitions/KnowledgeRetrievalIntent" + } + ], + "x-ms-discriminator-value": "semantic" + }, + "KnowledgeSource": { + "type": "object", + "description": "Represents a knowledge source definition.", + "properties": { + "name": { + "type": "string", + "description": "The name of the knowledge source." + }, + "description": { + "type": "string", + "description": "Optional user-defined description." + }, + "kind": { + "$ref": "#/definitions/KnowledgeSourceKind", + "description": "The type of the knowledge source." + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the knowledge source.", + "x-ms-client-name": "eTag" + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your knowledge source definition when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your knowledge source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your knowledge source definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + } }, - "default": "none", - "description": "Determines algorithm for text extraction from PDF files in Azure blob storage." + "discriminator": "kind", + "required": [ + "name", + "kind" + ] }, - "MarkdownParsingSubmode": { + "KnowledgeSourceAzureOpenAIVectorizer": { + "type": "object", + "description": "Specifies the Azure OpenAI resource used to vectorize a query string.", + "properties": { + "azureOpenAIParameters": { + "$ref": "#/definitions/AzureOpenAIVectorizerParameters", + "description": "Contains the parameters specific to Azure OpenAI embedding vectorization." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceVectorizer" + } + ], + "x-ms-discriminator-value": "azureOpenAI" + }, + "KnowledgeSourceContentExtractionMode": { "type": "string", + "description": "Optional content extraction mode. Default is 'minimal'.", "enum": [ - "oneToMany", - "oneToOne" + "minimal", + "standard" ], "x-ms-enum": { - "name": "MarkdownParsingSubmode", + "name": "KnowledgeSourceContentExtractionMode", "modelAsString": true, "values": [ { - "value": "oneToMany", - "name": "OneToMany", - "description": "Indicates that each section of the markdown file (up to a specified depth) will be parsed into individual search documents. This can result in a single markdown file producing multiple search documents. This is the default sub-mode." + "name": "Minimal", + "value": "minimal", + "description": "Extracts only essential metadata while deferring most content processing." }, { - "value": "oneToOne", - "name": "OneToOne", - "description": "Indicates that each markdown file will be parsed into a single search document." + "name": "Standard", + "value": "standard", + "description": "Performs the full default content extraction pipeline." } ] - }, - "default": "oneToMany", - "description": "Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`." + } }, - "MarkdownHeaderDepth": { - "type": "string", - "enum": [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6" - ], - "x-ms-enum": { - "name": "MarkdownHeaderDepth", + "KnowledgeSourceIngestionParameters": { + "type": "object", + "description": "Consolidates all general ingestion settings for knowledge sources.", + "properties": { + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "An explicit identity to use for this knowledge source.", + "x-nullable": true + }, + "embeddingModel": { + "$ref": "#/definitions/KnowledgeSourceVectorizer", + "description": "Optional vectorizer configuration for vectorizing content.", + "x-nullable": true + }, + "chatCompletionModel": { + "$ref": "#/definitions/KnowledgeBaseModel", + "description": "Optional chat completion model for image verbalization or context extraction.", + "x-nullable": true + }, + "disableImageVerbalization": { + "type": "boolean", + "description": "Indicates whether image verbalization should be disabled. Default is false.", + "default": false + }, + "ingestionSchedule": { + "$ref": "#/definitions/IndexingSchedule", + "description": "Optional schedule for data ingestion.", + "x-nullable": true + }, + "ingestionPermissionOptions": { + "type": "array", + "description": "Optional list of permission types to ingest together with document content. If specified, it will set the indexer permission options for the data source.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/KnowledgeSourceIngestionPermissionOption" + } + }, + "contentExtractionMode": { + "type": "string", + "description": "Optional content extraction mode. Default is 'minimal'.", + "default": "minimal", + "enum": [ + "minimal", + "standard" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "Minimal", + "value": "minimal", + "description": "Extracts only essential metadata while deferring most content processing." + }, + { + "name": "Standard", + "value": "standard", + "description": "Performs the full default content extraction pipeline." + } + ] + }, + "x-nullable": true + }, + "aiServices": { + "$ref": "#/definitions/AIServices", + "description": "Optional AI Services configuration for content processing.", + "x-nullable": true + } + } + }, + "KnowledgeSourceIngestionPermissionOption": { + "type": "string", + "description": "Permission types to ingest together with document content.", + "enum": [ + "userIds", + "groupIds", + "rbacScope" + ], + "x-ms-enum": { + "name": "KnowledgeSourceIngestionPermissionOption", "modelAsString": true, "values": [ { - "value": "h1", - "name": "h1", - "description": "Indicates that headers up to a level of h1 will be considered while grouping markdown content." - }, - { - "value": "h2", - "name": "h2", - "description": "Indicates that headers up to a level of h2 will be considered while grouping markdown content." - }, - { - "value": "h3", - "name": "h3", - "description": "Indicates that headers up to a level of h3 will be considered while grouping markdown content." - }, - { - "value": "h4", - "name": "h4", - "description": "Indicates that headers up to a level of h4 will be considered while grouping markdown content." + "name": "UserIds", + "value": "userIds", + "description": "Ingest explicit user identifiers alongside document content." }, { - "value": "h5", - "name": "h5", - "description": "Indicates that headers up to a level of h5 will be considered while grouping markdown content." + "name": "GroupIds", + "value": "groupIds", + "description": "Ingest group identifiers alongside document content." }, { - "value": "h6", - "name": "h6", - "description": "Indicates that headers up to a level of h6 will be considered while grouping markdown content. This is the default." + "name": "RbacScope", + "value": "rbacScope", + "description": "Ingest RBAC scope information alongside document content." } ] - }, - "default": "h6", - "description": "Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`." + } }, - "ExecutionEnvironment": { + "KnowledgeSourceKind": { "type": "string", + "description": "The kind of the knowledge source.", "enum": [ - "standard", - "private" + "searchIndex", + "azureBlob", + "indexedSharePoint", + "indexedOneLake", + "web", + "remoteSharePoint" ], "x-ms-enum": { - "name": "IndexerExecutionEnvironment", + "name": "KnowledgeSourceKind", "modelAsString": true, "values": [ { - "value": "standard", - "name": "standard", - "description": "Indicates that the search service can determine where the indexer should execute. This is the default environment when nothing is specified and is the recommended value." + "name": "SearchIndex", + "value": "searchIndex", + "description": "A knowledge source that reads data from a Search Index." }, { - "value": "private", - "name": "private", - "description": "Indicates that the indexer should run with the environment provisioned specifically for the search service. This should only be specified as the execution environment if the indexer needs to access resources securely over shared private link resources." + "name": "AzureBlob", + "value": "azureBlob", + "description": "A knowledge source that read and ingest data from Azure Blob Storage to a Search Index." + }, + { + "name": "IndexedSharePoint", + "value": "indexedSharePoint", + "description": "A knowledge source that reads data from indexed SharePoint." + }, + { + "name": "IndexedOneLake", + "value": "indexedOneLake", + "description": "A knowledge source that reads data from indexed OneLake." + }, + { + "name": "Web", + "value": "web", + "description": "A knowledge source that reads data from the web." + }, + { + "name": "RemoteSharePoint", + "value": "remoteSharePoint", + "description": "A knowledge source that reads data from remote SharePoint." } ] + } + }, + "KnowledgeSourceParams": { + "type": "object", + "description": "Base type for knowledge source runtime parameters.", + "properties": { + "knowledgeSourceName": { + "type": "string", + "description": "The name of the index the params apply to." + }, + "includeReferences": { + "type": "boolean", + "description": "Indicates whether references should be included for data retrieved from this source." + }, + "includeReferenceSourceData": { + "type": "boolean", + "description": "Indicates whether references should include the structured data obtained during retrieval in their payload." + }, + "alwaysQuerySource": { + "type": "boolean", + "description": "Indicates that this knowledge source should bypass source selection and always be queried at retrieval time." + }, + "rerankerThreshold": { + "type": "number", + "format": "float", + "description": "The reranker threshold all retrieved documents must meet to be included in the response." + }, + "kind": { + "$ref": "#/definitions/KnowledgeSourceKind", + "description": "The type of the knowledge source." + } }, - "default": "standard", - "description": "Specifies the environment in which the indexer should execute." + "discriminator": "kind", + "required": [ + "knowledgeSourceName", + "kind" + ] }, - "FieldMappingFunction": { + "KnowledgeSourceReference": { "type": "object", + "description": "Reference to a knowledge source.", "properties": { "name": { "type": "string", - "description": "The name of the field mapping function." - }, - "parameters": { - "type": "object", - "x-nullable": true, - "additionalProperties": true, - "description": "A dictionary of parameter name/value pairs to pass to the function. Each value must be of a primitive type." + "description": "The name of the knowledge source." } }, "required": [ "name" - ], - "description": "Represents a function that transforms a value from a data source before indexing.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-indexer-field-mappings" - } + ] }, - "FieldMapping": { + "KnowledgeSourceStatistics": { "type": "object", + "description": "Statistical information about knowledge source synchronization history.", "properties": { - "sourceFieldName": { - "type": "string", - "description": "The name of the field in the data source." + "totalSynchronization": { + "type": "integer", + "format": "int32", + "description": "Total number of synchronizations." }, - "targetFieldName": { + "averageSynchronizationDuration": { "type": "string", - "description": "The name of the target field in the index. Same as the source field name by default." + "description": "Average synchronization duration in HH:MM:SS format." }, - "mappingFunction": { - "$ref": "#/definitions/FieldMappingFunction", - "x-nullable": true, - "description": "A function to apply to each source field value before indexing." + "averageItemsProcessedPerSynchronization": { + "type": "integer", + "format": "int32", + "description": "Average items processed per synchronization." } }, "required": [ - "sourceFieldName" - ], - "description": "Defines a mapping between a field in a data source and a target field in an index.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-indexer-field-mappings" - } + "totalSynchronization", + "averageSynchronizationDuration", + "averageItemsProcessedPerSynchronization" + ] }, - "SearchIndexer": { + "KnowledgeSourceStatus": { "type": "object", + "description": "Represents the status and synchronization history of a knowledge source.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name of the indexer." - }, - "description": { - "type": "string", - "description": "The description of the indexer." - }, - "dataSourceName": { - "type": "string", - "description": "The name of the datasource from which this indexer reads data." - }, - "skillsetName": { - "type": "string", - "description": "The name of the skillset executing with this indexer." + "synchronizationStatus": { + "$ref": "#/definitions/KnowledgeSourceSynchronizationStatus", + "description": "The current synchronization status." }, - "targetIndexName": { + "synchronizationInterval": { "type": "string", - "description": "The name of the index to which this indexer writes data." - }, - "schedule": { - "$ref": "#/definitions/IndexingSchedule", - "x-nullable": true, - "description": "The schedule for this indexer." - }, - "parameters": { - "$ref": "#/definitions/IndexingParameters", - "x-nullable": true, - "description": "Parameters for indexer execution." + "description": "The synchronization interval (e.g., '1d' for daily). Null if no schedule is configured.", + "x-nullable": true }, - "fieldMappings": { - "type": "array", - "items": { - "$ref": "#/definitions/FieldMapping" - }, - "description": "Defines mappings between fields in the data source and corresponding target fields in the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-indexer-field-mappings" - } + "currentSynchronizationState": { + "$ref": "#/definitions/SynchronizationState", + "description": "Current synchronization state that spans multiple indexer runs.", + "x-nullable": true }, - "outputFieldMappings": { - "type": "array", - "items": { - "$ref": "#/definitions/FieldMapping" - }, - "description": "Output field mappings are applied after enrichment and immediately before indexing.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-indexer-field-mappings" - } + "lastSynchronizationState": { + "$ref": "#/definitions/CompletedSynchronizationState", + "description": "Details of the last completed synchronization. Null on first sync.", + "x-nullable": true }, - "disabled": { - "x-ms-client-name": "IsDisabled", - "type": "boolean", - "default": false, - "x-nullable": true, - "description": "A value indicating whether the indexer is disabled. Default is false." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the indexer." - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your indexer definition (as well as indexer execution status) when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your indexer definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your indexer definition (and indexer execution status) will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" - }, + "statistics": { + "$ref": "#/definitions/KnowledgeSourceStatistics", + "description": "Statistical information about the knowledge source synchronization history. Null on first sync.", "x-nullable": true - }, - "cache": { - "$ref": "#/definitions/SearchIndexerCache", - "x-nullable": true, - "description": "Adds caching to an enrichment pipeline to allow for incremental modification steps without having to rebuild the index every time.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-howto-incremental-index" - } } }, "required": [ - "name", - "dataSourceName", - "targetIndexName" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Indexer-operations" - }, - "description": "Represents an indexer." + "synchronizationStatus" + ] }, - "ListIndexersResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Indexers", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexer" - }, - "description": "The indexers in the Search service." - } - }, - "required": [ - "value" + "KnowledgeSourceSynchronizationStatus": { + "type": "string", + "description": "The current synchronization status of the knowledge source.", + "enum": [ + "creating", + "active", + "deleting" ], - "description": "Response from a List Indexers request. If successful, it includes the full definitions of all indexers." + "x-ms-enum": { + "name": "KnowledgeSourceSynchronizationStatus", + "modelAsString": true, + "values": [ + { + "name": "Creating", + "value": "creating", + "description": "The knowledge source is being provisioned." + }, + { + "name": "Active", + "value": "active", + "description": "The knowledge source is active and synchronization runs are occurring." + }, + { + "name": "Deleting", + "value": "deleting", + "description": "The knowledge source is being deleted and synchronization is paused." + } + ] + } }, - "SearchIndexerError": { + "KnowledgeSourceVectorizer": { "type": "object", + "description": "Specifies the vectorization method to be used for knowledge source embedding model.", "properties": { - "key": { - "type": "string", - "readOnly": true, - "description": "The key of the item for which indexing failed." - }, - "errorMessage": { - "type": "string", - "readOnly": true, - "description": "The message describing the error that occurred while processing the item." - }, - "statusCode": { - "type": "integer", - "format": "int32", - "x-nullable": false, - "readOnly": true, - "description": "The status code indicating why the indexing operation failed. Possible values include: 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy." - }, - "name": { - "type": "string", - "readOnly": true, - "description": "The name of the source at which the error originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available." - }, - "details": { - "type": "string", - "readOnly": true, - "description": "Additional, verbose details about the error to assist in debugging the indexer. This may not be always available." - }, - "documentationLink": { - "type": "string", - "readOnly": true, - "description": "A link to a troubleshooting guide for these classes of errors. This may not be always available." + "kind": { + "$ref": "#/definitions/VectorSearchVectorizerKind", + "description": "The name of the kind of vectorization method being configured for use with vector search." } }, + "discriminator": "kind", "required": [ - "errorMessage", - "statusCode" - ], - "description": "Represents an item- or document-level indexing error." + "kind" + ] }, - "SearchIndexerWarning": { + "LanguageDetectionSkill": { "type": "object", + "description": "A skill that detects the language of input text and reports a single language code for every document submitted on the request. The language code is paired with a score indicating the confidence of the analysis.", "properties": { - "key": { - "type": "string", - "readOnly": true, - "description": "The key of the item which generated a warning." - }, - "message": { - "type": "string", - "readOnly": true, - "description": "The message describing the warning that occurred while processing the item." - }, - "name": { - "type": "string", - "readOnly": true, - "description": "The name of the source at which the warning originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available." - }, - "details": { + "defaultCountryHint": { "type": "string", - "readOnly": true, - "description": "Additional, verbose details about the warning to assist in debugging the indexer. This may not be always available." + "description": "A country code to use as a hint to the language detection model if it cannot disambiguate the language.", + "x-nullable": true }, - "documentationLink": { + "modelVersion": { "type": "string", - "readOnly": true, - "description": "A link to a troubleshooting guide for these classes of warnings. This may not be always available." + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true } }, - "required": [ - "message" + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } ], - "description": "Represents an item-level warning." + "x-ms-discriminator-value": "#Microsoft.Skills.Text.LanguageDetectionSkill" }, - "IndexerExecutionResult": { + "LengthTokenFilter": { "type": "object", + "description": "Removes words that are too long or too short. This token filter is implemented using Apache Lucene.", "properties": { - "status": { - "$ref": "#/definitions/IndexerExecutionStatus", - "readOnly": true, - "description": "The outcome of this indexer execution." - }, - "statusDetail": { - "$ref": "#/definitions/IndexerExecutionStatusDetail", - "readOnly": true, - "description": "The outcome of this indexer execution." - }, - "mode": { - "$ref": "#/definitions/IndexingMode", - "readOnly": true, - "description": "The mode the indexer is running in." - }, - "errorMessage": { - "type": "string", - "readOnly": true, - "description": "The error message indicating the top-level error, if any." - }, - "startTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The start time of this indexer execution." - }, - "endTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "x-nullable": true, - "description": "The end time of this indexer execution, if the execution has already completed." - }, - "errors": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexerError" - }, - "description": "The item-level indexing errors." - }, - "warnings": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexerWarning" - }, - "description": "The item-level indexing warnings." - }, - "itemsProcessed": { - "x-ms-client-name": "ItemCount", + "min": { "type": "integer", "format": "int32", - "x-nullable": false, - "readOnly": true, - "description": "The number of items that were processed during this indexer execution. This includes both successfully processed items and items where indexing was attempted but failed." + "description": "The minimum length in characters. Default is 0. Maximum is 300. Must be less than the value of max.", + "default": 0, + "maximum": 300 }, - "itemsFailed": { - "x-ms-client-name": "FailedItemCount", + "max": { "type": "integer", "format": "int32", - "x-nullable": false, - "readOnly": true, - "description": "The number of items that failed to be indexed during this indexer execution." - }, - "initialTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state with which an indexer execution started." - }, - "finalTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state with which an indexer execution finished." + "description": "The maximum length in characters. Default and maximum is 300.", + "default": 300, + "maximum": 300 } }, - "required": [ - "status", - "errors", - "warnings", - "itemsProcessed", - "itemsFailed" - ], - "description": "Represents the result of an individual indexer execution." - }, - "IndexerExecutionStatus": { - "type": "string", - "enum": [ - "transientFailure", - "success", - "inProgress", - "reset" + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } ], - "x-ms-enum": { - "name": "IndexerExecutionStatus", - "modelAsString": false, - "values": [ - { - "value": "transientFailure", - "name": "TransientFailure", - "description": "An indexer invocation has failed, but the failure may be transient. Indexer invocations will continue per schedule." - }, - { - "value": "success", - "name": "Success", - "description": "Indexer execution completed successfully." - }, - { - "value": "inProgress", - "name": "InProgress", - "description": "Indexer execution is in progress." - }, - { - "value": "reset", - "name": "Reset", - "description": "Indexer has been reset." - } - ] - }, - "x-nullable": false, - "description": "Represents the status of an individual indexer execution." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.LengthTokenFilter" }, - "SearchIndexerStatus": { + "LexicalAnalyzer": { "type": "object", + "description": "Base type for analyzers.", "properties": { - "name": { + "@odata.type": { "type": "string", - "readOnly": true, - "description": "The name of the indexer." - }, - "status": { - "$ref": "#/definitions/IndexerStatus", - "readOnly": true, - "description": "Overall indexer status." - }, - "runtime": { - "$ref": "#/definitions/IndexerRuntime", - "readOnly": true, - "description": "Snapshot of the indexer’s cumulative runtime consumption for the service over the current UTC period." - }, - "lastResult": { - "$ref": "#/definitions/IndexerExecutionResult", - "readOnly": true, - "description": "The result of the most recent or an in-progress indexer execution." - }, - "executionHistory": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/IndexerExecutionResult" - }, - "description": "History of the recent indexer executions, sorted in reverse chronological order." - }, - "limits": { - "$ref": "#/definitions/SearchIndexerLimits", - "readOnly": true, - "description": "The execution limits for the indexer." + "description": "The discriminator for derived types." }, - "currentState": { - "$ref": "#/definitions/IndexerCurrentState", - "readOnly": true, - "description": "All of the state that defines and dictates the indexer's current execution." + "name": { + "type": "string", + "description": "The name of the analyzer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." } }, + "discriminator": "@odata.type", "required": [ - "name", - "status", - "runtime", - "executionHistory", - "limits" - ], - "description": "Represents the current status and execution history of an indexer." + "@odata.type", + "name" + ] }, - "IndexerStatus": { + "LexicalAnalyzerName": { "type": "string", + "description": "Defines the names of all text analyzers supported by the search engine.", "enum": [ - "unknown", - "error", - "running" + "ar.microsoft", + "ar.lucene", + "hy.lucene", + "bn.microsoft", + "eu.lucene", + "bg.microsoft", + "bg.lucene", + "ca.microsoft", + "ca.lucene", + "zh-Hans.microsoft", + "zh-Hans.lucene", + "zh-Hant.microsoft", + "zh-Hant.lucene", + "hr.microsoft", + "cs.microsoft", + "cs.lucene", + "da.microsoft", + "da.lucene", + "nl.microsoft", + "nl.lucene", + "en.microsoft", + "en.lucene", + "et.microsoft", + "fi.microsoft", + "fi.lucene", + "fr.microsoft", + "fr.lucene", + "gl.lucene", + "de.microsoft", + "de.lucene", + "el.microsoft", + "el.lucene", + "gu.microsoft", + "he.microsoft", + "hi.microsoft", + "hi.lucene", + "hu.microsoft", + "hu.lucene", + "is.microsoft", + "id.microsoft", + "id.lucene", + "ga.lucene", + "it.microsoft", + "it.lucene", + "ja.microsoft", + "ja.lucene", + "kn.microsoft", + "ko.microsoft", + "ko.lucene", + "lv.microsoft", + "lv.lucene", + "lt.microsoft", + "ml.microsoft", + "ms.microsoft", + "mr.microsoft", + "nb.microsoft", + "no.lucene", + "fa.lucene", + "pl.microsoft", + "pl.lucene", + "pt-BR.microsoft", + "pt-BR.lucene", + "pt-PT.microsoft", + "pt-PT.lucene", + "pa.microsoft", + "ro.microsoft", + "ro.lucene", + "ru.microsoft", + "ru.lucene", + "sr-cyrillic.microsoft", + "sr-latin.microsoft", + "sk.microsoft", + "sl.microsoft", + "es.microsoft", + "es.lucene", + "sv.microsoft", + "sv.lucene", + "ta.microsoft", + "te.microsoft", + "th.microsoft", + "th.lucene", + "tr.microsoft", + "tr.lucene", + "uk.microsoft", + "ur.microsoft", + "vi.microsoft", + "standard.lucene", + "standardasciifolding.lucene", + "keyword", + "pattern", + "simple", + "stop", + "whitespace" ], "x-ms-enum": { - "name": "IndexerStatus", - "modelAsString": false, + "name": "LexicalAnalyzerName", + "modelAsString": true, "values": [ { - "value": "unknown", - "name": "Unknown", - "description": "Indicates that the indexer is in an unknown state." + "name": "ArMicrosoft", + "value": "ar.microsoft", + "description": "Microsoft analyzer for Arabic." }, { - "value": "error", - "name": "Error", - "description": "Indicates that the indexer experienced an error that cannot be corrected without human intervention." + "name": "ArLucene", + "value": "ar.lucene", + "description": "Lucene analyzer for Arabic." }, { - "value": "running", - "name": "Running", - "description": "Indicates that the indexer is running normally." - } - ] - }, - "x-nullable": false, - "description": "Represents the overall indexer status." - }, - "IndexerRuntime": { - "type": "object", - "properties": { - "usedSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "description": "Cumulative runtime of the indexer from the beginningTime to endingTime, in seconds." - }, - "remainingSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds." - }, - "beginningTime": { - "type": "string", - "format": "date-time", - "x-nullable": false, - "description": "Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." - }, - "endingTime": { - "type": "string", - "format": "date-time", - "x-nullable": false, - "description": "End UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." - } - }, - "required": [ - "usedSeconds", - "beginningTime", - "endingTime" - ], - "description": "Represents the indexer's cumulative runtime consumption in the service." - }, - "IndexerExecutionStatusDetail": { - "type": "string", - "enum": [ - "resetDocs", - "resync" - ], - "x-ms-enum": { - "name": "IndexerExecutionStatusDetail", - "modelAsString": true, - "values": [ - { - "value": "resetDocs", - "name": "ResetDocs", - "description": "Indicates that the reset that occurred was for a call to ResetDocs." + "name": "HyLucene", + "value": "hy.lucene", + "description": "Lucene analyzer for Armenian." }, { - "value": "resync", - "name": "Resync", - "description": "Indicates to selectively resync based on option(s) from data source." - } - ] - }, - "description": "Details the status of an individual indexer execution." - }, - "IndexerCurrentState": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/definitions/IndexingMode", - "readOnly": true, - "description": "The mode the indexer is running in." - }, - "allDocsInitialTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state used when indexing starts on all documents in the datasource." - }, - "allDocsFinalTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state value when indexing finishes on all documents in the datasource." - }, - "resetDocsInitialTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state used when indexing starts on select, reset documents in the datasource." - }, - "resetDocsFinalTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state value when indexing finishes on select, reset documents in the datasource." - }, - "resetDocumentKeys": { - "type": "array", - "items": { - "type": "string" + "name": "BnMicrosoft", + "value": "bn.microsoft", + "description": "Microsoft analyzer for Bangla." }, - "readOnly": true, - "description": "The list of document keys that have been reset. The document key is the document's unique identifier for the data in the search index. The indexer will prioritize selectively re-ingesting these keys." - }, - "resetDatasourceDocumentIds": { - "type": "array", - "items": { - "type": "string" + { + "name": "EuLucene", + "value": "eu.lucene", + "description": "Lucene analyzer for Basque." }, - "readOnly": true, - "description": "The list of datasource document ids that have been reset. The datasource document id is the unique identifier for the data in the datasource. The indexer will prioritize selectively re-ingesting these ids." - }, - "resyncInitialTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state used when indexing starts on selective options from the datasource." - }, - "resyncFinalTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state value when indexing finishes on selective options from the datasource." - } - }, - "description": "Represents all of the state that defines and dictates the indexer's current execution." - }, - "IndexingMode": { - "type": "string", - "enum": [ - "indexingAllDocs", - "indexingResetDocs", - "indexingResync" - ], - "x-ms-enum": { - "name": "IndexingMode", - "modelAsString": true, - "values": [ { - "value": "indexingAllDocs", - "name": "IndexingAllDocs", - "description": "The indexer is indexing all documents in the datasource." + "name": "BgMicrosoft", + "value": "bg.microsoft", + "description": "Microsoft analyzer for Bulgarian." }, { - "value": "indexingResetDocs", - "name": "indexingResetDocs", - "description": "The indexer is indexing selective, reset documents in the datasource. The documents being indexed are defined on indexer status." + "name": "BgLucene", + "value": "bg.lucene", + "description": "Lucene analyzer for Bulgarian." }, { - "value": "indexingResync", - "name": "IndexingResync", - "description": "The indexer is resyncing and indexing selective option(s) from the datasource." - } - ] - }, - "x-nullable": false, - "description": "Represents the mode the indexer is executing in." - }, - "SearchIndexerLimits": { - "type": "object", - "properties": { - "maxRunTime": { - "type": "string", - "format": "duration", - "readOnly": true, - "description": "The maximum duration that the indexer is permitted to run for one execution." - }, - "maxDocumentExtractionSize": { - "type": "number", - "format": "int64", - "readOnly": true, - "description": "The maximum size of a document, in bytes, which will be considered valid for indexing." - }, - "maxDocumentContentCharactersToExtract": { - "type": "number", - "format": "int64", - "readOnly": true, - "description": "The maximum number of characters that will be extracted from a document picked up for indexing." - } - } - }, - "SearchField": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the field, which must be unique within the fields collection of the index or parent field.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - } - }, - "type": { - "$ref": "#/definitions/SearchFieldDataType", - "description": "The data type of the field.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/supported-data-types" - } - }, - "key": { - "type": "boolean", - "description": "A value indicating whether the field uniquely identifies documents in the index. Exactly one top-level field in each index must be chosen as the key field and it must be of type Edm.String. Key fields can be used to look up documents directly and update or delete specific documents. Default is false for simple fields and null for complex fields." - }, - "retrievable": { - "type": "boolean", - "description": "A value indicating whether the field can be returned in a search result. You can disable this option if you want to use a field (for example, margin) as a filter, sorting, or scoring mechanism but do not want the field to be visible to the end user. This property must be true for key fields, and it must be null for complex fields. This property can be changed on existing fields. Enabling this property does not cause any increase in index storage requirements. Default is true for simple fields, false for vector fields, and null for complex fields." - }, - "stored": { - "type": "boolean", - "description": "An immutable value indicating whether the field will be persisted separately on disk to be returned in a search result. You can disable this option if you don't plan to return the field contents in a search response to save on storage overhead. This can only be set during index creation and only for vector fields. This property cannot be changed for existing fields or set as false for new fields. If this property is set as false, the property 'retrievable' must also be set to false. This property must be true or unset for key fields, for new fields, and for non-vector fields, and it must be null for complex fields. Disabling this property will reduce index storage requirements. The default is true for vector fields." - }, - "searchable": { - "type": "boolean", - "description": "A value indicating whether the field is full-text searchable. This means it will undergo analysis such as word-breaking during indexing. If you set a searchable field to a value like \"sunny day\", internally it will be split into the individual tokens \"sunny\" and \"day\". This enables full-text searches for these terms. Fields of type Edm.String or Collection(Edm.String) are searchable by default. This property must be false for simple fields of other non-string data types, and it must be null for complex fields. Note: searchable fields consume extra space in your index to accommodate additional tokenized versions of the field value for full-text searches. If you want to save space in your index and you don't need a field to be included in searches, set searchable to false." - }, - "filterable": { - "type": "boolean", - "description": "A value indicating whether to enable the field to be referenced in $filter queries. filterable differs from searchable in how strings are handled. Fields of type Edm.String or Collection(Edm.String) that are filterable do not undergo word-breaking, so comparisons are for exact matches only. For example, if you set such a field f to \"sunny day\", $filter=f eq 'sunny' will find no matches, but $filter=f eq 'sunny day' will. This property must be null for complex fields. Default is true for simple fields and null for complex fields." - }, - "sortable": { - "type": "boolean", - "description": "A value indicating whether to enable the field to be referenced in $orderby expressions. By default, the search engine sorts results by score, but in many experiences users will want to sort by fields in the documents. A simple field can be sortable only if it is single-valued (it has a single value in the scope of the parent document). Simple collection fields cannot be sortable, since they are multi-valued. Simple sub-fields of complex collections are also multi-valued, and therefore cannot be sortable. This is true whether it's an immediate parent field, or an ancestor field, that's the complex collection. Complex fields cannot be sortable and the sortable property must be null for such fields. The default for sortable is true for single-valued simple fields, false for multi-valued simple fields, and null for complex fields." - }, - "facetable": { - "type": "boolean", - "description": "A value indicating whether to enable the field to be referenced in facet queries. Typically used in a presentation of search results that includes hit count by category (for example, search for digital cameras and see hits by brand, by megapixels, by price, and so on). This property must be null for complex fields. Fields of type Edm.GeographyPoint or Collection(Edm.GeographyPoint) cannot be facetable. Default is true for all other simple fields." - }, - "permissionFilter": { - "type": "string", - "enum": [ - "userIds", - "groupIds", - "rbacScope" - ], - "description": "A value indicating whether the field should be used as a permission filter.", - "x-nullable": true, - "x-ms-enum": { - "name": "PermissionFilter", - "modelAsString": true, - "values": [ - { - "value": "userIds", - "name": "UserIds", - "description": "Field represents user IDs that should be used to filter document access on queries." - }, - { - "value": "groupIds", - "name": "GroupIds", - "description": "Field represents group IDs that should be used to filter document access on queries." - }, - { - "value": "rbacScope", - "name": "RbacScope", - "description": "Field represents an RBAC scope that should be used to filter document access on queries." - } - ] - } - }, - "sensitivityLabel": { - "type": "boolean", - "description": "A value indicating whether the field should be used for sensitivity label filtering. This enables document-level filtering based on Microsoft Purview sensitivity labels.", - "x-nullable": true - }, - "analyzer": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Language-support" + "name": "CaMicrosoft", + "value": "ca.microsoft", + "description": "Microsoft analyzer for Catalan." }, - "$ref": "#/definitions/LexicalAnalyzerName", - "description": "The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.", - "x-nullable": true - }, - "searchAnalyzer": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Language-support" + { + "name": "CaLucene", + "value": "ca.lucene", + "description": "Lucene analyzer for Catalan." }, - "$ref": "#/definitions/LexicalAnalyzerName", - "description": "The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields.", - "x-nullable": true - }, - "indexAnalyzer": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Language-support" + { + "name": "ZhHansMicrosoft", + "value": "zh-Hans.microsoft", + "description": "Microsoft analyzer for Chinese (Simplified)." }, - "$ref": "#/definitions/LexicalAnalyzerName", - "description": "The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.", - "x-nullable": true - }, - "normalizer": { - "externalDocs": { - "url": "https://aka.ms/azs-normalizers" + { + "name": "ZhHansLucene", + "value": "zh-Hans.lucene", + "description": "Lucene analyzer for Chinese (Simplified)." }, - "$ref": "#/definitions/LexicalNormalizerName", - "description": "The name of the normalizer to use for the field. This option can be used only with fields with filterable, sortable, or facetable enabled. Once the normalizer is chosen, it cannot be changed for the field. Must be null for complex fields.", - "x-nullable": true - }, - "dimensions": { - "x-ms-client-name": "vectorSearchDimensions", - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 2, - "maximum": 4096, - "description": "The dimensionality of the vector field." - }, - "vectorSearchProfile": { - "x-ms-client-name": "vectorSearchProfileName", - "type": "string", - "x-nullable": true, - "description": "The name of the vector search profile that specifies the algorithm and vectorizer to use when searching the vector field." - }, - "vectorEncoding": { - "x-ms-client-name": "VectorEncodingFormat", - "$ref": "#/definitions/VectorEncodingFormat", - "description": "The encoding format to interpret the field contents.", - "x-nullable": true - }, - "synonymMaps": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Synonym-Map-operations" + { + "name": "ZhHantMicrosoft", + "value": "zh-Hant.microsoft", + "description": "Microsoft analyzer for Chinese (Traditional)." }, - "type": "array", - "items": { - "type": "string" + { + "name": "ZhHantLucene", + "value": "zh-Hant.lucene", + "description": "Lucene analyzer for Chinese (Traditional)." }, - "description": "A list of the names of synonym maps to associate with this field. This option can be used only with searchable fields. Currently only one synonym map per field is supported. Assigning a synonym map to a field ensures that query terms targeting that field are expanded at query-time using the rules in the synonym map. This attribute can be changed on existing fields. Must be null or an empty collection for complex fields." - }, - "fields": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchField" + { + "name": "HrMicrosoft", + "value": "hr.microsoft", + "description": "Microsoft analyzer for Croatian." }, - "description": "A list of sub-fields if this is a field of type Edm.ComplexType or Collection(Edm.ComplexType). Must be null or empty for simple fields." - } - }, - "required": [ - "name", - "type" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Index" - }, - "description": "Represents a field in an index definition, which describes the name, data type, and search behavior of a field." - }, - "TextWeights": { - "type": "object", - "properties": { - "weights": { - "type": "object", - "additionalProperties": { - "type": "number", - "format": "double", - "x-nullable": false + { + "name": "CsMicrosoft", + "value": "cs.microsoft", + "description": "Microsoft analyzer for Czech." }, - "description": "The dictionary of per-field weights to boost document scoring. The keys are field names and the values are the weights for each field." - } - }, - "required": [ - "weights" - ], - "description": "Defines weights on index fields for which matches should boost scoring in search queries." - }, - "ScoringFunction": { - "type": "object", - "discriminator": "type", - "properties": { - "type": { - "type": "string", - "description": "Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case." - }, - "fieldName": { - "type": "string", - "description": "The name of the field used as input to the scoring function." - }, - "boost": { - "type": "number", - "format": "double", - "description": "A multiplier for the raw score. Must be a positive number not equal to 1.0." - }, - "interpolation": { - "$ref": "#/definitions/ScoringFunctionInterpolation", - "description": "A value indicating how boosting will be interpolated across document scores; defaults to \"Linear\"." - } - }, - "required": [ - "type", - "fieldName", - "boost" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Base type for functions that can modify document scores during ranking." - }, - "DistanceScoringFunction": { - "type": "object", - "x-ms-discriminator-value": "distance", - "allOf": [ - { - "$ref": "#/definitions/ScoringFunction" - } - ], - "properties": { - "distance": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/DistanceScoringParameters", - "description": "Parameter values for the distance scoring function." - } - }, - "required": [ - "distance" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines a function that boosts scores based on distance from a geographic location." - }, - "DistanceScoringParameters": { - "type": "object", - "properties": { - "referencePointParameter": { - "type": "string", - "description": "The name of the parameter passed in search queries to specify the reference location." - }, - "boostingDistance": { - "type": "number", - "format": "double", - "description": "The distance in kilometers from the reference location where the boosting range ends." - } - }, - "required": [ - "referencePointParameter", - "boostingDistance" - ], - "description": "Provides parameter values to a distance scoring function." - }, - "FreshnessScoringFunction": { - "type": "object", - "x-ms-discriminator-value": "freshness", - "allOf": [ - { - "$ref": "#/definitions/ScoringFunction" - } - ], - "properties": { - "freshness": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/FreshnessScoringParameters", - "description": "Parameter values for the freshness scoring function." - } - }, - "required": [ - "freshness" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines a function that boosts scores based on the value of a date-time field." - }, - "FreshnessScoringParameters": { - "type": "object", - "properties": { - "boostingDuration": { - "type": "string", - "format": "duration", - "description": "The expiration period after which boosting will stop for a particular document." - } - }, - "required": [ - "boostingDuration" - ], - "description": "Provides parameter values to a freshness scoring function." - }, - "MagnitudeScoringFunction": { - "type": "object", - "x-ms-discriminator-value": "magnitude", - "allOf": [ - { - "$ref": "#/definitions/ScoringFunction" - } - ], - "properties": { - "magnitude": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/MagnitudeScoringParameters", - "description": "Parameter values for the magnitude scoring function." - } - }, - "required": [ - "magnitude" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines a function that boosts scores based on the magnitude of a numeric field." - }, - "MagnitudeScoringParameters": { - "type": "object", - "properties": { - "boostingRangeStart": { - "type": "number", - "format": "double", - "description": "The field value at which boosting starts." - }, - "boostingRangeEnd": { - "type": "number", - "format": "double", - "description": "The field value at which boosting ends." - }, - "constantBoostBeyondRange": { - "x-ms-client-name": "ShouldBoostBeyondRangeByConstant", - "type": "boolean", - "description": "A value indicating whether to apply a constant boost for field values beyond the range end value; default is false." - } - }, - "required": [ - "boostingRangeStart", - "boostingRangeEnd" - ], - "description": "Provides parameter values to a magnitude scoring function." - }, - "TagScoringFunction": { - "type": "object", - "x-ms-discriminator-value": "tag", - "allOf": [ - { - "$ref": "#/definitions/ScoringFunction" - } - ], - "properties": { - "tag": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/TagScoringParameters", - "description": "Parameter values for the tag scoring function." - } - }, - "required": [ - "tag" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines a function that boosts scores of documents with string values matching a given list of tags." - }, - "TagScoringParameters": { - "type": "object", - "properties": { - "tagsParameter": { - "type": "string", - "description": "The name of the parameter passed in search queries to specify the list of tags to compare against the target field." - } - }, - "required": [ - "tagsParameter" - ], - "description": "Provides parameter values to a tag scoring function." - }, - "ScoringFunctionInterpolation": { - "type": "string", - "enum": [ - "linear", - "constant", - "quadratic", - "logarithmic" - ], - "x-ms-enum": { - "name": "ScoringFunctionInterpolation", - "modelAsString": false, - "values": [ { - "value": "linear", - "name": "Linear", - "description": "Boosts scores by a linearly decreasing amount. This is the default interpolation for scoring functions." + "name": "CsLucene", + "value": "cs.lucene", + "description": "Lucene analyzer for Czech." }, { - "value": "constant", - "name": "Constant", - "description": "Boosts scores by a constant factor." + "name": "DaMicrosoft", + "value": "da.microsoft", + "description": "Microsoft analyzer for Danish." }, { - "value": "quadratic", - "name": "Quadratic", - "description": "Boosts scores by an amount that decreases quadratically. Boosts decrease slowly for higher scores, and more quickly as the scores decrease. This interpolation option is not allowed in tag scoring functions." + "name": "DaLucene", + "value": "da.lucene", + "description": "Lucene analyzer for Danish." }, { - "value": "logarithmic", - "name": "Logarithmic", - "description": "Boosts scores by an amount that decreases logarithmically. Boosts decrease quickly for higher scores, and more slowly as the scores decrease. This interpolation option is not allowed in tag scoring functions." - } - ] - }, - "description": "Defines the function used to interpolate score boosting across a range of documents." - }, - "ScoringProfile": { - "type": "object", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" + "name": "NlMicrosoft", + "value": "nl.microsoft", + "description": "Microsoft analyzer for Dutch." }, - "type": "string", - "description": "The name of the scoring profile." - }, - "text": { - "x-ms-client-name": "TextWeights", - "$ref": "#/definitions/TextWeights", - "description": "Parameters that boost scoring based on text matches in certain index fields.", - "x-nullable": true - }, - "functions": { - "type": "array", - "items": { - "$ref": "#/definitions/ScoringFunction" + { + "name": "NlLucene", + "value": "nl.lucene", + "description": "Lucene analyzer for Dutch." }, - "description": "The collection of functions that influence the scoring of documents." - }, - "functionAggregation": { - "$ref": "#/definitions/ScoringFunctionAggregation", - "description": "A value indicating how the results of individual scoring functions should be combined. Defaults to \"Sum\". Ignored if there are no scoring functions." - } - }, - "required": [ - "name" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines parameters for a search index that influence scoring in search queries." - }, - "ScoringFunctionAggregation": { - "type": "string", - "enum": [ - "sum", - "average", - "minimum", - "maximum", - "firstMatching", - "product" - ], - "x-ms-enum": { - "name": "ScoringFunctionAggregation", - "modelAsString": false, - "values": [ { - "value": "sum", - "name": "Sum", - "description": "Boost scores by the sum of all scoring function results." + "name": "EnMicrosoft", + "value": "en.microsoft", + "description": "Microsoft analyzer for English." }, { - "value": "average", - "name": "Average", - "description": "Boost scores by the average of all scoring function results." + "name": "EnLucene", + "value": "en.lucene", + "description": "Lucene analyzer for English." }, { - "value": "minimum", - "name": "Minimum", - "description": "Boost scores by the minimum of all scoring function results." + "name": "EtMicrosoft", + "value": "et.microsoft", + "description": "Microsoft analyzer for Estonian." }, { - "value": "maximum", - "name": "Maximum", - "description": "Boost scores by the maximum of all scoring function results." + "name": "FiMicrosoft", + "value": "fi.microsoft", + "description": "Microsoft analyzer for Finnish." }, { - "value": "firstMatching", - "name": "FirstMatching", - "description": "Boost scores using the first applicable scoring function in the scoring profile." + "name": "FiLucene", + "value": "fi.lucene", + "description": "Lucene analyzer for Finnish." }, { - "value": "product", - "name": "Product", - "description": "Boost scores by the product of all scoring function results." - } - ] - }, - "description": "Defines the aggregation function used to combine the results of all the scoring functions in a scoring profile." - }, - "CorsOptions": { - "type": "object", - "properties": { - "allowedOrigins": { - "type": "array", - "items": { - "type": "string" + "name": "FrMicrosoft", + "value": "fr.microsoft", + "description": "Microsoft analyzer for French." }, - "description": "The list of origins from which JavaScript code will be granted access to your index. Can contain a list of hosts of the form {protocol}://{fully-qualified-domain-name}[:{port#}], or a single '*' to allow all origins (not recommended)." - }, - "maxAgeInSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration for which browsers should cache CORS preflight responses. Defaults to 5 minutes.", - "x-nullable": true - } - }, - "required": [ - "allowedOrigins" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Index" - }, - "description": "Defines options to control Cross-Origin Resource Sharing (CORS) for an index." - }, - "Suggester": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the suggester." - }, - "searchMode": { - "type": "string", - "enum": [ - "analyzingInfixMatching" - ], - "x-ms-enum": { - "name": "SuggesterSearchMode", - "modelAsString": false, - "values": [ - { - "value": "analyzingInfixMatching", - "name": "AnalyzingInfixMatching", - "description": "Matches consecutive whole terms and prefixes in a field. For example, for the field 'The fastest brown fox', the queries 'fast' and 'fastest brow' would both match." - } - ] + { + "name": "FrLucene", + "value": "fr.lucene", + "description": "Lucene analyzer for French." }, - "description": "A value indicating the capabilities of the suggester." - }, - "sourceFields": { - "type": "array", - "items": { - "type": "string" + { + "name": "GlLucene", + "value": "gl.lucene", + "description": "Lucene analyzer for Galician." }, - "description": "The list of field names to which the suggester applies. Each field must be searchable." - } - }, - "required": [ - "name", - "searchMode", - "sourceFields" - ], - "description": "Defines how the Suggest API should apply to a group of fields in the index." - }, - "SearchIndex": { - "type": "object", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" + { + "name": "DeMicrosoft", + "value": "de.microsoft", + "description": "Microsoft analyzer for German." }, - "type": "string", - "description": "The name of the index." - }, - "description": { - "type": "string", - "description": "The description of the index." - }, - "fields": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchField" + { + "name": "DeLucene", + "value": "de.lucene", + "description": "Lucene analyzer for German." }, - "description": "The fields of the index." - }, - "scoringProfiles": { - "type": "array", - "items": { - "$ref": "#/definitions/ScoringProfile" + { + "name": "ElMicrosoft", + "value": "el.microsoft", + "description": "Microsoft analyzer for Greek." }, - "description": "The scoring profiles for the index." - }, - "defaultScoringProfile": { - "type": "string", - "description": "The name of the scoring profile to use if none is specified in the query. If this property is not set and no scoring profile is specified in the query, then default scoring (tf-idf) will be used." - }, - "corsOptions": { - "$ref": "#/definitions/CorsOptions", - "description": "Options to control Cross-Origin Resource Sharing (CORS) for the index.", - "x-nullable": true - }, - "suggesters": { - "type": "array", - "items": { - "$ref": "#/definitions/Suggester" + { + "name": "ElLucene", + "value": "el.lucene", + "description": "Lucene analyzer for Greek." }, - "description": "The suggesters for the index." - }, - "analyzers": { - "type": "array", - "items": { - "$ref": "#/definitions/LexicalAnalyzer" + { + "name": "GuMicrosoft", + "value": "gu.microsoft", + "description": "Microsoft analyzer for Gujarati." }, - "description": "The analyzers for the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "tokenizers": { - "type": "array", - "items": { - "$ref": "#/definitions/LexicalTokenizer" + { + "name": "HeMicrosoft", + "value": "he.microsoft", + "description": "Microsoft analyzer for Hebrew." }, - "description": "The tokenizers for the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "tokenFilters": { - "type": "array", - "items": { - "$ref": "#/definitions/TokenFilter" + { + "name": "HiMicrosoft", + "value": "hi.microsoft", + "description": "Microsoft analyzer for Hindi." }, - "description": "The token filters for the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "charFilters": { - "type": "array", - "items": { - "$ref": "#/definitions/CharFilter" + { + "name": "HiLucene", + "value": "hi.lucene", + "description": "Lucene analyzer for Hindi." }, - "description": "The character filters for the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "normalizers": { - "type": "array", - "items": { - "$ref": "#/definitions/LexicalNormalizer" + { + "name": "HuMicrosoft", + "value": "hu.microsoft", + "description": "Microsoft analyzer for Hungarian." }, - "description": "The normalizers for the index.", - "externalDocs": { - "url": "https://aka.ms/azs-custom-normalizers" - } - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" + { + "name": "HuLucene", + "value": "hu.lucene", + "description": "Lucene analyzer for Hungarian." }, - "x-nullable": true - }, - "similarity": { - "$ref": "#/definitions/Similarity", - "description": "The type of similarity algorithm to be used when scoring and ranking the documents matching a search query. The similarity algorithm can only be defined at index creation time and cannot be modified on existing indexes. If null, the ClassicSimilarity algorithm is used.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/index-ranking-similarity" - } - }, - "semantic": { - "$ref": "#/definitions/SemanticSettings", - "description": "Defines parameters for a search index that influence semantic capabilities.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/semantic-search-overview" + { + "name": "IsMicrosoft", + "value": "is.microsoft", + "description": "Microsoft analyzer for Icelandic." }, - "x-ms-client-name": "SemanticSearch", - "x-nullable": true - }, - "vectorSearch": { - "$ref": "#/definitions/VectorSearch", - "description": "Contains configuration options related to vector search.", - "x-ms-client-name": "VectorSearch", - "x-nullable": true - }, - "permissionFilterOption": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ], - "description": "A value indicating whether permission filtering is enabled for the index.", - "x-nullable": true, - "x-ms-enum": { - "name": "SearchIndexPermissionFilterOption", - "modelAsString": true - } - }, - "purviewEnabled": { - "type": "boolean", - "description": "A value indicating whether the index is leveraging Purview-specific features. This property defaults to false and cannot be changed after index creation.", - "x-nullable": true - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the index." - } - }, - "required": [ - "name", - "fields" - ], - "description": "Represents a search index definition, which describes the fields and search behavior of an index." - }, - "SearchAlias": { - "type": "object", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" + { + "name": "IdMicrosoft", + "value": "id.microsoft", + "description": "Microsoft analyzer for Indonesian (Bahasa)." }, - "type": "string", - "description": "The name of the alias." - }, - "indexes": { - "type": "array", - "items": { - "type": "string" + { + "name": "IdLucene", + "value": "id.lucene", + "description": "Lucene analyzer for Indonesian." }, - "description": "The name of the index this alias maps to. Only one index name may be specified." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the alias." - } - }, - "required": [ - "name", - "indexes" - ], - "description": "Represents an index alias, which describes a mapping from the alias name to an index. The alias name can be used in place of the index name for supported operations." - }, - "GetIndexStatisticsResult": { - "type": "object", - "properties": { - "documentCount": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "readOnly": true, - "description": "The number of documents in the index." - }, - "storageSize": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "readOnly": true, - "description": "The amount of storage in bytes consumed by the index." - }, - "vectorIndexSize": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "The amount of memory in bytes consumed by vectors in the index." - } - }, - "required": [ - "documentCount", - "storageSize", - "vectorIndexSize" - ], - "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date." - }, - "ListIndexStatsSummary": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "IndexesStatistics", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/IndexStatisticsSummary" + { + "name": "GaLucene", + "value": "ga.lucene", + "description": "Lucene analyzer for Irish." }, - "description": "The Statistics summary of all indexes in the Search service." - } - }, - "required": [ - "value" - ], - "description": "Response from a request to retrieve stats summary of all indexes. If successful, it includes the stats of each index in the service." - }, - "IndexStatisticsSummary": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the index." - }, - "documentCount": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "readOnly": true, - "description": "The number of documents in the index." - }, - "storageSize": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "readOnly": true, - "description": "The amount of storage in bytes consumed by the index." - }, - "vectorIndexSize": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "The amount of memory in bytes consumed by vectors in the index." - } - }, - "required": [ - "name", - "documentCount", - "storageSize", - "vectorIndexSize" - ], - "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date." - }, - "ListIndexesResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Indexes", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndex" + { + "name": "ItMicrosoft", + "value": "it.microsoft", + "description": "Microsoft analyzer for Italian." }, - "description": "The indexes in the Search service." - } - }, - "required": [ - "value" - ], - "description": "Response from a List Indexes request. If successful, it includes the full definitions of all indexes." - }, - "ListAliasesResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Aliases", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchAlias" + { + "name": "ItLucene", + "value": "it.lucene", + "description": "Lucene analyzer for Italian." }, - "description": "The aliases in the Search service." - } - }, - "required": [ - "value" - ], - "description": "Response from a List Aliases request. If successful, it includes the associated index mappings for all aliases." - }, - "SearchIndexerSkillset": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the skillset." - }, - "description": { - "type": "string", - "description": "The description of the skillset." - }, - "skills": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerSkill" + { + "name": "JaMicrosoft", + "value": "ja.microsoft", + "description": "Microsoft analyzer for Japanese." }, - "description": "A list of skills in the skillset." - }, - "cognitiveServices": { - "x-ms-client-name": "CognitiveServicesAccount", - "$ref": "#/definitions/CognitiveServicesAccount", - "description": "Details about the Azure AI service to be used when running skills." - }, - "knowledgeStore": { - "$ref": "#/definitions/SearchIndexerKnowledgeStore", - "description": "Definition of additional projections to Azure blob, table, or files, of enriched data." - }, - "indexProjections": { - "$ref": "#/definitions/SearchIndexerIndexProjections", - "description": "Definition of additional projections to secondary search index(es)." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the skillset." - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your skillset definition when you want full assurance that no one, not even Microsoft, can decrypt your skillset definition. Once you have encrypted your skillset definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your skillset definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" + { + "name": "JaLucene", + "value": "ja.lucene", + "description": "Lucene analyzer for Japanese." }, - "x-nullable": true - } - }, - "required": [ - "name", - "skills" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-tutorial-blob" - }, - "description": "A list of skills." - }, - "CognitiveServicesAccount": { - "type": "object", - "discriminator": "@odata.type", - "properties": { - "@odata.type": { - "type": "string", - "description": "A URI fragment specifying the type of Azure AI service resource attached to a skillset." - }, - "description": { - "type": "string", - "description": "Description of the Azure AI service resource attached to a skillset." - } - }, - "required": [ - "@odata.type" - ], - "description": "Base type for describing any Azure AI service resource attached to a skillset." - }, - "SearchIndexerKnowledgeStore": { - "type": "object", - "properties": { - "storageConnectionString": { - "type": "string", - "description": "The connection string to the storage account projections will be stored in." - }, - "projections": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjection", - "x-nullable": false + { + "name": "KnMicrosoft", + "value": "kn.microsoft", + "description": "Microsoft analyzer for Kannada." }, - "description": "A list of additional projections to perform during indexing." - }, - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for connections to Azure Storage when writing knowledge store projections. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." - }, - "parameters": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreParameters" - } - }, - "required": [ - "storageConnectionString", - "projections" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/knowledge-store-projection-overview" - }, - "description": "Definition of additional projections to azure blob, table, or files, of enriched data." - }, - "SearchIndexerKnowledgeStoreProjection": { - "type": "object", - "properties": { - "tables": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreTableProjectionSelector", - "x-nullable": false + { + "name": "KoMicrosoft", + "value": "ko.microsoft", + "description": "Microsoft analyzer for Korean." }, - "description": "Projections to Azure Table storage." - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreObjectProjectionSelector", - "x-nullable": false + { + "name": "KoLucene", + "value": "ko.lucene", + "description": "Lucene analyzer for Korean." }, - "description": "Projections to Azure Blob storage." - }, - "files": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreFileProjectionSelector", - "x-nullable": false + { + "name": "LvMicrosoft", + "value": "lv.microsoft", + "description": "Microsoft analyzer for Latvian." }, - "description": "Projections to Azure File storage." - } - }, - "description": "Container object for various projection selectors." - }, - "SearchIndexerKnowledgeStoreProjectionSelector": { - "type": "object", - "properties": { - "referenceKeyName": { - "type": "string", - "description": "Name of reference key to different projection." - }, - "generatedKeyName": { - "type": "string", - "description": "Name of generated key to store projection under." - }, - "source": { - "type": "string", - "description": "Source data to project." - }, - "sourceContext": { - "type": "string", - "description": "Source context for complex projections." - }, - "inputs": { - "type": "array", - "items": { - "$ref": "#/definitions/InputFieldMappingEntry" + { + "name": "LvLucene", + "value": "lv.lucene", + "description": "Lucene analyzer for Latvian." }, - "description": "Nested inputs for complex projections." - } - }, - "description": "Abstract class to share properties between concrete selectors." - }, - "SearchIndexerKnowledgeStoreBlobProjectionSelector": { - "type": "object", - "properties": { - "storageContainer": { - "type": "string", - "description": "Blob container to store projections in." - } - }, - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjectionSelector" - } - ], - "required": [ - "storageContainer" - ], - "description": "Abstract class to share properties between concrete selectors." - }, - "SearchIndexerKnowledgeStoreTableProjectionSelector": { - "type": "object", - "properties": { - "tableName": { - "type": "string", - "description": "Name of the Azure table to store projected data in." - } - }, - "required": [ - "generatedKeyName", - "tableName" - ], - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjectionSelector" - } - ], - "description": "Description for what data to store in Azure Tables." - }, - "SearchIndexerKnowledgeStoreObjectProjectionSelector": { - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreBlobProjectionSelector" - } - ], - "description": "Projection definition for what data to store in Azure Blob." - }, - "SearchIndexerKnowledgeStoreFileProjectionSelector": { - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreBlobProjectionSelector" - } - ], - "description": "Projection definition for what data to store in Azure Files." - }, - "SearchIndexerKnowledgeStoreParameters": { - "type": "object", - "properties": { - "synthesizeGeneratedKeyName": { - "type": "boolean", - "default": false, - "description": "Whether or not projections should synthesize a generated key name if one isn't already present." - } - }, - "additionalProperties": true, - "description": "A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." - }, - "SearchIndexerIndexProjections": { - "type": "object", - "properties": { - "selectors": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerIndexProjectionSelector" + { + "name": "LtMicrosoft", + "value": "lt.microsoft", + "description": "Microsoft analyzer for Lithuanian." }, - "description": "A list of projections to be performed to secondary search indexes." - }, - "parameters": { - "$ref": "#/definitions/SearchIndexerIndexProjectionsParameters" - } - }, - "required": [ - "selectors" - ], - "description": "Definition of additional projections to secondary search indexes." + { + "name": "MlMicrosoft", + "value": "ml.microsoft", + "description": "Microsoft analyzer for Malayalam." + }, + { + "name": "MsMicrosoft", + "value": "ms.microsoft", + "description": "Microsoft analyzer for Malay (Latin)." + }, + { + "name": "MrMicrosoft", + "value": "mr.microsoft", + "description": "Microsoft analyzer for Marathi." + }, + { + "name": "NbMicrosoft", + "value": "nb.microsoft", + "description": "Microsoft analyzer for Norwegian (BokmÃ¥l)." + }, + { + "name": "NoLucene", + "value": "no.lucene", + "description": "Lucene analyzer for Norwegian." + }, + { + "name": "FaLucene", + "value": "fa.lucene", + "description": "Lucene analyzer for Persian." + }, + { + "name": "PlMicrosoft", + "value": "pl.microsoft", + "description": "Microsoft analyzer for Polish." + }, + { + "name": "PlLucene", + "value": "pl.lucene", + "description": "Lucene analyzer for Polish." + }, + { + "name": "PtBrMicrosoft", + "value": "pt-BR.microsoft", + "description": "Microsoft analyzer for Portuguese (Brazil)." + }, + { + "name": "PtBrLucene", + "value": "pt-BR.lucene", + "description": "Lucene analyzer for Portuguese (Brazil)." + }, + { + "name": "PtPtMicrosoft", + "value": "pt-PT.microsoft", + "description": "Microsoft analyzer for Portuguese (Portugal)." + }, + { + "name": "PtPtLucene", + "value": "pt-PT.lucene", + "description": "Lucene analyzer for Portuguese (Portugal)." + }, + { + "name": "PaMicrosoft", + "value": "pa.microsoft", + "description": "Microsoft analyzer for Punjabi." + }, + { + "name": "RoMicrosoft", + "value": "ro.microsoft", + "description": "Microsoft analyzer for Romanian." + }, + { + "name": "RoLucene", + "value": "ro.lucene", + "description": "Lucene analyzer for Romanian." + }, + { + "name": "RuMicrosoft", + "value": "ru.microsoft", + "description": "Microsoft analyzer for Russian." + }, + { + "name": "RuLucene", + "value": "ru.lucene", + "description": "Lucene analyzer for Russian." + }, + { + "name": "SrCyrillicMicrosoft", + "value": "sr-cyrillic.microsoft", + "description": "Microsoft analyzer for Serbian (Cyrillic)." + }, + { + "name": "SrLatinMicrosoft", + "value": "sr-latin.microsoft", + "description": "Microsoft analyzer for Serbian (Latin)." + }, + { + "name": "SkMicrosoft", + "value": "sk.microsoft", + "description": "Microsoft analyzer for Slovak." + }, + { + "name": "SlMicrosoft", + "value": "sl.microsoft", + "description": "Microsoft analyzer for Slovenian." + }, + { + "name": "EsMicrosoft", + "value": "es.microsoft", + "description": "Microsoft analyzer for Spanish." + }, + { + "name": "EsLucene", + "value": "es.lucene", + "description": "Lucene analyzer for Spanish." + }, + { + "name": "SvMicrosoft", + "value": "sv.microsoft", + "description": "Microsoft analyzer for Swedish." + }, + { + "name": "SvLucene", + "value": "sv.lucene", + "description": "Lucene analyzer for Swedish." + }, + { + "name": "TaMicrosoft", + "value": "ta.microsoft", + "description": "Microsoft analyzer for Tamil." + }, + { + "name": "TeMicrosoft", + "value": "te.microsoft", + "description": "Microsoft analyzer for Telugu." + }, + { + "name": "ThMicrosoft", + "value": "th.microsoft", + "description": "Microsoft analyzer for Thai." + }, + { + "name": "ThLucene", + "value": "th.lucene", + "description": "Lucene analyzer for Thai." + }, + { + "name": "TrMicrosoft", + "value": "tr.microsoft", + "description": "Microsoft analyzer for Turkish." + }, + { + "name": "TrLucene", + "value": "tr.lucene", + "description": "Lucene analyzer for Turkish." + }, + { + "name": "UkMicrosoft", + "value": "uk.microsoft", + "description": "Microsoft analyzer for Ukrainian." + }, + { + "name": "UrMicrosoft", + "value": "ur.microsoft", + "description": "Microsoft analyzer for Urdu." + }, + { + "name": "ViMicrosoft", + "value": "vi.microsoft", + "description": "Microsoft analyzer for Vietnamese." + }, + { + "name": "StandardLucene", + "value": "standard.lucene", + "description": "Standard Lucene analyzer." + }, + { + "name": "StandardAsciiFoldingLucene", + "value": "standardasciifolding.lucene", + "description": "Standard ASCII Folding Lucene analyzer. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#Analyzers" + }, + { + "name": "Keyword", + "value": "keyword", + "description": "Treats the entire content of a field as a single token. This is useful for data like zip codes, ids, and some product names. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordAnalyzer.html" + }, + { + "name": "Pattern", + "value": "pattern", + "description": "Flexibly separates text into terms via a regular expression pattern. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.html" + }, + { + "name": "Simple", + "value": "simple", + "description": "Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/SimpleAnalyzer.html" + }, + { + "name": "Stop", + "value": "stop", + "description": "Divides text at non-letters; Applies the lowercase and stopword token filters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html" + }, + { + "name": "Whitespace", + "value": "whitespace", + "description": "An analyzer that uses the whitespace tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceAnalyzer.html" + } + ] + } }, - "SearchIndexerIndexProjectionSelector": { + "LexicalNormalizer": { "type": "object", + "description": "Base type for normalizers.", "properties": { - "targetIndexName": { - "type": "string", - "description": "Name of the search index to project to. Must have a key field with the 'keyword' analyzer set." - }, - "parentKeyFieldName": { + "@odata.type": { "type": "string", - "description": "Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field." + "description": "The discriminator for derived types." }, - "sourceContext": { + "name": { "type": "string", - "description": "Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents." - }, - "mappings": { - "type": "array", - "items": { - "$ref": "#/definitions/InputFieldMappingEntry" - }, - "description": "Mappings for the projection, or which source should be mapped to which field in the target index." + "description": "The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." } }, + "discriminator": "@odata.type", "required": [ - "targetIndexName", - "parentKeyFieldName", - "sourceContext", - "mappings" - ], - "description": "Description for what data to store in the designated search index." + "@odata.type", + "name" + ] }, - "SearchIndexerIndexProjectionsParameters": { + "LexicalNormalizerName": { + "type": "string", + "description": "Defines the names of all text normalizers supported by the search engine.", + "enum": [ + "asciifolding", + "elision", + "lowercase", + "standard", + "uppercase" + ], + "x-ms-enum": { + "name": "LexicalNormalizerName", + "modelAsString": true, + "values": [ + { + "name": "AsciiFolding", + "value": "asciifolding", + "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" + }, + { + "name": "Elision", + "value": "elision", + "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" + }, + { + "name": "Lowercase", + "value": "lowercase", + "description": "Normalizes token text to lowercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html" + }, + { + "name": "Standard", + "value": "standard", + "description": "Standard normalizer, which consists of lowercase and asciifolding. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html" + }, + { + "name": "Uppercase", + "value": "uppercase", + "description": "Normalizes token text to uppercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html" + } + ] + } + }, + "LexicalTokenizer": { "type": "object", + "description": "Base type for tokenizers.", "properties": { - "projectionMode": { - "$ref": "#/definitions/IndexProjectionMode", - "description": "Defines behavior of the index projections in relation to the rest of the indexer." + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "name": { + "type": "string", + "description": "The name of the tokenizer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." } }, - "additionalProperties": true, - "description": "A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." + "discriminator": "@odata.type", + "required": [ + "@odata.type", + "name" + ] }, - "IndexProjectionMode": { + "LexicalTokenizerName": { "type": "string", + "description": "Defines the names of all tokenizers supported by the search engine.", "enum": [ - "skipIndexingParentDocuments", - "includeIndexingParentDocuments" + "classic", + "edgeNGram", + "keyword_v2", + "letter", + "lowercase", + "microsoft_language_tokenizer", + "microsoft_language_stemming_tokenizer", + "nGram", + "path_hierarchy_v2", + "pattern", + "standard_v2", + "uax_url_email", + "whitespace" ], "x-ms-enum": { - "name": "IndexProjectionMode", + "name": "LexicalTokenizerName", "modelAsString": true, "values": [ { - "value": "skipIndexingParentDocuments", - "name": "SkipIndexingParentDocuments", - "description": "The source document will be skipped from writing into the indexer's target index." + "name": "Classic", + "value": "classic", + "description": "Grammar-based tokenizer that is suitable for processing most European-language documents. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicTokenizer.html" }, { - "value": "includeIndexingParentDocuments", - "name": "IncludeIndexingParentDocuments", - "description": "The source document will be written into the indexer's target index. This is the default pattern." + "name": "EdgeNGram", + "value": "edgeNGram", + "description": "Tokenizes the input from an edge into n-grams of the given size(s). See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.html" + }, + { + "name": "Keyword", + "value": "keyword_v2", + "description": "Emits the entire input as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html" + }, + { + "name": "Letter", + "value": "letter", + "description": "Divides text at non-letters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LetterTokenizer.html" + }, + { + "name": "Lowercase", + "value": "lowercase", + "description": "Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LowerCaseTokenizer.html" + }, + { + "name": "MicrosoftLanguageTokenizer", + "value": "microsoft_language_tokenizer", + "description": "Divides text using language-specific rules." + }, + { + "name": "MicrosoftLanguageStemmingTokenizer", + "value": "microsoft_language_stemming_tokenizer", + "description": "Divides text using language-specific rules and reduces words to their base forms." + }, + { + "name": "NGram", + "value": "nGram", + "description": "Tokenizes the input into n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenizer.html" + }, + { + "name": "PathHierarchy", + "value": "path_hierarchy_v2", + "description": "Tokenizer for path-like hierarchies. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/path/PathHierarchyTokenizer.html" + }, + { + "name": "Pattern", + "value": "pattern", + "description": "Tokenizer that uses regex pattern matching to construct distinct tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternTokenizer.html" + }, + { + "name": "Standard", + "value": "standard_v2", + "description": "Standard Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html" + }, + { + "name": "UaxUrlEmail", + "value": "uax_url_email", + "description": "Tokenizes urls and emails as one token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizer.html" + }, + { + "name": "Whitespace", + "value": "whitespace", + "description": "Divides text at whitespace. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceTokenizer.html" } ] - }, - "description": "Defines behavior of the index projections in relation to the rest of the indexer." + } }, - "DefaultCognitiveServicesAccount": { + "LimitTokenFilter": { "type": "object", - "description": "An empty object that represents the default Azure AI service resource for a skillset.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.DefaultCognitiveServices", - "allOf": [ - { - "$ref": "#/definitions/CognitiveServicesAccount" + "description": "Limits the number of tokens while indexing. This token filter is implemented using Apache Lucene.", + "properties": { + "maxTokenCount": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens to produce. Default is 1.", + "default": 1 + }, + "consumeAllTokens": { + "type": "boolean", + "description": "A value indicating whether all tokens from the input must be consumed even if maxTokenCount is reached. Default is false.", + "default": false } - ] - }, - "CognitiveServicesAccountKey": { - "type": "object", - "description": "The multi-region account key of an Azure AI service resource that's attached to a skillset.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CognitiveServicesByKey", + }, "allOf": [ { - "$ref": "#/definitions/CognitiveServicesAccount" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.LimitTokenFilter" + }, + "ListAliasesResult": { + "type": "object", + "description": "Response from a List Aliases request. If successful, it includes the associated index mappings for all aliases.", "properties": { - "key": { - "type": "string", - "description": "The key used to provision the Azure AI service resource attached to a skillset." + "value": { + "type": "array", + "description": "The aliases in the Search service.", + "items": { + "$ref": "#/definitions/SearchAlias" + }, + "readOnly": true } }, "required": [ - "key" + "value" ] }, - "AIServicesAccountKey": { + "ListDataSourcesResult": { "type": "object", - "description": "The account key of an Azure AI service resource that's attached to a skillset, to be used with the resource's subdomain.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.AIServicesByKey", - "allOf": [ - { - "$ref": "#/definitions/CognitiveServicesAccount" - } - ], + "description": "Response from a List Datasources request. If successful, it includes the full definitions of all datasources.", "properties": { - "key": { - "type": "string", - "description": "The key used to provision the Azure AI service resource attached to a skillset." - }, - "subdomainUrl": { - "type": "string", - "description": "The subdomain url for the corresponding AI Service." + "value": { + "type": "array", + "description": "The datasources in the Search service.", + "items": { + "$ref": "#/definitions/SearchIndexerDataSource" + }, + "readOnly": true } }, "required": [ - "key", - "subdomainUrl" + "value" ] }, - "AIServicesAccountIdentity": { + "ListIndexStatsSummary": { "type": "object", - "description": "The multi-region account of an Azure AI service resource that's attached to a skillset.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.AIServicesByIdentity", - "allOf": [ - { - "$ref": "#/definitions/CognitiveServicesAccount" - } - ], + "description": "Response from a request to retrieve stats summary of all indexes. If successful, it includes the stats of each index in the service.", "properties": { - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for connections to AI Service. If not specified, the system-assigned managed identity is used. On updates to the skillset, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." - }, - "subdomainUrl": { - "type": "string", - "description": "The subdomain url for the corresponding AI Service." + "value": { + "type": "array", + "description": "The Statistics summary of all indexes in the Search service.", + "items": { + "$ref": "#/definitions/IndexStatisticsSummary" + }, + "readOnly": true } }, "required": [ - "subdomainUrl" + "value" ] }, - "SearchIndexerSkill": { + "ListIndexersResult": { "type": "object", - "discriminator": "@odata.type", + "description": "Response from a List Indexers request. If successful, it includes the full definitions of all indexers.", "properties": { - "@odata.type": { - "type": "string", - "description": "A URI fragment specifying the type of skill." - }, - "name": { - "type": "string", - "description": "The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'." - }, - "description": { - "type": "string", - "description": "The description of the skill which describes the inputs, outputs, and usage of the skill." - }, - "context": { - "type": "string", - "description": "Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document." - }, - "inputs": { + "value": { "type": "array", + "description": "The indexers in the Search service.", "items": { - "$ref": "#/definitions/InputFieldMappingEntry" + "$ref": "#/definitions/SearchIndexer" }, - "description": "Inputs of the skills could be a column in the source data set, or the output of an upstream skill." - }, - "outputs": { + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "ListIndexesResult": { + "type": "object", + "description": "Response from a List Indexes request. If successful, it includes the full definitions of all indexes.", + "properties": { + "value": { "type": "array", + "description": "The indexes in the Search service.", "items": { - "$ref": "#/definitions/OutputFieldMappingEntry" + "$ref": "#/definitions/SearchIndex" }, - "description": "The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill." + "readOnly": true } }, "required": [ - "@odata.type", - "inputs", - "outputs" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-predefined-skills" - }, - "description": "Base type for skills." + "value" + ] }, - "CustomEntity": { + "ListKnowledgeBasesResult": { "type": "object", + "description": "Result from listing knowledge bases.", "properties": { - "name": { - "type": "string", - "description": "The top-level entity descriptor. Matches in the skill output will be grouped by this name, and it should represent the \"normalized\" form of the text being found." - }, - "description": { - "type": "string", - "x-nullable": true, - "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output." - }, - "type": { - "type": "string", - "x-nullable": true, - "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output." - }, - "subtype": { - "type": "string", - "x-nullable": true, - "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output." - }, - "id": { - "type": "string", - "x-nullable": true, - "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output." - }, - "caseSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to character casing. Sample case insensitive matches of \"Microsoft\" could be: microsoft, microSoft, MICROSOFT." - }, - "accentSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to accent." - }, - "fuzzyEditDistance": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Defaults to 0. Maximum value of 5. Denotes the acceptable number of divergent characters that would still constitute a match with the entity name. The smallest possible fuzziness for any given match is returned. For instance, if the edit distance is set to 3, \"Windows10\" would still match \"Windows\", \"Windows10\" and \"Windows 7\". When case sensitivity is set to false, case differences do NOT count towards fuzziness tolerance, but otherwise do." - }, - "defaultCaseSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Changes the default case sensitivity value for this entity. It be used to change the default value of all aliases caseSensitive values." - }, - "defaultAccentSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Changes the default accent sensitivity value for this entity. It be used to change the default value of all aliases accentSensitive values." - }, - "defaultFuzzyEditDistance": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Changes the default fuzzy edit distance value for this entity. It can be used to change the default value of all aliases fuzzyEditDistance values." - }, - "aliases": { + "value": { "type": "array", + "description": "The knowledge bases in the service.", "items": { - "$ref": "#/definitions/CustomEntityAlias" - }, - "x-nullable": true, - "description": "An array of complex objects that can be used to specify alternative spellings or synonyms to the root entity name." + "$ref": "#/definitions/KnowledgeBase" + } } }, "required": [ - "name" - ], - "description": "An object that contains information about the matches that were found, and related metadata." + "value" + ] }, - "CustomEntityAlias": { + "ListKnowledgeSourcesResult": { "type": "object", + "description": "Result from listing knowledge sources.", "properties": { - "text": { - "type": "string", - "description": "The text of the alias." - }, - "caseSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Determine if the alias is case sensitive." - }, - "accentSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Determine if the alias is accent sensitive." - }, - "fuzzyEditDistance": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Determine the fuzzy edit distance of the alias." + "value": { + "type": "array", + "description": "The knowledge sources in the service.", + "items": { + "$ref": "#/definitions/KnowledgeSource" + } } }, "required": [ - "text" - ], - "description": "A complex object that can be used to specify alternative spellings or synonyms to the root entity name." + "value" + ] }, - "InputFieldMappingEntry": { + "ListSkillsetsResult": { "type": "object", + "description": "Response from a list skillset request. If successful, it includes the full definitions of all skillsets.", "properties": { - "name": { - "type": "string", - "description": "The name of the input." - }, - "source": { - "type": "string", - "description": "The source of the input." - }, - "sourceContext": { - "type": "string", - "description": "The source context used for selecting recursive inputs." - }, - "inputs": { + "value": { "type": "array", + "description": "The skillsets defined in the Search service.", "items": { - "$ref": "#/definitions/InputFieldMappingEntry" + "$ref": "#/definitions/SearchIndexerSkillset" }, - "description": "The recursive inputs used when creating a complex type." + "readOnly": true } }, "required": [ - "name" - ], - "description": "Input field mapping for a skill." + "value" + ] }, - "OutputFieldMappingEntry": { + "ListSynonymMapsResult": { "type": "object", + "description": "Response from a List SynonymMaps request. If successful, it includes the full definitions of all synonym maps.", "properties": { - "name": { - "type": "string", - "description": "The name of the output defined by the skill." - }, - "targetName": { - "type": "string", - "description": "The target name of the output. It is optional and default to name." + "value": { + "type": "array", + "description": "The synonym maps in the Search service.", + "items": { + "$ref": "#/definitions/SynonymMap" + }, + "readOnly": true } }, "required": [ - "name" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "description": "Output field mapping for a skill." + "value" + ] }, - "ConditionalSkill": { + "LookupDocument": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.ConditionalSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-conditional" - }, - "description": "A skill that enables scenarios that require a Boolean operation to determine the data to assign to an output." + "description": "A document retrieved via a document lookup operation.", + "additionalProperties": {} }, - "KeyPhraseExtractionSkill": { + "LuceneStandardAnalyzer": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "description": "Standard Apache Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter.", + "properties": { + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 255, + "maximum": 300 + }, + "stopwords": { + "type": "array", + "description": "A list of stopwords.", + "items": { + "type": "string" + } + } + }, "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalAnalyzer" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardAnalyzer" + }, + "LuceneStandardTokenizer": { + "type": "object", + "description": "Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.", "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/KeyPhraseExtractionSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "maxKeyPhraseCount": { + "maxTokenLength": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "A number indicating how many key phrases to return. If absent, all identified key phrases will be returned." - }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split.", + "default": 255 } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-keyphrases" - }, - "description": "A skill that uses text analytics for key phrase extraction." - }, - "OcrSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Vision.OcrSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalTokenizer" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardTokenizer" + }, + "LuceneStandardTokenizerV2": { + "type": "object", + "description": "Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.", "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/OcrSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "detectOrientation": { - "x-ms-client-name": "ShouldDetectOrientation", - "type": "boolean", - "default": false, - "description": "A value indicating to turn orientation detection on or not. Default is false." - }, - "lineEnding": { - "$ref": "#/definitions/OcrSkillLineEnding", - "description": "Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\"." + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 255, + "maximum": 300 } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-ocr" - }, - "description": "A skill that extracts text from image files." - }, - "ImageAnalysisSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Vision.ImageAnalysisSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalTokenizer" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardTokenizerV2" + }, + "MagnitudeScoringFunction": { + "type": "object", + "description": "Defines a function that boosts scores based on the magnitude of a numeric field.", "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/ImageAnalysisSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "visualFeatures": { - "type": "array", - "items": { - "$ref": "#/definitions/VisualFeature", - "x-nullable": false - }, - "description": "A list of visual features." - }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageDetail", - "x-nullable": false - }, - "description": "A string indicating which domain-specific details to return." + "magnitude": { + "$ref": "#/definitions/MagnitudeScoringParameters", + "description": "Parameter values for the magnitude scoring function." } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-image-analysis" - }, - "description": "A skill that analyzes image files. It extracts a rich set of visual features based on the image content." - }, - "LanguageDetectionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "required": [ + "magnitude" + ], "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/ScoringFunction" } ], + "x-ms-discriminator-value": "magnitude" + }, + "MagnitudeScoringParameters": { + "type": "object", + "description": "Provides parameter values to a magnitude scoring function.", "properties": { - "defaultCountryHint": { - "type": "string", - "x-nullable": true, - "description": "A country code to use as a hint to the language detection model if it cannot disambiguate the language." + "boostingRangeStart": { + "type": "number", + "format": "double", + "description": "The field value at which boosting starts." }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." + "boostingRangeEnd": { + "type": "number", + "format": "double", + "description": "The field value at which boosting ends." + }, + "constantBoostBeyondRange": { + "type": "boolean", + "description": "A value indicating whether to apply a constant boost for field values beyond the range end value; default is false." } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-language-detection" - }, - "description": "A skill that detects the language of input text and reports a single language code for every document submitted on the request. The language code is paired with a score indicating the confidence of the analysis." + "required": [ + "boostingRangeStart", + "boostingRangeEnd" + ] }, - "ShaperSkill": { + "MappingCharFilter": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.ShaperSkill", + "description": "A character filter that applies mappings defined with the mappings option. Matching is greedy (longest pattern matching at a given point wins). Replacement is allowed to be the empty string. This character filter is implemented using Apache Lucene.", + "properties": { + "mappings": { + "type": "array", + "description": "A list of mappings of the following format: \"a=>b\" (all occurrences of the character \"a\" will be replaced with character \"b\").", + "items": { + "type": "string" + } + } + }, + "required": [ + "mappings" + ], "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/CharFilter" } ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-shaper" - }, - "description": "A skill for reshaping the outputs. It creates a complex type to support composite fields (also known as multipart fields)." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.MappingCharFilter" + }, + "MarkdownHeaderDepth": { + "type": "string", + "description": "Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`.", + "enum": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "x-ms-enum": { + "name": "MarkdownHeaderDepth", + "modelAsString": true, + "values": [ + { + "name": "h1", + "value": "h1", + "description": "Indicates that headers up to a level of h1 will be considered while grouping markdown content." + }, + { + "name": "h2", + "value": "h2", + "description": "Indicates that headers up to a level of h2 will be considered while grouping markdown content." + }, + { + "name": "h3", + "value": "h3", + "description": "Indicates that headers up to a level of h3 will be considered while grouping markdown content." + }, + { + "name": "h4", + "value": "h4", + "description": "Indicates that headers up to a level of h4 will be considered while grouping markdown content." + }, + { + "name": "h5", + "value": "h5", + "description": "Indicates that headers up to a level of h5 will be considered while grouping markdown content." + }, + { + "name": "h6", + "value": "h6", + "description": "Indicates that headers up to a level of h6 will be considered while grouping markdown content. This is the default." + } + ] + } + }, + "MarkdownParsingSubmode": { + "type": "string", + "description": "Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`.", + "enum": [ + "oneToMany", + "oneToOne" + ], + "x-ms-enum": { + "name": "MarkdownParsingSubmode", + "modelAsString": true, + "values": [ + { + "name": "OneToMany", + "value": "oneToMany", + "description": "Indicates that each section of the markdown file (up to a specified depth) will be parsed into individual search documents. This can result in a single markdown file producing multiple search documents. This is the default sub-mode." + }, + { + "name": "OneToOne", + "value": "oneToOne", + "description": "Indicates that each markdown file will be parsed into a single search document." + } + ] + } }, "MergeSkill": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.MergeSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], + "description": "A skill for merging two or more strings into a single unified string, with an optional user-defined delimiter separating each component part.", "properties": { "insertPreTag": { "type": "string", - "default": " ", - "description": "The tag indicates the start of the merged text. By default, the tag is an empty space." + "description": "The tag indicates the start of the merged text. By default, the tag is an empty space.", + "default": " " }, "insertPostTag": { "type": "string", - "default": " ", - "description": "The tag indicates the end of the merged text. By default, the tag is an empty space." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-textmerger" - }, - "description": "A skill for merging two or more strings into a single unified string, with an optional user-defined delimiter separating each component part." - }, - "EntityRecognitionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.EntityRecognitionSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "categories": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCategory", - "x-nullable": false - }, - "description": "A list of entity categories that should be extracted." - }, - "defaultLanguageCode": { - "$ref": "#/definitions/EntityRecognitionSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "includeTypelessEntities": { - "type": "boolean", - "x-nullable": true, - "description": "Determines whether or not to include entities which are well known but don't conform to a pre-defined type. If this configuration is not set (default), set to null or set to false, entities which don't conform to one of the pre-defined types will not be surfaced." - }, - "minimumPrecision": { - "type": "number", - "format": "double", - "x-nullable": true, - "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included." + "description": "The tag indicates the end of the merged text. By default, the tag is an empty space.", + "default": " " } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-entity-recognition" - }, - "description": "This skill is deprecated. Use the V3.EntityRecognitionSkill instead.", - "x-az-search-deprecated": true - }, - "SentimentSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.SentimentSkill", "allOf": [ { "$ref": "#/definitions/SearchIndexerSkill" } ], - "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/SentimentSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-sentiment" - }, - "description": "This skill is deprecated. Use the V3.SentimentSkill instead.", - "x-az-search-deprecated": true + "x-ms-discriminator-value": "#Microsoft.Skills.Text.MergeSkill" }, - "SentimentSkillV3": { + "MicrosoftLanguageStemmingTokenizer": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.SentimentSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], + "description": "Divides text using language-specific rules and reduces words to their base forms.", "properties": { - "defaultLanguageCode": { - "type": "string", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255.", + "default": 255, + "maximum": 300 }, - "includeOpinionMining": { + "isSearchTokenizer": { "type": "boolean", - "default": false, - "description": "If set to true, the skill output will include information from Text Analytics for opinion mining, namely targets (nouns or verbs) and their associated assessment (adjective) in the text. Default is false." + "description": "A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false.", + "default": false }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." + "language": { + "$ref": "#/definitions/MicrosoftStemmingTokenizerLanguage", + "description": "The language to use. The default is English." } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-sentiment-v3" - }, - "description": "Using the Text Analytics API, evaluates unstructured text and for each record, provides sentiment labels (such as \"negative\", \"neutral\" and \"positive\") based on the highest confidence score found by the service at a sentence and document-level." - }, - "EntityLinkingSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.EntityLinkingSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalTokenizer" } ], - "properties": { - "defaultLanguageCode": { - "type": "string", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." - }, - "minimumPrecision": { - "type": "number", - "format": "double", - "minimum": 0.0, - "maximum": 1.0, - "x-nullable": true, - "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included." - }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-entity-linking-v3" - }, - "description": "Using the Text Analytics API, extracts linked entities from text." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.MicrosoftLanguageStemmingTokenizer" }, - "EntityRecognitionSkillV3": { + "MicrosoftLanguageTokenizer": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], + "description": "Divides text using language-specific rules.", "properties": { - "categories": { - "type": "array", - "items": { - "type": "string", - "x-nullable": false - }, - "description": "A list of entity categories that should be extracted." - }, - "defaultLanguageCode": { - "type": "string", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255.", + "default": 255, + "maximum": 300 }, - "minimumPrecision": { - "type": "number", - "format": "double", - "minimum": 0.0, - "maximum": 1.0, - "x-nullable": true, - "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included." + "isSearchTokenizer": { + "type": "boolean", + "description": "A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false.", + "default": false }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics API. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." + "language": { + "$ref": "#/definitions/MicrosoftTokenizerLanguage", + "description": "The language to use. The default is English." } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-entity-recognition-v3" - }, - "description": "Using the Text Analytics API, extracts entities of different types from text." - }, - "PIIDetectionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.PIIDetectionSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalTokenizer" } ], - "properties": { - "defaultLanguageCode": { - "type": "string", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." - }, - "minimumPrecision": { - "type": "number", - "format": "double", - "x-nullable": true, - "minimum": 0.0, - "maximum": 1.0, - "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included." - }, - "maskingMode": { - "$ref": "#/definitions/PIIDetectionSkillMaskingMode", - "description": "A parameter that provides various ways to mask the personal information detected in the input text. Default is 'none'." - }, - "maskingCharacter": { - "x-ms-client-name": "mask", - "type": "string", - "x-nullable": true, - "maxLength": 1, - "description": "The character used to mask the text if the maskingMode parameter is set to replace. Default is '*'." - }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." - }, - "piiCategories": { - "type": "array", - "items": { - "type": "string", - "x-nullable": false - }, - "description": "A list of PII entity categories that should be extracted and masked." - }, - "domain": { - "type": "string", - "x-nullable": true, - "description": "If specified, will set the PII domain to include only a subset of the entity categories. Possible values include: 'phi', 'none'. Default is 'none'." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-pii-detection" - }, - "description": "Using the Text Analytics API, extracts personal information from an input text and gives you the option of masking it." - }, - "SplitSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.SplitSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/SplitSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "textSplitMode": { - "$ref": "#/definitions/TextSplitMode", - "x-nullable": false, - "description": "A value indicating which split mode to perform." - }, - "maximumPageLength": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The desired maximum page length. Default is 10000." - }, - "pageOverlapLength": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Only applicable when textSplitMode is set to 'pages'. If specified, n+1th chunk will start with this number of characters/tokens from the end of the nth chunk." - }, - "maximumPagesToTake": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Only applicable when textSplitMode is set to 'pages'. If specified, the SplitSkill will discontinue splitting after processing the first 'maximumPagesToTake' pages, in order to improve performance when only a few initial pages are needed from each document." - }, - "unit": { - "$ref": "#/definitions/SplitSkillUnit", - "x-nullable": true, - "description": "Only applies if textSplitMode is set to pages. There are two possible values. The choice of the values will decide the length (maximumPageLength and pageOverlapLength) measurement. The default is 'characters', which means the length will be measured by character." - }, - "azureOpenAITokenizerParameters": { - "$ref": "#/definitions/AzureOpenAITokenizerParameters", - "x-nullable": true, - "description": "Only applies if the unit is set to azureOpenAITokens. If specified, the splitSkill will use these parameters when performing the tokenization. The parameters are a valid 'encoderModelName' and an optional 'allowedSpecialTokens' property." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-textsplit" - }, - "description": "A skill to split a string into chunks of text." - }, - "CustomEntityLookupSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.CustomEntityLookupSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/CustomEntityLookupSkillLanguage", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." - }, - "entitiesDefinitionUri": { - "type": "string", - "x-nullable": true, - "description": "Path to a JSON or CSV file containing all the target text to match against. This entity definition is read at the beginning of an indexer run. Any updates to this file during an indexer run will not take effect until subsequent runs. This config must be accessible over HTTPS." - }, - "inlineEntitiesDefinition": { - "type": "array", - "items": { - "$ref": "#/definitions/CustomEntity" - }, - "x-nullable": true, - "description": "The inline CustomEntity definition." - }, - "globalDefaultCaseSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "A global flag for CaseSensitive. If CaseSensitive is not set in CustomEntity, this value will be the default value." - }, - "globalDefaultAccentSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "A global flag for AccentSensitive. If AccentSensitive is not set in CustomEntity, this value will be the default value." - }, - "globalDefaultFuzzyEditDistance": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "A global flag for FuzzyEditDistance. If FuzzyEditDistance is not set in CustomEntity, this value will be the default value." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/en-us/azure/search/cognitive-search-skill-custom-entity-lookup" - }, - "description": "A skill looks for text from a custom, user-defined list of words and phrases." - }, - "TextTranslationSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.TranslationSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "defaultToLanguageCode": { - "$ref": "#/definitions/TextTranslationSkillLanguage", - "description": "The language code to translate documents into for documents that don't specify the to language explicitly. " - }, - "defaultFromLanguageCode": { - "$ref": "#/definitions/TextTranslationSkillLanguage", - "description": "The language code to translate documents from for documents that don't specify the from language explicitly." - }, - "suggestedFrom": { - "$ref": "#/definitions/TextTranslationSkillLanguage", - "x-nullable": true, - "description": "The language code to translate documents from when neither the fromLanguageCode input nor the defaultFromLanguageCode parameter are provided, and the automatic language detection is unsuccessful. Default is `en`." - } - }, - "required": [ - "defaultToLanguageCode" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-text-translation" - }, - "description": "A skill to translate text from one language to another." - }, - "DocumentExtractionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.DocumentExtractionSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "parsingMode": { - "type": "string", - "x-nullable": true, - "description": "The parsingMode for the skill. Will be set to 'default' if not defined." - }, - "dataToExtract": { - "type": "string", - "x-nullable": true, - "description": "The type of data to be extracted for the skill. Will be set to 'contentAndMetadata' if not defined." - }, - "configuration": { - "type": "object", - "additionalProperties": true, - "x-nullable": true, - "description": "A dictionary of configurations for the skill." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-document-extraction" - }, - "description": "A skill that extracts content from a file within the enrichment pipeline." - }, - "DocumentIntelligenceLayoutSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "outputFormat": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillOutputFormat", - "x-nullable": true, - "description": "Controls the cardinality of the output format. Default is 'markdown'." - }, - "outputMode": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillOutputMode", - "x-nullable": true, - "description": "Controls the cardinality of the output produced by the skill. Default is 'oneToMany'." - }, - "markdownHeaderDepth": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillMarkdownHeaderDepth", - "x-nullable": true, - "description": "The depth of headers in the markdown output. Default is h6." - }, - "extractionOptions": { - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillExtractionOptions" - }, - "description": "Controls the cardinality of the content extracted from the document by the skill" - }, - "chunkingProperties": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillChunkingProperties", - "x-nullable": true, - "description": "Controls the cardinality for chunking the content." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-document-extraction" - }, - "description": "A skill that extracts content and layout information, via Azure AI Services, from files within the enrichment pipeline." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.MicrosoftLanguageTokenizer" }, - "DocumentIntelligenceLayoutSkillOutputMode": { + "MicrosoftStemmingTokenizerLanguage": { "type": "string", + "description": "Lists the languages supported by the Microsoft language stemming tokenizer.", "enum": [ - "oneToMany" + "arabic", + "bangla", + "bulgarian", + "catalan", + "croatian", + "czech", + "danish", + "dutch", + "english", + "estonian", + "finnish", + "french", + "german", + "greek", + "gujarati", + "hebrew", + "hindi", + "hungarian", + "icelandic", + "indonesian", + "italian", + "kannada", + "latvian", + "lithuanian", + "malay", + "malayalam", + "marathi", + "norwegianBokmaal", + "polish", + "portuguese", + "portugueseBrazilian", + "punjabi", + "romanian", + "russian", + "serbianCyrillic", + "serbianLatin", + "slovak", + "slovenian", + "spanish", + "swedish", + "tamil", + "telugu", + "turkish", + "ukrainian", + "urdu" ], "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillOutputMode", + "name": "MicrosoftStemmingTokenizerLanguage", "modelAsString": true, "values": [ { - "value": "oneToMany", - "name": "OneToMany", - "description": "Specify that the output should be parsed as 'oneToMany'." - } - ] - }, - "default": "oneToMany", - "description": "Controls the cardinality of the output produced by the skill. Default is 'oneToMany'." - }, - "DocumentIntelligenceLayoutSkillOutputFormat": { - "type": "string", - "enum": [ - "text", - "markdown" - ], - "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillOutputFormat", - "modelAsString": true, - "values": [ + "name": "Arabic", + "value": "arabic", + "description": "Selects the Microsoft stemming tokenizer for Arabic." + }, { - "value": "text", - "name": "Text", - "description": "Specify the format of the output as text." + "name": "Bangla", + "value": "bangla", + "description": "Selects the Microsoft stemming tokenizer for Bangla." }, { - "value": "markdown", - "name": "Markdown", - "description": "Specify the format of the output as markdown." - } - ] - }, - "default": "markdown", - "description": "Controls the cardinality of the output format. Default is 'markdown'." - }, - "DocumentIntelligenceLayoutSkillMarkdownHeaderDepth": { - "type": "string", - "enum": [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6" - ], - "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillMarkdownHeaderDepth", - "modelAsString": true, - "values": [ + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the Microsoft stemming tokenizer for Bulgarian." + }, { - "value": "h1", - "name": "H1", - "description": "Header level 1." + "name": "Catalan", + "value": "catalan", + "description": "Selects the Microsoft stemming tokenizer for Catalan." }, { - "value": "h2", - "name": "H2", - "description": "Header level 2." + "name": "Croatian", + "value": "croatian", + "description": "Selects the Microsoft stemming tokenizer for Croatian." }, { - "value": "h3", - "name": "H3", - "description": "Header level 3." + "name": "Czech", + "value": "czech", + "description": "Selects the Microsoft stemming tokenizer for Czech." }, { - "value": "h4", - "name": "H4", - "description": "Header level 4." + "name": "Danish", + "value": "danish", + "description": "Selects the Microsoft stemming tokenizer for Danish." }, { - "value": "h5", - "name": "H5", - "description": "Header level 5." + "name": "Dutch", + "value": "dutch", + "description": "Selects the Microsoft stemming tokenizer for Dutch." }, { - "value": "h6", - "name": "H6", - "description": "Header level 6." - } - ] - }, - "default": "h6", - "description": "The depth of headers in the markdown output. Default is h6." - }, - "ChatCompletionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Custom.ChatCompletionSkill", - "allOf": [ - { - "$ref": "#/definitions/WebApiSkill" - } - ], - "properties": { - "apiKey": { - "type": "string", - "description": "API key for authenticating to the model. Both apiKey and authIdentity cannot be specified at the same time." - }, - "commonModelParameters": { - "$ref": "#/definitions/ChatCompletionCommonModelParameters", - "description": "Common language model parameters that customers can tweak. If omitted, reasonable defaults will be applied." - }, - "extraParameters": { - "type": "object", - "additionalProperties": true, - "x-nullable": true, - "description": "Open-type dictionary for model-specific parameters that should be appended to the chat completions call. Follows Azure AI Foundry’s extensibility pattern." - }, - "extraParametersBehavior": { - "$ref": "#/definitions/ChatCompletionExtraParametersBehavior", - "description": "How extra parameters are handled by Azure AI Foundry. Default is 'error'." - }, - "responseFormat": { - "$ref": "#/definitions/ChatCompletionResponseFormat", - "description": "Determines how the LLM should format its response. Defaults to 'text' response type." - } - }, - "description": "A skill that calls a language model via Azure AI Foundry's Chat Completions endpoint." - }, - "ChatCompletionCommonModelParameters": { - "type": "object", - "x-ms-client-name": "CommonModelParameters", - "properties": { - "model": { - "type": "string", - "default": null, - "x-nullable": true, - "description": "The name of the model to use (e.g., 'gpt-4o', etc.). Default is null if not specified." - }, - "frequencyPenalty": { - "type": "number", - "default": 0, - "x-nullable": true, - "description": "A float in the range [-2,2] that reduces or increases likelihood of repeated tokens. Default is 0." - }, - "presencePenalty": { - "type": "number", - "default": 0, - "x-nullable": true, - "description": "A float in the range [-2,2] that penalizes new tokens based on their existing presence. Default is 0." - }, - "maxTokens": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Maximum number of tokens to generate." - }, - "temperature": { - "type": "number", - "default": 0.7, - "x-nullable": true, - "description": "Sampling temperature. Default is 0.7." - }, - "seed": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Random seed for controlling deterministic outputs. If omitted, randomization is used." - }, - "stop": { - "type": "array", - "x-nullable": true, - "items": { - "type": "string" + "name": "English", + "value": "english", + "description": "Selects the Microsoft stemming tokenizer for English." }, - "description": "List of stop sequences that will cut off text generation. Default is none." - } - }, - "description": "Common language model parameters for Chat Completions. If omitted, default values are used." - }, - "ChatCompletionExtraParametersBehavior": { - "type": "string", - "enum": [ - "pass-through", - "drop", - "error" - ], - "x-ms-enum": { - "name": "ChatCompletionExtraParametersBehavior", - "modelAsString": true, - "values": [ { - "value": "passThrough", - "name": "PassThrough", - "description": "Passes any extra parameters directly to the model." + "name": "Estonian", + "value": "estonian", + "description": "Selects the Microsoft stemming tokenizer for Estonian." }, { - "value": "drop", - "name": "Drop", - "description": "Drops all extra parameters." + "name": "Finnish", + "value": "finnish", + "description": "Selects the Microsoft stemming tokenizer for Finnish." }, { - "value": "error", - "name": "Error", - "description": "Raises an error if any extra parameter is present." - } - ] - }, - "default": "error", - "description": "Specifies how 'extraParameters' should be handled by Azure AI Foundry. Defaults to 'error'." - }, - "ChatCompletionResponseFormat": { - "type": "object", - "x-ms-client-name": "ChatCompletionResponseFormat", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "jsonObject", - "jsonSchema" - ], - "description": "Specifies how the LLM should format the response. Possible values: 'text' (plain string), 'json_object' (arbitrary JSON), or 'json_schema' (adheres to provided schema).", - "default": "text", - "x-ms-enum": { - "name": "ChatCompletionResponseFormatType", - "modelAsString": true - } - }, - "jsonSchemaProperties": { - "type": "object", - "x-ms-client-name": "ChatCompletionSchemaProperties", - "description": "An open dictionary for extended properties. Required if 'type' == 'json_schema'", - "x-nullable": true, - "properties": { - "name": { - "type": "string", - "x-nullable": true, - "description": "Name of the json schema the model will adhere to" - }, - "description": { - "type": "string", - "x-nullable": true, - "description": "Description of the json schema the model will adhere to." - }, - "strict": { - "type": "boolean", - "default": true, - "description": "Whether or not the model's response should use structured outputs. Default is true" - }, - "schema": { - "$ref": "#/definitions/ChatCompletionSchema" - } - } - } - }, - "description": "Determines how the language model's response should be serialized. Defaults to 'text'." - }, - "ChatCompletionSchema": { - "type": "object", - "x-ms-client-name": "ChatCompletionSchema", - "x-nullable": true, - "description": "Object defining the custom schema the model will use to structure its output.", - "properties": { - "type": { - "type": "string", - "default": "object", - "description": "Type of schema representation. Usually 'object'. Default is 'object'." - }, - "properties": { - "type": "string", - "description": "A JSON-formatted string that defines the output schema's properties and constraints for the model." - }, - "required": { - "type": "array", - "items": { - "type": "string" + "name": "French", + "value": "french", + "description": "Selects the Microsoft stemming tokenizer for French." }, - "description": "An array of the property names that are required to be part of the model's response. All properties must be included for structured outputs." - }, - "additionalProperties": { - "type": "boolean", - "default": false, - "description": "Controls whether it is allowable for an object to contain additional keys / values that were not defined in the JSON Schema. Default is false." - } - } - }, - "DocumentIntelligenceLayoutSkillExtractionOptions": { - "type": "string", - "enum": [ - "images", - "locationMetadata" - ], - "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillExtractionOptions", - "modelAsString": true, - "values": [ { - "value": "images", - "name": "Images", - "description": "Specify that image content should be extracted from the document." + "name": "German", + "value": "german", + "description": "Selects the Microsoft stemming tokenizer for German." }, { - "value": "locationMetadata", - "name": "LocationMetadata", - "description": "Specify that location metadata should be extracted from the document." - } - ] - }, - "description": "Controls the cardinality of the content extracted from the document by the skill." - }, - "DocumentIntelligenceLayoutSkillChunkingProperties": { - "type": "object", - "description": "Controls the cardinality for chunking the content.", - "properties": { - "unit": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillChunkingUnit", - "x-nullable": true, - "description": "The unit of the chunk." - }, - "maximumLength": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The maximum chunk length in characters. Default is 500." - }, - "overlapLength": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The length of overlap provided between two text chunks. Default is 0." - } - } - }, - "DocumentIntelligenceLayoutSkillChunkingUnit": { - "type": "string", - "enum": [ - "characters" - ], - "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillChunkingUnit", - "modelAsString": true, - "values": [ + "name": "Greek", + "value": "greek", + "description": "Selects the Microsoft stemming tokenizer for Greek." + }, { - "value": "characters", - "name": "Characters", - "description": "Specifies chunk by characters." + "name": "Gujarati", + "value": "gujarati", + "description": "Selects the Microsoft stemming tokenizer for Gujarati." + }, + { + "name": "Hebrew", + "value": "hebrew", + "description": "Selects the Microsoft stemming tokenizer for Hebrew." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the Microsoft stemming tokenizer for Hindi." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the Microsoft stemming tokenizer for Hungarian." + }, + { + "name": "Icelandic", + "value": "icelandic", + "description": "Selects the Microsoft stemming tokenizer for Icelandic." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the Microsoft stemming tokenizer for Indonesian." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the Microsoft stemming tokenizer for Italian." + }, + { + "name": "Kannada", + "value": "kannada", + "description": "Selects the Microsoft stemming tokenizer for Kannada." + }, + { + "name": "Latvian", + "value": "latvian", + "description": "Selects the Microsoft stemming tokenizer for Latvian." + }, + { + "name": "Lithuanian", + "value": "lithuanian", + "description": "Selects the Microsoft stemming tokenizer for Lithuanian." + }, + { + "name": "Malay", + "value": "malay", + "description": "Selects the Microsoft stemming tokenizer for Malay." + }, + { + "name": "Malayalam", + "value": "malayalam", + "description": "Selects the Microsoft stemming tokenizer for Malayalam." + }, + { + "name": "Marathi", + "value": "marathi", + "description": "Selects the Microsoft stemming tokenizer for Marathi." + }, + { + "name": "NorwegianBokmaal", + "value": "norwegianBokmaal", + "description": "Selects the Microsoft stemming tokenizer for Norwegian (BokmÃ¥l)." + }, + { + "name": "Polish", + "value": "polish", + "description": "Selects the Microsoft stemming tokenizer for Polish." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the Microsoft stemming tokenizer for Portuguese." + }, + { + "name": "PortugueseBrazilian", + "value": "portugueseBrazilian", + "description": "Selects the Microsoft stemming tokenizer for Portuguese (Brazil)." + }, + { + "name": "Punjabi", + "value": "punjabi", + "description": "Selects the Microsoft stemming tokenizer for Punjabi." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the Microsoft stemming tokenizer for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the Microsoft stemming tokenizer for Russian." + }, + { + "name": "SerbianCyrillic", + "value": "serbianCyrillic", + "description": "Selects the Microsoft stemming tokenizer for Serbian (Cyrillic)." + }, + { + "name": "SerbianLatin", + "value": "serbianLatin", + "description": "Selects the Microsoft stemming tokenizer for Serbian (Latin)." + }, + { + "name": "Slovak", + "value": "slovak", + "description": "Selects the Microsoft stemming tokenizer for Slovak." + }, + { + "name": "Slovenian", + "value": "slovenian", + "description": "Selects the Microsoft stemming tokenizer for Slovenian." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the Microsoft stemming tokenizer for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the Microsoft stemming tokenizer for Swedish." + }, + { + "name": "Tamil", + "value": "tamil", + "description": "Selects the Microsoft stemming tokenizer for Tamil." + }, + { + "name": "Telugu", + "value": "telugu", + "description": "Selects the Microsoft stemming tokenizer for Telugu." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the Microsoft stemming tokenizer for Turkish." + }, + { + "name": "Ukrainian", + "value": "ukrainian", + "description": "Selects the Microsoft stemming tokenizer for Ukrainian." + }, + { + "name": "Urdu", + "value": "urdu", + "description": "Selects the Microsoft stemming tokenizer for Urdu." } ] - }, - "default": "characters", - "description": "Controls the cardinality of the chunk unit. Default is 'characters'" - }, - "ContentUnderstandingSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.ContentUnderstandingSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "extractionOptions": { - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/ContentUnderstandingSkillExtractionOptions" - }, - "description": "Controls the cardinality of the content extracted from the document by the skill" - }, - "chunkingProperties": { - "$ref": "#/definitions/ContentUnderstandingSkillChunkingProperties", - "x-nullable": true, - "description": "Controls the cardinality for chunking the content." - } - }, - "description": "A skill that leverages Azure AI Content Understanding to process and extract structured insights from documents, enabling enriched, searchable content for enhanced document indexing and retrieval" + } }, - "ContentUnderstandingSkillExtractionOptions": { + "MicrosoftTokenizerLanguage": { "type": "string", + "description": "Lists the languages supported by the Microsoft language tokenizer.", "enum": [ - "images", - "locationMetadata" + "bangla", + "bulgarian", + "catalan", + "chineseSimplified", + "chineseTraditional", + "croatian", + "czech", + "danish", + "dutch", + "english", + "french", + "german", + "greek", + "gujarati", + "hindi", + "icelandic", + "indonesian", + "italian", + "japanese", + "kannada", + "korean", + "malay", + "malayalam", + "marathi", + "norwegianBokmaal", + "polish", + "portuguese", + "portugueseBrazilian", + "punjabi", + "romanian", + "russian", + "serbianCyrillic", + "serbianLatin", + "slovenian", + "spanish", + "swedish", + "tamil", + "telugu", + "thai", + "ukrainian", + "urdu", + "vietnamese" ], "x-ms-enum": { - "name": "ContentUnderstandingSkillExtractionOptions", + "name": "MicrosoftTokenizerLanguage", "modelAsString": true, "values": [ { - "value": "images", - "name": "Images", - "description": "Specify that image content should be extracted from the document." + "name": "Bangla", + "value": "bangla", + "description": "Selects the Microsoft tokenizer for Bangla." }, { - "value": "locationMetadata", - "name": "LocationMetadata", - "description": "Specify that location metadata should be extracted from the document." - } - ] - }, - "description": "Controls the cardinality of the content extracted from the document by the skill." + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the Microsoft tokenizer for Bulgarian." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the Microsoft tokenizer for Catalan." + }, + { + "name": "ChineseSimplified", + "value": "chineseSimplified", + "description": "Selects the Microsoft tokenizer for Chinese (Simplified)." + }, + { + "name": "ChineseTraditional", + "value": "chineseTraditional", + "description": "Selects the Microsoft tokenizer for Chinese (Traditional)." + }, + { + "name": "Croatian", + "value": "croatian", + "description": "Selects the Microsoft tokenizer for Croatian." + }, + { + "name": "Czech", + "value": "czech", + "description": "Selects the Microsoft tokenizer for Czech." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the Microsoft tokenizer for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the Microsoft tokenizer for Dutch." + }, + { + "name": "English", + "value": "english", + "description": "Selects the Microsoft tokenizer for English." + }, + { + "name": "French", + "value": "french", + "description": "Selects the Microsoft tokenizer for French." + }, + { + "name": "German", + "value": "german", + "description": "Selects the Microsoft tokenizer for German." + }, + { + "name": "Greek", + "value": "greek", + "description": "Selects the Microsoft tokenizer for Greek." + }, + { + "name": "Gujarati", + "value": "gujarati", + "description": "Selects the Microsoft tokenizer for Gujarati." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the Microsoft tokenizer for Hindi." + }, + { + "name": "Icelandic", + "value": "icelandic", + "description": "Selects the Microsoft tokenizer for Icelandic." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the Microsoft tokenizer for Indonesian." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the Microsoft tokenizer for Italian." + }, + { + "name": "Japanese", + "value": "japanese", + "description": "Selects the Microsoft tokenizer for Japanese." + }, + { + "name": "Kannada", + "value": "kannada", + "description": "Selects the Microsoft tokenizer for Kannada." + }, + { + "name": "Korean", + "value": "korean", + "description": "Selects the Microsoft tokenizer for Korean." + }, + { + "name": "Malay", + "value": "malay", + "description": "Selects the Microsoft tokenizer for Malay." + }, + { + "name": "Malayalam", + "value": "malayalam", + "description": "Selects the Microsoft tokenizer for Malayalam." + }, + { + "name": "Marathi", + "value": "marathi", + "description": "Selects the Microsoft tokenizer for Marathi." + }, + { + "name": "NorwegianBokmaal", + "value": "norwegianBokmaal", + "description": "Selects the Microsoft tokenizer for Norwegian (BokmÃ¥l)." + }, + { + "name": "Polish", + "value": "polish", + "description": "Selects the Microsoft tokenizer for Polish." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the Microsoft tokenizer for Portuguese." + }, + { + "name": "PortugueseBrazilian", + "value": "portugueseBrazilian", + "description": "Selects the Microsoft tokenizer for Portuguese (Brazil)." + }, + { + "name": "Punjabi", + "value": "punjabi", + "description": "Selects the Microsoft tokenizer for Punjabi." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the Microsoft tokenizer for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the Microsoft tokenizer for Russian." + }, + { + "name": "SerbianCyrillic", + "value": "serbianCyrillic", + "description": "Selects the Microsoft tokenizer for Serbian (Cyrillic)." + }, + { + "name": "SerbianLatin", + "value": "serbianLatin", + "description": "Selects the Microsoft tokenizer for Serbian (Latin)." + }, + { + "name": "Slovenian", + "value": "slovenian", + "description": "Selects the Microsoft tokenizer for Slovenian." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the Microsoft tokenizer for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the Microsoft tokenizer for Swedish." + }, + { + "name": "Tamil", + "value": "tamil", + "description": "Selects the Microsoft tokenizer for Tamil." + }, + { + "name": "Telugu", + "value": "telugu", + "description": "Selects the Microsoft tokenizer for Telugu." + }, + { + "name": "Thai", + "value": "thai", + "description": "Selects the Microsoft tokenizer for Thai." + }, + { + "name": "Ukrainian", + "value": "ukrainian", + "description": "Selects the Microsoft tokenizer for Ukrainian." + }, + { + "name": "Urdu", + "value": "urdu", + "description": "Selects the Microsoft tokenizer for Urdu." + }, + { + "name": "Vietnamese", + "value": "vietnamese", + "description": "Selects the Microsoft tokenizer for Vietnamese." + } + ] + } }, - "ContentUnderstandingSkillChunkingProperties": { + "NGramTokenFilter": { "type": "object", - "description": "Controls the cardinality for chunking the content.", + "description": "Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.", "properties": { - "unit": { - "$ref": "#/definitions/ContentUnderstandingSkillChunkingUnit", - "x-nullable": true, - "description": "The unit of the chunk." - }, - "maximumLength": { + "minGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "The maximum chunk length in characters. Default is 500." + "description": "The minimum n-gram length. Default is 1. Must be less than the value of maxGram.", + "default": 1 }, - "overlapLength": { + "maxGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "The length of overlap provided between two text chunks. Default is 0." + "description": "The maximum n-gram length. Default is 2.", + "default": 2 } - } - }, - "ContentUnderstandingSkillChunkingUnit": { - "type": "string", - "enum": [ - "characters" - ], - "x-ms-enum": { - "name": "ContentUnderstandingSkillChunkingUnit", - "modelAsString": true, - "values": [ - { - "value": "characters", - "name": "Characters", - "description": "Specifies chunk by characters." - } - ] }, - "default": "characters", - "description": "Controls the cardinality of the chunk unit. Default is 'characters'" - }, - "WebApiSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Custom.WebApiSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenFilter" + }, + "NGramTokenFilterV2": { + "type": "object", + "description": "Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.", "properties": { - "uri": { - "type": "string", - "description": "The url for the Web API." - }, - "httpHeaders": { - "$ref": "#/definitions/WebApiHttpHeaders", - "description": "The headers required to make the http request." + "minGram": { + "type": "integer", + "format": "int32", + "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.", + "default": 1, + "maximum": 300 }, - "httpMethod": { - "type": "string", - "description": "The method for the http request." - }, - "timeout": { - "type": "string", - "format": "duration", - "description": "The desired timeout for the request. Default is 30 seconds." - }, - "batchSize": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The desired batch size which indicates number of documents." - }, - "degreeOfParallelism": { + "maxGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "If set, the number of parallel calls that can be made to the Web API." - }, - "authResourceId": { - "type": "string", - "x-nullable": true, - "x-ms-format": "arm-id", - "description": "Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token." - }, - "authIdentity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." + "description": "The maximum n-gram length. Default is 2. Maximum is 300.", + "default": 2, + "maximum": 300 } }, - "required": [ - "uri" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-custom-skill-web-api" - }, - "description": "A skill that can call a Web API endpoint, allowing you to extend a skillset by having it call your custom code." - }, - "WebApiHttpHeaders": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A dictionary of http request headers." - }, - "AmlSkill": { - "type": "object", - "x-ms-client-name": "AzureMachineLearningSkill", - "x-ms-discriminator-value": "#Microsoft.Skills.Custom.AmlSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenFilterV2" + }, + "NGramTokenizer": { + "type": "object", + "description": "Tokenizes the input into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.", "properties": { - "uri": { - "x-ms-client-name": "ScoringUri", - "type": "string", - "format": "uri", - "x-nullable": true, - "description": "(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed." - }, - "key": { - "x-ms-client-name": "AuthenticationKey", - "type": "string", - "x-nullable": true, - "description": "(Required for key authentication) The key for the AML service." - }, - "resourceId": { - "type": "string", - "x-nullable": true, - "description": "(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}." - }, - "timeout": { - "type": "string", - "format": "duration", - "x-nullable": true, - "description": "(Optional) When specified, indicates the timeout for the http client making the API call." - }, - "region": { - "type": "string", - "x-nullable": true, - "description": "(Optional for token authentication). The region the AML service is deployed in." - }, - "degreeOfParallelism": { + "minGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "(Optional) When specified, indicates the number of calls the indexer will make in parallel to the endpoint you have provided. You can decrease this value if your endpoint is failing under too high of a request load, or raise it if your endpoint is able to accept more requests and you would like an increase in the performance of the indexer. If not set, a default value of 5 is used. The degreeOfParallelism can be set to a maximum of 10 and a minimum of 1." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/en-us/azure/search/cognitive-search-aml-skill" - }, - "description": "The AML skill allows you to extend AI enrichment with a custom Azure Machine Learning (AML) model. Once an AML model is trained and deployed, an AML skill integrates it into AI enrichment." - }, - "AzureOpenAIEmbeddingSkill": { - "type": "object", - "x-ms-client-name": "AzureOpenAIEmbeddingSkill", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" + "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.", + "default": 1, + "maximum": 300 }, - { - "$ref": "#/definitions/AzureOpenAIParameters" - } - ], - "properties": { - "dimensions": { + "maxGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models." + "description": "The maximum n-gram length. Default is 2. Maximum is 300.", + "default": 2, + "maximum": 300 + }, + "tokenChars": { + "type": "array", + "description": "Character classes to keep in the tokens.", + "items": { + "$ref": "#/definitions/TokenCharacterKind" + } } }, - "description": "Allows you to generate a vector embedding for a given text input using the Azure OpenAI resource." - }, - "VisionVectorizeSkill": { - "type": "object", - "x-ms-client-name": "VisionVectorizeSkill", - "x-ms-discriminator-value": "#Microsoft.Skills.Vision.VectorizeSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified." + "$ref": "#/definitions/LexicalTokenizer" } - }, - "required": [ - "modelVersion" ], - "description": "Allows you to generate a vector embedding for a given image or text input using the Azure AI Services Vision Vectorize API." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenizer" }, - "ListSkillsetsResult": { + "NativeBlobSoftDeleteDeletionDetectionPolicy": { "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Skillsets", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexerSkillset" - }, - "description": "The skillsets defined in the Search service." + "description": "Defines a data deletion detection policy utilizing Azure Blob Storage's native soft delete feature for deletion detection.", + "allOf": [ + { + "$ref": "#/definitions/DataDeletionDetectionPolicy" } - }, - "required": [ - "value" ], - "description": "Response from a list skillset request. If successful, it includes the full definitions of all skillsets." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy" }, - "TextSplitMode": { + "OcrLineEnding": { "type": "string", + "description": "Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\".", "enum": [ - "pages", - "sentences" + "space", + "carriageReturn", + "lineFeed", + "carriageReturnLineFeed" ], "x-ms-enum": { - "name": "TextSplitMode", + "name": "OcrLineEnding", "modelAsString": true, "values": [ { - "value": "pages", - "name": "Pages", - "description": "Split the text into individual pages." + "name": "Space", + "value": "space", + "description": "Lines are separated by a single space character." }, { - "value": "sentences", - "name": "Sentences", - "description": "Split the text into individual sentences." - } - ] - }, - "description": "A value indicating which split mode to perform." - }, - "SplitSkillUnit": { - "type": "string", - "enum": [ - "characters", - "azureOpenAITokens" - ], - "x-ms-enum": { - "name": "SplitSkillUnit", - "modelAsString": true, - "values": [ + "name": "CarriageReturn", + "value": "carriageReturn", + "description": "Lines are separated by a carriage return ('\r') character." + }, { - "value": "characters", - "name": "Characters", - "description": "The length will be measured by character." + "name": "LineFeed", + "value": "lineFeed", + "description": "Lines are separated by a single line feed ('\n') character." }, { - "value": "azureOpenAITokens", - "name": "AzureOpenAITokens", - "description": "The length will be measured by an AzureOpenAI tokenizer from the tiktoken library." + "name": "CarriageReturnLineFeed", + "value": "carriageReturnLineFeed", + "description": "Lines are separated by a carriage return and a line feed ('\r\n') character." } ] - }, - "description": "A value indicating which unit to use." + } }, - "AzureOpenAITokenizerParameters": { + "OcrSkill": { "type": "object", + "description": "A skill that extracts text from image files.", "properties": { - "encoderModelName": { - "$ref": "#/definitions/EncoderModelName", - "x-nullable": true, - "description": "Only applies if the unit is set to azureOpenAITokens. Options include 'R50k_base', 'P50k_base', 'P50k_edit' and 'CL100k_base'. The default value is 'CL100k_base'." + "defaultLanguageCode": { + "$ref": "#/definitions/OcrSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." }, - "allowedSpecialTokens": { - "type": "array", - "items": { - "type": "string" - }, - "description": "(Optional) Only applies if the unit is set to azureOpenAITokens. This parameter defines a collection of special tokens that are permitted within the tokenization process." + "detectOrientation": { + "type": "boolean", + "description": "A value indicating to turn orientation detection on or not. Default is false.", + "default": false + }, + "lineEnding": { + "$ref": "#/definitions/OcrLineEnding", + "description": "Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\"." } - } - }, - "EncoderModelName": { - "type": "string", - "enum": [ - "r50k_base", - "p50k_base", - "p50k_edit", - "cl100k_base" - ], - "x-ms-enum": { - "name": "SplitSkillEncoderModelName", - "modelAsString": true, - "values": [ - { - "value": "r50k_base", - "name": "R50kBase", - "description": "Refers to a base model trained with a 50,000 token vocabulary, often used in general natural language processing tasks." - }, - { - "value": "p50k_base", - "name": "P50kBase", - "description": "A base model with a 50,000 token vocabulary, optimized for prompt-based tasks." - }, - { - "value": "p50k_edit", - "name": "P50kEdit", - "description": "Similar to p50k_base but fine-tuned for editing or rephrasing tasks with a 50,000 token vocabulary." - }, - { - "value": "cl100k_base", - "name": "CL100kBase", - "description": "A base model with a 100,000 token vocabulary." - } - ] }, - "description": "A value indicating which tokenizer to use." + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Vision.OcrSkill" }, - "VisualFeature": { + "OcrSkillLanguage": { "type": "string", + "description": "The language codes supported for input by OcrSkill.", "enum": [ - "adult", - "brands", - "categories", - "description", - "faces", - "objects", - "tags" - ], - "x-ms-enum": { - "name": "VisualFeature", - "modelAsString": true, - "values": [ - { - "value": "adult", - "name": "Adult", - "description": "Visual features recognized as adult persons." - }, - { - "value": "brands", - "name": "Brands", - "description": "Visual features recognized as commercial brands." - }, - { - "value": "categories", - "name": "Categories", - "description": "Categories." - }, - { - "value": "description", - "name": "Description", - "description": "Description." - }, - { - "value": "faces", - "name": "Faces", - "description": "Visual features recognized as people faces." - }, - { - "value": "objects", - "name": "Objects", - "description": "Visual features recognized as objects." - }, - { - "value": "tags", - "name": "Tags", - "description": "Tags." - } - ] - }, - "description": "The strings indicating what visual feature types to return." - }, - "ImageDetail": { - "type": "string", - "enum": [ - "celebrities", - "landmarks" + "af", + "sq", + "anp", + "ar", + "ast", + "awa", + "az", + "bfy", + "eu", + "be", + "be-cyrl", + "be-latn", + "bho", + "bi", + "brx", + "bs", + "bra", + "br", + "bg", + "bns", + "bua", + "ca", + "ceb", + "rab", + "ch", + "hne", + "zh-Hans", + "zh-Hant", + "kw", + "co", + "crh", + "hr", + "cs", + "da", + "prs", + "dhi", + "doi", + "nl", + "en", + "myv", + "et", + "fo", + "fj", + "fil", + "fi", + "fr", + "fur", + "gag", + "gl", + "de", + "gil", + "gon", + "el", + "kl", + "gvr", + "ht", + "hlb", + "hni", + "bgc", + "haw", + "hi", + "mww", + "hoc", + "hu", + "is", + "smn", + "id", + "ia", + "iu", + "ga", + "it", + "ja", + "Jns", + "jv", + "kea", + "kac", + "xnr", + "krc", + "kaa-cyrl", + "kaa", + "csb", + "kk-cyrl", + "kk-latn", + "klr", + "kha", + "quc", + "ko", + "kfq", + "kpy", + "kos", + "kum", + "ku-arab", + "ku-latn", + "kru", + "ky", + "lkt", + "la", + "lt", + "dsb", + "smj", + "lb", + "bfz", + "ms", + "mt", + "kmj", + "gv", + "mi", + "mr", + "mn", + "cnr-cyrl", + "cnr-latn", + "nap", + "ne", + "niu", + "nog", + "sme", + "nb", + "no", + "oc", + "os", + "ps", + "fa", + "pl", + "pt", + "pa", + "ksh", + "ro", + "rm", + "ru", + "sck", + "sm", + "sa", + "sat", + "sco", + "gd", + "sr", + "sr-Cyrl", + "sr-Latn", + "xsr", + "srx", + "sms", + "sk", + "sl", + "so", + "sma", + "es", + "sw", + "sv", + "tg", + "tt", + "tet", + "thf", + "to", + "tr", + "tk", + "tyv", + "hsb", + "ur", + "ug", + "uz-arab", + "uz-cyrl", + "uz", + "vo", + "wae", + "cy", + "fy", + "yua", + "za", + "zu", + "unk" ], "x-ms-enum": { - "name": "ImageDetail", + "name": "OcrSkillLanguage", "modelAsString": true, "values": [ { - "value": "celebrities", - "name": "Celebrities", - "description": "Details recognized as celebrities." + "name": "af", + "value": "af", + "description": "Afrikaans" }, { - "value": "landmarks", - "name": "Landmarks", - "description": "Details recognized as landmarks." - } - ] - }, - "description": "A string indicating which domain-specific details to return." - }, - "EntityCategory": { - "type": "string", - "enum": [ - "location", - "organization", - "person", - "quantity", - "datetime", - "url", - "email" - ], - "x-ms-enum": { - "name": "EntityCategory", - "modelAsString": true, - "values": [ - { - "value": "location", - "name": "Location", - "description": "Entities describing a physical location." + "name": "sq", + "value": "sq", + "description": "Albanian" }, { - "value": "organization", - "name": "Organization", - "description": "Entities describing an organization." + "name": "anp", + "value": "anp", + "description": "Angika (Devanagiri)" }, { - "value": "person", - "name": "Person", - "description": "Entities describing a person." + "name": "ar", + "value": "ar", + "description": "Arabic" }, { - "value": "quantity", - "name": "Quantity", - "description": "Entities describing a quantity." + "name": "ast", + "value": "ast", + "description": "Asturian" }, { - "value": "datetime", - "name": "Datetime", - "description": "Entities describing a date and time." + "name": "awa", + "value": "awa", + "description": "Awadhi-Hindi (Devanagiri)" }, { - "value": "url", - "name": "Url", - "description": "Entities describing a URL." + "name": "az", + "value": "az", + "description": "Azerbaijani (Latin)" }, { - "value": "email", - "name": "Email", - "description": "Entities describing an email address." - } - ] - }, - "description": "A string indicating what entity categories to return." - }, - "PIIDetectionSkillMaskingMode": { - "type": "string", - "enum": [ - "none", - "replace" - ], - "x-ms-enum": { - "name": "PIIDetectionSkillMaskingMode", - "modelAsString": true, - "values": [ + "name": "bfy", + "value": "bfy", + "description": "Bagheli" + }, { - "value": "none", - "name": "None", - "description": "No masking occurs and the maskedText output will not be returned." + "name": "eu", + "value": "eu", + "description": "Basque" }, { - "value": "replace", - "name": "Replace", - "description": "Replaces the detected entities with the character given in the maskingCharacter parameter. The character will be repeated to the length of the detected entity so that the offsets will correctly correspond to both the input text as well as the output maskedText." - } - ] - }, - "description": "A string indicating what maskingMode to use to mask the personal information detected in the input text." - }, - "SentimentSkillLanguage": { - "type": "string", - "enum": [ - "da", - "nl", - "en", - "fi", - "fr", - "de", - "el", - "it", - "no", - "pl", - "pt-PT", - "ru", - "es", - "sv", - "tr" - ], - "x-ms-enum": { - "name": "SentimentSkillLanguage", - "modelAsString": true, - "values": [ + "name": "be", + "value": "be", + "description": "Belarusian (Cyrillic and Latin)" + }, { - "value": "da", - "description": "Danish" + "name": "be-cyrl", + "value": "be-cyrl", + "description": "Belarusian (Cyrillic)" }, { - "value": "nl", - "description": "Dutch" + "name": "be-latn", + "value": "be-latn", + "description": "Belarusian (Latin)" }, { - "value": "en", - "description": "English" + "name": "bho", + "value": "bho", + "description": "Bhojpuri-Hindi (Devanagiri)" }, { - "value": "fi", - "description": "Finnish" + "name": "bi", + "value": "bi", + "description": "Bislama" }, { - "value": "fr", - "description": "French" + "name": "brx", + "value": "brx", + "description": "Bodo (Devanagiri)" }, { - "value": "de", - "description": "German" + "name": "bs", + "value": "bs", + "description": "Bosnian Latin" }, { - "value": "el", - "description": "Greek" + "name": "bra", + "value": "bra", + "description": "Brajbha" }, { - "value": "it", - "description": "Italian" + "name": "br", + "value": "br", + "description": "Breton" }, { - "value": "no", - "description": "Norwegian (Bokmaal)" + "name": "bg", + "value": "bg", + "description": "Bulgarian" }, { - "value": "pl", - "description": "Polish" + "name": "bns", + "value": "bns", + "description": "Bundeli" }, { - "value": "pt-PT", - "description": "Portuguese (Portugal)" + "name": "bua", + "value": "bua", + "description": "Buryat (Cyrillic)" }, { - "value": "ru", - "description": "Russian" + "name": "ca", + "value": "ca", + "description": "Catalan" }, { - "value": "es", - "description": "Spanish" + "name": "ceb", + "value": "ceb", + "description": "Cebuano" }, { - "value": "sv", - "description": "Swedish" + "name": "rab", + "value": "rab", + "description": "Chamling" }, { - "value": "tr", - "description": "Turkish" - } - ] - }, - "description": "Deprecated. The language codes supported for input text by SentimentSkill.", - "x-az-search-deprecated": true - }, - "KeyPhraseExtractionSkillLanguage": { - "type": "string", - "enum": [ - "da", - "nl", - "en", - "fi", - "fr", - "de", - "it", - "ja", - "ko", - "no", - "pl", - "pt-PT", - "pt-BR", - "ru", - "es", - "sv" - ], - "x-ms-enum": { - "name": "KeyPhraseExtractionSkillLanguage", - "modelAsString": true, - "values": [ + "name": "ch", + "value": "ch", + "description": "Chamorro" + }, + { + "name": "hne", + "value": "hne", + "description": "Chhattisgarhi (Devanagiri)" + }, + { + "name": "zh-Hans", + "value": "zh-Hans", + "description": "Chinese Simplified" + }, + { + "name": "zh-Hant", + "value": "zh-Hant", + "description": "Chinese Traditional" + }, + { + "name": "kw", + "value": "kw", + "description": "Cornish" + }, + { + "name": "co", + "value": "co", + "description": "Corsican" + }, + { + "name": "crh", + "value": "crh", + "description": "Crimean Tatar (Latin)" + }, + { + "name": "hr", + "value": "hr", + "description": "Croatian" + }, + { + "name": "cs", + "value": "cs", + "description": "Czech" + }, { + "name": "da", "value": "da", "description": "Danish" }, { + "name": "prs", + "value": "prs", + "description": "Dari" + }, + { + "name": "dhi", + "value": "dhi", + "description": "Dhimal (Devanagiri)" + }, + { + "name": "doi", + "value": "doi", + "description": "Dogri (Devanagiri)" + }, + { + "name": "nl", "value": "nl", "description": "Dutch" }, { + "name": "en", "value": "en", "description": "English" }, { + "name": "myv", + "value": "myv", + "description": "Erzya (Cyrillic)" + }, + { + "name": "et", + "value": "et", + "description": "Estonian" + }, + { + "name": "fo", + "value": "fo", + "description": "Faroese" + }, + { + "name": "fj", + "value": "fj", + "description": "Fijian" + }, + { + "name": "fil", + "value": "fil", + "description": "Filipino" + }, + { + "name": "fi", "value": "fi", "description": "Finnish" }, { + "name": "fr", "value": "fr", "description": "French" }, { - "value": "de", - "description": "German" + "name": "fur", + "value": "fur", + "description": "Frulian" }, { - "value": "it", - "description": "Italian" + "name": "gag", + "value": "gag", + "description": "Gagauz (Latin)" }, { - "value": "ja", - "description": "Japanese" + "name": "gl", + "value": "gl", + "description": "Galician" }, { - "value": "ko", - "description": "Korean" + "name": "de", + "value": "de", + "description": "German" }, { - "value": "no", - "description": "Norwegian (Bokmaal)" + "name": "gil", + "value": "gil", + "description": "Gilbertese" }, { - "value": "pl", - "description": "Polish" + "name": "gon", + "value": "gon", + "description": "Gondi (Devanagiri)" }, { - "value": "pt-PT", - "description": "Portuguese (Portugal)" + "name": "el", + "value": "el", + "description": "Greek" }, { - "value": "pt-BR", - "description": "Portuguese (Brazil)" + "name": "kl", + "value": "kl", + "description": "Greenlandic" }, { - "value": "ru", - "description": "Russian" + "name": "gvr", + "value": "gvr", + "description": "Gurung (Devanagiri)" }, { - "value": "es", - "description": "Spanish" + "name": "ht", + "value": "ht", + "description": "Haitian Creole" }, { - "value": "sv", - "description": "Swedish" - } - ] - }, - "description": "The language codes supported for input text by KeyPhraseExtractionSkill." - }, - "OcrSkillLanguage": { - "type": "string", - "enum": [ - "af", - "sq", - "anp", - "ar", - "ast", - "awa", - "az", - "bfy", - "eu", - "be", - "be-cyrl", - "be-latn", - "bho", - "bi", - "brx", - "bs", - "bra", - "br", - "bg", - "bns", - "bua", - "ca", - "ceb", - "rab", - "ch", - "hne", - "zh-Hans", - "zh-Hant", - "kw", - "co", - "crh", - "hr", - "cs", - "da", - "prs", - "dhi", - "doi", - "nl", - "en", - "myv", - "et", - "fo", - "fj", - "fil", - "fi", - "fr", - "fur", - "gag", - "gl", - "de", - "gil", - "gon", - "el", - "kl", - "gvr", - "ht", - "hlb", - "hni", - "bgc", - "haw", - "hi", - "mww", - "hoc", - "hu", - "is", - "smn", - "id", - "ia", - "iu", - "ga", - "it", - "ja", - "Jns", - "jv", - "kea", - "kac", - "xnr", - "krc", - "kaa-cyrl", - "kaa", - "csb", - "kk-cyrl", - "kk-latn", - "klr", - "kha", - "quc", - "ko", - "kfq", - "kpy", - "kos", - "kum", - "ku-arab", - "ku-latn", - "kru", - "ky", - "lkt", - "la", - "lt", - "dsb", - "smj", - "lb", - "bfz", - "ms", - "mt", - "kmj", - "gv", - "mi", - "mr", - "mn", - "cnr-cyrl", - "cnr-latn", - "nap", - "ne", - "niu", - "nog", - "sme", - "nb", - "no", - "oc", - "os", - "ps", - "fa", - "pl", - "pt", - "pa", - "ksh", - "ro", - "rm", - "ru", - "sck", - "sm", - "sa", - "sat", - "sco", - "gd", - "sr", - "sr-Cyrl", - "sr-Latn", - "xsr", - "srx", - "sms", - "sk", - "sl", - "so", - "sma", - "es", - "sw", - "sv", - "tg", - "tt", - "tet", - "thf", - "to", - "tr", - "tk", - "tyv", - "hsb", - "ur", - "ug", - "uz-arab", - "uz-cyrl", - "uz", - "vo", - "wae", - "cy", - "fy", - "yua", - "za", - "zu", - "unk" - ], - "x-ms-enum": { - "name": "OcrSkillLanguage", - "modelAsString": true, - "values": [ - { - "value": "af", - "description": "Afrikaans" + "name": "hlb", + "value": "hlb", + "description": "Halbi (Devanagiri)" }, { - "value": "sq", - "description": "Albanian" + "name": "hni", + "value": "hni", + "description": "Hani" }, { - "value": "anp", - "description": "Angika (Devanagiri)" + "name": "bgc", + "value": "bgc", + "description": "Haryanvi" }, { - "value": "ar", - "description": "Arabic" + "name": "haw", + "value": "haw", + "description": "Hawaiian" }, { - "value": "ast", - "description": "Asturian" + "name": "hi", + "value": "hi", + "description": "Hindi" }, { - "value": "awa", - "description": "Awadhi-Hindi (Devanagiri)" + "name": "mww", + "value": "mww", + "description": "Hmong Daw (Latin)" }, { - "value": "az", - "description": "Azerbaijani (Latin)" + "name": "hoc", + "value": "hoc", + "description": "Ho (Devanagiri)" }, { - "value": "bfy", - "description": "Bagheli" + "name": "hu", + "value": "hu", + "description": "Hungarian" }, { - "value": "eu", - "description": "Basque" + "name": "is", + "value": "is", + "description": "Icelandic" }, { - "value": "be", - "description": "Belarusian (Cyrillic and Latin)" + "name": "smn", + "value": "smn", + "description": "Inari Sami" }, { - "value": "be-cyrl", - "description": "Belarusian (Cyrillic)" + "name": "id", + "value": "id", + "description": "Indonesian" }, { - "value": "be-latn", - "description": "Belarusian (Latin)" + "name": "ia", + "value": "ia", + "description": "Interlingua" }, { - "value": "bho", - "description": "Bhojpuri-Hindi (Devanagiri)" + "name": "iu", + "value": "iu", + "description": "Inuktitut (Latin)" }, { - "value": "bi", - "description": "Bislama" + "name": "ga", + "value": "ga", + "description": "Irish" }, { - "value": "brx", - "description": "Bodo (Devanagiri)" + "name": "it", + "value": "it", + "description": "Italian" }, { - "value": "bs", - "description": "Bosnian Latin" + "name": "ja", + "value": "ja", + "description": "Japanese" }, { - "value": "bra", - "description": "Brajbha" + "name": "Jns", + "value": "Jns", + "description": "Jaunsari (Devanagiri)" }, { - "value": "br", - "description": "Breton" + "name": "jv", + "value": "jv", + "description": "Javanese" }, { - "value": "bg", - "description": "Bulgarian" - }, - { - "value": "bns", - "description": "Bundeli" - }, - { - "value": "bua", - "description": "Buryat (Cyrillic)" - }, - { - "value": "ca", - "description": "Catalan" - }, - { - "value": "ceb", - "description": "Cebuano" - }, - { - "value": "rab", - "description": "Chamling" - }, - { - "value": "ch", - "description": "Chamorro" - }, - { - "value": "hne", - "description": "Chhattisgarhi (Devanagiri)" - }, - { - "value": "zh-Hans", - "description": "Chinese Simplified" - }, - { - "value": "zh-Hant", - "description": "Chinese Traditional" - }, - { - "value": "kw", - "description": "Cornish" - }, - { - "value": "co", - "description": "Corsican" - }, - { - "value": "crh", - "description": "Crimean Tatar (Latin)" - }, - { - "value": "hr", - "description": "Croatian" - }, - { - "value": "cs", - "description": "Czech" - }, - { - "value": "da", - "description": "Danish" - }, - { - "value": "prs", - "description": "Dari" - }, - { - "value": "dhi", - "description": "Dhimal (Devanagiri)" - }, - { - "value": "doi", - "description": "Dogri (Devanagiri)" - }, - { - "value": "nl", - "description": "Dutch" - }, - { - "value": "en", - "description": "English" - }, - { - "value": "myv", - "description": "Erzya (Cyrillic)" - }, - { - "value": "et", - "description": "Estonian" - }, - { - "value": "fo", - "description": "Faroese" - }, - { - "value": "fj", - "description": "Fijian" - }, - { - "value": "fil", - "description": "Filipino" - }, - { - "value": "fi", - "description": "Finnish" - }, - { - "value": "fr", - "description": "French" - }, - { - "value": "fur", - "description": "Frulian" - }, - { - "value": "gag", - "description": "Gagauz (Latin)" - }, - { - "value": "gl", - "description": "Galician" - }, - { - "value": "de", - "description": "German" - }, - { - "value": "gil", - "description": "Gilbertese" - }, - { - "value": "gon", - "description": "Gondi (Devanagiri)" - }, - { - "value": "el", - "description": "Greek" - }, - { - "value": "kl", - "description": "Greenlandic" - }, - { - "value": "gvr", - "description": "Gurung (Devanagiri)" - }, - { - "value": "ht", - "description": "Haitian Creole" - }, - { - "value": "hlb", - "description": "Halbi (Devanagiri)" - }, - { - "value": "hni", - "description": "Hani" - }, - { - "value": "bgc", - "description": "Haryanvi" - }, - { - "value": "haw", - "description": "Hawaiian" - }, - { - "value": "hi", - "description": "Hindi" - }, - { - "value": "mww", - "description": "Hmong Daw (Latin)" - }, - { - "value": "hoc", - "description": "Ho (Devanagiri)" - }, - { - "value": "hu", - "description": "Hungarian" - }, - { - "value": "is", - "description": "Icelandic" - }, - { - "value": "smn", - "description": "Inari Sami" - }, - { - "value": "id", - "description": "Indonesian" - }, - { - "value": "ia", - "description": "Interlingua" - }, - { - "value": "iu", - "description": "Inuktitut (Latin)" - }, - { - "value": "ga", - "description": "Irish" - }, - { - "value": "it", - "description": "Italian" - }, - { - "value": "ja", - "description": "Japanese" - }, - { - "value": "Jns", - "description": "Jaunsari (Devanagiri)" - }, - { - "value": "jv", - "description": "Javanese" - }, - { - "value": "kea", - "description": "Kabuverdianu" + "name": "kea", + "value": "kea", + "description": "Kabuverdianu" }, { + "name": "kac", "value": "kac", "description": "Kachin (Latin)" }, { + "name": "xnr", "value": "xnr", "description": "Kangri (Devanagiri)" }, { + "name": "krc", "value": "krc", "description": "Karachay-Balkar" }, { + "name": "kaa-cyrl", "value": "kaa-cyrl", "description": "Kara-Kalpak (Cyrillic)" }, { + "name": "kaa", "value": "kaa", "description": "Kara-Kalpak (Latin)" }, { + "name": "csb", "value": "csb", "description": "Kashubian" }, { + "name": "kk-cyrl", "value": "kk-cyrl", "description": "Kazakh (Cyrillic)" }, { + "name": "kk-latn", "value": "kk-latn", "description": "Kazakh (Latin)" }, { + "name": "klr", "value": "klr", "description": "Khaling" }, { + "name": "kha", "value": "kha", "description": "Khasi" }, { + "name": "quc", "value": "quc", "description": "K'iche'" }, { + "name": "ko", "value": "ko", "description": "Korean" }, { + "name": "kfq", "value": "kfq", "description": "Korku" }, { + "name": "kpy", "value": "kpy", "description": "Koryak" }, { + "name": "kos", "value": "kos", "description": "Kosraean" }, { + "name": "kum", "value": "kum", "description": "Kumyk (Cyrillic)" }, { + "name": "ku-arab", "value": "ku-arab", "description": "Kurdish (Arabic)" }, { + "name": "ku-latn", "value": "ku-latn", "description": "Kurdish (Latin)" }, { + "name": "kru", "value": "kru", "description": "Kurukh (Devanagiri)" }, { + "name": "ky", "value": "ky", "description": "Kyrgyz (Cyrillic)" }, { + "name": "lkt", "value": "lkt", "description": "Lakota" }, { + "name": "la", "value": "la", "description": "Latin" }, { + "name": "lt", "value": "lt", "description": "Lithuanian" }, { + "name": "dsb", "value": "dsb", "description": "Lower Sorbian" }, { + "name": "smj", "value": "smj", "description": "Lule Sami" }, { + "name": "lb", "value": "lb", "description": "Luxembourgish" }, { + "name": "bfz", "value": "bfz", "description": "Mahasu Pahari (Devanagiri)" }, { + "name": "ms", "value": "ms", "description": "Malay (Latin)" }, { + "name": "mt", "value": "mt", "description": "Maltese" }, { + "name": "kmj", "value": "kmj", "description": "Malto (Devanagiri)" }, { + "name": "gv", "value": "gv", "description": "Manx" }, { + "name": "mi", "value": "mi", "description": "Maori" }, { + "name": "mr", "value": "mr", "description": "Marathi" }, { + "name": "mn", "value": "mn", "description": "Mongolian (Cyrillic)" }, { + "name": "cnr-cyrl", "value": "cnr-cyrl", "description": "Montenegrin (Cyrillic)" }, { + "name": "cnr-latn", "value": "cnr-latn", "description": "Montenegrin (Latin)" }, { + "name": "nap", "value": "nap", "description": "Neapolitan" }, { + "name": "ne", "value": "ne", "description": "Nepali" }, { + "name": "niu", "value": "niu", "description": "Niuean" }, { + "name": "nog", "value": "nog", "description": "Nogay" }, { + "name": "sme", "value": "sme", "description": "Northern Sami (Latin)" }, { + "name": "nb", "value": "nb", "description": "Norwegian" }, { + "name": "no", "value": "no", "description": "Norwegian" }, { + "name": "oc", "value": "oc", "description": "Occitan" }, { + "name": "os", "value": "os", "description": "Ossetic" }, { + "name": "ps", "value": "ps", "description": "Pashto" }, { + "name": "fa", "value": "fa", "description": "Persian" }, { + "name": "pl", "value": "pl", "description": "Polish" }, { + "name": "pt", "value": "pt", "description": "Portuguese" }, { + "name": "pa", "value": "pa", "description": "Punjabi (Arabic)" }, { + "name": "ksh", "value": "ksh", "description": "Ripuarian" }, { + "name": "ro", "value": "ro", "description": "Romanian" }, { + "name": "rm", "value": "rm", "description": "Romansh" }, { + "name": "ru", "value": "ru", "description": "Russian" }, { + "name": "sck", "value": "sck", "description": "Sadri (Devanagiri)" }, { + "name": "sm", "value": "sm", "description": "Samoan (Latin)" }, { + "name": "sa", "value": "sa", "description": "Sanskrit (Devanagiri)" }, { + "name": "sat", "value": "sat", "description": "Santali (Devanagiri)" }, { + "name": "sco", "value": "sco", "description": "Scots" }, { + "name": "gd", "value": "gd", "description": "Scottish Gaelic" }, { + "name": "sr", "value": "sr", "description": "Serbian (Latin)" }, { + "name": "sr-Cyrl", "value": "sr-Cyrl", "description": "Serbian (Cyrillic)" }, { + "name": "sr-Latn", "value": "sr-Latn", "description": "Serbian (Latin)" }, { + "name": "xsr", "value": "xsr", "description": "Sherpa (Devanagiri)" }, { + "name": "srx", "value": "srx", "description": "Sirmauri (Devanagiri)" }, { + "name": "sms", "value": "sms", "description": "Skolt Sami" }, { + "name": "sk", "value": "sk", "description": "Slovak" }, { + "name": "sl", "value": "sl", "description": "Slovenian" }, { + "name": "so", "value": "so", "description": "Somali (Arabic)" }, { + "name": "sma", "value": "sma", "description": "Southern Sami" }, { + "name": "es", "value": "es", "description": "Spanish" }, { + "name": "sw", "value": "sw", "description": "Swahili (Latin)" }, { + "name": "sv", "value": "sv", "description": "Swedish" }, { + "name": "tg", "value": "tg", "description": "Tajik (Cyrillic)" }, { + "name": "tt", "value": "tt", "description": "Tatar (Latin)" }, { + "name": "tet", "value": "tet", "description": "Tetum" }, { + "name": "thf", "value": "thf", "description": "Thangmi" }, { + "name": "to", "value": "to", "description": "Tongan" }, { + "name": "tr", "value": "tr", "description": "Turkish" }, { + "name": "tk", "value": "tk", "description": "Turkmen (Latin)" }, { + "name": "tyv", "value": "tyv", "description": "Tuvan" }, { + "name": "hsb", "value": "hsb", "description": "Upper Sorbian" }, { + "name": "ur", "value": "ur", "description": "Urdu" }, { + "name": "ug", "value": "ug", "description": "Uyghur (Arabic)" }, { + "name": "uz-arab", "value": "uz-arab", "description": "Uzbek (Arabic)" }, { + "name": "uz-cyrl", "value": "uz-cyrl", "description": "Uzbek (Cyrillic)" }, { + "name": "uz", "value": "uz", "description": "Uzbek (Latin)" }, { + "name": "vo", "value": "vo", "description": "Volapük" }, { + "name": "wae", "value": "wae", "description": "Walser" }, { + "name": "cy", "value": "cy", "description": "Welsh" }, { + "name": "fy", "value": "fy", "description": "Western Frisian" }, { + "name": "yua", "value": "yua", "description": "Yucatec Maya" }, { + "name": "za", "value": "za", "description": "Zhuang" }, { + "name": "zu", "value": "zu", "description": "Zulu" }, { + "name": "unk", "value": "unk", "description": "Unknown (All)" } ] + } + }, + "OutputFieldMappingEntry": { + "type": "object", + "description": "Output field mapping for a skill.", + "properties": { + "name": { + "type": "string", + "description": "The name of the output defined by the skill." + }, + "targetName": { + "type": "string", + "description": "The target name of the output. It is optional and default to name." + } }, - "description": "The language codes supported for input by OcrSkill." + "required": [ + "name" + ] }, - "OcrSkillLineEnding": { - "type": "string", - "enum": [ - "space", - "carriageReturn", - "lineFeed", - "carriageReturnLineFeed" - ], - "x-ms-enum": { - "name": "LineEnding", - "modelAsString": true, - "values": [ - { - "value": "space", - "name": "Space", - "description": "Lines are separated by a single space character." - }, - { - "value": "carriageReturn", - "name": "CarriageReturn", - "description": "Lines are separated by a carriage return ('\\r') character." - }, - { - "value": "lineFeed", - "name": "LineFeed", - "description": "Lines are separated by a single line feed ('\\n') character." - }, - { - "value": "carriageReturnLineFeed", - "name": "CarriageReturnLineFeed", - "description": "Lines are separated by a carriage return and a line feed ('\\r\\n') character." + "PIIDetectionSkill": { + "type": "object", + "description": "Using the Text Analytics API, extracts personal information from an input text and gives you the option of masking it.", + "properties": { + "defaultLanguageCode": { + "type": "string", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true + }, + "minimumPrecision": { + "type": "number", + "format": "double", + "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.", + "minimum": 0, + "maximum": 1 + }, + "maskingMode": { + "$ref": "#/definitions/PIIDetectionSkillMaskingMode", + "description": "A parameter that provides various ways to mask the personal information detected in the input text. Default is 'none'." + }, + "maskingCharacter": { + "type": "string", + "description": "The character used to mask the text if the maskingMode parameter is set to replace. Default is '*'.", + "maxLength": 1 + }, + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true + }, + "piiCategories": { + "type": "array", + "description": "A list of PII entity categories that should be extracted and masked.", + "items": { + "type": "string" } - ] + }, + "domain": { + "type": "string", + "description": "If specified, will set the PII domain to include only a subset of the entity categories. Possible values include: 'phi', 'none'. Default is 'none'.", + "x-nullable": true + } }, - "description": "Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\"." + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.PIIDetectionSkill" }, - "SplitSkillLanguage": { + "PIIDetectionSkillMaskingMode": { "type": "string", + "description": "A string indicating what maskingMode to use to mask the personal information detected in the input text.", "enum": [ - "am", - "bs", - "cs", - "da", - "de", - "en", - "es", - "et", - "fi", - "fr", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "ja", - "ko", - "lv", - "nb", - "nl", - "pl", - "pt", - "pt-br", - "ru", - "sk", - "sl", - "sr", - "sv", - "tr", - "ur", - "zh" + "none", + "replace" ], "x-ms-enum": { - "name": "SplitSkillLanguage", + "name": "PIIDetectionSkillMaskingMode", "modelAsString": true, "values": [ { - "value": "am", - "description": "Amharic" - }, - { - "value": "bs", - "description": "Bosnian" - }, - { - "value": "cs", - "description": "Czech" - }, - { - "value": "da", - "description": "Danish" - }, - { - "value": "de", - "description": "German" - }, - { - "value": "en", - "description": "English" - }, - { - "value": "es", - "description": "Spanish" - }, - { - "value": "et", - "description": "Estonian" - }, - { - "value": "fi", - "description": "Finnish" - }, - { - "value": "fr", - "description": "French" - }, - { - "value": "he", - "description": "Hebrew" - }, - { - "value": "hi", - "description": "Hindi" - }, - { - "value": "hr", - "description": "Croatian" - }, - { - "value": "hu", - "description": "Hungarian" - }, - { - "value": "id", - "description": "Indonesian" - }, - { - "value": "is", - "description": "Icelandic" - }, - { - "value": "it", - "description": "Italian" - }, - { - "value": "ja", - "description": "Japanese" - }, - { - "value": "ko", - "description": "Korean" - }, - { - "value": "lv", - "description": "Latvian" - }, - { - "value": "nb", - "description": "Norwegian" - }, - { - "value": "nl", - "description": "Dutch" - }, - { - "value": "pl", - "description": "Polish" - }, - { - "value": "pt", - "description": "Portuguese (Portugal)" - }, - { - "value": "pt-br", - "description": "Portuguese (Brazil)" - }, - { - "value": "ru", - "description": "Russian" - }, - { - "value": "sk", - "description": "Slovak" - }, - { - "value": "sl", - "description": "Slovenian" - }, - { - "value": "sr", - "description": "Serbian" - }, - { - "value": "sv", - "description": "Swedish" - }, - { - "value": "tr", - "description": "Turkish" - }, - { - "value": "ur", - "description": "Urdu" + "name": "None", + "value": "none", + "description": "No masking occurs and the maskedText output will not be returned." }, { - "value": "zh", - "description": "Chinese (Simplified)" + "name": "Replace", + "value": "replace", + "description": "Replaces the detected entities with the character given in the maskingCharacter parameter. The character will be repeated to the length of the detected entity so that the offsets will correctly correspond to both the input text as well as the output maskedText." } ] + } + }, + "PathHierarchyTokenizerV2": { + "type": "object", + "description": "Tokenizer for path-like hierarchies. This tokenizer is implemented using Apache Lucene.", + "properties": { + "delimiter": { + "type": "string", + "description": "The delimiter character to use. Default is \"/\".", + "default": "/", + "maxLength": 1 + }, + "replacement": { + "type": "string", + "description": "A value that, if set, replaces the delimiter character. Default is \"/\".", + "default": "/", + "maxLength": 1 + }, + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default and maximum is 300.", + "default": 300, + "maximum": 300 + }, + "reverse": { + "type": "boolean", + "description": "A value indicating whether to generate tokens in reverse order. Default is false.", + "default": false + }, + "skip": { + "type": "integer", + "format": "int32", + "description": "The number of initial tokens to skip. Default is 0.", + "default": 0 + } }, - "description": "The language codes supported for input text by SplitSkill." + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PathHierarchyTokenizerV2" }, - "CustomEntityLookupSkillLanguage": { - "type": "string", - "enum": [ - "da", - "de", - "en", - "es", - "fi", - "fr", - "it", - "ko", - "pt" + "PatternAnalyzer": { + "type": "object", + "description": "Flexibly separates text into terms via a regular expression pattern. This analyzer is implemented using Apache Lucene.", + "properties": { + "lowercase": { + "type": "boolean", + "description": "A value indicating whether terms should be lower-cased. Default is true.", + "default": true + }, + "pattern": { + "type": "string", + "description": "A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters.", + "default": "\\W+" + }, + "flags": { + "$ref": "#/definitions/RegexFlags", + "type": "string", + "format": "ArrayEncoding.pipeDelimited", + "description": "Regular expression flags." + }, + "stopwords": { + "type": "array", + "description": "A list of stopwords.", + "items": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalAnalyzer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternAnalyzer" + }, + "PatternCaptureTokenFilter": { + "type": "object", + "description": "Uses Java regexes to emit multiple tokens - one for each capture group in one or more patterns. This token filter is implemented using Apache Lucene.", + "properties": { + "patterns": { + "type": "array", + "description": "A list of patterns to match against each token.", + "items": { + "type": "string" + } + }, + "preserveOriginal": { + "type": "boolean", + "description": "A value indicating whether to return the original token even if one of the patterns matches. Default is true.", + "default": true + } + }, + "required": [ + "patterns" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternCaptureTokenFilter" + }, + "PatternReplaceCharFilter": { + "type": "object", + "description": "A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This character filter is implemented using Apache Lucene.", + "properties": { + "pattern": { + "type": "string", + "description": "A regular expression pattern." + }, + "replacement": { + "type": "string", + "description": "The replacement text." + } + }, + "required": [ + "pattern", + "replacement" + ], + "allOf": [ + { + "$ref": "#/definitions/CharFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternReplaceCharFilter" + }, + "PatternReplaceTokenFilter": { + "type": "object", + "description": "A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This token filter is implemented using Apache Lucene.", + "properties": { + "pattern": { + "type": "string", + "description": "A regular expression pattern." + }, + "replacement": { + "type": "string", + "description": "The replacement text." + } + }, + "required": [ + "pattern", + "replacement" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternReplaceTokenFilter" + }, + "PatternTokenizer": { + "type": "object", + "description": "Tokenizer that uses regex pattern matching to construct distinct tokens. This tokenizer is implemented using Apache Lucene.", + "properties": { + "pattern": { + "type": "string", + "description": "A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters.", + "default": "\\W+" + }, + "flags": { + "$ref": "#/definitions/RegexFlags", + "description": "Regular expression flags." + }, + "group": { + "type": "integer", + "format": "int32", + "description": "The zero-based ordinal of the matching group in the regular expression pattern to extract into tokens. Use -1 if you want to use the entire pattern to split the input into tokens, irrespective of matching groups. Default is -1.", + "default": -1 + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternTokenizer" + }, + "PermissionFilter": { + "type": "string", + "description": "A value indicating whether the field should be used as a permission filter.", + "enum": [ + "userIds", + "groupIds", + "rbacScope" ], "x-ms-enum": { - "name": "CustomEntityLookupSkillLanguage", + "name": "PermissionFilter", "modelAsString": true, "values": [ { - "value": "da", - "description": "Danish" - }, - { - "value": "de", - "description": "German" - }, - { - "value": "en", - "description": "English" - }, - { - "value": "es", - "description": "Spanish" - }, - { - "value": "fi", - "description": "Finnish" - }, - { - "value": "fr", - "description": "French" - }, - { - "value": "it", - "description": "Italian" + "name": "UserIds", + "value": "userIds", + "description": "Field represents user IDs that should be used to filter document access on queries." }, { - "value": "ko", - "description": "Korean" + "name": "GroupIds", + "value": "groupIds", + "description": "Field represents group IDs that should be used to filter document access on queries." }, { - "value": "pt", - "description": "Portuguese" + "name": "RbacScope", + "value": "rbacScope", + "description": "Field represents an RBAC scope that should be used to filter document access on queries." } ] - }, - "description": "The language codes supported for input text by CustomEntityLookupSkill." + } }, - "EntityRecognitionSkillLanguage": { + "PhoneticEncoder": { "type": "string", + "description": "Identifies the type of phonetic encoder to use with a PhoneticTokenFilter.", "enum": [ - "ar", - "cs", - "zh-Hans", - "zh-Hant", - "da", - "nl", - "en", - "fi", - "fr", - "de", - "el", - "hu", - "it", - "ja", - "ko", - "no", - "pl", - "pt-PT", - "pt-BR", - "ru", - "es", - "sv", - "tr" + "metaphone", + "doubleMetaphone", + "soundex", + "refinedSoundex", + "caverphone1", + "caverphone2", + "cologne", + "nysiis", + "koelnerPhonetik", + "haasePhonetik", + "beiderMorse" ], "x-ms-enum": { - "name": "EntityRecognitionSkillLanguage", + "name": "PhoneticEncoder", "modelAsString": true, "values": [ { - "value": "ar", - "description": "Arabic" + "name": "Metaphone", + "value": "metaphone", + "description": "Encodes a token into a Metaphone value." }, { - "value": "cs", - "description": "Czech" + "name": "DoubleMetaphone", + "value": "doubleMetaphone", + "description": "Encodes a token into a double metaphone value." }, { - "value": "zh-Hans", - "description": "Chinese-Simplified" + "name": "Soundex", + "value": "soundex", + "description": "Encodes a token into a Soundex value." }, { - "value": "zh-Hant", - "description": "Chinese-Traditional" + "name": "RefinedSoundex", + "value": "refinedSoundex", + "description": "Encodes a token into a Refined Soundex value." }, { - "value": "da", - "description": "Danish" + "name": "Caverphone1", + "value": "caverphone1", + "description": "Encodes a token into a Caverphone 1.0 value." }, { - "value": "nl", - "description": "Dutch" + "name": "Caverphone2", + "value": "caverphone2", + "description": "Encodes a token into a Caverphone 2.0 value." }, { - "value": "en", - "description": "English" + "name": "Cologne", + "value": "cologne", + "description": "Encodes a token into a Cologne Phonetic value." }, { - "value": "fi", - "description": "Finnish" + "name": "Nysiis", + "value": "nysiis", + "description": "Encodes a token into a NYSIIS value." }, { - "value": "fr", - "description": "French" + "name": "KoelnerPhonetik", + "value": "koelnerPhonetik", + "description": "Encodes a token using the Kölner Phonetik algorithm." }, { - "value": "de", - "description": "German" - }, - { - "value": "el", - "description": "Greek" - }, - { - "value": "hu", - "description": "Hungarian" + "name": "HaasePhonetik", + "value": "haasePhonetik", + "description": "Encodes a token using the Haase refinement of the Kölner Phonetik algorithm." }, { - "value": "it", - "description": "Italian" - }, + "name": "BeiderMorse", + "value": "beiderMorse", + "description": "Encodes a token into a Beider-Morse value." + } + ] + } + }, + "PhoneticTokenFilter": { + "type": "object", + "description": "Create tokens for phonetic matches. This token filter is implemented using Apache Lucene.", + "properties": { + "encoder": { + "type": "string", + "description": "The phonetic encoder to use. Default is \"metaphone\".", + "default": "metaphone", + "enum": [ + "metaphone", + "doubleMetaphone", + "soundex", + "refinedSoundex", + "caverphone1", + "caverphone2", + "cologne", + "nysiis", + "koelnerPhonetik", + "haasePhonetik", + "beiderMorse" + ], + "x-ms-enum": { + "name": "PhoneticEncoder", + "modelAsString": true, + "values": [ + { + "name": "Metaphone", + "value": "metaphone", + "description": "Encodes a token into a Metaphone value." + }, + { + "name": "DoubleMetaphone", + "value": "doubleMetaphone", + "description": "Encodes a token into a double metaphone value." + }, + { + "name": "Soundex", + "value": "soundex", + "description": "Encodes a token into a Soundex value." + }, + { + "name": "RefinedSoundex", + "value": "refinedSoundex", + "description": "Encodes a token into a Refined Soundex value." + }, + { + "name": "Caverphone1", + "value": "caverphone1", + "description": "Encodes a token into a Caverphone 1.0 value." + }, + { + "name": "Caverphone2", + "value": "caverphone2", + "description": "Encodes a token into a Caverphone 2.0 value." + }, + { + "name": "Cologne", + "value": "cologne", + "description": "Encodes a token into a Cologne Phonetic value." + }, + { + "name": "Nysiis", + "value": "nysiis", + "description": "Encodes a token into a NYSIIS value." + }, + { + "name": "KoelnerPhonetik", + "value": "koelnerPhonetik", + "description": "Encodes a token using the Kölner Phonetik algorithm." + }, + { + "name": "HaasePhonetik", + "value": "haasePhonetik", + "description": "Encodes a token using the Haase refinement of the Kölner Phonetik algorithm." + }, + { + "name": "BeiderMorse", + "value": "beiderMorse", + "description": "Encodes a token into a Beider-Morse value." + } + ] + } + }, + "replace": { + "type": "boolean", + "description": "A value indicating whether encoded tokens should replace original tokens. If false, encoded tokens are added as synonyms. Default is true.", + "default": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PhoneticTokenFilter" + }, + "QueryAnswerResult": { + "type": "object", + "description": "An answer is a text passage extracted from the contents of the most relevant documents that matched the query. Answers are extracted from the top search results. Answer candidates are scored and the top answers are selected.", + "properties": { + "score": { + "type": "number", + "format": "double", + "description": "The score value represents how relevant the answer is to the query relative to other answers returned for the query.", + "readOnly": true + }, + "key": { + "type": "string", + "description": "The key of the document the answer was extracted from.", + "readOnly": true + }, + "text": { + "type": "string", + "description": "The text passage extracted from the document contents as the answer.", + "readOnly": true + }, + "highlights": { + "type": "string", + "description": "Same text passage as in the Text property with highlighted text phrases most relevant to the query.", + "x-nullable": true, + "readOnly": true + } + }, + "additionalProperties": {} + }, + "QueryAnswerType": { + "type": "string", + "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", + "enum": [ + "none", + "extractive" + ], + "x-ms-enum": { + "name": "QueryAnswerType", + "modelAsString": true, + "values": [ { - "value": "ja", - "description": "Japanese" + "name": "None", + "value": "none", + "description": "Do not return answers for the query." }, { - "value": "ko", - "description": "Korean" - }, + "name": "Extractive", + "value": "extractive", + "description": "Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language." + } + ] + } + }, + "QueryCaptionResult": { + "type": "object", + "description": "Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type `semantic`.", + "properties": { + "text": { + "type": "string", + "description": "A representative text passage extracted from the document most relevant to the search query.", + "readOnly": true + }, + "highlights": { + "type": "string", + "description": "Same text passage as in the Text property with highlighted phrases most relevant to the query.", + "x-nullable": true, + "readOnly": true + } + }, + "additionalProperties": {} + }, + "QueryCaptionType": { + "type": "string", + "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", + "enum": [ + "none", + "extractive" + ], + "x-ms-enum": { + "name": "QueryCaptionType", + "modelAsString": true, + "values": [ { - "value": "no", - "description": "Norwegian (Bokmaal)" + "name": "None", + "value": "none", + "description": "Do not return captions for the query." }, { - "value": "pl", - "description": "Polish" - }, + "name": "Extractive", + "value": "extractive", + "description": "Extracts captions from the matching documents that contain passages relevant to the search query." + } + ] + } + }, + "QueryDebugMode": { + "type": "string", + "description": "Enables a debugging tool that can be used to further explore your search results. You can enable multiple debug modes simultaneously by separating them with a | character, for example: semantic|queryRewrites.", + "enum": [ + "disabled", + "semantic", + "vector", + "queryRewrites", + "innerHits", + "all" + ], + "x-ms-enum": { + "name": "QueryDebugMode", + "modelAsString": true, + "values": [ { - "value": "pt-PT", - "description": "Portuguese (Portugal)" + "name": "Disabled", + "value": "disabled", + "description": "No query debugging information will be returned." }, { - "value": "pt-BR", - "description": "Portuguese (Brazil)" + "name": "Semantic", + "value": "semantic", + "description": "Allows the user to further explore their reranked results." }, { - "value": "ru", - "description": "Russian" + "name": "Vector", + "value": "vector", + "description": "Allows the user to further explore their hybrid and vector query results." }, { - "value": "es", - "description": "Spanish" + "name": "QueryRewrites", + "value": "queryRewrites", + "description": "Allows the user to explore the list of query rewrites generated for their search request." }, { - "value": "sv", - "description": "Swedish" + "name": "InnerHits", + "value": "innerHits", + "description": "Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types." }, { - "value": "tr", - "description": "Turkish" + "name": "All", + "value": "all", + "description": "Turn on all debug options." } ] - }, - "description": "Deprecated. The language codes supported for input text by EntityRecognitionSkill.", - "x-az-search-deprecated": true + } }, - "TextTranslationSkillLanguage": { + "QueryLanguage": { "type": "string", + "description": "The language of the query.", "enum": [ - "af", - "ar", - "bn", - "bs", - "bg", - "yue", - "ca", - "zh-Hans", - "zh-Hant", - "hr", - "cs", - "da", - "nl", - "en", - "et", - "fj", - "fil", - "fi", - "fr", - "de", - "el", - "ht", - "he", - "hi", - "mww", - "hu", - "is", - "id", - "it", - "ja", - "sw", - "tlh", - "tlh-Latn", - "tlh-Piqd", - "ko", - "lv", - "lt", - "mg", - "ms", - "mt", - "nb", - "fa", - "pl", - "pt", + "none", + "en-us", + "en-gb", + "en-in", + "en-ca", + "en-au", + "fr-fr", + "fr-ca", + "de-de", + "es-es", + "es-mx", + "zh-cn", + "zh-tw", "pt-br", - "pt-PT", - "otq", - "ro", - "ru", - "sm", - "sr-Cyrl", - "sr-Latn", - "sk", - "sl", - "es", - "sv", - "ty", - "ta", - "te", - "th", - "to", - "tr", - "uk", - "ur", - "vi", - "cy", - "yua", - "ga", - "kn", - "mi", - "ml", - "pa" + "pt-pt", + "it-it", + "ja-jp", + "ko-kr", + "ru-ru", + "cs-cz", + "nl-be", + "nl-nl", + "hu-hu", + "pl-pl", + "sv-se", + "tr-tr", + "hi-in", + "ar-sa", + "ar-eg", + "ar-ma", + "ar-kw", + "ar-jo", + "da-dk", + "no-no", + "bg-bg", + "hr-hr", + "hr-ba", + "ms-my", + "ms-bn", + "sl-sl", + "ta-in", + "vi-vn", + "el-gr", + "ro-ro", + "is-is", + "id-id", + "th-th", + "lt-lt", + "uk-ua", + "lv-lv", + "et-ee", + "ca-es", + "fi-fi", + "sr-ba", + "sr-me", + "sr-rs", + "sk-sk", + "nb-no", + "hy-am", + "bn-in", + "eu-es", + "gl-es", + "gu-in", + "he-il", + "ga-ie", + "kn-in", + "ml-in", + "mr-in", + "fa-ae", + "pa-in", + "te-in", + "ur-pk" ], "x-ms-enum": { - "name": "TextTranslationSkillLanguage", + "name": "QueryLanguage", "modelAsString": true, "values": [ { - "value": "af", - "description": "Afrikaans" + "name": "None", + "value": "none", + "description": "Query language not specified." }, { - "value": "ar", - "description": "Arabic" + "name": "EnUs", + "value": "en-us", + "description": "Query language value for English (United States)." }, { - "value": "bn", - "description": "Bangla" + "name": "EnGb", + "value": "en-gb", + "description": "Query language value for English (Great Britain)." }, { - "value": "bs", - "description": "Bosnian (Latin)" + "name": "EnIn", + "value": "en-in", + "description": "Query language value for English (India)." }, { - "value": "bg", - "description": "Bulgarian" + "name": "EnCa", + "value": "en-ca", + "description": "Query language value for English (Canada)." }, { - "value": "yue", - "description": "Cantonese (Traditional)" + "name": "EnAu", + "value": "en-au", + "description": "Query language value for English (Australia)." }, { - "value": "ca", - "description": "Catalan" + "name": "FrFr", + "value": "fr-fr", + "description": "Query language value for French (France)." }, { - "value": "zh-Hans", - "description": "Chinese Simplified" + "name": "FrCa", + "value": "fr-ca", + "description": "Query language value for French (Canada)." }, { - "value": "zh-Hant", - "description": "Chinese Traditional" + "name": "DeDe", + "value": "de-de", + "description": "Query language value for German (Germany)." }, { - "value": "hr", - "description": "Croatian" + "name": "EsEs", + "value": "es-es", + "description": "Query language value for Spanish (Spain)." }, { - "value": "cs", - "description": "Czech" + "name": "EsMx", + "value": "es-mx", + "description": "Query language value for Spanish (Mexico)." }, { - "value": "da", - "description": "Danish" + "name": "ZhCn", + "value": "zh-cn", + "description": "Query language value for Chinese (China)." }, { - "value": "nl", - "description": "Dutch" + "name": "ZhTw", + "value": "zh-tw", + "description": "Query language value for Chinese (Taiwan)." }, { - "value": "en", - "description": "English" + "name": "PtBr", + "value": "pt-br", + "description": "Query language value for Portuguese (Brazil)." }, { - "value": "et", - "description": "Estonian" + "name": "PtPt", + "value": "pt-pt", + "description": "Query language value for Portuguese (Portugal)." }, { - "value": "fj", - "description": "Fijian" + "name": "ItIt", + "value": "it-it", + "description": "Query language value for Italian (Italy)." }, { - "value": "fil", - "description": "Filipino" + "name": "JaJp", + "value": "ja-jp", + "description": "Query language value for Japanese (Japan)." }, { - "value": "fi", - "description": "Finnish" + "name": "KoKr", + "value": "ko-kr", + "description": "Query language value for Korean (Korea)." }, { - "value": "fr", - "description": "French" + "name": "RuRu", + "value": "ru-ru", + "description": "Query language value for Russian (Russia)." }, { - "value": "de", - "description": "German" + "name": "CsCz", + "value": "cs-cz", + "description": "Query language value for Czech (Czech Republic)." }, { - "value": "el", - "description": "Greek" + "name": "NlBe", + "value": "nl-be", + "description": "Query language value for Dutch (Belgium)." }, { - "value": "ht", - "description": "Haitian Creole" + "name": "NlNl", + "value": "nl-nl", + "description": "Query language value for Dutch (Netherlands)." }, { - "value": "he", - "description": "Hebrew" + "name": "HuHu", + "value": "hu-hu", + "description": "Query language value for Hungarian (Hungary)." }, { - "value": "hi", - "description": "Hindi" + "name": "PlPl", + "value": "pl-pl", + "description": "Query language value for Polish (Poland)." }, { - "value": "mww", - "description": "Hmong Daw" + "name": "SvSe", + "value": "sv-se", + "description": "Query language value for Swedish (Sweden)." }, { - "value": "hu", - "description": "Hungarian" + "name": "TrTr", + "value": "tr-tr", + "description": "Query language value for Turkish (Turkey)." }, { - "value": "is", - "description": "Icelandic" + "name": "HiIn", + "value": "hi-in", + "description": "Query language value for Hindi (India)." }, { - "value": "id", - "description": "Indonesian" + "name": "ArSa", + "value": "ar-sa", + "description": "Query language value for Arabic (Saudi Arabia)." }, { - "value": "it", - "description": "Italian" + "name": "ArEg", + "value": "ar-eg", + "description": "Query language value for Arabic (Egypt)." }, { - "value": "ja", - "description": "Japanese" + "name": "ArMa", + "value": "ar-ma", + "description": "Query language value for Arabic (Morocco)." }, { - "value": "sw", - "description": "Kiswahili" + "name": "ArKw", + "value": "ar-kw", + "description": "Query language value for Arabic (Kuwait)." }, { - "value": "tlh", - "description": "Klingon" + "name": "ArJo", + "value": "ar-jo", + "description": "Query language value for Arabic (Jordan)." }, { - "value": "tlh-Latn", - "description": "Klingon (Latin script)" + "name": "DaDk", + "value": "da-dk", + "description": "Query language value for Danish (Denmark)." }, { - "value": "tlh-Piqd", - "description": "Klingon (Klingon script)" + "name": "NoNo", + "value": "no-no", + "description": "Query language value for Norwegian (Norway)." }, { - "value": "ko", - "description": "Korean" + "name": "BgBg", + "value": "bg-bg", + "description": "Query language value for Bulgarian (Bulgaria)." }, { - "value": "lv", - "description": "Latvian" + "name": "HrHr", + "value": "hr-hr", + "description": "Query language value for Croatian (Croatia)." }, { - "value": "lt", - "description": "Lithuanian" + "name": "HrBa", + "value": "hr-ba", + "description": "Query language value for Croatian (Bosnia and Herzegovina)." }, { - "value": "mg", - "description": "Malagasy" + "name": "MsMy", + "value": "ms-my", + "description": "Query language value for Malay (Malaysia)." }, { - "value": "ms", - "description": "Malay" + "name": "MsBn", + "value": "ms-bn", + "description": "Query language value for Malay (Brunei Darussalam)." }, { - "value": "mt", - "description": "Maltese" + "name": "SlSl", + "value": "sl-sl", + "description": "Query language value for Slovenian (Slovenia)." }, { - "value": "nb", - "description": "Norwegian" + "name": "TaIn", + "value": "ta-in", + "description": "Query language value for Tamil (India)." }, { - "value": "fa", - "description": "Persian" + "name": "ViVn", + "value": "vi-vn", + "description": "Query language value for Vietnamese (Viet Nam)." }, { - "value": "pl", - "description": "Polish" + "name": "ElGr", + "value": "el-gr", + "description": "Query language value for Greek (Greece)." }, { - "value": "pt", - "description": "Portuguese" + "name": "RoRo", + "value": "ro-ro", + "description": "Query language value for Romanian (Romania)." }, { - "value": "pt-br", - "description": "Portuguese (Brazil)" + "name": "IsIs", + "value": "is-is", + "description": "Query language value for Icelandic (Iceland)." }, { - "value": "pt-PT", - "description": "Portuguese (Portugal)" + "name": "IdId", + "value": "id-id", + "description": "Query language value for Indonesian (Indonesia)." }, { - "value": "otq", - "description": "Queretaro Otomi" + "name": "ThTh", + "value": "th-th", + "description": "Query language value for Thai (Thailand)." }, { - "value": "ro", - "description": "Romanian" + "name": "LtLt", + "value": "lt-lt", + "description": "Query language value for Lithuanian (Lithuania)." }, { - "value": "ru", - "description": "Russian" + "name": "UkUa", + "value": "uk-ua", + "description": "Query language value for Ukrainian (Ukraine)." }, { - "value": "sm", - "description": "Samoan" + "name": "LvLv", + "value": "lv-lv", + "description": "Query language value for Latvian (Latvia)." }, { - "value": "sr-Cyrl", - "description": "Serbian (Cyrillic)" + "name": "EtEe", + "value": "et-ee", + "description": "Query language value for Estonian (Estonia)." }, { - "value": "sr-Latn", - "description": "Serbian (Latin)" + "name": "CaEs", + "value": "ca-es", + "description": "Query language value for Catalan." }, { - "value": "sk", - "description": "Slovak" + "name": "FiFi", + "value": "fi-fi", + "description": "Query language value for Finnish (Finland)." }, { - "value": "sl", - "description": "Slovenian" + "name": "SrBa", + "value": "sr-ba", + "description": "Query language value for Serbian (Bosnia and Herzegovina)." }, { - "value": "es", - "description": "Spanish" + "name": "SrMe", + "value": "sr-me", + "description": "Query language value for Serbian (Montenegro)." }, { - "value": "sv", - "description": "Swedish" + "name": "SrRs", + "value": "sr-rs", + "description": "Query language value for Serbian (Serbia)." }, { - "value": "ty", - "description": "Tahitian" + "name": "SkSk", + "value": "sk-sk", + "description": "Query language value for Slovak (Slovakia)." }, { - "value": "ta", - "description": "Tamil" + "name": "NbNo", + "value": "nb-no", + "description": "Query language value for Norwegian (Norway)." }, { - "value": "te", - "description": "Telugu" + "name": "HyAm", + "value": "hy-am", + "description": "Query language value for Armenian (Armenia)." }, { - "value": "th", - "description": "Thai" + "name": "BnIn", + "value": "bn-in", + "description": "Query language value for Bengali (India)." }, { - "value": "to", - "description": "Tongan" + "name": "EuEs", + "value": "eu-es", + "description": "Query language value for Basque." }, { - "value": "tr", - "description": "Turkish" + "name": "GlEs", + "value": "gl-es", + "description": "Query language value for Galician." }, { - "value": "uk", - "description": "Ukrainian" + "name": "GuIn", + "value": "gu-in", + "description": "Query language value for Gujarati (India)." }, { - "value": "ur", - "description": "Urdu" + "name": "HeIl", + "value": "he-il", + "description": "Query language value for Hebrew (Israel)." }, { - "value": "vi", - "description": "Vietnamese" + "name": "GaIe", + "value": "ga-ie", + "description": "Query language value for Irish (Ireland)." }, { - "value": "cy", - "description": "Welsh" + "name": "KnIn", + "value": "kn-in", + "description": "Query language value for Kannada (India)." }, { - "value": "yua", - "description": "Yucatec Maya" + "name": "MlIn", + "value": "ml-in", + "description": "Query language value for Malayalam (India)." }, { - "value": "ga", - "description": "Irish" + "name": "MrIn", + "value": "mr-in", + "description": "Query language value for Marathi (India)." }, { - "value": "kn", - "description": "Kannada" + "name": "FaAe", + "value": "fa-ae", + "description": "Query language value for Persian (U.A.E.)." }, { - "value": "mi", - "description": "Maori" + "name": "PaIn", + "value": "pa-in", + "description": "Query language value for Punjabi (India)." }, { - "value": "ml", - "description": "Malayalam" + "name": "TeIn", + "value": "te-in", + "description": "Query language value for Telugu (India)." }, { - "value": "pa", - "description": "Punjabi" + "name": "UrPk", + "value": "ur-pk", + "description": "Query language value for Urdu (Pakistan)." } ] - }, - "description": "The language codes supported for input text by TextTranslationSkill." + } }, - "ImageAnalysisSkillLanguage": { + "QueryResultDocumentInnerHit": { + "type": "object", + "description": "Detailed scoring information for an individual element of a complex collection.", + "properties": { + "ordinal": { + "type": "integer", + "format": "int64", + "description": "Position of this specific matching element within it's original collection. Position starts at 0.", + "readOnly": true + }, + "vectors": { + "type": "array", + "description": "Detailed scoring information for an individual element of a complex collection that matched a vector query.", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/SingleVectorFieldResult" + } + }, + "readOnly": true + } + } + }, + "QueryResultDocumentRerankerInput": { + "type": "object", + "description": "The raw concatenated strings that were sent to the semantic enrichment process.", + "properties": { + "title": { + "type": "string", + "description": "The raw string for the title field that was used for semantic enrichment.", + "readOnly": true + }, + "content": { + "type": "string", + "description": "The raw concatenated strings for the content fields that were used for semantic enrichment.", + "readOnly": true + }, + "keywords": { + "type": "string", + "description": "The raw concatenated strings for the keyword fields that were used for semantic enrichment.", + "readOnly": true + } + } + }, + "QueryResultDocumentSemanticField": { + "type": "object", + "description": "Description of fields that were sent to the semantic enrichment process, as well as how they were used", + "properties": { + "name": { + "type": "string", + "description": "The name of the field that was sent to the semantic enrichment process", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/SemanticFieldState", + "description": "The way the field was used for the semantic enrichment process (fully used, partially used, or unused)", + "readOnly": true + } + } + }, + "QueryResultDocumentSubscores": { + "type": "object", + "description": "The breakdown of subscores between the text and vector query components of the search query for this document. Each vector query is shown as a separate object in the same order they were received.", + "properties": { + "text": { + "$ref": "#/definitions/TextResult", + "description": "The BM25 or Classic score for the text portion of the query.", + "readOnly": true + }, + "vectors": { + "type": "array", + "description": "The vector similarity and @search.score values for each vector query.", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/SingleVectorFieldResult" + } + }, + "readOnly": true + }, + "documentBoost": { + "type": "number", + "format": "double", + "description": "The BM25 or Classic score for the text portion of the query.", + "readOnly": true + } + } + }, + "QueryRewritesDebugInfo": { + "type": "object", + "description": "Contains debugging information specific to query rewrites.", + "properties": { + "text": { + "$ref": "#/definitions/QueryRewritesValuesDebugInfo", + "description": "List of query rewrites generated for the text query.", + "readOnly": true + }, + "vectors": { + "type": "array", + "description": "List of query rewrites generated for the vectorizable text queries.", + "items": { + "$ref": "#/definitions/QueryRewritesValuesDebugInfo" + }, + "readOnly": true + } + } + }, + "QueryRewritesType": { "type": "string", + "description": "This parameter is only valid if the query type is `semantic`. When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`.", "enum": [ - "ar", - "az", - "bg", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "el", - "en", - "es", - "et", - "eu", - "fi", - "fr", - "ga", - "gl", - "he", - "hi", - "hr", - "hu", - "id", - "it", - "ja", - "kk", - "ko", - "lt", - "lv", - "mk", - "ms", - "nb", - "nl", - "pl", - "prs", - "pt-BR", - "pt", - "pt-PT", - "ro", - "ru", - "sk", - "sl", - "sr-Cyrl", - "sr-Latn", - "sv", - "th", - "tr", - "uk", - "vi", - "zh", - "zh-Hans", - "zh-Hant" + "none", + "generative" ], "x-ms-enum": { - "name": "ImageAnalysisSkillLanguage", + "name": "QueryRewritesType", "modelAsString": true, "values": [ { - "value": "ar", - "description": "Arabic" - }, - { - "value": "az", - "description": "Azerbaijani" + "name": "None", + "value": "none", + "description": "Do not generate additional query rewrites for this query." }, { - "value": "bg", - "description": "Bulgarian" - }, - { - "value": "bs", - "description": "Bosnian Latin" - }, - { - "value": "ca", - "description": "Catalan" - }, - { - "value": "cs", - "description": "Czech" - }, - { - "value": "cy", - "description": "Welsh" - }, - { - "value": "da", - "description": "Danish" - }, - { - "value": "de", - "description": "German" - }, - { - "value": "el", - "description": "Greek" - }, - { - "value": "en", - "description": "English" - }, - { - "value": "es", - "description": "Spanish" - }, - { - "value": "et", - "description": "Estonian" - }, - { - "value": "eu", - "description": "Basque" + "name": "Generative", + "value": "generative", + "description": "Generate alternative query terms to increase the recall of a search request." + } + ] + } + }, + "QueryRewritesValuesDebugInfo": { + "type": "object", + "description": "Contains debugging information specific to query rewrites.", + "properties": { + "inputQuery": { + "type": "string", + "description": "The input text to the generative query rewriting model. There may be cases where the user query and the input to the generative model are not identical.", + "readOnly": true + }, + "rewrites": { + "type": "array", + "description": "List of query rewrites.", + "items": { + "type": "string" }, + "readOnly": true + } + } + }, + "QuerySpellerType": { + "type": "string", + "description": "Improve search recall by spell-correcting individual search query terms.", + "enum": [ + "none", + "lexicon" + ], + "x-ms-enum": { + "name": "QuerySpellerType", + "modelAsString": true, + "values": [ { - "value": "fi", - "description": "Finnish" + "name": "None", + "value": "none", + "description": "Speller not enabled." }, { - "value": "fr", - "description": "French" - }, + "name": "Lexicon", + "value": "lexicon", + "description": "Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter." + } + ] + } + }, + "QueryType": { + "type": "string", + "description": "Specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax and 'semantic' if query syntax is not needed.", + "enum": [ + "simple", + "full", + "semantic" + ], + "x-ms-enum": { + "name": "QueryType", + "modelAsString": true, + "values": [ { - "value": "ga", - "description": "Irish" + "name": "Simple", + "value": "simple", + "description": "Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified." }, { - "value": "gl", - "description": "Galician" + "name": "Full", + "value": "full", + "description": "Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features." }, { - "value": "he", - "description": "Hebrew" - }, + "name": "Semantic", + "value": "semantic", + "description": "Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus." + } + ] + } + }, + "RankingOrder": { + "type": "string", + "description": "Represents score to use for sort order of documents.", + "enum": [ + "BoostedRerankerScore", + "RerankerScore" + ], + "x-ms-enum": { + "name": "RankingOrder", + "modelAsString": true, + "values": [ { - "value": "hi", - "description": "Hindi" + "name": "BoostedRerankerScore", + "value": "BoostedRerankerScore", + "description": "Sets sort order as BoostedRerankerScore" }, { - "value": "hr", - "description": "Croatian" - }, + "name": "RerankerScore", + "value": "RerankerScore", + "description": "Sets sort order as ReRankerScore" + } + ] + } + }, + "RegexFlags": { + "type": "string", + "description": "Defines flags that can be combined to control how regular expressions are used in the pattern analyzer and pattern tokenizer.", + "enum": [ + "CANON_EQ", + "CASE_INSENSITIVE", + "COMMENTS", + "DOTALL", + "LITERAL", + "MULTILINE", + "UNICODE_CASE", + "UNIX_LINES" + ], + "x-ms-enum": { + "name": "RegexFlags", + "modelAsString": true, + "values": [ { - "value": "hu", - "description": "Hungarian" + "name": "CanonEq", + "value": "CANON_EQ", + "description": "Enables canonical equivalence." }, { - "value": "id", - "description": "Indonesian" + "name": "CaseInsensitive", + "value": "CASE_INSENSITIVE", + "description": "Enables case-insensitive matching." }, { - "value": "it", - "description": "Italian" + "name": "Comments", + "value": "COMMENTS", + "description": "Permits whitespace and comments in the pattern." }, { - "value": "ja", - "description": "Japanese" + "name": "DotAll", + "value": "DOTALL", + "description": "Enables dotall mode." }, { - "value": "kk", - "description": "Kazakh" + "name": "Literal", + "value": "LITERAL", + "description": "Enables literal parsing of the pattern." }, { - "value": "ko", - "description": "Korean" + "name": "Multiline", + "value": "MULTILINE", + "description": "Enables multiline mode." }, { - "value": "lt", - "description": "Lithuanian" + "name": "UnicodeCase", + "value": "UNICODE_CASE", + "description": "Enables Unicode-aware case folding." }, { - "value": "lv", - "description": "Latvian" - }, - { - "value": "mk", - "description": "Macedonian" - }, - { - "value": "ms", - "description": "Malay Malaysia" - }, - { - "value": "nb", - "description": "Norwegian (Bokmal)" - }, - { - "value": "nl", - "description": "Dutch" - }, - { - "value": "pl", - "description": "Polish" - }, - { - "value": "prs", - "description": "Dari" - }, - { - "value": "pt-BR", - "description": "Portuguese-Brazil" - }, - { - "value": "pt", - "description": "Portuguese-Portugal" - }, - { - "value": "pt-PT", - "description": "Portuguese-Portugal" - }, - { - "value": "ro", - "description": "Romanian" - }, - { - "value": "ru", - "description": "Russian" - }, - { - "value": "sk", - "description": "Slovak" - }, - { - "value": "sl", - "description": "Slovenian" + "name": "UnixLines", + "value": "UNIX_LINES", + "description": "Enables Unix lines mode." + } + ] + } + }, + "RemoteSharePointKnowledgeSource": { + "type": "object", + "description": "Configuration for remote SharePoint knowledge source.", + "properties": { + "remoteSharePointParameters": { + "$ref": "#/definitions/RemoteSharePointKnowledgeSourceParameters", + "description": "The parameters for the remote SharePoint knowledge source." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSource" + } + ], + "x-ms-discriminator-value": "remoteSharePoint" + }, + "RemoteSharePointKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for remote SharePoint knowledge source.", + "properties": { + "filterExpression": { + "type": "string", + "description": "Keyword Query Language (KQL) expression with queryable SharePoint properties and attributes to scope the retrieval before the query runs." + }, + "resourceMetadata": { + "type": "array", + "description": "A list of metadata fields to be returned for each item in the response. Only retrievable metadata properties can be included in this list. By default, no metadata is returned.", + "items": { + "type": "string" + } + }, + "containerTypeId": { + "type": "string", + "description": "Container ID for SharePoint Embedded connection. When this is null, it will use SharePoint Online." + } + } + }, + "RemoteSharePointKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a remote SharePoint knowledge source", + "properties": { + "filterExpressionAddOn": { + "type": "string", + "description": "A filter condition applied to the SharePoint data source. It must be specified in the Keyword Query Language syntax. It will be combined as a conjunction with the filter expression specified in the knowledge source definition." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } + ], + "x-ms-discriminator-value": "remoteSharePoint" + }, + "RescoringOptions": { + "type": "object", + "description": "Contains the options for rescoring.", + "properties": { + "enableRescoring": { + "type": "boolean", + "description": "If set to true, after the initial search on the compressed vectors, the similarity scores are recalculated using the full-precision vectors. This will improve recall at the expense of latency.", + "default": true, + "x-nullable": true + }, + "defaultOversampling": { + "type": "number", + "format": "double", + "description": "Default oversampling factor. Oversampling retrieves a greater set of potential documents to offset the resolution loss due to quantization. This increases the set of results that will be rescored on full-precision vectors. Minimum value is 1, meaning no oversampling (1x). This parameter can only be set when 'enableRescoring' is true. Higher values improve recall at the expense of latency.", + "x-nullable": true + }, + "rescoreStorageMethod": { + "type": "string", + "description": "Controls the storage method for original vectors. This setting is immutable.", + "default": "preserveOriginals", + "enum": [ + "preserveOriginals", + "discardOriginals" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "PreserveOriginals", + "value": "preserveOriginals", + "description": "This option preserves the original full-precision vectors. Choose this option for maximum flexibility and highest quality of compressed search results. This consumes more storage but allows for rescoring and oversampling." + }, + { + "name": "DiscardOriginals", + "value": "discardOriginals", + "description": "This option discards the original full-precision vectors. Choose this option for maximum storage savings. Since this option does not allow for rescoring and oversampling, it will often cause slight to moderate reductions in quality." + } + ] }, + "x-nullable": true + } + } + }, + "ResourceCounter": { + "type": "object", + "description": "Represents a resource's usage and quota.", + "properties": { + "usage": { + "type": "integer", + "format": "int64", + "description": "The resource usage amount." + }, + "quota": { + "type": "integer", + "format": "int64", + "description": "The resource amount quota.", + "x-nullable": true + } + }, + "required": [ + "usage" + ] + }, + "ScalarQuantizationCompression": { + "type": "object", + "description": "Contains configuration options specific to the scalar quantization compression method used during indexing and querying.", + "properties": { + "scalarQuantizationParameters": { + "$ref": "#/definitions/ScalarQuantizationParameters", + "description": "Contains the parameters specific to Scalar Quantization." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchCompression" + } + ], + "x-ms-discriminator-value": "scalarQuantization" + }, + "ScalarQuantizationParameters": { + "type": "object", + "description": "Contains the parameters specific to Scalar Quantization.", + "properties": { + "quantizedDataType": { + "$ref": "#/definitions/VectorSearchCompressionTarget", + "description": "The quantized data type of compressed vector values.", + "x-nullable": true + } + } + }, + "ScoringFunction": { + "type": "object", + "description": "Base type for functions that can modify document scores during ranking.", + "properties": { + "fieldName": { + "type": "string", + "description": "The name of the field used as input to the scoring function." + }, + "boost": { + "type": "number", + "format": "double", + "description": "A multiplier for the raw score. Must be a positive number not equal to 1.0." + }, + "interpolation": { + "$ref": "#/definitions/ScoringFunctionInterpolation", + "description": "A value indicating how boosting will be interpolated across document scores; defaults to \"Linear\"." + }, + "type": { + "type": "string", + "description": "Type of ScoringFunction." + } + }, + "discriminator": "type", + "required": [ + "fieldName", + "boost", + "type" + ] + }, + "ScoringFunctionAggregation": { + "type": "string", + "description": "Defines the aggregation function used to combine the results of all the scoring functions in a scoring profile.", + "enum": [ + "sum", + "average", + "minimum", + "maximum", + "firstMatching", + "product" + ], + "x-ms-enum": { + "name": "ScoringFunctionAggregation", + "modelAsString": true, + "values": [ { - "value": "sr-Cyrl", - "description": "Serbian - Cyrillic RS" + "name": "Sum", + "value": "sum", + "description": "Boost scores by the sum of all scoring function results." }, { - "value": "sr-Latn", - "description": "Serbian - Latin RS" + "name": "Average", + "value": "average", + "description": "Boost scores by the average of all scoring function results." }, { - "value": "sv", - "description": "Swedish" + "name": "Minimum", + "value": "minimum", + "description": "Boost scores by the minimum of all scoring function results." }, { - "value": "th", - "description": "Thai" + "name": "Maximum", + "value": "maximum", + "description": "Boost scores by the maximum of all scoring function results." }, { - "value": "tr", - "description": "Turkish" + "name": "FirstMatching", + "value": "firstMatching", + "description": "Boost scores using the first applicable scoring function in the scoring profile." }, { - "value": "uk", - "description": "Ukrainian" - }, + "name": "Product", + "value": "product", + "description": "Boost scores by the product of all scoring function results." + } + ] + } + }, + "ScoringFunctionInterpolation": { + "type": "string", + "description": "Defines the function used to interpolate score boosting across a range of documents.", + "enum": [ + "linear", + "constant", + "quadratic", + "logarithmic" + ], + "x-ms-enum": { + "name": "ScoringFunctionInterpolation", + "modelAsString": true, + "values": [ { - "value": "vi", - "description": "Vietnamese" + "name": "Linear", + "value": "linear", + "description": "Boosts scores by a linearly decreasing amount. This is the default interpolation for scoring functions." }, { - "value": "zh", - "description": "Chinese Simplified" + "name": "Constant", + "value": "constant", + "description": "Boosts scores by a constant factor." }, { - "value": "zh-Hans", - "description": "Chinese Simplified" + "name": "Quadratic", + "value": "quadratic", + "description": "Boosts scores by an amount that decreases quadratically. Boosts decrease slowly for higher scores, and more quickly as the scores decrease. This interpolation option is not allowed in tag scoring functions." }, { - "value": "zh-Hant", - "description": "Chinese Traditional" + "name": "Logarithmic", + "value": "logarithmic", + "description": "Boosts scores by an amount that decreases logarithmically. Boosts decrease quickly for higher scores, and more slowly as the scores decrease. This interpolation option is not allowed in tag scoring functions." } ] - }, - "description": "The language codes supported for input by ImageAnalysisSkill." + } }, - "SynonymMap": { + "ScoringProfile": { "type": "object", + "description": "Defines parameters for a search index that influence scoring in search queries.", "properties": { "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, "type": "string", - "description": "The name of the synonym map." + "description": "The name of the scoring profile." }, - "format": { - "type": "string", - "enum": [ - "solr" - ], - "x-ms-enum": { - "name": "SynonymMapFormat", - "modelAsString": false, - "values": [ - { - "value": "solr", - "name": "Solr", - "description": "Selects the SOLR format for synonym maps." - } - ] - }, - "description": "The format of the synonym map. Only the 'solr' format is currently supported." + "text": { + "$ref": "#/definitions/TextWeights", + "description": "Parameters that boost scoring based on text matches in certain index fields.", + "x-nullable": true }, - "synonyms": { - "type": "string", - "description": "A series of synonym rules in the specified synonym map format. The rules must be separated by newlines.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Synonym-Map#SynonymMapFormat" + "functions": { + "type": "array", + "description": "The collection of functions that influence the scoring of documents.", + "items": { + "$ref": "#/definitions/ScoringFunction" } }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" - }, - "x-nullable": true - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the synonym map." + "functionAggregation": { + "$ref": "#/definitions/ScoringFunctionAggregation", + "description": "A value indicating how the results of individual scoring functions should be combined. Defaults to \"Sum\". Ignored if there are no scoring functions." } }, "required": [ - "name", - "format", - "synonyms" + "name" + ] + }, + "ScoringStatistics": { + "type": "string", + "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries.", + "enum": [ + "local", + "global" ], - "description": "Represents a synonym map definition." + "x-ms-enum": { + "name": "ScoringStatistics", + "modelAsString": true, + "values": [ + { + "name": "Local", + "value": "local", + "description": "The scoring statistics will be calculated locally for lower latency." + }, + { + "name": "Global", + "value": "global", + "description": "The scoring statistics will be calculated globally for more consistent scoring." + } + ] + } }, - "ListSynonymMapsResult": { + "SearchAlias": { "type": "object", + "description": "Represents an index alias, which describes a mapping from the alias name to an index. The alias name can be used in place of the index name for supported operations.", "properties": { - "value": { - "x-ms-client-name": "SynonymMaps", + "name": { + "type": "string", + "description": "The name of the alias." + }, + "indexes": { "type": "array", - "readOnly": true, + "description": "The name of the index this alias maps to. Only one index name may be specified.", "items": { - "$ref": "#/definitions/SynonymMap" - }, - "description": "The synonym maps in the Search service." + "type": "string" + } + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the alias.", + "x-ms-client-name": "eTag" } }, "required": [ - "value" - ], - "description": "Response from a List SynonymMaps request. If successful, it includes the full definitions of all synonym maps." + "name", + "indexes" + ] }, - "SearchResourceEncryptionKey": { + "SearchDocumentsResult": { "type": "object", + "description": "Response containing search results from an index.", "properties": { - "keyVaultKeyName": { - "x-ms-client-name": "keyName", - "type": "string", - "description": "The name of your Azure Key Vault key to be used to encrypt your data at rest." + "@odata.count": { + "type": "integer", + "format": "int64", + "description": "The total count of results found by the search operation, or null if the count was not requested. If present, the count may be greater than the number of results in this response. This can happen if you use the $top or $skip parameters, or if the query can't return all the requested documents in a single response.", + "readOnly": true, + "x-ms-client-name": "count" }, - "keyVaultKeyVersion": { - "x-ms-client-name": "keyVersion", - "type": "string", - "description": "The version of your Azure Key Vault key to be used to encrypt your data at rest." + "@search.coverage": { + "type": "number", + "format": "double", + "description": "A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not specified in the request.", + "readOnly": true, + "x-ms-client-name": "coverage" }, - "keyVaultUri": { - "x-ms-client-name": "vaultUri", - "type": "string", - "description": "The URI of your Azure Key Vault, also referred to as DNS name, that contains the key to be used to encrypt your data at rest. An example URI might be `https://my-keyvault-name.vault.azure.net`." + "@search.facets": { + "type": "object", + "description": "The facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not include any facet expressions.", + "additionalProperties": { + "items": { + "$ref": "#/definitions/FacetResult" + }, + "type": "array" + }, + "readOnly": true, + "x-ms-client-name": "facets" }, - "accessCredentials": { - "$ref": "#/definitions/AzureActiveDirectoryApplicationCredentials", - "description": "Optional Azure Active Directory credentials used for accessing your Azure Key Vault. Not required if using managed identity instead.", - "externalDocs": { - "url": "https://aka.ms/azure-search-msi" - } + "@search.answers": { + "type": "array", + "description": "The answers query results for the search operation; null if the answers query parameter was not specified or set to 'none'.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/QueryAnswerResult" + }, + "readOnly": true, + "x-ms-client-name": "answers" }, - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", + "@search.debug": { + "$ref": "#/definitions/DebugInfo", + "description": "Debug information that applies to the search results as a whole.", "x-nullable": true, - "description": "An explicit managed identity to use for this encryption key. If not specified and the access credentials property is null, the system-assigned managed identity is used. On update to the resource, if the explicit identity is unspecified, it remains unchanged. If \"none\" is specified, the value of this property is cleared." - } - }, - "required": [ - "keyVaultKeyName", - "keyVaultUri" - ], - "description": "A customer-managed encryption key in Azure Key Vault. Keys that you create and manage can be used to encrypt or decrypt data-at-rest, such as indexes and synonym maps." - }, - "SearchIndexerCache": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "A guid for the SearchIndexerCache." + "readOnly": true, + "x-ms-client-name": "debugInfo" }, - "storageConnectionString": { - "type": "string", - "description": "The connection string to the storage account where the cache data will be persisted." + "@search.nextPageParameters": { + "$ref": "#/definitions/SearchRequest", + "description": "Continuation JSON payload returned when the query can't return all the requested results in a single response. You can use this JSON along with @odata.nextLink to formulate another POST Search request to get the next part of the search response.", + "readOnly": true, + "x-ms-client-name": "nextPageParameters" }, - "enableReprocessing": { - "type": "boolean", - "x-nullable": true, - "description": "Specifies whether incremental reprocessing is enabled." + "value": { + "type": "array", + "description": "The sequence of results returned by the query.", + "items": { + "$ref": "#/definitions/SearchResult" + }, + "readOnly": true }, - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for connections to the enrichment cache. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." - } - } - }, - "AzureActiveDirectoryApplicationCredentials": { - "type": "object", - "properties": { - "applicationId": { + "@odata.nextLink": { "type": "string", - "description": "An AAD Application ID that was granted the required access permissions to the Azure Key Vault that is to be used when encrypting your data at rest. The Application ID should not be confused with the Object ID for your AAD Application." + "description": "Continuation URL returned when the query can't return all the requested results in a single response. You can use this URL to formulate another GET or POST Search request to get the next part of the search response. Make sure to use the same verb (GET or POST) as the request that produced this response.", + "readOnly": true, + "x-ms-client-name": "nextLink" }, - "applicationSecret": { - "type": "string", - "description": "The authentication key of the specified AAD application." - } - }, - "required": [ - "applicationId" - ], - "description": "Credentials of a registered application created for your search service, used for authenticated access to the encryption keys stored in Azure Key Vault." - }, - "ServiceStatistics": { - "type": "object", - "properties": { - "counters": { - "$ref": "#/definitions/ServiceCounters", - "description": "Service level resource counters." + "@search.semanticPartialResponseReason": { + "$ref": "#/definitions/SemanticErrorReason", + "description": "Reason that a partial response was returned for a semantic ranking request.", + "readOnly": true, + "x-ms-client-name": "semanticPartialResponseReason" }, - "indexersRuntime": { - "$ref": "#/definitions/ServiceIndexersRuntime", - "description": "Service level indexers runtime information." + "@search.semanticPartialResponseType": { + "$ref": "#/definitions/SemanticSearchResultsType", + "description": "Type of partial response that was returned for a semantic ranking request.", + "readOnly": true, + "x-ms-client-name": "semanticPartialResponseType" }, - "limits": { - "$ref": "#/definitions/ServiceLimits", - "description": "Service level general limits." + "@search.semanticQueryRewritesResultType": { + "$ref": "#/definitions/SemanticQueryRewritesResultType", + "description": "Type of query rewrite that was used to retrieve documents.", + "readOnly": true, + "x-ms-client-name": "semanticQueryRewritesResultType" } }, "required": [ - "counters", - "indexersRuntime", - "limits" - ], - "description": "Response from a get service statistics request. If successful, it includes service level counters, indexer runtime information, and limits." + "value" + ] }, - "ServiceCounters": { + "SearchField": { "type": "object", + "description": "Represents a field in an index definition, which describes the name, data type, and search behavior of a field.", "properties": { - "aliasesCount": { - "x-ms-client-name": "aliasCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of aliases." + "name": { + "type": "string", + "description": "The name of the field, which must be unique within the fields collection of the index or parent field." }, - "documentCount": { - "x-ms-client-name": "documentCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of documents across all indexes in the service." + "type": { + "$ref": "#/definitions/SearchFieldDataType", + "description": "The data type of the field." }, - "indexesCount": { - "x-ms-client-name": "indexCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of indexes." + "key": { + "type": "boolean", + "description": "A value indicating whether the field uniquely identifies documents in the index. Exactly one top-level field in each index must be chosen as the key field and it must be of type Edm.String. Key fields can be used to look up documents directly and update or delete specific documents. Default is false for simple fields and null for complex fields." }, - "indexersCount": { - "x-ms-client-name": "indexerCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of indexers." + "retrievable": { + "type": "boolean", + "description": "A value indicating whether the field can be returned in a search result. You can disable this option if you want to use a field (for example, margin) as a filter, sorting, or scoring mechanism but do not want the field to be visible to the end user. This property must be true for key fields, and it must be null for complex fields. This property can be changed on existing fields. Enabling this property does not cause any increase in index storage requirements. Default is true for simple fields, false for vector fields, and null for complex fields." }, - "dataSourcesCount": { - "x-ms-client-name": "dataSourceCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of data sources." + "stored": { + "type": "boolean", + "description": "An immutable value indicating whether the field will be persisted separately on disk to be returned in a search result. You can disable this option if you don't plan to return the field contents in a search response to save on storage overhead. This can only be set during index creation and only for vector fields. This property cannot be changed for existing fields or set as false for new fields. If this property is set as false, the property 'retrievable' must also be set to false. This property must be true or unset for key fields, for new fields, and for non-vector fields, and it must be null for complex fields. Disabling this property will reduce index storage requirements. The default is true for vector fields." }, - "storageSize": { - "x-ms-client-name": "storageSizeCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total size of used storage in bytes." + "searchable": { + "type": "boolean", + "description": "A value indicating whether the field is full-text searchable. This means it will undergo analysis such as word-breaking during indexing. If you set a searchable field to a value like \"sunny day\", internally it will be split into the individual tokens \"sunny\" and \"day\". This enables full-text searches for these terms. Fields of type Edm.String or Collection(Edm.String) are searchable by default. This property must be false for simple fields of other non-string data types, and it must be null for complex fields. Note: searchable fields consume extra space in your index to accommodate additional tokenized versions of the field value for full-text searches. If you want to save space in your index and you don't need a field to be included in searches, set searchable to false." }, - "synonymMaps": { - "x-ms-client-name": "synonymMapCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of synonym maps." + "filterable": { + "type": "boolean", + "description": "A value indicating whether to enable the field to be referenced in $filter queries. filterable differs from searchable in how strings are handled. Fields of type Edm.String or Collection(Edm.String) that are filterable do not undergo word-breaking, so comparisons are for exact matches only. For example, if you set such a field f to \"sunny day\", $filter=f eq 'sunny' will find no matches, but $filter=f eq 'sunny day' will. This property must be null for complex fields. Default is true for simple fields and null for complex fields." }, - "skillsetCount": { - "x-ms-client-name": "skillsetCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of skillsets." + "sortable": { + "type": "boolean", + "description": "A value indicating whether to enable the field to be referenced in $orderby expressions. By default, the search engine sorts results by score, but in many experiences users will want to sort by fields in the documents. A simple field can be sortable only if it is single-valued (it has a single value in the scope of the parent document). Simple collection fields cannot be sortable, since they are multi-valued. Simple sub-fields of complex collections are also multi-valued, and therefore cannot be sortable. This is true whether it's an immediate parent field, or an ancestor field, that's the complex collection. Complex fields cannot be sortable and the sortable property must be null for such fields. The default for sortable is true for single-valued simple fields, false for multi-valued simple fields, and null for complex fields." }, - "vectorIndexSize": { - "x-ms-client-name": "vectorIndexSizeCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total memory consumption of all vector indexes within the service, in bytes." - } - }, - "required": [ - "aliasesCount", - "documentCount", - "indexesCount", - "indexersCount", - "dataSourcesCount", - "storageSize", - "synonymMaps", - "skillsetCount", - "vectorIndexSize" - ], - "description": "Represents service-level resource counters and quotas." - }, - "ServiceIndexersRuntime": { - "type": "object", - "properties": { - "usedSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "description": "Cumulative runtime of all indexers in the service from the beginningTime to endingTime, in seconds." + "facetable": { + "type": "boolean", + "description": "A value indicating whether to enable the field to be referenced in facet queries. Typically used in a presentation of search results that includes hit count by category (for example, search for digital cameras and see hits by brand, by megapixels, by price, and so on). This property must be null for complex fields. Fields of type Edm.GeographyPoint or Collection(Edm.GeographyPoint) cannot be facetable. Default is true for all other simple fields." }, - "remainingSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds." + "permissionFilter": { + "$ref": "#/definitions/PermissionFilter", + "description": "A value indicating whether the field should be used as a permission filter.", + "x-nullable": true }, - "beginningTime": { - "type": "string", - "format": "date-time", - "x-nullable": false, - "description": "Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." + "sensitivityLabel": { + "type": "boolean", + "description": "A value indicating whether the field contains sensitivity label information.", + "x-nullable": true }, - "endingTime": { - "type": "string", - "format": "date-time", - "x-nullable": false, - "description": "End UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." - } - }, - "required": [ - "usedSeconds", - "beginningTime", - "endingTime" - ], - "description": "Represents service level indexers runtime information." - }, - "ServiceLimits": { - "type": "object", - "properties": { - "maxFieldsPerIndex": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The maximum allowed fields per index." + "analyzer": { + "$ref": "#/definitions/LexicalAnalyzerName", + "description": "The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.", + "x-nullable": true }, - "maxFieldNestingDepthPerIndex": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The maximum depth which you can nest sub-fields in an index, including the top-level complex field. For example, a/b/c has a nesting depth of 3." + "searchAnalyzer": { + "$ref": "#/definitions/LexicalAnalyzerName", + "description": "The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields.", + "x-nullable": true }, - "maxComplexCollectionFieldsPerIndex": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The maximum number of fields of type Collection(Edm.ComplexType) allowed in an index." + "indexAnalyzer": { + "$ref": "#/definitions/LexicalAnalyzerName", + "description": "The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.", + "x-nullable": true }, - "maxComplexObjectsInCollectionsPerDocument": { + "normalizer": { + "$ref": "#/definitions/LexicalNormalizerName", + "description": "The name of the normalizer to use for the field. This option can be used only with fields with filterable, sortable, or facetable enabled. Once the normalizer is chosen, it cannot be changed for the field. Must be null for complex fields.", + "x-nullable": true + }, + "dimensions": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "The maximum number of objects in complex collections allowed per document." + "description": "The dimensionality of the vector field.", + "minimum": 2, + "maximum": 4096 }, - "maxStoragePerIndex": { - "x-ms-client-name": "maxStoragePerIndexInBytes", - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "The maximum amount of storage in bytes allowed per index." + "vectorSearchProfile": { + "type": "string", + "description": "The name of the vector search profile that specifies the algorithm and vectorizer to use when searching the vector field.", + "x-nullable": true }, - "maxCumulativeIndexerRuntimeSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "The maximum cumulative runtime in seconds allowed for all indexers in the service over the current UTC period." + "vectorEncoding": { + "$ref": "#/definitions/VectorEncodingFormat", + "description": "The encoding format to interpret the field contents.", + "x-nullable": true + }, + "synonymMaps": { + "type": "array", + "description": "A list of the names of synonym maps to associate with this field. This option can be used only with searchable fields. Currently only one synonym map per field is supported. Assigning a synonym map to a field ensures that query terms targeting that field are expanded at query-time using the rules in the synonym map. This attribute can be changed on existing fields. Must be null or an empty collection for complex fields.", + "items": { + "type": "string" + } + }, + "fields": { + "type": "array", + "description": "A list of sub-fields if this is a field of type Edm.ComplexType or Collection(Edm.ComplexType). Must be null or empty for simple fields.", + "items": { + "$ref": "#/definitions/SearchField" + } + } + }, + "required": [ + "name", + "type" + ] + }, + "SearchFieldDataType": { + "type": "string", + "description": "Defines the data type of a field in a search index.", + "enum": [ + "Edm.String", + "Edm.Int32", + "Edm.Int64", + "Edm.Double", + "Edm.Boolean", + "Edm.DateTimeOffset", + "Edm.GeographyPoint", + "Edm.ComplexType", + "Edm.Single", + "Edm.Half", + "Edm.Int16", + "Edm.SByte", + "Edm.Byte" + ], + "x-ms-enum": { + "name": "SearchFieldDataType", + "modelAsString": true, + "values": [ + { + "name": "String", + "value": "Edm.String", + "description": "Indicates that a field contains a string." + }, + { + "name": "Int32", + "value": "Edm.Int32", + "description": "Indicates that a field contains a 32-bit signed integer." + }, + { + "name": "Int64", + "value": "Edm.Int64", + "description": "Indicates that a field contains a 64-bit signed integer." + }, + { + "name": "Double", + "value": "Edm.Double", + "description": "Indicates that a field contains an IEEE double-precision floating point number." + }, + { + "name": "Boolean", + "value": "Edm.Boolean", + "description": "Indicates that a field contains a Boolean value (true or false)." + }, + { + "name": "DateTimeOffset", + "value": "Edm.DateTimeOffset", + "description": "Indicates that a field contains a date/time value, including timezone information." + }, + { + "name": "GeographyPoint", + "value": "Edm.GeographyPoint", + "description": "Indicates that a field contains a geo-location in terms of longitude and latitude." + }, + { + "name": "Complex", + "value": "Edm.ComplexType", + "description": "Indicates that a field contains one or more complex objects that in turn have sub-fields of other types." + }, + { + "name": "Single", + "value": "Edm.Single", + "description": "Indicates that a field contains a single-precision floating point number. This is only valid when used with Collection(Edm.Single)." + }, + { + "name": "Half", + "value": "Edm.Half", + "description": "Indicates that a field contains a half-precision floating point number. This is only valid when used with Collection(Edm.Half)." + }, + { + "name": "Int16", + "value": "Edm.Int16", + "description": "Indicates that a field contains a 16-bit signed integer. This is only valid when used with Collection(Edm.Int16)." + }, + { + "name": "SByte", + "value": "Edm.SByte", + "description": "Indicates that a field contains a 8-bit signed integer. This is only valid when used with Collection(Edm.SByte)." + }, + { + "name": "Byte", + "value": "Edm.Byte", + "description": "Indicates that a field contains a 8-bit unsigned integer. This is only valid when used with Collection(Edm.Byte)." + } + ] + } + }, + "SearchIndex": { + "type": "object", + "description": "Represents a search index definition, which describes the fields and search behavior of an index.", + "properties": { + "name": { + "type": "string", + "description": "The name of the index." + }, + "description": { + "type": "string", + "description": "The description of the index." + }, + "fields": { + "type": "array", + "description": "The fields of the index.", + "items": { + "$ref": "#/definitions/SearchField" + } + }, + "scoringProfiles": { + "type": "array", + "description": "The scoring profiles for the index.", + "items": { + "$ref": "#/definitions/ScoringProfile" + } + }, + "defaultScoringProfile": { + "type": "string", + "description": "The name of the scoring profile to use if none is specified in the query. If this property is not set and no scoring profile is specified in the query, then default scoring (tf-idf) will be used." + }, + "corsOptions": { + "$ref": "#/definitions/CorsOptions", + "description": "Options to control Cross-Origin Resource Sharing (CORS) for the index.", + "x-nullable": true + }, + "suggesters": { + "type": "array", + "description": "The suggesters for the index.", + "items": { + "$ref": "#/definitions/SearchSuggester" + } + }, + "analyzers": { + "type": "array", + "description": "The analyzers for the index.", + "items": { + "$ref": "#/definitions/LexicalAnalyzer" + } + }, + "tokenizers": { + "type": "array", + "description": "The tokenizers for the index.", + "items": { + "$ref": "#/definitions/LexicalTokenizer" + } + }, + "tokenFilters": { + "type": "array", + "description": "The token filters for the index.", + "items": { + "$ref": "#/definitions/TokenFilter" + } + }, + "charFilters": { + "type": "array", + "description": "The character filters for the index.", + "items": { + "$ref": "#/definitions/CharFilter" + } + }, + "normalizers": { + "type": "array", + "description": "The normalizers for the index.", + "items": { + "$ref": "#/definitions/LexicalNormalizer" + } + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + }, + "similarity": { + "$ref": "#/definitions/SimilarityAlgorithm", + "description": "The type of similarity algorithm to be used when scoring and ranking the documents matching a search query. The similarity algorithm can only be defined at index creation time and cannot be modified on existing indexes. If null, the ClassicSimilarity algorithm is used." + }, + "semantic": { + "$ref": "#/definitions/SemanticSearch", + "description": "Defines parameters for a search index that influence semantic capabilities.", + "x-nullable": true + }, + "vectorSearch": { + "$ref": "#/definitions/VectorSearch", + "description": "Contains configuration options related to vector search.", + "x-nullable": true + }, + "permissionFilterOption": { + "$ref": "#/definitions/SearchIndexPermissionFilterOption", + "description": "A value indicating whether permission filtering is enabled for the index.", + "x-nullable": true + }, + "purviewEnabled": { + "type": "boolean", + "description": "A value indicating whether Purview is enabled for the index.", + "x-nullable": true + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the index.", + "x-ms-client-name": "eTag" + } + }, + "required": [ + "name", + "fields" + ] + }, + "SearchIndexClientOptions": { + "type": "object", + "description": "Client initialization options for SearchIndexClient.", + "properties": { + "indexName": { + "type": "string", + "description": "The name of the index." + } + }, + "required": [ + "indexName" + ] + }, + "SearchIndexFieldReference": { + "type": "object", + "description": "Field reference for a search index.", + "properties": { + "name": { + "type": "string", + "description": "The name of the field." + } + }, + "required": [ + "name" + ] + }, + "SearchIndexKnowledgeSource": { + "type": "object", + "description": "Knowledge Source targeting a search index.", + "properties": { + "searchIndexParameters": { + "$ref": "#/definitions/SearchIndexKnowledgeSourceParameters", + "description": "The parameters for the knowledge source." + } + }, + "required": [ + "searchIndexParameters" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSource" } + ], + "x-ms-discriminator-value": "searchIndex" + }, + "SearchIndexKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for search index knowledge source.", + "properties": { + "searchIndexName": { + "type": "string", + "description": "The name of the Search index." + }, + "sourceDataFields": { + "type": "array", + "description": "Used to request additional fields for referenced source data.", + "items": { + "$ref": "#/definitions/SearchIndexFieldReference" + } + }, + "searchFields": { + "type": "array", + "description": "Used to restrict which fields to search on the search index.", + "items": { + "$ref": "#/definitions/SearchIndexFieldReference" + } + }, + "semanticConfigurationName": { + "type": "string", + "description": "Used to specify a different semantic configuration on the target search index other than the default one." + } + }, + "required": [ + "searchIndexName" + ] + }, + "SearchIndexKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a search index knowledge source", + "properties": { + "filterAddOn": { + "type": "string", + "description": "A filter condition applied to the index (e.g., 'State eq VA')." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } + ], + "x-ms-discriminator-value": "searchIndex" + }, + "SearchIndexPermissionFilterOption": { + "type": "string", + "description": "A value indicating whether permission filtering is enabled for the index.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "SearchIndexPermissionFilterOption", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "enabled", + "description": "enabled." + }, + { + "name": "Disabled", + "value": "disabled", + "description": "disabled." + } + ] + } + }, + "SearchIndexer": { + "type": "object", + "description": "Represents an indexer.", + "properties": { + "name": { + "type": "string", + "description": "The name of the indexer." + }, + "description": { + "type": "string", + "description": "The description of the indexer." + }, + "dataSourceName": { + "type": "string", + "description": "The name of the datasource from which this indexer reads data." + }, + "skillsetName": { + "type": "string", + "description": "The name of the skillset executing with this indexer." + }, + "targetIndexName": { + "type": "string", + "description": "The name of the index to which this indexer writes data." + }, + "schedule": { + "$ref": "#/definitions/IndexingSchedule", + "description": "The schedule for this indexer.", + "x-nullable": true + }, + "parameters": { + "$ref": "#/definitions/IndexingParameters", + "description": "Parameters for indexer execution.", + "x-nullable": true + }, + "fieldMappings": { + "type": "array", + "description": "Defines mappings between fields in the data source and corresponding target fields in the index.", + "items": { + "$ref": "#/definitions/FieldMapping" + } + }, + "outputFieldMappings": { + "type": "array", + "description": "Output field mappings are applied after enrichment and immediately before indexing.", + "items": { + "$ref": "#/definitions/FieldMapping" + } + }, + "disabled": { + "type": "boolean", + "description": "A value indicating whether the indexer is disabled. Default is false.", + "default": false, + "x-nullable": true + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the indexer.", + "x-ms-client-name": "eTag" + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your indexer definition (as well as indexer execution status) when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your indexer definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your indexer definition (and indexer execution status) will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + }, + "cache": { + "$ref": "#/definitions/SearchIndexerCache", + "description": "Adds caching to an enrichment pipeline to allow for incremental modification steps without having to rebuild the index every time.", + "x-nullable": true + } + }, + "required": [ + "name", + "dataSourceName", + "targetIndexName" + ] + }, + "SearchIndexerCache": { + "type": "object", + "description": "The type of the cache.", + "properties": { + "id": { + "type": "string", + "description": "A guid for the SearchIndexerCache." + }, + "storageConnectionString": { + "type": "string", + "description": "The connection string to the storage account where the cache data will be persisted." + }, + "enableReprocessing": { + "type": "boolean", + "description": "Specifies whether incremental reprocessing is enabled.", + "x-nullable": true + }, + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for connections to the enrichment cache. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + } + } + }, + "SearchIndexerDataContainer": { + "type": "object", + "description": "Represents information about the entity (such as Azure SQL table or CosmosDB collection) that will be indexed.", + "properties": { + "name": { + "type": "string", + "description": "The name of the table or view (for Azure SQL data source) or collection (for CosmosDB data source) that will be indexed." + }, + "query": { + "type": "string", + "description": "A query that is applied to this data container. The syntax and meaning of this parameter is datasource-specific. Not supported by Azure SQL datasources." + } + }, + "required": [ + "name" + ] + }, + "SearchIndexerDataIdentity": { + "type": "object", + "description": "Abstract base type for data identities.", + "properties": { + "@odata.type": { + "type": "string", + "description": "A URI fragment specifying the type of identity." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] + }, + "SearchIndexerDataNoneIdentity": { + "type": "object", + "description": "Clears the identity property of a datasource.", + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerDataIdentity" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.DataNoneIdentity" + }, + "SearchIndexerDataSource": { + "type": "object", + "description": "Represents a datasource definition, which can be used to configure an indexer.", + "properties": { + "name": { + "type": "string", + "description": "The name of the datasource." + }, + "description": { + "type": "string", + "description": "The description of the datasource." + }, + "type": { + "$ref": "#/definitions/SearchIndexerDataSourceType", + "description": "The type of the datasource." + }, + "subType": { + "type": "string", + "description": "A specific type of the data source, in case the resource is capable of different modalities. For example, 'MongoDb' for certain 'cosmosDb' accounts.", + "readOnly": true + }, + "credentials": { + "$ref": "#/definitions/DataSourceCredentials", + "description": "Credentials for the datasource.", + "x-ms-client-flatten": true + }, + "container": { + "$ref": "#/definitions/SearchIndexerDataContainer", + "description": "The data container for the datasource." + }, + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "An explicit managed identity to use for this datasource. If not specified and the connection string is a managed identity, the system-assigned managed identity is used. If not specified, the value remains unchanged. If \"none\" is specified, the value of this property is cleared.", + "x-nullable": true + }, + "indexerPermissionOptions": { + "type": "array", + "description": "Ingestion options with various types of permission data.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/IndexerPermissionOption" + } + }, + "dataChangeDetectionPolicy": { + "$ref": "#/definitions/DataChangeDetectionPolicy", + "description": "The data change detection policy for the datasource.", + "x-nullable": true + }, + "dataDeletionDetectionPolicy": { + "$ref": "#/definitions/DataDeletionDetectionPolicy", + "description": "The data deletion detection policy for the datasource.", + "x-nullable": true + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the data source.", + "x-ms-client-name": "eTag" + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your datasource definition when you want full assurance that no one, not even Microsoft, can decrypt your data source definition. Once you have encrypted your data source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your datasource definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + } + }, + "required": [ + "name", + "type", + "credentials", + "container" + ] + }, + "SearchIndexerDataSourceType": { + "type": "string", + "description": "Defines the type of a datasource.", + "enum": [ + "azuresql", + "cosmosdb", + "azureblob", + "azuretable", + "mysql", + "adlsgen2", + "onelake", + "sharepoint" + ], + "x-ms-enum": { + "name": "SearchIndexerDataSourceType", + "modelAsString": true, + "values": [ + { + "name": "AzureSql", + "value": "azuresql", + "description": "Indicates an Azure SQL datasource." + }, + { + "name": "CosmosDb", + "value": "cosmosdb", + "description": "Indicates a CosmosDB datasource." + }, + { + "name": "AzureBlob", + "value": "azureblob", + "description": "Indicates an Azure Blob datasource." + }, + { + "name": "AzureTable", + "value": "azuretable", + "description": "Indicates an Azure Table datasource." + }, + { + "name": "MySql", + "value": "mysql", + "description": "Indicates a MySql datasource." + }, + { + "name": "AdlsGen2", + "value": "adlsgen2", + "description": "Indicates an ADLS Gen2 datasource." + }, + { + "name": "OneLake", + "value": "onelake", + "description": "Indicates a Microsoft Fabric OneLake datasource." + }, + { + "name": "SharePoint", + "value": "sharepoint", + "description": "Indicates a SharePoint datasource." + } + ] + } + }, + "SearchIndexerDataUserAssignedIdentity": { + "type": "object", + "description": "Specifies the identity for a datasource to use.", + "properties": { + "userAssignedIdentity": { + "type": "string", + "description": "The fully qualified Azure resource Id of a user assigned managed identity typically in the form \"/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId\" that should have been assigned to the search service." + } + }, + "required": [ + "userAssignedIdentity" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerDataIdentity" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "SearchIndexerError": { + "type": "object", + "description": "Represents an item- or document-level indexing error.", + "properties": { + "key": { + "type": "string", + "description": "The key of the item for which indexing failed.", + "readOnly": true + }, + "errorMessage": { + "type": "string", + "description": "The message describing the error that occurred while processing the item.", + "readOnly": true + }, + "statusCode": { + "type": "integer", + "format": "int32", + "description": "The status code indicating why the indexing operation failed. Possible values include: 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the source at which the error originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available.", + "readOnly": true + }, + "details": { + "type": "string", + "description": "Additional, verbose details about the error to assist in debugging the indexer. This may not be always available.", + "readOnly": true + }, + "documentationLink": { + "type": "string", + "description": "A link to a troubleshooting guide for these classes of errors. This may not be always available.", + "readOnly": true + } + }, + "required": [ + "errorMessage", + "statusCode" + ] + }, + "SearchIndexerIndexProjection": { + "type": "object", + "description": "Definition of additional projections to secondary search indexes.", + "properties": { + "selectors": { + "type": "array", + "description": "A list of projections to be performed to secondary search indexes.", + "items": { + "$ref": "#/definitions/SearchIndexerIndexProjectionSelector" + } + }, + "parameters": { + "$ref": "#/definitions/SearchIndexerIndexProjectionsParameters", + "description": "A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." + } + }, + "required": [ + "selectors" + ] + }, + "SearchIndexerIndexProjectionSelector": { + "type": "object", + "description": "Description for what data to store in the designated search index.", + "properties": { + "targetIndexName": { + "type": "string", + "description": "Name of the search index to project to. Must have a key field with the 'keyword' analyzer set." + }, + "parentKeyFieldName": { + "type": "string", + "description": "Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field." + }, + "sourceContext": { + "type": "string", + "description": "Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents." + }, + "mappings": { + "type": "array", + "description": "Mappings for the projection, or which source should be mapped to which field in the target index.", + "items": { + "$ref": "#/definitions/InputFieldMappingEntry" + } + } + }, + "required": [ + "targetIndexName", + "parentKeyFieldName", + "sourceContext", + "mappings" + ] + }, + "SearchIndexerIndexProjectionsParameters": { + "type": "object", + "description": "A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.", + "properties": { + "projectionMode": { + "$ref": "#/definitions/IndexProjectionMode", + "description": "Defines behavior of the index projections in relation to the rest of the indexer." + } + }, + "additionalProperties": {} + }, + "SearchIndexerKnowledgeStore": { + "type": "object", + "description": "Definition of additional projections to azure blob, table, or files, of enriched data.", + "properties": { + "storageConnectionString": { + "type": "string", + "description": "The connection string to the storage account projections will be stored in." + }, + "projections": { + "type": "array", + "description": "A list of additional projections to perform during indexing.", + "items": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjection" + } + }, + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for connections to Azure Storage when writing knowledge store projections. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + }, + "parameters": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreParameters", + "description": "A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." + } + }, + "required": [ + "storageConnectionString", + "projections" + ] + }, + "SearchIndexerKnowledgeStoreBlobProjectionSelector": { + "type": "object", + "description": "Abstract class to share properties between concrete selectors.", + "properties": { + "storageContainer": { + "type": "string", + "description": "Blob container to store projections in." + } + }, + "required": [ + "storageContainer" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjectionSelector" + } + ] + }, + "SearchIndexerKnowledgeStoreFileProjectionSelector": { + "type": "object", + "description": "Projection definition for what data to store in Azure Files.", + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreBlobProjectionSelector" + } + ] + }, + "SearchIndexerKnowledgeStoreObjectProjectionSelector": { + "type": "object", + "description": "Projection definition for what data to store in Azure Blob.", + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreBlobProjectionSelector" + } + ] + }, + "SearchIndexerKnowledgeStoreParameters": { + "type": "object", + "description": "A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.", + "properties": { + "synthesizeGeneratedKeyName": { + "type": "boolean", + "description": "Whether or not projections should synthesize a generated key name if one isn't already present.", + "default": false + } + }, + "additionalProperties": {} + }, + "SearchIndexerKnowledgeStoreProjection": { + "type": "object", + "description": "Container object for various projection selectors.", + "properties": { + "tables": { + "type": "array", + "description": "Projections to Azure Table storage.", + "items": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreTableProjectionSelector" + } + }, + "objects": { + "type": "array", + "description": "Projections to Azure Blob storage.", + "items": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreObjectProjectionSelector" + } + }, + "files": { + "type": "array", + "description": "Projections to Azure File storage.", + "items": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreFileProjectionSelector" + } + } + } + }, + "SearchIndexerKnowledgeStoreProjectionSelector": { + "type": "object", + "description": "Abstract class to share properties between concrete selectors.", + "properties": { + "referenceKeyName": { + "type": "string", + "description": "Name of reference key to different projection." + }, + "generatedKeyName": { + "type": "string", + "description": "Name of generated key to store projection under." + }, + "source": { + "type": "string", + "description": "Source data to project." + }, + "sourceContext": { + "type": "string", + "description": "Source context for complex projections." + }, + "inputs": { + "type": "array", + "description": "Nested inputs for complex projections.", + "items": { + "$ref": "#/definitions/InputFieldMappingEntry" + } + } + } + }, + "SearchIndexerKnowledgeStoreTableProjectionSelector": { + "type": "object", + "description": "Description for what data to store in Azure Tables.", + "properties": { + "generatedKeyName": { + "type": "string", + "description": "Name of generated key to store projection under." + }, + "tableName": { + "type": "string", + "description": "Name of the Azure table to store projected data in." + } + }, + "required": [ + "generatedKeyName", + "tableName" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjectionSelector" + } + ] + }, + "SearchIndexerLimits": { + "type": "object", + "description": "Represents the limits that can be applied to an indexer.", + "properties": { + "maxRunTime": { + "type": "string", + "format": "duration", + "description": "The maximum duration that the indexer is permitted to run for one execution.", + "readOnly": true + }, + "maxDocumentExtractionSize": { + "type": "integer", + "format": "int64", + "description": "The maximum size of a document, in bytes, which will be considered valid for indexing.", + "readOnly": true + }, + "maxDocumentContentCharactersToExtract": { + "type": "integer", + "format": "int64", + "description": "The maximum number of characters that will be extracted from a document picked up for indexing.", + "readOnly": true + } + } + }, + "SearchIndexerSkill": { + "type": "object", + "description": "Base type for skills.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "name": { + "type": "string", + "description": "The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'." + }, + "description": { + "type": "string", + "description": "The description of the skill which describes the inputs, outputs, and usage of the skill." + }, + "context": { + "type": "string", + "description": "Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document." + }, + "inputs": { + "type": "array", + "description": "Inputs of the skills could be a column in the source data set, or the output of an upstream skill.", + "items": { + "$ref": "#/definitions/InputFieldMappingEntry" + } + }, + "outputs": { + "type": "array", + "description": "The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill.", + "items": { + "$ref": "#/definitions/OutputFieldMappingEntry" + } + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type", + "inputs", + "outputs" + ] + }, + "SearchIndexerSkillset": { + "type": "object", + "description": "A list of skills.", + "properties": { + "name": { + "type": "string", + "description": "The name of the skillset." + }, + "description": { + "type": "string", + "description": "The description of the skillset." + }, + "skills": { + "type": "array", + "description": "A list of skills in the skillset.", + "items": { + "$ref": "#/definitions/SearchIndexerSkill" + } + }, + "cognitiveServices": { + "$ref": "#/definitions/CognitiveServicesAccount", + "description": "Details about the Azure AI service to be used when running skills." + }, + "knowledgeStore": { + "$ref": "#/definitions/SearchIndexerKnowledgeStore", + "description": "Definition of additional projections to Azure blob, table, or files, of enriched data." + }, + "indexProjections": { + "$ref": "#/definitions/SearchIndexerIndexProjection", + "description": "Definition of additional projections to secondary search index(es)." + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the skillset.", + "x-ms-client-name": "eTag" + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your skillset definition when you want full assurance that no one, not even Microsoft, can decrypt your skillset definition. Once you have encrypted your skillset definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your skillset definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + } + }, + "required": [ + "name", + "skills" + ] + }, + "SearchIndexerStatus": { + "type": "object", + "description": "Represents the current status and execution history of an indexer.", + "properties": { + "name": { + "type": "string", + "description": "The name of the indexer.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/IndexerStatus", + "description": "Overall indexer status.", + "readOnly": true + }, + "runtime": { + "$ref": "#/definitions/IndexerRuntime", + "description": "Snapshot of the indexer's cumulative runtime consumption for the service over the current UTC period.", + "readOnly": true + }, + "lastResult": { + "$ref": "#/definitions/IndexerExecutionResult", + "description": "The result of the most recent or an in-progress indexer execution.", + "readOnly": true + }, + "executionHistory": { + "type": "array", + "description": "History of the recent indexer executions, sorted in reverse chronological order.", + "items": { + "$ref": "#/definitions/IndexerExecutionResult" + }, + "readOnly": true + }, + "limits": { + "$ref": "#/definitions/SearchIndexerLimits", + "description": "The execution limits for the indexer.", + "readOnly": true + }, + "currentState": { + "$ref": "#/definitions/IndexerCurrentState", + "description": "All of the state that defines and dictates the indexer's current execution.", + "readOnly": true + } + }, + "required": [ + "name", + "status", + "runtime", + "executionHistory", + "limits" + ] + }, + "SearchIndexerWarning": { + "type": "object", + "description": "Represents an item-level warning.", + "properties": { + "key": { + "type": "string", + "description": "The key of the item which generated a warning.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The message describing the warning that occurred while processing the item.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the source at which the warning originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available.", + "readOnly": true + }, + "details": { + "type": "string", + "description": "Additional, verbose details about the warning to assist in debugging the indexer. This may not be always available.", + "readOnly": true + }, + "documentationLink": { + "type": "string", + "description": "A link to a troubleshooting guide for these classes of warnings. This may not be always available.", + "readOnly": true + } + }, + "required": [ + "message" + ] + }, + "SearchMode": { + "type": "string", + "description": "Specifies whether any or all of the search terms must be matched in order to count the document as a match.", + "enum": [ + "any", + "all" + ], + "x-ms-enum": { + "name": "SearchMode", + "modelAsString": true, + "values": [ + { + "name": "Any", + "value": "any", + "description": "Any of the search terms must be matched in order to count the document as a match." + }, + { + "name": "All", + "value": "all", + "description": "All of the search terms must be matched in order to count the document as a match." + } + ] + } + }, + "SearchRequest": { + "type": "object", + "description": "Parameters for filtering, sorting, faceting, paging, and other search query behaviors.", + "properties": { + "count": { + "type": "boolean", + "description": "A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation." + }, + "facets": { + "type": "array", + "description": "The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.", + "items": { + "type": "string" + } + }, + "filter": { + "type": "string", + "description": "The OData $filter expression to apply to the search query." + }, + "highlight": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting." + }, + "highlightPostTag": { + "type": "string", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>." + }, + "highlightPreTag": { + "type": "string", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>." + }, + "minimumCoverage": { + "type": "number", + "format": "double", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100." + }, + "orderby": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." + }, + "queryType": { + "$ref": "#/definitions/QueryType", + "description": "A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax." + }, + "scoringStatistics": { + "$ref": "#/definitions/ScoringStatistics", + "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries." + }, + "sessionId": { + "type": "string", + "description": "A value to be used to create a sticky session, which can help getting more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character." + }, + "scoringParameters": { + "type": "array", + "description": "The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).", + "items": { + "type": "string" + } + }, + "scoringProfile": { + "type": "string", + "description": "The name of a scoring profile to evaluate match scores for matching documents in order to sort the results." + }, + "debug": { + "$ref": "#/definitions/QueryDebugMode", + "description": "Enables a debugging tool that can be used to further explore your reranked results." + }, + "search": { + "type": "string", + "description": "A full-text search query expression; Use \"*\" or omit this parameter to match all documents." + }, + "searchFields": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter." + }, + "searchMode": { + "$ref": "#/definitions/SearchMode", + "description": "A value that specifies whether any or all of the search terms must be matched in order to count the document as a match." + }, + "queryLanguage": { + "$ref": "#/definitions/QueryLanguage", + "description": "A value that specifies the language of the search query." + }, + "speller": { + "$ref": "#/definitions/QuerySpellerType", + "description": "A value that specifies the type of the speller to use to spell-correct individual search query terms." + }, + "select": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included." + }, + "skip": { + "type": "integer", + "format": "int32", + "description": "The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead." + }, + "top": { + "type": "integer", + "format": "int32", + "description": "The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results." + }, + "semanticConfiguration": { + "type": "string", + "description": "The name of a semantic configuration that will be used when processing documents for queries of type semantic." + }, + "semanticErrorHandling": { + "$ref": "#/definitions/SemanticErrorMode", + "description": "Allows the user to choose whether a semantic call should fail completely (default / current behavior), or to return partial results." + }, + "semanticMaxWaitInMilliseconds": { + "type": "integer", + "format": "int32", + "description": "Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.", + "minimum": 700 + }, + "semanticQuery": { + "type": "string", + "description": "Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase." + }, + "answers": { + "$ref": "#/definitions/QueryAnswerType", + "description": "A value that specifies whether answers should be returned as part of the search response." + }, + "captions": { + "$ref": "#/definitions/QueryCaptionType", + "description": "A value that specifies whether captions should be returned as part of the search response." + }, + "queryRewrites": { + "$ref": "#/definitions/QueryRewritesType", + "description": "A value that specifies whether query rewrites should be generated to augment the search query." + }, + "semanticFields": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names used for semantic ranking." + }, + "vectorQueries": { + "type": "array", + "description": "The query parameters for vector and hybrid search queries.", + "items": { + "$ref": "#/definitions/VectorQuery" + } + }, + "vectorFilterMode": { + "$ref": "#/definitions/VectorFilterMode", + "description": "Determines whether or not filters are applied before or after the vector search is performed. Default is 'preFilter' for new indexes." + }, + "hybridSearch": { + "$ref": "#/definitions/HybridSearch", + "description": "The query parameters to configure hybrid search behaviors." + } + } + }, + "SearchResourceEncryptionKey": { + "type": "object", + "description": "A customer-managed encryption key in Azure Key Vault. Keys that you create and manage can be used to encrypt or decrypt data-at-rest, such as indexes and synonym maps.", + "properties": { + "keyVaultKeyName": { + "type": "string", + "description": "The name of your Azure Key Vault key to be used to encrypt your data at rest." + }, + "keyVaultKeyVersion": { + "type": "string", + "description": "The version of your Azure Key Vault key to be used to encrypt your data at rest." + }, + "keyVaultUri": { + "type": "string", + "description": "The URI of your Azure Key Vault, also referred to as DNS name, that contains the key to be used to encrypt your data at rest. An example URI might be `https://my-keyvault-name.vault.azure.net`." + }, + "accessCredentials": { + "$ref": "#/definitions/AzureActiveDirectoryApplicationCredentials", + "description": "Optional Azure Active Directory credentials used for accessing your Azure Key Vault. Not required if using managed identity instead.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "An explicit managed identity to use for this encryption key. If not specified and the access credentials property is null, the system-assigned managed identity is used. On update to the resource, if the explicit identity is unspecified, it remains unchanged. If \"none\" is specified, the value of this property is cleared.", + "x-nullable": true + } + }, + "required": [ + "keyVaultKeyName", + "keyVaultUri" + ] + }, + "SearchResult": { + "type": "object", + "description": "Contains a document found by a search query, plus associated metadata.", + "properties": { + "@search.score": { + "type": "number", + "format": "double", + "description": "The relevance score of the document compared to other documents returned by the query.", + "readOnly": true, + "x-ms-client-name": "score" + }, + "@search.rerankerScore": { + "type": "number", + "format": "double", + "description": "The relevance score computed by the semantic ranker for the top search results. Search results are sorted by the RerankerScore first and then by the Score. RerankerScore is only returned for queries of type 'semantic'.", + "x-nullable": true, + "readOnly": true, + "x-ms-client-name": "rerankerScore" + }, + "@search.rerankerBoostedScore": { + "type": "number", + "format": "double", + "description": "The relevance score computed by boosting the Reranker Score. Search results are sorted by the RerankerScore/RerankerBoostedScore based on useScoringProfileBoostedRanking in the Semantic Config. RerankerBoostedScore is only returned for queries of type 'semantic'.", + "x-nullable": true, + "readOnly": true, + "x-ms-client-name": "rerankerBoostedScore" + }, + "@search.highlights": { + "type": "object", + "description": "Text fragments from the document that indicate the matching search terms, organized by each applicable field; null if hit highlighting was not enabled for the query.", + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "readOnly": true, + "x-ms-client-name": "highlights" + }, + "@search.captions": { + "type": "array", + "description": "Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type 'semantic'.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/QueryCaptionResult" + }, + "readOnly": true, + "x-ms-client-name": "captions" + }, + "@search.documentDebugInfo": { + "$ref": "#/definitions/DocumentDebugInfo", + "description": "Contains debugging information that can be used to further explore your search results.", + "x-nullable": true, + "readOnly": true, + "x-ms-client-name": "documentDebugInfo" + } + }, + "required": [ + "@search.score" + ], + "additionalProperties": {} + }, + "SearchScoreThreshold": { + "type": "object", + "description": "The results of the vector query will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score.", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The threshold will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." + } + }, + "required": [ + "value" + ], + "allOf": [ + { + "$ref": "#/definitions/VectorThreshold" + } + ], + "x-ms-discriminator-value": "searchScore" + }, + "SearchServiceCounters": { + "type": "object", + "description": "Represents service-level resource counters and quotas.", + "properties": { + "aliasesCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of aliases." + }, + "documentCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of documents across all indexes in the service." + }, + "indexesCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of indexes." + }, + "indexersCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of indexers." + }, + "dataSourcesCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of data sources." + }, + "storageSize": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total size of used storage in bytes." + }, + "synonymMaps": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of synonym maps." + }, + "skillsetCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of skillsets." + }, + "vectorIndexSize": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total memory consumption of all vector indexes within the service, in bytes." + } + }, + "required": [ + "aliasesCount", + "documentCount", + "indexesCount", + "indexersCount", + "dataSourcesCount", + "storageSize", + "synonymMaps", + "skillsetCount", + "vectorIndexSize" + ] + }, + "SearchServiceLimits": { + "type": "object", + "description": "Represents various service level limits.", + "properties": { + "maxFieldsPerIndex": { + "type": "integer", + "format": "int32", + "description": "The maximum allowed fields per index.", + "x-nullable": true + }, + "maxFieldNestingDepthPerIndex": { + "type": "integer", + "format": "int32", + "description": "The maximum depth which you can nest sub-fields in an index, including the top-level complex field. For example, a/b/c has a nesting depth of 3.", + "x-nullable": true + }, + "maxComplexCollectionFieldsPerIndex": { + "type": "integer", + "format": "int32", + "description": "The maximum number of fields of type Collection(Edm.ComplexType) allowed in an index.", + "x-nullable": true + }, + "maxComplexObjectsInCollectionsPerDocument": { + "type": "integer", + "format": "int32", + "description": "The maximum number of objects in complex collections allowed per document.", + "x-nullable": true + }, + "maxStoragePerIndex": { + "type": "integer", + "format": "int64", + "description": "The maximum amount of storage in bytes allowed per index.", + "x-nullable": true + }, + "maxCumulativeIndexerRuntimeSeconds": { + "type": "integer", + "format": "int64", + "description": "The maximum cumulative indexer runtime in seconds allowed for the service.", + "x-nullable": true + } + } + }, + "SearchServiceStatistics": { + "type": "object", + "description": "Response from a get service statistics request. If successful, it includes service level counters and limits.", + "properties": { + "counters": { + "$ref": "#/definitions/SearchServiceCounters", + "description": "Service level resource counters." + }, + "limits": { + "$ref": "#/definitions/SearchServiceLimits", + "description": "Service level general limits." + }, + "indexersRuntime": { + "$ref": "#/definitions/ServiceIndexersRuntime", + "description": "Service level indexer runtime consumption." + } + }, + "required": [ + "counters", + "limits", + "indexersRuntime" + ] + }, + "SearchSuggester": { + "type": "object", + "description": "Defines how the Suggest API should apply to a group of fields in the index.", + "properties": { + "name": { + "type": "string", + "description": "The name of the suggester." + }, + "searchMode": { + "type": "string", + "description": "A value indicating the capabilities of the suggester.", + "enum": [ + "analyzingInfixMatching" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "sourceFields": { + "type": "array", + "description": "The list of field names to which the suggester applies. Each field must be searchable.", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "searchMode", + "sourceFields" + ] + }, + "SemanticConfiguration": { + "type": "object", + "description": "Defines a specific configuration to be used in the context of semantic capabilities.", + "properties": { + "name": { + "type": "string", + "description": "The name of the semantic configuration." + }, + "prioritizedFields": { + "$ref": "#/definitions/SemanticPrioritizedFields", + "description": "Describes the title, content, and keyword fields to be used for semantic ranking, captions, highlights, and answers. At least one of the three sub properties (titleField, prioritizedKeywordsFields and prioritizedContentFields) need to be set." + }, + "rankingOrder": { + "$ref": "#/definitions/RankingOrder", + "description": "Specifies the score type to be used for the sort order of the search results.", + "x-nullable": true + }, + "flightingOptIn": { + "type": "boolean", + "description": "Determines which semantic or query rewrite models to use during model flighting/upgrades.", + "default": false + } + }, + "required": [ + "name", + "prioritizedFields" + ] + }, + "SemanticDebugInfo": { + "type": "object", + "description": "Contains debugging information specific to semantic ranking requests.", + "properties": { + "titleField": { + "$ref": "#/definitions/QueryResultDocumentSemanticField", + "description": "The title field that was sent to the semantic enrichment process, as well as how it was used", + "readOnly": true + }, + "contentFields": { + "type": "array", + "description": "The content fields that were sent to the semantic enrichment process, as well as how they were used", + "items": { + "$ref": "#/definitions/QueryResultDocumentSemanticField" + }, + "readOnly": true + }, + "keywordFields": { + "type": "array", + "description": "The keyword fields that were sent to the semantic enrichment process, as well as how they were used", + "items": { + "$ref": "#/definitions/QueryResultDocumentSemanticField" + }, + "readOnly": true + }, + "rerankerInput": { + "$ref": "#/definitions/QueryResultDocumentRerankerInput", + "description": "The raw concatenated strings that were sent to the semantic enrichment process.", + "readOnly": true + } + } + }, + "SemanticErrorMode": { + "type": "string", + "description": "Allows the user to choose whether a semantic call should fail completely, or to return partial results.", + "enum": [ + "partial", + "fail" + ], + "x-ms-enum": { + "name": "SemanticErrorMode", + "modelAsString": true, + "values": [ + { + "name": "Partial", + "value": "partial", + "description": "If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure." + }, + { + "name": "Fail", + "value": "fail", + "description": "If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error." + } + ] + } + }, + "SemanticErrorReason": { + "type": "string", + "description": "Reason that a partial response was returned for a semantic ranking request.", + "enum": [ + "maxWaitExceeded", + "capacityOverloaded", + "transient" + ], + "x-ms-enum": { + "name": "SemanticErrorReason", + "modelAsString": true, + "values": [ + { + "name": "MaxWaitExceeded", + "value": "maxWaitExceeded", + "description": "If `semanticMaxWaitInMilliseconds` was set and the semantic processing duration exceeded that value. Only the base results were returned." + }, + { + "name": "CapacityOverloaded", + "value": "capacityOverloaded", + "description": "The request was throttled. Only the base results were returned." + }, + { + "name": "Transient", + "value": "transient", + "description": "At least one step of the semantic process failed." + } + ] + } + }, + "SemanticField": { + "type": "object", + "description": "A field that is used as part of the semantic configuration.", + "properties": { + "fieldName": { + "type": "string", + "description": "File name" + } + }, + "required": [ + "fieldName" + ] + }, + "SemanticFieldState": { + "type": "string", + "description": "The way the field was used for the semantic enrichment process.", + "enum": [ + "used", + "unused", + "partial" + ], + "x-ms-enum": { + "name": "SemanticFieldState", + "modelAsString": true, + "values": [ + { + "name": "Used", + "value": "used", + "description": "The field was fully used for semantic enrichment." + }, + { + "name": "Unused", + "value": "unused", + "description": "The field was not used for semantic enrichment." + }, + { + "name": "Partial", + "value": "partial", + "description": "The field was partially used for semantic enrichment." + } + ] + } + }, + "SemanticPrioritizedFields": { + "type": "object", + "description": "Describes the title, content, and keywords fields to be used for semantic ranking, captions, highlights, and answers.", + "properties": { + "titleField": { + "$ref": "#/definitions/SemanticField", + "description": "Defines the title field to be used for semantic ranking, captions, highlights, and answers. If you don't have a title field in your index, leave this blank." + }, + "prioritizedContentFields": { + "type": "array", + "description": "Defines the content fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain text in natural language form. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long.", + "items": { + "$ref": "#/definitions/SemanticField" + } + }, + "prioritizedKeywordsFields": { + "type": "array", + "description": "Defines the keyword fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain a list of keywords. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long.", + "items": { + "$ref": "#/definitions/SemanticField" + } + } + } + }, + "SemanticQueryRewritesResultType": { + "type": "string", + "description": "Type of query rewrite that was used for this request.", + "enum": [ + "originalQueryOnly" + ], + "x-ms-enum": { + "name": "SemanticQueryRewritesResultType", + "modelAsString": true, + "values": [ + { + "name": "OriginalQueryOnly", + "value": "originalQueryOnly", + "description": "Query rewrites were not successfully generated for this request. Only the original query was used to retrieve the results." + } + ] + } + }, + "SemanticSearch": { + "type": "object", + "description": "Defines parameters for a search index that influence semantic capabilities.", + "properties": { + "defaultConfiguration": { + "type": "string", + "description": "Allows you to set the name of a default semantic configuration in your index, making it optional to pass it on as a query parameter every time." + }, + "configurations": { + "type": "array", + "description": "The semantic configurations for the index.", + "items": { + "$ref": "#/definitions/SemanticConfiguration" + } + } + } + }, + "SemanticSearchResultsType": { + "type": "string", + "description": "Type of partial response that was returned for a semantic ranking request.", + "enum": [ + "baseResults", + "rerankedResults" + ], + "x-ms-enum": { + "name": "SemanticSearchResultsType", + "modelAsString": true, + "values": [ + { + "name": "BaseResults", + "value": "baseResults", + "description": "Results without any semantic enrichment or reranking." + }, + { + "name": "RerankedResults", + "value": "rerankedResults", + "description": "Results have been reranked with the reranker model and will include semantic captions. They will not include any answers, answers highlights or caption highlights." + } + ] + } + }, + "SentimentSkill": { + "type": "object", + "description": "This skill is deprecated. Use the V3.SentimentSkill instead.", + "properties": { + "defaultLanguageCode": { + "$ref": "#/definitions/SentimentSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.SentimentSkill" + }, + "SentimentSkillLanguage": { + "type": "string", + "description": "Deprecated. The language codes supported for input text by SentimentSkill.", + "enum": [ + "da", + "nl", + "en", + "fi", + "fr", + "de", + "el", + "it", + "no", + "pl", + "pt-PT", + "ru", + "es", + "sv", + "tr" + ], + "x-ms-enum": { + "name": "SentimentSkillLanguage", + "modelAsString": true, + "values": [ + { + "name": "da", + "value": "da", + "description": "Danish" + }, + { + "name": "nl", + "value": "nl", + "description": "Dutch" + }, + { + "name": "en", + "value": "en", + "description": "English" + }, + { + "name": "fi", + "value": "fi", + "description": "Finnish" + }, + { + "name": "fr", + "value": "fr", + "description": "French" + }, + { + "name": "de", + "value": "de", + "description": "German" + }, + { + "name": "el", + "value": "el", + "description": "Greek" + }, + { + "name": "it", + "value": "it", + "description": "Italian" + }, + { + "name": "no", + "value": "no", + "description": "Norwegian (Bokmaal)" + }, + { + "name": "pl", + "value": "pl", + "description": "Polish" + }, + { + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese (Portugal)" + }, + { + "name": "ru", + "value": "ru", + "description": "Russian" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "sv", + "value": "sv", + "description": "Swedish" + }, + { + "name": "tr", + "value": "tr", + "description": "Turkish" + } + ] + } + }, + "SentimentSkillV3": { + "type": "object", + "description": "Using the Text Analytics API, evaluates unstructured text and for each record, provides sentiment labels (such as \"negative\", \"neutral\" and \"positive\") based on the highest confidence score found by the service at a sentence and document-level.", + "properties": { + "defaultLanguageCode": { + "type": "string", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true + }, + "includeOpinionMining": { + "type": "boolean", + "description": "If set to true, the skill output will include information from Text Analytics for opinion mining, namely targets (nouns or verbs) and their associated assessment (adjective) in the text. Default is false.", + "default": false + }, + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.SentimentSkill" + }, + "ServiceIndexersRuntime": { + "type": "object", + "description": "Represents service-level indexer runtime counters.", + "properties": { + "usedSeconds": { + "type": "integer", + "format": "int64", + "description": "Cumulative runtime of all indexers in the service from the beginningTime to endingTime, in seconds." + }, + "remainingSeconds": { + "type": "integer", + "format": "int64", + "description": "Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds.", + "x-nullable": true + }, + "beginningTime": { + "type": "string", + "format": "date-time", + "description": "Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." + }, + "endingTime": { + "type": "string", + "format": "date-time", + "description": "End UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." + } + }, + "required": [ + "usedSeconds", + "beginningTime", + "endingTime" + ] + }, + "ShaperSkill": { + "type": "object", + "description": "A skill for reshaping the outputs. It creates a complex type to support composite fields (also known as multipart fields).", + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.ShaperSkill" + }, + "SharePointSensitivityLabelInfo": { + "type": "object", + "description": "Information about the sensitivity label applied to a SharePoint document.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name for the sensitivity label." + }, + "sensitivityLabelId": { + "type": "string", + "description": "The ID of the sensitivity label." + }, + "tooltip": { + "type": "string", + "description": "The tooltip that should be displayed for the label in a UI." + }, + "priority": { + "type": "integer", + "format": "int32", + "description": "The priority in which the sensitivity label is applied." + }, + "color": { + "type": "string", + "description": "The color that the UI should display for the label, if configured." + }, + "isEncrypted": { + "type": "boolean", + "description": "Indicates whether the sensitivity label enforces encryption." + } + } + }, + "ShingleTokenFilter": { + "type": "object", + "description": "Creates combinations of tokens as a single token. This token filter is implemented using Apache Lucene.", + "properties": { + "maxShingleSize": { + "type": "integer", + "format": "int32", + "description": "The maximum shingle size. Default and minimum value is 2.", + "default": 2, + "minimum": 2 + }, + "minShingleSize": { + "type": "integer", + "format": "int32", + "description": "The minimum shingle size. Default and minimum value is 2. Must be less than the value of maxShingleSize.", + "default": 2, + "minimum": 2 + }, + "outputUnigrams": { + "type": "boolean", + "description": "A value indicating whether the output stream will contain the input tokens (unigrams) as well as shingles. Default is true.", + "default": true + }, + "outputUnigramsIfNoShingles": { + "type": "boolean", + "description": "A value indicating whether to output unigrams for those times when no shingles are available. This property takes precedence when outputUnigrams is set to false. Default is false.", + "default": false + }, + "tokenSeparator": { + "type": "string", + "description": "The string to use when joining adjacent tokens to form a shingle. Default is a single space (\" \").", + "default": " " + }, + "filterToken": { + "type": "string", + "description": "The string to insert for each position at which there is no token. Default is an underscore (\"_\").", + "default": "_" + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.ShingleTokenFilter" + }, + "SimilarityAlgorithm": { + "type": "object", + "description": "Base type for similarity algorithms. Similarity algorithms are used to calculate scores that tie queries to documents. The higher the score, the more relevant the document is to that specific query. Those scores are used to rank the search results.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] + }, + "SingleVectorFieldResult": { + "type": "object", + "description": "A single vector field result. Both @search.score and vector similarity values are returned. Vector similarity is related to @search.score by an equation.", + "properties": { + "searchScore": { + "type": "number", + "format": "double", + "description": "The @search.score value that is calculated from the vector similarity score. This is the score that's visible in a pure single-field single-vector query.", + "readOnly": true + }, + "vectorSimilarity": { + "type": "number", + "format": "double", + "description": "The vector similarity score for this document. Note this is the canonical definition of similarity metric, not the 'distance' version. For example, cosine similarity instead of cosine distance.", + "readOnly": true + } + } + }, + "SkillNames": { + "type": "object", + "description": "The type of the skill names.", + "properties": { + "skillNames": { + "type": "array", + "description": "the names of skills to be reset.", + "items": { + "type": "string" + } + } + } + }, + "SnowballTokenFilter": { + "type": "object", + "description": "A filter that stems words using a Snowball-generated stemmer. This token filter is implemented using Apache Lucene.", + "properties": { + "language": { + "$ref": "#/definitions/SnowballTokenFilterLanguage", + "description": "The language to use." + } + }, + "required": [ + "language" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.SnowballTokenFilter" + }, + "SnowballTokenFilterLanguage": { + "type": "string", + "description": "The language to use for a Snowball token filter.", + "enum": [ + "armenian", + "basque", + "catalan", + "danish", + "dutch", + "english", + "finnish", + "french", + "german", + "german2", + "hungarian", + "italian", + "kp", + "lovins", + "norwegian", + "porter", + "portuguese", + "romanian", + "russian", + "spanish", + "swedish", + "turkish" + ], + "x-ms-enum": { + "name": "SnowballTokenFilterLanguage", + "modelAsString": true, + "values": [ + { + "name": "Armenian", + "value": "armenian", + "description": "Selects the Lucene Snowball stemming tokenizer for Armenian." + }, + { + "name": "Basque", + "value": "basque", + "description": "Selects the Lucene Snowball stemming tokenizer for Basque." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the Lucene Snowball stemming tokenizer for Catalan." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the Lucene Snowball stemming tokenizer for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the Lucene Snowball stemming tokenizer for Dutch." + }, + { + "name": "English", + "value": "english", + "description": "Selects the Lucene Snowball stemming tokenizer for English." + }, + { + "name": "Finnish", + "value": "finnish", + "description": "Selects the Lucene Snowball stemming tokenizer for Finnish." + }, + { + "name": "French", + "value": "french", + "description": "Selects the Lucene Snowball stemming tokenizer for French." + }, + { + "name": "German", + "value": "german", + "description": "Selects the Lucene Snowball stemming tokenizer for German." + }, + { + "name": "German2", + "value": "german2", + "description": "Selects the Lucene Snowball stemming tokenizer that uses the German variant algorithm." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the Lucene Snowball stemming tokenizer for Hungarian." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the Lucene Snowball stemming tokenizer for Italian." + }, + { + "name": "Kp", + "value": "kp", + "description": "Selects the Lucene Snowball stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm." + }, + { + "name": "Lovins", + "value": "lovins", + "description": "Selects the Lucene Snowball stemming tokenizer for English that uses the Lovins stemming algorithm." + }, + { + "name": "Norwegian", + "value": "norwegian", + "description": "Selects the Lucene Snowball stemming tokenizer for Norwegian." + }, + { + "name": "Porter", + "value": "porter", + "description": "Selects the Lucene Snowball stemming tokenizer for English that uses the Porter stemming algorithm." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the Lucene Snowball stemming tokenizer for Portuguese." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the Lucene Snowball stemming tokenizer for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the Lucene Snowball stemming tokenizer for Russian." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the Lucene Snowball stemming tokenizer for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the Lucene Snowball stemming tokenizer for Swedish." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the Lucene Snowball stemming tokenizer for Turkish." + } + ] + } + }, + "SoftDeleteColumnDeletionDetectionPolicy": { + "type": "object", + "description": "Defines a data deletion detection policy that implements a soft-deletion strategy. It determines whether an item should be deleted based on the value of a designated 'soft delete' column.", + "properties": { + "softDeleteColumnName": { + "type": "string", + "description": "The name of the column to use for soft-deletion detection." + }, + "softDeleteMarkerValue": { + "type": "string", + "description": "The marker value that identifies an item as deleted." + } + }, + "allOf": [ + { + "$ref": "#/definitions/DataDeletionDetectionPolicy" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy" + }, + "SplitSkill": { + "type": "object", + "description": "A skill to split a string into chunks of text.", + "properties": { + "defaultLanguageCode": { + "$ref": "#/definitions/SplitSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." + }, + "textSplitMode": { + "$ref": "#/definitions/TextSplitMode", + "description": "A value indicating which split mode to perform." + }, + "maximumPageLength": { + "type": "integer", + "format": "int32", + "description": "The desired maximum page length. Default is 10000.", + "x-nullable": true + }, + "pageOverlapLength": { + "type": "integer", + "format": "int32", + "description": "Only applicable when textSplitMode is set to 'pages'. If specified, n+1th chunk will start with this number of characters/tokens from the end of the nth chunk.", + "x-nullable": true + }, + "maximumPagesToTake": { + "type": "integer", + "format": "int32", + "description": "Only applicable when textSplitMode is set to 'pages'. If specified, the SplitSkill will discontinue splitting after processing the first 'maximumPagesToTake' pages, in order to improve performance when only a few initial pages are needed from each document.", + "x-nullable": true + }, + "unit": { + "$ref": "#/definitions/SplitSkillUnit", + "description": "Only applies if textSplitMode is set to pages. There are two possible values. The choice of the values will decide the length (maximumPageLength and pageOverlapLength) measurement. The default is 'characters', which means the length will be measured by character.", + "x-nullable": true + }, + "azureOpenAITokenizerParameters": { + "$ref": "#/definitions/AzureOpenAITokenizerParameters", + "description": "Only applies if the unit is set to azureOpenAITokens. If specified, the splitSkill will use these parameters when performing the tokenization. The parameters are a valid 'encoderModelName' and an optional 'allowedSpecialTokens' property.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.SplitSkill" + }, + "SplitSkillEncoderModelName": { + "type": "string", + "description": "A value indicating which tokenizer to use.", + "enum": [ + "r50k_base", + "p50k_base", + "p50k_edit", + "cl100k_base" + ], + "x-ms-enum": { + "name": "SplitSkillEncoderModelName", + "modelAsString": true, + "values": [ + { + "name": "R50kBase", + "value": "r50k_base", + "description": "Refers to a base model trained with a 50,000 token vocabulary, often used in general natural language processing tasks." + }, + { + "name": "P50kBase", + "value": "p50k_base", + "description": "A base model with a 50,000 token vocabulary, optimized for prompt-based tasks." + }, + { + "name": "P50kEdit", + "value": "p50k_edit", + "description": "Similar to p50k_base but fine-tuned for editing or rephrasing tasks with a 50,000 token vocabulary." + }, + { + "name": "CL100kBase", + "value": "cl100k_base", + "description": "A base model with a 100,000 token vocabulary." + } + ] + } + }, + "SplitSkillLanguage": { + "type": "string", + "description": "The language codes supported for input text by SplitSkill.", + "enum": [ + "am", + "bs", + "cs", + "da", + "de", + "en", + "es", + "et", + "fi", + "fr", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "ja", + "ko", + "lv", + "nb", + "nl", + "pl", + "pt", + "pt-br", + "ru", + "sk", + "sl", + "sr", + "sv", + "tr", + "ur", + "zh" + ], + "x-ms-enum": { + "name": "SplitSkillLanguage", + "modelAsString": true, + "values": [ + { + "name": "am", + "value": "am", + "description": "Amharic" + }, + { + "name": "bs", + "value": "bs", + "description": "Bosnian" + }, + { + "name": "cs", + "value": "cs", + "description": "Czech" + }, + { + "name": "da", + "value": "da", + "description": "Danish" + }, + { + "name": "de", + "value": "de", + "description": "German" + }, + { + "name": "en", + "value": "en", + "description": "English" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "et", + "value": "et", + "description": "Estonian" + }, + { + "name": "fi", + "value": "fi", + "description": "Finnish" + }, + { + "name": "fr", + "value": "fr", + "description": "French" + }, + { + "name": "he", + "value": "he", + "description": "Hebrew" + }, + { + "name": "hi", + "value": "hi", + "description": "Hindi" + }, + { + "name": "hr", + "value": "hr", + "description": "Croatian" + }, + { + "name": "hu", + "value": "hu", + "description": "Hungarian" + }, + { + "name": "id", + "value": "id", + "description": "Indonesian" + }, + { + "name": "is", + "value": "is", + "description": "Icelandic" + }, + { + "name": "it", + "value": "it", + "description": "Italian" + }, + { + "name": "ja", + "value": "ja", + "description": "Japanese" + }, + { + "name": "ko", + "value": "ko", + "description": "Korean" + }, + { + "name": "lv", + "value": "lv", + "description": "Latvian" + }, + { + "name": "nb", + "value": "nb", + "description": "Norwegian" + }, + { + "name": "nl", + "value": "nl", + "description": "Dutch" + }, + { + "name": "pl", + "value": "pl", + "description": "Polish" + }, + { + "name": "pt", + "value": "pt", + "description": "Portuguese (Portugal)" + }, + { + "name": "pt-br", + "value": "pt-br", + "description": "Portuguese (Brazil)" + }, + { + "name": "ru", + "value": "ru", + "description": "Russian" + }, + { + "name": "sk", + "value": "sk", + "description": "Slovak" + }, + { + "name": "sl", + "value": "sl", + "description": "Slovenian" + }, + { + "name": "sr", + "value": "sr", + "description": "Serbian" + }, + { + "name": "sv", + "value": "sv", + "description": "Swedish" + }, + { + "name": "tr", + "value": "tr", + "description": "Turkish" + }, + { + "name": "ur", + "value": "ur", + "description": "Urdu" + }, + { + "name": "zh", + "value": "zh", + "description": "Chinese (Simplified)" + } + ] + } + }, + "SplitSkillUnit": { + "type": "string", + "description": "A value indicating which unit to use.", + "enum": [ + "characters", + "azureOpenAITokens" + ], + "x-ms-enum": { + "name": "SplitSkillUnit", + "modelAsString": true, + "values": [ + { + "name": "Characters", + "value": "characters", + "description": "The length will be measured by character." + }, + { + "name": "AzureOpenAITokens", + "value": "azureOpenAITokens", + "description": "The length will be measured by an AzureOpenAI tokenizer from the tiktoken library." + } + ] + } + }, + "SqlIntegratedChangeTrackingPolicy": { + "type": "object", + "description": "Defines a data change detection policy that captures changes using the Integrated Change Tracking feature of Azure SQL Database.", + "allOf": [ + { + "$ref": "#/definitions/DataChangeDetectionPolicy" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy" + }, + "StemmerOverrideTokenFilter": { + "type": "object", + "description": "Provides the ability to override other stemming filters with custom dictionary-based stemming. Any dictionary-stemmed terms will be marked as keywords so that they will not be stemmed with stemmers down the chain. Must be placed before any stemming filters. This token filter is implemented using Apache Lucene. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilter.html", + "properties": { + "rules": { + "type": "array", + "description": "A list of stemming rules in the following format: \"word => stem\", for example: \"ran => run\".", + "items": { + "type": "string" + } + } + }, + "required": [ + "rules" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StemmerOverrideTokenFilter" + }, + "StemmerTokenFilter": { + "type": "object", + "description": "Language specific stemming filter. This token filter is implemented using Apache Lucene. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters", + "properties": { + "language": { + "$ref": "#/definitions/StemmerTokenFilterLanguage", + "description": "The language to use." + } + }, + "required": [ + "language" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StemmerTokenFilter" + }, + "StemmerTokenFilterLanguage": { + "type": "string", + "description": "The language to use for a stemmer token filter.", + "enum": [ + "arabic", + "armenian", + "basque", + "brazilian", + "bulgarian", + "catalan", + "czech", + "danish", + "dutch", + "dutchKp", + "english", + "lightEnglish", + "minimalEnglish", + "possessiveEnglish", + "porter2", + "lovins", + "finnish", + "lightFinnish", + "french", + "lightFrench", + "minimalFrench", + "galician", + "minimalGalician", + "german", + "german2", + "lightGerman", + "minimalGerman", + "greek", + "hindi", + "hungarian", + "lightHungarian", + "indonesian", + "irish", + "italian", + "lightItalian", + "sorani", + "latvian", + "norwegian", + "lightNorwegian", + "minimalNorwegian", + "lightNynorsk", + "minimalNynorsk", + "portuguese", + "lightPortuguese", + "minimalPortuguese", + "portugueseRslp", + "romanian", + "russian", + "lightRussian", + "spanish", + "lightSpanish", + "swedish", + "lightSwedish", + "turkish" + ], + "x-ms-enum": { + "name": "StemmerTokenFilterLanguage", + "modelAsString": true, + "values": [ + { + "name": "Arabic", + "value": "arabic", + "description": "Selects the Lucene stemming tokenizer for Arabic." + }, + { + "name": "Armenian", + "value": "armenian", + "description": "Selects the Lucene stemming tokenizer for Armenian." + }, + { + "name": "Basque", + "value": "basque", + "description": "Selects the Lucene stemming tokenizer for Basque." + }, + { + "name": "Brazilian", + "value": "brazilian", + "description": "Selects the Lucene stemming tokenizer for Portuguese (Brazil)." + }, + { + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the Lucene stemming tokenizer for Bulgarian." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the Lucene stemming tokenizer for Catalan." + }, + { + "name": "Czech", + "value": "czech", + "description": "Selects the Lucene stemming tokenizer for Czech." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the Lucene stemming tokenizer for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the Lucene stemming tokenizer for Dutch." + }, + { + "name": "DutchKp", + "value": "dutchKp", + "description": "Selects the Lucene stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm." + }, + { + "name": "English", + "value": "english", + "description": "Selects the Lucene stemming tokenizer for English." + }, + { + "name": "LightEnglish", + "value": "lightEnglish", + "description": "Selects the Lucene stemming tokenizer for English that does light stemming." + }, + { + "name": "MinimalEnglish", + "value": "minimalEnglish", + "description": "Selects the Lucene stemming tokenizer for English that does minimal stemming." + }, + { + "name": "PossessiveEnglish", + "value": "possessiveEnglish", + "description": "Selects the Lucene stemming tokenizer for English that removes trailing possessives from words." + }, + { + "name": "Porter2", + "value": "porter2", + "description": "Selects the Lucene stemming tokenizer for English that uses the Porter2 stemming algorithm." + }, + { + "name": "Lovins", + "value": "lovins", + "description": "Selects the Lucene stemming tokenizer for English that uses the Lovins stemming algorithm." + }, + { + "name": "Finnish", + "value": "finnish", + "description": "Selects the Lucene stemming tokenizer for Finnish." + }, + { + "name": "LightFinnish", + "value": "lightFinnish", + "description": "Selects the Lucene stemming tokenizer for Finnish that does light stemming." + }, + { + "name": "French", + "value": "french", + "description": "Selects the Lucene stemming tokenizer for French." + }, + { + "name": "LightFrench", + "value": "lightFrench", + "description": "Selects the Lucene stemming tokenizer for French that does light stemming." + }, + { + "name": "MinimalFrench", + "value": "minimalFrench", + "description": "Selects the Lucene stemming tokenizer for French that does minimal stemming." + }, + { + "name": "Galician", + "value": "galician", + "description": "Selects the Lucene stemming tokenizer for Galician." + }, + { + "name": "MinimalGalician", + "value": "minimalGalician", + "description": "Selects the Lucene stemming tokenizer for Galician that does minimal stemming." + }, + { + "name": "German", + "value": "german", + "description": "Selects the Lucene stemming tokenizer for German." + }, + { + "name": "German2", + "value": "german2", + "description": "Selects the Lucene stemming tokenizer that uses the German variant algorithm." + }, + { + "name": "LightGerman", + "value": "lightGerman", + "description": "Selects the Lucene stemming tokenizer for German that does light stemming." + }, + { + "name": "MinimalGerman", + "value": "minimalGerman", + "description": "Selects the Lucene stemming tokenizer for German that does minimal stemming." + }, + { + "name": "Greek", + "value": "greek", + "description": "Selects the Lucene stemming tokenizer for Greek." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the Lucene stemming tokenizer for Hindi." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the Lucene stemming tokenizer for Hungarian." + }, + { + "name": "LightHungarian", + "value": "lightHungarian", + "description": "Selects the Lucene stemming tokenizer for Hungarian that does light stemming." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the Lucene stemming tokenizer for Indonesian." + }, + { + "name": "Irish", + "value": "irish", + "description": "Selects the Lucene stemming tokenizer for Irish." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the Lucene stemming tokenizer for Italian." + }, + { + "name": "LightItalian", + "value": "lightItalian", + "description": "Selects the Lucene stemming tokenizer for Italian that does light stemming." + }, + { + "name": "Sorani", + "value": "sorani", + "description": "Selects the Lucene stemming tokenizer for Sorani." + }, + { + "name": "Latvian", + "value": "latvian", + "description": "Selects the Lucene stemming tokenizer for Latvian." + }, + { + "name": "Norwegian", + "value": "norwegian", + "description": "Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l)." + }, + { + "name": "LightNorwegian", + "value": "lightNorwegian", + "description": "Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l) that does light stemming." + }, + { + "name": "MinimalNorwegian", + "value": "minimalNorwegian", + "description": "Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l) that does minimal stemming." + }, + { + "name": "LightNynorsk", + "value": "lightNynorsk", + "description": "Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does light stemming." + }, + { + "name": "MinimalNynorsk", + "value": "minimalNynorsk", + "description": "Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does minimal stemming." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the Lucene stemming tokenizer for Portuguese." + }, + { + "name": "LightPortuguese", + "value": "lightPortuguese", + "description": "Selects the Lucene stemming tokenizer for Portuguese that does light stemming." + }, + { + "name": "MinimalPortuguese", + "value": "minimalPortuguese", + "description": "Selects the Lucene stemming tokenizer for Portuguese that does minimal stemming." + }, + { + "name": "PortugueseRslp", + "value": "portugueseRslp", + "description": "Selects the Lucene stemming tokenizer for Portuguese that uses the RSLP stemming algorithm." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the Lucene stemming tokenizer for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the Lucene stemming tokenizer for Russian." + }, + { + "name": "LightRussian", + "value": "lightRussian", + "description": "Selects the Lucene stemming tokenizer for Russian that does light stemming." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the Lucene stemming tokenizer for Spanish." + }, + { + "name": "LightSpanish", + "value": "lightSpanish", + "description": "Selects the Lucene stemming tokenizer for Spanish that does light stemming." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the Lucene stemming tokenizer for Swedish." + }, + { + "name": "LightSwedish", + "value": "lightSwedish", + "description": "Selects the Lucene stemming tokenizer for Swedish that does light stemming." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the Lucene stemming tokenizer for Turkish." + } + ] + } + }, + "StopAnalyzer": { + "type": "object", + "description": "Divides text at non-letters; Applies the lowercase and stopword token filters. This analyzer is implemented using Apache Lucene.", + "properties": { + "stopwords": { + "type": "array", + "description": "A list of stopwords.", + "items": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalAnalyzer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StopAnalyzer" + }, + "StopwordsList": { + "type": "string", + "description": "Identifies a predefined list of language-specific stopwords.", + "enum": [ + "arabic", + "armenian", + "basque", + "brazilian", + "bulgarian", + "catalan", + "czech", + "danish", + "dutch", + "english", + "finnish", + "french", + "galician", + "german", + "greek", + "hindi", + "hungarian", + "indonesian", + "irish", + "italian", + "latvian", + "norwegian", + "persian", + "portuguese", + "romanian", + "russian", + "sorani", + "spanish", + "swedish", + "thai", + "turkish" + ], + "x-ms-enum": { + "name": "StopwordsList", + "modelAsString": true, + "values": [ + { + "name": "Arabic", + "value": "arabic", + "description": "Selects the stopword list for Arabic." + }, + { + "name": "Armenian", + "value": "armenian", + "description": "Selects the stopword list for Armenian." + }, + { + "name": "Basque", + "value": "basque", + "description": "Selects the stopword list for Basque." + }, + { + "name": "Brazilian", + "value": "brazilian", + "description": "Selects the stopword list for Portuguese (Brazil)." + }, + { + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the stopword list for Bulgarian." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the stopword list for Catalan." + }, + { + "name": "Czech", + "value": "czech", + "description": "Selects the stopword list for Czech." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the stopword list for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the stopword list for Dutch." + }, + { + "name": "English", + "value": "english", + "description": "Selects the stopword list for English." + }, + { + "name": "Finnish", + "value": "finnish", + "description": "Selects the stopword list for Finnish." + }, + { + "name": "French", + "value": "french", + "description": "Selects the stopword list for French." + }, + { + "name": "Galician", + "value": "galician", + "description": "Selects the stopword list for Galician." + }, + { + "name": "German", + "value": "german", + "description": "Selects the stopword list for German." + }, + { + "name": "Greek", + "value": "greek", + "description": "Selects the stopword list for Greek." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the stopword list for Hindi." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the stopword list for Hungarian." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the stopword list for Indonesian." + }, + { + "name": "Irish", + "value": "irish", + "description": "Selects the stopword list for Irish." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the stopword list for Italian." + }, + { + "name": "Latvian", + "value": "latvian", + "description": "Selects the stopword list for Latvian." + }, + { + "name": "Norwegian", + "value": "norwegian", + "description": "Selects the stopword list for Norwegian." + }, + { + "name": "Persian", + "value": "persian", + "description": "Selects the stopword list for Persian." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the stopword list for Portuguese." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the stopword list for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the stopword list for Russian." + }, + { + "name": "Sorani", + "value": "sorani", + "description": "Selects the stopword list for Sorani." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the stopword list for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the stopword list for Swedish." + }, + { + "name": "Thai", + "value": "thai", + "description": "Selects the stopword list for Thai." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the stopword list for Turkish." + } + ] + } + }, + "StopwordsTokenFilter": { + "type": "object", + "description": "Removes stop words from a token stream. This token filter is implemented using Apache Lucene. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html", + "properties": { + "stopwords": { + "type": "array", + "description": "The list of stopwords. This property and the stopwords list property cannot both be set.", + "items": { + "type": "string" + } + }, + "stopwordsList": { + "type": "string", + "description": "A predefined list of stopwords to use. This property and the stopwords property cannot both be set. Default is English.", + "default": "english", + "enum": [ + "arabic", + "armenian", + "basque", + "brazilian", + "bulgarian", + "catalan", + "czech", + "danish", + "dutch", + "english", + "finnish", + "french", + "galician", + "german", + "greek", + "hindi", + "hungarian", + "indonesian", + "irish", + "italian", + "latvian", + "norwegian", + "persian", + "portuguese", + "romanian", + "russian", + "sorani", + "spanish", + "swedish", + "thai", + "turkish" + ], + "x-ms-enum": { + "name": "StopwordsList", + "modelAsString": true, + "values": [ + { + "name": "Arabic", + "value": "arabic", + "description": "Selects the stopword list for Arabic." + }, + { + "name": "Armenian", + "value": "armenian", + "description": "Selects the stopword list for Armenian." + }, + { + "name": "Basque", + "value": "basque", + "description": "Selects the stopword list for Basque." + }, + { + "name": "Brazilian", + "value": "brazilian", + "description": "Selects the stopword list for Portuguese (Brazil)." + }, + { + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the stopword list for Bulgarian." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the stopword list for Catalan." + }, + { + "name": "Czech", + "value": "czech", + "description": "Selects the stopword list for Czech." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the stopword list for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the stopword list for Dutch." + }, + { + "name": "English", + "value": "english", + "description": "Selects the stopword list for English." + }, + { + "name": "Finnish", + "value": "finnish", + "description": "Selects the stopword list for Finnish." + }, + { + "name": "French", + "value": "french", + "description": "Selects the stopword list for French." + }, + { + "name": "Galician", + "value": "galician", + "description": "Selects the stopword list for Galician." + }, + { + "name": "German", + "value": "german", + "description": "Selects the stopword list for German." + }, + { + "name": "Greek", + "value": "greek", + "description": "Selects the stopword list for Greek." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the stopword list for Hindi." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the stopword list for Hungarian." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the stopword list for Indonesian." + }, + { + "name": "Irish", + "value": "irish", + "description": "Selects the stopword list for Irish." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the stopword list for Italian." + }, + { + "name": "Latvian", + "value": "latvian", + "description": "Selects the stopword list for Latvian." + }, + { + "name": "Norwegian", + "value": "norwegian", + "description": "Selects the stopword list for Norwegian." + }, + { + "name": "Persian", + "value": "persian", + "description": "Selects the stopword list for Persian." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the stopword list for Portuguese." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the stopword list for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the stopword list for Russian." + }, + { + "name": "Sorani", + "value": "sorani", + "description": "Selects the stopword list for Sorani." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the stopword list for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the stopword list for Swedish." + }, + { + "name": "Thai", + "value": "thai", + "description": "Selects the stopword list for Thai." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the stopword list for Turkish." + } + ] + } + }, + "ignoreCase": { + "type": "boolean", + "description": "A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false.", + "default": false + }, + "removeTrailing": { + "type": "boolean", + "description": "A value indicating whether to ignore the last search term if it's a stop word. Default is true.", + "default": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StopwordsTokenFilter" + }, + "SuggestDocumentsResult": { + "type": "object", + "description": "Response containing suggestion query results from an index.", + "properties": { + "value": { + "type": "array", + "description": "The sequence of results returned by the query.", + "items": { + "$ref": "#/definitions/SuggestResult" + }, + "readOnly": true + }, + "@search.coverage": { + "type": "number", + "format": "double", + "description": "A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not set in the request.", + "readOnly": true, + "x-ms-client-name": "coverage" + } + }, + "required": [ + "value" + ] + }, + "SuggestRequest": { + "type": "object", + "description": "Parameters for filtering, sorting, fuzzy matching, and other suggestions query behaviors.", + "properties": { + "filter": { + "type": "string", + "description": "An OData expression that filters the documents considered for suggestions." + }, + "fuzzy": { + "type": "boolean", + "description": "A value indicating whether to use fuzzy matching for the suggestion query. Default is false. When set to true, the query will find suggestions even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestion searches are slower and consume more resources." + }, + "highlightPostTag": { + "type": "string", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled." + }, + "highlightPreTag": { + "type": "string", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled." + }, + "minimumCoverage": { + "type": "number", + "format": "double", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestion query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80." + }, + "orderby": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." + }, + "search": { + "type": "string", + "description": "The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters." + }, + "searchFields": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester." + }, + "select": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results." + }, + "suggesterName": { + "type": "string", + "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." + }, + "top": { + "type": "integer", + "format": "int32", + "description": "The number of suggestions to retrieve. This must be a value between 1 and 100. The default is 5." + } + }, + "required": [ + "search", + "suggesterName" + ] + }, + "SuggestResult": { + "type": "object", + "description": "A result containing a document found by a suggestion query, plus associated metadata.", + "properties": { + "@search.text": { + "type": "string", + "description": "The text of the suggestion result.", + "readOnly": true, + "x-ms-client-name": "text" + } + }, + "required": [ + "@search.text" + ], + "additionalProperties": {} + }, + "SynchronizationState": { + "type": "object", + "description": "Represents the current state of an ongoing synchronization that spans multiple indexer runs.", + "properties": { + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the current synchronization." + }, + "itemsUpdatesProcessed": { + "type": "integer", + "format": "int32", + "description": "The number of item updates successfully processed in the current synchronization." + }, + "itemsUpdatesFailed": { + "type": "integer", + "format": "int32", + "description": "The number of item updates that failed in the current synchronization." + }, + "itemsSkipped": { + "type": "integer", + "format": "int32", + "description": "The number of items skipped in the current synchronization." + } + }, + "required": [ + "startTime", + "itemsUpdatesProcessed", + "itemsUpdatesFailed", + "itemsSkipped" + ] + }, + "SynonymMap": { + "type": "object", + "description": "Represents a synonym map definition.", + "properties": { + "name": { + "type": "string", + "description": "The name of the synonym map." + }, + "format": { + "type": "string", + "description": "The format of the synonym map. Only the 'solr' format is currently supported.", + "enum": [ + "solr" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "synonyms": { + "type": "string", + "format": "ArrayEncoding.newlineDelimited", + "description": "A series of synonym rules in the specified synonym map format. The rules must be separated by newlines." + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the synonym map.", + "x-ms-client-name": "eTag" + } + }, + "required": [ + "name", + "format", + "synonyms" + ] + }, + "SynonymTokenFilter": { + "type": "object", + "description": "Matches single or multi-word synonyms in a token stream. This token filter is implemented using Apache Lucene.", + "properties": { + "synonyms": { + "type": "array", + "description": "A list of synonyms in following one of two formats: 1. incredible, unbelievable, fabulous => amazing - all terms on the left side of => symbol will be replaced with all terms on its right side; 2. incredible, unbelievable, fabulous, amazing - comma separated list of equivalent words. Set the expand option to change how this list is interpreted.", + "items": { + "type": "string" + } + }, + "ignoreCase": { + "type": "boolean", + "description": "A value indicating whether to case-fold input for matching. Default is false.", + "default": false + }, + "expand": { + "type": "boolean", + "description": "A value indicating whether all words in the list of synonyms (if => notation is not used) will map to one another. If true, all words in the list of synonyms (if => notation is not used) will map to one another. The following list: incredible, unbelievable, fabulous, amazing is equivalent to: incredible, unbelievable, fabulous, amazing => incredible, unbelievable, fabulous, amazing. If false, the following list: incredible, unbelievable, fabulous, amazing will be equivalent to: incredible, unbelievable, fabulous, amazing => incredible. Default is true.", + "default": true + } + }, + "required": [ + "synonyms" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.SynonymTokenFilter" + }, + "TagScoringFunction": { + "type": "object", + "description": "Defines a function that boosts scores of documents with string values matching a given list of tags.", + "properties": { + "tag": { + "$ref": "#/definitions/TagScoringParameters", + "description": "Parameter values for the tag scoring function." + } + }, + "required": [ + "tag" + ], + "allOf": [ + { + "$ref": "#/definitions/ScoringFunction" + } + ], + "x-ms-discriminator-value": "tag" + }, + "TagScoringParameters": { + "type": "object", + "description": "Provides parameter values to a tag scoring function.", + "properties": { + "tagsParameter": { + "type": "string", + "description": "The name of the parameter passed in search queries to specify the list of tags to compare against the target field." + } + }, + "required": [ + "tagsParameter" + ] + }, + "TextResult": { + "type": "object", + "description": "The BM25 or Classic score for the text portion of the query.", + "properties": { + "searchScore": { + "type": "number", + "format": "double", + "description": "The BM25 or Classic score for the text portion of the query.", + "readOnly": true + } + } + }, + "TextSplitMode": { + "type": "string", + "description": "A value indicating which split mode to perform.", + "enum": [ + "pages", + "sentences" + ], + "x-ms-enum": { + "name": "TextSplitMode", + "modelAsString": true, + "values": [ + { + "name": "Pages", + "value": "pages", + "description": "Split the text into individual pages." + }, + { + "name": "Sentences", + "value": "sentences", + "description": "Split the text into individual sentences." + } + ] + } + }, + "TextTranslationSkill": { + "type": "object", + "description": "A skill to translate text from one language to another.", + "properties": { + "defaultToLanguageCode": { + "$ref": "#/definitions/TextTranslationSkillLanguage", + "description": "The language code to translate documents into for documents that don't specify the to language explicitly." + }, + "defaultFromLanguageCode": { + "$ref": "#/definitions/TextTranslationSkillLanguage", + "description": "The language code to translate documents from for documents that don't specify the from language explicitly." + }, + "suggestedFrom": { + "$ref": "#/definitions/TextTranslationSkillLanguage", + "description": "The language code to translate documents from when neither the fromLanguageCode input nor the defaultFromLanguageCode parameter are provided, and the automatic language detection is unsuccessful. Default is `en`.", + "x-nullable": true + } + }, + "required": [ + "defaultToLanguageCode" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.TranslationSkill" + }, + "TextTranslationSkillLanguage": { + "type": "string", + "description": "The language codes supported for input text by TextTranslationSkill.", + "enum": [ + "af", + "ar", + "bn", + "bs", + "bg", + "yue", + "ca", + "zh-Hans", + "zh-Hant", + "hr", + "cs", + "da", + "nl", + "en", + "et", + "fj", + "fil", + "fi", + "fr", + "de", + "el", + "ht", + "he", + "hi", + "mww", + "hu", + "is", + "id", + "it", + "ja", + "sw", + "tlh", + "tlh-Latn", + "tlh-Piqd", + "ko", + "lv", + "lt", + "mg", + "ms", + "mt", + "nb", + "fa", + "pl", + "pt", + "pt-br", + "pt-PT", + "otq", + "ro", + "ru", + "sm", + "sr-Cyrl", + "sr-Latn", + "sk", + "sl", + "es", + "sv", + "ty", + "ta", + "te", + "th", + "to", + "tr", + "uk", + "ur", + "vi", + "cy", + "yua", + "ga", + "kn", + "mi", + "ml", + "pa" + ], + "x-ms-enum": { + "name": "TextTranslationSkillLanguage", + "modelAsString": true, + "values": [ + { + "name": "af", + "value": "af", + "description": "Afrikaans" + }, + { + "name": "ar", + "value": "ar", + "description": "Arabic" + }, + { + "name": "bn", + "value": "bn", + "description": "Bangla" + }, + { + "name": "bs", + "value": "bs", + "description": "Bosnian (Latin)" + }, + { + "name": "bg", + "value": "bg", + "description": "Bulgarian" + }, + { + "name": "yue", + "value": "yue", + "description": "Cantonese (Traditional)" + }, + { + "name": "ca", + "value": "ca", + "description": "Catalan" + }, + { + "name": "zh-Hans", + "value": "zh-Hans", + "description": "Chinese Simplified" + }, + { + "name": "zh-Hant", + "value": "zh-Hant", + "description": "Chinese Traditional" + }, + { + "name": "hr", + "value": "hr", + "description": "Croatian" + }, + { + "name": "cs", + "value": "cs", + "description": "Czech" + }, + { + "name": "da", + "value": "da", + "description": "Danish" + }, + { + "name": "nl", + "value": "nl", + "description": "Dutch" + }, + { + "name": "en", + "value": "en", + "description": "English" + }, + { + "name": "et", + "value": "et", + "description": "Estonian" + }, + { + "name": "fj", + "value": "fj", + "description": "Fijian" + }, + { + "name": "fil", + "value": "fil", + "description": "Filipino" + }, + { + "name": "fi", + "value": "fi", + "description": "Finnish" + }, + { + "name": "fr", + "value": "fr", + "description": "French" + }, + { + "name": "de", + "value": "de", + "description": "German" + }, + { + "name": "el", + "value": "el", + "description": "Greek" + }, + { + "name": "ht", + "value": "ht", + "description": "Haitian Creole" + }, + { + "name": "he", + "value": "he", + "description": "Hebrew" + }, + { + "name": "hi", + "value": "hi", + "description": "Hindi" + }, + { + "name": "mww", + "value": "mww", + "description": "Hmong Daw" + }, + { + "name": "hu", + "value": "hu", + "description": "Hungarian" + }, + { + "name": "is", + "value": "is", + "description": "Icelandic" + }, + { + "name": "id", + "value": "id", + "description": "Indonesian" + }, + { + "name": "it", + "value": "it", + "description": "Italian" + }, + { + "name": "ja", + "value": "ja", + "description": "Japanese" + }, + { + "name": "sw", + "value": "sw", + "description": "Kiswahili" + }, + { + "name": "tlh", + "value": "tlh", + "description": "Klingon" + }, + { + "name": "tlh-Latn", + "value": "tlh-Latn", + "description": "Klingon (Latin script)" + }, + { + "name": "tlh-Piqd", + "value": "tlh-Piqd", + "description": "Klingon (Klingon script)" + }, + { + "name": "ko", + "value": "ko", + "description": "Korean" + }, + { + "name": "lv", + "value": "lv", + "description": "Latvian" + }, + { + "name": "lt", + "value": "lt", + "description": "Lithuanian" + }, + { + "name": "mg", + "value": "mg", + "description": "Malagasy" + }, + { + "name": "ms", + "value": "ms", + "description": "Malay" + }, + { + "name": "mt", + "value": "mt", + "description": "Maltese" + }, + { + "name": "nb", + "value": "nb", + "description": "Norwegian" + }, + { + "name": "fa", + "value": "fa", + "description": "Persian" + }, + { + "name": "pl", + "value": "pl", + "description": "Polish" + }, + { + "name": "pt", + "value": "pt", + "description": "Portuguese" + }, + { + "name": "pt-br", + "value": "pt-br", + "description": "Portuguese (Brazil)" + }, + { + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese (Portugal)" + }, + { + "name": "otq", + "value": "otq", + "description": "Queretaro Otomi" + }, + { + "name": "ro", + "value": "ro", + "description": "Romanian" + }, + { + "name": "ru", + "value": "ru", + "description": "Russian" + }, + { + "name": "sm", + "value": "sm", + "description": "Samoan" + }, + { + "name": "sr-Cyrl", + "value": "sr-Cyrl", + "description": "Serbian (Cyrillic)" + }, + { + "name": "sr-Latn", + "value": "sr-Latn", + "description": "Serbian (Latin)" + }, + { + "name": "sk", + "value": "sk", + "description": "Slovak" + }, + { + "name": "sl", + "value": "sl", + "description": "Slovenian" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "sv", + "value": "sv", + "description": "Swedish" + }, + { + "name": "ty", + "value": "ty", + "description": "Tahitian" + }, + { + "name": "ta", + "value": "ta", + "description": "Tamil" + }, + { + "name": "te", + "value": "te", + "description": "Telugu" + }, + { + "name": "th", + "value": "th", + "description": "Thai" + }, + { + "name": "to", + "value": "to", + "description": "Tongan" + }, + { + "name": "tr", + "value": "tr", + "description": "Turkish" + }, + { + "name": "uk", + "value": "uk", + "description": "Ukrainian" + }, + { + "name": "ur", + "value": "ur", + "description": "Urdu" + }, + { + "name": "vi", + "value": "vi", + "description": "Vietnamese" + }, + { + "name": "cy", + "value": "cy", + "description": "Welsh" + }, + { + "name": "yua", + "value": "yua", + "description": "Yucatec Maya" + }, + { + "name": "ga", + "value": "ga", + "description": "Irish" + }, + { + "name": "kn", + "value": "kn", + "description": "Kannada" + }, + { + "name": "mi", + "value": "mi", + "description": "Maori" + }, + { + "name": "ml", + "value": "ml", + "description": "Malayalam" + }, + { + "name": "pa", + "value": "pa", + "description": "Punjabi" + } + ] + } + }, + "TextWeights": { + "type": "object", + "description": "Defines weights on index fields for which matches should boost scoring in search queries.", + "properties": { + "weights": { + "type": "object", + "description": "The dictionary of per-field weights to boost document scoring. The keys are field names and the values are the weights for each field.", + "additionalProperties": { + "format": "double", + "type": "number" + } + } + }, + "required": [ + "weights" + ] + }, + "TokenCharacterKind": { + "type": "string", + "description": "Represents classes of characters on which a token filter can operate.", + "enum": [ + "letter", + "digit", + "whitespace", + "punctuation", + "symbol" + ], + "x-ms-enum": { + "name": "TokenCharacterKind", + "modelAsString": true, + "values": [ + { + "name": "Letter", + "value": "letter", + "description": "Keeps letters in tokens." + }, + { + "name": "Digit", + "value": "digit", + "description": "Keeps digits in tokens." + }, + { + "name": "Whitespace", + "value": "whitespace", + "description": "Keeps whitespace in tokens." + }, + { + "name": "Punctuation", + "value": "punctuation", + "description": "Keeps punctuation in tokens." + }, + { + "name": "Symbol", + "value": "symbol", + "description": "Keeps symbols in tokens." + } + ] + } + }, + "TokenFilter": { + "type": "object", + "description": "Base type for token filters.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "name": { + "type": "string", + "description": "The name of the token filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type", + "name" + ] + }, + "TokenFilterName": { + "type": "string", + "description": "Defines the names of all token filters supported by the search engine.", + "enum": [ + "arabic_normalization", + "apostrophe", + "asciifolding", + "cjk_bigram", + "cjk_width", + "classic", + "common_grams", + "edgeNGram_v2", + "elision", + "german_normalization", + "hindi_normalization", + "indic_normalization", + "keyword_repeat", + "kstem", + "length", + "limit", + "lowercase", + "nGram_v2", + "persian_normalization", + "phonetic", + "porter_stem", + "reverse", + "scandinavian_normalization", + "scandinavian_folding", + "shingle", + "snowball", + "sorani_normalization", + "stemmer", + "stopwords", + "trim", + "truncate", + "unique", + "uppercase", + "word_delimiter" + ], + "x-ms-enum": { + "name": "TokenFilterName", + "modelAsString": true, + "values": [ + { + "name": "ArabicNormalization", + "value": "arabic_normalization", + "description": "A token filter that applies the Arabic normalizer to normalize the orthography. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ar/ArabicNormalizationFilter.html" + }, + { + "name": "Apostrophe", + "value": "apostrophe", + "description": "Strips all characters after an apostrophe (including the apostrophe itself). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/tr/ApostropheFilter.html" + }, + { + "name": "AsciiFolding", + "value": "asciifolding", + "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" + }, + { + "name": "CjkBigram", + "value": "cjk_bigram", + "description": "Forms bigrams of CJK terms that are generated from the standard tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKBigramFilter.html" + }, + { + "name": "CjkWidth", + "value": "cjk_width", + "description": "Normalizes CJK width differences. Folds full-width ASCII variants into the equivalent basic Latin, and half-width Katakana variants into the equivalent Kana. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKWidthFilter.html" + }, + { + "name": "Classic", + "value": "classic", + "description": "Removes English possessives, and dots from acronyms. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicFilter.html" + }, + { + "name": "CommonGram", + "value": "common_grams", + "description": "Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/commongrams/CommonGramsFilter.html" + }, + { + "name": "EdgeNGram", + "value": "edgeNGram_v2", + "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html" + }, + { + "name": "Elision", + "value": "elision", + "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" + }, + { + "name": "GermanNormalization", + "value": "german_normalization", + "description": "Normalizes German characters according to the heuristics of the German2 snowball algorithm. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/de/GermanNormalizationFilter.html" + }, + { + "name": "HindiNormalization", + "value": "hindi_normalization", + "description": "Normalizes text in Hindi to remove some differences in spelling variations. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/hi/HindiNormalizationFilter.html" + }, + { + "name": "IndicNormalization", + "value": "indic_normalization", + "description": "Normalizes the Unicode representation of text in Indian languages. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/in/IndicNormalizationFilter.html" + }, + { + "name": "KeywordRepeat", + "value": "keyword_repeat", + "description": "Emits each incoming token twice, once as keyword and once as non-keyword. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilter.html" + }, + { + "name": "KStem", + "value": "kstem", + "description": "A high-performance kstem filter for English. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/en/KStemFilter.html" + }, + { + "name": "Length", + "value": "length", + "description": "Removes words that are too long or too short. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LengthFilter.html" + }, + { + "name": "Limit", + "value": "limit", + "description": "Limits the number of tokens while indexing. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilter.html" + }, + { + "name": "Lowercase", + "value": "lowercase", + "description": "Normalizes token text to lower case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html" + }, + { + "name": "NGram", + "value": "nGram_v2", + "description": "Generates n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html" + }, + { + "name": "PersianNormalization", + "value": "persian_normalization", + "description": "Applies normalization for Persian. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/fa/PersianNormalizationFilter.html" + }, + { + "name": "Phonetic", + "value": "phonetic", + "description": "Create tokens for phonetic matches. See https://lucene.apache.org/core/4_10_3/analyzers-phonetic/org/apache/lucene/analysis/phonetic/package-tree.html" + }, + { + "name": "PorterStem", + "value": "porter_stem", + "description": "Uses the Porter stemming algorithm to transform the token stream. See http://tartarus.org/~martin/PorterStemmer" + }, + { + "name": "Reverse", + "value": "reverse", + "description": "Reverses the token string. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html" + }, + { + "name": "ScandinavianNormalization", + "value": "scandinavian_normalization", + "description": "Normalizes use of the interchangeable Scandinavian characters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilter.html" + }, + { + "name": "ScandinavianFoldingNormalization", + "value": "scandinavian_folding", + "description": "Folds Scandinavian characters åÅäæÄÆ->a and öÖøØ->o. It also discriminates against use of double vowels aa, ae, ao, oe and oo, leaving just the first one. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilter.html" + }, + { + "name": "Shingle", + "value": "shingle", + "description": "Creates combinations of tokens as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/shingle/ShingleFilter.html" + }, + { + "name": "Snowball", + "value": "snowball", + "description": "A filter that stems words using a Snowball-generated stemmer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/snowball/SnowballFilter.html" + }, + { + "name": "SoraniNormalization", + "value": "sorani_normalization", + "description": "Normalizes the Unicode representation of Sorani text. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ckb/SoraniNormalizationFilter.html" + }, + { + "name": "Stemmer", + "value": "stemmer", + "description": "Language specific stemming filter. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters" + }, + { + "name": "Stopwords", + "value": "stopwords", + "description": "Removes stop words from a token stream. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html" + }, + { + "name": "Trim", + "value": "trim", + "description": "Trims leading and trailing whitespace from tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TrimFilter.html" + }, + { + "name": "Truncate", + "value": "truncate", + "description": "Truncates the terms to a specific length. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilter.html" + }, + { + "name": "Unique", + "value": "unique", + "description": "Filters out tokens with same text as the previous token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilter.html" + }, + { + "name": "Uppercase", + "value": "uppercase", + "description": "Normalizes token text to upper case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html" + }, + { + "name": "WordDelimiter", + "value": "word_delimiter", + "description": "Splits words into subwords and performs optional transformations on subword groups." + } + ] + } + }, + "TruncateTokenFilter": { + "type": "object", + "description": "Truncates the terms to a specific length. This token filter is implemented using Apache Lucene.", + "properties": { + "length": { + "type": "integer", + "format": "int32", + "description": "The length at which terms will be truncated. Default and maximum is 300.", + "default": 300, + "maximum": 300 + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.TruncateTokenFilter" + }, + "UaxUrlEmailTokenizer": { + "type": "object", + "description": "Tokenizes urls and emails as one token. This tokenizer is implemented using Apache Lucene.", + "properties": { + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 255, + "maximum": 300 + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.UaxUrlEmailTokenizer" + }, + "UniqueTokenFilter": { + "type": "object", + "description": "Filters out tokens with same text as the previous token. This token filter is implemented using Apache Lucene.", + "properties": { + "onlyOnSamePosition": { + "type": "boolean", + "description": "A value indicating whether to remove duplicates only at the same position. Default is false.", + "default": false + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.UniqueTokenFilter" + }, + "VectorEncodingFormat": { + "type": "string", + "description": "The encoding format for interpreting vector field contents.", + "enum": [ + "packedBit" + ], + "x-ms-enum": { + "name": "VectorEncodingFormat", + "modelAsString": true, + "values": [ + { + "name": "PackedBit", + "value": "packedBit", + "description": "Encoding format representing bits packed into a wider data type." + } + ] + } + }, + "VectorFilterMode": { + "type": "string", + "description": "Determines whether or not filters are applied before or after the vector search is performed.", + "enum": [ + "postFilter", + "preFilter", + "strictPostFilter" + ], + "x-ms-enum": { + "name": "VectorFilterMode", + "modelAsString": true, + "values": [ + { + "name": "PostFilter", + "value": "postFilter", + "description": "The filter will be applied after the candidate set of vector results is returned. Depending on the filter selectivity, this can result in fewer results than requested by the parameter 'k'." + }, + { + "name": "PreFilter", + "value": "preFilter", + "description": "The filter will be applied before the search query." + }, + { + "name": "StrictPostFilter", + "value": "strictPostFilter", + "description": "The filter will be applied after the global top-k candidate set of vector results is returned. This will result in fewer results than requested by the parameter 'k'." + } + ] + } + }, + "VectorQuery": { + "type": "object", + "description": "The query parameters for vector and hybrid search queries.", + "properties": { + "k": { + "type": "integer", + "format": "int32", + "description": "Number of nearest neighbors to return as top hits." + }, + "fields": { + "type": "string", + "description": "Vector Fields of type Collection(Edm.Single) to be included in the vector searched." + }, + "exhaustive": { + "type": "boolean", + "description": "When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values." + }, + "oversampling": { + "type": "number", + "format": "double", + "description": "Oversampling factor. Minimum value is 1. It overrides the 'defaultOversampling' parameter configured in the index definition. It can be set only when 'rerankWithOriginalVectors' is true. This parameter is only permitted when a compression method is used on the underlying vector field." + }, + "weight": { + "type": "number", + "format": "float", + "description": "Relative weight of the vector query when compared to other vector query and/or the text query within the same search request. This value is used when combining the results of multiple ranking lists produced by the different vector queries and/or the results retrieved through the text query. The higher the weight, the higher the documents that matched that query will be in the final ranking. Default is 1.0 and the value needs to be a positive number larger than zero." + }, + "threshold": { + "$ref": "#/definitions/VectorThreshold", + "description": "The threshold used for vector queries. Note this can only be set if all 'fields' use the same similarity metric." + }, + "filterOverride": { + "type": "string", + "description": "The OData filter expression to apply to this specific vector query. If no filter expression is defined at the vector level, the expression defined in the top level filter parameter is used instead." + }, + "perDocumentVectorLimit": { + "type": "integer", + "format": "int32", + "description": "Controls how many vectors can be matched from each document in a vector search query. Setting it to 1 ensures at most one vector per document is matched, guaranteeing results come from distinct documents. Setting it to 0 (unlimited) allows multiple relevant vectors from the same document to be matched. Default is 0." + }, + "kind": { + "$ref": "#/definitions/VectorQueryKind", + "description": "Type of query." + } + }, + "discriminator": "kind", + "required": [ + "kind" + ] + }, + "VectorQueryKind": { + "type": "string", + "description": "The kind of vector query being performed.", + "enum": [ + "vector", + "text", + "imageUrl", + "imageBinary" + ], + "x-ms-enum": { + "name": "VectorQueryKind", + "modelAsString": true, + "values": [ + { + "name": "Vector", + "value": "vector", + "description": "Vector query where a raw vector value is provided." + }, + { + "name": "Text", + "value": "text", + "description": "Vector query where a text value that needs to be vectorized is provided." + }, + { + "name": "ImageUrl", + "value": "imageUrl", + "description": "Vector query where an url that represents an image value that needs to be vectorized is provided." + }, + { + "name": "ImageBinary", + "value": "imageBinary", + "description": "Vector query where a base 64 encoded binary of an image that needs to be vectorized is provided." + } + ] + } + }, + "VectorSearch": { + "type": "object", + "description": "Contains configuration options related to vector search.", + "properties": { + "profiles": { + "type": "array", + "description": "Defines combinations of configurations to use with vector search.", + "items": { + "$ref": "#/definitions/VectorSearchProfile" + } + }, + "algorithms": { + "type": "array", + "description": "Contains configuration options specific to the algorithm used during indexing or querying.", + "items": { + "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" + } + }, + "vectorizers": { + "type": "array", + "description": "Contains configuration options on how to vectorize text vector queries.", + "items": { + "$ref": "#/definitions/VectorSearchVectorizer" + } + }, + "compressions": { + "type": "array", + "description": "Contains configuration options specific to the compression method used during indexing or querying.", + "items": { + "$ref": "#/definitions/VectorSearchCompression" + } + } + } + }, + "VectorSearchAlgorithmConfiguration": { + "type": "object", + "description": "Contains configuration options specific to the algorithm used during indexing or querying.", + "properties": { + "name": { + "type": "string", + "description": "The name to associate with this particular configuration." + }, + "kind": { + "$ref": "#/definitions/VectorSearchAlgorithmKind", + "description": "Type of VectorSearchAlgorithmConfiguration." + } + }, + "discriminator": "kind", + "required": [ + "name", + "kind" + ] + }, + "VectorSearchAlgorithmKind": { + "type": "string", + "description": "The algorithm used for indexing and querying.", + "enum": [ + "hnsw", + "exhaustiveKnn" + ], + "x-ms-enum": { + "name": "VectorSearchAlgorithmKind", + "modelAsString": true, + "values": [ + { + "name": "Hnsw", + "value": "hnsw", + "description": "HNSW (Hierarchical Navigable Small World), a type of approximate nearest neighbors algorithm." + }, + { + "name": "ExhaustiveKnn", + "value": "exhaustiveKnn", + "description": "Exhaustive KNN algorithm which will perform brute-force search." + } + ] + } + }, + "VectorSearchAlgorithmMetric": { + "type": "string", + "description": "The similarity metric to use for vector comparisons. It is recommended to choose the same similarity metric as the embedding model was trained on.", + "enum": [ + "cosine", + "euclidean", + "dotProduct", + "hamming" + ], + "x-ms-enum": { + "name": "VectorSearchAlgorithmMetric", + "modelAsString": true, + "values": [ + { + "name": "Cosine", + "value": "cosine", + "description": "Measures the angle between vectors to quantify their similarity, disregarding magnitude. The smaller the angle, the closer the similarity." + }, + { + "name": "Euclidean", + "value": "euclidean", + "description": "Computes the straight-line distance between vectors in a multi-dimensional space. The smaller the distance, the closer the similarity." + }, + { + "name": "DotProduct", + "value": "dotProduct", + "description": "Calculates the sum of element-wise products to gauge alignment and magnitude similarity. The larger and more positive, the closer the similarity." + }, + { + "name": "Hamming", + "value": "hamming", + "description": "Only applicable to bit-packed binary data types. Determines dissimilarity by counting differing positions in binary vectors. The fewer differences, the closer the similarity." + } + ] + } + }, + "VectorSearchCompression": { + "type": "object", + "description": "Contains configuration options specific to the compression method used during indexing or querying.", + "properties": { + "name": { + "type": "string", + "description": "The name to associate with this particular configuration." + }, + "rescoringOptions": { + "$ref": "#/definitions/RescoringOptions", + "description": "Contains the options for rescoring.", + "x-nullable": true + }, + "truncationDimension": { + "type": "integer", + "format": "int32", + "description": "The number of dimensions to truncate the vectors to. Truncating the vectors reduces the size of the vectors and the amount of data that needs to be transferred during search. This can save storage cost and improve search performance at the expense of recall. It should be only used for embeddings trained with Matryoshka Representation Learning (MRL) such as OpenAI text-embedding-3-large (small). The default value is null, which means no truncation.", + "x-nullable": true + }, + "kind": { + "$ref": "#/definitions/VectorSearchCompressionKind", + "description": "Type of VectorSearchCompression." + } + }, + "discriminator": "kind", + "required": [ + "name", + "kind" + ] + }, + "VectorSearchCompressionKind": { + "type": "string", + "description": "The compression method used for indexing and querying.", + "enum": [ + "scalarQuantization", + "binaryQuantization" + ], + "x-ms-enum": { + "name": "VectorSearchCompressionKind", + "modelAsString": true, + "values": [ + { + "name": "ScalarQuantization", + "value": "scalarQuantization", + "description": "Scalar Quantization, a type of compression method. In scalar quantization, the original vectors values are compressed to a narrower type by discretizing and representing each component of a vector using a reduced set of quantized values, thereby reducing the overall data size." + }, + { + "name": "BinaryQuantization", + "value": "binaryQuantization", + "description": "Binary Quantization, a type of compression method. In binary quantization, the original vectors values are compressed to the narrower binary type by discretizing and representing each component of a vector using binary values, thereby reducing the overall data size." + } + ] + } + }, + "VectorSearchCompressionRescoreStorageMethod": { + "type": "string", + "description": "The storage method for the original full-precision vectors used for rescoring and internal index operations.", + "enum": [ + "preserveOriginals", + "discardOriginals" + ], + "x-ms-enum": { + "name": "VectorSearchCompressionRescoreStorageMethod", + "modelAsString": true, + "values": [ + { + "name": "PreserveOriginals", + "value": "preserveOriginals", + "description": "This option preserves the original full-precision vectors. Choose this option for maximum flexibility and highest quality of compressed search results. This consumes more storage but allows for rescoring and oversampling." + }, + { + "name": "DiscardOriginals", + "value": "discardOriginals", + "description": "This option discards the original full-precision vectors. Choose this option for maximum storage savings. Since this option does not allow for rescoring and oversampling, it will often cause slight to moderate reductions in quality." + } + ] + } + }, + "VectorSearchCompressionTarget": { + "type": "string", + "description": "The quantized data type of compressed vector values.", + "enum": [ + "int8" + ], + "x-ms-enum": { + "name": "VectorSearchCompressionTarget", + "modelAsString": true, + "values": [ + { + "name": "Int8", + "value": "int8", + "description": "8-bit signed integer." + } + ] + } + }, + "VectorSearchProfile": { + "type": "object", + "description": "Defines a combination of configurations to use with vector search.", + "properties": { + "name": { + "type": "string", + "description": "The name to associate with this particular vector search profile." + }, + "algorithm": { + "type": "string", + "description": "The name of the vector search algorithm configuration that specifies the algorithm and optional parameters." + }, + "vectorizer": { + "type": "string", + "description": "The name of the vectorization being configured for use with vector search." + }, + "compression": { + "type": "string", + "description": "The name of the compression method configuration that specifies the compression method and optional parameters." + } + }, + "required": [ + "name", + "algorithm" + ] + }, + "VectorSearchVectorizer": { + "type": "object", + "description": "Specifies the vectorization method to be used during query time.", + "properties": { + "name": { + "type": "string", + "description": "The name to associate with this particular vectorization method." + }, + "kind": { + "$ref": "#/definitions/VectorSearchVectorizerKind", + "description": "Type of VectorSearchVectorizer." + } + }, + "discriminator": "kind", + "required": [ + "name", + "kind" + ] + }, + "VectorSearchVectorizerKind": { + "type": "string", + "description": "The vectorization method to be used during query time.", + "enum": [ + "azureOpenAI", + "customWebApi", + "aiServicesVision", + "aml" + ], + "x-ms-enum": { + "name": "VectorSearchVectorizerKind", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "azureOpenAI", + "description": "Generate embeddings using an Azure OpenAI resource at query time." + }, + { + "name": "CustomWebApi", + "value": "customWebApi", + "description": "Generate embeddings using a custom web endpoint at query time." + }, + { + "name": "AIServicesVision", + "value": "aiServicesVision", + "description": "Generate embeddings for an image or text input at query time using the Azure AI Services Vision Vectorize API." + }, + { + "name": "AML", + "value": "aml", + "description": "Generate embeddings using an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog at query time." + } + ] + } + }, + "VectorSimilarityThreshold": { + "type": "object", + "description": "The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field.", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The threshold will filter based on the similarity metric value. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." + } + }, + "required": [ + "value" + ], + "allOf": [ + { + "$ref": "#/definitions/VectorThreshold" + } + ], + "x-ms-discriminator-value": "vectorSimilarity" + }, + "VectorThreshold": { + "type": "object", + "description": "The threshold used for vector queries.", + "properties": { + "kind": { + "$ref": "#/definitions/VectorThresholdKind", + "description": "Type of threshold." + } + }, + "discriminator": "kind", + "required": [ + "kind" + ] + }, + "VectorThresholdKind": { + "type": "string", + "description": "The kind of threshold used to filter vector queries.", + "enum": [ + "vectorSimilarity", + "searchScore" + ], + "x-ms-enum": { + "name": "VectorThresholdKind", + "modelAsString": true, + "values": [ + { + "name": "VectorSimilarity", + "value": "vectorSimilarity", + "description": "The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." + }, + { + "name": "SearchScore", + "value": "searchScore", + "description": "The results of the vector query will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." + } + ] + } + }, + "VectorizableImageBinaryQuery": { + "type": "object", + "description": "The query parameters to use for vector search when a base 64 encoded binary of an image that needs to be vectorized is provided.", + "properties": { + "base64Image": { + "type": "string", + "description": "The base 64 encoded binary of an image to be vectorized to perform a vector search query." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorQuery" + } + ], + "x-ms-discriminator-value": "imageBinary" + }, + "VectorizableImageUrlQuery": { + "type": "object", + "description": "The query parameters to use for vector search when an url that represents an image value that needs to be vectorized is provided.", + "properties": { + "url": { + "type": "string", + "description": "The URL of an image to be vectorized to perform a vector search query." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorQuery" + } + ], + "x-ms-discriminator-value": "imageUrl" + }, + "VectorizableTextQuery": { + "type": "object", + "description": "The query parameters to use for vector search when a text value that needs to be vectorized is provided.", + "properties": { + "text": { + "type": "string", + "description": "The text to be vectorized to perform a vector search query." + }, + "queryRewrites": { + "$ref": "#/definitions/QueryRewritesType", + "description": "Can be configured to let a generative model rewrite the query before sending it to be vectorized." + } + }, + "required": [ + "text" + ], + "allOf": [ + { + "$ref": "#/definitions/VectorQuery" + } + ], + "x-ms-discriminator-value": "text" + }, + "VectorizedQuery": { + "type": "object", + "description": "The query parameters to use for vector search when a raw vector value is provided.", + "properties": { + "vector": { + "type": "array", + "description": "The vector representation of a search query.", + "items": { + "type": "number", + "format": "float" + } + } + }, + "required": [ + "vector" + ], + "allOf": [ + { + "$ref": "#/definitions/VectorQuery" + } + ], + "x-ms-discriminator-value": "vector" + }, + "VectorsDebugInfo": { + "type": "object", + "description": "\"Contains debugging information specific to vector and hybrid search.\")", + "properties": { + "subscores": { + "$ref": "#/definitions/QueryResultDocumentSubscores", + "description": "The breakdown of subscores of the document prior to the chosen result set fusion/combination method such as RRF.", + "readOnly": true + } + } + }, + "VisionVectorizeSkill": { + "type": "object", + "description": "Allows you to generate a vector embedding for a given image or text input using the Azure AI Services Vision Vectorize API.", + "properties": { + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified.", + "x-nullable": true + } + }, + "required": [ + "modelVersion" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Vision.VectorizeSkill" + }, + "VisualFeature": { + "type": "string", + "description": "The strings indicating what visual feature types to return.", + "enum": [ + "adult", + "brands", + "categories", + "description", + "faces", + "objects", + "tags" + ], + "x-ms-enum": { + "name": "VisualFeature", + "modelAsString": true, + "values": [ + { + "name": "Adult", + "value": "adult", + "description": "Visual features recognized as adult persons." + }, + { + "name": "Brands", + "value": "brands", + "description": "Visual features recognized as commercial brands." + }, + { + "name": "Categories", + "value": "categories", + "description": "Categories." + }, + { + "name": "Description", + "value": "description", + "description": "Description." + }, + { + "name": "Faces", + "value": "faces", + "description": "Visual features recognized as people faces." + }, + { + "name": "Objects", + "value": "objects", + "description": "Visual features recognized as objects." + }, + { + "name": "Tags", + "value": "tags", + "description": "Tags." + } + ] + } + }, + "WebApiHttpHeaders": { + "type": "object", + "description": "A dictionary of http request headers.", + "additionalProperties": { + "type": "string" + } + }, + "WebApiSkill": { + "type": "object", + "description": "A skill that can call a Web API endpoint, allowing you to extend a skillset by having it call your custom code.", + "properties": { + "uri": { + "type": "string", + "description": "The url for the Web API." + }, + "httpHeaders": { + "$ref": "#/definitions/WebApiHttpHeaders", + "description": "The headers required to make the http request." + }, + "httpMethod": { + "type": "string", + "description": "The method for the http request." + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "The desired timeout for the request. Default is 30 seconds." + }, + "batchSize": { + "type": "integer", + "format": "int32", + "description": "The desired batch size which indicates number of documents.", + "x-nullable": true + }, + "degreeOfParallelism": { + "type": "integer", + "format": "int32", + "description": "If set, the number of parallel calls that can be made to the Web API.", + "x-nullable": true + }, + "authResourceId": { + "type": "string", + "description": "Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.", + "x-nullable": true + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + } + }, + "required": [ + "uri" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Custom.WebApiSkill" + }, + "WebApiVectorizer": { + "type": "object", + "description": "Specifies a user-defined vectorizer for generating the vector embedding of a query string. Integration of an external vectorizer is achieved using the custom Web API interface of a skillset.", + "properties": { + "customWebApiParameters": { + "$ref": "#/definitions/WebApiVectorizerParameters", + "description": "Specifies the properties of the user-defined vectorizer." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchVectorizer" + } + ], + "x-ms-discriminator-value": "customWebApi" + }, + "WebApiVectorizerParameters": { + "type": "object", + "description": "Specifies the properties for connecting to a user-defined vectorizer.", + "properties": { + "uri": { + "type": "string", + "format": "uri", + "description": "The URI of the Web API providing the vectorizer." + }, + "httpHeaders": { + "type": "object", + "description": "The headers required to make the HTTP request.", + "additionalProperties": { + "type": "string" + } + }, + "httpMethod": { + "type": "string", + "description": "The method for the HTTP request." + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "The desired timeout for the request. Default is 30 seconds." + }, + "authResourceId": { + "type": "string", + "description": "Applies to custom endpoints that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the vectorization connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.", + "x-nullable": true + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + } + } + }, + "WebKnowledgeSource": { + "type": "object", + "description": "Knowledge Source targeting web results.", + "properties": { + "webParameters": { + "$ref": "#/definitions/WebKnowledgeSourceParameters", + "description": "The parameters for the web knowledge source." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSource" + } + ], + "x-ms-discriminator-value": "web" + }, + "WebKnowledgeSourceDomain": { + "type": "object", + "description": "Configuration for web knowledge source domain.", + "properties": { + "address": { + "type": "string", + "description": "The address of the domain." + }, + "includeSubpages": { + "type": "boolean", + "description": "Whether or not to include subpages from this domain." + } + }, + "required": [ + "address" + ] + }, + "WebKnowledgeSourceDomains": { + "type": "object", + "description": "Domain allow/block configuration for web knowledge source.", + "properties": { + "allowedDomains": { + "type": "array", + "description": "Domains that are allowed for web results.", + "items": { + "$ref": "#/definitions/WebKnowledgeSourceDomain" + } + }, + "blockedDomains": { + "type": "array", + "description": "Domains that are blocked from web results.", + "items": { + "$ref": "#/definitions/WebKnowledgeSourceDomain" + } + } + } + }, + "WebKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for web knowledge source.", + "properties": { + "domains": { + "$ref": "#/definitions/WebKnowledgeSourceDomains", + "description": "Domain allow/block configuration for web results." + } + } + }, + "WebKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a web knowledge source", + "properties": { + "language": { + "type": "string", + "description": "The language of the web results." + }, + "market": { + "type": "string", + "description": "The market of the web results." + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The number of web results to return." + }, + "freshness": { + "type": "string", + "description": "The freshness of web results." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } + ], + "x-ms-discriminator-value": "web" + }, + "WordDelimiterTokenFilter": { + "type": "object", + "description": "Splits words into subwords and performs optional transformations on subword groups. This token filter is implemented using Apache Lucene.", + "properties": { + "generateWordParts": { + "type": "boolean", + "description": "A value indicating whether to generate part words. If set, causes parts of words to be generated; for example \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true.", + "default": true + }, + "generateNumberParts": { + "type": "boolean", + "description": "A value indicating whether to generate number subwords. Default is true.", + "default": true + }, + "catenateWords": { + "type": "boolean", + "description": "A value indicating whether maximum runs of word parts will be catenated. For example, if this is set to true, \"Azure-Search\" becomes \"AzureSearch\". Default is false.", + "default": false + }, + "catenateNumbers": { + "type": "boolean", + "description": "A value indicating whether maximum runs of number parts will be catenated. For example, if this is set to true, \"1-2\" becomes \"12\". Default is false.", + "default": false + }, + "catenateAll": { + "type": "boolean", + "description": "A value indicating whether all subword parts will be catenated. For example, if this is set to true, \"Azure-Search-1\" becomes \"AzureSearch1\". Default is false.", + "default": false + }, + "splitOnCaseChange": { + "type": "boolean", + "description": "A value indicating whether to split words on caseChange. For example, if this is set to true, \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true.", + "default": true + }, + "preserveOriginal": { + "type": "boolean", + "description": "A value indicating whether original words will be preserved and added to the subword list. Default is false.", + "default": false + }, + "splitOnNumerics": { + "type": "boolean", + "description": "A value indicating whether to split on numbers. For example, if this is set to true, \"Azure1Search\" becomes \"Azure\" \"1\" \"Search\". Default is true.", + "default": true + }, + "stemEnglishPossessive": { + "type": "boolean", + "description": "A value indicating whether to remove trailing \"'s\" for each subword. Default is true.", + "default": true + }, + "protectedWords": { + "type": "array", + "description": "A list of tokens to protect from being delimited.", + "items": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.WordDelimiterTokenFilter" + } + }, + "parameters": { + "Azure.Core.ClientRequestIdHeader": { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" + }, + "SearchOptions.answers": { + "name": "answers", + "in": "query", + "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", + "required": false, + "type": "string", + "enum": [ + "none", + "extractive" + ], + "x-ms-enum": { + "name": "QueryAnswerType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Do not return answers for the query." + }, + { + "name": "Extractive", + "value": "extractive", + "description": "Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "SearchOptions.captions": { + "name": "captions", + "in": "query", + "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", + "required": false, + "type": "string", + "enum": [ + "none", + "extractive" + ], + "x-ms-enum": { + "name": "QueryCaptionType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Do not return captions for the query." + }, + { + "name": "Extractive", + "value": "extractive", + "description": "Extracts captions from the matching documents that contain passages relevant to the search query." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "SearchOptions.debug": { + "name": "debug", + "in": "query", + "description": "Enables a debugging tool that can be used to further explore your search results.", + "required": false, + "type": "string", + "enum": [ + "disabled", + "semantic", + "vector", + "queryRewrites", + "innerHits", + "all" + ], + "x-ms-enum": { + "name": "QueryDebugMode", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "disabled", + "description": "No query debugging information will be returned." + }, + { + "name": "Semantic", + "value": "semantic", + "description": "Allows the user to further explore their reranked results." + }, + { + "name": "Vector", + "value": "vector", + "description": "Allows the user to further explore their hybrid and vector query results." + }, + { + "name": "QueryRewrites", + "value": "queryRewrites", + "description": "Allows the user to explore the list of query rewrites generated for their search request." + }, + { + "name": "InnerHits", + "value": "innerHits", + "description": "Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types." + }, + { + "name": "All", + "value": "all", + "description": "Turn on all debug options." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "SearchOptions.facets": { + "name": "facet", + "in": "query", + "description": "The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "x-ms-parameter-location": "method", + "x-ms-client-name": "facets" + }, + "SearchOptions.filter": { + "name": "$filter", + "in": "query", + "description": "The OData $filter expression to apply to the search query.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "filter" + }, + "SearchOptions.highlightFields": { + "name": "highlight", + "in": "query", + "description": "The list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "highlightFields" + }, + "SearchOptions.highlightPostTag": { + "name": "highlightPostTag", + "in": "query", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SearchOptions.highlightPreTag": { + "name": "highlightPreTag", + "in": "query", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SearchOptions.includeTotalResultCount": { + "name": "$count", + "in": "query", + "description": "A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "x-ms-client-name": "includeTotalResultCount" + }, + "SearchOptions.minimumCoverage": { + "name": "minimumCoverage", + "in": "query", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.", + "required": false, + "type": "number", + "format": "double", + "x-ms-parameter-location": "method" + }, + "SearchOptions.orderBy": { + "name": "$orderby", + "in": "query", + "description": "The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, and desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no OrderBy is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "orderBy" + }, + "SearchOptions.queryLanguage": { + "name": "queryLanguage", + "in": "query", + "description": "The language of the query.", + "required": false, + "type": "string", + "enum": [ + "none", + "en-us", + "en-gb", + "en-in", + "en-ca", + "en-au", + "fr-fr", + "fr-ca", + "de-de", + "es-es", + "es-mx", + "zh-cn", + "zh-tw", + "pt-br", + "pt-pt", + "it-it", + "ja-jp", + "ko-kr", + "ru-ru", + "cs-cz", + "nl-be", + "nl-nl", + "hu-hu", + "pl-pl", + "sv-se", + "tr-tr", + "hi-in", + "ar-sa", + "ar-eg", + "ar-ma", + "ar-kw", + "ar-jo", + "da-dk", + "no-no", + "bg-bg", + "hr-hr", + "hr-ba", + "ms-my", + "ms-bn", + "sl-sl", + "ta-in", + "vi-vn", + "el-gr", + "ro-ro", + "is-is", + "id-id", + "th-th", + "lt-lt", + "uk-ua", + "lv-lv", + "et-ee", + "ca-es", + "fi-fi", + "sr-ba", + "sr-me", + "sr-rs", + "sk-sk", + "nb-no", + "hy-am", + "bn-in", + "eu-es", + "gl-es", + "gu-in", + "he-il", + "ga-ie", + "kn-in", + "ml-in", + "mr-in", + "fa-ae", + "pa-in", + "te-in", + "ur-pk" + ], + "x-ms-enum": { + "name": "QueryLanguage", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Query language not specified." + }, + { + "name": "EnUs", + "value": "en-us", + "description": "Query language value for English (United States)." + }, + { + "name": "EnGb", + "value": "en-gb", + "description": "Query language value for English (Great Britain)." + }, + { + "name": "EnIn", + "value": "en-in", + "description": "Query language value for English (India)." + }, + { + "name": "EnCa", + "value": "en-ca", + "description": "Query language value for English (Canada)." + }, + { + "name": "EnAu", + "value": "en-au", + "description": "Query language value for English (Australia)." + }, + { + "name": "FrFr", + "value": "fr-fr", + "description": "Query language value for French (France)." + }, + { + "name": "FrCa", + "value": "fr-ca", + "description": "Query language value for French (Canada)." + }, + { + "name": "DeDe", + "value": "de-de", + "description": "Query language value for German (Germany)." + }, + { + "name": "EsEs", + "value": "es-es", + "description": "Query language value for Spanish (Spain)." + }, + { + "name": "EsMx", + "value": "es-mx", + "description": "Query language value for Spanish (Mexico)." + }, + { + "name": "ZhCn", + "value": "zh-cn", + "description": "Query language value for Chinese (China)." + }, + { + "name": "ZhTw", + "value": "zh-tw", + "description": "Query language value for Chinese (Taiwan)." + }, + { + "name": "PtBr", + "value": "pt-br", + "description": "Query language value for Portuguese (Brazil)." + }, + { + "name": "PtPt", + "value": "pt-pt", + "description": "Query language value for Portuguese (Portugal)." + }, + { + "name": "ItIt", + "value": "it-it", + "description": "Query language value for Italian (Italy)." + }, + { + "name": "JaJp", + "value": "ja-jp", + "description": "Query language value for Japanese (Japan)." + }, + { + "name": "KoKr", + "value": "ko-kr", + "description": "Query language value for Korean (Korea)." + }, + { + "name": "RuRu", + "value": "ru-ru", + "description": "Query language value for Russian (Russia)." + }, + { + "name": "CsCz", + "value": "cs-cz", + "description": "Query language value for Czech (Czech Republic)." + }, + { + "name": "NlBe", + "value": "nl-be", + "description": "Query language value for Dutch (Belgium)." + }, + { + "name": "NlNl", + "value": "nl-nl", + "description": "Query language value for Dutch (Netherlands)." + }, + { + "name": "HuHu", + "value": "hu-hu", + "description": "Query language value for Hungarian (Hungary)." + }, + { + "name": "PlPl", + "value": "pl-pl", + "description": "Query language value for Polish (Poland)." + }, + { + "name": "SvSe", + "value": "sv-se", + "description": "Query language value for Swedish (Sweden)." + }, + { + "name": "TrTr", + "value": "tr-tr", + "description": "Query language value for Turkish (Turkey)." + }, + { + "name": "HiIn", + "value": "hi-in", + "description": "Query language value for Hindi (India)." + }, + { + "name": "ArSa", + "value": "ar-sa", + "description": "Query language value for Arabic (Saudi Arabia)." + }, + { + "name": "ArEg", + "value": "ar-eg", + "description": "Query language value for Arabic (Egypt)." + }, + { + "name": "ArMa", + "value": "ar-ma", + "description": "Query language value for Arabic (Morocco)." + }, + { + "name": "ArKw", + "value": "ar-kw", + "description": "Query language value for Arabic (Kuwait)." + }, + { + "name": "ArJo", + "value": "ar-jo", + "description": "Query language value for Arabic (Jordan)." + }, + { + "name": "DaDk", + "value": "da-dk", + "description": "Query language value for Danish (Denmark)." + }, + { + "name": "NoNo", + "value": "no-no", + "description": "Query language value for Norwegian (Norway)." + }, + { + "name": "BgBg", + "value": "bg-bg", + "description": "Query language value for Bulgarian (Bulgaria)." + }, + { + "name": "HrHr", + "value": "hr-hr", + "description": "Query language value for Croatian (Croatia)." + }, + { + "name": "HrBa", + "value": "hr-ba", + "description": "Query language value for Croatian (Bosnia and Herzegovina)." + }, + { + "name": "MsMy", + "value": "ms-my", + "description": "Query language value for Malay (Malaysia)." + }, + { + "name": "MsBn", + "value": "ms-bn", + "description": "Query language value for Malay (Brunei Darussalam)." + }, + { + "name": "SlSl", + "value": "sl-sl", + "description": "Query language value for Slovenian (Slovenia)." + }, + { + "name": "TaIn", + "value": "ta-in", + "description": "Query language value for Tamil (India)." + }, + { + "name": "ViVn", + "value": "vi-vn", + "description": "Query language value for Vietnamese (Viet Nam)." + }, + { + "name": "ElGr", + "value": "el-gr", + "description": "Query language value for Greek (Greece)." + }, + { + "name": "RoRo", + "value": "ro-ro", + "description": "Query language value for Romanian (Romania)." + }, + { + "name": "IsIs", + "value": "is-is", + "description": "Query language value for Icelandic (Iceland)." + }, + { + "name": "IdId", + "value": "id-id", + "description": "Query language value for Indonesian (Indonesia)." + }, + { + "name": "ThTh", + "value": "th-th", + "description": "Query language value for Thai (Thailand)." + }, + { + "name": "LtLt", + "value": "lt-lt", + "description": "Query language value for Lithuanian (Lithuania)." + }, + { + "name": "UkUa", + "value": "uk-ua", + "description": "Query language value for Ukrainian (Ukraine)." + }, + { + "name": "LvLv", + "value": "lv-lv", + "description": "Query language value for Latvian (Latvia)." + }, + { + "name": "EtEe", + "value": "et-ee", + "description": "Query language value for Estonian (Estonia)." + }, + { + "name": "CaEs", + "value": "ca-es", + "description": "Query language value for Catalan." + }, + { + "name": "FiFi", + "value": "fi-fi", + "description": "Query language value for Finnish (Finland)." + }, + { + "name": "SrBa", + "value": "sr-ba", + "description": "Query language value for Serbian (Bosnia and Herzegovina)." + }, + { + "name": "SrMe", + "value": "sr-me", + "description": "Query language value for Serbian (Montenegro)." + }, + { + "name": "SrRs", + "value": "sr-rs", + "description": "Query language value for Serbian (Serbia)." + }, + { + "name": "SkSk", + "value": "sk-sk", + "description": "Query language value for Slovak (Slovakia)." + }, + { + "name": "NbNo", + "value": "nb-no", + "description": "Query language value for Norwegian (Norway)." + }, + { + "name": "HyAm", + "value": "hy-am", + "description": "Query language value for Armenian (Armenia)." + }, + { + "name": "BnIn", + "value": "bn-in", + "description": "Query language value for Bengali (India)." + }, + { + "name": "EuEs", + "value": "eu-es", + "description": "Query language value for Basque." + }, + { + "name": "GlEs", + "value": "gl-es", + "description": "Query language value for Galician." + }, + { + "name": "GuIn", + "value": "gu-in", + "description": "Query language value for Gujarati (India)." + }, + { + "name": "HeIl", + "value": "he-il", + "description": "Query language value for Hebrew (Israel)." + }, + { + "name": "GaIe", + "value": "ga-ie", + "description": "Query language value for Irish (Ireland)." + }, + { + "name": "KnIn", + "value": "kn-in", + "description": "Query language value for Kannada (India)." + }, + { + "name": "MlIn", + "value": "ml-in", + "description": "Query language value for Malayalam (India)." + }, + { + "name": "MrIn", + "value": "mr-in", + "description": "Query language value for Marathi (India)." + }, + { + "name": "FaAe", + "value": "fa-ae", + "description": "Query language value for Persian (U.A.E.)." + }, + { + "name": "PaIn", + "value": "pa-in", + "description": "Query language value for Punjabi (India)." + }, + { + "name": "TeIn", + "value": "te-in", + "description": "Query language value for Telugu (India)." + }, + { + "name": "UrPk", + "value": "ur-pk", + "description": "Query language value for Urdu (Pakistan)." + } + ] }, - "description": "Represents various service level limits." + "x-ms-parameter-location": "method" }, - "ResourceCounter": { - "type": "object", - "properties": { - "usage": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "description": "The resource usage amount." - }, - "quota": { - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "The resource amount quota." - } - }, - "required": [ - "usage" + "SearchOptions.queryRewrites": { + "name": "queryRewrites", + "in": "query", + "description": "When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`. This parameter is only valid if the query type is `semantic`.", + "required": false, + "type": "string", + "enum": [ + "none", + "generative" ], - "description": "Represents a resource's usage and quota." + "x-ms-enum": { + "name": "QueryRewritesType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Do not generate additional query rewrites for this query." + }, + { + "name": "Generative", + "value": "generative", + "description": "Generate alternative query terms to increase the recall of a search request." + } + ] + }, + "x-ms-parameter-location": "method" }, - "SemanticSettings": { - "type": "object", - "x-ms-client-name": "SemanticSearch", - "properties": { - "defaultConfiguration": { - "x-ms-client-name": "defaultConfigurationName", - "type": "string", - "description": "Allows you to set the name of a default semantic configuration in your index, making it optional to pass it on as a query parameter every time." - }, - "configurations": { - "type": "array", - "items": { - "$ref": "#/definitions/SemanticConfiguration" + "SearchOptions.queryType": { + "name": "queryType", + "in": "query", + "description": "A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.", + "required": false, + "type": "string", + "enum": [ + "simple", + "full", + "semantic" + ], + "x-ms-enum": { + "name": "QueryType", + "modelAsString": true, + "values": [ + { + "name": "Simple", + "value": "simple", + "description": "Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified." }, - "description": "The semantic configurations for the index." - } + { + "name": "Full", + "value": "full", + "description": "Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features." + }, + { + "name": "Semantic", + "value": "semantic", + "description": "Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus." + } + ] }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/semantic-search-overview" + "x-ms-parameter-location": "method" + }, + "SearchOptions.scoringParameters": { + "name": "scoringParameter", + "in": "query", + "description": "The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).", + "required": false, + "type": "array", + "items": { + "type": "string" }, - "description": "Defines parameters for a search index that influence semantic capabilities." + "collectionFormat": "multi", + "x-ms-parameter-location": "method", + "x-ms-client-name": "scoringParameters" }, - "SemanticConfiguration": { - "type": "object", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" + "SearchOptions.scoringProfile": { + "name": "scoringProfile", + "in": "query", + "description": "The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SearchOptions.scoringStatistics": { + "name": "scoringStatistics", + "in": "query", + "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency.", + "required": false, + "type": "string", + "enum": [ + "local", + "global" + ], + "x-ms-enum": { + "name": "ScoringStatistics", + "modelAsString": true, + "values": [ + { + "name": "Local", + "value": "local", + "description": "The scoring statistics will be calculated locally for lower latency." }, - "type": "string", - "description": "The name of the semantic configuration.", - "x-nullable": false - }, - "prioritizedFields": { - "$ref": "#/definitions/PrioritizedFields", - "x-nullable": false, - "description": "Describes the title, content, and keyword fields to be used for semantic ranking, captions, highlights, and answers. At least one of the three sub properties (titleField, prioritizedKeywordsFields and prioritizedContentFields) need to be set." - }, - "rankingOrder": { - "$ref": "#/definitions/RankingOrder", - "x-nullable": true, - "description": "Specifies the score type to be used for the sort order of the search results." - }, - "flightingOptIn": { - "default": false, - "type": "boolean", - "description": "Determines which semantic or query rewrite models to use during model flighting/upgrades." - } + { + "name": "Global", + "value": "global", + "description": "The scoring statistics will be calculated globally for more consistent scoring." + } + ] }, - "required": [ - "name", - "prioritizedFields" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/semantic-search-overview" + "x-ms-parameter-location": "method" + }, + "SearchOptions.searchFields": { + "name": "searchFields", + "in": "query", + "description": "The list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.", + "required": false, + "type": "array", + "items": { + "type": "string" }, - "description": "Defines a specific configuration to be used in the context of semantic capabilities." + "collectionFormat": "csv", + "x-ms-parameter-location": "method" }, - "PrioritizedFields": { - "type": "object", - "x-ms-client-name": "SemanticPrioritizedFields", - "properties": { - "titleField": { - "$ref": "#/definitions/SemanticField", - "description": "Defines the title field to be used for semantic ranking, captions, highlights, and answers. If you don't have a title field in your index, leave this blank." - }, - "prioritizedContentFields": { - "x-ms-client-name": "contentFields", - "type": "array", - "items": { - "$ref": "#/definitions/SemanticField" - }, - "description": "Defines the content fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain text in natural language form. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long." - }, - "prioritizedKeywordsFields": { - "x-ms-client-name": "keywordsFields", - "type": "array", - "items": { - "$ref": "#/definitions/SemanticField" + "SearchOptions.searchMode": { + "name": "searchMode", + "in": "query", + "description": "A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.", + "required": false, + "type": "string", + "enum": [ + "any", + "all" + ], + "x-ms-enum": { + "name": "SearchMode", + "modelAsString": true, + "values": [ + { + "name": "Any", + "value": "any", + "description": "Any of the search terms must be matched in order to count the document as a match." }, - "description": "Defines the keyword fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain a list of keywords. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/semantic-search-overview" + { + "name": "All", + "value": "all", + "description": "All of the search terms must be matched in order to count the document as a match." + } + ] }, - "description": "Describes the title, content, and keywords fields to be used for semantic ranking, captions, highlights, and answers." + "x-ms-parameter-location": "method" }, - "SemanticField": { - "type": "object", - "properties": { - "fieldName": { - "type": "string", - "description": "", - "x-nullable": false - } + "SearchOptions.select": { + "name": "$select", + "in": "query", + "description": "The list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.", + "required": false, + "type": "array", + "items": { + "type": "string" }, - "required": [ - "fieldName" - ], - "description": "A field that is used as part of the semantic configuration." - } - }, - "parameters": { - "ApiVersionParameter": { - "name": "api-version", + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "select" + }, + "SearchOptions.semanticConfiguration": { + "name": "semanticConfiguration", "in": "query", - "required": true, + "description": "The name of the semantic configuration that lists which fields should be used for semantic ranking, captions, highlights, and answers", + "required": false, "type": "string", - "description": "Client Api Version." + "x-ms-parameter-location": "method" }, - "ClientRequestIdParameter": { - "name": "x-ms-client-request-id", - "in": "header", + "SearchOptions.semanticErrorHandling": { + "name": "semanticErrorHandling", + "in": "query", + "description": "Allows the user to choose whether a semantic call should fail completely, or to return partial results (default).", "required": false, "type": "string", - "format": "uuid", - "description": "The tracking ID sent with the request to help with debugging.", - "x-ms-client-request-id": true, - "x-ms-parameter-grouping": { - "name": "request-options" + "enum": [ + "partial", + "fail" + ], + "x-ms-enum": { + "name": "SemanticErrorMode", + "modelAsString": true, + "values": [ + { + "name": "Partial", + "value": "partial", + "description": "If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure." + }, + { + "name": "Fail", + "value": "fail", + "description": "If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error." + } + ] }, "x-ms-parameter-location": "method" }, - "IfMatchParameter": { - "name": "If-Match", - "in": "header", + "SearchOptions.semanticFields": { + "name": "semanticFields", + "in": "query", + "description": "The list of field names used for semantic ranking.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method" + }, + "SearchOptions.semanticMaxWaitInMilliseconds": { + "name": "semanticMaxWaitInMilliseconds", + "in": "query", + "description": "Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 700, + "x-ms-parameter-location": "method", + "x-nullable": true + }, + "SearchOptions.semanticQuery": { + "name": "semanticQuery", + "in": "query", + "description": "Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.", "required": false, "type": "string", - "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", "x-ms-parameter-location": "method" }, - "IfNoneMatchParameter": { - "name": "If-None-Match", - "in": "header", + "SearchOptions.sessionId": { + "name": "sessionId", + "in": "query", + "description": "A value to be used to create a sticky session, which can help to get more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.", "required": false, "type": "string", - "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", "x-ms-parameter-location": "method" }, - "PreferHeaderParameter": { - "name": "Prefer", - "in": "header", - "required": true, + "SearchOptions.skip": { + "name": "$skip", + "in": "query", + "description": "The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use $skip due to this limitation, consider using $orderby on a totally-ordered key and $filter with a range query instead.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method", + "x-ms-client-name": "skip" + }, + "SearchOptions.speller": { + "name": "speller", + "in": "query", + "description": "Improve search recall by spell-correcting individual search query terms.", + "required": false, "type": "string", "enum": [ - "return=representation" + "none", + "lexicon" ], - "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "x-ms-enum": { + "name": "QuerySpellerType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Speller not enabled." + }, + { + "name": "Lexicon", + "value": "lexicon", + "description": "Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter." + } + ] + }, "x-ms-parameter-location": "method" }, - "EndpointParameter": { - "name": "endpoint", - "in": "path", - "required": true, + "SearchOptions.top": { + "name": "$top", + "in": "query", + "description": "The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method", + "x-ms-client-name": "top" + }, + "SuggestOptions.filter": { + "name": "$filter", + "in": "query", + "description": "An OData expression that filters the documents considered for suggestions.", + "required": false, "type": "string", - "x-ms-skip-url-encoding": true, - "description": "The endpoint URL of the search service.", - "x-ms-parameter-location": "client" + "x-ms-parameter-location": "method", + "x-ms-client-name": "filter" }, - "DisableCacheReprocessingChangeDetectionParameter": { - "name": "disableCacheReprocessingChangeDetection", + "SuggestOptions.highlightPostTag": { + "name": "highlightPostTag", "in": "query", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled.", "required": false, - "type": "boolean", - "description": "Disables cache reprocessing change detection.", + "type": "string", "x-ms-parameter-location": "method" }, - "IgnoreResetRequirementsParameter": { - "name": "ignoreResetRequirements", - "x-ms-client-name": "skipIndexerResetRequirementForCache", + "SuggestOptions.highlightPreTag": { + "name": "highlightPreTag", "in": "query", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled.", "required": false, - "type": "boolean", - "description": "Ignores cache reset requirements.", + "type": "string", + "x-ms-parameter-location": "method" + }, + "SuggestOptions.minimumCoverage": { + "name": "minimumCoverage", + "in": "query", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestions query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.", + "required": false, + "type": "number", + "format": "double", + "x-ms-parameter-location": "method" + }, + "SuggestOptions.orderBy": { + "name": "$orderby", + "in": "query", + "description": "The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "orderBy" + }, + "SuggestOptions.searchFields": { + "name": "searchFields", + "in": "query", + "description": "The list of field names to search for the specified search text. Target fields must be included in the specified suggester.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", "x-ms-parameter-location": "method" + }, + "SuggestOptions.select": { + "name": "$select", + "in": "query", + "description": "The list of fields to retrieve. If unspecified, only the key field will be included in the results.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "select" + }, + "SuggestOptions.top": { + "name": "$top", + "in": "query", + "description": "The number of suggestions to retrieve. The value must be a number between 1 and 100. The default is 5.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method", + "x-ms-client-name": "top" + }, + "SuggestOptions.useFuzzyMatching": { + "name": "fuzzy", + "in": "query", + "description": "A value indicating whether to use fuzzy matching for the suggestions query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestions queries are slower and consume more resources.", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "x-ms-client-name": "useFuzzyMatching" } } } diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/searchindex.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/searchindex.json deleted file mode 100644 index 75acf68de84a..000000000000 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/searchindex.json +++ /dev/null @@ -1,3444 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "SearchIndexClient", - "description": "Client that can be used to query an index and upload, merge, or delete documents.", - "version": "2025-11-01-preview", - "x-ms-code-generation-settings": { - "useDateTimeOffset": true, - "syncMethods": "None" - } - }, - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}/indexes('{indexName}')", - "useSchemePrefix": false, - "parameters": [ - { - "$ref": "#/parameters/EndpointParameter" - }, - { - "$ref": "#/parameters/IndexNameParameter" - } - ] - }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/docs/$count": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_Count", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Count-Documents" - }, - "x-ms-examples": { - "SearchIndexCountDocuments": { - "$ref": "./examples/SearchIndexCountDocuments.json" - } - }, - "description": "Queries the number of documents in the index.", - "parameters": [ - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "", - "schema": { - "type": "integer", - "format": "int64" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_SearchGet", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Search-Documents" - }, - "x-ms-examples": { - "SearchIndexSearchDocumentsGet": { - "$ref": "./examples/SearchIndexSearchDocumentsGet.json" - }, - "SearchIndexSearchDocumentsSemanticGet": { - "$ref": "./examples/SearchIndexSearchDocumentsSemanticGet.json" - } - }, - "description": "Searches for documents in the index.", - "parameters": [ - { - "name": "search", - "in": "query", - "type": "string", - "description": "A full-text search query expression; Use \"*\" or omit this parameter to match all documents.", - "x-ms-client-name": "SearchText" - }, - { - "name": "$count", - "in": "query", - "type": "boolean", - "description": "A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.", - "x-nullable": false, - "x-ms-client-name": "IncludeTotalResultCount", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "facet", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "multi", - "description": "The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.", - "x-ms-client-name": "Facets", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "The OData $filter expression to apply to the search query.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "highlight", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.", - "x-ms-client-name": "HighlightFields", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "highlightPostTag", - "in": "query", - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "highlightPreTag", - "in": "query", - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "minimumCoverage", - "in": "query", - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$orderby", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, and desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no OrderBy is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", - "x-ms-client-name": "OrderBy", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "queryType", - "in": "query", - "type": "string", - "enum": [ - "simple", - "full", - "semantic" - ], - "x-ms-enum": { - "name": "QueryType", - "modelAsString": false, - "values": [ - { - "value": "simple", - "name": "Simple", - "description": "Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified." - }, - { - "value": "full", - "name": "Full", - "description": "Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features." - }, - { - "value": "semantic", - "name": "Semantic", - "description": "Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus." - } - ] - }, - "x-nullable": false, - "description": "A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "scoringParameter", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "multi", - "x-ms-client-name": "ScoringParameters", - "description": "The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "scoringProfile", - "in": "query", - "type": "string", - "description": "The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "searchFields", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "searchMode", - "in": "query", - "type": "string", - "enum": [ - "any", - "all" - ], - "x-ms-enum": { - "name": "SearchMode", - "modelAsString": false, - "values": [ - { - "value": "any", - "name": "Any", - "description": "Any of the search terms must be matched in order to count the document as a match." - }, - { - "value": "all", - "name": "All", - "description": "All of the search terms must be matched in order to count the document as a match." - } - ] - }, - "x-nullable": false, - "description": "A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "scoringStatistics", - "in": "query", - "type": "string", - "enum": [ - "local", - "global" - ], - "x-ms-enum": { - "name": "ScoringStatistics", - "modelAsString": false, - "values": [ - { - "value": "local", - "name": "Local", - "description": "The scoring statistics will be calculated locally for lower latency." - }, - { - "value": "global", - "name": "Global", - "description": "The scoring statistics will be calculated globally for more consistent scoring." - } - ] - }, - "x-nullable": false, - "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "sessionId", - "in": "query", - "type": "string", - "description": "A value to be used to create a sticky session, which can help to get more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$select", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$skip", - "in": "query", - "type": "integer", - "format": "int32", - "description": "The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use $skip due to this limitation, consider using $orderby on a totally-ordered key and $filter with a range query instead.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$top", - "in": "query", - "type": "integer", - "format": "int32", - "description": "The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "name": "semanticConfiguration", - "in": "query", - "type": "string", - "description": "The name of the semantic configuration that lists which fields should be used for semantic ranking, captions, highlights, and answers", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "semanticErrorHandling", - "in": "query", - "type": "string", - "enum": [ - "partial", - "fail" - ], - "x-ms-enum": { - "name": "SemanticErrorMode", - "modelAsString": true, - "values": [ - { - "value": "partial", - "name": "Partial", - "description": "If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure." - }, - { - "value": "fail", - "name": "Fail", - "description": "If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error." - } - ] - }, - "description": "Allows the user to choose whether a semantic call should fail completely, or to return partial results (default).", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "semanticMaxWaitInMilliseconds", - "in": "query", - "type": "integer", - "format": "int32", - "minimum": 700, - "description": "Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "answers", - "in": "query", - "type": "string", - "enum": [ - "none", - "extractive" - ], - "x-ms-enum": { - "name": "QueryAnswerType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not return answers for the query." - }, - { - "value": "extractive", - "name": "Extractive", - "description": "Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "captions", - "in": "query", - "type": "string", - "enum": [ - "none", - "extractive" - ], - "x-ms-enum": { - "name": "QueryCaptionType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not return captions for the query." - }, - { - "value": "extractive", - "name": "Extractive", - "description": "Extracts captions from the matching documents that contain passages relevant to the search query." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "semanticQuery", - "in": "query", - "type": "string", - "description": "Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "queryRewrites", - "in": "query", - "type": "string", - "enum": [ - "none", - "generative" - ], - "x-ms-enum": { - "name": "QueryRewritesType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not generate additional query rewrites for this query." - }, - { - "value": "generative", - "name": "Generative", - "description": "Generate alternative query terms to increase the recall of a search request." - } - ] - }, - "description": "When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`. This parameter is only valid if the query type is `semantic`.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "debug", - "in": "query", - "type": "string", - "enum": [ - "disabled", - "semantic", - "vector", - "queryRewrites", - "innerHits", - "all" - ], - "x-ms-enum": { - "name": "QueryDebugMode", - "modelAsString": true, - "values": [ - { - "value": "disabled", - "name": "Disabled", - "description": "No query debugging information will be returned." - }, - { - "value": "semantic", - "name": "Semantic", - "description": "Allows the user to further explore their reranked results." - }, - { - "value": "vector", - "name": "Vector", - "description": "Allows the user to further explore their hybrid and vector query results." - }, - { - "value": "queryRewrites", - "name": "QueryRewrites", - "description": "Allows the user to explore the list of query rewrites generated for their search request." - }, - { - "value": "innerHits", - "name": "InnerHits", - "description": "Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types." - }, - { - "value": "all", - "name": "All", - "description": "Turn on all debug options." - } - ] - }, - "description": "Enables a debugging tool that can be used to further explore your search results.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "queryLanguage", - "in": "query", - "type": "string", - "enum": [ - "none", - "en-us" - ], - "x-ms-enum": { - "name": "QueryLanguage", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Query language not specified." - }, - { - "value": "en-us", - "name": "EnUs", - "description": "English (US)" - } - ] - }, - "description": "The language of the query.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "speller", - "in": "query", - "type": "string", - "enum": [ - "none", - "lexicon" - ], - "x-ms-enum": { - "name": "QuerySpellerType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Speller not enabled." - }, - { - "value": "lexicon", - "name": "Lexicon", - "description": "Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter." - } - ] - }, - "description": "Improve search recall by spell-correcting individual search query terms.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "semanticFields", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names used for semantic ranking.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "$ref": "#/parameters/QuerySourceAuthorizationParameter" - }, - { - "$ref": "#/parameters/EnableElevatedReadParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing documents that match the search criteria.", - "schema": { - "$ref": "#/definitions/SearchDocumentsResult" - } - }, - "206": { - "description": "Response containing partial documents that match the search criteria.", - "schema": { - "$ref": "#/definitions/SearchDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.post.search": { - "post": { - "tags": [ - "Documents" - ], - "operationId": "Documents_SearchPost", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Search-Documents" - }, - "x-ms-examples": { - "SearchIndexSearchDocumentsPost": { - "$ref": "./examples/SearchIndexSearchDocumentsPost.json" - }, - "SearchIndexSearchDocumentsSemanticPost": { - "$ref": "./examples/SearchIndexSearchDocumentsSemanticPost.json" - } - }, - "description": "Searches for documents in the index.", - "parameters": [ - { - "name": "searchRequest", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchRequest", - "description": "The Search request." - }, - "description": "The definition of the Search request." - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/QuerySourceAuthorizationParameter" - }, - { - "$ref": "#/parameters/EnableElevatedReadParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing documents that match the search criteria.", - "schema": { - "$ref": "#/definitions/SearchDocumentsResult" - } - }, - "206": { - "description": "Response containing partial documents that match the search criteria.", - "schema": { - "$ref": "#/definitions/SearchDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs('{key}')": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_Get", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/lookup-document" - }, - "x-ms-examples": { - "SearchIndexGetDocument": { - "$ref": "./examples/SearchIndexGetDocument.json" - } - }, - "description": "Retrieves a document from the index.", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "description": "The key of the document to retrieve.", - "type": "string" - }, - { - "name": "$select", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "List of field names to retrieve for the document; Any field not retrieved will be missing from the returned document.", - "x-ms-client-name": "SelectedFields" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/QuerySourceAuthorizationParameter" - }, - { - "$ref": "#/parameters/EnableElevatedReadParameter" - } - ], - "responses": { - "200": { - "description": "Response containing the requested document.", - "schema": { - "$ref": "#/definitions/LookupDocument" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.suggest": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_SuggestGet", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/suggestions" - }, - "x-ms-examples": { - "SearchIndexSuggestDocumentsGet": { - "$ref": "./examples/SearchIndexSuggestDocumentsGet.json" - } - }, - "description": "Suggests documents in the index that match the given partial query text.", - "parameters": [ - { - "name": "search", - "in": "query", - "required": true, - "type": "string", - "description": "The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.", - "x-ms-client-name": "SearchText" - }, - { - "name": "suggesterName", - "in": "query", - "required": true, - "type": "string", - "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "An OData expression that filters the documents considered for suggestions.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "fuzzy", - "in": "query", - "type": "boolean", - "description": "A value indicating whether to use fuzzy matching for the suggestions query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestions queries are slower and consume more resources.", - "x-ms-client-name": "UseFuzzyMatching", - "x-nullable": false, - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "highlightPostTag", - "in": "query", - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "highlightPreTag", - "in": "query", - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "minimumCoverage", - "in": "query", - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestions query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "$orderby", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "x-ms-client-name": "OrderBy", - "description": "The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "searchFields", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names to search for the specified search text. Target fields must be included in the specified suggester.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "$select", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of fields to retrieve. If unspecified, only the key field will be included in the results.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "$top", - "in": "query", - "type": "integer", - "format": "int32", - "description": "The number of suggestions to retrieve. The value must be a number between 1 and 100. The default is 5.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing suggested documents that match the partial input.", - "schema": { - "$ref": "#/definitions/SuggestDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.post.suggest": { - "post": { - "tags": [ - "Documents" - ], - "operationId": "Documents_SuggestPost", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/suggestions" - }, - "x-ms-examples": { - "SearchIndexSuggestDocumentsPost": { - "$ref": "./examples/SearchIndexSuggestDocumentsPost.json" - } - }, - "description": "Suggests documents in the index that match the given partial query text.", - "parameters": [ - { - "name": "suggestRequest", - "in": "body", - "required": true, - "description": "The Suggest request.", - "schema": { - "$ref": "#/definitions/SuggestRequest" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing suggested documents that match the partial input.", - "schema": { - "$ref": "#/definitions/SuggestDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.index": { - "post": { - "tags": [ - "Documents" - ], - "operationId": "Documents_Index", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/addupdate-or-delete-documents" - }, - "x-ms-examples": { - "SearchIndexIndexDocuments": { - "$ref": "./examples/SearchIndexIndexDocuments.json" - } - }, - "description": "Sends a batch of document write actions to the index.", - "parameters": [ - { - "name": "batch", - "in": "body", - "description": "The batch of index actions.", - "required": true, - "schema": { - "$ref": "#/definitions/IndexBatch" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing the status of operations for all actions in the batch.", - "schema": { - "$ref": "#/definitions/IndexDocumentsResult" - } - }, - "207": { - "description": "Response containing the status of operations for all actions in the batch.", - "schema": { - "$ref": "#/definitions/IndexDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.autocomplete": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_AutocompleteGet", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/autocomplete" - }, - "x-ms-examples": { - "SearchIndexAutocompleteDocumentsGet": { - "$ref": "./examples/SearchIndexAutocompleteDocumentsGet.json" - } - }, - "description": "Autocompletes incomplete query terms based on input text and matching terms in the index.", - "parameters": [ - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "name": "search", - "in": "query", - "type": "string", - "required": true, - "description": "The incomplete term which should be auto-completed.", - "x-ms-client-name": "SearchText" - }, - { - "name": "suggesterName", - "in": "query", - "type": "string", - "required": true, - "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." - }, - { - "name": "autocompleteMode", - "in": "query", - "type": "string", - "x-nullable": false, - "enum": [ - "oneTerm", - "twoTerms", - "oneTermWithContext" - ], - "x-ms-enum": { - "name": "AutocompleteMode", - "modelAsString": false, - "values": [ - { - "value": "oneTerm", - "name": "OneTerm", - "description": "Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'." - }, - { - "value": "twoTerms", - "name": "TwoTerms", - "description": "Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'." - }, - { - "value": "oneTermWithContext", - "name": "OneTermWithContext", - "description": "Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'." - } - ] - }, - "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "An OData expression that filters the documents used to produce completed terms for the Autocomplete result.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "fuzzy", - "in": "query", - "type": "boolean", - "description": "A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.", - "x-ms-client-name": "UseFuzzyMatching", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "highlightPostTag", - "in": "query", - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "highlightPreTag", - "in": "query", - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "minimumCoverage", - "in": "query", - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "searchFields", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "$top", - "in": "query", - "type": "integer", - "format": "int32", - "description": "The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing suggested query terms that complete the partial input.", - "schema": { - "$ref": "#/definitions/AutocompleteResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.post.autocomplete": { - "post": { - "tags": [ - "Documents" - ], - "operationId": "Documents_AutocompletePost", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/autocomplete" - }, - "x-ms-examples": { - "SearchIndexAutocompleteDocumentsPost": { - "$ref": "./examples/SearchIndexAutocompleteDocumentsPost.json" - } - }, - "description": "Autocompletes incomplete query terms based on input text and matching terms in the index.", - "parameters": [ - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "name": "autocompleteRequest", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/AutocompleteRequest" - }, - "description": "The definition of the Autocomplete request." - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing suggested query terms that complete the partial input.", - "schema": { - "$ref": "#/definitions/AutocompleteResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - } - }, - "definitions": { - "SuggestDocumentsResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SuggestResult" - }, - "readOnly": true, - "x-ms-client-name": "Results", - "description": "The sequence of results returned by the query." - }, - "@search.coverage": { - "type": "number", - "readOnly": true, - "format": "double", - "x-ms-client-name": "Coverage", - "description": "A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not set in the request." - } - }, - "required": [ - "value" - ], - "description": "Response containing suggestion query results from an index." - }, - "SuggestResult": { - "type": "object", - "properties": { - "@search.text": { - "type": "string", - "readOnly": true, - "description": "The text of the suggestion result.", - "x-ms-client-name": "Text" - } - }, - "required": [ - "@search.text" - ], - "additionalProperties": true, - "description": "A result containing a document found by a suggestion query, plus associated metadata." - }, - "SearchFacetsResult": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/definitions/FacetResult" - } - }, - "readOnly": true - }, - "FacetResult": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "The approximate count of documents falling within the bucket described by this facet." - }, - "avg": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The resulting total avg for the facet when a avg metric is requested." - }, - "min": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The resulting total min for the facet when a min metric is requested." - }, - "max": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The resulting total max for the facet when a max metric is requested." - }, - "sum": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The resulting total sum for the facet when a sum metric is requested." - }, - "cardinality": { - "type": "number", - "format": "int64", - "readOnly": true, - "description": "The resulting total cardinality for the facet when a cardinality metric is requested." - }, - "@search.facets": { - "$ref": "#/definitions/SearchFacetsResult", - "readOnly": true, - "x-ms-client-name": "Facets", - "description": "The nested facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not contain any nested facets." - } - }, - "additionalProperties": true, - "description": "A single bucket of a facet query result. Reports the number of documents with a field value falling within a particular range or having a particular value or interval." - }, - "SearchDocumentsResult": { - "type": "object", - "properties": { - "@odata.count": { - "type": "integer", - "format": "int64", - "readOnly": true, - "x-ms-client-name": "Count", - "description": "The total count of results found by the search operation, or null if the count was not requested. If present, the count may be greater than the number of results in this response. This can happen if you use the $top or $skip parameters, or if the query can't return all the requested documents in a single response." - }, - "@search.coverage": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "Coverage", - "description": "A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not specified in the request." - }, - "@search.facets": { - "$ref": "#/definitions/SearchFacetsResult", - "readOnly": true, - "x-ms-client-name": "Facets", - "description": "The facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not include any facet expressions." - }, - "@search.answers": { - "type": "array", - "items": { - "$ref": "#/definitions/AnswerResult" - }, - "readOnly": true, - "x-ms-client-name": "Answers", - "x-nullable": true, - "description": "The answers query results for the search operation; null if the answers query parameter was not specified or set to 'none'." - }, - "@search.debug": { - "$ref": "#/definitions/DebugInfo", - "readOnly": true, - "x-ms-client-name": "DebugInfo", - "x-nullable": true, - "description": "Debug information that applies to the search results as a whole." - }, - "@search.nextPageParameters": { - "$ref": "#/definitions/SearchRequest", - "readOnly": true, - "x-ms-client-name": "NextPageParameters", - "description": "Continuation JSON payload returned when the query can't return all the requested results in a single response. You can use this JSON along with @odata.nextLink to formulate another POST Search request to get the next part of the search response." - }, - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchResult" - }, - "readOnly": true, - "x-ms-client-name": "Results", - "description": "The sequence of results returned by the query." - }, - "@odata.nextLink": { - "type": "string", - "readOnly": true, - "x-ms-client-name": "NextLink", - "description": "Continuation URL returned when the query can't return all the requested results in a single response. You can use this URL to formulate another GET or POST Search request to get the next part of the search response. Make sure to use the same verb (GET or POST) as the request that produced this response." - }, - "@search.semanticPartialResponseReason": { - "$ref": "#/definitions/SemanticPartialResponseReason", - "readOnly": true, - "x-ms-client-name": "SemanticPartialResponseReason", - "description": "Reason that a partial response was returned for a semantic ranking request." - }, - "@search.semanticPartialResponseType": { - "$ref": "#/definitions/SemanticPartialResponseType", - "readOnly": true, - "x-ms-client-name": "SemanticPartialResponseType", - "description": "Type of partial response that was returned for a semantic ranking request." - }, - "@search.semanticQueryRewritesResultType": { - "$ref": "#/definitions/SemanticQueryRewritesResultType", - "readOnly": true, - "x-ms-client-name": "SemanticQueryRewritesResultType", - "description": "Type of query rewrite that was used to retrieve documents." - } - }, - "required": [ - "value" - ], - "description": "Response containing search results from an index." - }, - "SearchResult": { - "type": "object", - "properties": { - "@search.score": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "Score", - "x-nullable": false, - "description": "The relevance score of the document compared to other documents returned by the query." - }, - "@search.rerankerScore": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "RerankerScore", - "x-nullable": true, - "description": "The relevance score computed by the semantic ranker for the top search results. Search results are sorted by the RerankerScore first and then by the Score. RerankerScore is only returned for queries of type 'semantic'." - }, - "@search.rerankerBoostedScore": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "RerankerBoostedScore", - "x-nullable": true, - "description": "The relevance score computed by boosting the Reranker Score. Search results are sorted by the RerankerScore/RerankerBoostedScore based on useScoringProfileBoostedRanking in the Semantic Config. RerankerBoostedScore is only returned for queries of type 'semantic'" - }, - "@search.highlights": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "readOnly": true, - "x-ms-client-name": "Highlights", - "description": "Text fragments from the document that indicate the matching search terms, organized by each applicable field; null if hit highlighting was not enabled for the query." - }, - "@search.captions": { - "type": "array", - "items": { - "$ref": "#/definitions/CaptionResult" - }, - "readOnly": true, - "x-ms-client-name": "Captions", - "x-nullable": true, - "description": "Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type 'semantic'." - }, - "@search.documentDebugInfo": { - "$ref": "#/definitions/DocumentDebugInfo", - "readOnly": true, - "x-ms-client-name": "DocumentDebugInfo", - "x-nullable": true, - "description": "Contains debugging information that can be used to further explore your search results." - } - }, - "required": [ - "@search.score" - ], - "additionalProperties": true, - "description": "Contains a document found by a search query, plus associated metadata." - }, - "LookupDocument": { - "type": "object", - "additionalProperties": true, - "description": "A document retrieved via a document lookup operation." - }, - "IndexBatch": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/IndexAction" - }, - "description": "The actions in the batch.", - "x-ms-client-name": "Actions" - } - }, - "required": [ - "value" - ], - "description": "Contains a batch of document write actions to send to the index." - }, - "IndexAction": { - "type": "object", - "properties": { - "@search.action": { - "type": "string", - "enum": [ - "upload", - "merge", - "mergeOrUpload", - "delete" - ], - "x-ms-enum": { - "name": "IndexActionType", - "modelAsString": false, - "values": [ - { - "value": "upload", - "name": "Upload", - "description": "Inserts the document into the index if it is new and updates it if it exists. All fields are replaced in the update case." - }, - { - "value": "merge", - "name": "Merge", - "description": "Merges the specified field values with an existing document. If the document does not exist, the merge will fail. Any field you specify in a merge will replace the existing field in the document. This also applies to collections of primitive and complex types." - }, - { - "value": "mergeOrUpload", - "name": "MergeOrUpload", - "description": "Behaves like merge if a document with the given key already exists in the index. If the document does not exist, it behaves like upload with a new document." - }, - { - "value": "delete", - "name": "Delete", - "description": "Removes the specified document from the index. Any field you specify in a delete operation other than the key field will be ignored. If you want to remove an individual field from a document, use merge instead and set the field explicitly to null." - } - ] - }, - "x-ms-client-name": "ActionType", - "x-nullable": false, - "description": "The operation to perform on a document in an indexing batch." - } - }, - "additionalProperties": true, - "description": "Represents an index action that operates on a document." - }, - "IndexingResult": { - "type": "object", - "properties": { - "key": { - "type": "string", - "readOnly": true, - "description": "The key of a document that was in the indexing request." - }, - "errorMessage": { - "type": "string", - "readOnly": true, - "description": "The error message explaining why the indexing operation failed for the document identified by the key; null if indexing succeeded." - }, - "status": { - "x-ms-client-name": "Succeeded", - "type": "boolean", - "x-nullable": false, - "readOnly": true, - "description": "A value indicating whether the indexing operation succeeded for the document identified by the key." - }, - "statusCode": { - "type": "integer", - "format": "int32", - "x-nullable": false, - "readOnly": true, - "description": "The status code of the indexing operation. Possible values include: 200 for a successful update or delete, 201 for successful document creation, 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy." - } - }, - "required": [ - "key", - "status", - "statusCode" - ], - "description": "Status of an indexing operation for a single document." - }, - "IndexDocumentsResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Results", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/IndexingResult" - }, - "description": "The list of status information for each document in the indexing request." - } - }, - "required": [ - "value" - ], - "description": "Response containing the status of operations for all documents in the indexing request." - }, - "QueryDebugMode": { - "type": "string", - "enum": [ - "disabled", - "semantic", - "vector", - "queryRewrites", - "innerHits", - "all" - ], - "x-ms-enum": { - "name": "QueryDebugMode", - "modelAsString": true, - "values": [ - { - "value": "disabled", - "name": "Disabled", - "description": "No query debugging information will be returned." - }, - { - "value": "semantic", - "name": "Semantic", - "description": "Allows the user to further explore their reranked results." - }, - { - "value": "vector", - "name": "Vector", - "description": "Allows the user to further explore their hybrid and vector query results." - }, - { - "value": "queryRewrites", - "name": "QueryRewrites", - "description": "Allows the user to explore the list of query rewrites generated for their search request." - }, - { - "value": "innerHits", - "name": "InnerHits", - "description": "Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types." - }, - { - "value": "all", - "name": "All", - "description": "Turn on all debug options." - } - ] - }, - "description": "Enables a debugging tool that can be used to further explore your search results. You can enable multiple debug modes simultaneously by separating them with a | character, for example: semantic|queryRewrites." - }, - "SearchMode": { - "type": "string", - "enum": [ - "any", - "all" - ], - "x-ms-enum": { - "name": "SearchMode", - "modelAsString": false, - "values": [ - { - "value": "any", - "name": "Any", - "description": "Any of the search terms must be matched in order to count the document as a match." - }, - { - "value": "all", - "name": "All", - "description": "All of the search terms must be matched in order to count the document as a match." - } - ] - }, - "description": "Specifies whether any or all of the search terms must be matched in order to count the document as a match." - }, - "QueryType": { - "type": "string", - "enum": [ - "simple", - "full", - "semantic" - ], - "x-ms-enum": { - "name": "QueryType", - "modelAsString": false, - "values": [ - { - "value": "simple", - "name": "Simple", - "description": "Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified." - }, - { - "value": "full", - "name": "Full", - "description": "Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features." - }, - { - "value": "semantic", - "name": "Semantic", - "description": "Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus." - } - ] - }, - "description": "Specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax and 'semantic' if query syntax is not needed." - }, - "Speller": { - "type": "string", - "enum": [ - "none", - "lexicon" - ], - "x-ms-enum": { - "name": "QuerySpellerType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Speller not enabled." - }, - { - "value": "lexicon", - "name": "Lexicon", - "description": "Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter." - } - ] - }, - "description": "Improve search recall by spell-correcting individual search query terms." - }, - "VectorQuery": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/VectorQueryKind", - "description": "The kind of vector query being performed.", - "x-nullable": false - }, - "k": { - "type": "integer", - "format": "int32", - "description": "Number of nearest neighbors to return as top hits." - }, - "fields": { - "type": "string", - "description": "Vector Fields of type Collection(Edm.Single) to be included in the vector searched." - }, - "exhaustive": { - "type": "boolean", - "description": "When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values." - }, - "oversampling": { - "type": "number", - "format": "double", - "description": "Oversampling factor. Minimum value is 1. It overrides the 'defaultOversampling' parameter configured in the index definition. It can be set only when 'rerankWithOriginalVectors' is true. This parameter is only permitted when a compression method is used on the underlying vector field." - }, - "weight": { - "type": "number", - "format": "float", - "description": "Relative weight of the vector query when compared to other vector query and/or the text query within the same search request. This value is used when combining the results of multiple ranking lists produced by the different vector queries and/or the results retrieved through the text query. The higher the weight, the higher the documents that matched that query will be in the final ranking. Default is 1.0 and the value needs to be a positive number larger than zero. " - }, - "threshold": { - "$ref": "#/definitions/VectorThreshold", - "description": "The threshold used for vector queries. Note this can only be set if all 'fields' use the same similarity metric." - }, - "filterOverride": { - "type": "string", - "description": "The OData filter expression to apply to this specific vector query. If no filter expression is defined at the vector level, the expression defined in the top level filter parameter is used instead." - }, - "perDocumentVectorLimit": { - "type": "integer", - "format": "int32", - "description": "Controls how many vectors can be matched from each document in a vector search query. Setting it to 1 ensures at most one vector per document is matched, guaranteeing results come from distinct documents. Setting it to 0 (unlimited) allows multiple relevant vectors from the same document to be matched. Default is 0." - } - }, - "required": [ - "kind" - ], - "description": "The query parameters for vector and hybrid search queries." - }, - "RawVectorQuery": { - "type": "object", - "x-ms-client-name": "VectorizedQuery", - "x-ms-discriminator-value": "vector", - "allOf": [ - { - "$ref": "#/definitions/VectorQuery" - } - ], - "properties": { - "vector": { - "type": "array", - "items": { - "type": "number", - "format": "float" - }, - "description": "The vector representation of a search query." - } - }, - "required": [ - "vector" - ], - "description": "The query parameters to use for vector search when a raw vector value is provided." - }, - "VectorizableTextQuery": { - "type": "object", - "x-ms-discriminator-value": "text", - "allOf": [ - { - "$ref": "#/definitions/VectorQuery" - } - ], - "properties": { - "text": { - "type": "string", - "description": "The text to be vectorized to perform a vector search query." - }, - "queryRewrites": { - "$ref": "#/definitions/QueryRewrites", - "description": "Can be configured to let a generative model rewrite the query before sending it to be vectorized." - } - }, - "required": [ - "text" - ], - "description": "The query parameters to use for vector search when a text value that needs to be vectorized is provided." - }, - "VectorizableImageUrlQuery": { - "type": "object", - "x-ms-discriminator-value": "imageUrl", - "allOf": [ - { - "$ref": "#/definitions/VectorQuery" - } - ], - "properties": { - "url": { - "type": "string", - "description": "The URL of an image to be vectorized to perform a vector search query." - } - }, - "description": "The query parameters to use for vector search when an url that represents an image value that needs to be vectorized is provided." - }, - "VectorizableImageBinaryQuery": { - "type": "object", - "x-ms-discriminator-value": "imageBinary", - "allOf": [ - { - "$ref": "#/definitions/VectorQuery" - } - ], - "properties": { - "base64Image": { - "type": "string", - "description": "The base 64 encoded binary of an image to be vectorized to perform a vector search query." - } - }, - "description": "The query parameters to use for vector search when a base 64 encoded binary of an image that needs to be vectorized is provided." - }, - "VectorQueryKind": { - "type": "string", - "enum": [ - "vector", - "text", - "imageUrl", - "imageBinary" - ], - "x-ms-enum": { - "name": "VectorQueryKind", - "modelAsString": true, - "values": [ - { - "value": "vector", - "name": "Vector", - "description": "Vector query where a raw vector value is provided." - }, - { - "value": "text", - "name": "Text", - "description": "Vector query where a text value that needs to be vectorized is provided." - }, - { - "value": "imageUrl", - "name": "ImageUrl", - "description": "Vector query where an url that represents an image value that needs to be vectorized is provided." - }, - { - "value": "imageBinary", - "name": "ImageBinary", - "description": "Vector query where a base 64 encoded binary of an image that needs to be vectorized is provided." - } - ] - }, - "description": "The kind of vector query being performed." - }, - "VectorThreshold": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/VectorThresholdKind", - "description": "The kind of threshold used to filter vector queries", - "x-nullable": false - } - }, - "required": [ - "kind" - ], - "description": "The threshold used for vector queries." - }, - "VectorSimilarityThreshold": { - "type": "object", - "x-ms-discriminator-value": "vectorSimilarity", - "allOf": [ - { - "$ref": "#/definitions/VectorThreshold" - } - ], - "properties": { - "value": { - "type": "number", - "format": "double", - "description": "The threshold will filter based on the similarity metric value. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." - } - }, - "required": [ - "value" - ], - "description": "The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." - }, - "SearchScoreThreshold": { - "type": "object", - "x-ms-discriminator-value": "searchScore", - "allOf": [ - { - "$ref": "#/definitions/VectorThreshold" - } - ], - "properties": { - "value": { - "type": "number", - "format": "double", - "description": "The threshold will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." - } - }, - "required": [ - "value" - ], - "description": "The results of the vector query will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." - }, - "VectorThresholdKind": { - "type": "string", - "enum": [ - "vectorSimilarity", - "searchScore" - ], - "x-ms-enum": { - "name": "VectorThresholdKind", - "modelAsString": true, - "values": [ - { - "value": "vectorSimilarity", - "name": "VectorSimilarity", - "description": "The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." - }, - { - "value": "searchScore", - "name": "SearchScore", - "description": "The results of the vector query will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." - } - ] - }, - "description": "The kind of vector query being performed." - }, - "VectorFilterMode": { - "type": "string", - "enum": [ - "postFilter", - "preFilter", - "strictPostFilter" - ], - "x-ms-enum": { - "name": "VectorFilterMode", - "modelAsString": true, - "values": [ - { - "value": "postFilter", - "name": "PostFilter", - "description": "The filter will be applied after the candidate set of vector results is returned. Depending on the filter selectivity, this can result in fewer results than requested by the parameter 'k'." - }, - { - "value": "preFilter", - "name": "PreFilter", - "description": "The filter will be applied before the search query." - }, - { - "value": "strictPostFilter", - "name": "StrictPostFilter", - "description": "The filter will be applied after the global top-k candidate set of vector results is returned. This will result in fewer results than requested by the parameter 'k'." - } - ] - }, - "description": "Determines whether or not filters are applied before or after the vector search is performed." - }, - "HybridSearch": { - "type": "object", - "properties": { - "maxTextRecallSize": { - "type": "integer", - "format": "int32", - "description": "Determines the maximum number of documents to be retrieved by the text query portion of a hybrid search request. Those documents will be combined with the documents matching the vector queries to produce a single final list of results. Choosing a larger maxTextRecallSize value will allow retrieving and paging through more documents (using the top and skip parameters), at the cost of higher resource utilization and higher latency. The value needs to be between 1 and 10,000. Default is 1000." - }, - "countAndFacetMode": { - "$ref": "#/definitions/HybridCountAndFacetMode", - "description": "Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window." - } - }, - "description": "TThe query parameters to configure hybrid search behaviors." - }, - "HybridCountAndFacetMode": { - "type": "string", - "enum": [ - "countRetrievableResults", - "countAllResults" - ], - "x-ms-enum": { - "name": "HybridCountAndFacetMode", - "modelAsString": true, - "values": [ - { - "value": "countRetrievableResults", - "name": "CountRetrievableResults", - "description": "Only include documents that were matched within the 'maxTextRecallSize' retrieval window when computing 'count' and 'facets'." - }, - { - "value": "countAllResults", - "name": "CountAllResults", - "description": "Include all documents that were matched by the search query when computing 'count' and 'facets', regardless of whether or not those documents are within the 'maxTextRecallSize' retrieval window." - } - ] - }, - "description": "Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window. The default value is 'countAllResults'." - }, - "QueryLanguage": { - "type": "string", - "enum": [ - "none", - "en-us", - "en-gb", - "en-in", - "en-ca", - "en-au", - "fr-fr", - "fr-ca", - "de-de", - "es-es", - "es-mx", - "zh-cn", - "zh-tw", - "pt-br", - "pt-pt", - "it-it", - "ja-jp", - "ko-kr", - "ru-ru", - "cs-cz", - "nl-be", - "nl-nl", - "hu-hu", - "pl-pl", - "sv-se", - "tr-tr", - "hi-in", - "ar-sa", - "ar-eg", - "ar-ma", - "ar-kw", - "ar-jo", - "da-dk", - "no-no", - "bg-bg", - "hr-hr", - "hr-ba", - "ms-my", - "ms-bn", - "sl-sl", - "ta-in", - "vi-vn", - "el-gr", - "ro-ro", - "is-is", - "id-id", - "th-th", - "lt-lt", - "uk-ua", - "lv-lv", - "et-ee", - "ca-es", - "fi-fi", - "sr-ba", - "sr-me", - "sr-rs", - "sk-sk", - "nb-no", - "hy-am", - "bn-in", - "eu-es", - "gl-es", - "gu-in", - "he-il", - "ga-ie", - "kn-in", - "ml-in", - "mr-in", - "fa-ae", - "pa-in", - "te-in", - "ur-pk" - ], - "x-ms-enum": { - "name": "QueryLanguage", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Query language not specified." - }, - { - "value": "en-us", - "name": "EnUs", - "description": "Query language value for English (United States)." - }, - { - "value": "en-gb", - "name": "EnGb", - "description": "Query language value for English (Great Britain)." - }, - { - "value": "en-in", - "name": "EnIn", - "description": "Query language value for English (India)." - }, - { - "value": "en-ca", - "name": "EnCa", - "description": "Query language value for English (Canada)." - }, - { - "value": "en-au", - "name": "EnAu", - "description": "Query language value for English (Australia)." - }, - { - "value": "fr-fr", - "name": "FrFr", - "description": "Query language value for French (France)." - }, - { - "value": "fr-ca", - "name": "FrCa", - "description": "Query language value for French (Canada)." - }, - { - "value": "de-de", - "name": "DeDe", - "description": "Query language value for German (Germany)." - }, - { - "value": "es-es", - "name": "EsEs", - "description": "Query language value for Spanish (Spain)." - }, - { - "value": "es-mx", - "name": "EsMx", - "description": "Query language value for Spanish (Mexico)." - }, - { - "value": "zh-cn", - "name": "ZhCn", - "description": "Query language value for Chinese (China)." - }, - { - "value": "zh-tw", - "name": "ZhTw", - "description": "Query language value for Chinese (Taiwan)." - }, - { - "value": "pt-br", - "name": "PtBr", - "description": "Query language value for Portuguese (Brazil)." - }, - { - "value": "pt-pt", - "name": "PtPt", - "description": "Query language value for Portuguese (Portugal)." - }, - { - "value": "it-it", - "name": "ItIt", - "description": "Query language value for Italian (Italy)." - }, - { - "value": "ja-jp", - "name": "JaJp", - "description": "Query language value for Japanese (Japan)." - }, - { - "value": "ko-kr", - "name": "KoKr", - "description": "Query language value for Korean (Korea)." - }, - { - "value": "ru-ru", - "name": "RuRu", - "description": "Query language value for Russian (Russia)." - }, - { - "value": "cs-cz", - "name": "CsCz", - "description": "Query language value for Czech (Czech Republic)." - }, - { - "value": "nl-be", - "name": "NlBe", - "description": "Query language value for Dutch (Belgium)." - }, - { - "value": "nl-nl", - "name": "NlNl", - "description": "Query language value for Dutch (Netherlands)." - }, - { - "value": "hu-hu", - "name": "HuHu", - "description": "Query language value for Hungarian (Hungary)." - }, - { - "value": "pl-pl", - "name": "PlPl", - "description": "Query language value for Polish (Poland)." - }, - { - "value": "sv-se", - "name": "SvSe", - "description": "Query language value for Swedish (Sweden)." - }, - { - "value": "tr-tr", - "name": "TrTr", - "description": "Query language value for Turkish (Turkey)." - }, - { - "value": "hi-in", - "name": "HiIn", - "description": "Query language value for Hindi (India)." - }, - { - "value": "ar-sa", - "name": "ArSa", - "description": "Query language value for Arabic (Saudi Arabia)." - }, - { - "value": "ar-eg", - "name": "ArEg", - "description": "Query language value for Arabic (Egypt)." - }, - { - "value": "ar-ma", - "name": "ArMa", - "description": "Query language value for Arabic (Morocco)." - }, - { - "value": "ar-kw", - "name": "ArKw", - "description": "Query language value for Arabic (Kuwait)." - }, - { - "value": "ar-jo", - "name": "ArJo", - "description": "Query language value for Arabic (Jordan)." - }, - { - "value": "da-dk", - "name": "DaDk", - "description": "Query language value for Danish (Denmark)." - }, - { - "value": "no-no", - "name": "NoNo", - "description": "Query language value for Norwegian (Norway)." - }, - { - "value": "bg-bg", - "name": "BgBg", - "description": "Query language value for Bulgarian (Bulgaria)." - }, - { - "value": "hr-hr", - "name": "HrHr", - "description": "Query language value for Croatian (Croatia)." - }, - { - "value": "hr-ba", - "name": "HrBa", - "description": "Query language value for Croatian (Bosnia and Herzegovina)." - }, - { - "value": "ms-my", - "name": "MsMy", - "description": "Query language value for Malay (Malaysia)." - }, - { - "value": "ms-bn", - "name": "MsBn", - "description": "Query language value for Malay (Brunei Darussalam)." - }, - { - "value": "sl-sl", - "name": "SlSl", - "description": "Query language value for Slovenian (Slovenia)." - }, - { - "value": "ta-in", - "name": "TaIn", - "description": "Query language value for Tamil (India)." - }, - { - "value": "vi-vn", - "name": "ViVn", - "description": "Query language value for Vietnamese (Viet Nam)." - }, - { - "value": "el-gr", - "name": "ElGr", - "description": "Query language value for Greek (Greece)." - }, - { - "value": "ro-ro", - "name": "RoRo", - "description": "Query language value for Romanian (Romania)." - }, - { - "value": "is-is", - "name": "IsIs", - "description": "Query language value for Icelandic (Iceland)." - }, - { - "value": "id-id", - "name": "IdId", - "description": "Query language value for Indonesian (Indonesia)." - }, - { - "value": "th-th", - "name": "ThTh", - "description": "Query language value for Thai (Thailand)." - }, - { - "value": "lt-lt", - "name": "LtLt", - "description": "Query language value for Lithuanian (Lithuania)." - }, - { - "value": "uk-ua", - "name": "UkUa", - "description": "Query language value for Ukrainian (Ukraine)." - }, - { - "value": "lv-lv", - "name": "LvLv", - "description": "Query language value for Latvian (Latvia)." - }, - { - "value": "et-ee", - "name": "EtEe", - "description": "Query language value for Estonian (Estonia)." - }, - { - "value": "ca-es", - "name": "CaEs", - "description": "Query language value for Catalan." - }, - { - "value": "fi-fi", - "name": "FiFi", - "description": "Query language value for Finnish (Finland)." - }, - { - "value": "sr-ba", - "name": "SrBa", - "description": "Query language value for Serbian (Bosnia and Herzegovina)." - }, - { - "value": "sr-me", - "name": "SrMe", - "description": "Query language value for Serbian (Montenegro)." - }, - { - "value": "sr-rs", - "name": "SrRs", - "description": "Query language value for Serbian (Serbia)." - }, - { - "value": "sk-sk", - "name": "SkSk", - "description": "Query language value for Slovak (Slovakia)." - }, - { - "value": "nb-no", - "name": "NbNo", - "description": "Query language value for Norwegian (Norway)." - }, - { - "value": "hy-am", - "name": "HyAm", - "description": "Query language value for Armenian (Armenia)." - }, - { - "value": "bn-in", - "name": "BnIn", - "description": "Query language value for Bengali (India)." - }, - { - "value": "eu-es", - "name": "EuEs", - "description": "Query language value for Basque." - }, - { - "value": "gl-es", - "name": "GlEs", - "description": "Query language value for Galician." - }, - { - "value": "gu-in", - "name": "GuIn", - "description": "Query language value for Gujarati (India)." - }, - { - "value": "he-il", - "name": "HeIl", - "description": "Query language value for Hebrew (Israel)." - }, - { - "value": "ga-ie", - "name": "GaIe", - "description": "Query language value for Irish (Ireland)." - }, - { - "value": "kn-in", - "name": "KnIn", - "description": "Query language value for Kannada (India)." - }, - { - "value": "ml-in", - "name": "MlIn", - "description": "Query language value for Malayalam (India)." - }, - { - "value": "mr-in", - "name": "MrIn", - "description": "Query language value for Marathi (India)." - }, - { - "value": "fa-ae", - "name": "FaAe", - "description": "Query language value for Persian (U.A.E.)." - }, - { - "value": "pa-in", - "name": "PaIn", - "description": "Query language value for Punjabi (India)." - }, - { - "value": "te-in", - "name": "TeIn", - "description": "Query language value for Telugu (India)." - }, - { - "value": "ur-pk", - "name": "UrPk", - "description": "Query language value for Urdu (Pakistan)." - } - ] - }, - "description": "The language of the query." - }, - "ScoringStatistics": { - "type": "string", - "enum": [ - "local", - "global" - ], - "x-ms-enum": { - "name": "ScoringStatistics", - "modelAsString": false, - "values": [ - { - "value": "local", - "name": "Local", - "description": "The scoring statistics will be calculated locally for lower latency." - }, - { - "value": "global", - "name": "Global", - "description": "The scoring statistics will be calculated globally for more consistent scoring." - } - ] - }, - "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries." - }, - "AutocompleteMode": { - "type": "string", - "enum": [ - "oneTerm", - "twoTerms", - "oneTermWithContext" - ], - "x-ms-enum": { - "name": "AutocompleteMode", - "modelAsString": false, - "values": [ - { - "value": "oneTerm", - "name": "OneTerm", - "description": "Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'." - }, - { - "value": "twoTerms", - "name": "TwoTerms", - "description": "Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'." - }, - { - "value": "oneTermWithContext", - "name": "OneTermWithContext", - "description": "Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'." - } - ] - }, - "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context in producing autocomplete terms." - }, - "SearchRequest": { - "type": "object", - "properties": { - "count": { - "type": "boolean", - "description": "A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.", - "x-ms-client-name": "IncludeTotalResultCount" - }, - "facets": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Search-Documents" - }, - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs." - }, - "filter": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/OData-Expression-Syntax-for-Azure-Search" - }, - "type": "string", - "description": "The OData $filter expression to apply to the search query." - }, - "highlight": { - "type": "string", - "description": "The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.", - "x-ms-client-name": "HighlightFields" - }, - "highlightPostTag": { - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>." - }, - "highlightPreTag": { - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>." - }, - "minimumCoverage": { - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100." - }, - "orderby": { - "x-ms-client-name": "OrderBy", - "type": "string", - "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." - }, - "queryType": { - "$ref": "#/definitions/QueryType", - "description": "A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax." - }, - "scoringStatistics": { - "$ref": "#/definitions/ScoringStatistics", - "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries." - }, - "sessionId": { - "type": "string", - "description": "A value to be used to create a sticky session, which can help getting more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character." - }, - "scoringParameters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes)." - }, - "scoringProfile": { - "type": "string", - "description": "The name of a scoring profile to evaluate match scores for matching documents in order to sort the results." - }, - "debug": { - "$ref": "#/definitions/QueryDebugMode", - "description": "Enables a debugging tool that can be used to further explore your reranked results." - }, - "search": { - "type": "string", - "description": "A full-text search query expression; Use \"*\" or omit this parameter to match all documents.", - "x-ms-client-name": "SearchText" - }, - "searchFields": { - "type": "string", - "description": "The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter." - }, - "searchMode": { - "$ref": "#/definitions/SearchMode", - "description": "A value that specifies whether any or all of the search terms must be matched in order to count the document as a match." - }, - "queryLanguage": { - "$ref": "#/definitions/QueryLanguage", - "description": "A value that specifies the language of the search query." - }, - "speller": { - "$ref": "#/definitions/Speller", - "description": "A value that specified the type of the speller to use to spell-correct individual search query terms." - }, - "select": { - "type": "string", - "description": "The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included." - }, - "skip": { - "type": "integer", - "format": "int32", - "description": "The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead." - }, - "top": { - "type": "integer", - "format": "int32", - "description": "The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results." - }, - "semanticConfiguration": { - "type": "string", - "description": "The name of a semantic configuration that will be used when processing documents for queries of type semantic." - }, - "semanticErrorHandling": { - "$ref": "#/definitions/SemanticErrorHandling", - "description": "Allows the user to choose whether a semantic call should fail completely (default / current behavior), or to return partial results." - }, - "semanticMaxWaitInMilliseconds": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 700, - "description": "Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails." - }, - "semanticQuery": { - "type": "string", - "description": "Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase." - }, - "answers": { - "$ref": "#/definitions/Answers", - "description": "A value that specifies whether answers should be returned as part of the search response." - }, - "captions": { - "$ref": "#/definitions/Captions", - "description": "A value that specifies whether captions should be returned as part of the search response." - }, - "queryRewrites": { - "$ref": "#/definitions/QueryRewrites", - "description": "A value that specifies whether query rewrites should be generated to augment the search query." - }, - "semanticFields": { - "type": "string", - "description": "The comma-separated list of field names used for semantic ranking." - }, - "vectorQueries": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorQuery" - }, - "description": "The query parameters for vector and hybrid search queries." - }, - "vectorFilterMode": { - "$ref": "#/definitions/VectorFilterMode", - "description": "Determines whether or not filters are applied before or after the vector search is performed. Default is 'preFilter' for new indexes." - }, - "hybridSearch": { - "$ref": "#/definitions/HybridSearch", - "description": "The query parameters to configure hybrid search behaviors." - } - }, - "description": "Parameters for filtering, sorting, faceting, paging, and other search query behaviors." - }, - "SuggestRequest": { - "type": "object", - "properties": { - "filter": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/OData-Expression-Syntax-for-Azure-Search" - }, - "type": "string", - "description": "An OData expression that filters the documents considered for suggestions." - }, - "fuzzy": { - "type": "boolean", - "description": "A value indicating whether to use fuzzy matching for the suggestion query. Default is false. When set to true, the query will find suggestions even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestion searches are slower and consume more resources.", - "x-ms-client-name": "UseFuzzyMatching" - }, - "highlightPostTag": { - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled." - }, - "highlightPreTag": { - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled." - }, - "minimumCoverage": { - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestion query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80." - }, - "orderby": { - "x-ms-client-name": "OrderBy", - "type": "string", - "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." - }, - "search": { - "type": "string", - "description": "The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.", - "x-ms-client-name": "SearchText" - }, - "searchFields": { - "type": "string", - "description": "The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester." - }, - "select": { - "type": "string", - "description": "The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results." - }, - "suggesterName": { - "type": "string", - "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." - }, - "top": { - "type": "integer", - "format": "int32", - "description": "The number of suggestions to retrieve. This must be a value between 1 and 100. The default is 5." - } - }, - "required": [ - "search", - "suggesterName" - ], - "description": "Parameters for filtering, sorting, fuzzy matching, and other suggestions query behaviors." - }, - "AutocompleteRequest": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search text on which to base autocomplete results.", - "x-ms-client-name": "SearchText" - }, - "autocompleteMode": { - "$ref": "#/definitions/AutocompleteMode", - "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms." - }, - "filter": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/OData-Expression-Syntax-for-Azure-Search" - }, - "type": "string", - "description": "An OData expression that filters the documents used to produce completed terms for the Autocomplete result." - }, - "fuzzy": { - "type": "boolean", - "description": "A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will autocomplete terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.", - "x-ms-client-name": "UseFuzzyMatching" - }, - "highlightPostTag": { - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled." - }, - "highlightPreTag": { - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled." - }, - "minimumCoverage": { - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80." - }, - "searchFields": { - "type": "string", - "description": "The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester." - }, - "suggesterName": { - "type": "string", - "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." - }, - "top": { - "type": "integer", - "format": "int32", - "description": "The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5." - } - }, - "required": [ - "search", - "suggesterName" - ], - "description": "Parameters for fuzzy matching, and other autocomplete query behaviors." - }, - "AutocompleteResult": { - "properties": { - "@search.coverage": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "Coverage", - "description": "A value indicating the percentage of the index that was considered by the autocomplete request, or null if minimumCoverage was not specified in the request." - }, - "value": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/AutocompleteItem" - }, - "description": "The list of returned Autocompleted items.", - "x-ms-client-name": "Results" - } - }, - "required": [ - "value" - ], - "description": "The result of Autocomplete query." - }, - "AutocompleteItem": { - "type": "object", - "properties": { - "text": { - "type": "string", - "readOnly": true, - "description": "The completed term." - }, - "queryPlusText": { - "type": "string", - "readOnly": true, - "description": "The query along with the completed term." - } - }, - "required": [ - "text", - "queryPlusText" - ], - "description": "The result of Autocomplete requests." - }, - "AnswerResult": { - "type": "object", - "x-ms-client-name": "QueryAnswerResult", - "properties": { - "score": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The score value represents how relevant the answer is to the query relative to other answers returned for the query." - }, - "key": { - "type": "string", - "readOnly": true, - "description": "The key of the document the answer was extracted from." - }, - "text": { - "type": "string", - "readOnly": true, - "description": "The text passage extracted from the document contents as the answer." - }, - "highlights": { - "type": "string", - "readOnly": true, - "x-nullable": true, - "description": "Same text passage as in the Text property with highlighted text phrases most relevant to the query." - } - }, - "additionalProperties": true, - "description": "An answer is a text passage extracted from the contents of the most relevant documents that matched the query. Answers are extracted from the top search results. Answer candidates are scored and the top answers are selected." - }, - "CaptionResult": { - "type": "object", - "x-ms-client-name": "QueryCaptionResult", - "properties": { - "text": { - "type": "string", - "readOnly": true, - "description": "A representative text passage extracted from the document most relevant to the search query." - }, - "highlights": { - "type": "string", - "readOnly": true, - "x-nullable": true, - "description": "Same text passage as in the Text property with highlighted phrases most relevant to the query." - } - }, - "additionalProperties": true, - "description": "Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type `semantic`." - }, - "SemanticPartialResponseReason": { - "type": "string", - "enum": [ - "maxWaitExceeded", - "capacityOverloaded", - "transient" - ], - "x-ms-enum": { - "name": "SemanticErrorReason", - "modelAsString": true, - "values": [ - { - "value": "maxWaitExceeded", - "name": "MaxWaitExceeded", - "description": "If `semanticMaxWaitInMilliseconds` was set and the semantic processing duration exceeded that value. Only the base results were returned." - }, - { - "value": "capacityOverloaded", - "name": "CapacityOverloaded", - "description": "The request was throttled. Only the base results were returned." - }, - { - "value": "transient", - "name": "Transient", - "description": "At least one step of the semantic process failed." - } - ] - }, - "description": "Reason that a partial response was returned for a semantic ranking request." - }, - "SemanticPartialResponseType": { - "type": "string", - "enum": [ - "baseResults", - "rerankedResults" - ], - "x-ms-enum": { - "name": "SemanticSearchResultsType", - "modelAsString": true, - "values": [ - { - "value": "baseResults", - "name": "BaseResults", - "description": "Results without any semantic enrichment or reranking." - }, - { - "value": "rerankedResults", - "name": "RerankedResults", - "description": "Results have been reranked with the reranker model and will include semantic captions. They will not include any answers, answers highlights or caption highlights." - } - ] - }, - "description": "Type of partial response that was returned for a semantic ranking request." - }, - "SemanticQueryRewritesResultType": { - "type": "string", - "enum": [ - "originalQueryOnly" - ], - "x-ms-enum": { - "name": "SemanticQueryRewritesResultType", - "modelAsString": true, - "values": [ - { - "value": "originalQueryOnly", - "name": "OriginalQueryOnly", - "description": "Query rewrites were not successfully generated for this request. Only the original query was used to retrieve the results." - } - ] - }, - "description": "Type of query rewrite that was used for this request." - }, - "SemanticErrorHandling": { - "type": "string", - "enum": [ - "partial", - "fail" - ], - "x-ms-enum": { - "name": "SemanticErrorMode", - "modelAsString": true, - "values": [ - { - "value": "partial", - "name": "Partial", - "description": "If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure." - }, - { - "value": "fail", - "name": "Fail", - "description": "If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error." - } - ] - }, - "description": "Allows the user to choose whether a semantic call should fail completely, or to return partial results." - }, - "Answers": { - "type": "string", - "enum": [ - "none", - "extractive" - ], - "x-ms-enum": { - "name": "QueryAnswerType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not return answers for the query." - }, - { - "value": "extractive", - "name": "Extractive", - "description": "Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'." - }, - "Captions": { - "type": "string", - "enum": [ - "none", - "extractive" - ], - "x-ms-enum": { - "name": "QueryCaptionType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not return captions for the query." - }, - { - "value": "extractive", - "name": "Extractive", - "description": "Extracts captions from the matching documents that contain passages relevant to the search query." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'." - }, - "QueryRewrites": { - "type": "string", - "enum": [ - "none", - "generative" - ], - "x-ms-enum": { - "name": "QueryRewritesType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not generate additional query rewrites for this query." - }, - { - "value": "generative", - "name": "Generative", - "description": "Generate alternative query terms to increase the recall of a search request." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`." - }, - "DebugInfo": { - "type": "object", - "properties": { - "queryRewrites": { - "$ref": "#/definitions/QueryRewritesDebugInfo", - "readOnly": true, - "description": "Contains debugging information specific to query rewrites." - } - }, - "description": "Contains debugging information that can be used to further explore your search results." - }, - "DocumentDebugInfo": { - "type": "object", - "properties": { - "semantic": { - "$ref": "#/definitions/SemanticDebugInfo", - "readOnly": true, - "description": "Contains debugging information specific to semantic ranking requests." - }, - "vectors": { - "$ref": "#/definitions/VectorsDebugInfo", - "readOnly": true, - "description": "Contains debugging information specific to vector and hybrid search." - }, - "innerHits": { - "$ref": "#/definitions/InnerHitsDebugInfo", - "readOnly": true, - "description": "Contains debugging information specific to vectors matched within a collection of complex types." - } - }, - "description": "Contains debugging information that can be used to further explore your search results." - }, - "SemanticDebugInfo": { - "type": "object", - "properties": { - "titleField": { - "$ref": "#/definitions/QueryResultDocumentSemanticField", - "readOnly": true, - "description": "The title field that was sent to the semantic enrichment process, as well as how it was used" - }, - "contentFields": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentSemanticField" - }, - "readOnly": true, - "description": "The content fields that were sent to the semantic enrichment process, as well as how they were used" - }, - "keywordFields": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentSemanticField" - }, - "readOnly": true, - "description": "The keyword fields that were sent to the semantic enrichment process, as well as how they were used" - }, - "rerankerInput": { - "$ref": "#/definitions/QueryResultDocumentRerankerInput", - "readOnly": true, - "description": "The raw concatenated strings that were sent to the semantic enrichment process." - } - } - }, - "QueryResultDocumentSemanticField": { - "type": "object", - "properties": { - "name": { - "type": "string", - "readOnly": true, - "description": "The name of the field that was sent to the semantic enrichment process" - }, - "state": { - "$ref": "#/definitions/QueryResultDocumentSemanticFieldState", - "readOnly": true, - "description": "The way the field was used for the semantic enrichment process (fully used, partially used, or unused)" - } - }, - "description": "Description of fields that were sent to the semantic enrichment process, as well as how they were used" - }, - "QueryResultDocumentSemanticFieldState": { - "type": "string", - "enum": [ - "used", - "unused", - "partial" - ], - "x-ms-enum": { - "name": "SemanticFieldState", - "modelAsString": true, - "values": [ - { - "value": "used", - "name": "Used", - "description": "The field was fully used for semantic enrichment." - }, - { - "value": "unused", - "name": "Unused", - "description": "The field was not used for semantic enrichment." - }, - { - "value": "partial", - "name": "Partial", - "description": "The field was partially used for semantic enrichment." - } - ] - }, - "description": "The way the field was used for the semantic enrichment process." - }, - "QueryResultDocumentRerankerInput": { - "type": "object", - "properties": { - "title": { - "type": "string", - "readOnly": true, - "description": "The raw string for the title field that was used for semantic enrichment." - }, - "content": { - "type": "string", - "readOnly": true, - "description": "The raw concatenated strings for the content fields that were used for semantic enrichment." - }, - "keywords": { - "type": "string", - "readOnly": true, - "description": "The raw concatenated strings for the keyword fields that were used for semantic enrichment." - } - }, - "description": "The raw concatenated strings that were sent to the semantic enrichment process." - }, - "VectorsDebugInfo": { - "type": "object", - "properties": { - "subscores": { - "$ref": "#/definitions/QueryResultDocumentSubscores", - "readOnly": true, - "description": "The breakdown of subscores of the document prior to the chosen result set fusion/combination method such as RRF." - } - } - }, - "QueryResultDocumentSubscores": { - "type": "object", - "properties": { - "text": { - "$ref": "#/definitions/TextResult", - "readOnly": true, - "description": "The BM25 or Classic score for the text portion of the query." - }, - "vectors": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentVectorSubscores" - }, - "readOnly": true, - "description": "The vector similarity and @search.score values for each vector query." - }, - "documentBoost": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The BM25 or Classic score for the text portion of the query." - } - }, - "description": "The breakdown of subscores between the text and vector query components of the search query for this document. Each vector query is shown as a separate object in the same order they were received." - }, - "TextResult": { - "type": "object", - "properties": { - "searchScore": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The BM25 or Classic score for the text portion of the query." - } - }, - "readOnly": true, - "description": "The BM25 or Classic score for the text portion of the query." - }, - "QueryResultDocumentVectorSubscores": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/SingleVectorFieldResult", - "readOnly": true - }, - "readOnly": true, - "description": "The vector similarity and @search.score values for each vector query. Each cross-field vector query will have separate subscores for each referenced field." - }, - "SingleVectorFieldResult": { - "type": "object", - "properties": { - "searchScore": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The @search.score value that is calculated from the vector similarity score. This is the score that's visible in a pure single-field single-vector query." - }, - "vectorSimilarity": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The vector similarity score for this document. Note this is the canonical definition of similarity metric, not the 'distance' version. For example, cosine similarity instead of cosine distance." - } - }, - "readOnly": true, - "description": "A single vector field result. Both @search.score and vector similarity values are returned. Vector similarity is related to @search.score by an equation." - }, - "QueryRewritesDebugInfo": { - "type": "object", - "properties": { - "text": { - "$ref": "#/definitions/QueryRewritesValuesDebugInfo", - "readOnly": true, - "description": "List of query rewrites generated for the text query." - }, - "vectors": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryRewritesValuesDebugInfo" - }, - "readOnly": true, - "description": "List of query rewrites generated for the vectorizable text queries." - } - }, - "readOnly": true, - "description": "Contains debugging information specific to query rewrites." - }, - "QueryRewritesValuesDebugInfo": { - "type": "object", - "properties": { - "inputQuery": { - "type": "string", - "readOnly": true, - "description": "The input text to the generative query rewriting model. There may be cases where the user query and the input to the generative model are not identical." - }, - "rewrites": { - "type": "array", - "items": { - "type": "string" - }, - "readOnly": true, - "description": "List of query rewrites." - } - }, - "readOnly": true, - "description": "Contains debugging information specific to query rewrites." - }, - "InnerHitsDebugInfo": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/NestedFieldInnerHitsDebugInfo", - "readOnly": true - }, - "readOnly": true, - "description": "Detailing scoring information for all individual elements of all complex collection that matched the search request." - }, - "NestedFieldInnerHitsDebugInfo": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentInnerHit" - }, - "readOnly": true, - "description": "Detailed scoring information for individual elements of a specific complex collection that matched the search request." - }, - "QueryResultDocumentInnerHit": { - "type": "object", - "properties": { - "ordinal": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "Position of this specific matching element within it's original collection. Position starts at 0." - }, - "vectors": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentVectorSubscores" - }, - "readOnly": true, - "description": "Detailed scoring information for an individual element of a complex collection that matched a vector query." - } - }, - "description": "Detailed scoring information for an individual element of a complex collection." - } - }, - "parameters": { - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "Client Api Version." - }, - "ClientRequestIdParameter": { - "name": "x-ms-client-request-id", - "in": "header", - "required": false, - "type": "string", - "format": "uuid", - "description": "The tracking ID sent with the request to help with debugging.", - "x-ms-client-request-id": true, - "x-ms-parameter-grouping": { - "name": "request-options" - }, - "x-ms-parameter-location": "method" - }, - "QuerySourceAuthorizationParameter": { - "name": "x-ms-query-source-authorization", - "in": "header", - "required": false, - "type": "string", - "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", - "x-ms-query-source-authorization": true, - "x-ms-parameter-location": "method" - }, - "EnableElevatedReadParameter": { - "name": "x-ms-enable-elevated-read", - "in": "header", - "required": false, - "type": "boolean", - "description": "A value that enables elevated read that bypass document level permission checks for the query operation.", - "x-ms-parameter-location": "method" - }, - "EndpointParameter": { - "name": "endpoint", - "in": "path", - "required": true, - "type": "string", - "x-ms-skip-url-encoding": true, - "description": "The endpoint URL of the search service.", - "x-ms-parameter-location": "client" - }, - "IndexNameParameter": { - "name": "indexName", - "in": "path", - "required": true, - "type": "string", - "x-ms-skip-url-encoding": false, - "description": "The name of the index.", - "x-ms-parameter-location": "client" - } - } -} diff --git a/specification/search/data-plane/Search/readme.md b/specification/search/data-plane/Search/readme.md index b96d8ce0630f..52891b6b33d5 100644 --- a/specification/search/data-plane/Search/readme.md +++ b/specification/search/data-plane/Search/readme.md @@ -1,14 +1,15 @@ -# SearchServiceClient and SearchIndexClient +# AI Search > see https://aka.ms/autorest -This is the AutoRest configuration file for SearchServiceClient and SearchIndexClient. +This is the AutoRest configuration file for AI Search. --- + ## Getting Started -To build the SDK for SearchServiceClient and SearchIndexClient, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: +To build the SDK for AI Search, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: > `autorest` @@ -22,9 +23,10 @@ To see additional help and options, run: ### Basic Information These are the global settings for SearchServiceClient and SearchIndexClient. +These are the global settings for the AI Search API. + ``` yaml -title: SearchClient -opt-in-extensible-enums: true +# common openapi-type: data-plane tag: package-2025-11-01-preview @@ -173,1035 +175,16 @@ These settings apply only when `--tag=package-2025-11-01-preview` is specified o ``` yaml $(tag) == 'package-2025-11-01-preview' input-file: -- preview/2025-11-01-preview/knowledgebase.json -- preview/2025-11-01-preview/searchservice.json -- preview/2025-11-01-preview/searchindex.json -``` - -### Tag: package-2025-11-knowledgebase-preview - -These settings apply only when `--tag=package-2025-11-knowledgebase-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-11-knowledgebase-preview' -input-file: -- preview/2025-11-01-preview/knowledgebase.json -``` - -### Tag: package-2025-11-searchservice-preview - -These settings apply only when `--tag=package-2025-11-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-11-searchservice-preview' -input-file: -- preview/2025-11-01-preview/searchservice.json -``` - -### Tag: package-2025-11-searchindex-preview - -These settings apply only when `--tag=package-2025-11-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-11-searchindex-preview' -input-file: -- preview/2025-11-01-preview/searchindex.json -``` - -### Tag: package-2025-09-01 - -These settings apply only when `--tag=package-2025-09-01` is specified on the command line. - -``` yaml $(tag) == 'package-2025-09-01' -input-file: -- stable/2025-09-01/searchservice.json -- stable/2025-09-01/searchindex.json -``` - -### Tag: package-2025-09-searchservice - -These settings apply only when `--tag=package-2025-09-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2025-09-searchservice' -input-file: -- stable/2025-09-01/searchservice.json -``` - -### Tag: package-2025-09-searchindex - -These settings apply only when `--tag=package-2025-09-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2025-09-searchindex' -input-file: -- stable/2025-09-01/searchindex.json -``` - -### Tag: package-2025-08-01-preview - -These settings apply only when `--tag=package-2025-08-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-08-01-preview' -input-file: -- preview/2025-08-01-preview/knowledgeagent.json -- preview/2025-08-01-preview/searchservice.json -- preview/2025-08-01-preview/searchindex.json -``` - -### Tag: package-2025-08-knowledgeagent-preview - -These settings apply only when `--tag=package-2025-08-knowledgeagent-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-08-knowledgeagent-preview' -input-file: -- preview/2025-08-01-preview/knowledgeagent.json -``` - -### Tag: package-2025-08-searchservice-preview - -These settings apply only when `--tag=package-2025-08-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-08-searchservice-preview' -input-file: -- preview/2025-08-01-preview/searchservice.json -``` - -### Tag: package-2025-08-searchindex-preview - -These settings apply only when `--tag=package-2025-08-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-08-searchindex-preview' -input-file: -- preview/2025-08-01-preview/searchindex.json -``` - -### Tag: package-2025-05-01-preview - -These settings apply only when `--tag=package-2025-05-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-05-01-preview' -input-file: -- preview/2025-05-01-preview/knowledgeagent.json -- preview/2025-05-01-preview/searchservice.json -- preview/2025-05-01-preview/searchindex.json -``` - -### Tag: package-2025-05-knowledgeagent-preview - -These settings apply only when `--tag=package-2025-05-knowledgeagent-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-05-knowledgeagent-preview' -input-file: -- preview/2025-05-01-preview/knowledgeagent.json -``` - -### Tag: package-2025-05-searchservice-preview - -These settings apply only when `--tag=package-2025-05-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-05-searchservice-preview' -input-file: -- preview/2025-05-01-preview/searchservice.json -``` - -### Tag: package-2025-05-searchindex-preview - -These settings apply only when `--tag=package-2025-05-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-05-searchindex-preview' -input-file: -- preview/2025-05-01-preview/searchindex.json -``` - -### Tag: package-2025-03-01-preview - -These settings apply only when `--tag=package-2025-03-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-03-01-preview' -input-file: -- preview/2025-03-01-preview/searchservice.json -- preview/2025-03-01-preview/searchindex.json -``` - -### Tag: package-2025-03-searchservice-preview - -These settings apply only when `--tag=package-2025-03-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-03-searchservice-preview' -input-file: -- preview/2025-03-01-preview/searchservice.json -``` - -### Tag: package-2025-03-searchindex-preview - -These settings apply only when `--tag=package-2025-03-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-03-searchindex-preview' -input-file: -- preview/2025-03-01-preview/searchindex.json -``` - -### Tag: package-2024-11-01-preview - -These settings apply only when `--tag=package-2024-11-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-11-01-preview' -input-file: -- preview/2024-11-01-preview/searchservice.json -- preview/2024-11-01-preview/searchindex.json -``` - -### Tag: package-2024-11-searchservice-preview - -These settings apply only when `--tag=package-2024-11-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-11-searchservice-preview' -input-file: -- preview/2024-11-01-preview/searchservice.json -``` - -### Tag: package-2024-11-searchindex-preview - -These settings apply only when `--tag=package-2024-11-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-11-searchindex-preview' -input-file: -- preview/2024-11-01-preview/searchindex.json -``` - -### Tag: package-2024-09-01-preview - -These settings apply only when `--tag=package-2024-09-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-09-01-preview' -input-file: -- preview/2024-09-01-preview/searchservice.json -- preview/2024-09-01-preview/searchindex.json -``` - -### Tag: package-2024-09-searchservice-preview - -These settings apply only when `--tag=package-2024-09-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-09-searchservice-preview' -input-file: -- preview/2024-09-01-preview/searchservice.json -``` - -### Tag: package-2024-09-searchindex-preview - -These settings apply only when `--tag=package-2024-09-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-09-searchindex-preview' -input-file: -- preview/2024-09-01-preview/searchindex.json -``` - -### Tag: package-2024-07-01 - -These settings apply only when `--tag=package-2024-07-01` is specified on the command line. - -``` yaml $(tag) == 'package-2024-07-01' -input-file: -- stable/2024-07-01/searchservice.json -- stable/2024-07-01/searchindex.json -``` - -### Tag: package-2024-07-searchservice - -These settings apply only when `--tag=package-2024-07-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2024-07-searchservice' -input-file: -- stable/2024-07-01/searchservice.json -``` - -### Tag: package-2024-07-searchindex - -These settings apply only when `--tag=package-2024-07-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2024-07-searchindex' -input-file: -- stable/2024-07-01/searchindex.json -``` - -### Tag: package-2024-05-01-preview - -These settings apply only when `--tag=package-2024-05-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-05-01-preview' -input-file: -- preview/2024-05-01-preview/searchservice.json -- preview/2024-05-01-preview/searchindex.json -``` - -### Tag: package-2024-05-searchservice-preview - -These settings apply only when `--tag=package-2024-05-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-05-searchservice-preview' -input-file: -- preview/2024-05-01-preview/searchservice.json -``` - -### Tag: package-2024-05-searchindex-preview - -These settings apply only when `--tag=package-2024-05-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-05-searchindex-preview' -input-file: -- preview/2024-05-01-preview/searchindex.json -``` - -### Tag: package-2024-03-01-preview - -These settings apply only when `--tag=package-2024-03-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-03-01-preview' -input-file: -- preview/2024-03-01-Preview/searchservice.json -- preview/2024-03-01-Preview/searchindex.json -``` - -### Tag: package-2024-03-searchservice-preview - -These settings apply only when `--tag=package-2024-03-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-03-searchservice-preview' -input-file: -- preview/2024-03-01-Preview/searchservice.json -``` - -### Tag: package-2024-03-searchindex-preview - -These settings apply only when `--tag=package-2024-03-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-03-searchindex-preview' -input-file: -- preview/2024-03-01-Preview/searchindex.json -``` - -### Tag: package-2023-10-01-preview - -These settings apply only when `--tag=package-2023-10-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-10-01-preview' -input-file: -- preview/2023-10-01-Preview/searchservice.json -- preview/2023-10-01-Preview/searchindex.json -``` - -#### Rename one of SearchError definitions - -SearchError is duplicated between two swaggers, rename one of them - -``` yaml $(tag) == 'package-2023-10-01-preview' -directive: -- from: preview/2023-10-01-Preview/searchservice.json - where: $.definitions.SearchError - transform: $["x-ms-client-name"] = "SearchServiceError" -``` - -### Tag: package-2023-10-searchservice-preview - -These settings apply only when `--tag=package-2023-10-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-10-searchservice-preview' -input-file: -- preview/2023-10-01-Preview/searchservice.json -``` - -### Tag: package-2023-10-searchindex-preview - -These settings apply only when `--tag=package-2023-10-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-10-searchindex-preview' -input-file: -- preview/2023-10-01-Preview/searchindex.json -``` - -### Tag: package-2023-07-01-preview - -These settings apply only when `--tag=package-2023-07-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-07-01-preview' -input-file: -- preview/2023-07-01-Preview/searchservice.json -- preview/2023-07-01-Preview/searchindex.json -``` - -#### Rename one of SearchError definitions - -SearchError is duplicated between two swaggers, rename one of them - -``` yaml $(tag) == 'package-2023-07-01-preview' -directive: -- from: preview/2023-07-01-Preview/searchservice.json - where: $.definitions.SearchError - transform: $["x-ms-client-name"] = "SearchServiceError" -``` - -### Tag: package-2023-07-searchservice-preview - -These settings apply only when `--tag=package-2023-07-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-07-searchservice-preview' -input-file: -- preview/2023-07-01-Preview/searchservice.json -``` - -### Tag: package-2023-07-searchindex-preview - -These settings apply only when `--tag=package-2023-07-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-07-searchindex-preview' -input-file: -- preview/2023-07-01-Preview/searchindex.json -``` - -### Tag: package-2021-04-30-preview - -These settings apply only when `--tag=package-2021-04-30-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2021-04-30-preview' -input-file: -- preview/2021-04-30-Preview/searchservice.json -- preview/2021-04-30-Preview/searchindex.json -``` - -#### Rename one of SearchError definitions - -SearchError is duplicated between two swaggers, rename one of them - -``` yaml $(tag) == 'package-2021-04-30-preview' -directive: -- from: preview/2021-04-30-Preview/searchservice.json - where: $.definitions.SearchError - transform: $["x-ms-client-name"] = "SearchServiceError" -``` - -### Tag: package-2021-04-searchservice-preview - -These settings apply only when `--tag=package-2021-04-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2021-04-searchservice-preview' -input-file: -- preview/2021-04-30-Preview/searchservice.json -``` - -### Tag: package-2021-04-searchindex-preview - -These settings apply only when `--tag=package-2021-04-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2021-04-searchindex-preview' -input-file: -- preview/2021-04-30-Preview/searchindex.json -``` - -### Tag: package-2020-06-searchservice-preview - -These settings apply only when `--tag=package-2020-06-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2020-06-searchservice-preview' -input-file: -- preview/2020-06-30-Preview/searchservice.json -``` - -### Tag: package-2020-06-searchindex-preview - -These settings apply only when `--tag=package-2020-06-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2020-06-searchindex-preview' -input-file: -- preview/2020-06-30-Preview/searchindex.json -``` - -### Tag: package-2020-06-searchservice - -These settings apply only when `--tag=package-2020-06-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2020-06-searchservice' -input-file: -- stable/2020-06-30/searchservice.json -``` - -### Tag: package-2020-06-searchindex - -These settings apply only when `--tag=package-2020-06-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2020-06-searchindex' -input-file: -- stable/2020-06-30/searchindex.json -``` - -### Tag: package-2023-11-searchservice - -These settings apply only when `--tag=package-2023-11-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2023-11-searchservice' -input-file: -- stable/2023-11-01/searchservice.json -``` - -### Tag: package-2023-11-searchindex - -These settings apply only when `--tag=package-2023-11-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2023-11-searchindex' -input-file: -- stable/2023-11-01/searchindex.json -``` - -### Tag: package-2019-05-searchservice-preview - -These settings apply only when `--tag=package-2019-05-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2019-05-searchservice-preview' -input-file: -- preview/2019-05-06-preview/searchservice.json -``` - -### Tag: package-2019-05-searchindex-preview - -These settings apply only when `--tag=package-2019-05-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2019-05-searchindex-preview' -input-file: -- preview/2019-05-06-preview/searchindex.json -``` - -### Tag: package-2019-05-searchservice - -These settings apply only when `--tag=package-2019-05-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2019-05-searchservice' -input-file: -- stable/2019-05-06/searchservice.json -``` - -### Tag: package-2019-05-searchindex - -These settings apply only when `--tag=package-2019-05-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2019-05-searchindex' -input-file: -- stable/2019-05-06/searchindex.json -``` - ---- -# Code Generation - -!!! READ THIS !!! -This swagger is ready for C# and Java. -!!! READ THIS !!! - -## Java - -These settings apply only when `--java` is specified on the command line. -Please also specify `--java-sdks-folder=`. - -``` yaml $(java) -output-folder: $(java-sdks-folder)/search -namespace: com.azure.search -java: true -sync-methods: none -add-context-parameter: true -generate-client-interfaces: false -custom-types-subpackage: implementation.models -custom-types: AnalyzeResult -license-header: |- - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the MIT License. - Code generated by Microsoft (R) AutoRest Code Generator. - Changes may cause incorrect behavior and will be lost if the code is regenerated. - -require: ./autorest-custom-directives.md - -vararg-properties: >- - CorsOptions.allowedOrigins, - AutocompleteOptions.searchFields, - SearchOptions.facets, SearchOptions.highlightFields, SearchOptions.orderBy, SearchOptions.scoringParameters, SearchOptions.searchFields, SearchOptions.select, - SuggestOptions.orderBy, SuggestOptions.searchFields, SuggestOptions.select - -directive: - # Rename IndexBatch to IndexBatchImpl when processing the API spec - - rename-model: - from: IndexBatch - to: IndexBatchImpl - - # Use Document rather than Map - - from: - - DocumentsImpl.java - - SearchResult.java - where: $ - transform: >- - return $ - .replace(/(package com.azure.search.models;)/g, "$1\nimport com.azure.search.Document;") - .replace(/(package com.azure.search.implementation;)/g, "$1\nimport com.azure.search.Document;") - .replace(/(Map)/g, "Document") - .replace(/(Object)/g, "Document") - - # Use Document rather than Map - - from: SuggestResult.java - where: $ - transform: >- - return $ - .replace(/(import java.util.Map;\n)/g, "import com.azure.search.Document;") - .replace(/(Map)/g, "Document") - - # Enable configuration of RestProxy serializer - - from: DocumentsImpl.java - where: $ - transform: >- - return $ - .replace(/(import com.azure.core.util.serializer.JacksonAdapter;)/g, "$1\nimport com.azure.core.util.serializer.SerializerAdapter;") - .replace(/(@param client the instance of the service client containing this operation class.)/g, "$1\n \* @param serializer the serializer to be used for service client requests.") - .replace(/(public DocumentsImpl\(SearchIndexRestClientImpl client\) {)/g, "public DocumentsImpl(SearchIndexRestClientImpl client, SerializerAdapter serializer) {") - .replace(/(this.service = RestProxy.create\(DocumentsService.class, client.getHttpPipeline\(\)\);)/g, "this.service = RestProxy.create(DocumentsService.class, client.getHttpPipeline(), serializer);") - - # Enable public access to client setters - # Enable configuration of RestProxy serializer - - from: SearchIndexRestClientImpl.java - where: $ - transform: >- - return $ - .replace(/(void setApiVersion)/g, "public void setApiVersion") - .replace(/(void setIndexName)/g, "public void setIndexName") - .replace(/(void setSearchDnsSuffix)/g, "public void setSearchDnsSuffix") - .replace(/(void setSearchServiceName)/g, "public void setSearchServiceName") - .replace(/(package com.azure.search.implementation;)/g, "$1\nimport com.azure.core.util.serializer.SerializerAdapter;") - .replace(/(this\(RestProxy.createDefaultPipeline\(\)\);)/g, "this(RestProxy.createDefaultPipeline(), JacksonAdapter.createDefaultSerializerAdapter());") - .replace(/(@param httpPipeline The HTTP pipeline to send requests through.)/g, "$1\n \* @param serializer the serializer to be used for service client requests.") - .replace(/(public SearchIndexRestClientImpl\(HttpPipeline httpPipeline\) {)/g, "public SearchIndexRestClientImpl(HttpPipeline httpPipeline, SerializerAdapter serializer) {") - .replace(/(this.documents = new DocumentsImpl\(this\);)/g, "this.documents = new DocumentsImpl(this, serializer);") - - # Enable IndexAction to be used as a generic type - # Enable serialization of both POJOs and Maps - - from: IndexAction.java - where: $ - transform: >- - return $ - .replace(/(import com.fasterxml.jackson.annotation.JsonProperty;)/g, "import com.fasterxml.jackson.annotation.JsonAnyGetter;\nimport com.fasterxml.jackson.annotation.JsonIgnore;\n$1\nimport com.fasterxml.jackson.annotation.JsonUnwrapped;\n") - .replace(/(class IndexAction)/g, "$1") - .replace(/(Unmatched properties from the message are deserialized this collection)/g, "The document on which the action will be performed.") - .replace(/(@JsonProperty\(value = ""\))/g, "@JsonUnwrapped") - .replace(/(private Map additionalProperties);/g, "private T document;\n\n @JsonIgnore\n private Map properties;\n\n @JsonAnyGetter\n private Map getParamMap() {\n return properties;\n }") - .replace(/(Get the additionalProperties property: Unmatched properties from the\n\s+\* message are deserialized this collection.)/g, "Get the document on which the action will be performed; Fields other than the key are ignored for delete actions.") - .replace(/(@return the additionalProperties value.)/g, "@return the document value.") - .replace(/(public Map getAdditionalProperties\(\) {\s+return this.additionalProperties;\s+})/g, "public T getDocument() {\n return this.document;\n }") - .replace(/(Set the additionalProperties property: Unmatched properties from the\s+\* message are deserialized this collection.)/g, "Get the document on which the action will be performed; Fields other than the key are ignored for delete actions.") - .replace(/(@param additionalProperties the additionalProperties value to set.)/g, "@param document the document value to set.") - .replace(/(public IndexAction setAdditionalProperties\(Map additionalProperties\) {\s+this.additionalProperties = additionalProperties;\s+return this;\s+})/g, "@SuppressWarnings(\"unchecked\")\n public IndexAction setDocument(T document) {\n if (document instanceof Map) {\n this.properties = (Map) document;\n this.document = null;\n } else {\n this.document = document;\n this.properties = null;\n }\n return this;\n }") - .replace(/(public IndexAction setActionType\(IndexActionType actionType\) {)/g, "public IndexAction setActionType(IndexActionType actionType) {") - - # Enable configuration of RestProxy serializer - - from: SearchIndexRestClientBuilder.java - where: $ - transform: >- - return $ - .replace(/(package com.azure.search.implementation;)/g, "$1\nimport com.azure.core.util.serializer.SerializerAdapter;") - .replace(/(\* The HTTP pipeline to send requests through)/g, "\* The serializer to use for requests\n \*\/\n private SerializerAdapter serializer;\n\n \/\*\*\n \* Sets The serializer to use for requests.\n \*\n \* @param serializer the serializer value.\n \* @return the SearchIndexRestClientBuilder.\n \*\/\n public SearchIndexRestClientBuilder serializer\(SerializerAdapter serializer\) {\n this.serializer = serializer;\n return this;\n }\n\n \/\*\n $1") - .replace(/(new SearchIndexRestClientImpl\(pipeline)/g, "$1, serializer") - .replace(/(this.pipeline = RestProxy.createDefaultPipeline\(\);\s+})/g, "$1\n if \(serializer == null\) {\n this.serializer = JacksonAdapter.createDefaultSerializerAdapter\(\);\n }") - - # Enable IndexBatchImpl to be used as a generic type - - from: IndexBatchImpl.java - where: $ - transform: >- - return $ - .replace(/(public final class IndexBatchImpl)/g, "public class IndexBatchImpl") - .replace(/(private List actions;)/g, "private List> actions;") - .replace(/(public List getActions\(\) {)/g, "public List> getActions() {") - .replace(/(public IndexBatchImpl setActions\(List actions\) {)/g, "protected IndexBatchImpl setActions(List> actions) {") - - # Replace use of generated IndexBatchImpl with custom IndexBatch class - - from: DocumentsImpl.java - where: $ - transform: >- - return $ - .replace(/(IndexBatchImpl)/g, "IndexBatch") - .replace(/(IndexBatch )/g, "IndexBatch ") - .replace(/(Mono indexAsync)/g, " $1") - .replace(/(Mono> index)/g, " $1") - .replace(/(import com.azure.search.implementation.models.IndexBatch)/g, "import com.azure.search.models.IndexBatch") - - # Change get to is - - from: DocumentsImpl.java - where: $ - transform: >- - return $ - .replace(/(get(IncludeTotalResultCount|UseFuzzyMatching))/g, "is$2") - - # Mark IndexingResult as Serializable, for use in IndexBatchException - - from: IndexingResult.java - where: $ - transform: >- - return $ - .replace(/(import com.fasterxml.jackson.annotation.JsonProperty;)/g, "$1\n\nimport java.io.Serializable;") - .replace(/(class IndexingResult {)/g, "class IndexingResult implements Serializable {\n private static final long serialVersionUID = -8604424005271188140L;") - - - from: - - FacetResult.java - where: $ - transform: >- - return $.replace(/(public FacetResult setAdditionalProperties)/g, "FacetResult setAdditionalProperties") - - - from: - - SearchResult.java - where: $ - transform: >- - return $.replace(/(public SearchResult setAdditionalProperties)/g, "SearchResult setAdditionalProperties") - - - from: - - SuggestResult.java - where: $ - transform: >- - return $.replace(/(public SuggestResult setAdditionalProperties)/g, "SuggestResult setAdditionalProperties") - - - from: - - FacetResult.java - - SearchResult.java - - SuggestResult.java - where: $ - transform: >- - return $ - .replace(/(getAdditionalProperties)/g, "getDocument") - .replace(/(setAdditionalProperties)/g, "setDocument") - reason: Provides a better description of the getter/setter for additionalProperties - - - from: - - SearchResult.java - where: $ - transform: >- - return $ - .replace(/(package com.azure.search.models;)/g, "$1\nimport com.fasterxml.jackson.annotation.JsonIgnore;") - .replace(/(public Document getDocument())/g, "@JsonIgnore\n$1") - - # Add static Collection method to DataType - - from: DataType.java - where: $ - transform: >- - return $ - .replace(/(public static final DataType EDM_COMPLEX_TYPE = fromString\("Edm.ComplexType"\);)/g, "$1\n\n /**\n * Returns a collection of a specific DataType\n * @param dataType the corresponding DataType\n * @return a Collection of the corresponding DataType\n */\n @JsonCreator\n public static DataType Collection(DataType dataType) {\n return fromString(String.format(\"Collection(%s)\", dataType.toString()));\n }") - - # Workaround to fix bad host path parameters - - from: - - SkillsetsImpl.java - - DatasetsImpl.java - - DataSourcesImpl.java - - IndexersImpl.java - - IndexesImpl.java - - SynonymMapsImpl.java - where: $ - transform: >- - return $ - .replace(/(this.getSearchServiceName)/g, "this.client.getSearchServiceName") - .replace(/(this.getSearchDnsSuffix)/g, "this.client.getSearchDnsSuffix") - - # Replace VoidResponse with SimpleResponse - - from: - - SkillsetsImpl.java - - DatasetsImpl.java - - DataSourcesImpl.java - - IndexersImpl.java - - IndexesImpl.java - - SynonymMapsImpl.java - where: $ - transform: >- - return $ - .replace(/(import com.azure.core.http.rest.VoidResponse;\n)/g, "") - .replace(/(VoidResponse)/g, "SimpleResponse") - - # Change Field.analyzer/indexAnalyzer/searchAnalyzer's types from enum to string. Update setters and getters. - - change-object-ref-to-string: - path: "$.definitions.Field.properties.analyzer" - - change-object-ref-to-string: - path: "$.definitions.Field.properties.searchAnalyzer" - - change-object-ref-to-string: - path: "$.definitions.Field.properties.indexAnalyzer" - - # Change CustomAnalyzer.tokenizer/tokenFilters/charFilters' types from enum to string. Update setters and getters. - - change-object-ref-to-string: - path: "$.definitions.CustomAnalyzer.properties.tokenizer" - - change-object-ref-to-string: - path: "$.definitions.CustomAnalyzer.properties.tokenFilters.items" - - change-object-ref-to-string: - path: "$.definitions.CustomAnalyzer.properties.charFilters.items" - - - from: - - SearchServiceRestClientImpl.java - where: $ - transform: >- - return $.replace(/(package com.azure.search.implementation;)/g, "$1\nimport com.azure.core.http.rest.RestProxy;") - - - from: - - DataSourceType.java - where: $ - transform: >- - return $ - .replace(/(COSMOS_DB)/g, "COSMOS") + - preview/2025-11-01-preview/search.json +suppressions: + - code: LroExtension + from: search.json + reason: Legacy swagger file ``` -## C# - -These settings apply only when `--csharp` is specified on the command line. -Please also specify `--csharp-sdks-folder=`. - -``` yaml $(csharp) -csharp: - azure-arm: true - license-header: MICROSOFT_MIT_NO_VERSION - namespace: Azure.Search - clear-output-folder: true - output-folder: $(csharp-sdks-folder)/search/Azure.Search/src/Generated - +### Suppression +``` yaml directive: - # TODO: Simplify all the below regexes once we gain the ability to target them at specific files. - - # Rename the IDocumentsOperations interface and implementation, then make the interface internal so we can version it freely. - # This requires these changes: - # 1. Globally rename the interface and implementation class, along with comments and constructors - # 2. Make the interface itself internal - # 3. Make the SearchIndexClient.Documents property internal and rename it to DocumentsProxy - # 4. Rename the type of the ISearchIndexClient.Documents property back to IDocumentsOperations, effectively removing the - # generated property from the interface (this reverses step 1 above just for this case) - # - # The ISearchIndexClient.Documents property is of type IDocumentsOperations, which is hand-written and delegates to DocumentsProxy. - # This allows us to do two things: - # 1. Abstract away the detail of whether GET or POST is used for read operations (Search, Suggest, etc.) - # 2. Add methods with type parameters and custom serialization to make our SDK easier to use in strongly-typed scenarios - # (i.e. -- where the customer is using a class to represent their model because its schema is known at design-time) - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /DocumentsOperations/g, "DocumentsProxyOperations" ). - replace( /public (partial interface IDocumentsProxyOperations)/g, "internal $1" ). - replace( /public virtual (IDocumentsProxyOperations) Documents ({ get;)/g, "internal $1 DocumentsProxy $2" ). - replace( /Documents = new DocumentsProxyOperations\(this\);/g, "DocumentsProxy = new DocumentsProxyOperations\(this\);" ). - replace( /(Gets the) IDocumentsProxyOperations(.\s*\/\/\/ <\/summary>\s*)IDocumentsProxyOperations (Documents { get; })/g, "$1 IDocumentsOperations$2IDocumentsOperations $3" ) -#### - # Adds extra JsonSerializerSettings parameters to all operation methods. This enables the SDK to delegate serialization/de-serialization to the custom serializer on a per-call basis. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(Async\(.*, CancellationToken cancellationToken = default\(CancellationToken\))/g, "$1, Newtonsoft.Json.JsonSerializerSettings requestSerializerSettings = null, Newtonsoft.Json.JsonSerializerSettings responseDeserializerSettings = null" ). - replace( /(DeserializeObject<.+>\(.+), Client\.DeserializationSettings/g, "$1, responseDeserializerSettings ?? Client.DeserializationSettings" ). - replace( /(SerializeObject\(.+), Client\.SerializationSettings/g , "$1, requestSerializerSettings ?? Client.SerializationSettings" ) -#### - # Make GetWithHttpMessagesAsync generic so we can tell the deserializer what type to instantiate. - # ASSUMPTION: Only GetWithHttpMessagesAsync makes a call to DeserializeObject(), and only when it's deserializing the non-error response. - # Ideally we'd be able to more finely target these transform rules. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(Task(> GetWithHttpMessagesAsync)/g, "$1$2" ). - replace( /(DeserializeObject)/g, "$1" ). - replace( /(var _result = new AzureOperationResponse)/g, "$1" ) -#### - # Make SearchRequest/SuggestRequest/AutocompleteRequest internal, since they are implementation details. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /public (partial class) (Suggest|Search|Autocomplete)(Request)/g, "internal $1 $2$3" ) -#### - # Change the documentation for $select for Suggest. The .NET SDK treats this property differently than the REST API - # does by default, and we don't want to change it for backwards compatibility reasons. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(The comma-separated list of fields to retrieve. If unspecified,) only the key field will be included in the results./g, "$1 all fields marked as retrievable in the schema are included." ) -#### - # Make SuggestResult and DocumentSuggestResult generic so we can tell the deserializer what type to instantiate. - # For SuggestResult, this means we also have to replace AdditionalProperties with a property of the generic type. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(public partial class DocumentSuggestResult)/g, "$1" ). - replace( /(IList" ). - replace( /(public partial class SuggestResult)/g, "$1" ). - replace( /(SuggestResult class.\s*\/\/\/ <\/summary>\s*)\/\/\/ Unmatched properties from the\s*\/\/\/ message are deserialized this collection<\/param>/g, "$1/// The document on which the suggested text is based." ). - replace( /(public SuggestResult)\(IDictionary additionalProperties = default\(IDictionary\),/g, "$1(T document = default(T)," ). - replace( /(public SuggestResult\(.*\)\s*{\s*)AdditionalProperties = additionalProperties;/g, "$1Document = document;" ). - replace( /(\/\/\/ \s*\/\/\/) Gets or sets unmatched properties from the message are deserialized\s*\/\/\/ this collection(\s*\/\/\/ <\/summary>\s*)\[JsonExtensionData\]\s*public IDictionary AdditionalProperties { get; set; }(\s*.*\s*\/\/\/ Gets the text of the suggestion result.)/g, "$1 Gets the document on which the suggested text is based. $2public T Document { get; private set; }$3" ). - replace( /(SuggestGetWithHttpMessagesAsync)/g, "$1" ). - replace( /(SuggestPostWithHttpMessagesAsync)/g, "$1" ). - replace( /(AzureOperationResponse" ). - replace( /(DeserializeObject" ) -#### - # Improve documentation for SuggestParameters. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(\/\/\/) Additional parameters for SuggestGet operation./g, "$1 Parameters for filtering, sorting, fuzzy matching, and other suggestions query behaviors." ) -#### - # Make IndexBatch and IndexAction generic so we can provide a strongly-typed interface all the way down. - # For IndexAction, this means we also have to replace AdditionalProperties with a property of the generic type. - # Also use IEnumerable instead of IList for backwards compatibility. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(public partial class IndexBatch)/g, "$1" ). - replace( /IList/g, "IEnumerable>" ). - replace( /(public partial class IndexAction)/g, "$1" ). - replace( /(IndexAction class.\s*\/\/\/ <\/summary>\s*)\/\/\/ Unmatched properties from the\s*\n\s*\/\/\/ message are deserialized this collection<\/param>/g, "$1/// The document on which the action will be performed." ). - replace( /(public IndexAction)\(IDictionary additionalProperties = default\(IDictionary\),/g, "$1(T document = default(T)," ). - replace( /(public IndexAction\(.*\)\s*{\s*)AdditionalProperties = additionalProperties;/g, "$1Document = document;" ). - replace( /(\/\/\/ \s*\n\s*\/\/\/) Gets or sets unmatched properties from the message are deserialized\s*\n\s*\/\/\/ this collection(\s*\n\s*\/\/\/ <\/summary>\s*\n\s*)\[JsonExtensionData\]\s*\n\s*public IDictionary AdditionalProperties ({ get; set; }\s*.*\s*\/\/\/ Gets or sets the operation to perform on a document)/g, "$1 Gets the document on which the action will be performed; Fields other than the key are ignored for delete actions. $2public T Document $3" ). - replace( /(IndexWithHttpMessagesAsync)\((IndexBatch)/g, "$1($2" ) -#### - # Make the constructors and AdditionalProperties property of FacetResult internal. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /public (FacetResult\()/g, "internal $1" ). - replace( /public (IDictionary AdditionalProperties { get; set; }\s*.*\s*\/\/\/ Gets the approximate count of documents falling within the bucket)/g, "internal $1" ) -#### - # Make SearchResult and DocumentSearchResult generic so we can tell the deserializer what type to instantiate. - # For SearchResult, this means we also have to replace AdditionalProperties with a property of the generic type. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(public partial class DocumentSearchResult)/g, "$1" ). - replace( /(IList" ). - replace( /(public partial class SearchResult)/g, "$1" ). - replace( /(SearchResult class.\s*\/\/\/ <\/summary>\s*)\/\/\/ Unmatched properties from the\s*\/\/\/ message are deserialized this collection<\/param>/g, "$1/// The document found by the search query." ). - replace( /(public SearchResult)\(IDictionary additionalProperties = default\(IDictionary\),/g, "$1(T document = default(T)," ). - replace( /(public SearchResult\(.*\)\s*{\s*)AdditionalProperties = additionalProperties;/g, "$1Document = document;" ). - replace( /(\/\/\/ \s*\/\/\/) Gets or sets unmatched properties from the message are deserialized\s*\/\/\/ this collection(\s*\/\/\/ <\/summary>\s*)\[JsonExtensionData\]\s*public IDictionary AdditionalProperties { get; set; }(\s*.*\s*\/\/\/ Gets the relevance score of the document compared to other)/g, "$1 Gets the document found by the search query. $2public T Document { get; private set; }$3" ). - replace( /(SearchGetWithHttpMessagesAsync)/g, "$1" ). - replace( /(SearchPostWithHttpMessagesAsync)/g, "$1" ). - replace( /(AzureOperationResponse" ). - replace( /(DeserializeObject" ) -#### - # Make DocumentSearchResult.NextPageParameters and NextLink internal. The public interface for continuations has - # historically been the custom-written SearchContinuationToken class, and we want to maintain that for backward - # compatibility. Also, NextPageParameters is of type SearchRequest, which is internal. For this reason, we also need - # to make the DocumentSearchResult constructors internal. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /public (SearchRequest NextPageParameters { get; private set; })/g, "internal $1" ). - replace( /public (string NextLink { get; private set; })/g, "internal $1" ). - replace( /public (DocumentSearchResult\()/g, "internal $1" ) -#### - # Improve documentation for SearchParameters and make the ScoringParameters property strongly-typed for ease of use - # and backward compatibility. - # TODO: Remove the check for JsonIgnore in the ScoringParameters regex below once we have the ability to target - # specific files. It is currently necessary in order to only modify the property in SearchParameters and not - # SearchRequest. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(\/\/\/) Additional parameters for SearchGet operation./g, "$1 Parameters for filtering, sorting, faceting, paging, and other search query behaviors." ). - replace( /(public SearchParameters\(.*IList<)string(> scoringParameters = default\(IList<)string/g, "$1ScoringParameter$2ScoringParameter" ). - replace( /(public IList<)string(> ScoringParameters { get; set; }\s*.*\s*.*\s*.*\s*.*\s*\[Newtonsoft.Json.JsonIgnore\])/g, "$1ScoringParameter$2" ). - replace( /(IList<)string(> scoringParameters = default\(IList<)string(>\);\s*if \(searchParameters != null\))/g, "$1ScoringParameter$2ScoringParameter$3" ) -#### - # Split the generated SearchGet and SearchPost methods into separate parts so we can re-use them for ContinueSearch. - # TODO: Simplify the regexes below once we have the ability to target specific files. Later, remove this entirely once - # AutoRest has more flexibility around paging (the current x-ms-pageable implementation doesn't work for us because it - # doesn't model additional top-level response properties or continuation POST requests). - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(Task>>) (SearchGetWithHttpMessagesAsync)\((.*), (Newtonsoft.Json.JsonSerializerSettings requestSerializerSettings = null, Newtonsoft.Json.JsonSerializerSettings responseDeserializerSettings = null)\);/g, "$1 $2($3, $4);\n\n $1 Continue$2(string url, System.Guid? clientRequestId, Dictionary> customHeaders, bool shouldTrace, string invocationId, CancellationToken cancellationToken, $4);\n" ). - replace( /(Task>>) (SearchPostWithHttpMessagesAsync)\((.*), (Newtonsoft.Json.JsonSerializerSettings requestSerializerSettings = null, Newtonsoft.Json.JsonSerializerSettings responseDeserializerSettings = null)\);/g, "$1 $2($3, $4);\n\n $1 Continue$2(string url, SearchRequest searchRequest, System.Guid? clientRequestId, Dictionary> customHeaders, bool shouldTrace, string invocationId, CancellationToken cancellationToken, $4);\n" ). - replace( /(_queryParameters.Add\(string.Format\("searchMode=\{0\}",.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*)(\/\/ Create HTTP transport objects)/g, "$1return await ContinueSearchGetWithHttpMessagesAsync(_url, clientRequestId, customHeaders, _shouldTrace, _invocationId, cancellationToken, requestSerializerSettings, responseDeserializerSettings).ConfigureAwait(false);\n }\n\n public async Task>> ContinueSearchGetWithHttpMessagesAsync(string _url, System.Guid? clientRequestId, Dictionary> customHeaders, bool _shouldTrace, string _invocationId, CancellationToken cancellationToken, JsonSerializerSettings requestSerializerSettings, JsonSerializerSettings responseDeserializerSettings)\n {\n $2" ). - replace( /(docs\/search.post.search.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*)(\/\/ Create HTTP transport objects)/g, "$1return await ContinueSearchPostWithHttpMessagesAsync(_url, searchRequest, clientRequestId, customHeaders, _shouldTrace, _invocationId, cancellationToken, requestSerializerSettings, responseDeserializerSettings).ConfigureAwait(false);\n }\n\n public async Task>> ContinueSearchPostWithHttpMessagesAsync(string _url, SearchRequest searchRequest, System.Guid? clientRequestId, Dictionary> customHeaders, bool _shouldTrace, string _invocationId, CancellationToken cancellationToken, JsonSerializerSettings requestSerializerSettings, JsonSerializerSettings responseDeserializerSettings)\n {\n $2" ) - -# TODO: Remove this workaround once AutoRest fixes the incorrect code generation when using a parameterized host and both client and operation groups paths. - - from: source-file-csharp - where: $ - transform: >- - if ($.includes("class DataSourcesOperations") || $.includes("class IndexersOperations") || - $.includes("class IndexesOperations") || $.includes("class SynonymMapsOperations") || - $.includes("class SkillsetsOperations")) - - return $. - replace( /this.SearchServiceName/g, "Client.SearchServiceName" ). - replace( /this.SearchDnsSuffix/g, "Client.SearchDnsSuffix" ). - replace( /\"Client.SearchServiceName\"/g, "\"this.Client.SearchServiceName\"" ). - replace( /\"Client.SearchDnsSuffix\"/g, "\"this.Client.SearchDnsSuffix\"" ); - return $; -#### - # The following regex are required to make the generated Field class conform to the needs of the custom implementation - # that we've had in the Azure Search .NET SDK since it was first released. We've decided to keep the custom behavior of - # Field just for .NET for the sake of backward compatibility, but for other languages the client behavior will conform - # to the REST API. - # - # To achieve this, we need to make the generated constructors internal, as well as some of the generated properties. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /public (Field\(\))/g, "internal $1" ). - replace( /public (Field\(string name,)/g, "internal $1" ). - replace( /public (bool\? Key { get; set; })/g, "internal $1" ). - replace( /public (bool\? Retrievable { get; set; })/g, "internal $1" ). - replace( /public (bool\? Searchable { get; set; })/g, "internal $1" ). - replace( /public (bool\? Filterable { get; set; })/g, "internal $1" ). - replace( /public (bool\? Sortable { get; set; })/g, "internal $1" ). - replace( /public (bool\? Facetable { get; set; })/g, "internal $1" ); -``` - -## Multi-API/Profile support for AutoRest v3 generators - -AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files. - -This block is updated by an automatic script. Edits may be lost! - -``` yaml $(tag) == 'all-api-versions' /* autogenerated */ -# include the azure profile definitions from the standard location -require: $(this-folder)/../../../../profiles/readme.md - -# all the input files across all versions -input-file: - - $(this-folder)/preview/2024-05-01-preview/searchservice.json - - $(this-folder)/preview/2024-05-01-preview/searchindex.json - - $(this-folder)/preview/2024-03-01-Preview/searchservice.json - - $(this-folder)/preview/2024-03-01-Preview/searchindex.json - - $(this-folder)/preview/2023-10-01-Preview/searchservice.json - - $(this-folder)/preview/2023-10-01-Preview/searchindex.json - - $(this-folder)/preview/2023-07-01-Preview/searchservice.json - - $(this-folder)/preview/2023-07-01-Preview/searchindex.json - - $(this-folder)/preview/2021-04-30-Preview/searchservice.json - - $(this-folder)/preview/2021-04-30-Preview/searchindex.json - - $(this-folder)/preview/2020-06-30-Preview/searchservice.json - - $(this-folder)/preview/2020-06-30-Preview/searchindex.json - - $(this-folder)/preview/2020-06-30/searchservice.json - - $(this-folder)/preview/2020-06-30/searchindex.json - - $(this-folder)/preview/2019-05-06-preview/searchservice.json - - $(this-folder)/preview/2019-05-06-preview/searchindex.json - - $(this-folder)/stable/2019-05-06/searchservice.json - - $(this-folder)/stable/2019-05-06/searchindex.json - -``` - -If there are files that should not be in the `all-api-versions` set, -uncomment the `exclude-file` section below and add the file paths. - -``` yaml $(tag) == 'all-api-versions' -#exclude-file: -# - $(this-folder)/stable/2010-01-01/somefile.json -``` - -# Code Generation - -## Swagger to SDK - -This section describes what SDK should be generated by the automatic system. -This is not used by Autorest itself. - -``` yaml $(swagger-to-sdk) -swagger-to-sdk: - - repo: azure-sdk-for-net + - suppress: INVALID_TYPE + - suppress: DISCRIMINATOR_VALUE_NOT_FOUND ``` diff --git a/specification/search/data-plane/Search/routes-index.tsp b/specification/search/data-plane/Search/routes-index.tsp new file mode 100644 index 000000000000..5014bd7b86a5 --- /dev/null +++ b/specification/search/data-plane/Search/routes-index.tsp @@ -0,0 +1,190 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models-index.tsp"; + +using TypeSpec.Http; + +namespace Search; + +interface Documents { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Queries the number of documents in the index.") + @route("/indexes('{indexName}')/docs/$count") + @get + count is SearchIndexOperation< + {}, + { + @header contentType: "application/json"; + @body body: int64; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Searches for documents in the index.") + @route("/indexes('{indexName}')/docs") + @get + searchGet is SearchIndexOperation< + { + ...querySourceAuthorizationHeader; + ...enableElevatedReadHeader; + + @doc("A full-text search query expression; Use \"*\" or omit this parameter to match all documents.") + @query("search") + searchText?: string; + + ...SearchOptions; + }, + SearchDocumentsResult & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "206"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Searches for documents in the index.") + @route("/indexes('{indexName}')/docs/search.post.search") + @post + searchPost is SearchIndexOperation< + { + ...querySourceAuthorizationHeader; + ...enableElevatedReadHeader; + ...SearchRequest; + }, + SearchDocumentsResult & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "206"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a document from the index.") + @route("/indexes('{indexName}')/docs('{key}')") + @get + get is SearchIndexOperation< + { + ...querySourceAuthorizationHeader; + ...enableElevatedReadHeader; + + @doc("The key of the document to retrieve.") + @path + key: string; + + @doc("List of field names to retrieve for the document; Any field not retrieved will be missing from the returned document.") + @query("$select") + selectedFields?: string[]; + }, + LookupDocument + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Suggests documents in the index that match the given partial query text.") + @route("/indexes('{indexName}')/docs/search.suggest") + @get + suggestGet is SearchIndexOperation< + { + @doc("The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.") + @query("search") + searchText: string; + + @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") + @query + suggesterName: string; + + ...SuggestOptions; + }, + SuggestDocumentsResult + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Suggests documents in the index that match the given partial query text.") + @route("/indexes('{indexName}')/docs/search.post.suggest") + @post + suggestPost is SearchIndexOperation< + { + ...SuggestRequest; + }, + SuggestDocumentsResult + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Sends a batch of document write actions to the index.") + @route("/indexes('{indexName}')/docs/search.index") + @post + index is SearchIndexOperation< + { + @doc("The batch of index actions.") + @body + batch: IndexBatch; + }, + IndexDocumentsResult + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Autocompletes incomplete query terms based on input text and matching terms in the index.") + @route("/indexes('{indexName}')/docs/search.autocomplete") + @get + autocompleteGet is SearchIndexOperation< + { + @doc("The incomplete term which should be auto-completed.") + @query("search") + searchText: string; + + @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") + @query + suggesterName: string; + + @doc("Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms.") + @query + autocompleteMode?: AutocompleteMode; + + @doc("An OData expression that filters the documents used to produce completed terms for the Autocomplete result.") + @query + $filter?: string; + + @doc("A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.") + @query("fuzzy") + useFuzzyMatching?: boolean; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled.") + @query + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled.") + @query + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.") + @query + minimumCoverage?: float64; + + @doc("The list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.") + @query + searchFields?: string[]; + + @doc("The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5.") + @query + $top?: int32; + }, + AutocompleteResult + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Autocompletes incomplete query terms based on input text and matching terms in the index.") + @route("/indexes('{indexName}')/docs/search.post.autocomplete") + @post + autocompletePost is SearchIndexOperation< + { + ...AutocompleteRequest; + }, + AutocompleteResult + >; +} diff --git a/specification/search/data-plane/Search/routes-knowledgebase.tsp b/specification/search/data-plane/Search/routes-knowledgebase.tsp new file mode 100644 index 000000000000..a6d9cd12c1d5 --- /dev/null +++ b/specification/search/data-plane/Search/routes-knowledgebase.tsp @@ -0,0 +1,34 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models-knowledgebase.tsp"; + +using TypeSpec.Http; +using Azure.Core; + +namespace Search; + +@route("/knowledgebases('{knowledgeBaseName}')") +interface KnowledgeRetrieval { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("KnowledgeBase retrieves relevant data from backing stores.") + @route("/retrieve") + @post + retrieve is Foundations.Operation< + { + @doc("The name of the knowledge base.") + @path + knowledgeBaseName: string; + + @doc("Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.") + @header("x-ms-query-source-authorization") + querySourceAuthorization?: string; + + @doc("The retrieval request to process.") + @body + retrievalRequest: KnowledgeBaseRetrievalRequest; + } & ClientRequestIdHeader, + KnowledgeBaseRetrievalSuccessResponse | KnowledgeBaseRetrievalPartialResponse, + {}, + ErrorResponse + >; +} diff --git a/specification/search/data-plane/Search/routes-service.tsp b/specification/search/data-plane/Search/routes-service.tsp new file mode 100644 index 000000000000..15b513cc9188 --- /dev/null +++ b/specification/search/data-plane/Search/routes-service.tsp @@ -0,0 +1,723 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models-service.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Search; + +interface DataSources { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new datasource or updates a datasource if it already exists.") + @route("/datasources('{dataSourceName}')") + @put + createOrUpdate is SearchDataSourceOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("Ignores cache reset requirements.") + @query("ignoreResetRequirements") + skipIndexerResetRequirementForCache?: boolean; + + @doc("The definition of the datasource to create or update.") + @body + dataSource: SearchIndexerDataSource; + }, + SearchIndexerDataSource & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a datasource.") + @route("/datasources('{dataSourceName}')") + @delete + delete is SearchDataSourceOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a datasource definition.") + @route("/datasources('{dataSourceName}')") + @get + get is SearchDataSourceOperation<{}, SearchIndexerDataSource>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all datasources available for a search service.") + @route("/datasources") + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new datasource.") + @route("/datasources") + @post + create is SearchOperation< + { + @doc("The definition of the datasource to create.") + @body + dataSource: SearchIndexerDataSource; + }, + SearchIndexerDataSource & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; +} + +interface Indexers { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Resets the change tracking state associated with an indexer.") + @route("/indexers('{indexerName}')/search.reset") + @post + reset is SearchIndexerOperation< + {}, + { + @doc("A process exit code.") + @statusCode + code: "204"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Resync selective options from the datasource to be re-ingested by the indexer.\"") + @route("/indexers('{indexerName}')/search.resync") + @post + resync is SearchIndexerOperation< + { + @doc("The definition of the indexer resync options.") + @body + indexerResync: IndexerResyncBody; + }, + { + @doc("A process exit code.") + @statusCode + code: "204"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Resets specific documents in the datasource to be selectively re-ingested by the indexer.") + @route("/indexers('{indexerName}')/search.resetdocs") + @post + resetDocs is SearchIndexerOperation< + { + @doc("If false, keys or ids will be appended to existing ones. If true, only the keys or ids in this payload will be queued to be re-ingested.") + @query + overwrite?: boolean = false; + + @doc("The keys or ids of the documents to be re-ingested. If keys are provided, the document key field must be specified in the indexer configuration. If ids are provided, the document key field is ignored.") + @body + keysOrIds?: DocumentKeysOrIds; + }, + { + @doc("A process exit code.") + @statusCode + code: "204"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Runs an indexer on-demand.") + @route("/indexers('{indexerName}')/search.run") + @post + run is SearchIndexerOperation< + {}, + { + @doc("A process exit code.") + @statusCode + code: "202"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new indexer or updates an indexer if it already exists.") + @route("/indexers('{indexerName}')") + @put + createOrUpdate is SearchIndexerOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("Ignores cache reset requirements.") + @query("ignoreResetRequirements") + skipIndexerResetRequirementForCache?: boolean; + + @doc("Disables cache reprocessing change detection.") + @query("disableCacheReprocessingChangeDetection") + disableCacheReprocessingChangeDetection?: boolean; + + @doc("The definition of the indexer to create or update.") + @body + indexer: SearchIndexer; + }, + SearchIndexer & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes an indexer.") + @route("/indexers('{indexerName}')") + @delete + delete is SearchIndexerOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Retrieves an indexer definition.") + @route("/indexers('{indexerName}')") + @get + get is SearchIndexerOperation<{}, SearchIndexer>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all indexers available for a search service.") + @route("/indexers") + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new indexer.") + @route("/indexers") + @post + create is SearchOperation< + { + @doc("The definition of the indexer to create.") + @body + indexer: SearchIndexer; + }, + SearchIndexer & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Returns the current status and execution history of an indexer.") + @route("/indexers('{indexerName}')/search.status") + @get + getStatus is SearchIndexerOperation<{}, SearchIndexerStatus>; +} + +interface Skillsets { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new skillset in a search service or updates the skillset if it already exists.") + @route("/skillsets('{skillsetName}')") + @put + createOrUpdate is SearchSkillsetOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("Ignores cache reset requirements.") + @query("ignoreResetRequirements") + skipIndexerResetRequirementForCache?: boolean; + + @doc("Disables cache reprocessing change detection.") + @query("disableCacheReprocessingChangeDetection") + disableCacheReprocessingChangeDetection?: boolean; + + @doc("The skillset containing one or more skills to create or update in a search service.") + @body + skillset: SearchIndexerSkillset; + }, + SearchIndexerSkillset & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Deletes a skillset in a search service.") + @route("/skillsets('{skillsetName}')") + @delete + delete is SearchSkillsetOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a skillset in a search service.") + @route("/skillsets('{skillsetName}')") + @get + get is SearchSkillsetOperation<{}, SearchIndexerSkillset>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("List all skillsets in a search service.") + @route("/skillsets") + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new skillset in a search service.") + @route("/skillsets") + @post + create is SearchOperation< + { + @doc("The skillset containing one or more skills to create in a search service.") + @body + skillset: SearchIndexerSkillset; + }, + SearchIndexerSkillset & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Reset an existing skillset in a search service.") + @route("/skillsets('{skillsetName}')/search.resetskills") + @post + resetSkills is SearchSkillsetOperation< + { + @doc("The names of the skills to reset. If not specified, all skills in the skillset will be reset.") + @body + skillNames: SkillNames; + }, + void + >; +} + +interface SynonymMaps { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new synonym map or updates a synonym map if it already exists.") + @route("/synonymmaps('{synonymMapName}')") + @put + createOrUpdate is SearchSynonymMapOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("The definition of the synonym map to create or update.") + @body + synonymMap: SynonymMap; + }, + SynonymMap & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a synonym map.") + @route("/synonymmaps('{synonymMapName}')") + @delete + delete is SearchSynonymMapOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Retrieves a synonym map definition.") + @route("/synonymmaps('{synonymMapName}')") + @get + get is SearchSynonymMapOperation<{}, SynonymMap>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all synonym maps available for a search service.") + @route("/synonymmaps") + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new synonym map.") + @route("/synonymmaps") + @post + create is SearchOperation< + { + @doc("The definition of the synonym map to create.") + @body + synonymMap: SynonymMap; + }, + SynonymMap & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; +} + +interface Indexes { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new search index.") + @route("/indexes") + @post + create is SearchOperation< + { + @doc("The definition of the index to create.") + @body + index: SearchIndex; + }, + SearchIndex & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all indexes available for a search service.") + @route("/indexes") + @list + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new search index or updates an index if it already exists.") + @route("/indexes('{indexName}')") + @put + createOrUpdate is SearchIndexOperation< + { + ...matchingHeader; + + @doc("Allows new analyzers, tokenizers, token filters, or char filters to be added to an index by taking the index offline for at least a few seconds. This temporarily causes indexing and query requests to fail. Performance and write availability of the index can be impaired for several minutes after the index is updated, or longer for very large indexes.") + @query + allowIndexDowntime?: boolean; + + ...preferHeader; + + @doc("The definition of the index to create or update.") + @body + index: SearchIndex; + }, + SearchIndex & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a search index and all the documents it contains. This operation is permanent, with no recovery option. Make sure you have a master copy of your index definition, data ingestion code, and a backup of the primary data source in case you need to re-build the index.") + @route("/indexes('{indexName}')") + @delete + delete is SearchIndexOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves an index definition.") + @route("/indexes('{indexName}')") + @get + get is SearchIndexOperation<{}, SearchIndex>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Returns statistics for the given index, including a document count and storage usage.") + @route("/indexes('{indexName}')/search.stats") + @get + getStatistics is SearchIndexOperation<{}, GetIndexStatisticsResult>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Shows how an analyzer breaks text into tokens.") + @route("/indexes('{indexName}')/search.analyze") + @post + analyze is SearchIndexOperation< + { + @doc("The text and analyzer or analysis components to test.") + @body + request: AnalyzeRequest; + }, + AnalyzeResult + >; +} + +interface Aliases { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new search alias.") + @route("/aliases") + @post + create is SearchOperation< + { + @doc("The definition of the alias to create.") + @body + `alias`: SearchAlias; + }, + SearchAlias & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all aliases available for a search service.") + @route("/aliases") + @list + @get + list is SearchOperation<{}, ListAliasesResult>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new search alias or updates an alias if it already exists.") + @route("/aliases('{aliasName}')") + @put + createOrUpdate is SearchAliasOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("The definition of the alias to create or update.") + @body + `alias`: SearchAlias; + }, + SearchAlias & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a search alias and its associated mapping to an index. This operation is permanent, with no recovery option. The mapped index is untouched by this operation.") + @route("/aliases('{aliasName}')") + @delete + delete is SearchAliasOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves an alias definition.") + @route("/aliases('{aliasName}')") + @get + get is SearchAliasOperation<{}, SearchAlias>; +} + +interface KnowledgeBases { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new knowledge base.") + @route("/knowledgebases") + @post + create is SearchOperation< + { + @doc("The definition of the knowledge base to create.") + @body + knowledgeBase: KnowledgeBase; + }, + KnowledgeBase & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all knowledge bases available for a search service.") + @route("/knowledgebases") + @list + @get + list is SearchOperation<{}, ListKnowledgeBasesResult>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new knowledge base or updates a knowledge base if it already exists.") + @route("/knowledgebases('{knowledgeBaseName}')") + @put + createOrUpdate is SearchKnowledgeBaseOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("The definition of the knowledge base to create or update.") + @body + knowledgeBase: KnowledgeBase; + }, + KnowledgeBase & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a knowledge base.") + @route("/knowledgebases('{knowledgeBaseName}')") + @delete + delete is SearchKnowledgeBaseOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a knowledge base definition.") + @route("/knowledgebases('{knowledgeBaseName}')") + @get + get is SearchKnowledgeBaseOperation<{}, KnowledgeBase>; +} + +interface KnowledgeSources { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new knowledge source.") + @route("/knowledgesources") + @post + create is SearchOperation< + { + @doc("The definition of the knowledge source to create.") + @body + knowledgeSource: KnowledgeSource; + }, + KnowledgeSource & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all knowledge sources available for a search service.") + @route("/knowledgesources") + @list + @get + list is SearchOperation<{}, ListKnowledgeSourcesResult>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new knowledge source or updates an knowledge source if it already exists.") + @route("/knowledgesources('{sourceName}')") + @put + createOrUpdate is SearchSourceOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("The definition of the knowledge source to create or update.") + @body + knowledgeSource: KnowledgeSource; + }, + KnowledgeSource & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes an existing knowledge source.") + @route("/knowledgesources('{sourceName}')") + @delete + delete is SearchSourceOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a knowledge source definition.") + @route("/knowledgesources('{sourceName}')") + @get + get is SearchSourceOperation<{}, KnowledgeSource>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves the status of a knowledge source.") + @route("/knowledgesources('{sourceName}')/status") + @get + getStatus is SearchSourceOperation<{}, KnowledgeSourceStatus>; +} + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" +@doc("Gets service level statistics for a search service.") +@route("/servicestats") +@get +op getServiceStatistics is SearchOperation<{}, SearchServiceStatistics>; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" +@doc("Retrieves a summary of statistics for all indexes in the search service.") +@route("/indexstats") +@list +@get +op getIndexStatsSummary is SearchOperation<{}, ListIndexStatsSummary>; diff --git a/specification/search/data-plane/Search/suppressions.yaml b/specification/search/data-plane/Search/suppressions.yaml index 255643beee23..e35f654083cf 100644 --- a/specification/search/data-plane/Search/suppressions.yaml +++ b/specification/search/data-plane/Search/suppressions.yaml @@ -37,9 +37,6 @@ - tool: TypeSpecRequirement path: ./preview/2025-08-01-preview/*.json reason: Brownfield service not ready to migrate -- tool: TypeSpecRequirement - path: ./preview/2025-11-01-preview/*.json - reason: Brownfield service not ready to migrate # Stable API versions - tool: TypeSpecRequirement path: ./stable/2019-05-06/*.json diff --git a/specification/search/data-plane/Search/tspconfig.yaml b/specification/search/data-plane/Search/tspconfig.yaml new file mode 100644 index 000000000000..0ad6732d12c7 --- /dev/null +++ b/specification/search/data-plane/Search/tspconfig.yaml @@ -0,0 +1,54 @@ +parameters: + "service-dir": + default: "sdk/search" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}" + output-file: "{version-status}/{version}/search.json" + "@azure-tools/typespec-python": + package-dir: "azure-search-documents" + package-name: "{package-dir}" + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/azure-search-documents" + "@azure-tools/typespec-csharp": + package-dir: "Azure.Search.Documents" + namespace: "Azure.Search.Documents" + clear-output-folder: true + model-namespace: false + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/Azure.Search.Documents" + "@azure-typespec/http-client-csharp": + namespace: "Azure.Search.Documents" + model-namespace: false + "@azure-tools/typespec-ts": + emitter-output-dir: "{output-dir}/{service-dir}/search-documents" + generate-metadata: false + generate-test: false + experimental-extensible-enums: true + is-modular-library: true + enable-model-namespace: false + package-details: + name: "@azure/search-documents" + flavor: azure + "@azure-tools/typespec-java": + package-dir: "azure-search-documents" + namespace: "com.azure.search.documents" + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/azure-search-documents" + "@azure-tools/typespec-go": + service-dir: "sdk/search/azsearchdocuments" + package-dir: "azsearchdocuments" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true + emitter-output-dir: "{output-dir}/{service-dir}/azsearchdocuments" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane"