/* tslint:disable */
/* eslint-disable */
// Generated by Microsoft Kiota
// @ts-ignore
import { createCommunicationsIdentitySetFromDiscriminatorValue, createIdentityFromDiscriminatorValue, createIdentitySetFromDiscriminatorValue, deserializeIntoBaseCollectionPaginationCountResponse, deserializeIntoEntity, deserializeIntoIdentity, serializeBaseCollectionPaginationCountResponse, serializeCommunicationsIdentitySet, serializeEntity, serializeIdentity, serializeIdentitySet } from '../index.js';
/**
 * 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 {AdministrativeUnitInfo}
 */
// @ts-ignore
export function createAdministrativeUnitInfoFromDiscriminatorValue(parseNode) {
    return deserializeIntoAdministrativeUnitInfo;
}
/**
 * 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 {CallLogRow}
 */
// @ts-ignore
export function createCallLogRowFromDiscriminatorValue(parseNode) {
    if (!parseNode)
        throw new Error("parseNode cannot be undefined");
    const mappingValueNode = parseNode === null || parseNode === void 0 ? void 0 : parseNode.getChildNode("@odata.type");
    if (mappingValueNode) {
        const mappingValue = mappingValueNode.getStringValue();
        if (mappingValue) {
            switch (mappingValue) {
                case "#microsoft.graph.callRecords.directRoutingLogRow":
                    return deserializeIntoDirectRoutingLogRow;
                case "#microsoft.graph.callRecords.pstnCallLogRow":
                    return deserializeIntoPstnCallLogRow;
                case "#microsoft.graph.callRecords.smsLogRow":
                    return deserializeIntoSmsLogRow;
            }
        }
    }
    return deserializeIntoCallLogRow;
}
/**
 * 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 {CallRecordCollectionResponse}
 */
// @ts-ignore
export function createCallRecordCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoCallRecordCollectionResponse;
}
/**
 * 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 {CallRecord}
 */
// @ts-ignore
export function createCallRecordFromDiscriminatorValue(parseNode) {
    return deserializeIntoCallRecord;
}
/**
 * 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 {ClientUserAgent}
 */
// @ts-ignore
export function createClientUserAgentFromDiscriminatorValue(parseNode) {
    return deserializeIntoClientUserAgent;
}
/**
 * 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 {DeviceInfo}
 */
// @ts-ignore
export function createDeviceInfoFromDiscriminatorValue(parseNode) {
    return deserializeIntoDeviceInfo;
}
/**
 * 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 {DirectRoutingLogRow}
 */
// @ts-ignore
export function createDirectRoutingLogRowFromDiscriminatorValue(parseNode) {
    return deserializeIntoDirectRoutingLogRow;
}
/**
 * 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 {Endpoint}
 */
// @ts-ignore
export function createEndpointFromDiscriminatorValue(parseNode) {
    if (!parseNode)
        throw new Error("parseNode cannot be undefined");
    const mappingValueNode = parseNode === null || parseNode === void 0 ? void 0 : parseNode.getChildNode("@odata.type");
    if (mappingValueNode) {
        const mappingValue = mappingValueNode.getStringValue();
        if (mappingValue) {
            switch (mappingValue) {
                case "#microsoft.graph.callRecords.participantEndpoint":
                    return deserializeIntoParticipantEndpoint;
                case "#microsoft.graph.callRecords.serviceEndpoint":
                    return deserializeIntoServiceEndpoint;
            }
        }
    }
    return deserializeIntoEndpoint;
}
/**
 * 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 {FailureInfo}
 */
// @ts-ignore
export function createFailureInfoFromDiscriminatorValue(parseNode) {
    return deserializeIntoFailureInfo;
}
/**
 * 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 {FeedbackTokenSet}
 */
// @ts-ignore
export function createFeedbackTokenSetFromDiscriminatorValue(parseNode) {
    return deserializeIntoFeedbackTokenSet;
}
/**
 * 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 {Media}
 */
// @ts-ignore
export function createMediaFromDiscriminatorValue(parseNode) {
    return deserializeIntoMedia;
}
/**
 * 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 {MediaStream}
 */
// @ts-ignore
export function createMediaStreamFromDiscriminatorValue(parseNode) {
    return deserializeIntoMediaStream;
}
/**
 * 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 {NetworkInfo}
 */
// @ts-ignore
export function createNetworkInfoFromDiscriminatorValue(parseNode) {
    return deserializeIntoNetworkInfo;
}
/**
 * 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 {Organizer}
 */
// @ts-ignore
export function createOrganizerFromDiscriminatorValue(parseNode) {
    return deserializeIntoOrganizer;
}
/**
 * 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 {ParticipantBase}
 */
// @ts-ignore
export function createParticipantBaseFromDiscriminatorValue(parseNode) {
    if (!parseNode)
        throw new Error("parseNode cannot be undefined");
    const mappingValueNode = parseNode === null || parseNode === void 0 ? void 0 : parseNode.getChildNode("@odata.type");
    if (mappingValueNode) {
        const mappingValue = mappingValueNode.getStringValue();
        if (mappingValue) {
            switch (mappingValue) {
                case "#microsoft.graph.callRecords.organizer":
                    return deserializeIntoOrganizer;
                case "#microsoft.graph.callRecords.participant":
                    return deserializeIntoParticipant;
            }
        }
    }
    return deserializeIntoParticipantBase;
}
/**
 * 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 {ParticipantCollectionResponse}
 */
// @ts-ignore
export function createParticipantCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoParticipantCollectionResponse;
}
/**
 * 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 {ParticipantEndpoint}
 */
// @ts-ignore
export function createParticipantEndpointFromDiscriminatorValue(parseNode) {
    return deserializeIntoParticipantEndpoint;
}
/**
 * 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 {Participant}
 */
// @ts-ignore
export function createParticipantFromDiscriminatorValue(parseNode) {
    return deserializeIntoParticipant;
}
/**
 * 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 {PstnBlockedUsersLogRow}
 */
// @ts-ignore
export function createPstnBlockedUsersLogRowFromDiscriminatorValue(parseNode) {
    return deserializeIntoPstnBlockedUsersLogRow;
}
/**
 * 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 {PstnCallLogRow}
 */
// @ts-ignore
export function createPstnCallLogRowFromDiscriminatorValue(parseNode) {
    return deserializeIntoPstnCallLogRow;
}
/**
 * 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 {PstnOnlineMeetingDialoutReport}
 */
// @ts-ignore
export function createPstnOnlineMeetingDialoutReportFromDiscriminatorValue(parseNode) {
    return deserializeIntoPstnOnlineMeetingDialoutReport;
}
/**
 * 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 {SegmentCollectionResponse}
 */
// @ts-ignore
export function createSegmentCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoSegmentCollectionResponse;
}
/**
 * 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 {Segment}
 */
// @ts-ignore
export function createSegmentFromDiscriminatorValue(parseNode) {
    return deserializeIntoSegment;
}
/**
 * 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 {ServiceEndpoint}
 */
// @ts-ignore
export function createServiceEndpointFromDiscriminatorValue(parseNode) {
    return deserializeIntoServiceEndpoint;
}
/**
 * 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 {ServiceUserAgent}
 */
// @ts-ignore
export function createServiceUserAgentFromDiscriminatorValue(parseNode) {
    return deserializeIntoServiceUserAgent;
}
/**
 * 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 {SessionCollectionResponse}
 */
// @ts-ignore
export function createSessionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoSessionCollectionResponse;
}
/**
 * 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 {Session}
 */
// @ts-ignore
export function createSessionFromDiscriminatorValue(parseNode) {
    return deserializeIntoSession;
}
/**
 * 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 {SmsLogRow}
 */
// @ts-ignore
export function createSmsLogRowFromDiscriminatorValue(parseNode) {
    return deserializeIntoSmsLogRow;
}
/**
 * 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 {TraceRouteHop}
 */
// @ts-ignore
export function createTraceRouteHopFromDiscriminatorValue(parseNode) {
    return deserializeIntoTraceRouteHop;
}
/**
 * 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 {UserAgent}
 */
// @ts-ignore
export function createUserAgentFromDiscriminatorValue(parseNode) {
    if (!parseNode)
        throw new Error("parseNode cannot be undefined");
    const mappingValueNode = parseNode === null || parseNode === void 0 ? void 0 : parseNode.getChildNode("@odata.type");
    if (mappingValueNode) {
        const mappingValue = mappingValueNode.getStringValue();
        if (mappingValue) {
            switch (mappingValue) {
                case "#microsoft.graph.callRecords.clientUserAgent":
                    return deserializeIntoClientUserAgent;
                case "#microsoft.graph.callRecords.serviceUserAgent":
                    return deserializeIntoServiceUserAgent;
            }
        }
    }
    return deserializeIntoUserAgent;
}
/**
 * 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 {UserFeedback}
 */
// @ts-ignore
export function createUserFeedbackFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserFeedback;
}
/**
 * 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 {UserIdentity}
 */
// @ts-ignore
export function createUserIdentityFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserIdentity;
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAdministrativeUnitInfo(administrativeUnitInfo = {}) {
    return {
        "backingStoreEnabled": n => { administrativeUnitInfo.backingStoreEnabled = true; },
        "id": n => { administrativeUnitInfo.id = n.getStringValue(); },
        "@odata.type": n => { administrativeUnitInfo.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCallLogRow(callLogRow = {}) {
    return {
        "administrativeUnitInfos": n => { callLogRow.administrativeUnitInfos = n.getCollectionOfObjectValues(createAdministrativeUnitInfoFromDiscriminatorValue); },
        "backingStoreEnabled": n => { callLogRow.backingStoreEnabled = true; },
        "id": n => { callLogRow.id = n.getStringValue(); },
        "@odata.type": n => { callLogRow.odataType = n.getStringValue(); },
        "otherPartyCountryCode": n => { callLogRow.otherPartyCountryCode = n.getStringValue(); },
        "userDisplayName": n => { callLogRow.userDisplayName = n.getStringValue(); },
        "userId": n => { callLogRow.userId = n.getStringValue(); },
        "userPrincipalName": n => { callLogRow.userPrincipalName = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCallRecord(callRecord = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(callRecord)), { "endDateTime": n => { callRecord.endDateTime = n.getDateValue(); }, "joinWebUrl": n => { callRecord.joinWebUrl = n.getStringValue(); }, "lastModifiedDateTime": n => { callRecord.lastModifiedDateTime = n.getDateValue(); }, "modalities": n => { callRecord.modalities = n.getCollectionOfEnumValues(ModalityObject); }, "organizer": n => { callRecord.organizer = n.getObjectValue(createIdentitySetFromDiscriminatorValue); }, "organizer_v2": n => { callRecord.organizerV2 = n.getObjectValue(createOrganizerFromDiscriminatorValue); }, "participants": n => { callRecord.participants = n.getCollectionOfObjectValues(createIdentitySetFromDiscriminatorValue); }, "participants_v2": n => { callRecord.participantsV2 = n.getCollectionOfObjectValues(createParticipantFromDiscriminatorValue); }, "sessions": n => { callRecord.sessions = n.getCollectionOfObjectValues(createSessionFromDiscriminatorValue); }, "startDateTime": n => { callRecord.startDateTime = n.getDateValue(); }, "type": n => { callRecord.type = n.getEnumValue(CallTypeObject); }, "version": n => { callRecord.version = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCallRecordCollectionResponse(callRecordCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(callRecordCollectionResponse)), { "value": n => { callRecordCollectionResponse.value = n.getCollectionOfObjectValues(createCallRecordFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoClientUserAgent(clientUserAgent = {}) {
    return Object.assign(Object.assign({}, deserializeIntoUserAgent(clientUserAgent)), { "azureADAppId": n => { clientUserAgent.azureADAppId = n.getStringValue(); }, "communicationServiceId": n => { clientUserAgent.communicationServiceId = n.getStringValue(); }, "platform": n => { clientUserAgent.platform = n.getEnumValue(ClientPlatformObject); }, "productFamily": n => { clientUserAgent.productFamily = n.getEnumValue(ProductFamilyObject); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDeviceInfo(deviceInfo = {}) {
    return {
        "backingStoreEnabled": n => { deviceInfo.backingStoreEnabled = true; },
        "captureDeviceDriver": n => { deviceInfo.captureDeviceDriver = n.getStringValue(); },
        "captureDeviceName": n => { deviceInfo.captureDeviceName = n.getStringValue(); },
        "captureNotFunctioningEventRatio": n => { deviceInfo.captureNotFunctioningEventRatio = n.getNumberValue(); },
        "cpuInsufficentEventRatio": n => { deviceInfo.cpuInsufficentEventRatio = n.getNumberValue(); },
        "deviceClippingEventRatio": n => { deviceInfo.deviceClippingEventRatio = n.getNumberValue(); },
        "deviceGlitchEventRatio": n => { deviceInfo.deviceGlitchEventRatio = n.getNumberValue(); },
        "howlingEventCount": n => { deviceInfo.howlingEventCount = n.getNumberValue(); },
        "initialSignalLevelRootMeanSquare": n => { deviceInfo.initialSignalLevelRootMeanSquare = n.getNumberValue(); },
        "lowSpeechLevelEventRatio": n => { deviceInfo.lowSpeechLevelEventRatio = n.getNumberValue(); },
        "lowSpeechToNoiseEventRatio": n => { deviceInfo.lowSpeechToNoiseEventRatio = n.getNumberValue(); },
        "micGlitchRate": n => { deviceInfo.micGlitchRate = n.getNumberValue(); },
        "@odata.type": n => { deviceInfo.odataType = n.getStringValue(); },
        "receivedNoiseLevel": n => { deviceInfo.receivedNoiseLevel = n.getNumberValue(); },
        "receivedSignalLevel": n => { deviceInfo.receivedSignalLevel = n.getNumberValue(); },
        "renderDeviceDriver": n => { deviceInfo.renderDeviceDriver = n.getStringValue(); },
        "renderDeviceName": n => { deviceInfo.renderDeviceName = n.getStringValue(); },
        "renderMuteEventRatio": n => { deviceInfo.renderMuteEventRatio = n.getNumberValue(); },
        "renderNotFunctioningEventRatio": n => { deviceInfo.renderNotFunctioningEventRatio = n.getNumberValue(); },
        "renderZeroVolumeEventRatio": n => { deviceInfo.renderZeroVolumeEventRatio = n.getNumberValue(); },
        "sentNoiseLevel": n => { deviceInfo.sentNoiseLevel = n.getNumberValue(); },
        "sentSignalLevel": n => { deviceInfo.sentSignalLevel = n.getNumberValue(); },
        "speakerGlitchRate": n => { deviceInfo.speakerGlitchRate = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDirectRoutingLogRow(directRoutingLogRow = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCallLogRow(directRoutingLogRow)), { "calleeNumber": n => { directRoutingLogRow.calleeNumber = n.getStringValue(); }, "callEndSubReason": n => { directRoutingLogRow.callEndSubReason = n.getNumberValue(); }, "callerNumber": n => { directRoutingLogRow.callerNumber = n.getStringValue(); }, "callType": n => { directRoutingLogRow.callType = n.getStringValue(); }, "correlationId": n => { directRoutingLogRow.correlationId = n.getStringValue(); }, "duration": n => { directRoutingLogRow.duration = n.getNumberValue(); }, "endDateTime": n => { directRoutingLogRow.endDateTime = n.getDateValue(); }, "failureDateTime": n => { directRoutingLogRow.failureDateTime = n.getDateValue(); }, "finalSipCode": n => { directRoutingLogRow.finalSipCode = n.getNumberValue(); }, "finalSipCodePhrase": n => { directRoutingLogRow.finalSipCodePhrase = n.getStringValue(); }, "inviteDateTime": n => { directRoutingLogRow.inviteDateTime = n.getDateValue(); }, "mediaBypassEnabled": n => { directRoutingLogRow.mediaBypassEnabled = n.getBooleanValue(); }, "mediaPathLocation": n => { directRoutingLogRow.mediaPathLocation = n.getStringValue(); }, "signalingLocation": n => { directRoutingLogRow.signalingLocation = n.getStringValue(); }, "startDateTime": n => { directRoutingLogRow.startDateTime = n.getDateValue(); }, "successfulCall": n => { directRoutingLogRow.successfulCall = n.getBooleanValue(); }, "transferorCorrelationId": n => { directRoutingLogRow.transferorCorrelationId = n.getStringValue(); }, "trunkFullyQualifiedDomainName": n => { directRoutingLogRow.trunkFullyQualifiedDomainName = n.getStringValue(); }, "userCountryCode": n => { directRoutingLogRow.userCountryCode = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoEndpoint(endpoint = {}) {
    return {
        "backingStoreEnabled": n => { endpoint.backingStoreEnabled = true; },
        "@odata.type": n => { endpoint.odataType = n.getStringValue(); },
        "userAgent": n => { endpoint.userAgent = n.getObjectValue(createUserAgentFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFailureInfo(failureInfo = {}) {
    return {
        "backingStoreEnabled": n => { failureInfo.backingStoreEnabled = true; },
        "@odata.type": n => { failureInfo.odataType = n.getStringValue(); },
        "reason": n => { failureInfo.reason = n.getStringValue(); },
        "stage": n => { failureInfo.stage = n.getEnumValue(FailureStageObject); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFeedbackTokenSet(feedbackTokenSet = {}) {
    return {
        "backingStoreEnabled": n => { feedbackTokenSet.backingStoreEnabled = true; },
        "@odata.type": n => { feedbackTokenSet.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMedia(media = {}) {
    return {
        "backingStoreEnabled": n => { media.backingStoreEnabled = true; },
        "calleeDevice": n => { media.calleeDevice = n.getObjectValue(createDeviceInfoFromDiscriminatorValue); },
        "calleeNetwork": n => { media.calleeNetwork = n.getObjectValue(createNetworkInfoFromDiscriminatorValue); },
        "callerDevice": n => { media.callerDevice = n.getObjectValue(createDeviceInfoFromDiscriminatorValue); },
        "callerNetwork": n => { media.callerNetwork = n.getObjectValue(createNetworkInfoFromDiscriminatorValue); },
        "label": n => { media.label = n.getStringValue(); },
        "@odata.type": n => { media.odataType = n.getStringValue(); },
        "streams": n => { media.streams = n.getCollectionOfObjectValues(createMediaStreamFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMediaStream(mediaStream = {}) {
    return {
        "audioCodec": n => { mediaStream.audioCodec = n.getEnumValue(AudioCodecObject); },
        "averageAudioDegradation": n => { mediaStream.averageAudioDegradation = n.getNumberValue(); },
        "averageAudioNetworkJitter": n => { mediaStream.averageAudioNetworkJitter = n.getDurationValue(); },
        "averageBandwidthEstimate": n => { mediaStream.averageBandwidthEstimate = n.getNumberValue(); },
        "averageFreezeDuration": n => { mediaStream.averageFreezeDuration = n.getDurationValue(); },
        "averageJitter": n => { mediaStream.averageJitter = n.getDurationValue(); },
        "averagePacketLossRate": n => { mediaStream.averagePacketLossRate = n.getNumberValue(); },
        "averageRatioOfConcealedSamples": n => { mediaStream.averageRatioOfConcealedSamples = n.getNumberValue(); },
        "averageReceivedFrameRate": n => { mediaStream.averageReceivedFrameRate = n.getNumberValue(); },
        "averageRoundTripTime": n => { mediaStream.averageRoundTripTime = n.getDurationValue(); },
        "averageVideoFrameLossPercentage": n => { mediaStream.averageVideoFrameLossPercentage = n.getNumberValue(); },
        "averageVideoFrameRate": n => { mediaStream.averageVideoFrameRate = n.getNumberValue(); },
        "averageVideoPacketLossRate": n => { mediaStream.averageVideoPacketLossRate = n.getNumberValue(); },
        "backingStoreEnabled": n => { mediaStream.backingStoreEnabled = true; },
        "endDateTime": n => { mediaStream.endDateTime = n.getDateValue(); },
        "isAudioForwardErrorCorrectionUsed": n => { mediaStream.isAudioForwardErrorCorrectionUsed = n.getBooleanValue(); },
        "lowFrameRateRatio": n => { mediaStream.lowFrameRateRatio = n.getNumberValue(); },
        "lowVideoProcessingCapabilityRatio": n => { mediaStream.lowVideoProcessingCapabilityRatio = n.getNumberValue(); },
        "maxAudioNetworkJitter": n => { mediaStream.maxAudioNetworkJitter = n.getDurationValue(); },
        "maxJitter": n => { mediaStream.maxJitter = n.getDurationValue(); },
        "maxPacketLossRate": n => { mediaStream.maxPacketLossRate = n.getNumberValue(); },
        "maxRatioOfConcealedSamples": n => { mediaStream.maxRatioOfConcealedSamples = n.getNumberValue(); },
        "maxRoundTripTime": n => { mediaStream.maxRoundTripTime = n.getDurationValue(); },
        "@odata.type": n => { mediaStream.odataType = n.getStringValue(); },
        "packetUtilization": n => { mediaStream.packetUtilization = n.getNumberValue(); },
        "postForwardErrorCorrectionPacketLossRate": n => { mediaStream.postForwardErrorCorrectionPacketLossRate = n.getNumberValue(); },
        "rmsFreezeDuration": n => { mediaStream.rmsFreezeDuration = n.getDurationValue(); },
        "startDateTime": n => { mediaStream.startDateTime = n.getDateValue(); },
        "streamDirection": n => { mediaStream.streamDirection = n.getEnumValue(MediaStreamDirectionObject); },
        "streamId": n => { mediaStream.streamId = n.getStringValue(); },
        "videoCodec": n => { mediaStream.videoCodec = n.getEnumValue(VideoCodecObject); },
        "wasMediaBypassed": n => { mediaStream.wasMediaBypassed = n.getBooleanValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoNetworkInfo(networkInfo = {}) {
    return {
        "backingStoreEnabled": n => { networkInfo.backingStoreEnabled = true; },
        "bandwidthLowEventRatio": n => { networkInfo.bandwidthLowEventRatio = n.getNumberValue(); },
        "basicServiceSetIdentifier": n => { networkInfo.basicServiceSetIdentifier = n.getStringValue(); },
        "connectionType": n => { networkInfo.connectionType = n.getEnumValue(NetworkConnectionTypeObject); },
        "delayEventRatio": n => { networkInfo.delayEventRatio = n.getNumberValue(); },
        "dnsSuffix": n => { networkInfo.dnsSuffix = n.getStringValue(); },
        "ipAddress": n => { networkInfo.ipAddress = n.getStringValue(); },
        "linkSpeed": n => { networkInfo.linkSpeed = n.getNumberValue(); },
        "macAddress": n => { networkInfo.macAddress = n.getStringValue(); },
        "networkTransportProtocol": n => { networkInfo.networkTransportProtocol = n.getEnumValue(NetworkTransportProtocolObject); },
        "@odata.type": n => { networkInfo.odataType = n.getStringValue(); },
        "port": n => { networkInfo.port = n.getNumberValue(); },
        "receivedQualityEventRatio": n => { networkInfo.receivedQualityEventRatio = n.getNumberValue(); },
        "reflexiveIPAddress": n => { networkInfo.reflexiveIPAddress = n.getStringValue(); },
        "relayIPAddress": n => { networkInfo.relayIPAddress = n.getStringValue(); },
        "relayPort": n => { networkInfo.relayPort = n.getNumberValue(); },
        "sentQualityEventRatio": n => { networkInfo.sentQualityEventRatio = n.getNumberValue(); },
        "subnet": n => { networkInfo.subnet = n.getStringValue(); },
        "traceRouteHops": n => { networkInfo.traceRouteHops = n.getCollectionOfObjectValues(createTraceRouteHopFromDiscriminatorValue); },
        "wifiBand": n => { networkInfo.wifiBand = n.getEnumValue(WifiBandObject); },
        "wifiBatteryCharge": n => { networkInfo.wifiBatteryCharge = n.getNumberValue(); },
        "wifiChannel": n => { networkInfo.wifiChannel = n.getNumberValue(); },
        "wifiMicrosoftDriver": n => { networkInfo.wifiMicrosoftDriver = n.getStringValue(); },
        "wifiMicrosoftDriverVersion": n => { networkInfo.wifiMicrosoftDriverVersion = n.getStringValue(); },
        "wifiRadioType": n => { networkInfo.wifiRadioType = n.getEnumValue(WifiRadioTypeObject); },
        "wifiSignalStrength": n => { networkInfo.wifiSignalStrength = n.getNumberValue(); },
        "wifiVendorDriver": n => { networkInfo.wifiVendorDriver = n.getStringValue(); },
        "wifiVendorDriverVersion": n => { networkInfo.wifiVendorDriverVersion = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoOrganizer(organizer = {}) {
    return Object.assign({}, deserializeIntoParticipantBase(organizer));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoParticipant(participant = {}) {
    return Object.assign({}, deserializeIntoParticipantBase(participant));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoParticipantBase(participantBase = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(participantBase)), { "administrativeUnitInfos": n => { participantBase.administrativeUnitInfos = n.getCollectionOfObjectValues(createAdministrativeUnitInfoFromDiscriminatorValue); }, "identity": n => { participantBase.identity = n.getObjectValue(createCommunicationsIdentitySetFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoParticipantCollectionResponse(participantCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(participantCollectionResponse)), { "value": n => { participantCollectionResponse.value = n.getCollectionOfObjectValues(createParticipantFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoParticipantEndpoint(participantEndpoint = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEndpoint(participantEndpoint)), { "associatedIdentity": n => { participantEndpoint.associatedIdentity = n.getObjectValue(createIdentityFromDiscriminatorValue); }, "cpuCoresCount": n => { participantEndpoint.cpuCoresCount = n.getNumberValue(); }, "cpuName": n => { participantEndpoint.cpuName = n.getStringValue(); }, "cpuProcessorSpeedInMhz": n => { participantEndpoint.cpuProcessorSpeedInMhz = n.getNumberValue(); }, "feedback": n => { participantEndpoint.feedback = n.getObjectValue(createUserFeedbackFromDiscriminatorValue); }, "identity": n => { participantEndpoint.identity = n.getObjectValue(createIdentitySetFromDiscriminatorValue); }, "name": n => { participantEndpoint.name = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPstnBlockedUsersLogRow(pstnBlockedUsersLogRow = {}) {
    return {
        "backingStoreEnabled": n => { pstnBlockedUsersLogRow.backingStoreEnabled = true; },
        "blockDateTime": n => { pstnBlockedUsersLogRow.blockDateTime = n.getDateValue(); },
        "blockReason": n => { pstnBlockedUsersLogRow.blockReason = n.getStringValue(); },
        "@odata.type": n => { pstnBlockedUsersLogRow.odataType = n.getStringValue(); },
        "remediationId": n => { pstnBlockedUsersLogRow.remediationId = n.getStringValue(); },
        "userBlockMode": n => { pstnBlockedUsersLogRow.userBlockMode = n.getEnumValue(PstnUserBlockModeObject); },
        "userDisplayName": n => { pstnBlockedUsersLogRow.userDisplayName = n.getStringValue(); },
        "userId": n => { pstnBlockedUsersLogRow.userId = n.getStringValue(); },
        "userPrincipalName": n => { pstnBlockedUsersLogRow.userPrincipalName = n.getStringValue(); },
        "userTelephoneNumber": n => { pstnBlockedUsersLogRow.userTelephoneNumber = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPstnCallLogRow(pstnCallLogRow = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCallLogRow(pstnCallLogRow)), { "callDurationSource": n => { pstnCallLogRow.callDurationSource = n.getEnumValue(PstnCallDurationSourceObject); }, "calleeNumber": n => { pstnCallLogRow.calleeNumber = n.getStringValue(); }, "callerNumber": n => { pstnCallLogRow.callerNumber = n.getStringValue(); }, "callId": n => { pstnCallLogRow.callId = n.getStringValue(); }, "callType": n => { pstnCallLogRow.callType = n.getStringValue(); }, "charge": n => { pstnCallLogRow.charge = n.getNumberValue(); }, "clientLocalIpV4Address": n => { pstnCallLogRow.clientLocalIpV4Address = n.getStringValue(); }, "clientLocalIpV6Address": n => { pstnCallLogRow.clientLocalIpV6Address = n.getStringValue(); }, "clientPublicIpV4Address": n => { pstnCallLogRow.clientPublicIpV4Address = n.getStringValue(); }, "clientPublicIpV6Address": n => { pstnCallLogRow.clientPublicIpV6Address = n.getStringValue(); }, "conferenceId": n => { pstnCallLogRow.conferenceId = n.getStringValue(); }, "connectionCharge": n => { pstnCallLogRow.connectionCharge = n.getNumberValue(); }, "currency": n => { pstnCallLogRow.currency = n.getStringValue(); }, "destinationContext": n => { pstnCallLogRow.destinationContext = n.getStringValue(); }, "destinationName": n => { pstnCallLogRow.destinationName = n.getStringValue(); }, "duration": n => { pstnCallLogRow.duration = n.getNumberValue(); }, "endDateTime": n => { pstnCallLogRow.endDateTime = n.getDateValue(); }, "inventoryType": n => { pstnCallLogRow.inventoryType = n.getStringValue(); }, "licenseCapability": n => { pstnCallLogRow.licenseCapability = n.getStringValue(); }, "operator": n => { pstnCallLogRow.operator = n.getStringValue(); }, "startDateTime": n => { pstnCallLogRow.startDateTime = n.getDateValue(); }, "tenantCountryCode": n => { pstnCallLogRow.tenantCountryCode = n.getStringValue(); }, "usageCountryCode": n => { pstnCallLogRow.usageCountryCode = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPstnOnlineMeetingDialoutReport(pstnOnlineMeetingDialoutReport = {}) {
    return {
        "backingStoreEnabled": n => { pstnOnlineMeetingDialoutReport.backingStoreEnabled = true; },
        "currency": n => { pstnOnlineMeetingDialoutReport.currency = n.getStringValue(); },
        "destinationContext": n => { pstnOnlineMeetingDialoutReport.destinationContext = n.getStringValue(); },
        "@odata.type": n => { pstnOnlineMeetingDialoutReport.odataType = n.getStringValue(); },
        "totalCallCharge": n => { pstnOnlineMeetingDialoutReport.totalCallCharge = n.getNumberValue(); },
        "totalCalls": n => { pstnOnlineMeetingDialoutReport.totalCalls = n.getNumberValue(); },
        "totalCallSeconds": n => { pstnOnlineMeetingDialoutReport.totalCallSeconds = n.getNumberValue(); },
        "usageLocation": n => { pstnOnlineMeetingDialoutReport.usageLocation = n.getStringValue(); },
        "userDisplayName": n => { pstnOnlineMeetingDialoutReport.userDisplayName = n.getStringValue(); },
        "userId": n => { pstnOnlineMeetingDialoutReport.userId = n.getStringValue(); },
        "userPrincipalName": n => { pstnOnlineMeetingDialoutReport.userPrincipalName = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSegment(segment = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(segment)), { "callee": n => { segment.callee = n.getObjectValue(createEndpointFromDiscriminatorValue); }, "caller": n => { segment.caller = n.getObjectValue(createEndpointFromDiscriminatorValue); }, "endDateTime": n => { segment.endDateTime = n.getDateValue(); }, "failureInfo": n => { segment.failureInfo = n.getObjectValue(createFailureInfoFromDiscriminatorValue); }, "media": n => { segment.media = n.getCollectionOfObjectValues(createMediaFromDiscriminatorValue); }, "startDateTime": n => { segment.startDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSegmentCollectionResponse(segmentCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(segmentCollectionResponse)), { "value": n => { segmentCollectionResponse.value = n.getCollectionOfObjectValues(createSegmentFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoServiceEndpoint(serviceEndpoint = {}) {
    return Object.assign({}, deserializeIntoEndpoint(serviceEndpoint));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoServiceUserAgent(serviceUserAgent = {}) {
    return Object.assign(Object.assign({}, deserializeIntoUserAgent(serviceUserAgent)), { "role": n => { serviceUserAgent.role = n.getEnumValue(ServiceRoleObject); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSession(session = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(session)), { "callee": n => { session.callee = n.getObjectValue(createEndpointFromDiscriminatorValue); }, "caller": n => { session.caller = n.getObjectValue(createEndpointFromDiscriminatorValue); }, "endDateTime": n => { session.endDateTime = n.getDateValue(); }, "failureInfo": n => { session.failureInfo = n.getObjectValue(createFailureInfoFromDiscriminatorValue); }, "isTest": n => { session.isTest = n.getBooleanValue(); }, "modalities": n => { session.modalities = n.getCollectionOfEnumValues(ModalityObject); }, "segments": n => { session.segments = n.getCollectionOfObjectValues(createSegmentFromDiscriminatorValue); }, "startDateTime": n => { session.startDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSessionCollectionResponse(sessionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(sessionCollectionResponse)), { "value": n => { sessionCollectionResponse.value = n.getCollectionOfObjectValues(createSessionFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSmsLogRow(smsLogRow = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCallLogRow(smsLogRow)), { "callCharge": n => { smsLogRow.callCharge = n.getNumberValue(); }, "currency": n => { smsLogRow.currency = n.getStringValue(); }, "destinationContext": n => { smsLogRow.destinationContext = n.getStringValue(); }, "destinationName": n => { smsLogRow.destinationName = n.getStringValue(); }, "destinationNumber": n => { smsLogRow.destinationNumber = n.getStringValue(); }, "licenseCapability": n => { smsLogRow.licenseCapability = n.getStringValue(); }, "sentDateTime": n => { smsLogRow.sentDateTime = n.getDateValue(); }, "smsId": n => { smsLogRow.smsId = n.getStringValue(); }, "smsType": n => { smsLogRow.smsType = n.getStringValue(); }, "smsUnits": n => { smsLogRow.smsUnits = n.getNumberValue(); }, "sourceNumber": n => { smsLogRow.sourceNumber = n.getStringValue(); }, "tenantCountryCode": n => { smsLogRow.tenantCountryCode = n.getStringValue(); }, "userCountryCode": n => { smsLogRow.userCountryCode = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTraceRouteHop(traceRouteHop = {}) {
    return {
        "backingStoreEnabled": n => { traceRouteHop.backingStoreEnabled = true; },
        "hopCount": n => { traceRouteHop.hopCount = n.getNumberValue(); },
        "ipAddress": n => { traceRouteHop.ipAddress = n.getStringValue(); },
        "@odata.type": n => { traceRouteHop.odataType = n.getStringValue(); },
        "roundTripTime": n => { traceRouteHop.roundTripTime = n.getDurationValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUserAgent(userAgent = {}) {
    return {
        "applicationVersion": n => { userAgent.applicationVersion = n.getStringValue(); },
        "backingStoreEnabled": n => { userAgent.backingStoreEnabled = true; },
        "headerValue": n => { userAgent.headerValue = n.getStringValue(); },
        "@odata.type": n => { userAgent.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUserFeedback(userFeedback = {}) {
    return {
        "backingStoreEnabled": n => { userFeedback.backingStoreEnabled = true; },
        "@odata.type": n => { userFeedback.odataType = n.getStringValue(); },
        "rating": n => { userFeedback.rating = n.getEnumValue(UserFeedbackRatingObject); },
        "text": n => { userFeedback.text = n.getStringValue(); },
        "tokens": n => { userFeedback.tokens = n.getObjectValue(createFeedbackTokenSetFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUserIdentity(userIdentity = {}) {
    return Object.assign(Object.assign({}, deserializeIntoIdentity(userIdentity)), { "userPrincipalName": n => { userIdentity.userPrincipalName = n.getStringValue(); } });
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAdministrativeUnitInfo(writer, administrativeUnitInfo = {}) {
    if (administrativeUnitInfo) {
        writer.writeStringValue("id", administrativeUnitInfo.id);
        writer.writeStringValue("@odata.type", administrativeUnitInfo.odataType);
        writer.writeAdditionalData(administrativeUnitInfo.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCallLogRow(writer, callLogRow = {}) {
    if (callLogRow) {
        writer.writeCollectionOfObjectValues("administrativeUnitInfos", callLogRow.administrativeUnitInfos, serializeAdministrativeUnitInfo);
        writer.writeStringValue("id", callLogRow.id);
        writer.writeStringValue("@odata.type", callLogRow.odataType);
        writer.writeStringValue("otherPartyCountryCode", callLogRow.otherPartyCountryCode);
        writer.writeStringValue("userDisplayName", callLogRow.userDisplayName);
        writer.writeStringValue("userId", callLogRow.userId);
        writer.writeStringValue("userPrincipalName", callLogRow.userPrincipalName);
        writer.writeAdditionalData(callLogRow.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCallRecord(writer, callRecord = {}) {
    if (callRecord) {
        serializeEntity(writer, callRecord);
        writer.writeDateValue("endDateTime", callRecord.endDateTime);
        writer.writeStringValue("joinWebUrl", callRecord.joinWebUrl);
        writer.writeDateValue("lastModifiedDateTime", callRecord.lastModifiedDateTime);
        if (callRecord.modalities)
            writer.writeCollectionOfEnumValues("modalities", callRecord.modalities);
        writer.writeObjectValue("organizer", callRecord.organizer, serializeIdentitySet);
        writer.writeObjectValue("organizer_v2", callRecord.organizerV2, serializeOrganizer);
        writer.writeCollectionOfObjectValues("participants", callRecord.participants, serializeIdentitySet);
        writer.writeCollectionOfObjectValues("participants_v2", callRecord.participantsV2, serializeParticipant);
        writer.writeCollectionOfObjectValues("sessions", callRecord.sessions, serializeSession);
        writer.writeDateValue("startDateTime", callRecord.startDateTime);
        writer.writeEnumValue("type", callRecord.type);
        writer.writeNumberValue("version", callRecord.version);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCallRecordCollectionResponse(writer, callRecordCollectionResponse = {}) {
    if (callRecordCollectionResponse) {
        serializeBaseCollectionPaginationCountResponse(writer, callRecordCollectionResponse);
        writer.writeCollectionOfObjectValues("value", callRecordCollectionResponse.value, serializeCallRecord);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeClientUserAgent(writer, clientUserAgent = {}) {
    if (clientUserAgent) {
        serializeUserAgent(writer, clientUserAgent);
        writer.writeStringValue("azureADAppId", clientUserAgent.azureADAppId);
        writer.writeStringValue("communicationServiceId", clientUserAgent.communicationServiceId);
        writer.writeEnumValue("platform", clientUserAgent.platform);
        writer.writeEnumValue("productFamily", clientUserAgent.productFamily);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDeviceInfo(writer, deviceInfo = {}) {
    if (deviceInfo) {
        writer.writeStringValue("captureDeviceDriver", deviceInfo.captureDeviceDriver);
        writer.writeStringValue("captureDeviceName", deviceInfo.captureDeviceName);
        writer.writeNumberValue("captureNotFunctioningEventRatio", deviceInfo.captureNotFunctioningEventRatio);
        writer.writeNumberValue("cpuInsufficentEventRatio", deviceInfo.cpuInsufficentEventRatio);
        writer.writeNumberValue("deviceClippingEventRatio", deviceInfo.deviceClippingEventRatio);
        writer.writeNumberValue("deviceGlitchEventRatio", deviceInfo.deviceGlitchEventRatio);
        writer.writeNumberValue("howlingEventCount", deviceInfo.howlingEventCount);
        writer.writeNumberValue("initialSignalLevelRootMeanSquare", deviceInfo.initialSignalLevelRootMeanSquare);
        writer.writeNumberValue("lowSpeechLevelEventRatio", deviceInfo.lowSpeechLevelEventRatio);
        writer.writeNumberValue("lowSpeechToNoiseEventRatio", deviceInfo.lowSpeechToNoiseEventRatio);
        writer.writeNumberValue("micGlitchRate", deviceInfo.micGlitchRate);
        writer.writeStringValue("@odata.type", deviceInfo.odataType);
        writer.writeNumberValue("receivedNoiseLevel", deviceInfo.receivedNoiseLevel);
        writer.writeNumberValue("receivedSignalLevel", deviceInfo.receivedSignalLevel);
        writer.writeStringValue("renderDeviceDriver", deviceInfo.renderDeviceDriver);
        writer.writeStringValue("renderDeviceName", deviceInfo.renderDeviceName);
        writer.writeNumberValue("renderMuteEventRatio", deviceInfo.renderMuteEventRatio);
        writer.writeNumberValue("renderNotFunctioningEventRatio", deviceInfo.renderNotFunctioningEventRatio);
        writer.writeNumberValue("renderZeroVolumeEventRatio", deviceInfo.renderZeroVolumeEventRatio);
        writer.writeNumberValue("sentNoiseLevel", deviceInfo.sentNoiseLevel);
        writer.writeNumberValue("sentSignalLevel", deviceInfo.sentSignalLevel);
        writer.writeNumberValue("speakerGlitchRate", deviceInfo.speakerGlitchRate);
        writer.writeAdditionalData(deviceInfo.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDirectRoutingLogRow(writer, directRoutingLogRow = {}) {
    if (directRoutingLogRow) {
        serializeCallLogRow(writer, directRoutingLogRow);
        writer.writeStringValue("calleeNumber", directRoutingLogRow.calleeNumber);
        writer.writeNumberValue("callEndSubReason", directRoutingLogRow.callEndSubReason);
        writer.writeStringValue("callerNumber", directRoutingLogRow.callerNumber);
        writer.writeStringValue("callType", directRoutingLogRow.callType);
        writer.writeStringValue("correlationId", directRoutingLogRow.correlationId);
        writer.writeNumberValue("duration", directRoutingLogRow.duration);
        writer.writeDateValue("endDateTime", directRoutingLogRow.endDateTime);
        writer.writeDateValue("failureDateTime", directRoutingLogRow.failureDateTime);
        writer.writeNumberValue("finalSipCode", directRoutingLogRow.finalSipCode);
        writer.writeStringValue("finalSipCodePhrase", directRoutingLogRow.finalSipCodePhrase);
        writer.writeDateValue("inviteDateTime", directRoutingLogRow.inviteDateTime);
        writer.writeBooleanValue("mediaBypassEnabled", directRoutingLogRow.mediaBypassEnabled);
        writer.writeStringValue("mediaPathLocation", directRoutingLogRow.mediaPathLocation);
        writer.writeStringValue("signalingLocation", directRoutingLogRow.signalingLocation);
        writer.writeDateValue("startDateTime", directRoutingLogRow.startDateTime);
        writer.writeBooleanValue("successfulCall", directRoutingLogRow.successfulCall);
        writer.writeStringValue("transferorCorrelationId", directRoutingLogRow.transferorCorrelationId);
        writer.writeStringValue("trunkFullyQualifiedDomainName", directRoutingLogRow.trunkFullyQualifiedDomainName);
        writer.writeStringValue("userCountryCode", directRoutingLogRow.userCountryCode);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeEndpoint(writer, endpoint = {}) {
    if (endpoint) {
        writer.writeStringValue("@odata.type", endpoint.odataType);
        writer.writeObjectValue("userAgent", endpoint.userAgent, serializeUserAgent);
        writer.writeAdditionalData(endpoint.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFailureInfo(writer, failureInfo = {}) {
    if (failureInfo) {
        writer.writeStringValue("@odata.type", failureInfo.odataType);
        writer.writeStringValue("reason", failureInfo.reason);
        writer.writeEnumValue("stage", failureInfo.stage);
        writer.writeAdditionalData(failureInfo.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFeedbackTokenSet(writer, feedbackTokenSet = {}) {
    if (feedbackTokenSet) {
        writer.writeStringValue("@odata.type", feedbackTokenSet.odataType);
        writer.writeAdditionalData(feedbackTokenSet.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMedia(writer, media = {}) {
    if (media) {
        writer.writeObjectValue("calleeDevice", media.calleeDevice, serializeDeviceInfo);
        writer.writeObjectValue("calleeNetwork", media.calleeNetwork, serializeNetworkInfo);
        writer.writeObjectValue("callerDevice", media.callerDevice, serializeDeviceInfo);
        writer.writeObjectValue("callerNetwork", media.callerNetwork, serializeNetworkInfo);
        writer.writeStringValue("label", media.label);
        writer.writeStringValue("@odata.type", media.odataType);
        writer.writeCollectionOfObjectValues("streams", media.streams, serializeMediaStream);
        writer.writeAdditionalData(media.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMediaStream(writer, mediaStream = {}) {
    if (mediaStream) {
        writer.writeEnumValue("audioCodec", mediaStream.audioCodec);
        writer.writeNumberValue("averageAudioDegradation", mediaStream.averageAudioDegradation);
        writer.writeDurationValue("averageAudioNetworkJitter", mediaStream.averageAudioNetworkJitter);
        writer.writeNumberValue("averageBandwidthEstimate", mediaStream.averageBandwidthEstimate);
        writer.writeDurationValue("averageFreezeDuration", mediaStream.averageFreezeDuration);
        writer.writeDurationValue("averageJitter", mediaStream.averageJitter);
        writer.writeNumberValue("averagePacketLossRate", mediaStream.averagePacketLossRate);
        writer.writeNumberValue("averageRatioOfConcealedSamples", mediaStream.averageRatioOfConcealedSamples);
        writer.writeNumberValue("averageReceivedFrameRate", mediaStream.averageReceivedFrameRate);
        writer.writeDurationValue("averageRoundTripTime", mediaStream.averageRoundTripTime);
        writer.writeNumberValue("averageVideoFrameLossPercentage", mediaStream.averageVideoFrameLossPercentage);
        writer.writeNumberValue("averageVideoFrameRate", mediaStream.averageVideoFrameRate);
        writer.writeNumberValue("averageVideoPacketLossRate", mediaStream.averageVideoPacketLossRate);
        writer.writeDateValue("endDateTime", mediaStream.endDateTime);
        writer.writeBooleanValue("isAudioForwardErrorCorrectionUsed", mediaStream.isAudioForwardErrorCorrectionUsed);
        writer.writeNumberValue("lowFrameRateRatio", mediaStream.lowFrameRateRatio);
        writer.writeNumberValue("lowVideoProcessingCapabilityRatio", mediaStream.lowVideoProcessingCapabilityRatio);
        writer.writeDurationValue("maxAudioNetworkJitter", mediaStream.maxAudioNetworkJitter);
        writer.writeDurationValue("maxJitter", mediaStream.maxJitter);
        writer.writeNumberValue("maxPacketLossRate", mediaStream.maxPacketLossRate);
        writer.writeNumberValue("maxRatioOfConcealedSamples", mediaStream.maxRatioOfConcealedSamples);
        writer.writeDurationValue("maxRoundTripTime", mediaStream.maxRoundTripTime);
        writer.writeStringValue("@odata.type", mediaStream.odataType);
        writer.writeNumberValue("packetUtilization", mediaStream.packetUtilization);
        writer.writeNumberValue("postForwardErrorCorrectionPacketLossRate", mediaStream.postForwardErrorCorrectionPacketLossRate);
        writer.writeDurationValue("rmsFreezeDuration", mediaStream.rmsFreezeDuration);
        writer.writeDateValue("startDateTime", mediaStream.startDateTime);
        writer.writeEnumValue("streamDirection", mediaStream.streamDirection);
        writer.writeStringValue("streamId", mediaStream.streamId);
        writer.writeEnumValue("videoCodec", mediaStream.videoCodec);
        writer.writeBooleanValue("wasMediaBypassed", mediaStream.wasMediaBypassed);
        writer.writeAdditionalData(mediaStream.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeNetworkInfo(writer, networkInfo = {}) {
    if (networkInfo) {
        writer.writeNumberValue("bandwidthLowEventRatio", networkInfo.bandwidthLowEventRatio);
        writer.writeStringValue("basicServiceSetIdentifier", networkInfo.basicServiceSetIdentifier);
        writer.writeEnumValue("connectionType", networkInfo.connectionType);
        writer.writeNumberValue("delayEventRatio", networkInfo.delayEventRatio);
        writer.writeStringValue("dnsSuffix", networkInfo.dnsSuffix);
        writer.writeStringValue("ipAddress", networkInfo.ipAddress);
        writer.writeNumberValue("linkSpeed", networkInfo.linkSpeed);
        writer.writeStringValue("macAddress", networkInfo.macAddress);
        writer.writeEnumValue("networkTransportProtocol", networkInfo.networkTransportProtocol);
        writer.writeStringValue("@odata.type", networkInfo.odataType);
        writer.writeNumberValue("port", networkInfo.port);
        writer.writeNumberValue("receivedQualityEventRatio", networkInfo.receivedQualityEventRatio);
        writer.writeStringValue("reflexiveIPAddress", networkInfo.reflexiveIPAddress);
        writer.writeStringValue("relayIPAddress", networkInfo.relayIPAddress);
        writer.writeNumberValue("relayPort", networkInfo.relayPort);
        writer.writeNumberValue("sentQualityEventRatio", networkInfo.sentQualityEventRatio);
        writer.writeStringValue("subnet", networkInfo.subnet);
        writer.writeCollectionOfObjectValues("traceRouteHops", networkInfo.traceRouteHops, serializeTraceRouteHop);
        writer.writeEnumValue("wifiBand", networkInfo.wifiBand);
        writer.writeNumberValue("wifiBatteryCharge", networkInfo.wifiBatteryCharge);
        writer.writeNumberValue("wifiChannel", networkInfo.wifiChannel);
        writer.writeStringValue("wifiMicrosoftDriver", networkInfo.wifiMicrosoftDriver);
        writer.writeStringValue("wifiMicrosoftDriverVersion", networkInfo.wifiMicrosoftDriverVersion);
        writer.writeEnumValue("wifiRadioType", networkInfo.wifiRadioType);
        writer.writeNumberValue("wifiSignalStrength", networkInfo.wifiSignalStrength);
        writer.writeStringValue("wifiVendorDriver", networkInfo.wifiVendorDriver);
        writer.writeStringValue("wifiVendorDriverVersion", networkInfo.wifiVendorDriverVersion);
        writer.writeAdditionalData(networkInfo.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeOrganizer(writer, organizer = {}) {
    if (organizer) {
        serializeParticipantBase(writer, organizer);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeParticipant(writer, participant = {}) {
    if (participant) {
        serializeParticipantBase(writer, participant);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeParticipantBase(writer, participantBase = {}) {
    if (participantBase) {
        serializeEntity(writer, participantBase);
        writer.writeCollectionOfObjectValues("administrativeUnitInfos", participantBase.administrativeUnitInfos, serializeAdministrativeUnitInfo);
        writer.writeObjectValue("identity", participantBase.identity, serializeCommunicationsIdentitySet);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeParticipantCollectionResponse(writer, participantCollectionResponse = {}) {
    if (participantCollectionResponse) {
        serializeBaseCollectionPaginationCountResponse(writer, participantCollectionResponse);
        writer.writeCollectionOfObjectValues("value", participantCollectionResponse.value, serializeParticipant);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeParticipantEndpoint(writer, participantEndpoint = {}) {
    if (participantEndpoint) {
        serializeEndpoint(writer, participantEndpoint);
        writer.writeObjectValue("associatedIdentity", participantEndpoint.associatedIdentity, serializeIdentity);
        writer.writeNumberValue("cpuCoresCount", participantEndpoint.cpuCoresCount);
        writer.writeStringValue("cpuName", participantEndpoint.cpuName);
        writer.writeNumberValue("cpuProcessorSpeedInMhz", participantEndpoint.cpuProcessorSpeedInMhz);
        writer.writeObjectValue("feedback", participantEndpoint.feedback, serializeUserFeedback);
        writer.writeObjectValue("identity", participantEndpoint.identity, serializeIdentitySet);
        writer.writeStringValue("name", participantEndpoint.name);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePstnBlockedUsersLogRow(writer, pstnBlockedUsersLogRow = {}) {
    if (pstnBlockedUsersLogRow) {
        writer.writeDateValue("blockDateTime", pstnBlockedUsersLogRow.blockDateTime);
        writer.writeStringValue("blockReason", pstnBlockedUsersLogRow.blockReason);
        writer.writeStringValue("@odata.type", pstnBlockedUsersLogRow.odataType);
        writer.writeStringValue("remediationId", pstnBlockedUsersLogRow.remediationId);
        writer.writeEnumValue("userBlockMode", pstnBlockedUsersLogRow.userBlockMode);
        writer.writeStringValue("userDisplayName", pstnBlockedUsersLogRow.userDisplayName);
        writer.writeStringValue("userId", pstnBlockedUsersLogRow.userId);
        writer.writeStringValue("userPrincipalName", pstnBlockedUsersLogRow.userPrincipalName);
        writer.writeStringValue("userTelephoneNumber", pstnBlockedUsersLogRow.userTelephoneNumber);
        writer.writeAdditionalData(pstnBlockedUsersLogRow.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePstnCallLogRow(writer, pstnCallLogRow = {}) {
    if (pstnCallLogRow) {
        serializeCallLogRow(writer, pstnCallLogRow);
        writer.writeEnumValue("callDurationSource", pstnCallLogRow.callDurationSource);
        writer.writeStringValue("calleeNumber", pstnCallLogRow.calleeNumber);
        writer.writeStringValue("callerNumber", pstnCallLogRow.callerNumber);
        writer.writeStringValue("callId", pstnCallLogRow.callId);
        writer.writeStringValue("callType", pstnCallLogRow.callType);
        writer.writeNumberValue("charge", pstnCallLogRow.charge);
        writer.writeStringValue("clientLocalIpV4Address", pstnCallLogRow.clientLocalIpV4Address);
        writer.writeStringValue("clientLocalIpV6Address", pstnCallLogRow.clientLocalIpV6Address);
        writer.writeStringValue("clientPublicIpV4Address", pstnCallLogRow.clientPublicIpV4Address);
        writer.writeStringValue("clientPublicIpV6Address", pstnCallLogRow.clientPublicIpV6Address);
        writer.writeStringValue("conferenceId", pstnCallLogRow.conferenceId);
        writer.writeNumberValue("connectionCharge", pstnCallLogRow.connectionCharge);
        writer.writeStringValue("currency", pstnCallLogRow.currency);
        writer.writeStringValue("destinationContext", pstnCallLogRow.destinationContext);
        writer.writeStringValue("destinationName", pstnCallLogRow.destinationName);
        writer.writeNumberValue("duration", pstnCallLogRow.duration);
        writer.writeDateValue("endDateTime", pstnCallLogRow.endDateTime);
        writer.writeStringValue("inventoryType", pstnCallLogRow.inventoryType);
        writer.writeStringValue("licenseCapability", pstnCallLogRow.licenseCapability);
        writer.writeStringValue("operator", pstnCallLogRow.operator);
        writer.writeDateValue("startDateTime", pstnCallLogRow.startDateTime);
        writer.writeStringValue("tenantCountryCode", pstnCallLogRow.tenantCountryCode);
        writer.writeStringValue("usageCountryCode", pstnCallLogRow.usageCountryCode);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePstnOnlineMeetingDialoutReport(writer, pstnOnlineMeetingDialoutReport = {}) {
    if (pstnOnlineMeetingDialoutReport) {
        writer.writeStringValue("currency", pstnOnlineMeetingDialoutReport.currency);
        writer.writeStringValue("destinationContext", pstnOnlineMeetingDialoutReport.destinationContext);
        writer.writeStringValue("@odata.type", pstnOnlineMeetingDialoutReport.odataType);
        writer.writeNumberValue("totalCallCharge", pstnOnlineMeetingDialoutReport.totalCallCharge);
        writer.writeNumberValue("totalCalls", pstnOnlineMeetingDialoutReport.totalCalls);
        writer.writeNumberValue("totalCallSeconds", pstnOnlineMeetingDialoutReport.totalCallSeconds);
        writer.writeStringValue("usageLocation", pstnOnlineMeetingDialoutReport.usageLocation);
        writer.writeStringValue("userDisplayName", pstnOnlineMeetingDialoutReport.userDisplayName);
        writer.writeStringValue("userId", pstnOnlineMeetingDialoutReport.userId);
        writer.writeStringValue("userPrincipalName", pstnOnlineMeetingDialoutReport.userPrincipalName);
        writer.writeAdditionalData(pstnOnlineMeetingDialoutReport.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSegment(writer, segment = {}) {
    if (segment) {
        serializeEntity(writer, segment);
        writer.writeObjectValue("callee", segment.callee, serializeEndpoint);
        writer.writeObjectValue("caller", segment.caller, serializeEndpoint);
        writer.writeDateValue("endDateTime", segment.endDateTime);
        writer.writeObjectValue("failureInfo", segment.failureInfo, serializeFailureInfo);
        writer.writeCollectionOfObjectValues("media", segment.media, serializeMedia);
        writer.writeDateValue("startDateTime", segment.startDateTime);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSegmentCollectionResponse(writer, segmentCollectionResponse = {}) {
    if (segmentCollectionResponse) {
        serializeBaseCollectionPaginationCountResponse(writer, segmentCollectionResponse);
        writer.writeCollectionOfObjectValues("value", segmentCollectionResponse.value, serializeSegment);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeServiceEndpoint(writer, serviceEndpoint = {}) {
    if (serviceEndpoint) {
        serializeEndpoint(writer, serviceEndpoint);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeServiceUserAgent(writer, serviceUserAgent = {}) {
    if (serviceUserAgent) {
        serializeUserAgent(writer, serviceUserAgent);
        writer.writeEnumValue("role", serviceUserAgent.role);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSession(writer, session = {}) {
    if (session) {
        serializeEntity(writer, session);
        writer.writeObjectValue("callee", session.callee, serializeEndpoint);
        writer.writeObjectValue("caller", session.caller, serializeEndpoint);
        writer.writeDateValue("endDateTime", session.endDateTime);
        writer.writeObjectValue("failureInfo", session.failureInfo, serializeFailureInfo);
        writer.writeBooleanValue("isTest", session.isTest);
        if (session.modalities)
            writer.writeCollectionOfEnumValues("modalities", session.modalities);
        writer.writeCollectionOfObjectValues("segments", session.segments, serializeSegment);
        writer.writeDateValue("startDateTime", session.startDateTime);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSessionCollectionResponse(writer, sessionCollectionResponse = {}) {
    if (sessionCollectionResponse) {
        serializeBaseCollectionPaginationCountResponse(writer, sessionCollectionResponse);
        writer.writeCollectionOfObjectValues("value", sessionCollectionResponse.value, serializeSession);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSmsLogRow(writer, smsLogRow = {}) {
    if (smsLogRow) {
        serializeCallLogRow(writer, smsLogRow);
        writer.writeNumberValue("callCharge", smsLogRow.callCharge);
        writer.writeStringValue("currency", smsLogRow.currency);
        writer.writeStringValue("destinationContext", smsLogRow.destinationContext);
        writer.writeStringValue("destinationName", smsLogRow.destinationName);
        writer.writeStringValue("destinationNumber", smsLogRow.destinationNumber);
        writer.writeStringValue("licenseCapability", smsLogRow.licenseCapability);
        writer.writeDateValue("sentDateTime", smsLogRow.sentDateTime);
        writer.writeStringValue("smsId", smsLogRow.smsId);
        writer.writeStringValue("smsType", smsLogRow.smsType);
        writer.writeNumberValue("smsUnits", smsLogRow.smsUnits);
        writer.writeStringValue("sourceNumber", smsLogRow.sourceNumber);
        writer.writeStringValue("tenantCountryCode", smsLogRow.tenantCountryCode);
        writer.writeStringValue("userCountryCode", smsLogRow.userCountryCode);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTraceRouteHop(writer, traceRouteHop = {}) {
    if (traceRouteHop) {
        writer.writeNumberValue("hopCount", traceRouteHop.hopCount);
        writer.writeStringValue("ipAddress", traceRouteHop.ipAddress);
        writer.writeStringValue("@odata.type", traceRouteHop.odataType);
        writer.writeDurationValue("roundTripTime", traceRouteHop.roundTripTime);
        writer.writeAdditionalData(traceRouteHop.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUserAgent(writer, userAgent = {}) {
    if (userAgent) {
        writer.writeStringValue("applicationVersion", userAgent.applicationVersion);
        writer.writeStringValue("headerValue", userAgent.headerValue);
        writer.writeStringValue("@odata.type", userAgent.odataType);
        writer.writeAdditionalData(userAgent.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUserFeedback(writer, userFeedback = {}) {
    if (userFeedback) {
        writer.writeStringValue("@odata.type", userFeedback.odataType);
        writer.writeEnumValue("rating", userFeedback.rating);
        writer.writeStringValue("text", userFeedback.text);
        writer.writeObjectValue("tokens", userFeedback.tokens, serializeFeedbackTokenSet);
        writer.writeAdditionalData(userFeedback.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUserIdentity(writer, userIdentity = {}) {
    if (userIdentity) {
        serializeIdentity(writer, userIdentity);
        writer.writeStringValue("userPrincipalName", userIdentity.userPrincipalName);
    }
}
export const AudioCodecObject = {
    Unknown: "unknown",
    Invalid: "invalid",
    Cn: "cn",
    Pcma: "pcma",
    Pcmu: "pcmu",
    AmrWide: "amrWide",
    G722: "g722",
    G7221: "g7221",
    G7221c: "g7221c",
    G729: "g729",
    MultiChannelAudio: "multiChannelAudio",
    Muchv2: "muchv2",
    Opus: "opus",
    Satin: "satin",
    SatinFullband: "satinFullband",
    RtAudio8: "rtAudio8",
    RtAudio16: "rtAudio16",
    Silk: "silk",
    SilkNarrow: "silkNarrow",
    SilkWide: "silkWide",
    Siren: "siren",
    XmsRta: "xmsRta",
    UnknownFutureValue: "unknownFutureValue",
};
export const CallTypeObject = {
    Unknown: "unknown",
    GroupCall: "groupCall",
    PeerToPeer: "peerToPeer",
    UnknownFutureValue: "unknownFutureValue",
};
export const ClientPlatformObject = {
    Unknown: "unknown",
    Windows: "windows",
    MacOS: "macOS",
    IOS: "iOS",
    Android: "android",
    Web: "web",
    IpPhone: "ipPhone",
    RoomSystem: "roomSystem",
    SurfaceHub: "surfaceHub",
    HoloLens: "holoLens",
    UnknownFutureValue: "unknownFutureValue",
};
export const FailureStageObject = {
    Unknown: "unknown",
    CallSetup: "callSetup",
    Midcall: "midcall",
    UnknownFutureValue: "unknownFutureValue",
};
export const MediaStreamDirectionObject = {
    CallerToCallee: "callerToCallee",
    CalleeToCaller: "calleeToCaller",
};
export const ModalityObject = {
    Audio: "audio",
    Video: "video",
    VideoBasedScreenSharing: "videoBasedScreenSharing",
    Data: "data",
    ScreenSharing: "screenSharing",
    UnknownFutureValue: "unknownFutureValue",
};
export const NetworkConnectionTypeObject = {
    Unknown: "unknown",
    Wired: "wired",
    Wifi: "wifi",
    Mobile: "mobile",
    Tunnel: "tunnel",
    UnknownFutureValue: "unknownFutureValue",
};
export const NetworkTransportProtocolObject = {
    Unknown: "unknown",
    Udp: "udp",
    Tcp: "tcp",
    UnknownFutureValue: "unknownFutureValue",
};
export const ProductFamilyObject = {
    Unknown: "unknown",
    Teams: "teams",
    SkypeForBusiness: "skypeForBusiness",
    Lync: "lync",
    UnknownFutureValue: "unknownFutureValue",
    AzureCommunicationServices: "azureCommunicationServices",
};
export const PstnCallDurationSourceObject = {
    Microsoft: "microsoft",
    Operator: "operator",
};
export const PstnUserBlockModeObject = {
    Blocked: "blocked",
    Unblocked: "unblocked",
    UnknownFutureValue: "unknownFutureValue",
};
export const ServiceRoleObject = {
    Unknown: "unknown",
    CustomBot: "customBot",
    SkypeForBusinessMicrosoftTeamsGateway: "skypeForBusinessMicrosoftTeamsGateway",
    SkypeForBusinessAudioVideoMcu: "skypeForBusinessAudioVideoMcu",
    SkypeForBusinessApplicationSharingMcu: "skypeForBusinessApplicationSharingMcu",
    SkypeForBusinessCallQueues: "skypeForBusinessCallQueues",
    SkypeForBusinessAutoAttendant: "skypeForBusinessAutoAttendant",
    MediationServer: "mediationServer",
    MediationServerCloudConnectorEdition: "mediationServerCloudConnectorEdition",
    ExchangeUnifiedMessagingService: "exchangeUnifiedMessagingService",
    MediaController: "mediaController",
    ConferencingAnnouncementService: "conferencingAnnouncementService",
    ConferencingAttendant: "conferencingAttendant",
    AudioTeleconferencerController: "audioTeleconferencerController",
    SkypeForBusinessUnifiedCommunicationApplicationPlatform: "skypeForBusinessUnifiedCommunicationApplicationPlatform",
    ResponseGroupServiceAnnouncementService: "responseGroupServiceAnnouncementService",
    Gateway: "gateway",
    SkypeTranslator: "skypeTranslator",
    SkypeForBusinessAttendant: "skypeForBusinessAttendant",
    ResponseGroupService: "responseGroupService",
    Voicemail: "voicemail",
    UnknownFutureValue: "unknownFutureValue",
};
export const UserFeedbackRatingObject = {
    NotRated: "notRated",
    Bad: "bad",
    Poor: "poor",
    Fair: "fair",
    Good: "good",
    Excellent: "excellent",
    UnknownFutureValue: "unknownFutureValue",
};
export const VideoCodecObject = {
    Unknown: "unknown",
    Invalid: "invalid",
    Av1: "av1",
    H263: "h263",
    H264: "h264",
    H264s: "h264s",
    H264uc: "h264uc",
    H265: "h265",
    Rtvc1: "rtvc1",
    RtVideo: "rtVideo",
    Xrtvc1: "xrtvc1",
    UnknownFutureValue: "unknownFutureValue",
};
export const WifiBandObject = {
    Unknown: "unknown",
    Frequency24GHz: "frequency24GHz",
    Frequency50GHz: "frequency50GHz",
    Frequency60GHz: "frequency60GHz",
    UnknownFutureValue: "unknownFutureValue",
};
export const WifiRadioTypeObject = {
    Unknown: "unknown",
    Wifi80211a: "wifi80211a",
    Wifi80211b: "wifi80211b",
    Wifi80211g: "wifi80211g",
    Wifi80211n: "wifi80211n",
    Wifi80211ac: "wifi80211ac",
    Wifi80211ax: "wifi80211ax",
    UnknownFutureValue: "unknownFutureValue",
};
/* tslint:enable */
/* eslint-enable */
//# sourceMappingURL=index.js.map