"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.deserializeIntoIndustryDataConnector = exports.deserializeIntoIndustryDataActivityStatistics = exports.deserializeIntoIndustryDataActivity = exports.deserializeIntoInboundFlowCollectionResponse = exports.deserializeIntoInboundFlowActivity = exports.deserializeIntoInboundFlow = exports.deserializeIntoInboundFileFlow = exports.deserializeIntoInboundActivityResults = exports.deserializeIntoIdentifierTypeReferenceValue = exports.deserializeIntoFileValidateOperation = exports.deserializeIntoFileDataConnector = exports.deserializeIntoAzureDataLakeConnector = exports.deserializeIntoAggregatedInboundStatistics = exports.createYearTimePeriodDefinitionFromDiscriminatorValue = exports.createYearTimePeriodDefinitionCollectionResponseFromDiscriminatorValue = exports.createYearReferenceValueFromDiscriminatorValue = exports.createValidateOperationFromDiscriminatorValue = exports.createUserMatchTargetReferenceValueFromDiscriminatorValue = exports.createUserMatchingSettingFromDiscriminatorValue = exports.createSourceSystemDefinitionFromDiscriminatorValue = exports.createSourceSystemDefinitionCollectionResponseFromDiscriminatorValue = exports.createRoleReferenceValueFromDiscriminatorValue = exports.createRoleGroupFromDiscriminatorValue = exports.createRoleGroupCollectionResponseFromDiscriminatorValue = exports.createReferenceValueFromDiscriminatorValue = exports.createReferenceDefinitionFromDiscriminatorValue = exports.createReferenceDefinitionCollectionResponseFromDiscriminatorValue = exports.createOutboundFlowActivityFromDiscriminatorValue = exports.createIndustryDataRunStatisticsFromDiscriminatorValue = exports.createIndustryDataRunRoleCountMetricFromDiscriminatorValue = exports.createIndustryDataRunFromDiscriminatorValue = exports.createIndustryDataRunEntityCountMetricFromDiscriminatorValue = exports.createIndustryDataRunCollectionResponseFromDiscriminatorValue = exports.createIndustryDataRunActivityFromDiscriminatorValue = exports.createIndustryDataRunActivityCollectionResponseFromDiscriminatorValue = exports.createIndustryDataRootFromDiscriminatorValue = exports.createIndustryDataConnectorFromDiscriminatorValue = exports.createIndustryDataConnectorCollectionResponseFromDiscriminatorValue = exports.createIndustryDataActivityStatisticsFromDiscriminatorValue = exports.createIndustryDataActivityFromDiscriminatorValue = exports.createInboundFlowFromDiscriminatorValue = exports.createInboundFlowCollectionResponseFromDiscriminatorValue = exports.createInboundFlowActivityFromDiscriminatorValue = exports.createInboundFileFlowFromDiscriminatorValue = exports.createInboundActivityResultsFromDiscriminatorValue = exports.createIdentifierTypeReferenceValueFromDiscriminatorValue = exports.createFileValidateOperationFromDiscriminatorValue = exports.createFileDataConnectorFromDiscriminatorValue = exports.createAzureDataLakeConnectorFromDiscriminatorValue = exports.createAggregatedInboundStatisticsFromDiscriminatorValue = void 0;
exports.serializeReferenceValue = exports.serializeReferenceDefinitionCollectionResponse = exports.serializeReferenceDefinition = exports.serializeOutboundFlowActivity = exports.serializeIndustryDataRunStatistics = exports.serializeIndustryDataRunRoleCountMetric = exports.serializeIndustryDataRunEntityCountMetric = exports.serializeIndustryDataRunCollectionResponse = exports.serializeIndustryDataRunActivityCollectionResponse = exports.serializeIndustryDataRunActivity = exports.serializeIndustryDataRun = exports.serializeIndustryDataRoot = exports.serializeIndustryDataConnectorCollectionResponse = exports.serializeIndustryDataConnector = exports.serializeIndustryDataActivityStatistics = exports.serializeIndustryDataActivity = exports.serializeInboundFlowCollectionResponse = exports.serializeInboundFlowActivity = exports.serializeInboundFlow = exports.serializeInboundFileFlow = exports.serializeInboundActivityResults = exports.serializeIdentifierTypeReferenceValue = exports.serializeFileValidateOperation = exports.serializeFileDataConnector = exports.serializeAzureDataLakeConnector = exports.serializeAggregatedInboundStatistics = exports.deserializeIntoYearTimePeriodDefinitionCollectionResponse = exports.deserializeIntoYearTimePeriodDefinition = exports.deserializeIntoYearReferenceValue = exports.deserializeIntoValidateOperation = exports.deserializeIntoUserMatchTargetReferenceValue = exports.deserializeIntoUserMatchingSetting = exports.deserializeIntoSourceSystemDefinitionCollectionResponse = exports.deserializeIntoSourceSystemDefinition = exports.deserializeIntoRoleReferenceValue = exports.deserializeIntoRoleGroupCollectionResponse = exports.deserializeIntoRoleGroup = exports.deserializeIntoReferenceValue = exports.deserializeIntoReferenceDefinitionCollectionResponse = exports.deserializeIntoReferenceDefinition = exports.deserializeIntoOutboundFlowActivity = exports.deserializeIntoIndustryDataRunStatistics = exports.deserializeIntoIndustryDataRunRoleCountMetric = exports.deserializeIntoIndustryDataRunEntityCountMetric = exports.deserializeIntoIndustryDataRunCollectionResponse = exports.deserializeIntoIndustryDataRunActivityCollectionResponse = exports.deserializeIntoIndustryDataRunActivity = exports.deserializeIntoIndustryDataRun = exports.deserializeIntoIndustryDataRoot = exports.deserializeIntoIndustryDataConnectorCollectionResponse = void 0;
exports.ReadinessStatusObject = exports.IndustryDataRunStatusObject = exports.IndustryDataActivityStatusObject = exports.InboundDomainObject = exports.serializeYearTimePeriodDefinitionCollectionResponse = exports.serializeYearTimePeriodDefinition = exports.serializeYearReferenceValue = exports.serializeValidateOperation = exports.serializeUserMatchTargetReferenceValue = exports.serializeUserMatchingSetting = exports.serializeSourceSystemDefinitionCollectionResponse = exports.serializeSourceSystemDefinition = exports.serializeRoleReferenceValue = exports.serializeRoleGroupCollectionResponse = exports.serializeRoleGroup = 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 aggregatedInboundStatistics
 */
function createAggregatedInboundStatisticsFromDiscriminatorValue(parseNode) {
    return deserializeIntoAggregatedInboundStatistics;
}
exports.createAggregatedInboundStatisticsFromDiscriminatorValue = createAggregatedInboundStatisticsFromDiscriminatorValue;
/**
 * 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 azureDataLakeConnector
 */
function createAzureDataLakeConnectorFromDiscriminatorValue(parseNode) {
    return deserializeIntoAzureDataLakeConnector;
}
exports.createAzureDataLakeConnectorFromDiscriminatorValue = createAzureDataLakeConnectorFromDiscriminatorValue;
/**
 * 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 fileDataConnector
 */
function createFileDataConnectorFromDiscriminatorValue(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.industryData.azureDataLakeConnector":
                    return deserializeIntoAzureDataLakeConnector;
            }
        }
    }
    return deserializeIntoFileDataConnector;
}
exports.createFileDataConnectorFromDiscriminatorValue = createFileDataConnectorFromDiscriminatorValue;
/**
 * 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 fileValidateOperation
 */
function createFileValidateOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoFileValidateOperation;
}
exports.createFileValidateOperationFromDiscriminatorValue = createFileValidateOperationFromDiscriminatorValue;
/**
 * 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 identifierTypeReferenceValue
 */
function createIdentifierTypeReferenceValueFromDiscriminatorValue(parseNode) {
    return deserializeIntoIdentifierTypeReferenceValue;
}
exports.createIdentifierTypeReferenceValueFromDiscriminatorValue = createIdentifierTypeReferenceValueFromDiscriminatorValue;
/**
 * 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 inboundActivityResults
 */
function createInboundActivityResultsFromDiscriminatorValue(parseNode) {
    return deserializeIntoInboundActivityResults;
}
exports.createInboundActivityResultsFromDiscriminatorValue = createInboundActivityResultsFromDiscriminatorValue;
/**
 * 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 inboundFileFlow
 */
function createInboundFileFlowFromDiscriminatorValue(parseNode) {
    return deserializeIntoInboundFileFlow;
}
exports.createInboundFileFlowFromDiscriminatorValue = createInboundFileFlowFromDiscriminatorValue;
/**
 * 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 inboundFlowActivity
 */
function createInboundFlowActivityFromDiscriminatorValue(parseNode) {
    return deserializeIntoInboundFlowActivity;
}
exports.createInboundFlowActivityFromDiscriminatorValue = createInboundFlowActivityFromDiscriminatorValue;
/**
 * 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 inboundFlowCollectionResponse
 */
function createInboundFlowCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoInboundFlowCollectionResponse;
}
exports.createInboundFlowCollectionResponseFromDiscriminatorValue = createInboundFlowCollectionResponseFromDiscriminatorValue;
/**
 * 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 inboundFlow
 */
function createInboundFlowFromDiscriminatorValue(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.industryData.inboundFileFlow":
                    return deserializeIntoInboundFileFlow;
            }
        }
    }
    return deserializeIntoInboundFlow;
}
exports.createInboundFlowFromDiscriminatorValue = createInboundFlowFromDiscriminatorValue;
/**
 * 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 industryDataActivity
 */
function createIndustryDataActivityFromDiscriminatorValue(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.industryData.inboundFileFlow":
                    return deserializeIntoInboundFileFlow;
                case "#microsoft.graph.industryData.inboundFlow":
                    return deserializeIntoInboundFlow;
            }
        }
    }
    return deserializeIntoIndustryDataActivity;
}
exports.createIndustryDataActivityFromDiscriminatorValue = createIndustryDataActivityFromDiscriminatorValue;
/**
 * 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 industryDataActivityStatistics
 */
function createIndustryDataActivityStatisticsFromDiscriminatorValue(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.industryData.inboundActivityResults":
                    return deserializeIntoInboundActivityResults;
            }
        }
    }
    return deserializeIntoIndustryDataActivityStatistics;
}
exports.createIndustryDataActivityStatisticsFromDiscriminatorValue = createIndustryDataActivityStatisticsFromDiscriminatorValue;
/**
 * 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 industryDataConnectorCollectionResponse
 */
function createIndustryDataConnectorCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoIndustryDataConnectorCollectionResponse;
}
exports.createIndustryDataConnectorCollectionResponseFromDiscriminatorValue = createIndustryDataConnectorCollectionResponseFromDiscriminatorValue;
/**
 * 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 industryDataConnector
 */
function createIndustryDataConnectorFromDiscriminatorValue(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.industryData.azureDataLakeConnector":
                    return deserializeIntoAzureDataLakeConnector;
                case "#microsoft.graph.industryData.fileDataConnector":
                    return deserializeIntoFileDataConnector;
            }
        }
    }
    return deserializeIntoIndustryDataConnector;
}
exports.createIndustryDataConnectorFromDiscriminatorValue = createIndustryDataConnectorFromDiscriminatorValue;
/**
 * 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 industryDataRoot
 */
function createIndustryDataRootFromDiscriminatorValue(parseNode) {
    return deserializeIntoIndustryDataRoot;
}
exports.createIndustryDataRootFromDiscriminatorValue = createIndustryDataRootFromDiscriminatorValue;
/**
 * 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 industryDataRunActivityCollectionResponse
 */
function createIndustryDataRunActivityCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoIndustryDataRunActivityCollectionResponse;
}
exports.createIndustryDataRunActivityCollectionResponseFromDiscriminatorValue = createIndustryDataRunActivityCollectionResponseFromDiscriminatorValue;
/**
 * 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 industryDataRunActivity
 */
function createIndustryDataRunActivityFromDiscriminatorValue(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.industryData.inboundFlowActivity":
                    return deserializeIntoInboundFlowActivity;
                case "#microsoft.graph.industryData.outboundFlowActivity":
                    return deserializeIntoOutboundFlowActivity;
            }
        }
    }
    return deserializeIntoIndustryDataRunActivity;
}
exports.createIndustryDataRunActivityFromDiscriminatorValue = createIndustryDataRunActivityFromDiscriminatorValue;
/**
 * 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 industryDataRunCollectionResponse
 */
function createIndustryDataRunCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoIndustryDataRunCollectionResponse;
}
exports.createIndustryDataRunCollectionResponseFromDiscriminatorValue = createIndustryDataRunCollectionResponseFromDiscriminatorValue;
/**
 * 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 industryDataRunEntityCountMetric
 */
function createIndustryDataRunEntityCountMetricFromDiscriminatorValue(parseNode) {
    return deserializeIntoIndustryDataRunEntityCountMetric;
}
exports.createIndustryDataRunEntityCountMetricFromDiscriminatorValue = createIndustryDataRunEntityCountMetricFromDiscriminatorValue;
/**
 * 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 industryDataRun
 */
function createIndustryDataRunFromDiscriminatorValue(parseNode) {
    return deserializeIntoIndustryDataRun;
}
exports.createIndustryDataRunFromDiscriminatorValue = createIndustryDataRunFromDiscriminatorValue;
/**
 * 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 industryDataRunRoleCountMetric
 */
function createIndustryDataRunRoleCountMetricFromDiscriminatorValue(parseNode) {
    return deserializeIntoIndustryDataRunRoleCountMetric;
}
exports.createIndustryDataRunRoleCountMetricFromDiscriminatorValue = createIndustryDataRunRoleCountMetricFromDiscriminatorValue;
/**
 * 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 industryDataRunStatistics
 */
function createIndustryDataRunStatisticsFromDiscriminatorValue(parseNode) {
    return deserializeIntoIndustryDataRunStatistics;
}
exports.createIndustryDataRunStatisticsFromDiscriminatorValue = createIndustryDataRunStatisticsFromDiscriminatorValue;
/**
 * 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 outboundFlowActivity
 */
function createOutboundFlowActivityFromDiscriminatorValue(parseNode) {
    return deserializeIntoOutboundFlowActivity;
}
exports.createOutboundFlowActivityFromDiscriminatorValue = createOutboundFlowActivityFromDiscriminatorValue;
/**
 * 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 referenceDefinitionCollectionResponse
 */
function createReferenceDefinitionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoReferenceDefinitionCollectionResponse;
}
exports.createReferenceDefinitionCollectionResponseFromDiscriminatorValue = createReferenceDefinitionCollectionResponseFromDiscriminatorValue;
/**
 * 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 referenceDefinition
 */
function createReferenceDefinitionFromDiscriminatorValue(parseNode) {
    return deserializeIntoReferenceDefinition;
}
exports.createReferenceDefinitionFromDiscriminatorValue = createReferenceDefinitionFromDiscriminatorValue;
/**
 * 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 referenceValue
 */
function createReferenceValueFromDiscriminatorValue(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.industryData.identifierTypeReferenceValue":
                    return deserializeIntoIdentifierTypeReferenceValue;
                case "#microsoft.graph.industryData.roleReferenceValue":
                    return deserializeIntoRoleReferenceValue;
                case "#microsoft.graph.industryData.userMatchTargetReferenceValue":
                    return deserializeIntoUserMatchTargetReferenceValue;
                case "#microsoft.graph.industryData.yearReferenceValue":
                    return deserializeIntoYearReferenceValue;
            }
        }
    }
    return deserializeIntoReferenceValue;
}
exports.createReferenceValueFromDiscriminatorValue = createReferenceValueFromDiscriminatorValue;
/**
 * 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 roleGroupCollectionResponse
 */
function createRoleGroupCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoRoleGroupCollectionResponse;
}
exports.createRoleGroupCollectionResponseFromDiscriminatorValue = createRoleGroupCollectionResponseFromDiscriminatorValue;
/**
 * 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 roleGroup
 */
function createRoleGroupFromDiscriminatorValue(parseNode) {
    return deserializeIntoRoleGroup;
}
exports.createRoleGroupFromDiscriminatorValue = createRoleGroupFromDiscriminatorValue;
/**
 * 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 roleReferenceValue
 */
function createRoleReferenceValueFromDiscriminatorValue(parseNode) {
    return deserializeIntoRoleReferenceValue;
}
exports.createRoleReferenceValueFromDiscriminatorValue = createRoleReferenceValueFromDiscriminatorValue;
/**
 * 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 sourceSystemDefinitionCollectionResponse
 */
function createSourceSystemDefinitionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoSourceSystemDefinitionCollectionResponse;
}
exports.createSourceSystemDefinitionCollectionResponseFromDiscriminatorValue = createSourceSystemDefinitionCollectionResponseFromDiscriminatorValue;
/**
 * 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 sourceSystemDefinition
 */
function createSourceSystemDefinitionFromDiscriminatorValue(parseNode) {
    return deserializeIntoSourceSystemDefinition;
}
exports.createSourceSystemDefinitionFromDiscriminatorValue = createSourceSystemDefinitionFromDiscriminatorValue;
/**
 * 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 userMatchingSetting
 */
function createUserMatchingSettingFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserMatchingSetting;
}
exports.createUserMatchingSettingFromDiscriminatorValue = createUserMatchingSettingFromDiscriminatorValue;
/**
 * 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 userMatchTargetReferenceValue
 */
function createUserMatchTargetReferenceValueFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserMatchTargetReferenceValue;
}
exports.createUserMatchTargetReferenceValueFromDiscriminatorValue = createUserMatchTargetReferenceValueFromDiscriminatorValue;
/**
 * 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 validateOperation
 */
function createValidateOperationFromDiscriminatorValue(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.industryData.fileValidateOperation":
                    return deserializeIntoFileValidateOperation;
            }
        }
    }
    return deserializeIntoValidateOperation;
}
exports.createValidateOperationFromDiscriminatorValue = createValidateOperationFromDiscriminatorValue;
/**
 * 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 yearReferenceValue
 */
function createYearReferenceValueFromDiscriminatorValue(parseNode) {
    return deserializeIntoYearReferenceValue;
}
exports.createYearReferenceValueFromDiscriminatorValue = createYearReferenceValueFromDiscriminatorValue;
/**
 * 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 yearTimePeriodDefinitionCollectionResponse
 */
function createYearTimePeriodDefinitionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoYearTimePeriodDefinitionCollectionResponse;
}
exports.createYearTimePeriodDefinitionCollectionResponseFromDiscriminatorValue = createYearTimePeriodDefinitionCollectionResponseFromDiscriminatorValue;
/**
 * 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 yearTimePeriodDefinition
 */
function createYearTimePeriodDefinitionFromDiscriminatorValue(parseNode) {
    return deserializeIntoYearTimePeriodDefinition;
}
exports.createYearTimePeriodDefinitionFromDiscriminatorValue = createYearTimePeriodDefinitionFromDiscriminatorValue;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoAggregatedInboundStatistics(aggregatedInboundStatistics = {}) {
    return {
        "backingStoreEnabled": n => { aggregatedInboundStatistics.backingStoreEnabled = true; },
        "errors": n => { aggregatedInboundStatistics.errors = n.getNumberValue(); },
        "groups": n => { aggregatedInboundStatistics.groups = n.getNumberValue(); },
        "matchedPeopleByRole": n => { aggregatedInboundStatistics.matchedPeopleByRole = n.getCollectionOfObjectValues(createIndustryDataRunRoleCountMetricFromDiscriminatorValue); },
        "memberships": n => { aggregatedInboundStatistics.memberships = n.getNumberValue(); },
        "@odata.type": n => { aggregatedInboundStatistics.odataType = n.getStringValue(); },
        "organizations": n => { aggregatedInboundStatistics.organizations = n.getNumberValue(); },
        "people": n => { aggregatedInboundStatistics.people = n.getNumberValue(); },
        "unmatchedPeopleByRole": n => { aggregatedInboundStatistics.unmatchedPeopleByRole = n.getCollectionOfObjectValues(createIndustryDataRunRoleCountMetricFromDiscriminatorValue); },
        "warnings": n => { aggregatedInboundStatistics.warnings = n.getNumberValue(); },
    };
}
exports.deserializeIntoAggregatedInboundStatistics = deserializeIntoAggregatedInboundStatistics;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoAzureDataLakeConnector(azureDataLakeConnector = {}) {
    return Object.assign({}, deserializeIntoFileDataConnector(azureDataLakeConnector));
}
exports.deserializeIntoAzureDataLakeConnector = deserializeIntoAzureDataLakeConnector;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoFileDataConnector(fileDataConnector = {}) {
    return Object.assign({}, deserializeIntoIndustryDataConnector(fileDataConnector));
}
exports.deserializeIntoFileDataConnector = deserializeIntoFileDataConnector;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoFileValidateOperation(fileValidateOperation = {}) {
    return Object.assign(Object.assign({}, deserializeIntoValidateOperation(fileValidateOperation)), { "validatedFiles": n => { fileValidateOperation.validatedFiles = n.getCollectionOfPrimitiveValues(); } });
}
exports.deserializeIntoFileValidateOperation = deserializeIntoFileValidateOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIdentifierTypeReferenceValue(identifierTypeReferenceValue = {}) {
    return Object.assign({}, deserializeIntoReferenceValue(identifierTypeReferenceValue));
}
exports.deserializeIntoIdentifierTypeReferenceValue = deserializeIntoIdentifierTypeReferenceValue;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoInboundActivityResults(inboundActivityResults = {}) {
    return Object.assign(Object.assign({}, deserializeIntoIndustryDataActivityStatistics(inboundActivityResults)), { "errors": n => { inboundActivityResults.errors = n.getNumberValue(); }, "groups": n => { inboundActivityResults.groups = n.getObjectValue(createIndustryDataRunEntityCountMetricFromDiscriminatorValue); }, "matchedPeopleByRole": n => { inboundActivityResults.matchedPeopleByRole = n.getCollectionOfObjectValues(createIndustryDataRunRoleCountMetricFromDiscriminatorValue); }, "memberships": n => { inboundActivityResults.memberships = n.getObjectValue(createIndustryDataRunEntityCountMetricFromDiscriminatorValue); }, "organizations": n => { inboundActivityResults.organizations = n.getObjectValue(createIndustryDataRunEntityCountMetricFromDiscriminatorValue); }, "people": n => { inboundActivityResults.people = n.getObjectValue(createIndustryDataRunEntityCountMetricFromDiscriminatorValue); }, "unmatchedPeopleByRole": n => { inboundActivityResults.unmatchedPeopleByRole = n.getCollectionOfObjectValues(createIndustryDataRunRoleCountMetricFromDiscriminatorValue); }, "warnings": n => { inboundActivityResults.warnings = n.getNumberValue(); } });
}
exports.deserializeIntoInboundActivityResults = deserializeIntoInboundActivityResults;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoInboundFileFlow(inboundFileFlow = {}) {
    return Object.assign({}, deserializeIntoInboundFlow(inboundFileFlow));
}
exports.deserializeIntoInboundFileFlow = deserializeIntoInboundFileFlow;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoInboundFlow(inboundFlow = {}) {
    return Object.assign(Object.assign({}, deserializeIntoIndustryDataActivity(inboundFlow)), { "dataConnector": n => { inboundFlow.dataConnector = n.getObjectValue(createIndustryDataConnectorFromDiscriminatorValue); }, "dataDomain": n => { inboundFlow.dataDomain = n.getEnumValue(exports.InboundDomainObject); }, "effectiveDateTime": n => { inboundFlow.effectiveDateTime = n.getDateValue(); }, "expirationDateTime": n => { inboundFlow.expirationDateTime = n.getDateValue(); }, "year": n => { inboundFlow.year = n.getObjectValue(createYearTimePeriodDefinitionFromDiscriminatorValue); } });
}
exports.deserializeIntoInboundFlow = deserializeIntoInboundFlow;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoInboundFlowActivity(inboundFlowActivity = {}) {
    return Object.assign({}, deserializeIntoIndustryDataRunActivity(inboundFlowActivity));
}
exports.deserializeIntoInboundFlowActivity = deserializeIntoInboundFlowActivity;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoInboundFlowCollectionResponse(inboundFlowCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(inboundFlowCollectionResponse)), { "value": n => { inboundFlowCollectionResponse.value = n.getCollectionOfObjectValues(createInboundFlowFromDiscriminatorValue); } });
}
exports.deserializeIntoInboundFlowCollectionResponse = deserializeIntoInboundFlowCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataActivity(industryDataActivity = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(industryDataActivity)), { "displayName": n => { industryDataActivity.displayName = n.getStringValue(); }, "readinessStatus": n => { industryDataActivity.readinessStatus = n.getEnumValue(exports.ReadinessStatusObject); } });
}
exports.deserializeIntoIndustryDataActivity = deserializeIntoIndustryDataActivity;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataActivityStatistics(industryDataActivityStatistics = {}) {
    return {
        "activityId": n => { industryDataActivityStatistics.activityId = n.getStringValue(); },
        "backingStoreEnabled": n => { industryDataActivityStatistics.backingStoreEnabled = true; },
        "displayName": n => { industryDataActivityStatistics.displayName = n.getStringValue(); },
        "@odata.type": n => { industryDataActivityStatistics.odataType = n.getStringValue(); },
        "status": n => { industryDataActivityStatistics.status = n.getEnumValue(exports.IndustryDataActivityStatusObject); },
    };
}
exports.deserializeIntoIndustryDataActivityStatistics = deserializeIntoIndustryDataActivityStatistics;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataConnector(industryDataConnector = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(industryDataConnector)), { "displayName": n => { industryDataConnector.displayName = n.getStringValue(); }, "sourceSystem": n => { industryDataConnector.sourceSystem = n.getObjectValue(createSourceSystemDefinitionFromDiscriminatorValue); } });
}
exports.deserializeIntoIndustryDataConnector = deserializeIntoIndustryDataConnector;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataConnectorCollectionResponse(industryDataConnectorCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(industryDataConnectorCollectionResponse)), { "value": n => { industryDataConnectorCollectionResponse.value = n.getCollectionOfObjectValues(createIndustryDataConnectorFromDiscriminatorValue); } });
}
exports.deserializeIntoIndustryDataConnectorCollectionResponse = deserializeIntoIndustryDataConnectorCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataRoot(industryDataRoot = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(industryDataRoot)), { "dataConnectors": n => { industryDataRoot.dataConnectors = n.getCollectionOfObjectValues(createIndustryDataConnectorFromDiscriminatorValue); }, "inboundFlows": n => { industryDataRoot.inboundFlows = n.getCollectionOfObjectValues(createInboundFlowFromDiscriminatorValue); }, "operations": n => { industryDataRoot.operations = n.getCollectionOfObjectValues(__1.createLongRunningOperationFromDiscriminatorValue); }, "referenceDefinitions": n => { industryDataRoot.referenceDefinitions = n.getCollectionOfObjectValues(createReferenceDefinitionFromDiscriminatorValue); }, "roleGroups": n => { industryDataRoot.roleGroups = n.getCollectionOfObjectValues(createRoleGroupFromDiscriminatorValue); }, "runs": n => { industryDataRoot.runs = n.getCollectionOfObjectValues(createIndustryDataRunFromDiscriminatorValue); }, "sourceSystems": n => { industryDataRoot.sourceSystems = n.getCollectionOfObjectValues(createSourceSystemDefinitionFromDiscriminatorValue); }, "years": n => { industryDataRoot.years = n.getCollectionOfObjectValues(createYearTimePeriodDefinitionFromDiscriminatorValue); } });
}
exports.deserializeIntoIndustryDataRoot = deserializeIntoIndustryDataRoot;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataRun(industryDataRun = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(industryDataRun)), { "activities": n => { industryDataRun.activities = n.getCollectionOfObjectValues(createIndustryDataRunActivityFromDiscriminatorValue); }, "blockingError": n => { industryDataRun.blockingError = n.getObjectValue(__1.createPublicErrorFromDiscriminatorValue); }, "displayName": n => { industryDataRun.displayName = n.getStringValue(); }, "endDateTime": n => { industryDataRun.endDateTime = n.getDateValue(); }, "startDateTime": n => { industryDataRun.startDateTime = n.getDateValue(); }, "status": n => { industryDataRun.status = n.getEnumValue(exports.IndustryDataRunStatusObject); } });
}
exports.deserializeIntoIndustryDataRun = deserializeIntoIndustryDataRun;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataRunActivity(industryDataRunActivity = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(industryDataRunActivity)), { "activity": n => { industryDataRunActivity.activity = n.getObjectValue(createIndustryDataActivityFromDiscriminatorValue); }, "blockingError": n => { industryDataRunActivity.blockingError = n.getObjectValue(__1.createPublicErrorFromDiscriminatorValue); }, "displayName": n => { industryDataRunActivity.displayName = n.getStringValue(); }, "status": n => { industryDataRunActivity.status = n.getEnumValue(exports.IndustryDataActivityStatusObject); } });
}
exports.deserializeIntoIndustryDataRunActivity = deserializeIntoIndustryDataRunActivity;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataRunActivityCollectionResponse(industryDataRunActivityCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(industryDataRunActivityCollectionResponse)), { "value": n => { industryDataRunActivityCollectionResponse.value = n.getCollectionOfObjectValues(createIndustryDataRunActivityFromDiscriminatorValue); } });
}
exports.deserializeIntoIndustryDataRunActivityCollectionResponse = deserializeIntoIndustryDataRunActivityCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataRunCollectionResponse(industryDataRunCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(industryDataRunCollectionResponse)), { "value": n => { industryDataRunCollectionResponse.value = n.getCollectionOfObjectValues(createIndustryDataRunFromDiscriminatorValue); } });
}
exports.deserializeIntoIndustryDataRunCollectionResponse = deserializeIntoIndustryDataRunCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataRunEntityCountMetric(industryDataRunEntityCountMetric = {}) {
    return {
        "active": n => { industryDataRunEntityCountMetric.active = n.getNumberValue(); },
        "backingStoreEnabled": n => { industryDataRunEntityCountMetric.backingStoreEnabled = true; },
        "inactive": n => { industryDataRunEntityCountMetric.inactive = n.getNumberValue(); },
        "@odata.type": n => { industryDataRunEntityCountMetric.odataType = n.getStringValue(); },
        "total": n => { industryDataRunEntityCountMetric.total = n.getNumberValue(); },
    };
}
exports.deserializeIntoIndustryDataRunEntityCountMetric = deserializeIntoIndustryDataRunEntityCountMetric;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataRunRoleCountMetric(industryDataRunRoleCountMetric = {}) {
    return {
        "backingStoreEnabled": n => { industryDataRunRoleCountMetric.backingStoreEnabled = true; },
        "count": n => { industryDataRunRoleCountMetric.count = n.getNumberValue(); },
        "@odata.type": n => { industryDataRunRoleCountMetric.odataType = n.getStringValue(); },
        "role": n => { industryDataRunRoleCountMetric.role = n.getStringValue(); },
    };
}
exports.deserializeIntoIndustryDataRunRoleCountMetric = deserializeIntoIndustryDataRunRoleCountMetric;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoIndustryDataRunStatistics(industryDataRunStatistics = {}) {
    return {
        "activityStatistics": n => { industryDataRunStatistics.activityStatistics = n.getCollectionOfObjectValues(createIndustryDataActivityStatisticsFromDiscriminatorValue); },
        "backingStoreEnabled": n => { industryDataRunStatistics.backingStoreEnabled = true; },
        "inboundTotals": n => { industryDataRunStatistics.inboundTotals = n.getObjectValue(createAggregatedInboundStatisticsFromDiscriminatorValue); },
        "@odata.type": n => { industryDataRunStatistics.odataType = n.getStringValue(); },
        "runId": n => { industryDataRunStatistics.runId = n.getStringValue(); },
        "status": n => { industryDataRunStatistics.status = n.getEnumValue(exports.IndustryDataRunStatusObject); },
    };
}
exports.deserializeIntoIndustryDataRunStatistics = deserializeIntoIndustryDataRunStatistics;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoOutboundFlowActivity(outboundFlowActivity = {}) {
    return Object.assign({}, deserializeIntoIndustryDataRunActivity(outboundFlowActivity));
}
exports.deserializeIntoOutboundFlowActivity = deserializeIntoOutboundFlowActivity;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoReferenceDefinition(referenceDefinition = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(referenceDefinition)), { "code": n => { referenceDefinition.code = n.getStringValue(); }, "createdDateTime": n => { referenceDefinition.createdDateTime = n.getDateValue(); }, "isDisabled": n => { referenceDefinition.isDisabled = n.getBooleanValue(); }, "lastModifiedDateTime": n => { referenceDefinition.lastModifiedDateTime = n.getDateValue(); }, "referenceType": n => { referenceDefinition.referenceType = n.getStringValue(); }, "sortIndex": n => { referenceDefinition.sortIndex = n.getNumberValue(); }, "source": n => { referenceDefinition.source = n.getStringValue(); } });
}
exports.deserializeIntoReferenceDefinition = deserializeIntoReferenceDefinition;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoReferenceDefinitionCollectionResponse(referenceDefinitionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(referenceDefinitionCollectionResponse)), { "value": n => { referenceDefinitionCollectionResponse.value = n.getCollectionOfObjectValues(createReferenceDefinitionFromDiscriminatorValue); } });
}
exports.deserializeIntoReferenceDefinitionCollectionResponse = deserializeIntoReferenceDefinitionCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoReferenceValue(referenceValue = {}) {
    return {
        "backingStoreEnabled": n => { referenceValue.backingStoreEnabled = true; },
        "code": n => { referenceValue.code = n.getStringValue(); },
        "@odata.type": n => { referenceValue.odataType = n.getStringValue(); },
        "value": n => { referenceValue.value = n.getObjectValue(createReferenceDefinitionFromDiscriminatorValue); },
    };
}
exports.deserializeIntoReferenceValue = deserializeIntoReferenceValue;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoRoleGroup(roleGroup = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(roleGroup)), { "displayName": n => { roleGroup.displayName = n.getStringValue(); }, "roles": n => { roleGroup.roles = n.getCollectionOfObjectValues(createRoleReferenceValueFromDiscriminatorValue); } });
}
exports.deserializeIntoRoleGroup = deserializeIntoRoleGroup;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoRoleGroupCollectionResponse(roleGroupCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(roleGroupCollectionResponse)), { "value": n => { roleGroupCollectionResponse.value = n.getCollectionOfObjectValues(createRoleGroupFromDiscriminatorValue); } });
}
exports.deserializeIntoRoleGroupCollectionResponse = deserializeIntoRoleGroupCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoRoleReferenceValue(roleReferenceValue = {}) {
    return Object.assign({}, deserializeIntoReferenceValue(roleReferenceValue));
}
exports.deserializeIntoRoleReferenceValue = deserializeIntoRoleReferenceValue;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoSourceSystemDefinition(sourceSystemDefinition = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(sourceSystemDefinition)), { "displayName": n => { sourceSystemDefinition.displayName = n.getStringValue(); }, "userMatchingSettings": n => { sourceSystemDefinition.userMatchingSettings = n.getCollectionOfObjectValues(createUserMatchingSettingFromDiscriminatorValue); }, "vendor": n => { sourceSystemDefinition.vendor = n.getStringValue(); } });
}
exports.deserializeIntoSourceSystemDefinition = deserializeIntoSourceSystemDefinition;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoSourceSystemDefinitionCollectionResponse(sourceSystemDefinitionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(sourceSystemDefinitionCollectionResponse)), { "value": n => { sourceSystemDefinitionCollectionResponse.value = n.getCollectionOfObjectValues(createSourceSystemDefinitionFromDiscriminatorValue); } });
}
exports.deserializeIntoSourceSystemDefinitionCollectionResponse = deserializeIntoSourceSystemDefinitionCollectionResponse;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoUserMatchingSetting(userMatchingSetting = {}) {
    return {
        "backingStoreEnabled": n => { userMatchingSetting.backingStoreEnabled = true; },
        "matchTarget": n => { userMatchingSetting.matchTarget = n.getObjectValue(createUserMatchTargetReferenceValueFromDiscriminatorValue); },
        "@odata.type": n => { userMatchingSetting.odataType = n.getStringValue(); },
        "priorityOrder": n => { userMatchingSetting.priorityOrder = n.getNumberValue(); },
        "roleGroup": n => { userMatchingSetting.roleGroup = n.getObjectValue(createRoleGroupFromDiscriminatorValue); },
        "sourceIdentifier": n => { userMatchingSetting.sourceIdentifier = n.getObjectValue(createIdentifierTypeReferenceValueFromDiscriminatorValue); },
    };
}
exports.deserializeIntoUserMatchingSetting = deserializeIntoUserMatchingSetting;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoUserMatchTargetReferenceValue(userMatchTargetReferenceValue = {}) {
    return Object.assign({}, deserializeIntoReferenceValue(userMatchTargetReferenceValue));
}
exports.deserializeIntoUserMatchTargetReferenceValue = deserializeIntoUserMatchTargetReferenceValue;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoValidateOperation(validateOperation = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoLongRunningOperation)(validateOperation)), { "errors": n => { validateOperation.errors = n.getCollectionOfObjectValues(__1.createPublicErrorFromDiscriminatorValue); }, "warnings": n => { validateOperation.warnings = n.getCollectionOfObjectValues(__1.createPublicErrorFromDiscriminatorValue); } });
}
exports.deserializeIntoValidateOperation = deserializeIntoValidateOperation;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoYearReferenceValue(yearReferenceValue = {}) {
    return Object.assign({}, deserializeIntoReferenceValue(yearReferenceValue));
}
exports.deserializeIntoYearReferenceValue = deserializeIntoYearReferenceValue;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoYearTimePeriodDefinition(yearTimePeriodDefinition = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoEntity)(yearTimePeriodDefinition)), { "displayName": n => { yearTimePeriodDefinition.displayName = n.getStringValue(); }, "endDate": n => { yearTimePeriodDefinition.endDate = n.getDateOnlyValue(); }, "startDate": n => { yearTimePeriodDefinition.startDate = n.getDateOnlyValue(); }, "year": n => { yearTimePeriodDefinition.year = n.getObjectValue(createYearReferenceValueFromDiscriminatorValue); } });
}
exports.deserializeIntoYearTimePeriodDefinition = deserializeIntoYearTimePeriodDefinition;
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
function deserializeIntoYearTimePeriodDefinitionCollectionResponse(yearTimePeriodDefinitionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, (0, __1.deserializeIntoBaseCollectionPaginationCountResponse)(yearTimePeriodDefinitionCollectionResponse)), { "value": n => { yearTimePeriodDefinitionCollectionResponse.value = n.getCollectionOfObjectValues(createYearTimePeriodDefinitionFromDiscriminatorValue); } });
}
exports.deserializeIntoYearTimePeriodDefinitionCollectionResponse = deserializeIntoYearTimePeriodDefinitionCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeAggregatedInboundStatistics(writer, aggregatedInboundStatistics = {}) {
    writer.writeStringValue("@odata.type", aggregatedInboundStatistics.odataType);
    writer.writeAdditionalData(aggregatedInboundStatistics.additionalData);
}
exports.serializeAggregatedInboundStatistics = serializeAggregatedInboundStatistics;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeAzureDataLakeConnector(writer, azureDataLakeConnector = {}) {
    serializeFileDataConnector(writer, azureDataLakeConnector);
}
exports.serializeAzureDataLakeConnector = serializeAzureDataLakeConnector;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeFileDataConnector(writer, fileDataConnector = {}) {
    serializeIndustryDataConnector(writer, fileDataConnector);
}
exports.serializeFileDataConnector = serializeFileDataConnector;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeFileValidateOperation(writer, fileValidateOperation = {}) {
    serializeValidateOperation(writer, fileValidateOperation);
}
exports.serializeFileValidateOperation = serializeFileValidateOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIdentifierTypeReferenceValue(writer, identifierTypeReferenceValue = {}) {
    serializeReferenceValue(writer, identifierTypeReferenceValue);
}
exports.serializeIdentifierTypeReferenceValue = serializeIdentifierTypeReferenceValue;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeInboundActivityResults(writer, inboundActivityResults = {}) {
    serializeIndustryDataActivityStatistics(writer, inboundActivityResults);
}
exports.serializeInboundActivityResults = serializeInboundActivityResults;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeInboundFileFlow(writer, inboundFileFlow = {}) {
    serializeInboundFlow(writer, inboundFileFlow);
}
exports.serializeInboundFileFlow = serializeInboundFileFlow;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeInboundFlow(writer, inboundFlow = {}) {
    serializeIndustryDataActivity(writer, inboundFlow);
    writer.writeObjectValue("dataConnector", inboundFlow.dataConnector, serializeIndustryDataConnector);
    writer.writeEnumValue("dataDomain", inboundFlow.dataDomain);
    writer.writeDateValue("effectiveDateTime", inboundFlow.effectiveDateTime);
    writer.writeDateValue("expirationDateTime", inboundFlow.expirationDateTime);
    writer.writeObjectValue("year", inboundFlow.year, serializeYearTimePeriodDefinition);
}
exports.serializeInboundFlow = serializeInboundFlow;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeInboundFlowActivity(writer, inboundFlowActivity = {}) {
    serializeIndustryDataRunActivity(writer, inboundFlowActivity);
}
exports.serializeInboundFlowActivity = serializeInboundFlowActivity;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeInboundFlowCollectionResponse(writer, inboundFlowCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, inboundFlowCollectionResponse);
    writer.writeCollectionOfObjectValues("value", inboundFlowCollectionResponse.value, serializeInboundFlow);
}
exports.serializeInboundFlowCollectionResponse = serializeInboundFlowCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataActivity(writer, industryDataActivity = {}) {
    (0, __1.serializeEntity)(writer, industryDataActivity);
    writer.writeStringValue("displayName", industryDataActivity.displayName);
    writer.writeEnumValue("readinessStatus", industryDataActivity.readinessStatus);
}
exports.serializeIndustryDataActivity = serializeIndustryDataActivity;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataActivityStatistics(writer, industryDataActivityStatistics = {}) {
    writer.writeStringValue("@odata.type", industryDataActivityStatistics.odataType);
    writer.writeEnumValue("status", industryDataActivityStatistics.status);
    writer.writeAdditionalData(industryDataActivityStatistics.additionalData);
}
exports.serializeIndustryDataActivityStatistics = serializeIndustryDataActivityStatistics;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataConnector(writer, industryDataConnector = {}) {
    (0, __1.serializeEntity)(writer, industryDataConnector);
    writer.writeStringValue("displayName", industryDataConnector.displayName);
    writer.writeObjectValue("sourceSystem", industryDataConnector.sourceSystem, serializeSourceSystemDefinition);
}
exports.serializeIndustryDataConnector = serializeIndustryDataConnector;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataConnectorCollectionResponse(writer, industryDataConnectorCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, industryDataConnectorCollectionResponse);
    writer.writeCollectionOfObjectValues("value", industryDataConnectorCollectionResponse.value, serializeIndustryDataConnector);
}
exports.serializeIndustryDataConnectorCollectionResponse = serializeIndustryDataConnectorCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataRoot(writer, industryDataRoot = {}) {
    (0, __1.serializeEntity)(writer, industryDataRoot);
    writer.writeCollectionOfObjectValues("dataConnectors", industryDataRoot.dataConnectors, serializeIndustryDataConnector);
    writer.writeCollectionOfObjectValues("inboundFlows", industryDataRoot.inboundFlows, serializeInboundFlow);
    writer.writeCollectionOfObjectValues("operations", industryDataRoot.operations, __1.serializeLongRunningOperation);
    writer.writeCollectionOfObjectValues("referenceDefinitions", industryDataRoot.referenceDefinitions, serializeReferenceDefinition);
    writer.writeCollectionOfObjectValues("roleGroups", industryDataRoot.roleGroups, serializeRoleGroup);
    writer.writeCollectionOfObjectValues("runs", industryDataRoot.runs, serializeIndustryDataRun);
    writer.writeCollectionOfObjectValues("sourceSystems", industryDataRoot.sourceSystems, serializeSourceSystemDefinition);
    writer.writeCollectionOfObjectValues("years", industryDataRoot.years, serializeYearTimePeriodDefinition);
}
exports.serializeIndustryDataRoot = serializeIndustryDataRoot;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataRun(writer, industryDataRun = {}) {
    (0, __1.serializeEntity)(writer, industryDataRun);
    writer.writeCollectionOfObjectValues("activities", industryDataRun.activities, serializeIndustryDataRunActivity);
    writer.writeEnumValue("status", industryDataRun.status);
}
exports.serializeIndustryDataRun = serializeIndustryDataRun;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataRunActivity(writer, industryDataRunActivity = {}) {
    (0, __1.serializeEntity)(writer, industryDataRunActivity);
    writer.writeObjectValue("activity", industryDataRunActivity.activity, serializeIndustryDataActivity);
    writer.writeEnumValue("status", industryDataRunActivity.status);
}
exports.serializeIndustryDataRunActivity = serializeIndustryDataRunActivity;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataRunActivityCollectionResponse(writer, industryDataRunActivityCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, industryDataRunActivityCollectionResponse);
    writer.writeCollectionOfObjectValues("value", industryDataRunActivityCollectionResponse.value, serializeIndustryDataRunActivity);
}
exports.serializeIndustryDataRunActivityCollectionResponse = serializeIndustryDataRunActivityCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataRunCollectionResponse(writer, industryDataRunCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, industryDataRunCollectionResponse);
    writer.writeCollectionOfObjectValues("value", industryDataRunCollectionResponse.value, serializeIndustryDataRun);
}
exports.serializeIndustryDataRunCollectionResponse = serializeIndustryDataRunCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataRunEntityCountMetric(writer, industryDataRunEntityCountMetric = {}) {
    writer.writeStringValue("@odata.type", industryDataRunEntityCountMetric.odataType);
    writer.writeAdditionalData(industryDataRunEntityCountMetric.additionalData);
}
exports.serializeIndustryDataRunEntityCountMetric = serializeIndustryDataRunEntityCountMetric;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataRunRoleCountMetric(writer, industryDataRunRoleCountMetric = {}) {
    writer.writeStringValue("@odata.type", industryDataRunRoleCountMetric.odataType);
    writer.writeAdditionalData(industryDataRunRoleCountMetric.additionalData);
}
exports.serializeIndustryDataRunRoleCountMetric = serializeIndustryDataRunRoleCountMetric;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeIndustryDataRunStatistics(writer, industryDataRunStatistics = {}) {
    writer.writeStringValue("@odata.type", industryDataRunStatistics.odataType);
    writer.writeEnumValue("status", industryDataRunStatistics.status);
    writer.writeAdditionalData(industryDataRunStatistics.additionalData);
}
exports.serializeIndustryDataRunStatistics = serializeIndustryDataRunStatistics;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeOutboundFlowActivity(writer, outboundFlowActivity = {}) {
    serializeIndustryDataRunActivity(writer, outboundFlowActivity);
}
exports.serializeOutboundFlowActivity = serializeOutboundFlowActivity;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeReferenceDefinition(writer, referenceDefinition = {}) {
    (0, __1.serializeEntity)(writer, referenceDefinition);
    writer.writeStringValue("code", referenceDefinition.code);
    writer.writeBooleanValue("isDisabled", referenceDefinition.isDisabled);
    writer.writeStringValue("referenceType", referenceDefinition.referenceType);
    writer.writeNumberValue("sortIndex", referenceDefinition.sortIndex);
}
exports.serializeReferenceDefinition = serializeReferenceDefinition;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeReferenceDefinitionCollectionResponse(writer, referenceDefinitionCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, referenceDefinitionCollectionResponse);
    writer.writeCollectionOfObjectValues("value", referenceDefinitionCollectionResponse.value, serializeReferenceDefinition);
}
exports.serializeReferenceDefinitionCollectionResponse = serializeReferenceDefinitionCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeReferenceValue(writer, referenceValue = {}) {
    writer.writeStringValue("code", referenceValue.code);
    writer.writeStringValue("@odata.type", referenceValue.odataType);
    writer.writeObjectValue("value", referenceValue.value, serializeReferenceDefinition);
    writer.writeAdditionalData(referenceValue.additionalData);
}
exports.serializeReferenceValue = serializeReferenceValue;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeRoleGroup(writer, roleGroup = {}) {
    (0, __1.serializeEntity)(writer, roleGroup);
    writer.writeStringValue("displayName", roleGroup.displayName);
    writer.writeCollectionOfObjectValues("roles", roleGroup.roles, serializeRoleReferenceValue);
}
exports.serializeRoleGroup = serializeRoleGroup;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeRoleGroupCollectionResponse(writer, roleGroupCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, roleGroupCollectionResponse);
    writer.writeCollectionOfObjectValues("value", roleGroupCollectionResponse.value, serializeRoleGroup);
}
exports.serializeRoleGroupCollectionResponse = serializeRoleGroupCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeRoleReferenceValue(writer, roleReferenceValue = {}) {
    serializeReferenceValue(writer, roleReferenceValue);
}
exports.serializeRoleReferenceValue = serializeRoleReferenceValue;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeSourceSystemDefinition(writer, sourceSystemDefinition = {}) {
    (0, __1.serializeEntity)(writer, sourceSystemDefinition);
    writer.writeStringValue("displayName", sourceSystemDefinition.displayName);
    writer.writeCollectionOfObjectValues("userMatchingSettings", sourceSystemDefinition.userMatchingSettings, serializeUserMatchingSetting);
    writer.writeStringValue("vendor", sourceSystemDefinition.vendor);
}
exports.serializeSourceSystemDefinition = serializeSourceSystemDefinition;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeSourceSystemDefinitionCollectionResponse(writer, sourceSystemDefinitionCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, sourceSystemDefinitionCollectionResponse);
    writer.writeCollectionOfObjectValues("value", sourceSystemDefinitionCollectionResponse.value, serializeSourceSystemDefinition);
}
exports.serializeSourceSystemDefinitionCollectionResponse = serializeSourceSystemDefinitionCollectionResponse;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeUserMatchingSetting(writer, userMatchingSetting = {}) {
    writer.writeObjectValue("matchTarget", userMatchingSetting.matchTarget, serializeUserMatchTargetReferenceValue);
    writer.writeStringValue("@odata.type", userMatchingSetting.odataType);
    writer.writeNumberValue("priorityOrder", userMatchingSetting.priorityOrder);
    writer.writeObjectValue("roleGroup", userMatchingSetting.roleGroup, serializeRoleGroup);
    writer.writeObjectValue("sourceIdentifier", userMatchingSetting.sourceIdentifier, serializeIdentifierTypeReferenceValue);
    writer.writeAdditionalData(userMatchingSetting.additionalData);
}
exports.serializeUserMatchingSetting = serializeUserMatchingSetting;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeUserMatchTargetReferenceValue(writer, userMatchTargetReferenceValue = {}) {
    serializeReferenceValue(writer, userMatchTargetReferenceValue);
}
exports.serializeUserMatchTargetReferenceValue = serializeUserMatchTargetReferenceValue;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeValidateOperation(writer, validateOperation = {}) {
    (0, __1.serializeLongRunningOperation)(writer, validateOperation);
}
exports.serializeValidateOperation = serializeValidateOperation;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeYearReferenceValue(writer, yearReferenceValue = {}) {
    serializeReferenceValue(writer, yearReferenceValue);
}
exports.serializeYearReferenceValue = serializeYearReferenceValue;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeYearTimePeriodDefinition(writer, yearTimePeriodDefinition = {}) {
    (0, __1.serializeEntity)(writer, yearTimePeriodDefinition);
    writer.writeStringValue("displayName", yearTimePeriodDefinition.displayName);
    writer.writeDateOnlyValue("endDate", yearTimePeriodDefinition.endDate);
    writer.writeDateOnlyValue("startDate", yearTimePeriodDefinition.startDate);
    writer.writeObjectValue("year", yearTimePeriodDefinition.year, serializeYearReferenceValue);
}
exports.serializeYearTimePeriodDefinition = serializeYearTimePeriodDefinition;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
function serializeYearTimePeriodDefinitionCollectionResponse(writer, yearTimePeriodDefinitionCollectionResponse = {}) {
    (0, __1.serializeBaseCollectionPaginationCountResponse)(writer, yearTimePeriodDefinitionCollectionResponse);
    writer.writeCollectionOfObjectValues("value", yearTimePeriodDefinitionCollectionResponse.value, serializeYearTimePeriodDefinition);
}
exports.serializeYearTimePeriodDefinitionCollectionResponse = serializeYearTimePeriodDefinitionCollectionResponse;
exports.InboundDomainObject = {
    EducationRostering: "educationRostering",
    UnknownFutureValue: "unknownFutureValue",
};
exports.IndustryDataActivityStatusObject = {
    InProgress: "inProgress",
    Skipped: "skipped",
    Failed: "failed",
    Completed: "completed",
    CompletedWithErrors: "completedWithErrors",
    CompletedWithWarnings: "completedWithWarnings",
    UnknownFutureValue: "unknownFutureValue",
};
exports.IndustryDataRunStatusObject = {
    Running: "running",
    Failed: "failed",
    Completed: "completed",
    CompletedWithErrors: "completedWithErrors",
    CompletedWithWarnings: "completedWithWarnings",
    UnknownFutureValue: "unknownFutureValue",
};
exports.ReadinessStatusObject = {
    NotReady: "notReady",
    Ready: "ready",
    Failed: "failed",
    Disabled: "disabled",
    Expired: "expired",
    UnknownFutureValue: "unknownFutureValue",
};
/* tslint:enable */
/* eslint-enable */
