"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.deserializeIntoCaseSettings = exports.deserializeIntoCaseOperationCollectionResponse = exports.deserializeIntoCaseOperation = exports.deserializeIntoCaseIndexOperation = exports.deserializeIntoCaseHoldOperation = exports.deserializeIntoCaseExportOperationCollectionResponse = exports.deserializeIntoCaseExportOperation = exports.deserializeIntoCaseEscaped = exports.deserializeIntoCaseCollectionResponse = exports.deserializeIntoAddToReviewSetOperation = exports.createUserSourceFromDiscriminatorValue = exports.createUserSourceCollectionResponseFromDiscriminatorValue = exports.createUnifiedGroupSourceFromDiscriminatorValue = exports.createUnifiedGroupSourceCollectionResponseFromDiscriminatorValue = exports.createTopicModelingSettingsFromDiscriminatorValue = exports.createTagOperationFromDiscriminatorValue = exports.createTagFromDiscriminatorValue = exports.createTagCollectionResponseFromDiscriminatorValue = exports.createSourceCollectionFromDiscriminatorValue = exports.createSourceCollectionCollectionResponseFromDiscriminatorValue = exports.createSiteSourceFromDiscriminatorValue = exports.createSiteSourceCollectionResponseFromDiscriminatorValue = exports.createReviewSetQueryFromDiscriminatorValue = exports.createReviewSetQueryCollectionResponseFromDiscriminatorValue = exports.createReviewSetFromDiscriminatorValue = exports.createReviewSetCollectionResponseFromDiscriminatorValue = exports.createRedundancyDetectionSettingsFromDiscriminatorValue = exports.createPurgeDataOperationFromDiscriminatorValue = exports.createOcrSettingsFromDiscriminatorValue = exports.createNoncustodialDataSourceFromDiscriminatorValue = exports.createNoncustodialDataSourceCollectionResponseFromDiscriminatorValue = exports.createLegalHoldFromDiscriminatorValue = exports.createLegalHoldCollectionResponseFromDiscriminatorValue = exports.createEstimateStatisticsOperationFromDiscriminatorValue = exports.createEdiscoveryrootFromDiscriminatorValue = exports.createDataSourceFromDiscriminatorValue = exports.createDataSourceContainerFromDiscriminatorValue = exports.createDataSourceCollectionResponseFromDiscriminatorValue = exports.createCustodianFromDiscriminatorValue = exports.createCustodianCollectionResponseFromDiscriminatorValue = exports.createCaseSettingsFromDiscriminatorValue = exports.createCaseOperationFromDiscriminatorValue = exports.createCaseOperationCollectionResponseFromDiscriminatorValue = exports.createCaseIndexOperationFromDiscriminatorValue = exports.createCaseHoldOperationFromDiscriminatorValue = exports.createCaseExportOperationFromDiscriminatorValue = exports.createCaseExportOperationCollectionResponseFromDiscriminatorValue = exports.createCaseEscapedFromDiscriminatorValue = exports.createCaseCollectionResponseFromDiscriminatorValue = exports.createAddToReviewSetOperationFromDiscriminatorValue = void 0;
exports.serializeNoncustodialDataSource = exports.serializeLegalHoldCollectionResponse = exports.serializeLegalHold = exports.serializeEstimateStatisticsOperation = exports.serializeEdiscoveryroot = exports.serializeDataSourceContainer = exports.serializeDataSourceCollectionResponse = exports.serializeDataSource = exports.serializeCustodianCollectionResponse = exports.serializeCustodian = exports.serializeCaseSettings = exports.serializeCaseOperationCollectionResponse = exports.serializeCaseOperation = exports.serializeCaseIndexOperation = exports.serializeCaseHoldOperation = exports.serializeCaseExportOperationCollectionResponse = exports.serializeCaseExportOperation = exports.serializeCaseEscaped = exports.serializeCaseCollectionResponse = exports.serializeAddToReviewSetOperation = exports.deserializeIntoUserSourceCollectionResponse = exports.deserializeIntoUserSource = exports.deserializeIntoUnifiedGroupSourceCollectionResponse = exports.deserializeIntoUnifiedGroupSource = exports.deserializeIntoTopicModelingSettings = exports.deserializeIntoTagOperation = exports.deserializeIntoTagCollectionResponse = exports.deserializeIntoTag = exports.deserializeIntoSourceCollectionCollectionResponse = exports.deserializeIntoSourceCollection = exports.deserializeIntoSiteSourceCollectionResponse = exports.deserializeIntoSiteSource = exports.deserializeIntoReviewSetQueryCollectionResponse = exports.deserializeIntoReviewSetQuery = exports.deserializeIntoReviewSetCollectionResponse = exports.deserializeIntoReviewSet = exports.deserializeIntoRedundancyDetectionSettings = exports.deserializeIntoPurgeDataOperation = exports.deserializeIntoOcrSettings = exports.deserializeIntoNoncustodialDataSourceCollectionResponse = exports.deserializeIntoNoncustodialDataSource = exports.deserializeIntoLegalHoldCollectionResponse = exports.deserializeIntoLegalHold = exports.deserializeIntoEstimateStatisticsOperation = exports.deserializeIntoEdiscoveryroot = exports.deserializeIntoDataSourceContainer = exports.deserializeIntoDataSourceCollectionResponse = exports.deserializeIntoDataSource = exports.deserializeIntoCustodianCollectionResponse = exports.deserializeIntoCustodian = void 0;
exports.SourceTypeObject = exports.LegalHoldStatusObject = exports.ExportOptionsObject = exports.ExportFileStructureObject = exports.DataSourceScopesObject = exports.DataSourceHoldStatusObject = exports.DataSourceContainerStatusObject = exports.ChildSelectabilityObject = exports.CaseStatusObject = exports.CaseOperationStatusObject = exports.CaseActionObject = exports.AdditionalDataOptionsObject = exports.serializeUserSourceCollectionResponse = exports.serializeUserSource = exports.serializeUnifiedGroupSourceCollectionResponse = exports.serializeUnifiedGroupSource = exports.serializeTopicModelingSettings = exports.serializeTagOperation = exports.serializeTagCollectionResponse = exports.serializeTag = exports.serializeSourceCollectionCollectionResponse = exports.serializeSourceCollection = exports.serializeSiteSourceCollectionResponse = exports.serializeSiteSource = exports.serializeReviewSetQueryCollectionResponse = exports.serializeReviewSetQuery = exports.serializeReviewSetCollectionResponse = exports.serializeReviewSet = exports.serializeRedundancyDetectionSettings = exports.serializePurgeDataOperation = exports.serializeOcrSettings = exports.serializeNoncustodialDataSourceCollectionResponse = void 0;
/* tslint:disable */
/* eslint-disable */
// Generated by Microsoft Kiota
const __1 = require("../");
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a addToReviewSetOperation
 */
function createAddToReviewSetOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoAddToReviewSetOperation;
}
exports.createAddToReviewSetOperationFromDiscriminatorValue = createAddToReviewSetOperationFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseCollectionResponse
 */
function createCaseCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoCaseCollectionResponse;
}
exports.createCaseCollectionResponseFromDiscriminatorValue = createCaseCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseEscaped
 */
function createCaseEscapedFromDiscriminatorValue(parseNode) {
    return deserializeIntoCaseEscaped;
}
exports.createCaseEscapedFromDiscriminatorValue = createCaseEscapedFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseExportOperationCollectionResponse
 */
function createCaseExportOperationCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoCaseExportOperationCollectionResponse;
}
exports.createCaseExportOperationCollectionResponseFromDiscriminatorValue = createCaseExportOperationCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseExportOperation
 */
function createCaseExportOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoCaseExportOperation;
}
exports.createCaseExportOperationFromDiscriminatorValue = createCaseExportOperationFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseHoldOperation
 */
function createCaseHoldOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoCaseHoldOperation;
}
exports.createCaseHoldOperationFromDiscriminatorValue = createCaseHoldOperationFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseIndexOperation
 */
function createCaseIndexOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoCaseIndexOperation;
}
exports.createCaseIndexOperationFromDiscriminatorValue = createCaseIndexOperationFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseOperationCollectionResponse
 */
function createCaseOperationCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoCaseOperationCollectionResponse;
}
exports.createCaseOperationCollectionResponseFromDiscriminatorValue = createCaseOperationCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseOperation
 */
function createCaseOperationFromDiscriminatorValue(parseNode) {
    if (!parseNode)
        throw new Error("parseNode cannot be undefined");
    const mappingValueNode = parseNode.getChildNode("@odata.type");
    if (mappingValueNode) {
        const mappingValue = mappingValueNode.getStringValue();
        if (mappingValue) {
            switch (mappingValue) {
                case "#microsoft.graph.ediscovery.addToReviewSetOperation":
                    return deserializeIntoAddToReviewSetOperation;
                case "#microsoft.graph.ediscovery.caseExportOperation":
                    return deserializeIntoCaseExportOperation;
                case "#microsoft.graph.ediscovery.caseHoldOperation":
                    return deserializeIntoCaseHoldOperation;
                case "#microsoft.graph.ediscovery.caseIndexOperation":
                    return deserializeIntoCaseIndexOperation;
                case "#microsoft.graph.ediscovery.estimateStatisticsOperation":
                    return deserializeIntoEstimateStatisticsOperation;
                case "#microsoft.graph.ediscovery.purgeDataOperation":
                    return deserializeIntoPurgeDataOperation;
                case "#microsoft.graph.ediscovery.tagOperation":
                    return deserializeIntoTagOperation;
            }
        }
    }
    return deserializeIntoCaseOperation;
}
exports.createCaseOperationFromDiscriminatorValue = createCaseOperationFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a caseSettings
 */
function createCaseSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoCaseSettings;
}
exports.createCaseSettingsFromDiscriminatorValue = createCaseSettingsFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a custodianCollectionResponse
 */
function createCustodianCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustodianCollectionResponse;
}
exports.createCustodianCollectionResponseFromDiscriminatorValue = createCustodianCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a custodian
 */
function createCustodianFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustodian;
}
exports.createCustodianFromDiscriminatorValue = createCustodianFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a dataSourceCollectionResponse
 */
function createDataSourceCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoDataSourceCollectionResponse;
}
exports.createDataSourceCollectionResponseFromDiscriminatorValue = createDataSourceCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a dataSourceContainer
 */
function createDataSourceContainerFromDiscriminatorValue(parseNode) {
    if (!parseNode)
        throw new Error("parseNode cannot be undefined");
    const mappingValueNode = parseNode.getChildNode("@odata.type");
    if (mappingValueNode) {
        const mappingValue = mappingValueNode.getStringValue();
        if (mappingValue) {
            switch (mappingValue) {
                case "#microsoft.graph.ediscovery.custodian":
                    return deserializeIntoCustodian;
                case "#microsoft.graph.ediscovery.noncustodialDataSource":
                    return deserializeIntoNoncustodialDataSource;
            }
        }
    }
    return deserializeIntoDataSourceContainer;
}
exports.createDataSourceContainerFromDiscriminatorValue = createDataSourceContainerFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a dataSource
 */
function createDataSourceFromDiscriminatorValue(parseNode) {
    if (!parseNode)
        throw new Error("parseNode cannot be undefined");
    const mappingValueNode = parseNode.getChildNode("@odata.type");
    if (mappingValueNode) {
        const mappingValue = mappingValueNode.getStringValue();
        if (mappingValue) {
            switch (mappingValue) {
                case "#microsoft.graph.ediscovery.siteSource":
                    return deserializeIntoSiteSource;
                case "#microsoft.graph.ediscovery.unifiedGroupSource":
                    return deserializeIntoUnifiedGroupSource;
                case "#microsoft.graph.ediscovery.userSource":
                    return deserializeIntoUserSource;
            }
        }
    }
    return deserializeIntoDataSource;
}
exports.createDataSourceFromDiscriminatorValue = createDataSourceFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a ediscoveryroot
 */
function createEdiscoveryrootFromDiscriminatorValue(parseNode) {
    return deserializeIntoEdiscoveryroot;
}
exports.createEdiscoveryrootFromDiscriminatorValue = createEdiscoveryrootFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a estimateStatisticsOperation
 */
function createEstimateStatisticsOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoEstimateStatisticsOperation;
}
exports.createEstimateStatisticsOperationFromDiscriminatorValue = createEstimateStatisticsOperationFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a legalHoldCollectionResponse
 */
function createLegalHoldCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoLegalHoldCollectionResponse;
}
exports.createLegalHoldCollectionResponseFromDiscriminatorValue = createLegalHoldCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a legalHold
 */
function createLegalHoldFromDiscriminatorValue(parseNode) {
    return deserializeIntoLegalHold;
}
exports.createLegalHoldFromDiscriminatorValue = createLegalHoldFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a noncustodialDataSourceCollectionResponse
 */
function createNoncustodialDataSourceCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoNoncustodialDataSourceCollectionResponse;
}
exports.createNoncustodialDataSourceCollectionResponseFromDiscriminatorValue = createNoncustodialDataSourceCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a noncustodialDataSource
 */
function createNoncustodialDataSourceFromDiscriminatorValue(parseNode) {
    return deserializeIntoNoncustodialDataSource;
}
exports.createNoncustodialDataSourceFromDiscriminatorValue = createNoncustodialDataSourceFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a ocrSettings
 */
function createOcrSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoOcrSettings;
}
exports.createOcrSettingsFromDiscriminatorValue = createOcrSettingsFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a purgeDataOperation
 */
function createPurgeDataOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoPurgeDataOperation;
}
exports.createPurgeDataOperationFromDiscriminatorValue = createPurgeDataOperationFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a redundancyDetectionSettings
 */
function createRedundancyDetectionSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoRedundancyDetectionSettings;
}
exports.createRedundancyDetectionSettingsFromDiscriminatorValue = createRedundancyDetectionSettingsFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a reviewSetCollectionResponse
 */
function createReviewSetCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoReviewSetCollectionResponse;
}
exports.createReviewSetCollectionResponseFromDiscriminatorValue = createReviewSetCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a reviewSet
 */
function createReviewSetFromDiscriminatorValue(parseNode) {
    return deserializeIntoReviewSet;
}
exports.createReviewSetFromDiscriminatorValue = createReviewSetFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a reviewSetQueryCollectionResponse
 */
function createReviewSetQueryCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoReviewSetQueryCollectionResponse;
}
exports.createReviewSetQueryCollectionResponseFromDiscriminatorValue = createReviewSetQueryCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a reviewSetQuery
 */
function createReviewSetQueryFromDiscriminatorValue(parseNode) {
    return deserializeIntoReviewSetQuery;
}
exports.createReviewSetQueryFromDiscriminatorValue = createReviewSetQueryFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a siteSourceCollectionResponse
 */
function createSiteSourceCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoSiteSourceCollectionResponse;
}
exports.createSiteSourceCollectionResponseFromDiscriminatorValue = createSiteSourceCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a siteSource
 */
function createSiteSourceFromDiscriminatorValue(parseNode) {
    return deserializeIntoSiteSource;
}
exports.createSiteSourceFromDiscriminatorValue = createSiteSourceFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a sourceCollectionCollectionResponse
 */
function createSourceCollectionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoSourceCollectionCollectionResponse;
}
exports.createSourceCollectionCollectionResponseFromDiscriminatorValue = createSourceCollectionCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a sourceCollection
 */
function createSourceCollectionFromDiscriminatorValue(parseNode) {
    return deserializeIntoSourceCollection;
}
exports.createSourceCollectionFromDiscriminatorValue = createSourceCollectionFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a tagCollectionResponse
 */
function createTagCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoTagCollectionResponse;
}
exports.createTagCollectionResponseFromDiscriminatorValue = createTagCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a tag
 */
function createTagFromDiscriminatorValue(parseNode) {
    return deserializeIntoTag;
}
exports.createTagFromDiscriminatorValue = createTagFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a tagOperation
 */
function createTagOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoTagOperation;
}
exports.createTagOperationFromDiscriminatorValue = createTagOperationFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a topicModelingSettings
 */
function createTopicModelingSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoTopicModelingSettings;
}
exports.createTopicModelingSettingsFromDiscriminatorValue = createTopicModelingSettingsFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a unifiedGroupSourceCollectionResponse
 */
function createUnifiedGroupSourceCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoUnifiedGroupSourceCollectionResponse;
}
exports.createUnifiedGroupSourceCollectionResponseFromDiscriminatorValue = createUnifiedGroupSourceCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a unifiedGroupSource
 */
function createUnifiedGroupSourceFromDiscriminatorValue(parseNode) {
    return deserializeIntoUnifiedGroupSource;
}
exports.createUnifiedGroupSourceFromDiscriminatorValue = createUnifiedGroupSourceFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a userSourceCollectionResponse
 */
function createUserSourceCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserSourceCollectionResponse;
}
exports.createUserSourceCollectionResponseFromDiscriminatorValue = createUserSourceCollectionResponseFromDiscriminatorValue;
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a userSource
 */
function createUserSourceFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserSource;
}
exports.createUserSourceFromDiscriminatorValue = createUserSourceFromDiscriminatorValue;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoAddToReviewSetOperation(addToReviewSetOperation = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCaseOperation(addToReviewSetOperation)), { "reviewSet": n => { addToReviewSetOperation.reviewSet = n.getObjectValue(createReviewSetFromDiscriminatorValue); }, "sourceCollection": n => { addToReviewSetOperation.sourceCollection = n.getObjectValue(createSourceCollectionFromDiscriminatorValue); } });
}
exports.deserializeIntoAddToReviewSetOperation = deserializeIntoAddToReviewSetOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseCollectionResponse(caseCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(caseCollectionResponse)), { "value": n => { caseCollectionResponse.value = n.getCollectionOfObjectValues(createCaseEscapedFromDiscriminatorValue); } });
}
exports.deserializeIntoCaseCollectionResponse = deserializeIntoCaseCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseEscaped(caseEscaped = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(caseEscaped)), { "closedBy": n => { caseEscaped.closedBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "closedDateTime": n => { caseEscaped.closedDateTime = n.getDateValue(); }, "createdDateTime": n => { caseEscaped.createdDateTime = n.getDateValue(); }, "custodians": n => { caseEscaped.custodians = n.getCollectionOfObjectValues(createCustodianFromDiscriminatorValue); }, "description": n => { caseEscaped.description = n.getStringValue(); }, "displayName": n => { caseEscaped.displayName = n.getStringValue(); }, "externalId": n => { caseEscaped.externalId = n.getStringValue(); }, "lastModifiedBy": n => { caseEscaped.lastModifiedBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "lastModifiedDateTime": n => { caseEscaped.lastModifiedDateTime = n.getDateValue(); }, "legalHolds": n => { caseEscaped.legalHolds = n.getCollectionOfObjectValues(createLegalHoldFromDiscriminatorValue); }, "noncustodialDataSources": n => { caseEscaped.noncustodialDataSources = n.getCollectionOfObjectValues(createNoncustodialDataSourceFromDiscriminatorValue); }, "operations": n => { caseEscaped.operations = n.getCollectionOfObjectValues(createCaseOperationFromDiscriminatorValue); }, "reviewSets": n => { caseEscaped.reviewSets = n.getCollectionOfObjectValues(createReviewSetFromDiscriminatorValue); }, "settings": n => { caseEscaped.settings = n.getObjectValue(createCaseSettingsFromDiscriminatorValue); }, "sourceCollections": n => { caseEscaped.sourceCollections = n.getCollectionOfObjectValues(createSourceCollectionFromDiscriminatorValue); }, "status": n => { caseEscaped.status = n.getEnumValue(exports.CaseStatusObject); }, "tags": n => { caseEscaped.tags = n.getCollectionOfObjectValues(createTagFromDiscriminatorValue); } });
}
exports.deserializeIntoCaseEscaped = deserializeIntoCaseEscaped;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseExportOperation(caseExportOperation = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCaseOperation(caseExportOperation)), { "azureBlobContainer": n => { caseExportOperation.azureBlobContainer = n.getStringValue(); }, "azureBlobToken": n => { caseExportOperation.azureBlobToken = n.getStringValue(); }, "description": n => { caseExportOperation.description = n.getStringValue(); }, "exportOptions": n => { caseExportOperation.exportOptions = n.getCollectionOfEnumValues(exports.ExportOptionsObject); }, "exportStructure": n => { caseExportOperation.exportStructure = n.getEnumValue(exports.ExportFileStructureObject); }, "outputFolderId": n => { caseExportOperation.outputFolderId = n.getStringValue(); }, "outputName": n => { caseExportOperation.outputName = n.getStringValue(); }, "reviewSet": n => { caseExportOperation.reviewSet = n.getObjectValue(createReviewSetFromDiscriminatorValue); } });
}
exports.deserializeIntoCaseExportOperation = deserializeIntoCaseExportOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseExportOperationCollectionResponse(caseExportOperationCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(caseExportOperationCollectionResponse)), { "value": n => { caseExportOperationCollectionResponse.value = n.getCollectionOfObjectValues(createCaseExportOperationFromDiscriminatorValue); } });
}
exports.deserializeIntoCaseExportOperationCollectionResponse = deserializeIntoCaseExportOperationCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseHoldOperation(caseHoldOperation = {}) {
    return Object.assign({}, deserializeIntoCaseOperation(caseHoldOperation));
}
exports.deserializeIntoCaseHoldOperation = deserializeIntoCaseHoldOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseIndexOperation(caseIndexOperation = {}) {
    return Object.assign({}, deserializeIntoCaseOperation(caseIndexOperation));
}
exports.deserializeIntoCaseIndexOperation = deserializeIntoCaseIndexOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseOperation(caseOperation = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(caseOperation)), { "action": n => { caseOperation.action = n.getEnumValue(exports.CaseActionObject); }, "completedDateTime": n => { caseOperation.completedDateTime = n.getDateValue(); }, "createdBy": n => { caseOperation.createdBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "createdDateTime": n => { caseOperation.createdDateTime = n.getDateValue(); }, "percentProgress": n => { caseOperation.percentProgress = n.getNumberValue(); }, "resultInfo": n => { caseOperation.resultInfo = n.getObjectValue(__1.createResultInfoFromDiscriminatorValue); }, "status": n => { caseOperation.status = n.getEnumValue(exports.CaseOperationStatusObject); } });
}
exports.deserializeIntoCaseOperation = deserializeIntoCaseOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseOperationCollectionResponse(caseOperationCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(caseOperationCollectionResponse)), { "value": n => { caseOperationCollectionResponse.value = n.getCollectionOfObjectValues(createCaseOperationFromDiscriminatorValue); } });
}
exports.deserializeIntoCaseOperationCollectionResponse = deserializeIntoCaseOperationCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCaseSettings(caseSettings = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(caseSettings)), { "ocr": n => { caseSettings.ocr = n.getObjectValue(createOcrSettingsFromDiscriminatorValue); }, "redundancyDetection": n => { caseSettings.redundancyDetection = n.getObjectValue(createRedundancyDetectionSettingsFromDiscriminatorValue); }, "topicModeling": n => { caseSettings.topicModeling = n.getObjectValue(createTopicModelingSettingsFromDiscriminatorValue); } });
}
exports.deserializeIntoCaseSettings = deserializeIntoCaseSettings;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCustodian(custodian = {}) {
    return Object.assign(Object.assign({}, deserializeIntoDataSourceContainer(custodian)), { "acknowledgedDateTime": n => { custodian.acknowledgedDateTime = n.getDateValue(); }, "applyHoldToSources": n => { custodian.applyHoldToSources = n.getBooleanValue(); }, "email": n => { custodian.email = n.getStringValue(); }, "siteSources": n => { custodian.siteSources = n.getCollectionOfObjectValues(createSiteSourceFromDiscriminatorValue); }, "unifiedGroupSources": n => { custodian.unifiedGroupSources = n.getCollectionOfObjectValues(createUnifiedGroupSourceFromDiscriminatorValue); }, "userSources": n => { custodian.userSources = n.getCollectionOfObjectValues(createUserSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoCustodian = deserializeIntoCustodian;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoCustodianCollectionResponse(custodianCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(custodianCollectionResponse)), { "value": n => { custodianCollectionResponse.value = n.getCollectionOfObjectValues(createCustodianFromDiscriminatorValue); } });
}
exports.deserializeIntoCustodianCollectionResponse = deserializeIntoCustodianCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoDataSource(dataSource = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(dataSource)), { "createdBy": n => { dataSource.createdBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "createdDateTime": n => { dataSource.createdDateTime = n.getDateValue(); }, "displayName": n => { dataSource.displayName = n.getStringValue(); }, "holdStatus": n => { dataSource.holdStatus = n.getEnumValue(exports.DataSourceHoldStatusObject); } });
}
exports.deserializeIntoDataSource = deserializeIntoDataSource;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoDataSourceCollectionResponse(dataSourceCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(dataSourceCollectionResponse)), { "value": n => { dataSourceCollectionResponse.value = n.getCollectionOfObjectValues(createDataSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoDataSourceCollectionResponse = deserializeIntoDataSourceCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoDataSourceContainer(dataSourceContainer = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(dataSourceContainer)), { "createdDateTime": n => { dataSourceContainer.createdDateTime = n.getDateValue(); }, "displayName": n => { dataSourceContainer.displayName = n.getStringValue(); }, "holdStatus": n => { dataSourceContainer.holdStatus = n.getEnumValue(exports.DataSourceHoldStatusObject); }, "lastIndexOperation": n => { dataSourceContainer.lastIndexOperation = n.getObjectValue(createCaseIndexOperationFromDiscriminatorValue); }, "lastModifiedDateTime": n => { dataSourceContainer.lastModifiedDateTime = n.getDateValue(); }, "releasedDateTime": n => { dataSourceContainer.releasedDateTime = n.getDateValue(); }, "status": n => { dataSourceContainer.status = n.getEnumValue(exports.DataSourceContainerStatusObject); } });
}
exports.deserializeIntoDataSourceContainer = deserializeIntoDataSourceContainer;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoEdiscoveryroot(ediscoveryroot = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(ediscoveryroot)), { "cases": n => { ediscoveryroot.cases = n.getCollectionOfObjectValues(createCaseEscapedFromDiscriminatorValue); } });
}
exports.deserializeIntoEdiscoveryroot = deserializeIntoEdiscoveryroot;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoEstimateStatisticsOperation(estimateStatisticsOperation = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCaseOperation(estimateStatisticsOperation)), { "indexedItemCount": n => { estimateStatisticsOperation.indexedItemCount = n.getNumberValue(); }, "indexedItemsSize": n => { estimateStatisticsOperation.indexedItemsSize = n.getNumberValue(); }, "mailboxCount": n => { estimateStatisticsOperation.mailboxCount = n.getNumberValue(); }, "siteCount": n => { estimateStatisticsOperation.siteCount = n.getNumberValue(); }, "sourceCollection": n => { estimateStatisticsOperation.sourceCollection = n.getObjectValue(createSourceCollectionFromDiscriminatorValue); }, "unindexedItemCount": n => { estimateStatisticsOperation.unindexedItemCount = n.getNumberValue(); }, "unindexedItemsSize": n => { estimateStatisticsOperation.unindexedItemsSize = n.getNumberValue(); } });
}
exports.deserializeIntoEstimateStatisticsOperation = deserializeIntoEstimateStatisticsOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoLegalHold(legalHold = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(legalHold)), { "contentQuery": n => { legalHold.contentQuery = n.getStringValue(); }, "createdBy": n => { legalHold.createdBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "createdDateTime": n => { legalHold.createdDateTime = n.getDateValue(); }, "description": n => { legalHold.description = n.getStringValue(); }, "displayName": n => { legalHold.displayName = n.getStringValue(); }, "errors": n => { legalHold.errors = n.getCollectionOfPrimitiveValues(); }, "isEnabled": n => { legalHold.isEnabled = n.getBooleanValue(); }, "lastModifiedBy": n => { legalHold.lastModifiedBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "lastModifiedDateTime": n => { legalHold.lastModifiedDateTime = n.getDateValue(); }, "siteSources": n => { legalHold.siteSources = n.getCollectionOfObjectValues(createSiteSourceFromDiscriminatorValue); }, "status": n => { legalHold.status = n.getEnumValue(exports.LegalHoldStatusObject); }, "unifiedGroupSources": n => { legalHold.unifiedGroupSources = n.getCollectionOfObjectValues(createUnifiedGroupSourceFromDiscriminatorValue); }, "userSources": n => { legalHold.userSources = n.getCollectionOfObjectValues(createUserSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoLegalHold = deserializeIntoLegalHold;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoLegalHoldCollectionResponse(legalHoldCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(legalHoldCollectionResponse)), { "value": n => { legalHoldCollectionResponse.value = n.getCollectionOfObjectValues(createLegalHoldFromDiscriminatorValue); } });
}
exports.deserializeIntoLegalHoldCollectionResponse = deserializeIntoLegalHoldCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoNoncustodialDataSource(noncustodialDataSource = {}) {
    return Object.assign(Object.assign({}, deserializeIntoDataSourceContainer(noncustodialDataSource)), { "applyHoldToSource": n => { noncustodialDataSource.applyHoldToSource = n.getBooleanValue(); }, "dataSource": n => { noncustodialDataSource.dataSource = n.getObjectValue(createDataSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoNoncustodialDataSource = deserializeIntoNoncustodialDataSource;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoNoncustodialDataSourceCollectionResponse(noncustodialDataSourceCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(noncustodialDataSourceCollectionResponse)), { "value": n => { noncustodialDataSourceCollectionResponse.value = n.getCollectionOfObjectValues(createNoncustodialDataSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoNoncustodialDataSourceCollectionResponse = deserializeIntoNoncustodialDataSourceCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoOcrSettings(ocrSettings = {}) {
    return {
        "backingStoreEnabled": n => { ocrSettings.backingStoreEnabled = true; },
        "isEnabled": n => { ocrSettings.isEnabled = n.getBooleanValue(); },
        "maxImageSize": n => { ocrSettings.maxImageSize = n.getNumberValue(); },
        "@odata.type": n => { ocrSettings.odataType = n.getStringValue(); },
        "timeout": n => { ocrSettings.timeout = n.getDurationValue(); },
    };
}
exports.deserializeIntoOcrSettings = deserializeIntoOcrSettings;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoPurgeDataOperation(purgeDataOperation = {}) {
    return Object.assign({}, deserializeIntoCaseOperation(purgeDataOperation));
}
exports.deserializeIntoPurgeDataOperation = deserializeIntoPurgeDataOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoRedundancyDetectionSettings(redundancyDetectionSettings = {}) {
    return {
        "backingStoreEnabled": n => { redundancyDetectionSettings.backingStoreEnabled = true; },
        "isEnabled": n => { redundancyDetectionSettings.isEnabled = n.getBooleanValue(); },
        "maxWords": n => { redundancyDetectionSettings.maxWords = n.getNumberValue(); },
        "minWords": n => { redundancyDetectionSettings.minWords = n.getNumberValue(); },
        "@odata.type": n => { redundancyDetectionSettings.odataType = n.getStringValue(); },
        "similarityThreshold": n => { redundancyDetectionSettings.similarityThreshold = n.getNumberValue(); },
    };
}
exports.deserializeIntoRedundancyDetectionSettings = deserializeIntoRedundancyDetectionSettings;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoReviewSet(reviewSet = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(reviewSet)), { "createdBy": n => { reviewSet.createdBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "createdDateTime": n => { reviewSet.createdDateTime = n.getDateValue(); }, "displayName": n => { reviewSet.displayName = n.getStringValue(); }, "queries": n => { reviewSet.queries = n.getCollectionOfObjectValues(createReviewSetQueryFromDiscriminatorValue); } });
}
exports.deserializeIntoReviewSet = deserializeIntoReviewSet;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoReviewSetCollectionResponse(reviewSetCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(reviewSetCollectionResponse)), { "value": n => { reviewSetCollectionResponse.value = n.getCollectionOfObjectValues(createReviewSetFromDiscriminatorValue); } });
}
exports.deserializeIntoReviewSetCollectionResponse = deserializeIntoReviewSetCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoReviewSetQuery(reviewSetQuery = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(reviewSetQuery)), { "createdBy": n => { reviewSetQuery.createdBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "createdDateTime": n => { reviewSetQuery.createdDateTime = n.getDateValue(); }, "displayName": n => { reviewSetQuery.displayName = n.getStringValue(); }, "lastModifiedBy": n => { reviewSetQuery.lastModifiedBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "lastModifiedDateTime": n => { reviewSetQuery.lastModifiedDateTime = n.getDateValue(); }, "query": n => { reviewSetQuery.query = n.getStringValue(); } });
}
exports.deserializeIntoReviewSetQuery = deserializeIntoReviewSetQuery;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoReviewSetQueryCollectionResponse(reviewSetQueryCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(reviewSetQueryCollectionResponse)), { "value": n => { reviewSetQueryCollectionResponse.value = n.getCollectionOfObjectValues(createReviewSetQueryFromDiscriminatorValue); } });
}
exports.deserializeIntoReviewSetQueryCollectionResponse = deserializeIntoReviewSetQueryCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoSiteSource(siteSource = {}) {
    return Object.assign(Object.assign({}, deserializeIntoDataSource(siteSource)), { "site": n => { siteSource.site = n.getObjectValue(__1.createSiteFromDiscriminatorValue); } });
}
exports.deserializeIntoSiteSource = deserializeIntoSiteSource;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoSiteSourceCollectionResponse(siteSourceCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(siteSourceCollectionResponse)), { "value": n => { siteSourceCollectionResponse.value = n.getCollectionOfObjectValues(createSiteSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoSiteSourceCollectionResponse = deserializeIntoSiteSourceCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoSourceCollection(sourceCollection = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(sourceCollection)), { "additionalSources": n => { sourceCollection.additionalSources = n.getCollectionOfObjectValues(createDataSourceFromDiscriminatorValue); }, "addToReviewSetOperation": n => { sourceCollection.addToReviewSetOperation = n.getObjectValue(createAddToReviewSetOperationFromDiscriminatorValue); }, "contentQuery": n => { sourceCollection.contentQuery = n.getStringValue(); }, "createdBy": n => { sourceCollection.createdBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "createdDateTime": n => { sourceCollection.createdDateTime = n.getDateValue(); }, "custodianSources": n => { sourceCollection.custodianSources = n.getCollectionOfObjectValues(createDataSourceFromDiscriminatorValue); }, "dataSourceScopes": n => { sourceCollection.dataSourceScopes = n.getCollectionOfEnumValues(exports.DataSourceScopesObject); }, "description": n => { sourceCollection.description = n.getStringValue(); }, "displayName": n => { sourceCollection.displayName = n.getStringValue(); }, "lastEstimateStatisticsOperation": n => { sourceCollection.lastEstimateStatisticsOperation = n.getObjectValue(createEstimateStatisticsOperationFromDiscriminatorValue); }, "lastModifiedBy": n => { sourceCollection.lastModifiedBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "lastModifiedDateTime": n => { sourceCollection.lastModifiedDateTime = n.getDateValue(); }, "noncustodialSources": n => { sourceCollection.noncustodialSources = n.getCollectionOfObjectValues(createNoncustodialDataSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoSourceCollection = deserializeIntoSourceCollection;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoSourceCollectionCollectionResponse(sourceCollectionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(sourceCollectionCollectionResponse)), { "value": n => { sourceCollectionCollectionResponse.value = n.getCollectionOfObjectValues(createSourceCollectionFromDiscriminatorValue); } });
}
exports.deserializeIntoSourceCollectionCollectionResponse = deserializeIntoSourceCollectionCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoTag(tag = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(tag)), { "childSelectability": n => { tag.childSelectability = n.getEnumValue(exports.ChildSelectabilityObject); }, "childTags": n => { tag.childTags = n.getCollectionOfObjectValues(createTagFromDiscriminatorValue); }, "createdBy": n => { tag.createdBy = n.getObjectValue(__1.createIdentitySetFromDiscriminatorValue); }, "description": n => { tag.description = n.getStringValue(); }, "displayName": n => { tag.displayName = n.getStringValue(); }, "lastModifiedDateTime": n => { tag.lastModifiedDateTime = n.getDateValue(); }, "parent": n => { tag.parent = n.getObjectValue(createTagFromDiscriminatorValue); } });
}
exports.deserializeIntoTag = deserializeIntoTag;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoTagCollectionResponse(tagCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(tagCollectionResponse)), { "value": n => { tagCollectionResponse.value = n.getCollectionOfObjectValues(createTagFromDiscriminatorValue); } });
}
exports.deserializeIntoTagCollectionResponse = deserializeIntoTagCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoTagOperation(tagOperation = {}) {
    return Object.assign({}, deserializeIntoCaseOperation(tagOperation));
}
exports.deserializeIntoTagOperation = deserializeIntoTagOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoTopicModelingSettings(topicModelingSettings = {}) {
    return {
        "backingStoreEnabled": n => { topicModelingSettings.backingStoreEnabled = true; },
        "dynamicallyAdjustTopicCount": n => { topicModelingSettings.dynamicallyAdjustTopicCount = n.getBooleanValue(); },
        "ignoreNumbers": n => { topicModelingSettings.ignoreNumbers = n.getBooleanValue(); },
        "isEnabled": n => { topicModelingSettings.isEnabled = n.getBooleanValue(); },
        "@odata.type": n => { topicModelingSettings.odataType = n.getStringValue(); },
        "topicCount": n => { topicModelingSettings.topicCount = n.getNumberValue(); },
    };
}
exports.deserializeIntoTopicModelingSettings = deserializeIntoTopicModelingSettings;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoUnifiedGroupSource(unifiedGroupSource = {}) {
    return Object.assign(Object.assign({}, deserializeIntoDataSource(unifiedGroupSource)), { "group": n => { unifiedGroupSource.group = n.getObjectValue(__1.createGroupFromDiscriminatorValue); }, "includedSources": n => { unifiedGroupSource.includedSources = n.getCollectionOfEnumValues(exports.SourceTypeObject); } });
}
exports.deserializeIntoUnifiedGroupSource = deserializeIntoUnifiedGroupSource;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoUnifiedGroupSourceCollectionResponse(unifiedGroupSourceCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(unifiedGroupSourceCollectionResponse)), { "value": n => { unifiedGroupSourceCollectionResponse.value = n.getCollectionOfObjectValues(createUnifiedGroupSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoUnifiedGroupSourceCollectionResponse = deserializeIntoUnifiedGroupSourceCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoUserSource(userSource = {}) {
    return Object.assign(Object.assign({}, deserializeIntoDataSource(userSource)), { "email": n => { userSource.email = n.getStringValue(); }, "includedSources": n => { userSource.includedSources = n.getCollectionOfEnumValues(exports.SourceTypeObject); }, "siteWebUrl": n => { userSource.siteWebUrl = n.getStringValue(); } });
}
exports.deserializeIntoUserSource = deserializeIntoUserSource;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoUserSourceCollectionResponse(userSourceCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(userSourceCollectionResponse)), { "value": n => { userSourceCollectionResponse.value = n.getCollectionOfObjectValues(createUserSourceFromDiscriminatorValue); } });
}
exports.deserializeIntoUserSourceCollectionResponse = deserializeIntoUserSourceCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeAddToReviewSetOperation(writer, addToReviewSetOperation = {}) {
    serializeCaseOperation(writer, addToReviewSetOperation);
    writer.writeObjectValue("reviewSet", addToReviewSetOperation.reviewSet, serializeReviewSet);
    writer.writeObjectValue("sourceCollection", addToReviewSetOperation.sourceCollection, serializeSourceCollection);
}
exports.serializeAddToReviewSetOperation = serializeAddToReviewSetOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseCollectionResponse(writer, caseCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, caseCollectionResponse);
    writer.writeCollectionOfObjectValues("value", caseCollectionResponse.value, serializeCaseEscaped);
}
exports.serializeCaseCollectionResponse = serializeCaseCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseEscaped(writer, caseEscaped = {}) {
    (0, __1.serializeEntity)(writer, caseEscaped);
    writer.writeObjectValue("closedBy", caseEscaped.closedBy, __1.serializeIdentitySet);
    writer.writeDateValue("closedDateTime", caseEscaped.closedDateTime);
    writer.writeDateValue("createdDateTime", caseEscaped.createdDateTime);
    writer.writeCollectionOfObjectValues("custodians", caseEscaped.custodians, serializeCustodian);
    writer.writeStringValue("description", caseEscaped.description);
    writer.writeStringValue("displayName", caseEscaped.displayName);
    writer.writeStringValue("externalId", caseEscaped.externalId);
    writer.writeObjectValue("lastModifiedBy", caseEscaped.lastModifiedBy, __1.serializeIdentitySet);
    writer.writeDateValue("lastModifiedDateTime", caseEscaped.lastModifiedDateTime);
    writer.writeCollectionOfObjectValues("legalHolds", caseEscaped.legalHolds, serializeLegalHold);
    writer.writeCollectionOfObjectValues("noncustodialDataSources", caseEscaped.noncustodialDataSources, serializeNoncustodialDataSource);
    writer.writeCollectionOfObjectValues("operations", caseEscaped.operations, serializeCaseOperation);
    writer.writeCollectionOfObjectValues("reviewSets", caseEscaped.reviewSets, serializeReviewSet);
    writer.writeObjectValue("settings", caseEscaped.settings, serializeCaseSettings);
    writer.writeCollectionOfObjectValues("sourceCollections", caseEscaped.sourceCollections, serializeSourceCollection);
    writer.writeEnumValue("status", caseEscaped.status);
    writer.writeCollectionOfObjectValues("tags", caseEscaped.tags, serializeTag);
}
exports.serializeCaseEscaped = serializeCaseEscaped;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseExportOperation(writer, caseExportOperation = {}) {
    serializeCaseOperation(writer, caseExportOperation);
    writer.writeStringValue("azureBlobContainer", caseExportOperation.azureBlobContainer);
    writer.writeStringValue("azureBlobToken", caseExportOperation.azureBlobToken);
    writer.writeStringValue("description", caseExportOperation.description);
    writer.writeEnumValue("exportOptions", caseExportOperation.exportOptions);
    writer.writeEnumValue("exportStructure", caseExportOperation.exportStructure);
    writer.writeStringValue("outputFolderId", caseExportOperation.outputFolderId);
    writer.writeStringValue("outputName", caseExportOperation.outputName);
    writer.writeObjectValue("reviewSet", caseExportOperation.reviewSet, serializeReviewSet);
}
exports.serializeCaseExportOperation = serializeCaseExportOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseExportOperationCollectionResponse(writer, caseExportOperationCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, caseExportOperationCollectionResponse);
    writer.writeCollectionOfObjectValues("value", caseExportOperationCollectionResponse.value, serializeCaseExportOperation);
}
exports.serializeCaseExportOperationCollectionResponse = serializeCaseExportOperationCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseHoldOperation(writer, caseHoldOperation = {}) {
    serializeCaseOperation(writer, caseHoldOperation);
}
exports.serializeCaseHoldOperation = serializeCaseHoldOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseIndexOperation(writer, caseIndexOperation = {}) {
    serializeCaseOperation(writer, caseIndexOperation);
}
exports.serializeCaseIndexOperation = serializeCaseIndexOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseOperation(writer, caseOperation = {}) {
    (0, __1.serializeEntity)(writer, caseOperation);
    writer.writeEnumValue("action", caseOperation.action);
    writer.writeDateValue("completedDateTime", caseOperation.completedDateTime);
    writer.writeObjectValue("createdBy", caseOperation.createdBy, __1.serializeIdentitySet);
    writer.writeDateValue("createdDateTime", caseOperation.createdDateTime);
    writer.writeNumberValue("percentProgress", caseOperation.percentProgress);
    writer.writeObjectValue("resultInfo", caseOperation.resultInfo, __1.serializeResultInfo);
    writer.writeEnumValue("status", caseOperation.status);
}
exports.serializeCaseOperation = serializeCaseOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseOperationCollectionResponse(writer, caseOperationCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, caseOperationCollectionResponse);
    writer.writeCollectionOfObjectValues("value", caseOperationCollectionResponse.value, serializeCaseOperation);
}
exports.serializeCaseOperationCollectionResponse = serializeCaseOperationCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCaseSettings(writer, caseSettings = {}) {
    (0, __1.serializeEntity)(writer, caseSettings);
    writer.writeObjectValue("ocr", caseSettings.ocr, serializeOcrSettings);
    writer.writeObjectValue("redundancyDetection", caseSettings.redundancyDetection, serializeRedundancyDetectionSettings);
    writer.writeObjectValue("topicModeling", caseSettings.topicModeling, serializeTopicModelingSettings);
}
exports.serializeCaseSettings = serializeCaseSettings;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCustodian(writer, custodian = {}) {
    serializeDataSourceContainer(writer, custodian);
    writer.writeDateValue("acknowledgedDateTime", custodian.acknowledgedDateTime);
    writer.writeBooleanValue("applyHoldToSources", custodian.applyHoldToSources);
    writer.writeStringValue("email", custodian.email);
    writer.writeCollectionOfObjectValues("siteSources", custodian.siteSources, serializeSiteSource);
    writer.writeCollectionOfObjectValues("unifiedGroupSources", custodian.unifiedGroupSources, serializeUnifiedGroupSource);
    writer.writeCollectionOfObjectValues("userSources", custodian.userSources, serializeUserSource);
}
exports.serializeCustodian = serializeCustodian;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeCustodianCollectionResponse(writer, custodianCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, custodianCollectionResponse);
    writer.writeCollectionOfObjectValues("value", custodianCollectionResponse.value, serializeCustodian);
}
exports.serializeCustodianCollectionResponse = serializeCustodianCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeDataSource(writer, dataSource = {}) {
    (0, __1.serializeEntity)(writer, dataSource);
    writer.writeObjectValue("createdBy", dataSource.createdBy, __1.serializeIdentitySet);
    writer.writeDateValue("createdDateTime", dataSource.createdDateTime);
    writer.writeStringValue("displayName", dataSource.displayName);
    writer.writeEnumValue("holdStatus", dataSource.holdStatus);
}
exports.serializeDataSource = serializeDataSource;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeDataSourceCollectionResponse(writer, dataSourceCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, dataSourceCollectionResponse);
    writer.writeCollectionOfObjectValues("value", dataSourceCollectionResponse.value, serializeDataSource);
}
exports.serializeDataSourceCollectionResponse = serializeDataSourceCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeDataSourceContainer(writer, dataSourceContainer = {}) {
    (0, __1.serializeEntity)(writer, dataSourceContainer);
    writer.writeDateValue("createdDateTime", dataSourceContainer.createdDateTime);
    writer.writeStringValue("displayName", dataSourceContainer.displayName);
    writer.writeEnumValue("holdStatus", dataSourceContainer.holdStatus);
    writer.writeObjectValue("lastIndexOperation", dataSourceContainer.lastIndexOperation, serializeCaseIndexOperation);
    writer.writeDateValue("lastModifiedDateTime", dataSourceContainer.lastModifiedDateTime);
    writer.writeDateValue("releasedDateTime", dataSourceContainer.releasedDateTime);
    writer.writeEnumValue("status", dataSourceContainer.status);
}
exports.serializeDataSourceContainer = serializeDataSourceContainer;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeEdiscoveryroot(writer, ediscoveryroot = {}) {
    (0, __1.serializeEntity)(writer, ediscoveryroot);
    writer.writeCollectionOfObjectValues("cases", ediscoveryroot.cases, serializeCaseEscaped);
}
exports.serializeEdiscoveryroot = serializeEdiscoveryroot;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeEstimateStatisticsOperation(writer, estimateStatisticsOperation = {}) {
    serializeCaseOperation(writer, estimateStatisticsOperation);
    writer.writeNumberValue("indexedItemCount", estimateStatisticsOperation.indexedItemCount);
    writer.writeNumberValue("indexedItemsSize", estimateStatisticsOperation.indexedItemsSize);
    writer.writeNumberValue("mailboxCount", estimateStatisticsOperation.mailboxCount);
    writer.writeNumberValue("siteCount", estimateStatisticsOperation.siteCount);
    writer.writeObjectValue("sourceCollection", estimateStatisticsOperation.sourceCollection, serializeSourceCollection);
    writer.writeNumberValue("unindexedItemCount", estimateStatisticsOperation.unindexedItemCount);
    writer.writeNumberValue("unindexedItemsSize", estimateStatisticsOperation.unindexedItemsSize);
}
exports.serializeEstimateStatisticsOperation = serializeEstimateStatisticsOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeLegalHold(writer, legalHold = {}) {
    (0, __1.serializeEntity)(writer, legalHold);
    writer.writeStringValue("contentQuery", legalHold.contentQuery);
    writer.writeObjectValue("createdBy", legalHold.createdBy, __1.serializeIdentitySet);
    writer.writeDateValue("createdDateTime", legalHold.createdDateTime);
    writer.writeStringValue("description", legalHold.description);
    writer.writeStringValue("displayName", legalHold.displayName);
    writer.writeCollectionOfPrimitiveValues("errors", legalHold.errors);
    writer.writeBooleanValue("isEnabled", legalHold.isEnabled);
    writer.writeObjectValue("lastModifiedBy", legalHold.lastModifiedBy, __1.serializeIdentitySet);
    writer.writeDateValue("lastModifiedDateTime", legalHold.lastModifiedDateTime);
    writer.writeCollectionOfObjectValues("siteSources", legalHold.siteSources, serializeSiteSource);
    writer.writeEnumValue("status", legalHold.status);
    writer.writeCollectionOfObjectValues("unifiedGroupSources", legalHold.unifiedGroupSources, serializeUnifiedGroupSource);
    writer.writeCollectionOfObjectValues("userSources", legalHold.userSources, serializeUserSource);
}
exports.serializeLegalHold = serializeLegalHold;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeLegalHoldCollectionResponse(writer, legalHoldCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, legalHoldCollectionResponse);
    writer.writeCollectionOfObjectValues("value", legalHoldCollectionResponse.value, serializeLegalHold);
}
exports.serializeLegalHoldCollectionResponse = serializeLegalHoldCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeNoncustodialDataSource(writer, noncustodialDataSource = {}) {
    serializeDataSourceContainer(writer, noncustodialDataSource);
    writer.writeBooleanValue("applyHoldToSource", noncustodialDataSource.applyHoldToSource);
    writer.writeObjectValue("dataSource", noncustodialDataSource.dataSource, serializeDataSource);
}
exports.serializeNoncustodialDataSource = serializeNoncustodialDataSource;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeNoncustodialDataSourceCollectionResponse(writer, noncustodialDataSourceCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, noncustodialDataSourceCollectionResponse);
    writer.writeCollectionOfObjectValues("value", noncustodialDataSourceCollectionResponse.value, serializeNoncustodialDataSource);
}
exports.serializeNoncustodialDataSourceCollectionResponse = serializeNoncustodialDataSourceCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeOcrSettings(writer, ocrSettings = {}) {
    writer.writeBooleanValue("isEnabled", ocrSettings.isEnabled);
    writer.writeNumberValue("maxImageSize", ocrSettings.maxImageSize);
    writer.writeStringValue("@odata.type", ocrSettings.odataType);
    writer.writeDurationValue("timeout", ocrSettings.timeout);
    writer.writeAdditionalData(ocrSettings.additionalData);
}
exports.serializeOcrSettings = serializeOcrSettings;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializePurgeDataOperation(writer, purgeDataOperation = {}) {
    serializeCaseOperation(writer, purgeDataOperation);
}
exports.serializePurgeDataOperation = serializePurgeDataOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeRedundancyDetectionSettings(writer, redundancyDetectionSettings = {}) {
    writer.writeBooleanValue("isEnabled", redundancyDetectionSettings.isEnabled);
    writer.writeNumberValue("maxWords", redundancyDetectionSettings.maxWords);
    writer.writeNumberValue("minWords", redundancyDetectionSettings.minWords);
    writer.writeStringValue("@odata.type", redundancyDetectionSettings.odataType);
    writer.writeNumberValue("similarityThreshold", redundancyDetectionSettings.similarityThreshold);
    writer.writeAdditionalData(redundancyDetectionSettings.additionalData);
}
exports.serializeRedundancyDetectionSettings = serializeRedundancyDetectionSettings;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeReviewSet(writer, reviewSet = {}) {
    (0, __1.serializeEntity)(writer, reviewSet);
    writer.writeObjectValue("createdBy", reviewSet.createdBy, __1.serializeIdentitySet);
    writer.writeDateValue("createdDateTime", reviewSet.createdDateTime);
    writer.writeStringValue("displayName", reviewSet.displayName);
    writer.writeCollectionOfObjectValues("queries", reviewSet.queries, serializeReviewSetQuery);
}
exports.serializeReviewSet = serializeReviewSet;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeReviewSetCollectionResponse(writer, reviewSetCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, reviewSetCollectionResponse);
    writer.writeCollectionOfObjectValues("value", reviewSetCollectionResponse.value, serializeReviewSet);
}
exports.serializeReviewSetCollectionResponse = serializeReviewSetCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeReviewSetQuery(writer, reviewSetQuery = {}) {
    (0, __1.serializeEntity)(writer, reviewSetQuery);
    writer.writeObjectValue("createdBy", reviewSetQuery.createdBy, __1.serializeIdentitySet);
    writer.writeDateValue("createdDateTime", reviewSetQuery.createdDateTime);
    writer.writeStringValue("displayName", reviewSetQuery.displayName);
    writer.writeObjectValue("lastModifiedBy", reviewSetQuery.lastModifiedBy, __1.serializeIdentitySet);
    writer.writeDateValue("lastModifiedDateTime", reviewSetQuery.lastModifiedDateTime);
    writer.writeStringValue("query", reviewSetQuery.query);
}
exports.serializeReviewSetQuery = serializeReviewSetQuery;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeReviewSetQueryCollectionResponse(writer, reviewSetQueryCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, reviewSetQueryCollectionResponse);
    writer.writeCollectionOfObjectValues("value", reviewSetQueryCollectionResponse.value, serializeReviewSetQuery);
}
exports.serializeReviewSetQueryCollectionResponse = serializeReviewSetQueryCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeSiteSource(writer, siteSource = {}) {
    serializeDataSource(writer, siteSource);
    writer.writeObjectValue("site", siteSource.site, __1.serializeSite);
}
exports.serializeSiteSource = serializeSiteSource;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeSiteSourceCollectionResponse(writer, siteSourceCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, siteSourceCollectionResponse);
    writer.writeCollectionOfObjectValues("value", siteSourceCollectionResponse.value, serializeSiteSource);
}
exports.serializeSiteSourceCollectionResponse = serializeSiteSourceCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeSourceCollection(writer, sourceCollection = {}) {
    (0, __1.serializeEntity)(writer, sourceCollection);
    writer.writeCollectionOfObjectValues("additionalSources", sourceCollection.additionalSources, serializeDataSource);
    writer.writeObjectValue("addToReviewSetOperation", sourceCollection.addToReviewSetOperation, serializeAddToReviewSetOperation);
    writer.writeStringValue("contentQuery", sourceCollection.contentQuery);
    writer.writeObjectValue("createdBy", sourceCollection.createdBy, __1.serializeIdentitySet);
    writer.writeDateValue("createdDateTime", sourceCollection.createdDateTime);
    writer.writeCollectionOfObjectValues("custodianSources", sourceCollection.custodianSources, serializeDataSource);
    writer.writeEnumValue("dataSourceScopes", sourceCollection.dataSourceScopes);
    writer.writeStringValue("description", sourceCollection.description);
    writer.writeStringValue("displayName", sourceCollection.displayName);
    writer.writeObjectValue("lastEstimateStatisticsOperation", sourceCollection.lastEstimateStatisticsOperation, serializeEstimateStatisticsOperation);
    writer.writeObjectValue("lastModifiedBy", sourceCollection.lastModifiedBy, __1.serializeIdentitySet);
    writer.writeDateValue("lastModifiedDateTime", sourceCollection.lastModifiedDateTime);
    writer.writeCollectionOfObjectValues("noncustodialSources", sourceCollection.noncustodialSources, serializeNoncustodialDataSource);
}
exports.serializeSourceCollection = serializeSourceCollection;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeSourceCollectionCollectionResponse(writer, sourceCollectionCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, sourceCollectionCollectionResponse);
    writer.writeCollectionOfObjectValues("value", sourceCollectionCollectionResponse.value, serializeSourceCollection);
}
exports.serializeSourceCollectionCollectionResponse = serializeSourceCollectionCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeTag(writer, tag = {}) {
    (0, __1.serializeEntity)(writer, tag);
    writer.writeEnumValue("childSelectability", tag.childSelectability);
    writer.writeCollectionOfObjectValues("childTags", tag.childTags, serializeTag);
    writer.writeObjectValue("createdBy", tag.createdBy, __1.serializeIdentitySet);
    writer.writeStringValue("description", tag.description);
    writer.writeStringValue("displayName", tag.displayName);
    writer.writeDateValue("lastModifiedDateTime", tag.lastModifiedDateTime);
    writer.writeObjectValue("parent", tag.parent, serializeTag);
}
exports.serializeTag = serializeTag;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeTagCollectionResponse(writer, tagCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, tagCollectionResponse);
    writer.writeCollectionOfObjectValues("value", tagCollectionResponse.value, serializeTag);
}
exports.serializeTagCollectionResponse = serializeTagCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeTagOperation(writer, tagOperation = {}) {
    serializeCaseOperation(writer, tagOperation);
}
exports.serializeTagOperation = serializeTagOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeTopicModelingSettings(writer, topicModelingSettings = {}) {
    writer.writeBooleanValue("dynamicallyAdjustTopicCount", topicModelingSettings.dynamicallyAdjustTopicCount);
    writer.writeBooleanValue("ignoreNumbers", topicModelingSettings.ignoreNumbers);
    writer.writeBooleanValue("isEnabled", topicModelingSettings.isEnabled);
    writer.writeStringValue("@odata.type", topicModelingSettings.odataType);
    writer.writeNumberValue("topicCount", topicModelingSettings.topicCount);
    writer.writeAdditionalData(topicModelingSettings.additionalData);
}
exports.serializeTopicModelingSettings = serializeTopicModelingSettings;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeUnifiedGroupSource(writer, unifiedGroupSource = {}) {
    serializeDataSource(writer, unifiedGroupSource);
    writer.writeObjectValue("group", unifiedGroupSource.group, __1.serializeGroup);
    writer.writeEnumValue("includedSources", unifiedGroupSource.includedSources);
}
exports.serializeUnifiedGroupSource = serializeUnifiedGroupSource;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeUnifiedGroupSourceCollectionResponse(writer, unifiedGroupSourceCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, unifiedGroupSourceCollectionResponse);
    writer.writeCollectionOfObjectValues("value", unifiedGroupSourceCollectionResponse.value, serializeUnifiedGroupSource);
}
exports.serializeUnifiedGroupSourceCollectionResponse = serializeUnifiedGroupSourceCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeUserSource(writer, userSource = {}) {
    serializeDataSource(writer, userSource);
    writer.writeStringValue("email", userSource.email);
    writer.writeEnumValue("includedSources", userSource.includedSources);
    writer.writeStringValue("siteWebUrl", userSource.siteWebUrl);
}
exports.serializeUserSource = serializeUserSource;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeUserSourceCollectionResponse(writer, userSourceCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, userSourceCollectionResponse);
    writer.writeCollectionOfObjectValues("value", userSourceCollectionResponse.value, serializeUserSource);
}
exports.serializeUserSourceCollectionResponse = serializeUserSourceCollectionResponse;
exports.AdditionalDataOptionsObject = {
    AllVersions: "allVersions",
    LinkedFiles: "linkedFiles",
    UnknownFutureValue: "unknownFutureValue",
};
exports.CaseActionObject = {
    ContentExport: "contentExport",
    ApplyTags: "applyTags",
    ConvertToPdf: "convertToPdf",
    Index: "index",
    EstimateStatistics: "estimateStatistics",
    AddToReviewSet: "addToReviewSet",
    HoldUpdate: "holdUpdate",
    UnknownFutureValue: "unknownFutureValue",
    PurgeData: "purgeData",
};
exports.CaseOperationStatusObject = {
    NotStarted: "notStarted",
    SubmissionFailed: "submissionFailed",
    Running: "running",
    Succeeded: "succeeded",
    PartiallySucceeded: "partiallySucceeded",
    Failed: "failed",
};
exports.CaseStatusObject = {
    Unknown: "unknown",
    Active: "active",
    PendingDelete: "pendingDelete",
    Closing: "closing",
    Closed: "closed",
    ClosedWithError: "closedWithError",
};
exports.ChildSelectabilityObject = {
    One: "One",
    Many: "Many",
};
exports.DataSourceContainerStatusObject = {
    Active: "Active",
    Released: "Released",
    UnknownFutureValue: "UnknownFutureValue",
};
exports.DataSourceHoldStatusObject = {
    NotApplied: "notApplied",
    Applied: "applied",
    Applying: "applying",
    Removing: "removing",
    Partial: "partial",
    UnknownFutureValue: "unknownFutureValue",
};
exports.DataSourceScopesObject = {
    None: "none",
    AllTenantMailboxes: "allTenantMailboxes",
    AllTenantSites: "allTenantSites",
    AllCaseCustodians: "allCaseCustodians",
    AllCaseNoncustodialDataSources: "allCaseNoncustodialDataSources",
    UnknownFutureValue: "unknownFutureValue",
};
exports.ExportFileStructureObject = {
    None: "none",
    Directory: "directory",
    Pst: "pst",
    UnknownFutureValue: "unknownFutureValue",
};
exports.ExportOptionsObject = {
    OriginalFiles: "originalFiles",
    Text: "text",
    PdfReplacement: "pdfReplacement",
    FileInfo: "fileInfo",
    Tags: "tags",
    UnknownFutureValue: "unknownFutureValue",
};
exports.LegalHoldStatusObject = {
    Pending: "Pending",
    ErrorEscaped: "Error",
    Success: "Success",
    UnknownFutureValue: "UnknownFutureValue",
};
exports.SourceTypeObject = {
    Mailbox: "mailbox",
    Site: "site",
};
/* tslint:enable */
/* eslint-enable */
