/*
 * Copyright (c) Microsoft Corporation.
 * 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.
 */
export const ErrorResponse = {
    type: {
        name: "Composite",
        className: "ErrorResponse",
        modelProperties: {
            error: {
                serializedName: "error",
                type: {
                    name: "Composite",
                    className: "ErrorDetail",
                },
            },
        },
    },
};
export const ErrorDetail = {
    type: {
        name: "Composite",
        className: "ErrorDetail",
        modelProperties: {
            code: {
                serializedName: "code",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            message: {
                serializedName: "message",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            target: {
                serializedName: "target",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            details: {
                serializedName: "details",
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "ErrorDetail",
                        },
                    },
                },
            },
            additionalInfo: {
                serializedName: "additionalInfo",
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "ErrorAdditionalInfo",
                        },
                    },
                },
            },
        },
    },
};
export const ErrorAdditionalInfo = {
    type: {
        name: "Composite",
        className: "ErrorAdditionalInfo",
        modelProperties: {
            type: {
                serializedName: "type",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            info: {
                serializedName: "info",
                readOnly: true,
                type: {
                    name: "Dictionary",
                    value: { type: { name: "any" } },
                },
            },
        },
    },
};
export const SearchDocumentsResult = {
    type: {
        name: "Composite",
        className: "SearchDocumentsResult",
        modelProperties: {
            count: {
                serializedName: "@odata\\.count",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            coverage: {
                serializedName: "@search\\.coverage",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            facets: {
                serializedName: "@search\\.facets",
                readOnly: true,
                type: {
                    name: "Dictionary",
                    value: {
                        type: {
                            name: "Sequence",
                            element: {
                                type: { name: "Composite", className: "FacetResult" },
                            },
                        },
                    },
                },
            },
            answers: {
                serializedName: "@search\\.answers",
                readOnly: true,
                nullable: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "QueryAnswerResult",
                        },
                    },
                },
            },
            nextPageParameters: {
                serializedName: "@search\\.nextPageParameters",
                type: {
                    name: "Composite",
                    className: "SearchRequest",
                },
            },
            results: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchResult",
                        },
                    },
                },
            },
            nextLink: {
                serializedName: "@odata\\.nextLink",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            semanticPartialResponseReason: {
                serializedName: "@search\\.semanticPartialResponseReason",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            semanticPartialResponseType: {
                serializedName: "@search\\.semanticPartialResponseType",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const FacetResult = {
    type: {
        name: "Composite",
        className: "FacetResult",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            count: {
                serializedName: "count",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const QueryAnswerResult = {
    type: {
        name: "Composite",
        className: "QueryAnswerResult",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            score: {
                serializedName: "score",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            key: {
                serializedName: "key",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            text: {
                serializedName: "text",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            highlights: {
                serializedName: "highlights",
                readOnly: true,
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchRequest = {
    type: {
        name: "Composite",
        className: "SearchRequest",
        modelProperties: {
            includeTotalResultCount: {
                serializedName: "count",
                type: {
                    name: "Boolean",
                },
            },
            facets: {
                serializedName: "facets",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            filter: {
                serializedName: "filter",
                type: {
                    name: "String",
                },
            },
            highlightFields: {
                serializedName: "highlight",
                type: {
                    name: "String",
                },
            },
            highlightPostTag: {
                serializedName: "highlightPostTag",
                type: {
                    name: "String",
                },
            },
            highlightPreTag: {
                serializedName: "highlightPreTag",
                type: {
                    name: "String",
                },
            },
            minimumCoverage: {
                serializedName: "minimumCoverage",
                type: {
                    name: "Number",
                },
            },
            orderBy: {
                serializedName: "orderby",
                type: {
                    name: "String",
                },
            },
            queryType: {
                serializedName: "queryType",
                type: {
                    name: "Enum",
                    allowedValues: ["simple", "full", "semantic"],
                },
            },
            scoringStatistics: {
                serializedName: "scoringStatistics",
                type: {
                    name: "Enum",
                    allowedValues: ["local", "global"],
                },
            },
            sessionId: {
                serializedName: "sessionId",
                type: {
                    name: "String",
                },
            },
            scoringParameters: {
                serializedName: "scoringParameters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            scoringProfile: {
                serializedName: "scoringProfile",
                type: {
                    name: "String",
                },
            },
            debug: {
                serializedName: "debug",
                type: {
                    name: "String",
                },
            },
            searchText: {
                serializedName: "search",
                type: {
                    name: "String",
                },
            },
            searchFields: {
                serializedName: "searchFields",
                type: {
                    name: "String",
                },
            },
            searchMode: {
                serializedName: "searchMode",
                type: {
                    name: "Enum",
                    allowedValues: ["any", "all"],
                },
            },
            select: {
                serializedName: "select",
                type: {
                    name: "String",
                },
            },
            skip: {
                serializedName: "skip",
                type: {
                    name: "Number",
                },
            },
            top: {
                serializedName: "top",
                type: {
                    name: "Number",
                },
            },
            semanticConfigurationName: {
                serializedName: "semanticConfiguration",
                type: {
                    name: "String",
                },
            },
            semanticErrorHandling: {
                serializedName: "semanticErrorHandling",
                type: {
                    name: "String",
                },
            },
            semanticMaxWaitInMilliseconds: {
                constraints: {
                    InclusiveMinimum: 700,
                },
                serializedName: "semanticMaxWaitInMilliseconds",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            semanticQuery: {
                serializedName: "semanticQuery",
                type: {
                    name: "String",
                },
            },
            answers: {
                serializedName: "answers",
                type: {
                    name: "String",
                },
            },
            captions: {
                serializedName: "captions",
                type: {
                    name: "String",
                },
            },
            vectorQueries: {
                serializedName: "vectorQueries",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "VectorQuery",
                        },
                    },
                },
            },
            vectorFilterMode: {
                serializedName: "vectorFilterMode",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const VectorQuery = {
    type: {
        name: "Composite",
        className: "VectorQuery",
        uberParent: "VectorQuery",
        polymorphicDiscriminator: {
            serializedName: "kind",
            clientName: "kind",
        },
        modelProperties: {
            kind: {
                serializedName: "kind",
                required: true,
                type: {
                    name: "String",
                },
            },
            kNearestNeighborsCount: {
                serializedName: "k",
                type: {
                    name: "Number",
                },
            },
            fields: {
                serializedName: "fields",
                type: {
                    name: "String",
                },
            },
            exhaustive: {
                serializedName: "exhaustive",
                type: {
                    name: "Boolean",
                },
            },
            oversampling: {
                serializedName: "oversampling",
                type: {
                    name: "Number",
                },
            },
            weight: {
                serializedName: "weight",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const SearchResult = {
    type: {
        name: "Composite",
        className: "SearchResult",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            _score: {
                serializedName: "@search\\.score",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            _rerankerScore: {
                serializedName: "@search\\.rerankerScore",
                readOnly: true,
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            rerankerBoostedScore: {
                serializedName: "@search\\.rerankerBoostedScore",
                readOnly: true,
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            _highlights: {
                serializedName: "@search\\.highlights",
                readOnly: true,
                type: {
                    name: "Dictionary",
                    value: {
                        type: { name: "Sequence", element: { type: { name: "String" } } },
                    },
                },
            },
            _captions: {
                serializedName: "@search\\.captions",
                readOnly: true,
                nullable: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "QueryCaptionResult",
                        },
                    },
                },
            },
            documentDebugInfo: {
                serializedName: "@search\\.documentDebugInfo",
                type: {
                    name: "Composite",
                    className: "DocumentDebugInfo",
                },
            },
        },
    },
};
export const QueryCaptionResult = {
    type: {
        name: "Composite",
        className: "QueryCaptionResult",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            text: {
                serializedName: "text",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            highlights: {
                serializedName: "highlights",
                readOnly: true,
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const DocumentDebugInfo = {
    type: {
        name: "Composite",
        className: "DocumentDebugInfo",
        modelProperties: {
            vectors: {
                serializedName: "vectors",
                type: {
                    name: "Composite",
                    className: "VectorsDebugInfo",
                },
            },
        },
    },
};
export const VectorsDebugInfo = {
    type: {
        name: "Composite",
        className: "VectorsDebugInfo",
        modelProperties: {
            subscores: {
                serializedName: "subscores",
                type: {
                    name: "Composite",
                    className: "QueryResultDocumentSubscores",
                },
            },
        },
    },
};
export const QueryResultDocumentSubscores = {
    type: {
        name: "Composite",
        className: "QueryResultDocumentSubscores",
        modelProperties: {
            text: {
                serializedName: "text",
                type: {
                    name: "Composite",
                    className: "TextResult",
                },
            },
            vectors: {
                serializedName: "vectors",
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Dictionary",
                            value: {
                                type: {
                                    name: "Composite",
                                    className: "SingleVectorFieldResult",
                                },
                            },
                        },
                    },
                },
            },
            documentBoost: {
                serializedName: "documentBoost",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const TextResult = {
    type: {
        name: "Composite",
        className: "TextResult",
        modelProperties: {
            searchScore: {
                serializedName: "searchScore",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const SingleVectorFieldResult = {
    type: {
        name: "Composite",
        className: "SingleVectorFieldResult",
        modelProperties: {
            searchScore: {
                serializedName: "searchScore",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            vectorSimilarity: {
                serializedName: "vectorSimilarity",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const SuggestDocumentsResult = {
    type: {
        name: "Composite",
        className: "SuggestDocumentsResult",
        modelProperties: {
            results: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SuggestResult",
                        },
                    },
                },
            },
            coverage: {
                serializedName: "@search\\.coverage",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const SuggestResult = {
    type: {
        name: "Composite",
        className: "SuggestResult",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            _text: {
                serializedName: "@search\\.text",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SuggestRequest = {
    type: {
        name: "Composite",
        className: "SuggestRequest",
        modelProperties: {
            filter: {
                serializedName: "filter",
                type: {
                    name: "String",
                },
            },
            useFuzzyMatching: {
                serializedName: "fuzzy",
                type: {
                    name: "Boolean",
                },
            },
            highlightPostTag: {
                serializedName: "highlightPostTag",
                type: {
                    name: "String",
                },
            },
            highlightPreTag: {
                serializedName: "highlightPreTag",
                type: {
                    name: "String",
                },
            },
            minimumCoverage: {
                serializedName: "minimumCoverage",
                type: {
                    name: "Number",
                },
            },
            orderBy: {
                serializedName: "orderby",
                type: {
                    name: "String",
                },
            },
            searchText: {
                serializedName: "search",
                required: true,
                type: {
                    name: "String",
                },
            },
            searchFields: {
                serializedName: "searchFields",
                type: {
                    name: "String",
                },
            },
            select: {
                serializedName: "select",
                type: {
                    name: "String",
                },
            },
            suggesterName: {
                serializedName: "suggesterName",
                required: true,
                type: {
                    name: "String",
                },
            },
            top: {
                serializedName: "top",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const IndexBatch = {
    type: {
        name: "Composite",
        className: "IndexBatch",
        modelProperties: {
            actions: {
                serializedName: "value",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "IndexAction",
                        },
                    },
                },
            },
        },
    },
};
export const IndexAction = {
    type: {
        name: "Composite",
        className: "IndexAction",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            __actionType: {
                serializedName: "@search\\.action",
                required: true,
                type: {
                    name: "Enum",
                    allowedValues: ["upload", "merge", "mergeOrUpload", "delete"],
                },
            },
        },
    },
};
export const IndexDocumentsResult = {
    type: {
        name: "Composite",
        className: "IndexDocumentsResult",
        modelProperties: {
            results: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "IndexingResult",
                        },
                    },
                },
            },
        },
    },
};
export const IndexingResult = {
    type: {
        name: "Composite",
        className: "IndexingResult",
        modelProperties: {
            key: {
                serializedName: "key",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            errorMessage: {
                serializedName: "errorMessage",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            succeeded: {
                serializedName: "status",
                required: true,
                readOnly: true,
                type: {
                    name: "Boolean",
                },
            },
            statusCode: {
                serializedName: "statusCode",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const AutocompleteResult = {
    type: {
        name: "Composite",
        className: "AutocompleteResult",
        modelProperties: {
            coverage: {
                serializedName: "@search\\.coverage",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            results: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "AutocompleteItem",
                        },
                    },
                },
            },
        },
    },
};
export const AutocompleteItem = {
    type: {
        name: "Composite",
        className: "AutocompleteItem",
        modelProperties: {
            text: {
                serializedName: "text",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            queryPlusText: {
                serializedName: "queryPlusText",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const AutocompleteRequest = {
    type: {
        name: "Composite",
        className: "AutocompleteRequest",
        modelProperties: {
            searchText: {
                serializedName: "search",
                required: true,
                type: {
                    name: "String",
                },
            },
            autocompleteMode: {
                serializedName: "autocompleteMode",
                type: {
                    name: "Enum",
                    allowedValues: ["oneTerm", "twoTerms", "oneTermWithContext"],
                },
            },
            filter: {
                serializedName: "filter",
                type: {
                    name: "String",
                },
            },
            useFuzzyMatching: {
                serializedName: "fuzzy",
                type: {
                    name: "Boolean",
                },
            },
            highlightPostTag: {
                serializedName: "highlightPostTag",
                type: {
                    name: "String",
                },
            },
            highlightPreTag: {
                serializedName: "highlightPreTag",
                type: {
                    name: "String",
                },
            },
            minimumCoverage: {
                serializedName: "minimumCoverage",
                type: {
                    name: "Number",
                },
            },
            searchFields: {
                serializedName: "searchFields",
                type: {
                    name: "String",
                },
            },
            suggesterName: {
                serializedName: "suggesterName",
                required: true,
                type: {
                    name: "String",
                },
            },
            top: {
                serializedName: "top",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const VectorizedQuery = {
    serializedName: "vector",
    type: {
        name: "Composite",
        className: "VectorizedQuery",
        uberParent: "VectorQuery",
        polymorphicDiscriminator: VectorQuery.type.polymorphicDiscriminator,
        modelProperties: {
            ...VectorQuery.type.modelProperties,
            vector: {
                serializedName: "vector",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Number",
                        },
                    },
                },
            },
        },
    },
};
export const VectorizableTextQuery = {
    serializedName: "text",
    type: {
        name: "Composite",
        className: "VectorizableTextQuery",
        uberParent: "VectorQuery",
        polymorphicDiscriminator: VectorQuery.type.polymorphicDiscriminator,
        modelProperties: {
            ...VectorQuery.type.modelProperties,
            text: {
                serializedName: "text",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export let discriminators = {
    VectorQuery: VectorQuery,
    "VectorQuery.vector": VectorizedQuery,
    "VectorQuery.text": VectorizableTextQuery,
};
//# sourceMappingURL=mappers.js.map