/* tslint:disable */
/* eslint-disable */
// Generated by Microsoft Kiota
// @ts-ignore
import { createDirectoryObjectFromDiscriminatorValue, deserializeIntoBaseCollectionPaginationCountResponse, deserializeIntoEntity, serializeBaseCollectionPaginationCountResponse, serializeDirectoryObject, serializeEntity } 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 {AlertCollectionResponse}
 */
// @ts-ignore
export function createAlertCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoAlertCollectionResponse;
}
/**
 * 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 {AlertConfigurationCollectionResponse}
 */
// @ts-ignore
export function createAlertConfigurationCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoAlertConfigurationCollectionResponse;
}
/**
 * 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 {AlertConfiguration}
 */
// @ts-ignore
export function createAlertConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoAlertConfiguration;
}
/**
 * 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 {Alert}
 */
// @ts-ignore
export function createAlertFromDiscriminatorValue(parseNode) {
    return deserializeIntoAlert;
}
/**
 * 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 {ApplicationImpactSummary}
 */
// @ts-ignore
export function createApplicationImpactSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoApplicationImpactSummary;
}
/**
 * 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 {DeviceImpactSummary}
 */
// @ts-ignore
export function createDeviceImpactSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoDeviceImpactSummary;
}
/**
 * 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 {Dictionary}
 */
// @ts-ignore
export function createDictionaryFromDiscriminatorValue(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.healthMonitoring.documentation":
                    return deserializeIntoDocumentation;
                case "#microsoft.graph.healthMonitoring.healthMonitoringDictionary":
                    return deserializeIntoHealthMonitoringDictionary;
                case "#microsoft.graph.healthMonitoring.signals":
                    return deserializeIntoSignals;
                case "#microsoft.graph.healthMonitoring.supportingData":
                    return deserializeIntoSupportingData;
            }
        }
    }
    return deserializeIntoDictionary;
}
/**
 * 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 {DirectoryObjectImpactSummary}
 */
// @ts-ignore
export function createDirectoryObjectImpactSummaryFromDiscriminatorValue(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.healthMonitoring.applicationImpactSummary":
                    return deserializeIntoApplicationImpactSummary;
                case "#microsoft.graph.healthMonitoring.deviceImpactSummary":
                    return deserializeIntoDeviceImpactSummary;
                case "#microsoft.graph.healthMonitoring.groupImpactSummary":
                    return deserializeIntoGroupImpactSummary;
                case "#microsoft.graph.healthMonitoring.servicePrincipalImpactSummary":
                    return deserializeIntoServicePrincipalImpactSummary;
                case "#microsoft.graph.healthMonitoring.userImpactSummary":
                    return deserializeIntoUserImpactSummary;
            }
        }
    }
    return deserializeIntoDirectoryObjectImpactSummary;
}
/**
 * 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 {Documentation}
 */
// @ts-ignore
export function createDocumentationFromDiscriminatorValue(parseNode) {
    return deserializeIntoDocumentation;
}
/**
 * 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 {EmailNotificationConfiguration}
 */
// @ts-ignore
export function createEmailNotificationConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoEmailNotificationConfiguration;
}
/**
 * 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 {Enrichment}
 */
// @ts-ignore
export function createEnrichmentFromDiscriminatorValue(parseNode) {
    return deserializeIntoEnrichment;
}
/**
 * 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 {GroupImpactSummary}
 */
// @ts-ignore
export function createGroupImpactSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoGroupImpactSummary;
}
/**
 * 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 {HealthMonitoringDictionary}
 */
// @ts-ignore
export function createHealthMonitoringDictionaryFromDiscriminatorValue(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.healthMonitoring.documentation":
                    return deserializeIntoDocumentation;
                case "#microsoft.graph.healthMonitoring.signals":
                    return deserializeIntoSignals;
                case "#microsoft.graph.healthMonitoring.supportingData":
                    return deserializeIntoSupportingData;
            }
        }
    }
    return deserializeIntoHealthMonitoringDictionary;
}
/**
 * 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 {HealthMonitoringRoot}
 */
// @ts-ignore
export function createHealthMonitoringRootFromDiscriminatorValue(parseNode) {
    return deserializeIntoHealthMonitoringRoot;
}
/**
 * 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 {ResourceImpactSummary}
 */
// @ts-ignore
export function createResourceImpactSummaryFromDiscriminatorValue(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.healthMonitoring.applicationImpactSummary":
                    return deserializeIntoApplicationImpactSummary;
                case "#microsoft.graph.healthMonitoring.deviceImpactSummary":
                    return deserializeIntoDeviceImpactSummary;
                case "#microsoft.graph.healthMonitoring.directoryObjectImpactSummary":
                    return deserializeIntoDirectoryObjectImpactSummary;
                case "#microsoft.graph.healthMonitoring.groupImpactSummary":
                    return deserializeIntoGroupImpactSummary;
                case "#microsoft.graph.healthMonitoring.servicePrincipalImpactSummary":
                    return deserializeIntoServicePrincipalImpactSummary;
                case "#microsoft.graph.healthMonitoring.userImpactSummary":
                    return deserializeIntoUserImpactSummary;
            }
        }
    }
    return deserializeIntoResourceImpactSummary;
}
/**
 * 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 {ServicePrincipalImpactSummary}
 */
// @ts-ignore
export function createServicePrincipalImpactSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoServicePrincipalImpactSummary;
}
/**
 * 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 {Signals}
 */
// @ts-ignore
export function createSignalsFromDiscriminatorValue(parseNode) {
    return deserializeIntoSignals;
}
/**
 * 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 {SupportingData}
 */
// @ts-ignore
export function createSupportingDataFromDiscriminatorValue(parseNode) {
    return deserializeIntoSupportingData;
}
/**
 * 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 {UserImpactSummary}
 */
// @ts-ignore
export function createUserImpactSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserImpactSummary;
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlert(alert = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(alert)), { "alertType": n => { alert.alertType = n.getEnumValue(AlertTypeObject); }, "category": n => { alert.category = n.getEnumValue(CategoryObject); }, "createdDateTime": n => { alert.createdDateTime = n.getDateValue(); }, "documentation": n => { alert.documentation = n.getObjectValue(createDocumentationFromDiscriminatorValue); }, "enrichment": n => { alert.enrichment = n.getObjectValue(createEnrichmentFromDiscriminatorValue); }, "scenario": n => { alert.scenario = n.getEnumValue(ScenarioObject); }, "signals": n => { alert.signals = n.getObjectValue(createSignalsFromDiscriminatorValue); }, "state": n => { alert.state = n.getEnumValue(AlertStateObject); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlertCollectionResponse(alertCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(alertCollectionResponse)), { "value": n => { alertCollectionResponse.value = n.getCollectionOfObjectValues(createAlertFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlertConfiguration(alertConfiguration = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(alertConfiguration)), { "emailNotificationConfigurations": n => { alertConfiguration.emailNotificationConfigurations = n.getCollectionOfObjectValues(createEmailNotificationConfigurationFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlertConfigurationCollectionResponse(alertConfigurationCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(alertConfigurationCollectionResponse)), { "value": n => { alertConfigurationCollectionResponse.value = n.getCollectionOfObjectValues(createAlertConfigurationFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoApplicationImpactSummary(applicationImpactSummary = {}) {
    return Object.assign({}, deserializeIntoDirectoryObjectImpactSummary(applicationImpactSummary));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDeviceImpactSummary(deviceImpactSummary = {}) {
    return Object.assign({}, deserializeIntoDirectoryObjectImpactSummary(deviceImpactSummary));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDictionary(dictionary = {}) {
    return {
        "backingStoreEnabled": n => { dictionary.backingStoreEnabled = true; },
        "@odata.type": n => { dictionary.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDirectoryObjectImpactSummary(directoryObjectImpactSummary = {}) {
    return Object.assign(Object.assign({}, deserializeIntoResourceImpactSummary(directoryObjectImpactSummary)), { "resourceSampling": n => { directoryObjectImpactSummary.resourceSampling = n.getCollectionOfObjectValues(createDirectoryObjectFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDocumentation(documentation = {}) {
    return Object.assign({}, deserializeIntoHealthMonitoringDictionary(documentation));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoEmailNotificationConfiguration(emailNotificationConfiguration = {}) {
    return {
        "backingStoreEnabled": n => { emailNotificationConfiguration.backingStoreEnabled = true; },
        "groupId": n => { emailNotificationConfiguration.groupId = n.getStringValue(); },
        "isEnabled": n => { emailNotificationConfiguration.isEnabled = n.getBooleanValue(); },
        "@odata.type": n => { emailNotificationConfiguration.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoEnrichment(enrichment = {}) {
    return {
        "backingStoreEnabled": n => { enrichment.backingStoreEnabled = true; },
        "impacts": n => { enrichment.impacts = n.getCollectionOfObjectValues(createResourceImpactSummaryFromDiscriminatorValue); },
        "@odata.type": n => { enrichment.odataType = n.getStringValue(); },
        "state": n => { enrichment.state = n.getEnumValue(EnrichmentStateObject); },
        "supportingData": n => { enrichment.supportingData = n.getObjectValue(createSupportingDataFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGroupImpactSummary(groupImpactSummary = {}) {
    return Object.assign({}, deserializeIntoDirectoryObjectImpactSummary(groupImpactSummary));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoHealthMonitoringDictionary(healthMonitoringDictionary = {}) {
    return Object.assign({}, deserializeIntoDictionary(healthMonitoringDictionary));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoHealthMonitoringRoot(healthMonitoringRoot = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(healthMonitoringRoot)), { "alertConfigurations": n => { healthMonitoringRoot.alertConfigurations = n.getCollectionOfObjectValues(createAlertConfigurationFromDiscriminatorValue); }, "alerts": n => { healthMonitoringRoot.alerts = n.getCollectionOfObjectValues(createAlertFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoResourceImpactSummary(resourceImpactSummary = {}) {
    return {
        "backingStoreEnabled": n => { resourceImpactSummary.backingStoreEnabled = true; },
        "impactedCount": n => { resourceImpactSummary.impactedCount = n.getStringValue(); },
        "impactedCountLimitExceeded": n => { resourceImpactSummary.impactedCountLimitExceeded = n.getBooleanValue(); },
        "@odata.type": n => { resourceImpactSummary.odataType = n.getStringValue(); },
        "resourceType": n => { resourceImpactSummary.resourceType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoServicePrincipalImpactSummary(servicePrincipalImpactSummary = {}) {
    return Object.assign({}, deserializeIntoDirectoryObjectImpactSummary(servicePrincipalImpactSummary));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSignals(signals = {}) {
    return Object.assign({}, deserializeIntoHealthMonitoringDictionary(signals));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSupportingData(supportingData = {}) {
    return Object.assign({}, deserializeIntoHealthMonitoringDictionary(supportingData));
}
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUserImpactSummary(userImpactSummary = {}) {
    return Object.assign({}, deserializeIntoDirectoryObjectImpactSummary(userImpactSummary));
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlert(writer, alert = {}) {
    if (alert) {
        serializeEntity(writer, alert);
        writer.writeEnumValue("alertType", alert.alertType);
        writer.writeEnumValue("category", alert.category);
        writer.writeDateValue("createdDateTime", alert.createdDateTime);
        writer.writeObjectValue("documentation", alert.documentation, serializeDocumentation);
        writer.writeObjectValue("enrichment", alert.enrichment, serializeEnrichment);
        writer.writeEnumValue("scenario", alert.scenario);
        writer.writeObjectValue("signals", alert.signals, serializeSignals);
        writer.writeEnumValue("state", alert.state);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlertCollectionResponse(writer, alertCollectionResponse = {}) {
    if (alertCollectionResponse) {
        serializeBaseCollectionPaginationCountResponse(writer, alertCollectionResponse);
        writer.writeCollectionOfObjectValues("value", alertCollectionResponse.value, serializeAlert);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlertConfiguration(writer, alertConfiguration = {}) {
    if (alertConfiguration) {
        serializeEntity(writer, alertConfiguration);
        writer.writeCollectionOfObjectValues("emailNotificationConfigurations", alertConfiguration.emailNotificationConfigurations, serializeEmailNotificationConfiguration);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlertConfigurationCollectionResponse(writer, alertConfigurationCollectionResponse = {}) {
    if (alertConfigurationCollectionResponse) {
        serializeBaseCollectionPaginationCountResponse(writer, alertConfigurationCollectionResponse);
        writer.writeCollectionOfObjectValues("value", alertConfigurationCollectionResponse.value, serializeAlertConfiguration);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeApplicationImpactSummary(writer, applicationImpactSummary = {}) {
    if (applicationImpactSummary) {
        serializeDirectoryObjectImpactSummary(writer, applicationImpactSummary);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDeviceImpactSummary(writer, deviceImpactSummary = {}) {
    if (deviceImpactSummary) {
        serializeDirectoryObjectImpactSummary(writer, deviceImpactSummary);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDictionary(writer, dictionary = {}) {
    if (dictionary) {
        writer.writeStringValue("@odata.type", dictionary.odataType);
        writer.writeAdditionalData(dictionary.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDirectoryObjectImpactSummary(writer, directoryObjectImpactSummary = {}) {
    if (directoryObjectImpactSummary) {
        serializeResourceImpactSummary(writer, directoryObjectImpactSummary);
        writer.writeCollectionOfObjectValues("resourceSampling", directoryObjectImpactSummary.resourceSampling, serializeDirectoryObject);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDocumentation(writer, documentation = {}) {
    if (documentation) {
        serializeHealthMonitoringDictionary(writer, documentation);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeEmailNotificationConfiguration(writer, emailNotificationConfiguration = {}) {
    if (emailNotificationConfiguration) {
        writer.writeStringValue("groupId", emailNotificationConfiguration.groupId);
        writer.writeBooleanValue("isEnabled", emailNotificationConfiguration.isEnabled);
        writer.writeStringValue("@odata.type", emailNotificationConfiguration.odataType);
        writer.writeAdditionalData(emailNotificationConfiguration.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeEnrichment(writer, enrichment = {}) {
    if (enrichment) {
        writer.writeCollectionOfObjectValues("impacts", enrichment.impacts, serializeResourceImpactSummary);
        writer.writeStringValue("@odata.type", enrichment.odataType);
        writer.writeEnumValue("state", enrichment.state);
        writer.writeObjectValue("supportingData", enrichment.supportingData, serializeSupportingData);
        writer.writeAdditionalData(enrichment.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeGroupImpactSummary(writer, groupImpactSummary = {}) {
    if (groupImpactSummary) {
        serializeDirectoryObjectImpactSummary(writer, groupImpactSummary);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeHealthMonitoringDictionary(writer, healthMonitoringDictionary = {}) {
    if (healthMonitoringDictionary) {
        serializeDictionary(writer, healthMonitoringDictionary);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeHealthMonitoringRoot(writer, healthMonitoringRoot = {}) {
    if (healthMonitoringRoot) {
        serializeEntity(writer, healthMonitoringRoot);
        writer.writeCollectionOfObjectValues("alertConfigurations", healthMonitoringRoot.alertConfigurations, serializeAlertConfiguration);
        writer.writeCollectionOfObjectValues("alerts", healthMonitoringRoot.alerts, serializeAlert);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeResourceImpactSummary(writer, resourceImpactSummary = {}) {
    if (resourceImpactSummary) {
        writer.writeStringValue("impactedCount", resourceImpactSummary.impactedCount);
        writer.writeBooleanValue("impactedCountLimitExceeded", resourceImpactSummary.impactedCountLimitExceeded);
        writer.writeStringValue("@odata.type", resourceImpactSummary.odataType);
        writer.writeStringValue("resourceType", resourceImpactSummary.resourceType);
        writer.writeAdditionalData(resourceImpactSummary.additionalData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeServicePrincipalImpactSummary(writer, servicePrincipalImpactSummary = {}) {
    if (servicePrincipalImpactSummary) {
        serializeDirectoryObjectImpactSummary(writer, servicePrincipalImpactSummary);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSignals(writer, signals = {}) {
    if (signals) {
        serializeHealthMonitoringDictionary(writer, signals);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSupportingData(writer, supportingData = {}) {
    if (supportingData) {
        serializeHealthMonitoringDictionary(writer, supportingData);
    }
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUserImpactSummary(writer, userImpactSummary = {}) {
    if (userImpactSummary) {
        serializeDirectoryObjectImpactSummary(writer, userImpactSummary);
    }
}
export const AlertStateObject = {
    Active: "active",
    Resolved: "resolved",
    UnknownFutureValue: "unknownFutureValue",
};
export const AlertTypeObject = {
    Unknown: "unknown",
    MfaSignInFailure: "mfaSignInFailure",
    ManagedDeviceSignInFailure: "managedDeviceSignInFailure",
    CompliantDeviceSignInFailure: "compliantDeviceSignInFailure",
    UnknownFutureValue: "unknownFutureValue",
    ConditionalAccessBlockedSignIn: "conditionalAccessBlockedSignIn",
};
export const CategoryObject = {
    Unknown: "unknown",
    Authentication: "authentication",
    UnknownFutureValue: "unknownFutureValue",
};
export const EnrichmentStateObject = {
    None: "none",
    InProgress: "inProgress",
    Enriched: "enriched",
    UnknownFutureValue: "unknownFutureValue",
};
export const ScenarioObject = {
    Unknown: "unknown",
    Mfa: "mfa",
    Devices: "devices",
    UnknownFutureValue: "unknownFutureValue",
    ConditionalAccess: "conditionalAccess",
};
/* tslint:enable */
/* eslint-enable */
//# sourceMappingURL=index.js.map