/*
 * 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 SearchIndexerDataSource = {
    type: {
        name: "Composite",
        className: "SearchIndexerDataSource",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            description: {
                serializedName: "description",
                type: {
                    name: "String",
                },
            },
            type: {
                serializedName: "type",
                required: true,
                type: {
                    name: "String",
                },
            },
            credentials: {
                serializedName: "credentials",
                type: {
                    name: "Composite",
                    className: "DataSourceCredentials",
                },
            },
            container: {
                serializedName: "container",
                type: {
                    name: "Composite",
                    className: "SearchIndexerDataContainer",
                },
            },
            dataChangeDetectionPolicy: {
                serializedName: "dataChangeDetectionPolicy",
                type: {
                    name: "Composite",
                    className: "DataChangeDetectionPolicy",
                },
            },
            dataDeletionDetectionPolicy: {
                serializedName: "dataDeletionDetectionPolicy",
                type: {
                    name: "Composite",
                    className: "DataDeletionDetectionPolicy",
                },
            },
            etag: {
                serializedName: "@odata\\.etag",
                type: {
                    name: "String",
                },
            },
            encryptionKey: {
                serializedName: "encryptionKey",
                type: {
                    name: "Composite",
                    className: "SearchResourceEncryptionKey",
                },
            },
        },
    },
};
export const DataSourceCredentials = {
    type: {
        name: "Composite",
        className: "DataSourceCredentials",
        modelProperties: {
            connectionString: {
                serializedName: "connectionString",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerDataContainer = {
    type: {
        name: "Composite",
        className: "SearchIndexerDataContainer",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            query: {
                serializedName: "query",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const DataChangeDetectionPolicy = {
    type: {
        name: "Composite",
        className: "DataChangeDetectionPolicy",
        uberParent: "DataChangeDetectionPolicy",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const DataDeletionDetectionPolicy = {
    type: {
        name: "Composite",
        className: "DataDeletionDetectionPolicy",
        uberParent: "DataDeletionDetectionPolicy",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchResourceEncryptionKey = {
    type: {
        name: "Composite",
        className: "SearchResourceEncryptionKey",
        modelProperties: {
            keyName: {
                serializedName: "keyVaultKeyName",
                required: true,
                type: {
                    name: "String",
                },
            },
            keyVersion: {
                serializedName: "keyVaultKeyVersion",
                required: true,
                type: {
                    name: "String",
                },
            },
            vaultUri: {
                serializedName: "keyVaultUri",
                required: true,
                type: {
                    name: "String",
                },
            },
            accessCredentials: {
                serializedName: "accessCredentials",
                type: {
                    name: "Composite",
                    className: "AzureActiveDirectoryApplicationCredentials",
                },
            },
        },
    },
};
export const AzureActiveDirectoryApplicationCredentials = {
    type: {
        name: "Composite",
        className: "AzureActiveDirectoryApplicationCredentials",
        modelProperties: {
            applicationId: {
                serializedName: "applicationId",
                required: true,
                type: {
                    name: "String",
                },
            },
            applicationSecret: {
                serializedName: "applicationSecret",
                type: {
                    name: "String",
                },
            },
        },
    },
};
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 ListDataSourcesResult = {
    type: {
        name: "Composite",
        className: "ListDataSourcesResult",
        modelProperties: {
            dataSources: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerDataSource",
                        },
                    },
                },
            },
        },
    },
};
export const SearchIndexer = {
    type: {
        name: "Composite",
        className: "SearchIndexer",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            description: {
                serializedName: "description",
                type: {
                    name: "String",
                },
            },
            dataSourceName: {
                serializedName: "dataSourceName",
                required: true,
                type: {
                    name: "String",
                },
            },
            skillsetName: {
                serializedName: "skillsetName",
                type: {
                    name: "String",
                },
            },
            targetIndexName: {
                serializedName: "targetIndexName",
                required: true,
                type: {
                    name: "String",
                },
            },
            schedule: {
                serializedName: "schedule",
                type: {
                    name: "Composite",
                    className: "IndexingSchedule",
                },
            },
            parameters: {
                serializedName: "parameters",
                type: {
                    name: "Composite",
                    className: "IndexingParameters",
                },
            },
            fieldMappings: {
                serializedName: "fieldMappings",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "FieldMapping",
                        },
                    },
                },
            },
            outputFieldMappings: {
                serializedName: "outputFieldMappings",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "FieldMapping",
                        },
                    },
                },
            },
            isDisabled: {
                defaultValue: false,
                serializedName: "disabled",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            etag: {
                serializedName: "@odata\\.etag",
                type: {
                    name: "String",
                },
            },
            encryptionKey: {
                serializedName: "encryptionKey",
                type: {
                    name: "Composite",
                    className: "SearchResourceEncryptionKey",
                },
            },
        },
    },
};
export const IndexingSchedule = {
    type: {
        name: "Composite",
        className: "IndexingSchedule",
        modelProperties: {
            interval: {
                serializedName: "interval",
                required: true,
                type: {
                    name: "TimeSpan",
                },
            },
            startTime: {
                serializedName: "startTime",
                type: {
                    name: "DateTime",
                },
            },
        },
    },
};
export const IndexingParameters = {
    type: {
        name: "Composite",
        className: "IndexingParameters",
        modelProperties: {
            batchSize: {
                serializedName: "batchSize",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            maxFailedItems: {
                defaultValue: 0,
                serializedName: "maxFailedItems",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            maxFailedItemsPerBatch: {
                defaultValue: 0,
                serializedName: "maxFailedItemsPerBatch",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            configuration: {
                serializedName: "configuration",
                type: {
                    name: "Composite",
                    className: "IndexingParametersConfiguration",
                },
            },
        },
    },
};
export const IndexingParametersConfiguration = {
    type: {
        name: "Composite",
        className: "IndexingParametersConfiguration",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            parsingMode: {
                defaultValue: "default",
                serializedName: "parsingMode",
                type: {
                    name: "String",
                },
            },
            excludedFileNameExtensions: {
                defaultValue: "",
                serializedName: "excludedFileNameExtensions",
                type: {
                    name: "String",
                },
            },
            indexedFileNameExtensions: {
                defaultValue: "",
                serializedName: "indexedFileNameExtensions",
                type: {
                    name: "String",
                },
            },
            failOnUnsupportedContentType: {
                defaultValue: false,
                serializedName: "failOnUnsupportedContentType",
                type: {
                    name: "Boolean",
                },
            },
            failOnUnprocessableDocument: {
                defaultValue: false,
                serializedName: "failOnUnprocessableDocument",
                type: {
                    name: "Boolean",
                },
            },
            indexStorageMetadataOnlyForOversizedDocuments: {
                defaultValue: false,
                serializedName: "indexStorageMetadataOnlyForOversizedDocuments",
                type: {
                    name: "Boolean",
                },
            },
            delimitedTextHeaders: {
                serializedName: "delimitedTextHeaders",
                type: {
                    name: "String",
                },
            },
            delimitedTextDelimiter: {
                serializedName: "delimitedTextDelimiter",
                type: {
                    name: "String",
                },
            },
            firstLineContainsHeaders: {
                defaultValue: true,
                serializedName: "firstLineContainsHeaders",
                type: {
                    name: "Boolean",
                },
            },
            documentRoot: {
                serializedName: "documentRoot",
                type: {
                    name: "String",
                },
            },
            dataToExtract: {
                defaultValue: "contentAndMetadata",
                serializedName: "dataToExtract",
                type: {
                    name: "String",
                },
            },
            imageAction: {
                defaultValue: "none",
                serializedName: "imageAction",
                type: {
                    name: "String",
                },
            },
            allowSkillsetToReadFileData: {
                defaultValue: false,
                serializedName: "allowSkillsetToReadFileData",
                type: {
                    name: "Boolean",
                },
            },
            pdfTextRotationAlgorithm: {
                defaultValue: "none",
                serializedName: "pdfTextRotationAlgorithm",
                type: {
                    name: "String",
                },
            },
            executionEnvironment: {
                defaultValue: "standard",
                serializedName: "executionEnvironment",
                type: {
                    name: "String",
                },
            },
            queryTimeout: {
                defaultValue: "00:05:00",
                serializedName: "queryTimeout",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const FieldMapping = {
    type: {
        name: "Composite",
        className: "FieldMapping",
        modelProperties: {
            sourceFieldName: {
                serializedName: "sourceFieldName",
                required: true,
                type: {
                    name: "String",
                },
            },
            targetFieldName: {
                serializedName: "targetFieldName",
                type: {
                    name: "String",
                },
            },
            mappingFunction: {
                serializedName: "mappingFunction",
                type: {
                    name: "Composite",
                    className: "FieldMappingFunction",
                },
            },
        },
    },
};
export const FieldMappingFunction = {
    type: {
        name: "Composite",
        className: "FieldMappingFunction",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            parameters: {
                serializedName: "parameters",
                nullable: true,
                type: {
                    name: "Dictionary",
                    value: { type: { name: "any" } },
                },
            },
        },
    },
};
export const ListIndexersResult = {
    type: {
        name: "Composite",
        className: "ListIndexersResult",
        modelProperties: {
            indexers: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexer",
                        },
                    },
                },
            },
        },
    },
};
export const SearchIndexerStatus = {
    type: {
        name: "Composite",
        className: "SearchIndexerStatus",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            status: {
                serializedName: "status",
                required: true,
                readOnly: true,
                type: {
                    name: "Enum",
                    allowedValues: ["unknown", "error", "running"],
                },
            },
            lastResult: {
                serializedName: "lastResult",
                type: {
                    name: "Composite",
                    className: "IndexerExecutionResult",
                },
            },
            executionHistory: {
                serializedName: "executionHistory",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "IndexerExecutionResult",
                        },
                    },
                },
            },
            limits: {
                serializedName: "limits",
                type: {
                    name: "Composite",
                    className: "SearchIndexerLimits",
                },
            },
        },
    },
};
export const IndexerExecutionResult = {
    type: {
        name: "Composite",
        className: "IndexerExecutionResult",
        modelProperties: {
            status: {
                serializedName: "status",
                required: true,
                readOnly: true,
                type: {
                    name: "Enum",
                    allowedValues: ["transientFailure", "success", "inProgress", "reset"],
                },
            },
            errorMessage: {
                serializedName: "errorMessage",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            startTime: {
                serializedName: "startTime",
                readOnly: true,
                type: {
                    name: "DateTime",
                },
            },
            endTime: {
                serializedName: "endTime",
                readOnly: true,
                nullable: true,
                type: {
                    name: "DateTime",
                },
            },
            errors: {
                serializedName: "errors",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerError",
                        },
                    },
                },
            },
            warnings: {
                serializedName: "warnings",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerWarning",
                        },
                    },
                },
            },
            itemCount: {
                serializedName: "itemsProcessed",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            failedItemCount: {
                serializedName: "itemsFailed",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            initialTrackingState: {
                serializedName: "initialTrackingState",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            finalTrackingState: {
                serializedName: "finalTrackingState",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerError = {
    type: {
        name: "Composite",
        className: "SearchIndexerError",
        modelProperties: {
            key: {
                serializedName: "key",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            errorMessage: {
                serializedName: "errorMessage",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            statusCode: {
                serializedName: "statusCode",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            name: {
                serializedName: "name",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            details: {
                serializedName: "details",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            documentationLink: {
                serializedName: "documentationLink",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerWarning = {
    type: {
        name: "Composite",
        className: "SearchIndexerWarning",
        modelProperties: {
            key: {
                serializedName: "key",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            message: {
                serializedName: "message",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            name: {
                serializedName: "name",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            details: {
                serializedName: "details",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            documentationLink: {
                serializedName: "documentationLink",
                readOnly: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerLimits = {
    type: {
        name: "Composite",
        className: "SearchIndexerLimits",
        modelProperties: {
            maxRunTime: {
                serializedName: "maxRunTime",
                readOnly: true,
                type: {
                    name: "TimeSpan",
                },
            },
            maxDocumentExtractionSize: {
                serializedName: "maxDocumentExtractionSize",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            maxDocumentContentCharactersToExtract: {
                serializedName: "maxDocumentContentCharactersToExtract",
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const SearchIndexerSkillset = {
    type: {
        name: "Composite",
        className: "SearchIndexerSkillset",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            description: {
                serializedName: "description",
                type: {
                    name: "String",
                },
            },
            skills: {
                serializedName: "skills",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerSkill",
                        },
                    },
                },
            },
            cognitiveServicesAccount: {
                serializedName: "cognitiveServices",
                type: {
                    name: "Composite",
                    className: "CognitiveServicesAccount",
                },
            },
            knowledgeStore: {
                serializedName: "knowledgeStore",
                type: {
                    name: "Composite",
                    className: "SearchIndexerKnowledgeStore",
                },
            },
            indexProjection: {
                serializedName: "indexProjections",
                type: {
                    name: "Composite",
                    className: "SearchIndexerIndexProjection",
                },
            },
            etag: {
                serializedName: "@odata\\.etag",
                type: {
                    name: "String",
                },
            },
            encryptionKey: {
                serializedName: "encryptionKey",
                type: {
                    name: "Composite",
                    className: "SearchResourceEncryptionKey",
                },
            },
        },
    },
};
export const SearchIndexerSkill = {
    type: {
        name: "Composite",
        className: "SearchIndexerSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
            name: {
                serializedName: "name",
                type: {
                    name: "String",
                },
            },
            description: {
                serializedName: "description",
                type: {
                    name: "String",
                },
            },
            context: {
                serializedName: "context",
                type: {
                    name: "String",
                },
            },
            inputs: {
                serializedName: "inputs",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "InputFieldMappingEntry",
                        },
                    },
                },
            },
            outputs: {
                serializedName: "outputs",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "OutputFieldMappingEntry",
                        },
                    },
                },
            },
        },
    },
};
export const InputFieldMappingEntry = {
    type: {
        name: "Composite",
        className: "InputFieldMappingEntry",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            source: {
                serializedName: "source",
                type: {
                    name: "String",
                },
            },
            sourceContext: {
                serializedName: "sourceContext",
                type: {
                    name: "String",
                },
            },
            inputs: {
                serializedName: "inputs",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "InputFieldMappingEntry",
                        },
                    },
                },
            },
        },
    },
};
export const OutputFieldMappingEntry = {
    type: {
        name: "Composite",
        className: "OutputFieldMappingEntry",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            targetName: {
                serializedName: "targetName",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const CognitiveServicesAccount = {
    type: {
        name: "Composite",
        className: "CognitiveServicesAccount",
        uberParent: "CognitiveServicesAccount",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
            description: {
                serializedName: "description",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerKnowledgeStore = {
    type: {
        name: "Composite",
        className: "SearchIndexerKnowledgeStore",
        modelProperties: {
            storageConnectionString: {
                serializedName: "storageConnectionString",
                required: true,
                type: {
                    name: "String",
                },
            },
            projections: {
                serializedName: "projections",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerKnowledgeStoreProjection",
                        },
                    },
                },
            },
        },
    },
};
export const SearchIndexerKnowledgeStoreProjection = {
    type: {
        name: "Composite",
        className: "SearchIndexerKnowledgeStoreProjection",
        modelProperties: {
            tables: {
                serializedName: "tables",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerKnowledgeStoreTableProjectionSelector",
                        },
                    },
                },
            },
            objects: {
                serializedName: "objects",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerKnowledgeStoreObjectProjectionSelector",
                        },
                    },
                },
            },
            files: {
                serializedName: "files",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerKnowledgeStoreFileProjectionSelector",
                        },
                    },
                },
            },
        },
    },
};
export const SearchIndexerKnowledgeStoreProjectionSelector = {
    type: {
        name: "Composite",
        className: "SearchIndexerKnowledgeStoreProjectionSelector",
        modelProperties: {
            referenceKeyName: {
                serializedName: "referenceKeyName",
                type: {
                    name: "String",
                },
            },
            generatedKeyName: {
                serializedName: "generatedKeyName",
                type: {
                    name: "String",
                },
            },
            source: {
                serializedName: "source",
                type: {
                    name: "String",
                },
            },
            sourceContext: {
                serializedName: "sourceContext",
                type: {
                    name: "String",
                },
            },
            inputs: {
                serializedName: "inputs",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "InputFieldMappingEntry",
                        },
                    },
                },
            },
        },
    },
};
export const SearchIndexerIndexProjection = {
    type: {
        name: "Composite",
        className: "SearchIndexerIndexProjection",
        modelProperties: {
            selectors: {
                serializedName: "selectors",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerIndexProjectionSelector",
                        },
                    },
                },
            },
            parameters: {
                serializedName: "parameters",
                type: {
                    name: "Composite",
                    className: "SearchIndexerIndexProjectionParameters",
                },
            },
        },
    },
};
export const SearchIndexerIndexProjectionSelector = {
    type: {
        name: "Composite",
        className: "SearchIndexerIndexProjectionSelector",
        modelProperties: {
            targetIndexName: {
                serializedName: "targetIndexName",
                required: true,
                type: {
                    name: "String",
                },
            },
            parentKeyFieldName: {
                serializedName: "parentKeyFieldName",
                required: true,
                type: {
                    name: "String",
                },
            },
            sourceContext: {
                serializedName: "sourceContext",
                required: true,
                type: {
                    name: "String",
                },
            },
            mappings: {
                serializedName: "mappings",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "InputFieldMappingEntry",
                        },
                    },
                },
            },
        },
    },
};
export const SearchIndexerIndexProjectionParameters = {
    type: {
        name: "Composite",
        className: "SearchIndexerIndexProjectionParameters",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            projectionMode: {
                serializedName: "projectionMode",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const ListSkillsetsResult = {
    type: {
        name: "Composite",
        className: "ListSkillsetsResult",
        modelProperties: {
            skillsets: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndexerSkillset",
                        },
                    },
                },
            },
        },
    },
};
export const SynonymMap = {
    type: {
        name: "Composite",
        className: "SynonymMap",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            format: {
                defaultValue: "solr",
                isConstant: true,
                serializedName: "format",
                type: {
                    name: "String",
                },
            },
            synonyms: {
                serializedName: "synonyms",
                required: true,
                type: {
                    name: "String",
                },
            },
            encryptionKey: {
                serializedName: "encryptionKey",
                type: {
                    name: "Composite",
                    className: "SearchResourceEncryptionKey",
                },
            },
            etag: {
                serializedName: "@odata\\.etag",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const ListSynonymMapsResult = {
    type: {
        name: "Composite",
        className: "ListSynonymMapsResult",
        modelProperties: {
            synonymMaps: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SynonymMap",
                        },
                    },
                },
            },
        },
    },
};
export const SearchIndex = {
    type: {
        name: "Composite",
        className: "SearchIndex",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            description: {
                serializedName: "description",
                type: {
                    name: "String",
                },
            },
            fields: {
                serializedName: "fields",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchField",
                        },
                    },
                },
            },
            scoringProfiles: {
                serializedName: "scoringProfiles",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "ScoringProfile",
                        },
                    },
                },
            },
            defaultScoringProfile: {
                serializedName: "defaultScoringProfile",
                type: {
                    name: "String",
                },
            },
            corsOptions: {
                serializedName: "corsOptions",
                type: {
                    name: "Composite",
                    className: "CorsOptions",
                },
            },
            suggesters: {
                serializedName: "suggesters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "Suggester",
                        },
                    },
                },
            },
            analyzers: {
                serializedName: "analyzers",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "LexicalAnalyzer",
                        },
                    },
                },
            },
            tokenizers: {
                serializedName: "tokenizers",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "LexicalTokenizer",
                        },
                    },
                },
            },
            tokenFilters: {
                serializedName: "tokenFilters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "TokenFilter",
                        },
                    },
                },
            },
            charFilters: {
                serializedName: "charFilters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "CharFilter",
                        },
                    },
                },
            },
            normalizers: {
                serializedName: "normalizers",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "BaseLexicalNormalizer",
                        },
                    },
                },
            },
            encryptionKey: {
                serializedName: "encryptionKey",
                type: {
                    name: "Composite",
                    className: "SearchResourceEncryptionKey",
                },
            },
            similarity: {
                serializedName: "similarity",
                type: {
                    name: "Composite",
                    className: "Similarity",
                },
            },
            semanticSearch: {
                serializedName: "semantic",
                type: {
                    name: "Composite",
                    className: "SemanticSearch",
                },
            },
            vectorSearch: {
                serializedName: "vectorSearch",
                type: {
                    name: "Composite",
                    className: "VectorSearch",
                },
            },
            etag: {
                serializedName: "@odata\\.etag",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchField = {
    type: {
        name: "Composite",
        className: "SearchField",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            type: {
                serializedName: "type",
                required: true,
                type: {
                    name: "String",
                },
            },
            key: {
                serializedName: "key",
                type: {
                    name: "Boolean",
                },
            },
            retrievable: {
                serializedName: "retrievable",
                type: {
                    name: "Boolean",
                },
            },
            stored: {
                serializedName: "stored",
                type: {
                    name: "Boolean",
                },
            },
            searchable: {
                serializedName: "searchable",
                type: {
                    name: "Boolean",
                },
            },
            filterable: {
                serializedName: "filterable",
                type: {
                    name: "Boolean",
                },
            },
            sortable: {
                serializedName: "sortable",
                type: {
                    name: "Boolean",
                },
            },
            facetable: {
                serializedName: "facetable",
                type: {
                    name: "Boolean",
                },
            },
            analyzer: {
                serializedName: "analyzer",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            searchAnalyzer: {
                serializedName: "searchAnalyzer",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            indexAnalyzer: {
                serializedName: "indexAnalyzer",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            normalizer: {
                serializedName: "normalizer",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            vectorSearchDimensions: {
                constraints: {
                    InclusiveMaximum: 4096,
                    InclusiveMinimum: 2,
                },
                serializedName: "dimensions",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            vectorSearchProfileName: {
                serializedName: "vectorSearchProfile",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            vectorEncodingFormat: {
                serializedName: "vectorEncoding",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            synonymMaps: {
                serializedName: "synonymMaps",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            fields: {
                serializedName: "fields",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchField",
                        },
                    },
                },
            },
        },
    },
};
export const ScoringProfile = {
    type: {
        name: "Composite",
        className: "ScoringProfile",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            textWeights: {
                serializedName: "text",
                type: {
                    name: "Composite",
                    className: "TextWeights",
                },
            },
            functions: {
                serializedName: "functions",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "ScoringFunction",
                        },
                    },
                },
            },
            functionAggregation: {
                serializedName: "functionAggregation",
                type: {
                    name: "Enum",
                    allowedValues: [
                        "sum",
                        "average",
                        "minimum",
                        "maximum",
                        "firstMatching",
                    ],
                },
            },
        },
    },
};
export const TextWeights = {
    type: {
        name: "Composite",
        className: "TextWeights",
        modelProperties: {
            weights: {
                serializedName: "weights",
                required: true,
                type: {
                    name: "Dictionary",
                    value: { type: { name: "Number" } },
                },
            },
        },
    },
};
export const ScoringFunction = {
    type: {
        name: "Composite",
        className: "ScoringFunction",
        uberParent: "ScoringFunction",
        polymorphicDiscriminator: {
            serializedName: "type",
            clientName: "type",
        },
        modelProperties: {
            type: {
                serializedName: "type",
                required: true,
                type: {
                    name: "String",
                },
            },
            fieldName: {
                serializedName: "fieldName",
                required: true,
                type: {
                    name: "String",
                },
            },
            boost: {
                serializedName: "boost",
                required: true,
                type: {
                    name: "Number",
                },
            },
            interpolation: {
                serializedName: "interpolation",
                type: {
                    name: "Enum",
                    allowedValues: ["linear", "constant", "quadratic", "logarithmic"],
                },
            },
        },
    },
};
export const CorsOptions = {
    type: {
        name: "Composite",
        className: "CorsOptions",
        modelProperties: {
            allowedOrigins: {
                serializedName: "allowedOrigins",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            maxAgeInSeconds: {
                serializedName: "maxAgeInSeconds",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const Suggester = {
    type: {
        name: "Composite",
        className: "Suggester",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            searchMode: {
                defaultValue: "analyzingInfixMatching",
                isConstant: true,
                serializedName: "searchMode",
                type: {
                    name: "String",
                },
            },
            sourceFields: {
                serializedName: "sourceFields",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const LexicalAnalyzer = {
    type: {
        name: "Composite",
        className: "LexicalAnalyzer",
        uberParent: "LexicalAnalyzer",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const LexicalTokenizer = {
    type: {
        name: "Composite",
        className: "LexicalTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const TokenFilter = {
    type: {
        name: "Composite",
        className: "TokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const CharFilter = {
    type: {
        name: "Composite",
        className: "CharFilter",
        uberParent: "CharFilter",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const BaseLexicalNormalizer = {
    type: {
        name: "Composite",
        className: "BaseLexicalNormalizer",
        uberParent: "BaseLexicalNormalizer",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const Similarity = {
    type: {
        name: "Composite",
        className: "Similarity",
        uberParent: "Similarity",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SemanticSearch = {
    type: {
        name: "Composite",
        className: "SemanticSearch",
        modelProperties: {
            defaultConfigurationName: {
                serializedName: "defaultConfiguration",
                type: {
                    name: "String",
                },
            },
            configurations: {
                serializedName: "configurations",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SemanticConfiguration",
                        },
                    },
                },
            },
        },
    },
};
export const SemanticConfiguration = {
    type: {
        name: "Composite",
        className: "SemanticConfiguration",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            prioritizedFields: {
                serializedName: "prioritizedFields",
                type: {
                    name: "Composite",
                    className: "SemanticPrioritizedFields",
                },
            },
            rankingOrder: {
                serializedName: "rankingOrder",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SemanticPrioritizedFields = {
    type: {
        name: "Composite",
        className: "SemanticPrioritizedFields",
        modelProperties: {
            titleField: {
                serializedName: "titleField",
                type: {
                    name: "Composite",
                    className: "SemanticField",
                },
            },
            contentFields: {
                serializedName: "prioritizedContentFields",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SemanticField",
                        },
                    },
                },
            },
            keywordsFields: {
                serializedName: "prioritizedKeywordsFields",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SemanticField",
                        },
                    },
                },
            },
        },
    },
};
export const SemanticField = {
    type: {
        name: "Composite",
        className: "SemanticField",
        modelProperties: {
            name: {
                serializedName: "fieldName",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const VectorSearch = {
    type: {
        name: "Composite",
        className: "VectorSearch",
        modelProperties: {
            profiles: {
                serializedName: "profiles",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "VectorSearchProfile",
                        },
                    },
                },
            },
            algorithms: {
                serializedName: "algorithms",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "VectorSearchAlgorithmConfiguration",
                        },
                    },
                },
            },
            vectorizers: {
                serializedName: "vectorizers",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "VectorSearchVectorizer",
                        },
                    },
                },
            },
            compressions: {
                serializedName: "compressions",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "VectorSearchCompression",
                        },
                    },
                },
            },
        },
    },
};
export const VectorSearchProfile = {
    type: {
        name: "Composite",
        className: "VectorSearchProfile",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            algorithmConfigurationName: {
                serializedName: "algorithm",
                required: true,
                type: {
                    name: "String",
                },
            },
            vectorizerName: {
                serializedName: "vectorizer",
                type: {
                    name: "String",
                },
            },
            compressionName: {
                serializedName: "compression",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const VectorSearchAlgorithmConfiguration = {
    type: {
        name: "Composite",
        className: "VectorSearchAlgorithmConfiguration",
        uberParent: "VectorSearchAlgorithmConfiguration",
        polymorphicDiscriminator: {
            serializedName: "kind",
            clientName: "kind",
        },
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            kind: {
                serializedName: "kind",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const VectorSearchVectorizer = {
    type: {
        name: "Composite",
        className: "VectorSearchVectorizer",
        uberParent: "VectorSearchVectorizer",
        polymorphicDiscriminator: {
            serializedName: "kind",
            clientName: "kind",
        },
        modelProperties: {
            vectorizerName: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            kind: {
                serializedName: "kind",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const VectorSearchCompression = {
    type: {
        name: "Composite",
        className: "VectorSearchCompression",
        uberParent: "VectorSearchCompression",
        polymorphicDiscriminator: {
            serializedName: "kind",
            clientName: "kind",
        },
        modelProperties: {
            compressionName: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            kind: {
                serializedName: "kind",
                required: true,
                type: {
                    name: "String",
                },
            },
            rescoringOptions: {
                serializedName: "rescoringOptions",
                type: {
                    name: "Composite",
                    className: "RescoringOptions",
                },
            },
            truncationDimension: {
                serializedName: "truncationDimension",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            rerankWithOriginalVectors: {
                serializedName: "rerankWithOriginalVectors",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            defaultOversampling: {
                serializedName: "defaultOversampling",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const RescoringOptions = {
    type: {
        name: "Composite",
        className: "RescoringOptions",
        modelProperties: {
            enableRescoring: {
                defaultValue: true,
                serializedName: "enableRescoring",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            defaultOversampling: {
                serializedName: "defaultOversampling",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            rescoreStorageMethod: {
                serializedName: "rescoreStorageMethod",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const ListIndexesResult = {
    type: {
        name: "Composite",
        className: "ListIndexesResult",
        modelProperties: {
            indexes: {
                serializedName: "value",
                required: true,
                readOnly: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "SearchIndex",
                        },
                    },
                },
            },
        },
    },
};
export const GetIndexStatisticsResult = {
    type: {
        name: "Composite",
        className: "GetIndexStatisticsResult",
        modelProperties: {
            documentCount: {
                serializedName: "documentCount",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            storageSize: {
                serializedName: "storageSize",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            vectorIndexSize: {
                serializedName: "vectorIndexSize",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const AnalyzeRequest = {
    type: {
        name: "Composite",
        className: "AnalyzeRequest",
        modelProperties: {
            text: {
                serializedName: "text",
                required: true,
                type: {
                    name: "String",
                },
            },
            analyzer: {
                serializedName: "analyzer",
                type: {
                    name: "String",
                },
            },
            tokenizer: {
                serializedName: "tokenizer",
                type: {
                    name: "String",
                },
            },
            normalizer: {
                serializedName: "normalizer",
                type: {
                    name: "String",
                },
            },
            tokenFilters: {
                serializedName: "tokenFilters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            charFilters: {
                serializedName: "charFilters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const AnalyzeResult = {
    type: {
        name: "Composite",
        className: "AnalyzeResult",
        modelProperties: {
            tokens: {
                serializedName: "tokens",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "AnalyzedTokenInfo",
                        },
                    },
                },
            },
        },
    },
};
export const AnalyzedTokenInfo = {
    type: {
        name: "Composite",
        className: "AnalyzedTokenInfo",
        modelProperties: {
            token: {
                serializedName: "token",
                required: true,
                readOnly: true,
                type: {
                    name: "String",
                },
            },
            startOffset: {
                serializedName: "startOffset",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            endOffset: {
                serializedName: "endOffset",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
            position: {
                serializedName: "position",
                required: true,
                readOnly: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const ServiceStatistics = {
    type: {
        name: "Composite",
        className: "ServiceStatistics",
        modelProperties: {
            counters: {
                serializedName: "counters",
                type: {
                    name: "Composite",
                    className: "ServiceCounters",
                },
            },
            limits: {
                serializedName: "limits",
                type: {
                    name: "Composite",
                    className: "ServiceLimits",
                },
            },
        },
    },
};
export const ServiceCounters = {
    type: {
        name: "Composite",
        className: "ServiceCounters",
        modelProperties: {
            documentCounter: {
                serializedName: "documentCount",
                type: {
                    name: "Composite",
                    className: "ResourceCounter",
                },
            },
            indexCounter: {
                serializedName: "indexesCount",
                type: {
                    name: "Composite",
                    className: "ResourceCounter",
                },
            },
            indexerCounter: {
                serializedName: "indexersCount",
                type: {
                    name: "Composite",
                    className: "ResourceCounter",
                },
            },
            dataSourceCounter: {
                serializedName: "dataSourcesCount",
                type: {
                    name: "Composite",
                    className: "ResourceCounter",
                },
            },
            storageSizeCounter: {
                serializedName: "storageSize",
                type: {
                    name: "Composite",
                    className: "ResourceCounter",
                },
            },
            synonymMapCounter: {
                serializedName: "synonymMaps",
                type: {
                    name: "Composite",
                    className: "ResourceCounter",
                },
            },
            skillsetCounter: {
                serializedName: "skillsetCount",
                type: {
                    name: "Composite",
                    className: "ResourceCounter",
                },
            },
            vectorIndexSizeCounter: {
                serializedName: "vectorIndexSize",
                type: {
                    name: "Composite",
                    className: "ResourceCounter",
                },
            },
        },
    },
};
export const ResourceCounter = {
    type: {
        name: "Composite",
        className: "ResourceCounter",
        modelProperties: {
            usage: {
                serializedName: "usage",
                required: true,
                type: {
                    name: "Number",
                },
            },
            quota: {
                serializedName: "quota",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const ServiceLimits = {
    type: {
        name: "Composite",
        className: "ServiceLimits",
        modelProperties: {
            maxFieldsPerIndex: {
                serializedName: "maxFieldsPerIndex",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            maxFieldNestingDepthPerIndex: {
                serializedName: "maxFieldNestingDepthPerIndex",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            maxComplexCollectionFieldsPerIndex: {
                serializedName: "maxComplexCollectionFieldsPerIndex",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            maxComplexObjectsInCollectionsPerDocument: {
                serializedName: "maxComplexObjectsInCollectionsPerDocument",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            maxStoragePerIndexInBytes: {
                serializedName: "maxStoragePerIndex",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const HnswParameters = {
    type: {
        name: "Composite",
        className: "HnswParameters",
        modelProperties: {
            m: {
                defaultValue: 4,
                constraints: {
                    InclusiveMaximum: 10,
                    InclusiveMinimum: 4,
                },
                serializedName: "m",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            efConstruction: {
                defaultValue: 400,
                constraints: {
                    InclusiveMaximum: 1000,
                    InclusiveMinimum: 100,
                },
                serializedName: "efConstruction",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            efSearch: {
                defaultValue: 500,
                constraints: {
                    InclusiveMaximum: 1000,
                    InclusiveMinimum: 100,
                },
                serializedName: "efSearch",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            metric: {
                serializedName: "metric",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const ExhaustiveKnnParameters = {
    type: {
        name: "Composite",
        className: "ExhaustiveKnnParameters",
        modelProperties: {
            metric: {
                serializedName: "metric",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const ScalarQuantizationParameters = {
    type: {
        name: "Composite",
        className: "ScalarQuantizationParameters",
        modelProperties: {
            quantizedDataType: {
                serializedName: "quantizedDataType",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const AzureOpenAIParameters = {
    type: {
        name: "Composite",
        className: "AzureOpenAIParameters",
        modelProperties: {
            resourceUrl: {
                serializedName: "resourceUri",
                type: {
                    name: "String",
                },
            },
            deploymentId: {
                serializedName: "deploymentId",
                type: {
                    name: "String",
                },
            },
            apiKey: {
                serializedName: "apiKey",
                type: {
                    name: "String",
                },
            },
            authIdentity: {
                serializedName: "authIdentity",
                type: {
                    name: "Composite",
                    className: "SearchIndexerDataIdentity",
                },
            },
            modelName: {
                serializedName: "modelName",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerDataIdentity = {
    type: {
        name: "Composite",
        className: "SearchIndexerDataIdentity",
        uberParent: "SearchIndexerDataIdentity",
        polymorphicDiscriminator: {
            serializedName: "@odata\\.type",
            clientName: "odatatype",
        },
        modelProperties: {
            odatatype: {
                serializedName: "@odata\\.type",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const WebApiParameters = {
    type: {
        name: "Composite",
        className: "WebApiParameters",
        modelProperties: {
            uri: {
                serializedName: "uri",
                type: {
                    name: "String",
                },
            },
            httpHeaders: {
                serializedName: "httpHeaders",
                type: {
                    name: "Dictionary",
                    value: { type: { name: "String" } },
                },
            },
            httpMethod: {
                serializedName: "httpMethod",
                type: {
                    name: "String",
                },
            },
            timeout: {
                serializedName: "timeout",
                type: {
                    name: "TimeSpan",
                },
            },
            authResourceId: {
                serializedName: "authResourceId",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            authIdentity: {
                serializedName: "authIdentity",
                type: {
                    name: "Composite",
                    className: "SearchIndexerDataIdentity",
                },
            },
        },
    },
};
export const DistanceScoringParameters = {
    type: {
        name: "Composite",
        className: "DistanceScoringParameters",
        modelProperties: {
            referencePointParameter: {
                serializedName: "referencePointParameter",
                required: true,
                type: {
                    name: "String",
                },
            },
            boostingDistance: {
                serializedName: "boostingDistance",
                required: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const FreshnessScoringParameters = {
    type: {
        name: "Composite",
        className: "FreshnessScoringParameters",
        modelProperties: {
            boostingDuration: {
                serializedName: "boostingDuration",
                required: true,
                type: {
                    name: "TimeSpan",
                },
            },
        },
    },
};
export const MagnitudeScoringParameters = {
    type: {
        name: "Composite",
        className: "MagnitudeScoringParameters",
        modelProperties: {
            boostingRangeStart: {
                serializedName: "boostingRangeStart",
                required: true,
                type: {
                    name: "Number",
                },
            },
            boostingRangeEnd: {
                serializedName: "boostingRangeEnd",
                required: true,
                type: {
                    name: "Number",
                },
            },
            shouldBoostBeyondRangeByConstant: {
                serializedName: "constantBoostBeyondRange",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const TagScoringParameters = {
    type: {
        name: "Composite",
        className: "TagScoringParameters",
        modelProperties: {
            tagsParameter: {
                serializedName: "tagsParameter",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerKnowledgeStoreParameters = {
    type: {
        name: "Composite",
        className: "SearchIndexerKnowledgeStoreParameters",
        additionalProperties: { type: { name: "Object" } },
        modelProperties: {
            synthesizeGeneratedKeyName: {
                defaultValue: false,
                serializedName: "synthesizeGeneratedKeyName",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const CustomEntity = {
    type: {
        name: "Composite",
        className: "CustomEntity",
        modelProperties: {
            name: {
                serializedName: "name",
                required: true,
                type: {
                    name: "String",
                },
            },
            description: {
                serializedName: "description",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            type: {
                serializedName: "type",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            subtype: {
                serializedName: "subtype",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            id: {
                serializedName: "id",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            caseSensitive: {
                serializedName: "caseSensitive",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            accentSensitive: {
                serializedName: "accentSensitive",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            fuzzyEditDistance: {
                serializedName: "fuzzyEditDistance",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            defaultCaseSensitive: {
                serializedName: "defaultCaseSensitive",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            defaultAccentSensitive: {
                serializedName: "defaultAccentSensitive",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            defaultFuzzyEditDistance: {
                serializedName: "defaultFuzzyEditDistance",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            aliases: {
                serializedName: "aliases",
                nullable: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "CustomEntityAlias",
                        },
                    },
                },
            },
        },
    },
};
export const CustomEntityAlias = {
    type: {
        name: "Composite",
        className: "CustomEntityAlias",
        modelProperties: {
            text: {
                serializedName: "text",
                required: true,
                type: {
                    name: "String",
                },
            },
            caseSensitive: {
                serializedName: "caseSensitive",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            accentSensitive: {
                serializedName: "accentSensitive",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            fuzzyEditDistance: {
                serializedName: "fuzzyEditDistance",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const DocumentIntelligenceLayoutSkillChunkingProperties = {
    type: {
        name: "Composite",
        className: "DocumentIntelligenceLayoutSkillChunkingProperties",
        modelProperties: {
            unit: {
                defaultValue: "characters",
                serializedName: "unit",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            maximumLength: {
                serializedName: "maximumLength",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            overlapLength: {
                serializedName: "overlapLength",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const HighWaterMarkChangeDetectionPolicy = {
    serializedName: "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
    type: {
        name: "Composite",
        className: "HighWaterMarkChangeDetectionPolicy",
        uberParent: "DataChangeDetectionPolicy",
        polymorphicDiscriminator: DataChangeDetectionPolicy.type.polymorphicDiscriminator,
        modelProperties: {
            ...DataChangeDetectionPolicy.type.modelProperties,
            highWaterMarkColumnName: {
                serializedName: "highWaterMarkColumnName",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SqlIntegratedChangeTrackingPolicy = {
    serializedName: "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy",
    type: {
        name: "Composite",
        className: "SqlIntegratedChangeTrackingPolicy",
        uberParent: "DataChangeDetectionPolicy",
        polymorphicDiscriminator: DataChangeDetectionPolicy.type.polymorphicDiscriminator,
        modelProperties: {
            ...DataChangeDetectionPolicy.type.modelProperties,
        },
    },
};
export const SoftDeleteColumnDeletionDetectionPolicy = {
    serializedName: "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
    type: {
        name: "Composite",
        className: "SoftDeleteColumnDeletionDetectionPolicy",
        uberParent: "DataDeletionDetectionPolicy",
        polymorphicDiscriminator: DataDeletionDetectionPolicy.type.polymorphicDiscriminator,
        modelProperties: {
            ...DataDeletionDetectionPolicy.type.modelProperties,
            softDeleteColumnName: {
                serializedName: "softDeleteColumnName",
                type: {
                    name: "String",
                },
            },
            softDeleteMarkerValue: {
                serializedName: "softDeleteMarkerValue",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const ConditionalSkill = {
    serializedName: "#Microsoft.Skills.Util.ConditionalSkill",
    type: {
        name: "Composite",
        className: "ConditionalSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
        },
    },
};
export const KeyPhraseExtractionSkill = {
    serializedName: "#Microsoft.Skills.Text.KeyPhraseExtractionSkill",
    type: {
        name: "Composite",
        className: "KeyPhraseExtractionSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                type: {
                    name: "String",
                },
            },
            maxKeyPhraseCount: {
                serializedName: "maxKeyPhraseCount",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            modelVersion: {
                serializedName: "modelVersion",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const OcrSkill = {
    serializedName: "#Microsoft.Skills.Vision.OcrSkill",
    type: {
        name: "Composite",
        className: "OcrSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                type: {
                    name: "String",
                },
            },
            shouldDetectOrientation: {
                defaultValue: false,
                serializedName: "detectOrientation",
                type: {
                    name: "Boolean",
                },
            },
            lineEnding: {
                serializedName: "lineEnding",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const ImageAnalysisSkill = {
    serializedName: "#Microsoft.Skills.Vision.ImageAnalysisSkill",
    type: {
        name: "Composite",
        className: "ImageAnalysisSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                type: {
                    name: "String",
                },
            },
            visualFeatures: {
                serializedName: "visualFeatures",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            details: {
                serializedName: "details",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const LanguageDetectionSkill = {
    serializedName: "#Microsoft.Skills.Text.LanguageDetectionSkill",
    type: {
        name: "Composite",
        className: "LanguageDetectionSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultCountryHint: {
                serializedName: "defaultCountryHint",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            modelVersion: {
                serializedName: "modelVersion",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const ShaperSkill = {
    serializedName: "#Microsoft.Skills.Util.ShaperSkill",
    type: {
        name: "Composite",
        className: "ShaperSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
        },
    },
};
export const MergeSkill = {
    serializedName: "#Microsoft.Skills.Text.MergeSkill",
    type: {
        name: "Composite",
        className: "MergeSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            insertPreTag: {
                defaultValue: " ",
                serializedName: "insertPreTag",
                type: {
                    name: "String",
                },
            },
            insertPostTag: {
                defaultValue: " ",
                serializedName: "insertPostTag",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const EntityRecognitionSkill = {
    serializedName: "#Microsoft.Skills.Text.EntityRecognitionSkill",
    type: {
        name: "Composite",
        className: "EntityRecognitionSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            categories: {
                serializedName: "categories",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                type: {
                    name: "String",
                },
            },
            includeTypelessEntities: {
                serializedName: "includeTypelessEntities",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            minimumPrecision: {
                serializedName: "minimumPrecision",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const SentimentSkill = {
    serializedName: "#Microsoft.Skills.Text.SentimentSkill",
    type: {
        name: "Composite",
        className: "SentimentSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SentimentSkillV3 = {
    serializedName: "#Microsoft.Skills.Text.V3.SentimentSkill",
    type: {
        name: "Composite",
        className: "SentimentSkillV3",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            includeOpinionMining: {
                defaultValue: false,
                serializedName: "includeOpinionMining",
                type: {
                    name: "Boolean",
                },
            },
            modelVersion: {
                serializedName: "modelVersion",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const EntityLinkingSkill = {
    serializedName: "#Microsoft.Skills.Text.V3.EntityLinkingSkill",
    type: {
        name: "Composite",
        className: "EntityLinkingSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            minimumPrecision: {
                constraints: {
                    InclusiveMaximum: 1,
                    InclusiveMinimum: 0,
                },
                serializedName: "minimumPrecision",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            modelVersion: {
                serializedName: "modelVersion",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const EntityRecognitionSkillV3 = {
    serializedName: "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
    type: {
        name: "Composite",
        className: "EntityRecognitionSkillV3",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            categories: {
                serializedName: "categories",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            minimumPrecision: {
                constraints: {
                    InclusiveMaximum: 1,
                    InclusiveMinimum: 0,
                },
                serializedName: "minimumPrecision",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            modelVersion: {
                serializedName: "modelVersion",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const PIIDetectionSkill = {
    serializedName: "#Microsoft.Skills.Text.PIIDetectionSkill",
    type: {
        name: "Composite",
        className: "PIIDetectionSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            minimumPrecision: {
                constraints: {
                    InclusiveMaximum: 1,
                    InclusiveMinimum: 0,
                },
                serializedName: "minimumPrecision",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            maskingMode: {
                serializedName: "maskingMode",
                type: {
                    name: "String",
                },
            },
            maskingCharacter: {
                constraints: {
                    MaxLength: 1,
                },
                serializedName: "maskingCharacter",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            modelVersion: {
                serializedName: "modelVersion",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            categories: {
                serializedName: "piiCategories",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            domain: {
                serializedName: "domain",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SplitSkill = {
    serializedName: "#Microsoft.Skills.Text.SplitSkill",
    type: {
        name: "Composite",
        className: "SplitSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                type: {
                    name: "String",
                },
            },
            textSplitMode: {
                serializedName: "textSplitMode",
                type: {
                    name: "String",
                },
            },
            maxPageLength: {
                serializedName: "maximumPageLength",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            pageOverlapLength: {
                serializedName: "pageOverlapLength",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            maximumPagesToTake: {
                serializedName: "maximumPagesToTake",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const CustomEntityLookupSkill = {
    serializedName: "#Microsoft.Skills.Text.CustomEntityLookupSkill",
    type: {
        name: "Composite",
        className: "CustomEntityLookupSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultLanguageCode: {
                serializedName: "defaultLanguageCode",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            entitiesDefinitionUri: {
                serializedName: "entitiesDefinitionUri",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            inlineEntitiesDefinition: {
                serializedName: "inlineEntitiesDefinition",
                nullable: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Composite",
                            className: "CustomEntity",
                        },
                    },
                },
            },
            globalDefaultCaseSensitive: {
                serializedName: "globalDefaultCaseSensitive",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            globalDefaultAccentSensitive: {
                serializedName: "globalDefaultAccentSensitive",
                nullable: true,
                type: {
                    name: "Boolean",
                },
            },
            globalDefaultFuzzyEditDistance: {
                serializedName: "globalDefaultFuzzyEditDistance",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const TextTranslationSkill = {
    serializedName: "#Microsoft.Skills.Text.TranslationSkill",
    type: {
        name: "Composite",
        className: "TextTranslationSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            defaultToLanguageCode: {
                serializedName: "defaultToLanguageCode",
                required: true,
                type: {
                    name: "String",
                },
            },
            defaultFromLanguageCode: {
                serializedName: "defaultFromLanguageCode",
                type: {
                    name: "String",
                },
            },
            suggestedFrom: {
                serializedName: "suggestedFrom",
                nullable: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const DocumentExtractionSkill = {
    serializedName: "#Microsoft.Skills.Util.DocumentExtractionSkill",
    type: {
        name: "Composite",
        className: "DocumentExtractionSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            parsingMode: {
                serializedName: "parsingMode",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            dataToExtract: {
                serializedName: "dataToExtract",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            configuration: {
                serializedName: "configuration",
                nullable: true,
                type: {
                    name: "Dictionary",
                    value: { type: { name: "any" } },
                },
            },
        },
    },
};
export const DocumentIntelligenceLayoutSkill = {
    serializedName: "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
    type: {
        name: "Composite",
        className: "DocumentIntelligenceLayoutSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            outputFormat: {
                defaultValue: "markdown",
                serializedName: "outputFormat",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            outputMode: {
                defaultValue: "oneToMany",
                serializedName: "outputMode",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            markdownHeaderDepth: {
                defaultValue: "h6",
                serializedName: "markdownHeaderDepth",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            extractionOptions: {
                serializedName: "extractionOptions",
                nullable: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            chunkingProperties: {
                serializedName: "chunkingProperties",
                type: {
                    name: "Composite",
                    className: "DocumentIntelligenceLayoutSkillChunkingProperties",
                },
            },
        },
    },
};
export const WebApiSkill = {
    serializedName: "#Microsoft.Skills.Custom.WebApiSkill",
    type: {
        name: "Composite",
        className: "WebApiSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            uri: {
                serializedName: "uri",
                required: true,
                type: {
                    name: "String",
                },
            },
            httpHeaders: {
                serializedName: "httpHeaders",
                type: {
                    name: "Dictionary",
                    value: { type: { name: "String" } },
                },
            },
            httpMethod: {
                serializedName: "httpMethod",
                type: {
                    name: "String",
                },
            },
            timeout: {
                serializedName: "timeout",
                type: {
                    name: "TimeSpan",
                },
            },
            batchSize: {
                serializedName: "batchSize",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            degreeOfParallelism: {
                serializedName: "degreeOfParallelism",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            authResourceId: {
                serializedName: "authResourceId",
                nullable: true,
                type: {
                    name: "String",
                },
            },
            authIdentity: {
                serializedName: "authIdentity",
                type: {
                    name: "Composite",
                    className: "SearchIndexerDataIdentity",
                },
            },
        },
    },
};
export const AzureOpenAIEmbeddingSkill = {
    serializedName: "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
    type: {
        name: "Composite",
        className: "AzureOpenAIEmbeddingSkill",
        uberParent: "SearchIndexerSkill",
        polymorphicDiscriminator: SearchIndexerSkill.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerSkill.type.modelProperties,
            ...AzureOpenAIParameters.type.modelProperties,
            dimensions: {
                serializedName: "dimensions",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const DefaultCognitiveServicesAccount = {
    serializedName: "#Microsoft.Azure.Search.DefaultCognitiveServices",
    type: {
        name: "Composite",
        className: "DefaultCognitiveServicesAccount",
        uberParent: "CognitiveServicesAccount",
        polymorphicDiscriminator: CognitiveServicesAccount.type.polymorphicDiscriminator,
        modelProperties: {
            ...CognitiveServicesAccount.type.modelProperties,
        },
    },
};
export const CognitiveServicesAccountKey = {
    serializedName: "#Microsoft.Azure.Search.CognitiveServicesByKey",
    type: {
        name: "Composite",
        className: "CognitiveServicesAccountKey",
        uberParent: "CognitiveServicesAccount",
        polymorphicDiscriminator: CognitiveServicesAccount.type.polymorphicDiscriminator,
        modelProperties: {
            ...CognitiveServicesAccount.type.modelProperties,
            key: {
                serializedName: "key",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerKnowledgeStoreTableProjectionSelector = {
    type: {
        name: "Composite",
        className: "SearchIndexerKnowledgeStoreTableProjectionSelector",
        modelProperties: {
            ...SearchIndexerKnowledgeStoreProjectionSelector.type.modelProperties,
            tableName: {
                serializedName: "tableName",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerKnowledgeStoreBlobProjectionSelector = {
    type: {
        name: "Composite",
        className: "SearchIndexerKnowledgeStoreBlobProjectionSelector",
        modelProperties: {
            ...SearchIndexerKnowledgeStoreProjectionSelector.type.modelProperties,
            storageContainer: {
                serializedName: "storageContainer",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const DistanceScoringFunction = {
    serializedName: "distance",
    type: {
        name: "Composite",
        className: "DistanceScoringFunction",
        uberParent: "ScoringFunction",
        polymorphicDiscriminator: ScoringFunction.type.polymorphicDiscriminator,
        modelProperties: {
            ...ScoringFunction.type.modelProperties,
            parameters: {
                serializedName: "distance",
                type: {
                    name: "Composite",
                    className: "DistanceScoringParameters",
                },
            },
        },
    },
};
export const FreshnessScoringFunction = {
    serializedName: "freshness",
    type: {
        name: "Composite",
        className: "FreshnessScoringFunction",
        uberParent: "ScoringFunction",
        polymorphicDiscriminator: ScoringFunction.type.polymorphicDiscriminator,
        modelProperties: {
            ...ScoringFunction.type.modelProperties,
            parameters: {
                serializedName: "freshness",
                type: {
                    name: "Composite",
                    className: "FreshnessScoringParameters",
                },
            },
        },
    },
};
export const MagnitudeScoringFunction = {
    serializedName: "magnitude",
    type: {
        name: "Composite",
        className: "MagnitudeScoringFunction",
        uberParent: "ScoringFunction",
        polymorphicDiscriminator: ScoringFunction.type.polymorphicDiscriminator,
        modelProperties: {
            ...ScoringFunction.type.modelProperties,
            parameters: {
                serializedName: "magnitude",
                type: {
                    name: "Composite",
                    className: "MagnitudeScoringParameters",
                },
            },
        },
    },
};
export const TagScoringFunction = {
    serializedName: "tag",
    type: {
        name: "Composite",
        className: "TagScoringFunction",
        uberParent: "ScoringFunction",
        polymorphicDiscriminator: ScoringFunction.type.polymorphicDiscriminator,
        modelProperties: {
            ...ScoringFunction.type.modelProperties,
            parameters: {
                serializedName: "tag",
                type: {
                    name: "Composite",
                    className: "TagScoringParameters",
                },
            },
        },
    },
};
export const CustomAnalyzer = {
    serializedName: "#Microsoft.Azure.Search.CustomAnalyzer",
    type: {
        name: "Composite",
        className: "CustomAnalyzer",
        uberParent: "LexicalAnalyzer",
        polymorphicDiscriminator: LexicalAnalyzer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalAnalyzer.type.modelProperties,
            tokenizerName: {
                serializedName: "tokenizer",
                required: true,
                type: {
                    name: "String",
                },
            },
            tokenFilters: {
                serializedName: "tokenFilters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            charFilters: {
                serializedName: "charFilters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const PatternAnalyzer = {
    serializedName: "#Microsoft.Azure.Search.PatternAnalyzer",
    type: {
        name: "Composite",
        className: "PatternAnalyzer",
        uberParent: "LexicalAnalyzer",
        polymorphicDiscriminator: LexicalAnalyzer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalAnalyzer.type.modelProperties,
            lowerCaseTerms: {
                defaultValue: true,
                serializedName: "lowercase",
                type: {
                    name: "Boolean",
                },
            },
            pattern: {
                defaultValue: "\W+",
                serializedName: "pattern",
                type: {
                    name: "String",
                },
            },
            flags: {
                serializedName: "flags",
                type: {
                    name: "String",
                },
            },
            stopwords: {
                serializedName: "stopwords",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const LuceneStandardAnalyzer = {
    serializedName: "#Microsoft.Azure.Search.StandardAnalyzer",
    type: {
        name: "Composite",
        className: "LuceneStandardAnalyzer",
        uberParent: "LexicalAnalyzer",
        polymorphicDiscriminator: LexicalAnalyzer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalAnalyzer.type.modelProperties,
            maxTokenLength: {
                defaultValue: 255,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
            stopwords: {
                serializedName: "stopwords",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const StopAnalyzer = {
    serializedName: "#Microsoft.Azure.Search.StopAnalyzer",
    type: {
        name: "Composite",
        className: "StopAnalyzer",
        uberParent: "LexicalAnalyzer",
        polymorphicDiscriminator: LexicalAnalyzer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalAnalyzer.type.modelProperties,
            stopwords: {
                serializedName: "stopwords",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const ClassicTokenizer = {
    serializedName: "#Microsoft.Azure.Search.ClassicTokenizer",
    type: {
        name: "Composite",
        className: "ClassicTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            maxTokenLength: {
                defaultValue: 255,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const EdgeNGramTokenizer = {
    serializedName: "#Microsoft.Azure.Search.EdgeNGramTokenizer",
    type: {
        name: "Composite",
        className: "EdgeNGramTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            minGram: {
                defaultValue: 1,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "minGram",
                type: {
                    name: "Number",
                },
            },
            maxGram: {
                defaultValue: 2,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxGram",
                type: {
                    name: "Number",
                },
            },
            tokenChars: {
                serializedName: "tokenChars",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Enum",
                            allowedValues: [
                                "letter",
                                "digit",
                                "whitespace",
                                "punctuation",
                                "symbol",
                            ],
                        },
                    },
                },
            },
        },
    },
};
export const KeywordTokenizer = {
    serializedName: "#Microsoft.Azure.Search.KeywordTokenizer",
    type: {
        name: "Composite",
        className: "KeywordTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            bufferSize: {
                defaultValue: 256,
                serializedName: "bufferSize",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const KeywordTokenizerV2 = {
    serializedName: "#Microsoft.Azure.Search.KeywordTokenizerV2",
    type: {
        name: "Composite",
        className: "KeywordTokenizerV2",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            maxTokenLength: {
                defaultValue: 256,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const MicrosoftLanguageTokenizer = {
    serializedName: "#Microsoft.Azure.Search.MicrosoftLanguageTokenizer",
    type: {
        name: "Composite",
        className: "MicrosoftLanguageTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            maxTokenLength: {
                defaultValue: 255,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
            isSearchTokenizer: {
                defaultValue: false,
                serializedName: "isSearchTokenizer",
                type: {
                    name: "Boolean",
                },
            },
            language: {
                serializedName: "language",
                type: {
                    name: "Enum",
                    allowedValues: [
                        "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",
                    ],
                },
            },
        },
    },
};
export const MicrosoftLanguageStemmingTokenizer = {
    serializedName: "#Microsoft.Azure.Search.MicrosoftLanguageStemmingTokenizer",
    type: {
        name: "Composite",
        className: "MicrosoftLanguageStemmingTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            maxTokenLength: {
                defaultValue: 255,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
            isSearchTokenizer: {
                defaultValue: false,
                serializedName: "isSearchTokenizer",
                type: {
                    name: "Boolean",
                },
            },
            language: {
                serializedName: "language",
                type: {
                    name: "Enum",
                    allowedValues: [
                        "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",
                    ],
                },
            },
        },
    },
};
export const NGramTokenizer = {
    serializedName: "#Microsoft.Azure.Search.NGramTokenizer",
    type: {
        name: "Composite",
        className: "NGramTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            minGram: {
                defaultValue: 1,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "minGram",
                type: {
                    name: "Number",
                },
            },
            maxGram: {
                defaultValue: 2,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxGram",
                type: {
                    name: "Number",
                },
            },
            tokenChars: {
                serializedName: "tokenChars",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Enum",
                            allowedValues: [
                                "letter",
                                "digit",
                                "whitespace",
                                "punctuation",
                                "symbol",
                            ],
                        },
                    },
                },
            },
        },
    },
};
export const PathHierarchyTokenizerV2 = {
    serializedName: "#Microsoft.Azure.Search.PathHierarchyTokenizerV2",
    type: {
        name: "Composite",
        className: "PathHierarchyTokenizerV2",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            delimiter: {
                defaultValue: "/",
                serializedName: "delimiter",
                type: {
                    name: "String",
                },
            },
            replacement: {
                defaultValue: "/",
                serializedName: "replacement",
                type: {
                    name: "String",
                },
            },
            maxTokenLength: {
                defaultValue: 300,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
            reverseTokenOrder: {
                defaultValue: false,
                serializedName: "reverse",
                type: {
                    name: "Boolean",
                },
            },
            numberOfTokensToSkip: {
                defaultValue: 0,
                serializedName: "skip",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const PatternTokenizer = {
    serializedName: "#Microsoft.Azure.Search.PatternTokenizer",
    type: {
        name: "Composite",
        className: "PatternTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            pattern: {
                defaultValue: "\W+",
                serializedName: "pattern",
                type: {
                    name: "String",
                },
            },
            flags: {
                serializedName: "flags",
                type: {
                    name: "String",
                },
            },
            group: {
                defaultValue: -1,
                serializedName: "group",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const LuceneStandardTokenizer = {
    serializedName: "#Microsoft.Azure.Search.StandardTokenizer",
    type: {
        name: "Composite",
        className: "LuceneStandardTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            maxTokenLength: {
                defaultValue: 255,
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const LuceneStandardTokenizerV2 = {
    serializedName: "#Microsoft.Azure.Search.StandardTokenizerV2",
    type: {
        name: "Composite",
        className: "LuceneStandardTokenizerV2",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            maxTokenLength: {
                defaultValue: 255,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const UaxUrlEmailTokenizer = {
    serializedName: "#Microsoft.Azure.Search.UaxUrlEmailTokenizer",
    type: {
        name: "Composite",
        className: "UaxUrlEmailTokenizer",
        uberParent: "LexicalTokenizer",
        polymorphicDiscriminator: LexicalTokenizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...LexicalTokenizer.type.modelProperties,
            maxTokenLength: {
                defaultValue: 255,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxTokenLength",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const AsciiFoldingTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.AsciiFoldingTokenFilter",
    type: {
        name: "Composite",
        className: "AsciiFoldingTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            preserveOriginal: {
                defaultValue: false,
                serializedName: "preserveOriginal",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const CjkBigramTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.CjkBigramTokenFilter",
    type: {
        name: "Composite",
        className: "CjkBigramTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            ignoreScripts: {
                serializedName: "ignoreScripts",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "Enum",
                            allowedValues: ["han", "hiragana", "katakana", "hangul"],
                        },
                    },
                },
            },
            outputUnigrams: {
                defaultValue: false,
                serializedName: "outputUnigrams",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const CommonGramTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.CommonGramTokenFilter",
    type: {
        name: "Composite",
        className: "CommonGramTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            commonWords: {
                serializedName: "commonWords",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            ignoreCase: {
                defaultValue: false,
                serializedName: "ignoreCase",
                type: {
                    name: "Boolean",
                },
            },
            useQueryMode: {
                defaultValue: false,
                serializedName: "queryMode",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const DictionaryDecompounderTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.DictionaryDecompounderTokenFilter",
    type: {
        name: "Composite",
        className: "DictionaryDecompounderTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            wordList: {
                serializedName: "wordList",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            minWordSize: {
                defaultValue: 5,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "minWordSize",
                type: {
                    name: "Number",
                },
            },
            minSubwordSize: {
                defaultValue: 2,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "minSubwordSize",
                type: {
                    name: "Number",
                },
            },
            maxSubwordSize: {
                defaultValue: 15,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxSubwordSize",
                type: {
                    name: "Number",
                },
            },
            onlyLongestMatch: {
                defaultValue: false,
                serializedName: "onlyLongestMatch",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const EdgeNGramTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.EdgeNGramTokenFilter",
    type: {
        name: "Composite",
        className: "EdgeNGramTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            minGram: {
                defaultValue: 1,
                serializedName: "minGram",
                type: {
                    name: "Number",
                },
            },
            maxGram: {
                defaultValue: 2,
                serializedName: "maxGram",
                type: {
                    name: "Number",
                },
            },
            side: {
                serializedName: "side",
                type: {
                    name: "Enum",
                    allowedValues: ["front", "back"],
                },
            },
        },
    },
};
export const EdgeNGramTokenFilterV2 = {
    serializedName: "#Microsoft.Azure.Search.EdgeNGramTokenFilterV2",
    type: {
        name: "Composite",
        className: "EdgeNGramTokenFilterV2",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            minGram: {
                defaultValue: 1,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "minGram",
                type: {
                    name: "Number",
                },
            },
            maxGram: {
                defaultValue: 2,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxGram",
                type: {
                    name: "Number",
                },
            },
            side: {
                serializedName: "side",
                type: {
                    name: "Enum",
                    allowedValues: ["front", "back"],
                },
            },
        },
    },
};
export const ElisionTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.ElisionTokenFilter",
    type: {
        name: "Composite",
        className: "ElisionTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            articles: {
                serializedName: "articles",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const KeepTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.KeepTokenFilter",
    type: {
        name: "Composite",
        className: "KeepTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            keepWords: {
                serializedName: "keepWords",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            lowerCaseKeepWords: {
                defaultValue: false,
                serializedName: "keepWordsCase",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const KeywordMarkerTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.KeywordMarkerTokenFilter",
    type: {
        name: "Composite",
        className: "KeywordMarkerTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            keywords: {
                serializedName: "keywords",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            ignoreCase: {
                defaultValue: false,
                serializedName: "ignoreCase",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const LengthTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.LengthTokenFilter",
    type: {
        name: "Composite",
        className: "LengthTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            minLength: {
                defaultValue: 0,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "min",
                type: {
                    name: "Number",
                },
            },
            maxLength: {
                defaultValue: 300,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "max",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const LimitTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.LimitTokenFilter",
    type: {
        name: "Composite",
        className: "LimitTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            maxTokenCount: {
                defaultValue: 1,
                serializedName: "maxTokenCount",
                type: {
                    name: "Number",
                },
            },
            consumeAllTokens: {
                defaultValue: false,
                serializedName: "consumeAllTokens",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const NGramTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.NGramTokenFilter",
    type: {
        name: "Composite",
        className: "NGramTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            minGram: {
                defaultValue: 1,
                serializedName: "minGram",
                type: {
                    name: "Number",
                },
            },
            maxGram: {
                defaultValue: 2,
                serializedName: "maxGram",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const NGramTokenFilterV2 = {
    serializedName: "#Microsoft.Azure.Search.NGramTokenFilterV2",
    type: {
        name: "Composite",
        className: "NGramTokenFilterV2",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            minGram: {
                defaultValue: 1,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "minGram",
                type: {
                    name: "Number",
                },
            },
            maxGram: {
                defaultValue: 2,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "maxGram",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const PatternCaptureTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.PatternCaptureTokenFilter",
    type: {
        name: "Composite",
        className: "PatternCaptureTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            patterns: {
                serializedName: "patterns",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            preserveOriginal: {
                defaultValue: true,
                serializedName: "preserveOriginal",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const PatternReplaceTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.PatternReplaceTokenFilter",
    type: {
        name: "Composite",
        className: "PatternReplaceTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            pattern: {
                serializedName: "pattern",
                required: true,
                type: {
                    name: "String",
                },
            },
            replacement: {
                serializedName: "replacement",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const PhoneticTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.PhoneticTokenFilter",
    type: {
        name: "Composite",
        className: "PhoneticTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            encoder: {
                serializedName: "encoder",
                type: {
                    name: "Enum",
                    allowedValues: [
                        "metaphone",
                        "doubleMetaphone",
                        "soundex",
                        "refinedSoundex",
                        "caverphone1",
                        "caverphone2",
                        "cologne",
                        "nysiis",
                        "koelnerPhonetik",
                        "haasePhonetik",
                        "beiderMorse",
                    ],
                },
            },
            replaceOriginalTokens: {
                defaultValue: true,
                serializedName: "replace",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const ShingleTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.ShingleTokenFilter",
    type: {
        name: "Composite",
        className: "ShingleTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            maxShingleSize: {
                defaultValue: 2,
                constraints: {
                    InclusiveMinimum: 2,
                },
                serializedName: "maxShingleSize",
                type: {
                    name: "Number",
                },
            },
            minShingleSize: {
                defaultValue: 2,
                constraints: {
                    InclusiveMinimum: 2,
                },
                serializedName: "minShingleSize",
                type: {
                    name: "Number",
                },
            },
            outputUnigrams: {
                defaultValue: true,
                serializedName: "outputUnigrams",
                type: {
                    name: "Boolean",
                },
            },
            outputUnigramsIfNoShingles: {
                defaultValue: false,
                serializedName: "outputUnigramsIfNoShingles",
                type: {
                    name: "Boolean",
                },
            },
            tokenSeparator: {
                defaultValue: " ",
                serializedName: "tokenSeparator",
                type: {
                    name: "String",
                },
            },
            filterToken: {
                defaultValue: "_",
                serializedName: "filterToken",
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SnowballTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.SnowballTokenFilter",
    type: {
        name: "Composite",
        className: "SnowballTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            language: {
                serializedName: "language",
                required: true,
                type: {
                    name: "Enum",
                    allowedValues: [
                        "armenian",
                        "basque",
                        "catalan",
                        "danish",
                        "dutch",
                        "english",
                        "finnish",
                        "french",
                        "german",
                        "german2",
                        "hungarian",
                        "italian",
                        "kp",
                        "lovins",
                        "norwegian",
                        "porter",
                        "portuguese",
                        "romanian",
                        "russian",
                        "spanish",
                        "swedish",
                        "turkish",
                    ],
                },
            },
        },
    },
};
export const StemmerTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.StemmerTokenFilter",
    type: {
        name: "Composite",
        className: "StemmerTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            language: {
                serializedName: "language",
                required: true,
                type: {
                    name: "Enum",
                    allowedValues: [
                        "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",
                    ],
                },
            },
        },
    },
};
export const StemmerOverrideTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.StemmerOverrideTokenFilter",
    type: {
        name: "Composite",
        className: "StemmerOverrideTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            rules: {
                serializedName: "rules",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const StopwordsTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.StopwordsTokenFilter",
    type: {
        name: "Composite",
        className: "StopwordsTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            stopwords: {
                serializedName: "stopwords",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            stopwordsList: {
                serializedName: "stopwordsList",
                type: {
                    name: "Enum",
                    allowedValues: [
                        "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",
                    ],
                },
            },
            ignoreCase: {
                defaultValue: false,
                serializedName: "ignoreCase",
                type: {
                    name: "Boolean",
                },
            },
            removeTrailingStopWords: {
                defaultValue: true,
                serializedName: "removeTrailing",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const SynonymTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.SynonymTokenFilter",
    type: {
        name: "Composite",
        className: "SynonymTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            synonyms: {
                serializedName: "synonyms",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            ignoreCase: {
                defaultValue: false,
                serializedName: "ignoreCase",
                type: {
                    name: "Boolean",
                },
            },
            expand: {
                defaultValue: true,
                serializedName: "expand",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const TruncateTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.TruncateTokenFilter",
    type: {
        name: "Composite",
        className: "TruncateTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            length: {
                defaultValue: 300,
                constraints: {
                    InclusiveMaximum: 300,
                },
                serializedName: "length",
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const UniqueTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.UniqueTokenFilter",
    type: {
        name: "Composite",
        className: "UniqueTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            onlyOnSamePosition: {
                defaultValue: false,
                serializedName: "onlyOnSamePosition",
                type: {
                    name: "Boolean",
                },
            },
        },
    },
};
export const WordDelimiterTokenFilter = {
    serializedName: "#Microsoft.Azure.Search.WordDelimiterTokenFilter",
    type: {
        name: "Composite",
        className: "WordDelimiterTokenFilter",
        uberParent: "TokenFilter",
        polymorphicDiscriminator: TokenFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...TokenFilter.type.modelProperties,
            generateWordParts: {
                defaultValue: true,
                serializedName: "generateWordParts",
                type: {
                    name: "Boolean",
                },
            },
            generateNumberParts: {
                defaultValue: true,
                serializedName: "generateNumberParts",
                type: {
                    name: "Boolean",
                },
            },
            catenateWords: {
                defaultValue: false,
                serializedName: "catenateWords",
                type: {
                    name: "Boolean",
                },
            },
            catenateNumbers: {
                defaultValue: false,
                serializedName: "catenateNumbers",
                type: {
                    name: "Boolean",
                },
            },
            catenateAll: {
                defaultValue: false,
                serializedName: "catenateAll",
                type: {
                    name: "Boolean",
                },
            },
            splitOnCaseChange: {
                defaultValue: true,
                serializedName: "splitOnCaseChange",
                type: {
                    name: "Boolean",
                },
            },
            preserveOriginal: {
                defaultValue: false,
                serializedName: "preserveOriginal",
                type: {
                    name: "Boolean",
                },
            },
            splitOnNumerics: {
                defaultValue: true,
                serializedName: "splitOnNumerics",
                type: {
                    name: "Boolean",
                },
            },
            stemEnglishPossessive: {
                defaultValue: true,
                serializedName: "stemEnglishPossessive",
                type: {
                    name: "Boolean",
                },
            },
            protectedWords: {
                serializedName: "protectedWords",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const MappingCharFilter = {
    serializedName: "#Microsoft.Azure.Search.MappingCharFilter",
    type: {
        name: "Composite",
        className: "MappingCharFilter",
        uberParent: "CharFilter",
        polymorphicDiscriminator: CharFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...CharFilter.type.modelProperties,
            mappings: {
                serializedName: "mappings",
                required: true,
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const PatternReplaceCharFilter = {
    serializedName: "#Microsoft.Azure.Search.PatternReplaceCharFilter",
    type: {
        name: "Composite",
        className: "PatternReplaceCharFilter",
        uberParent: "CharFilter",
        polymorphicDiscriminator: CharFilter.type.polymorphicDiscriminator,
        modelProperties: {
            ...CharFilter.type.modelProperties,
            pattern: {
                serializedName: "pattern",
                required: true,
                type: {
                    name: "String",
                },
            },
            replacement: {
                serializedName: "replacement",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const CustomLexicalNormalizer = {
    serializedName: "#Microsoft.Azure.Search.CustomNormalizer",
    type: {
        name: "Composite",
        className: "CustomLexicalNormalizer",
        uberParent: "BaseLexicalNormalizer",
        polymorphicDiscriminator: BaseLexicalNormalizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...BaseLexicalNormalizer.type.modelProperties,
            tokenFilters: {
                serializedName: "tokenFilters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
            charFilters: {
                serializedName: "charFilters",
                type: {
                    name: "Sequence",
                    element: {
                        type: {
                            name: "String",
                        },
                    },
                },
            },
        },
    },
};
export const ClassicSimilarity = {
    serializedName: "#Microsoft.Azure.Search.ClassicSimilarity",
    type: {
        name: "Composite",
        className: "ClassicSimilarity",
        uberParent: "Similarity",
        polymorphicDiscriminator: Similarity.type.polymorphicDiscriminator,
        modelProperties: {
            ...Similarity.type.modelProperties,
        },
    },
};
export const BM25Similarity = {
    serializedName: "#Microsoft.Azure.Search.BM25Similarity",
    type: {
        name: "Composite",
        className: "BM25Similarity",
        uberParent: "Similarity",
        polymorphicDiscriminator: Similarity.type.polymorphicDiscriminator,
        modelProperties: {
            ...Similarity.type.modelProperties,
            k1: {
                serializedName: "k1",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
            b: {
                serializedName: "b",
                nullable: true,
                type: {
                    name: "Number",
                },
            },
        },
    },
};
export const HnswAlgorithmConfiguration = {
    serializedName: "hnsw",
    type: {
        name: "Composite",
        className: "HnswAlgorithmConfiguration",
        uberParent: "VectorSearchAlgorithmConfiguration",
        polymorphicDiscriminator: VectorSearchAlgorithmConfiguration.type.polymorphicDiscriminator,
        modelProperties: {
            ...VectorSearchAlgorithmConfiguration.type.modelProperties,
            parameters: {
                serializedName: "hnswParameters",
                type: {
                    name: "Composite",
                    className: "HnswParameters",
                },
            },
        },
    },
};
export const ExhaustiveKnnAlgorithmConfiguration = {
    serializedName: "exhaustiveKnn",
    type: {
        name: "Composite",
        className: "ExhaustiveKnnAlgorithmConfiguration",
        uberParent: "VectorSearchAlgorithmConfiguration",
        polymorphicDiscriminator: VectorSearchAlgorithmConfiguration.type.polymorphicDiscriminator,
        modelProperties: {
            ...VectorSearchAlgorithmConfiguration.type.modelProperties,
            parameters: {
                serializedName: "exhaustiveKnnParameters",
                type: {
                    name: "Composite",
                    className: "ExhaustiveKnnParameters",
                },
            },
        },
    },
};
export const AzureOpenAIVectorizer = {
    serializedName: "azureOpenAI",
    type: {
        name: "Composite",
        className: "AzureOpenAIVectorizer",
        uberParent: "VectorSearchVectorizer",
        polymorphicDiscriminator: VectorSearchVectorizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...VectorSearchVectorizer.type.modelProperties,
            parameters: {
                serializedName: "azureOpenAIParameters",
                type: {
                    name: "Composite",
                    className: "AzureOpenAIParameters",
                },
            },
        },
    },
};
export const WebApiVectorizer = {
    serializedName: "customWebApi",
    type: {
        name: "Composite",
        className: "WebApiVectorizer",
        uberParent: "VectorSearchVectorizer",
        polymorphicDiscriminator: VectorSearchVectorizer.type.polymorphicDiscriminator,
        modelProperties: {
            ...VectorSearchVectorizer.type.modelProperties,
            parameters: {
                serializedName: "customWebApiParameters",
                type: {
                    name: "Composite",
                    className: "WebApiParameters",
                },
            },
        },
    },
};
export const ScalarQuantizationCompression = {
    serializedName: "scalarQuantization",
    type: {
        name: "Composite",
        className: "ScalarQuantizationCompression",
        uberParent: "VectorSearchCompression",
        polymorphicDiscriminator: VectorSearchCompression.type.polymorphicDiscriminator,
        modelProperties: {
            ...VectorSearchCompression.type.modelProperties,
            parameters: {
                serializedName: "scalarQuantizationParameters",
                type: {
                    name: "Composite",
                    className: "ScalarQuantizationParameters",
                },
            },
        },
    },
};
export const BinaryQuantizationCompression = {
    serializedName: "binaryQuantization",
    type: {
        name: "Composite",
        className: "BinaryQuantizationCompression",
        uberParent: "VectorSearchCompression",
        polymorphicDiscriminator: VectorSearchCompression.type.polymorphicDiscriminator,
        modelProperties: {
            ...VectorSearchCompression.type.modelProperties,
        },
    },
};
export const SearchIndexerDataNoneIdentity = {
    serializedName: "#Microsoft.Azure.Search.DataNoneIdentity",
    type: {
        name: "Composite",
        className: "SearchIndexerDataNoneIdentity",
        uberParent: "SearchIndexerDataIdentity",
        polymorphicDiscriminator: SearchIndexerDataIdentity.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerDataIdentity.type.modelProperties,
        },
    },
};
export const SearchIndexerDataUserAssignedIdentity = {
    serializedName: "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    type: {
        name: "Composite",
        className: "SearchIndexerDataUserAssignedIdentity",
        uberParent: "SearchIndexerDataIdentity",
        polymorphicDiscriminator: SearchIndexerDataIdentity.type.polymorphicDiscriminator,
        modelProperties: {
            ...SearchIndexerDataIdentity.type.modelProperties,
            resourceId: {
                serializedName: "userAssignedIdentity",
                required: true,
                type: {
                    name: "String",
                },
            },
        },
    },
};
export const SearchIndexerKnowledgeStoreObjectProjectionSelector = {
    type: {
        name: "Composite",
        className: "SearchIndexerKnowledgeStoreObjectProjectionSelector",
        modelProperties: {
            ...SearchIndexerKnowledgeStoreBlobProjectionSelector.type
                .modelProperties,
        },
    },
};
export const SearchIndexerKnowledgeStoreFileProjectionSelector = {
    type: {
        name: "Composite",
        className: "SearchIndexerKnowledgeStoreFileProjectionSelector",
        modelProperties: {
            ...SearchIndexerKnowledgeStoreBlobProjectionSelector.type
                .modelProperties,
        },
    },
};
export let discriminators = {
    DataChangeDetectionPolicy: DataChangeDetectionPolicy,
    DataDeletionDetectionPolicy: DataDeletionDetectionPolicy,
    SearchIndexerSkill: SearchIndexerSkill,
    CognitiveServicesAccount: CognitiveServicesAccount,
    ScoringFunction: ScoringFunction,
    LexicalAnalyzer: LexicalAnalyzer,
    LexicalTokenizer: LexicalTokenizer,
    TokenFilter: TokenFilter,
    CharFilter: CharFilter,
    BaseLexicalNormalizer: BaseLexicalNormalizer,
    Similarity: Similarity,
    VectorSearchAlgorithmConfiguration: VectorSearchAlgorithmConfiguration,
    VectorSearchVectorizer: VectorSearchVectorizer,
    VectorSearchCompression: VectorSearchCompression,
    SearchIndexerDataIdentity: SearchIndexerDataIdentity,
    "DataChangeDetectionPolicy.#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy": HighWaterMarkChangeDetectionPolicy,
    "DataChangeDetectionPolicy.#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy": SqlIntegratedChangeTrackingPolicy,
    "DataDeletionDetectionPolicy.#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy": SoftDeleteColumnDeletionDetectionPolicy,
    "SearchIndexerSkill.#Microsoft.Skills.Util.ConditionalSkill": ConditionalSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.KeyPhraseExtractionSkill": KeyPhraseExtractionSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Vision.OcrSkill": OcrSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Vision.ImageAnalysisSkill": ImageAnalysisSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.LanguageDetectionSkill": LanguageDetectionSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Util.ShaperSkill": ShaperSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.MergeSkill": MergeSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.EntityRecognitionSkill": EntityRecognitionSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.SentimentSkill": SentimentSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.V3.SentimentSkill": SentimentSkillV3,
    "SearchIndexerSkill.#Microsoft.Skills.Text.V3.EntityLinkingSkill": EntityLinkingSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.V3.EntityRecognitionSkill": EntityRecognitionSkillV3,
    "SearchIndexerSkill.#Microsoft.Skills.Text.PIIDetectionSkill": PIIDetectionSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.SplitSkill": SplitSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.CustomEntityLookupSkill": CustomEntityLookupSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.TranslationSkill": TextTranslationSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Util.DocumentExtractionSkill": DocumentExtractionSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill": DocumentIntelligenceLayoutSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Custom.WebApiSkill": WebApiSkill,
    "SearchIndexerSkill.#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill": AzureOpenAIEmbeddingSkill,
    "CognitiveServicesAccount.#Microsoft.Azure.Search.DefaultCognitiveServices": DefaultCognitiveServicesAccount,
    "CognitiveServicesAccount.#Microsoft.Azure.Search.CognitiveServicesByKey": CognitiveServicesAccountKey,
    "ScoringFunction.distance": DistanceScoringFunction,
    "ScoringFunction.freshness": FreshnessScoringFunction,
    "ScoringFunction.magnitude": MagnitudeScoringFunction,
    "ScoringFunction.tag": TagScoringFunction,
    "LexicalAnalyzer.#Microsoft.Azure.Search.CustomAnalyzer": CustomAnalyzer,
    "LexicalAnalyzer.#Microsoft.Azure.Search.PatternAnalyzer": PatternAnalyzer,
    "LexicalAnalyzer.#Microsoft.Azure.Search.StandardAnalyzer": LuceneStandardAnalyzer,
    "LexicalAnalyzer.#Microsoft.Azure.Search.StopAnalyzer": StopAnalyzer,
    "LexicalTokenizer.#Microsoft.Azure.Search.ClassicTokenizer": ClassicTokenizer,
    "LexicalTokenizer.#Microsoft.Azure.Search.EdgeNGramTokenizer": EdgeNGramTokenizer,
    "LexicalTokenizer.#Microsoft.Azure.Search.KeywordTokenizer": KeywordTokenizer,
    "LexicalTokenizer.#Microsoft.Azure.Search.KeywordTokenizerV2": KeywordTokenizerV2,
    "LexicalTokenizer.#Microsoft.Azure.Search.MicrosoftLanguageTokenizer": MicrosoftLanguageTokenizer,
    "LexicalTokenizer.#Microsoft.Azure.Search.MicrosoftLanguageStemmingTokenizer": MicrosoftLanguageStemmingTokenizer,
    "LexicalTokenizer.#Microsoft.Azure.Search.NGramTokenizer": NGramTokenizer,
    "LexicalTokenizer.#Microsoft.Azure.Search.PathHierarchyTokenizerV2": PathHierarchyTokenizerV2,
    "LexicalTokenizer.#Microsoft.Azure.Search.PatternTokenizer": PatternTokenizer,
    "LexicalTokenizer.#Microsoft.Azure.Search.StandardTokenizer": LuceneStandardTokenizer,
    "LexicalTokenizer.#Microsoft.Azure.Search.StandardTokenizerV2": LuceneStandardTokenizerV2,
    "LexicalTokenizer.#Microsoft.Azure.Search.UaxUrlEmailTokenizer": UaxUrlEmailTokenizer,
    "TokenFilter.#Microsoft.Azure.Search.AsciiFoldingTokenFilter": AsciiFoldingTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.CjkBigramTokenFilter": CjkBigramTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.CommonGramTokenFilter": CommonGramTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.DictionaryDecompounderTokenFilter": DictionaryDecompounderTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.EdgeNGramTokenFilter": EdgeNGramTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.EdgeNGramTokenFilterV2": EdgeNGramTokenFilterV2,
    "TokenFilter.#Microsoft.Azure.Search.ElisionTokenFilter": ElisionTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.KeepTokenFilter": KeepTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.KeywordMarkerTokenFilter": KeywordMarkerTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.LengthTokenFilter": LengthTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.LimitTokenFilter": LimitTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.NGramTokenFilter": NGramTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.NGramTokenFilterV2": NGramTokenFilterV2,
    "TokenFilter.#Microsoft.Azure.Search.PatternCaptureTokenFilter": PatternCaptureTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.PatternReplaceTokenFilter": PatternReplaceTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.PhoneticTokenFilter": PhoneticTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.ShingleTokenFilter": ShingleTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.SnowballTokenFilter": SnowballTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.StemmerTokenFilter": StemmerTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.StemmerOverrideTokenFilter": StemmerOverrideTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.StopwordsTokenFilter": StopwordsTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.SynonymTokenFilter": SynonymTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.TruncateTokenFilter": TruncateTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.UniqueTokenFilter": UniqueTokenFilter,
    "TokenFilter.#Microsoft.Azure.Search.WordDelimiterTokenFilter": WordDelimiterTokenFilter,
    "CharFilter.#Microsoft.Azure.Search.MappingCharFilter": MappingCharFilter,
    "CharFilter.#Microsoft.Azure.Search.PatternReplaceCharFilter": PatternReplaceCharFilter,
    "BaseLexicalNormalizer.#Microsoft.Azure.Search.CustomNormalizer": CustomLexicalNormalizer,
    "Similarity.#Microsoft.Azure.Search.ClassicSimilarity": ClassicSimilarity,
    "Similarity.#Microsoft.Azure.Search.BM25Similarity": BM25Similarity,
    "VectorSearchAlgorithmConfiguration.hnsw": HnswAlgorithmConfiguration,
    "VectorSearchAlgorithmConfiguration.exhaustiveKnn": ExhaustiveKnnAlgorithmConfiguration,
    "VectorSearchVectorizer.azureOpenAI": AzureOpenAIVectorizer,
    "VectorSearchVectorizer.customWebApi": WebApiVectorizer,
    "VectorSearchCompression.scalarQuantization": ScalarQuantizationCompression,
    "VectorSearchCompression.binaryQuantization": BinaryQuantizationCompression,
    "SearchIndexerDataIdentity.#Microsoft.Azure.Search.DataNoneIdentity": SearchIndexerDataNoneIdentity,
    "SearchIndexerDataIdentity.#Microsoft.Azure.Search.DataUserAssignedIdentity": SearchIndexerDataUserAssignedIdentity,
};
//# sourceMappingURL=mappers.js.map