UNPKG

@microsoft/msgraph-beta-sdk

Version:
6,778 lines 355 kB
/* tslint:disable */
/* eslint-disable */
// Generated by Microsoft Kiota
// @ts-ignore
import { createDeviceFromDiscriminatorValue as I35341c37cb1156f9816804144a0da7ca28a5bc5a466a4a6c4dd18a73c9fef2f1, createServicePrincipalFromDiscriminatorValue, createUserFromDiscriminatorValue as I76468935476edf00ba62610ba93d13d7194a94fc3b9375d1eacaf60b72b6323e, deserializeIntoBaseCollectionPaginationCountResponse, deserializeIntoDictionary, deserializeIntoEntity, serializeBaseCollectionPaginationCountResponse, serializeDevice as I93801fe1d0700e2dfbaabaac8a107eaad07c485b973484cdebd0254423e093c4, serializeDictionary, serializeEntity, serializeServicePrincipal, serializeUser as I52fb59bcf4aad10419ab5ac07e13466b759ff69b47806ecf063de624d08c4da3 } 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 {AlertAction}
 */
// @ts-ignore
export function createAlertActionFromDiscriminatorValue(parseNode) {
    return deserializeIntoAlertAction;
}
/**
 * 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 {AlertFrequencyPoint}
 */
// @ts-ignore
export function createAlertFrequencyPointFromDiscriminatorValue(parseNode) {
    return deserializeIntoAlertFrequencyPoint;
}
/**
 * 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 {AlertSeveritySummary}
 */
// @ts-ignore
export function createAlertSeveritySummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoAlertSeveritySummary;
}
/**
 * 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 {AlertSummary}
 */
// @ts-ignore
export function createAlertSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoAlertSummary;
}
/**
 * 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 {ApplicationAnalyticsUsagePoint}
 */
// @ts-ignore
export function createApplicationAnalyticsUsagePointFromDiscriminatorValue(parseNode) {
    return deserializeIntoApplicationAnalyticsUsagePoint;
}
/**
 * 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 {ApplicationSnapshot}
 */
// @ts-ignore
export function createApplicationSnapshotFromDiscriminatorValue(parseNode) {
    return deserializeIntoApplicationSnapshot;
}
/**
 * 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 {AssociatedBranch}
 */
// @ts-ignore
export function createAssociatedBranchFromDiscriminatorValue(parseNode) {
    return deserializeIntoAssociatedBranch;
}
/**
 * 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 {Association}
 */
// @ts-ignore
export function createAssociationFromDiscriminatorValue(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.networkaccess.associatedBranch":
                    return deserializeIntoAssociatedBranch;
            }
        }
    }
    return deserializeIntoAssociation;
}
/**
 * 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 {BaseEntity}
 */
// @ts-ignore
export function createBaseEntityFromDiscriminatorValue(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.networkaccess.filteringProfile":
                    return deserializeIntoFilteringProfile;
                case "#microsoft.graph.networkaccess.forwardingProfile":
                    return deserializeIntoForwardingProfile;
                case "#microsoft.graph.networkaccess.forwardingProfileBase":
                    return deserializeIntoForwardingProfileBase;
                case "#microsoft.graph.networkaccess.profile":
                    return deserializeIntoProfile;
                case "#microsoft.graph.networkaccess.remoteNetwork":
                    return deserializeIntoRemoteNetwork;
            }
        }
    }
    return deserializeIntoBaseEntity;
}
/**
 * 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 {BgpConfiguration}
 */
// @ts-ignore
export function createBgpConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoBgpConfiguration;
}
/**
 * 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 {BlockPageConfigurationBase}
 */
// @ts-ignore
export function createBlockPageConfigurationBaseFromDiscriminatorValue(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.networkaccess.markdownBlockMessageConfiguration":
                    return deserializeIntoMarkdownBlockMessageConfiguration;
            }
        }
    }
    return deserializeIntoBlockPageConfigurationBase;
}
/**
 * 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 {BranchConnectivityConfiguration}
 */
// @ts-ignore
export function createBranchConnectivityConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoBranchConnectivityConfiguration;
}
/**
 * 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 {BranchSiteCollectionResponse}
 */
// @ts-ignore
export function createBranchSiteCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoBranchSiteCollectionResponse;
}
/**
 * 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 {BranchSite}
 */
// @ts-ignore
export function createBranchSiteFromDiscriminatorValue(parseNode) {
    return deserializeIntoBranchSite;
}
/**
 * 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 {CloudApplicationMetadata}
 */
// @ts-ignore
export function createCloudApplicationMetadataFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudApplicationMetadata;
}
/**
 * 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 {CloudApplicationReport}
 */
// @ts-ignore
export function createCloudApplicationReportFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudApplicationReport;
}
/**
 * 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 {CloudFirewallDestinationAddress}
 */
// @ts-ignore
export function createCloudFirewallDestinationAddressFromDiscriminatorValue(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.networkaccess.cloudFirewallDestinationFqdnAddress":
                    return deserializeIntoCloudFirewallDestinationFqdnAddress;
                case "#microsoft.graph.networkaccess.cloudFirewallDestinationIpAddress":
                    return deserializeIntoCloudFirewallDestinationIpAddress;
            }
        }
    }
    return deserializeIntoCloudFirewallDestinationAddress;
}
/**
 * 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 {CloudFirewallDestinationFqdnAddress}
 */
// @ts-ignore
export function createCloudFirewallDestinationFqdnAddressFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallDestinationFqdnAddress;
}
/**
 * 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 {CloudFirewallDestinationIpAddress}
 */
// @ts-ignore
export function createCloudFirewallDestinationIpAddressFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallDestinationIpAddress;
}
/**
 * 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 {CloudFirewallDestinationMatching}
 */
// @ts-ignore
export function createCloudFirewallDestinationMatchingFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallDestinationMatching;
}
/**
 * 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 {CloudFirewallMatchingConditions}
 */
// @ts-ignore
export function createCloudFirewallMatchingConditionsFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallMatchingConditions;
}
/**
 * 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 {CloudFirewallPolicyCollectionResponse}
 */
// @ts-ignore
export function createCloudFirewallPolicyCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallPolicyCollectionResponse;
}
/**
 * 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 {CloudFirewallPolicy}
 */
// @ts-ignore
export function createCloudFirewallPolicyFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallPolicy;
}
/**
 * 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 {CloudFirewallPolicyLink}
 */
// @ts-ignore
export function createCloudFirewallPolicyLinkFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallPolicyLink;
}
/**
 * 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 {CloudFirewallPolicySettings}
 */
// @ts-ignore
export function createCloudFirewallPolicySettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallPolicySettings;
}
/**
 * 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 {CloudFirewallRule}
 */
// @ts-ignore
export function createCloudFirewallRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallRule;
}
/**
 * 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 {CloudFirewallRuleSettings}
 */
// @ts-ignore
export function createCloudFirewallRuleSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallRuleSettings;
}
/**
 * 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 {CloudFirewallSourceAddress}
 */
// @ts-ignore
export function createCloudFirewallSourceAddressFromDiscriminatorValue(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.networkaccess.cloudFirewallSourceIpAddress":
                    return deserializeIntoCloudFirewallSourceIpAddress;
            }
        }
    }
    return deserializeIntoCloudFirewallSourceAddress;
}
/**
 * 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 {CloudFirewallSourceIpAddress}
 */
// @ts-ignore
export function createCloudFirewallSourceIpAddressFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallSourceIpAddress;
}
/**
 * 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 {CloudFirewallSourceMatching}
 */
// @ts-ignore
export function createCloudFirewallSourceMatchingFromDiscriminatorValue(parseNode) {
    return deserializeIntoCloudFirewallSourceMatching;
}
/**
 * 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 {ConditionalAccessPolicyCollectionResponse}
 */
// @ts-ignore
export function createConditionalAccessPolicyCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoConditionalAccessPolicyCollectionResponse;
}
/**
 * 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 {ConditionalAccessPolicy}
 */
// @ts-ignore
export function createConditionalAccessPolicyFromDiscriminatorValue(parseNode) {
    return deserializeIntoConditionalAccessPolicy;
}
/**
 * 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 {ConditionalAccessSettings}
 */
// @ts-ignore
export function createConditionalAccessSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoConditionalAccessSettings;
}
/**
 * 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 {ConnectionCollectionResponse}
 */
// @ts-ignore
export function createConnectionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoConnectionCollectionResponse;
}
/**
 * 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 {Connection}
 */
// @ts-ignore
export function createConnectionFromDiscriminatorValue(parseNode) {
    return deserializeIntoConnection;
}
/**
 * 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 {ConnectionSummary}
 */
// @ts-ignore
export function createConnectionSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoConnectionSummary;
}
/**
 * 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 {ConnectivityConfigurationLinkCollectionResponse}
 */
// @ts-ignore
export function createConnectivityConfigurationLinkCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoConnectivityConfigurationLinkCollectionResponse;
}
/**
 * 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 {ConnectivityConfigurationLink}
 */
// @ts-ignore
export function createConnectivityConfigurationLinkFromDiscriminatorValue(parseNode) {
    return deserializeIntoConnectivityConfigurationLink;
}
/**
 * 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 {Connectivity}
 */
// @ts-ignore
export function createConnectivityFromDiscriminatorValue(parseNode) {
    return deserializeIntoConnectivity;
}
/**
 * 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 {CrossTenantAccess}
 */
// @ts-ignore
export function createCrossTenantAccessFromDiscriminatorValue(parseNode) {
    return deserializeIntoCrossTenantAccess;
}
/**
 * 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 {CrossTenantAccessSettings}
 */
// @ts-ignore
export function createCrossTenantAccessSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoCrossTenantAccessSettings;
}
/**
 * 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 {CrossTenantSummary}
 */
// @ts-ignore
export function createCrossTenantSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoCrossTenantSummary;
}
/**
 * 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 {CustomBlockPage}
 */
// @ts-ignore
export function createCustomBlockPageFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustomBlockPage;
}
/**
 * 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 {Destination}
 */
// @ts-ignore
export function createDestinationFromDiscriminatorValue(parseNode) {
    return deserializeIntoDestination;
}
/**
 * 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 {DestinationSummary}
 */
// @ts-ignore
export function createDestinationSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoDestinationSummary;
}
/**
 * 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 {Device}
 */
// @ts-ignore
export function createDeviceFromDiscriminatorValue(parseNode) {
    return deserializeIntoDevice;
}
/**
 * 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 {DeviceLinkCollectionResponse}
 */
// @ts-ignore
export function createDeviceLinkCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoDeviceLinkCollectionResponse;
}
/**
 * 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 {DeviceLink}
 */
// @ts-ignore
export function createDeviceLinkFromDiscriminatorValue(parseNode) {
    return deserializeIntoDeviceLink;
}
/**
 * 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 {DeviceUsageSummary}
 */
// @ts-ignore
export function createDeviceUsageSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoDeviceUsageSummary;
}
/**
 * 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 {DiscoveredApplicationSegmentReport}
 */
// @ts-ignore
export function createDiscoveredApplicationSegmentReportFromDiscriminatorValue(parseNode) {
    return deserializeIntoDiscoveredApplicationSegmentReport;
}
/**
 * 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 {EnterpriseApplicationReport}
 */
// @ts-ignore
export function createEnterpriseApplicationReportFromDiscriminatorValue(parseNode) {
    return deserializeIntoEnterpriseApplicationReport;
}
/**
 * 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 {EntitiesSummary}
 */
// @ts-ignore
export function createEntitiesSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoEntitiesSummary;
}
/**
 * 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 {ExtendedProperties}
 */
// @ts-ignore
export function createExtendedPropertiesFromDiscriminatorValue(parseNode) {
    return deserializeIntoExtendedProperties;
}
/**
 * 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 {ExternalCertificateAuthorityCertificateCollectionResponse}
 */
// @ts-ignore
export function createExternalCertificateAuthorityCertificateCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoExternalCertificateAuthorityCertificateCollectionResponse;
}
/**
 * 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 {ExternalCertificateAuthorityCertificate}
 */
// @ts-ignore
export function createExternalCertificateAuthorityCertificateFromDiscriminatorValue(parseNode) {
    return deserializeIntoExternalCertificateAuthorityCertificate;
}
/**
 * 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 {FilteringPolicyCollectionResponse}
 */
// @ts-ignore
export function createFilteringPolicyCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoFilteringPolicyCollectionResponse;
}
/**
 * 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 {FilteringPolicy}
 */
// @ts-ignore
export function createFilteringPolicyFromDiscriminatorValue(parseNode) {
    return deserializeIntoFilteringPolicy;
}
/**
 * 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 {FilteringPolicyLink}
 */
// @ts-ignore
export function createFilteringPolicyLinkFromDiscriminatorValue(parseNode) {
    return deserializeIntoFilteringPolicyLink;
}
/**
 * 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 {FilteringProfileCollectionResponse}
 */
// @ts-ignore
export function createFilteringProfileCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoFilteringProfileCollectionResponse;
}
/**
 * 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 {FilteringProfile}
 */
// @ts-ignore
export function createFilteringProfileFromDiscriminatorValue(parseNode) {
    return deserializeIntoFilteringProfile;
}
/**
 * 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 {FilteringRule}
 */
// @ts-ignore
export function createFilteringRuleFromDiscriminatorValue(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.networkaccess.fqdnFilteringRule":
                    return deserializeIntoFqdnFilteringRule;
                case "#microsoft.graph.networkaccess.urlDestinationFilteringRule":
                    return deserializeIntoUrlDestinationFilteringRule;
                case "#microsoft.graph.networkaccess.webCategoryFilteringRule":
                    return deserializeIntoWebCategoryFilteringRule;
            }
        }
    }
    return deserializeIntoFilteringRule;
}
/**
 * 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 {ForwardingOptions}
 */
// @ts-ignore
export function createForwardingOptionsFromDiscriminatorValue(parseNode) {
    return deserializeIntoForwardingOptions;
}
/**
 * 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 {ForwardingPolicyCollectionResponse}
 */
// @ts-ignore
export function createForwardingPolicyCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoForwardingPolicyCollectionResponse;
}
/**
 * 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 {ForwardingPolicy}
 */
// @ts-ignore
export function createForwardingPolicyFromDiscriminatorValue(parseNode) {
    return deserializeIntoForwardingPolicy;
}
/**
 * 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 {ForwardingPolicyLink}
 */
// @ts-ignore
export function createForwardingPolicyLinkFromDiscriminatorValue(parseNode) {
    return deserializeIntoForwardingPolicyLink;
}
/**
 * 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 {ForwardingProfileBase}
 */
// @ts-ignore
export function createForwardingProfileBaseFromDiscriminatorValue(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.networkaccess.forwardingProfile":
                    return deserializeIntoForwardingProfile;
            }
        }
    }
    return deserializeIntoForwardingProfileBase;
}
/**
 * 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 {ForwardingProfileCollectionResponse}
 */
// @ts-ignore
export function createForwardingProfileCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoForwardingProfileCollectionResponse;
}
/**
 * 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 {ForwardingProfile}
 */
// @ts-ignore
export function createForwardingProfileFromDiscriminatorValue(parseNode) {
    return deserializeIntoForwardingProfile;
}
/**
 * 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 {ForwardingRule}
 */
// @ts-ignore
export function createForwardingRuleFromDiscriminatorValue(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.networkaccess.internetAccessForwardingRule":
                    return deserializeIntoInternetAccessForwardingRule;
                case "#microsoft.graph.networkaccess.m365ForwardingRule":
                    return deserializeIntoM365ForwardingRule;
                case "#microsoft.graph.networkaccess.privateAccessForwardingRule":
                    return deserializeIntoPrivateAccessForwardingRule;
            }
        }
    }
    return deserializeIntoForwardingRule;
}
/**
 * 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 {FqdnFilteringRule}
 */
// @ts-ignore
export function createFqdnFilteringRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoFqdnFilteringRule;
}
/**
 * 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 {Fqdn}
 */
// @ts-ignore
export function createFqdnFromDiscriminatorValue(parseNode) {
    return deserializeIntoFqdn;
}
/**
 * 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 {GenerativeAIInsightCollectionResponse}
 */
// @ts-ignore
export function createGenerativeAIInsightCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoGenerativeAIInsightCollectionResponse;
}
/**
 * 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 {GenerativeAIInsight}
 */
// @ts-ignore
export function createGenerativeAIInsightFromDiscriminatorValue(parseNode) {
    return deserializeIntoGenerativeAIInsight;
}
/**
 * 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 {Headers}
 */
// @ts-ignore
export function createHeadersFromDiscriminatorValue(parseNode) {
    return deserializeIntoHeaders;
}
/**
 * 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 {InternetAccessForwardingRule}
 */
// @ts-ignore
export function createInternetAccessForwardingRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoInternetAccessForwardingRule;
}
/**
 * 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 {IpAddress}
 */
// @ts-ignore
export function createIpAddressFromDiscriminatorValue(parseNode) {
    return deserializeIntoIpAddress;
}
/**
 * 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 {IpDestination}
 */
// @ts-ignore
export function createIpDestinationFromDiscriminatorValue(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.networkaccess.ipAddress":
                    return deserializeIntoIpAddress;
                case "#microsoft.graph.networkaccess.ipRange":
                    return deserializeIntoIpRange;
                case "#microsoft.graph.networkaccess.ipSubnet":
                    return deserializeIntoIpSubnet;
            }
        }
    }
    return deserializeIntoIpDestination;
}
/**
 * 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 {IpRange}
 */
// @ts-ignore
export function createIpRangeFromDiscriminatorValue(parseNode) {
    return deserializeIntoIpRange;
}
/**
 * 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 {IpSubnet}
 */
// @ts-ignore
export function createIpSubnetFromDiscriminatorValue(parseNode) {
    return deserializeIntoIpSubnet;
}
/**
 * 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 {LocalConnectivityConfiguration}
 */
// @ts-ignore
export function createLocalConnectivityConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoLocalConnectivityConfiguration;
}
/**
 * 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 {Logs}
 */
// @ts-ignore
export function createLogsFromDiscriminatorValue(parseNode) {
    return deserializeIntoLogs;
}
/**
 * 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 {M365ForwardingRule}
 */
// @ts-ignore
export function createM365ForwardingRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoM365ForwardingRule;
}
/**
 * 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 {MarkdownBlockMessageConfiguration}
 */
// @ts-ignore
export function createMarkdownBlockMessageConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoMarkdownBlockMessageConfiguration;
}
/**
 * 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 {NetworkAccessRoot}
 */
// @ts-ignore
export function createNetworkAccessRootFromDiscriminatorValue(parseNode) {
    return deserializeIntoNetworkAccessRoot;
}
/**
 * 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 {NetworkAccessTrafficCollectionResponse}
 */
// @ts-ignore
export function createNetworkAccessTrafficCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoNetworkAccessTrafficCollectionResponse;
}
/**
 * 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 {NetworkAccessTraffic}
 */
// @ts-ignore
export function createNetworkAccessTrafficFromDiscriminatorValue(parseNode) {
    return deserializeIntoNetworkAccessTraffic;
}
/**
 * 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 {PeerConnectivityConfiguration}
 */
// @ts-ignore
export function createPeerConnectivityConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoPeerConnectivityConfiguration;
}
/**
 * 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 {Policy}
 */
// @ts-ignore
export function createPolicyFromDiscriminatorValue(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.networkaccess.cloudFirewallPolicy":
                    return deserializeIntoCloudFirewallPolicy;
                case "#microsoft.graph.networkaccess.filteringPolicy":
                    return deserializeIntoFilteringPolicy;
                case "#microsoft.graph.networkaccess.forwardingPolicy":
                    return deserializeIntoForwardingPolicy;
                case "#microsoft.graph.networkaccess.threatIntelligencePolicy":
                    return deserializeIntoThreatIntelligencePolicy;
                case "#microsoft.graph.networkaccess.tlsInspectionPolicy":
                    return deserializeIntoTlsInspectionPolicy;
            }
        }
    }
    return deserializeIntoPolicy;
}
/**
 * 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 {PolicyLinkCollectionResponse}
 */
// @ts-ignore
export function createPolicyLinkCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoPolicyLinkCollectionResponse;
}
/**
 * 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 {PolicyLink}
 */
// @ts-ignore
export function createPolicyLinkFromDiscriminatorValue(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.networkaccess.cloudFirewallPolicyLink":
                    return deserializeIntoCloudFirewallPolicyLink;
                case "#microsoft.graph.networkaccess.filteringPolicyLink":
                    return deserializeIntoFilteringPolicyLink;
                case "#microsoft.graph.networkaccess.forwardingPolicyLink":
                    return deserializeIntoForwardingPolicyLink;
                case "#microsoft.graph.networkaccess.threatIntelligencePolicyLink":
                    return deserializeIntoThreatIntelligencePolicyLink;
                case "#microsoft.graph.networkaccess.tlsInspectionPolicyLink":
                    return deserializeIntoTlsInspectionPolicyLink;
            }
        }
    }
    return deserializeIntoPolicyLink;
}
/**
 * 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 {PolicyRuleCollectionResponse}
 */
// @ts-ignore
export function createPolicyRuleCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoPolicyRuleCollectionResponse;
}
/**
 * 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 {PolicyRuleDelta}
 */
// @ts-ignore
export function createPolicyRuleDeltaFromDiscriminatorValue(parseNode) {
    return deserializeIntoPolicyRuleDelta;
}
/**
 * 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 {PolicyRule}
 */
// @ts-ignore
export function createPolicyRuleFromDiscriminatorValue(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.networkaccess.cloudFirewallRule":
                    return deserializeIntoCloudFirewallRule;
                case "#microsoft.graph.networkaccess.filteringRule":
                    return deserializeIntoFilteringRule;
                case "#microsoft.graph.networkaccess.forwardingRule":
                    return deserializeIntoForwardingRule;
                case "#microsoft.graph.networkaccess.fqdnFilteringRule":
                    return deserializeIntoFqdnFilteringRule;
                case "#microsoft.graph.networkaccess.internetAccessForwardingRule":
                    return deserializeIntoInternetAccessForwardingRule;
                case "#microsoft.graph.networkaccess.m365ForwardingRule":
                    return deserializeIntoM365ForwardingRule;
                case "#microsoft.graph.networkaccess.privateAccessForwardingRule":
                    return deserializeIntoPrivateAccessForwardingRule;
                case "#microsoft.graph.networkaccess.threatIntelligenceRule":
                    return deserializeIntoThreatIntelligenceRule;
                case "#microsoft.graph.networkaccess.tlsInspectionRule":
                    return deserializeIntoTlsInspectionRule;
                case "#microsoft.graph.networkaccess.urlDestinationFilteringRule":
                    return deserializeIntoUrlDestinationFilteringRule;
                case "#microsoft.graph.networkaccess.webCategoryFilteringRule":
                    return deserializeIntoWebCategoryFilteringRule;
            }
        }
    }
    return deserializeIntoPolicyRule;
}
/**
 * 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 {PrivateAccessDetails}
 */
// @ts-ignore
export function createPrivateAccessDetailsFromDiscriminatorValue(parseNode) {
    return deserializeIntoPrivateAccessDetails;
}
/**
 * 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 {PrivateAccessForwardingRule}
 */
// @ts-ignore
export function createPrivateAccessForwardingRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoPrivateAccessForwardingRule;
}
/**
 * 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 {Profile}
 */
// @ts-ignore
export function createProfileFromDiscriminatorValue(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.networkaccess.filteringProfile":
                    return deserializeIntoFilteringProfile;
                case "#microsoft.graph.networkaccess.forwardingProfile":
                    return deserializeIntoForwardingProfile;
                case "#microsoft.graph.networkaccess.forwardingProfileBase":
                    return deserializeIntoForwardingProfileBase;
            }
        }
    }
    return deserializeIntoProfile;
}
/**
 * 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 {RedundancyConfiguration}
 */
// @ts-ignore
export function createRedundancyConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoRedundancyConfiguration;
}
/**
 * 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 {RelatedDestination}
 */
// @ts-ignore
export function createRelatedDestinationFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedDestination;
}
/**
 * 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 {RelatedDevice}
 */
// @ts-ignore
export function createRelatedDeviceFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedDevice;
}
/**
 * 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 {RelatedFile}
 */
// @ts-ignore
export function createRelatedFileFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedFile;
}
/**
 * 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 {RelatedFileHash}
 */
// @ts-ignore
export function createRelatedFileHashFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedFileHash;
}
/**
 * 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 {RelatedMalware}
 */
// @ts-ignore
export function createRelatedMalwareFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedMalware;
}
/**
 * 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 {RelatedRemoteNetwork}
 */
// @ts-ignore
export function createRelatedRemoteNetworkFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedRemoteNetwork;
}
/**
 * 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 {RelatedResource}
 */
// @ts-ignore
export function createRelatedResourceFromDiscriminatorValue(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.networkaccess.relatedDestination":
                    return deserializeIntoRelatedDestination;
                case "#microsoft.graph.networkaccess.relatedDevice":
                    return deserializeIntoRelatedDevice;
                case "#microsoft.graph.networkaccess.relatedFile":
                    return deserializeIntoRelatedFile;
                case "#microsoft.graph.networkaccess.relatedFileHash":
                    return deserializeIntoRelatedFileHash;
                case "#microsoft.graph.networkaccess.relatedMalware":
                    return deserializeIntoRelatedMalware;
                case "#microsoft.graph.networkaccess.relatedRemoteNetwork":
                    return deserializeIntoRelatedRemoteNetwork;
                case "#microsoft.graph.networkaccess.relatedTenant":
                    return deserializeIntoRelatedTenant;
                case "#microsoft.graph.networkaccess.relatedThreatIntelligence":
                    return deserializeIntoRelatedThreatIntelligence;
                case "#microsoft.graph.networkaccess.relatedToken":
                    return deserializeIntoRelatedToken;
                case "#microsoft.graph.networkaccess.relatedTransaction":
                    return deserializeIntoRelatedTransaction;
                case "#microsoft.graph.networkaccess.relatedUrl":
                    return deserializeIntoRelatedUrl;
                case "#microsoft.graph.networkaccess.relatedUser":
                    return deserializeIntoRelatedUser;
                case "#microsoft.graph.networkaccess.relatedWebCategory":
                    return deserializeIntoRelatedWebCategory;
            }
        }
    }
    return deserializeIntoRelatedResource;
}
/**
 * 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 {RelatedTenant}
 */
// @ts-ignore
export function createRelatedTenantFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedTenant;
}
/**
 * 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 {RelatedThreatIntelligence}
 */
// @ts-ignore
export function createRelatedThreatIntelligenceFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedThreatIntelligence;
}
/**
 * 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 {RelatedToken}
 */
// @ts-ignore
export function createRelatedTokenFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedToken;
}
/**
 * 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 {RelatedTransaction}
 */
// @ts-ignore
export function createRelatedTransactionFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedTransaction;
}
/**
 * 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 {RelatedUrl}
 */
// @ts-ignore
export function createRelatedUrlFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedUrl;
}
/**
 * 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 {RelatedUser}
 */
// @ts-ignore
export function createRelatedUserFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedUser;
}
/**
 * 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 {RelatedWebCategory}
 */
// @ts-ignore
export function createRelatedWebCategoryFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedWebCategory;
}
/**
 * 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 {RemoteNetworkCollectionResponse}
 */
// @ts-ignore
export function createRemoteNetworkCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoRemoteNetworkCollectionResponse;
}
/**
 * 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 {RemoteNetworkConnectivityConfiguration}
 */
// @ts-ignore
export function createRemoteNetworkConnectivityConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoRemoteNetworkConnectivityConfiguration;
}
/**
 * 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 {RemoteNetwork}
 */
// @ts-ignore
export function createRemoteNetworkFromDiscriminatorValue(parseNode) {
    return deserializeIntoRemoteNetwork;
}
/**
 * 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 {RemoteNetworkHealthEventCollectionResponse}
 */
// @ts-ignore
export function createRemoteNetworkHealthEventCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoRemoteNetworkHealthEventCollectionResponse;
}
/**
 * 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 {RemoteNetworkHealthEvent}
 */
// @ts-ignore
export function createRemoteNetworkHealthEventFromDiscriminatorValue(parseNode) {
    return deserializeIntoRemoteNetworkHealthEvent;
}
/**
 * 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 {Reports}
 */
// @ts-ignore
export function createReportsFromDiscriminatorValue(parseNode) {
    return deserializeIntoReports;
}
/**
 * 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 {RuleDestination}
 */
// @ts-ignore
export function createRuleDestinationFromDiscriminatorValue(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.networkaccess.fqdn":
                    return deserializeIntoFqdn;
                case "#microsoft.graph.networkaccess.ipAddress":
                    return deserializeIntoIpAddress;
                case "#microsoft.graph.networkaccess.ipDestination":
                    return deserializeIntoIpDestination;
                case "#microsoft.graph.networkaccess.ipRange":
                    return deserializeIntoIpRange;
                case "#microsoft.graph.networkaccess.ipSubnet":
                    return deserializeIntoIpSubnet;
                case "#microsoft.graph.networkaccess.url":
                    return deserializeIntoUrl;
                case "#microsoft.graph.networkaccess.webCategory":
                    return deserializeIntoWebCategory;
            }
        }
    }
    return deserializeIntoRuleDestination;
}
/**
 * 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 {Settings}
 */
// @ts-ignore
export function createSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoSettings;
}
/**
 * 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 {TenantStatus}
 */
// @ts-ignore
export function createTenantStatusFromDiscriminatorValue(parseNode) {
    return deserializeIntoTenantStatus;
}
/**
 * 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 {ThirdPartyTokenDetails}
 */
// @ts-ignore
export function createThirdPartyTokenDetailsFromDiscriminatorValue(parseNode) {
    return deserializeIntoThirdPartyTokenDetails;
}
/**
 * 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 {ThreatIntelligenceDestination}
 */
// @ts-ignore
export function createThreatIntelligenceDestinationFromDiscriminatorValue(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.networkaccess.threatIntelligenceFqdnDestination":
                    return deserializeIntoThreatIntelligenceFqdnDestination;
            }
        }
    }
    return deserializeIntoThreatIntelligenceDestination;
}
/**
 * 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 {ThreatIntelligenceFqdnDestination}
 */
// @ts-ignore
export function createThreatIntelligenceFqdnDestinationFromDiscriminatorValue(parseNode) {
    return deserializeIntoThreatIntelligenceFqdnDestination;
}
/**
 * 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 {ThreatIntelligenceMatchingConditions}
 */
// @ts-ignore
export function createThreatIntelligenceMatchingConditionsFromDiscriminatorValue(parseNode) {
    return deserializeIntoThreatIntelligenceMatchingConditions;
}
/**
 * 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 {ThreatIntelligencePolicyCollectionResponse}
 */
// @ts-ignore
export function createThreatIntelligencePolicyCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoThreatIntelligencePolicyCollectionResponse;
}
/**
 * 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 {ThreatIntelligencePolicy}
 */
// @ts-ignore
export function createThreatIntelligencePolicyFromDiscriminatorValue(parseNode) {
    return deserializeIntoThreatIntelligencePolicy;
}
/**
 * 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 {ThreatIntelligencePolicyLink}
 */
// @ts-ignore
export function createThreatIntelligencePolicyLinkFromDiscriminatorValue(parseNode) {
    return deserializeIntoThreatIntelligencePolicyLink;
}
/**
 * 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 {ThreatIntelligencePolicySettings}
 */
// @ts-ignore
export function createThreatIntelligencePolicySettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoThreatIntelligencePolicySettings;
}
/**
 * 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 {ThreatIntelligenceRule}
 */
// @ts-ignore
export function createThreatIntelligenceRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoThreatIntelligenceRule;
}
/**
 * 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 {ThreatIntelligenceRuleSettings}
 */
// @ts-ignore
export function createThreatIntelligenceRuleSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoThreatIntelligenceRuleSettings;
}
/**
 * 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 {TlsInspectionDestination}
 */
// @ts-ignore
export function createTlsInspectionDestinationFromDiscriminatorValue(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.networkaccess.tlsInspectionFqdnDestination":
                    return deserializeIntoTlsInspectionFqdnDestination;
                case "#microsoft.graph.networkaccess.tlsInspectionWebCategoryDestination":
                    return deserializeIntoTlsInspectionWebCategoryDestination;
            }
        }
    }
    return deserializeIntoTlsInspectionDestination;
}
/**
 * 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 {TlsInspectionFqdnDestination}
 */
// @ts-ignore
export function createTlsInspectionFqdnDestinationFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionFqdnDestination;
}
/**
 * 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 {TlsInspectionMatchingConditions}
 */
// @ts-ignore
export function createTlsInspectionMatchingConditionsFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionMatchingConditions;
}
/**
 * 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 {TlsInspectionPolicyCollectionResponse}
 */
// @ts-ignore
export function createTlsInspectionPolicyCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionPolicyCollectionResponse;
}
/**
 * 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 {TlsInspectionPolicy}
 */
// @ts-ignore
export function createTlsInspectionPolicyFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionPolicy;
}
/**
 * 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 {TlsInspectionPolicyLink}
 */
// @ts-ignore
export function createTlsInspectionPolicyLinkFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionPolicyLink;
}
/**
 * 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 {TlsInspectionPolicySettings}
 */
// @ts-ignore
export function createTlsInspectionPolicySettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionPolicySettings;
}
/**
 * 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 {TlsInspectionRule}
 */
// @ts-ignore
export function createTlsInspectionRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionRule;
}
/**
 * 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 {TlsInspectionRuleSettings}
 */
// @ts-ignore
export function createTlsInspectionRuleSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionRuleSettings;
}
/**
 * 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 {TlsInspectionWebCategoryDestination}
 */
// @ts-ignore
export function createTlsInspectionWebCategoryDestinationFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsInspectionWebCategoryDestination;
}
/**
 * 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 {TlsTermination}
 */
// @ts-ignore
export function createTlsTerminationFromDiscriminatorValue(parseNode) {
    return deserializeIntoTlsTermination;
}
/**
 * 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 {TransactionSummary}
 */
// @ts-ignore
export function createTransactionSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoTransactionSummary;
}
/**
 * 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 {TunnelConfiguration}
 */
// @ts-ignore
export function createTunnelConfigurationFromDiscriminatorValue(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.networkaccess.tunnelConfigurationIKEv2Custom":
                    return deserializeIntoTunnelConfigurationIKEv2Custom;
                case "#microsoft.graph.networkaccess.tunnelConfigurationIKEv2Default":
                    return deserializeIntoTunnelConfigurationIKEv2Default;
            }
        }
    }
    return deserializeIntoTunnelConfiguration;
}
/**
 * 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 {TunnelConfigurationIKEv2Custom}
 */
// @ts-ignore
export function createTunnelConfigurationIKEv2CustomFromDiscriminatorValue(parseNode) {
    return deserializeIntoTunnelConfigurationIKEv2Custom;
}
/**
 * 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 {TunnelConfigurationIKEv2Default}
 */
// @ts-ignore
export function createTunnelConfigurationIKEv2DefaultFromDiscriminatorValue(parseNode) {
    return deserializeIntoTunnelConfigurationIKEv2Default;
}
/**
 * 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 {UrlDestinationFilteringRule}
 */
// @ts-ignore
export function createUrlDestinationFilteringRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoUrlDestinationFilteringRule;
}
/**
 * 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 {Url}
 */
// @ts-ignore
export function createUrlFromDiscriminatorValue(parseNode) {
    return deserializeIntoUrl;
}
/**
 * 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 {UsageProfilingPoint}
 */
// @ts-ignore
export function createUsageProfilingPointFromDiscriminatorValue(parseNode) {
    return deserializeIntoUsageProfilingPoint;
}
/**
 * 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 {User}
 */
// @ts-ignore
export function createUserFromDiscriminatorValue(parseNode) {
    return deserializeIntoUser;
}
/**
 * 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 {ValidityDate}
 */
// @ts-ignore
export function createValidityDateFromDiscriminatorValue(parseNode) {
    return deserializeIntoValidityDate;
}
/**
 * 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 {WebCategoriesSummary}
 */
// @ts-ignore
export function createWebCategoriesSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoWebCategoriesSummary;
}
/**
 * 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 {WebCategoryFilteringRule}
 */
// @ts-ignore
export function createWebCategoryFilteringRuleFromDiscriminatorValue(parseNode) {
    return deserializeIntoWebCategoryFilteringRule;
}
/**
 * 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 {WebCategory}
 */
// @ts-ignore
export function createWebCategoryFromDiscriminatorValue(parseNode) {
    return deserializeIntoWebCategory;
}
/**
 * The deserialization information for the current model
 * @param Alert The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlert(alert = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(alert)), { "actions": n => { alert.actions = n.getCollectionOfObjectValues(createAlertActionFromDiscriminatorValue); }, "alertType": n => { alert.alertType = n.getEnumValue(AlertTypeObject); }, "categories": n => { alert.categories = n.getCollectionOfEnumValues(IntentCategoryObject); }, "componentName": n => { alert.componentName = n.getStringValue(); }, "creationDateTime": n => { alert.creationDateTime = n.getDateValue(); }, "description": n => { alert.description = n.getStringValue(); }, "detectionTechnology": n => { alert.detectionTechnology = n.getStringValue(); }, "displayName": n => { alert.displayName = n.getStringValue(); }, "extendedProperties": n => { alert.extendedProperties = n.getObjectValue(createExtendedPropertiesFromDiscriminatorValue); }, "firstActivityDateTime": n => { alert.firstActivityDateTime = n.getDateValue(); }, "isPreview": n => { alert.isPreview = n.getBooleanValue(); }, "lastActivityDateTime": n => { alert.lastActivityDateTime = n.getDateValue(); }, "policy": n => { alert.policy = n.getObjectValue(createFilteringPolicyFromDiscriminatorValue); }, "productName": n => { alert.productName = n.getStringValue(); }, "relatedResources": n => { alert.relatedResources = n.getCollectionOfObjectValues(createRelatedResourceFromDiscriminatorValue); }, "severity": n => { alert.severity = n.getEnumValue(AlertSeverityObject); }, "subTechniques": n => { alert.subTechniques = n.getCollectionOfPrimitiveValues("string"); }, "techniques": n => { alert.techniques = n.getCollectionOfPrimitiveValues("string"); }, "vendorName": n => { alert.vendorName = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param AlertAction The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlertAction(alertAction = {}) {
    return {
        "actionLink": n => { alertAction.actionLink = n.getStringValue(); },
        "actionText": n => { alertAction.actionText = n.getStringValue(); },
        "backingStoreEnabled": n => { alertAction.backingStoreEnabled = true; },
        "@odata.type": n => { alertAction.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param AlertCollectionResponse The instance to deserialize into.
 * @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
 * @param AlertFrequencyPoint The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlertFrequencyPoint(alertFrequencyPoint = {}) {
    return {
        "backingStoreEnabled": n => { alertFrequencyPoint.backingStoreEnabled = true; },
        "highSeverityCount": n => { alertFrequencyPoint.highSeverityCount = n.getNumberValue(); },
        "informationalSeverityCount": n => { alertFrequencyPoint.informationalSeverityCount = n.getNumberValue(); },
        "lowSeverityCount": n => { alertFrequencyPoint.lowSeverityCount = n.getNumberValue(); },
        "mediumSeverityCount": n => { alertFrequencyPoint.mediumSeverityCount = n.getNumberValue(); },
        "@odata.type": n => { alertFrequencyPoint.odataType = n.getStringValue(); },
        "timeStampDateTime": n => { alertFrequencyPoint.timeStampDateTime = n.getDateValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param AlertSeveritySummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlertSeveritySummary(alertSeveritySummary = {}) {
    return {
        "backingStoreEnabled": n => { alertSeveritySummary.backingStoreEnabled = true; },
        "count": n => { alertSeveritySummary.count = n.getNumberValue(); },
        "@odata.type": n => { alertSeveritySummary.odataType = n.getStringValue(); },
        "severity": n => { alertSeveritySummary.severity = n.getEnumValue(AlertSeverityObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param AlertSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAlertSummary(alertSummary = {}) {
    return {
        "alertType": n => { alertSummary.alertType = n.getEnumValue(AlertTypeObject); },
        "backingStoreEnabled": n => { alertSummary.backingStoreEnabled = true; },
        "count": n => { alertSummary.count = n.getNumberValue(); },
        "@odata.type": n => { alertSummary.odataType = n.getStringValue(); },
        "severity": n => { alertSummary.severity = n.getEnumValue(AlertSeverityObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param ApplicationAnalyticsUsagePoint The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoApplicationAnalyticsUsagePoint(applicationAnalyticsUsagePoint = {}) {
    return {
        "backingStoreEnabled": n => { applicationAnalyticsUsagePoint.backingStoreEnabled = true; },
        "cloudAppsCount": n => { applicationAnalyticsUsagePoint.cloudAppsCount = n.getNumberValue(); },
        "enterpriseAppsCount": n => { applicationAnalyticsUsagePoint.enterpriseAppsCount = n.getNumberValue(); },
        "@odata.type": n => { applicationAnalyticsUsagePoint.odataType = n.getStringValue(); },
        "timeStampDateTime": n => { applicationAnalyticsUsagePoint.timeStampDateTime = n.getDateValue(); },
        "totalCount": n => { applicationAnalyticsUsagePoint.totalCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param ApplicationSnapshot The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoApplicationSnapshot(applicationSnapshot = {}) {
    return {
        "appId": n => { applicationSnapshot.appId = n.getStringValue(); },
        "backingStoreEnabled": n => { applicationSnapshot.backingStoreEnabled = true; },
        "@odata.type": n => { applicationSnapshot.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param AssociatedBranch The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAssociatedBranch(associatedBranch = {}) {
    return Object.assign(Object.assign({}, deserializeIntoAssociation(associatedBranch)), { "branchId": n => { associatedBranch.branchId = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param Association The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAssociation(association = {}) {
    return {
        "backingStoreEnabled": n => { association.backingStoreEnabled = true; },
        "@odata.type": n => { association.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param BaseEntity The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBaseEntity(baseEntity = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(baseEntity)), { "name": n => { baseEntity.name = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param BgpConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBgpConfiguration(bgpConfiguration = {}) {
    return {
        "asn": n => { bgpConfiguration.asn = n.getNumberValue(); },
        "backingStoreEnabled": n => { bgpConfiguration.backingStoreEnabled = true; },
        "ipAddress": n => { bgpConfiguration.ipAddress = n.getStringValue(); },
        "localIpAddress": n => { bgpConfiguration.localIpAddress = n.getStringValue(); },
        "@odata.type": n => { bgpConfiguration.odataType = n.getStringValue(); },
        "peerIpAddress": n => { bgpConfiguration.peerIpAddress = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param BlockPageConfigurationBase The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBlockPageConfigurationBase(blockPageConfigurationBase = {}) {
    return {
        "backingStoreEnabled": n => { blockPageConfigurationBase.backingStoreEnabled = true; },
        "@odata.type": n => { blockPageConfigurationBase.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param BranchConnectivityConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBranchConnectivityConfiguration(branchConnectivityConfiguration = {}) {
    return {
        "backingStoreEnabled": n => { branchConnectivityConfiguration.backingStoreEnabled = true; },
        "branchId": n => { branchConnectivityConfiguration.branchId = n.getStringValue(); },
        "branchName": n => { branchConnectivityConfiguration.branchName = n.getStringValue(); },
        "links": n => { branchConnectivityConfiguration.links = n.getCollectionOfObjectValues(createConnectivityConfigurationLinkFromDiscriminatorValue); },
        "@odata.type": n => { branchConnectivityConfiguration.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param BranchSite The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBranchSite(branchSite = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(branchSite)), { "bandwidthCapacity": n => { branchSite.bandwidthCapacity = n.getNumberValue(); }, "connectivityConfiguration": n => { branchSite.connectivityConfiguration = n.getObjectValue(createBranchConnectivityConfigurationFromDiscriminatorValue); }, "connectivityState": n => { branchSite.connectivityState = n.getEnumValue(ConnectivityStateObject); }, "country": n => { branchSite.country = n.getStringValue(); }, "deviceLinks": n => { branchSite.deviceLinks = n.getCollectionOfObjectValues(createDeviceLinkFromDiscriminatorValue); }, "forwardingProfiles": n => { branchSite.forwardingProfiles = n.getCollectionOfObjectValues(createForwardingProfileFromDiscriminatorValue); }, "lastModifiedDateTime": n => { branchSite.lastModifiedDateTime = n.getDateValue(); }, "name": n => { branchSite.name = n.getStringValue(); }, "region": n => { branchSite.region = n.getEnumValue(RegionObject); }, "version": n => { branchSite.version = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param BranchSiteCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBranchSiteCollectionResponse(branchSiteCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(branchSiteCollectionResponse)), { "value": n => { branchSiteCollectionResponse.value = n.getCollectionOfObjectValues(createBranchSiteFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CloudApplicationMetadata The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudApplicationMetadata(cloudApplicationMetadata = {}) {
    return {
        "activity": n => { cloudApplicationMetadata.activity = n.getEnumValue(ApplicationActivityObject); },
        "backingStoreEnabled": n => { cloudApplicationMetadata.backingStoreEnabled = true; },
        "categories": n => { cloudApplicationMetadata.categories = n.getCollectionOfPrimitiveValues("string"); },
        "cloudApplicationCatalogId": n => { cloudApplicationMetadata.cloudApplicationCatalogId = n.getStringValue(); },
        "complianceScore": n => { cloudApplicationMetadata.complianceScore = n.getNumberValue(); },
        "generalScore": n => { cloudApplicationMetadata.generalScore = n.getNumberValue(); },
        "legalScore": n => { cloudApplicationMetadata.legalScore = n.getNumberValue(); },
        "loginUser": n => { cloudApplicationMetadata.loginUser = n.getStringValue(); },
        "name": n => { cloudApplicationMetadata.name = n.getStringValue(); },
        "@odata.type": n => { cloudApplicationMetadata.odataType = n.getStringValue(); },
        "riskScore": n => { cloudApplicationMetadata.riskScore = n.getNumberValue(); },
        "securityScore": n => { cloudApplicationMetadata.securityScore = n.getNumberValue(); },
        "subactivity": n => { cloudApplicationMetadata.subactivity = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param CloudApplicationReport The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudApplicationReport(cloudApplicationReport = {}) {
    return {
        "backingStoreEnabled": n => { cloudApplicationReport.backingStoreEnabled = true; },
        "categories": n => { cloudApplicationReport.categories = n.getCollectionOfPrimitiveValues("string"); },
        "cloudApplicationCatalogId": n => { cloudApplicationReport.cloudApplicationCatalogId = n.getStringValue(); },
        "complianceScore": n => { cloudApplicationReport.complianceScore = n.getNumberValue(); },
        "deviceCount": n => { cloudApplicationReport.deviceCount = n.getNumberValue(); },
        "firstAccessDateTime": n => { cloudApplicationReport.firstAccessDateTime = n.getDateValue(); },
        "generalScore": n => { cloudApplicationReport.generalScore = n.getNumberValue(); },
        "lastAccessDateTime": n => { cloudApplicationReport.lastAccessDateTime = n.getDateValue(); },
        "legalScore": n => { cloudApplicationReport.legalScore = n.getNumberValue(); },
        "name": n => { cloudApplicationReport.name = n.getStringValue(); },
        "@odata.type": n => { cloudApplicationReport.odataType = n.getStringValue(); },
        "riskScore": n => { cloudApplicationReport.riskScore = n.getNumberValue(); },
        "securityScore": n => { cloudApplicationReport.securityScore = n.getNumberValue(); },
        "totalBytesReceived": n => { cloudApplicationReport.totalBytesReceived = n.getNumberValue(); },
        "totalBytesSent": n => { cloudApplicationReport.totalBytesSent = n.getNumberValue(); },
        "trafficType": n => { cloudApplicationReport.trafficType = n.getEnumValue(TrafficTypeObject); },
        "transactionCount": n => { cloudApplicationReport.transactionCount = n.getNumberValue(); },
        "userCount": n => { cloudApplicationReport.userCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallDestinationAddress The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallDestinationAddress(cloudFirewallDestinationAddress = {}) {
    return {
        "backingStoreEnabled": n => { cloudFirewallDestinationAddress.backingStoreEnabled = true; },
        "@odata.type": n => { cloudFirewallDestinationAddress.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallDestinationFqdnAddress The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallDestinationFqdnAddress(cloudFirewallDestinationFqdnAddress = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCloudFirewallDestinationAddress(cloudFirewallDestinationFqdnAddress)), { "values": n => { cloudFirewallDestinationFqdnAddress.values = n.getCollectionOfPrimitiveValues("string"); } });
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallDestinationIpAddress The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallDestinationIpAddress(cloudFirewallDestinationIpAddress = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCloudFirewallDestinationAddress(cloudFirewallDestinationIpAddress)), { "values": n => { cloudFirewallDestinationIpAddress.values = n.getCollectionOfPrimitiveValues("string"); } });
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallDestinationMatching The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallDestinationMatching(cloudFirewallDestinationMatching = {}) {
    return {
        "addresses": n => { cloudFirewallDestinationMatching.addresses = n.getCollectionOfObjectValues(createCloudFirewallDestinationAddressFromDiscriminatorValue); },
        "backingStoreEnabled": n => { cloudFirewallDestinationMatching.backingStoreEnabled = true; },
        "@odata.type": n => { cloudFirewallDestinationMatching.odataType = n.getStringValue(); },
        "ports": n => { cloudFirewallDestinationMatching.ports = n.getCollectionOfPrimitiveValues("string"); },
        "protocols": n => { cloudFirewallDestinationMatching.protocols = n.getCollectionOfEnumValues(CloudFirewallProtocolObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallMatchingConditions The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallMatchingConditions(cloudFirewallMatchingConditions = {}) {
    return {
        "backingStoreEnabled": n => { cloudFirewallMatchingConditions.backingStoreEnabled = true; },
        "destinations": n => { cloudFirewallMatchingConditions.destinations = n.getObjectValue(createCloudFirewallDestinationMatchingFromDiscriminatorValue); },
        "@odata.type": n => { cloudFirewallMatchingConditions.odataType = n.getStringValue(); },
        "sources": n => { cloudFirewallMatchingConditions.sources = n.getObjectValue(createCloudFirewallSourceMatchingFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallPolicy The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallPolicy(cloudFirewallPolicy = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicy(cloudFirewallPolicy)), { "lastModifiedDateTime": n => { cloudFirewallPolicy.lastModifiedDateTime = n.getDateValue(); }, "settings": n => { cloudFirewallPolicy.settings = n.getObjectValue(createCloudFirewallPolicySettingsFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallPolicyCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallPolicyCollectionResponse(cloudFirewallPolicyCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(cloudFirewallPolicyCollectionResponse)), { "value": n => { cloudFirewallPolicyCollectionResponse.value = n.getCollectionOfObjectValues(createCloudFirewallPolicyFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallPolicyLink The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallPolicyLink(cloudFirewallPolicyLink = {}) {
    return Object.assign({}, deserializeIntoPolicyLink(cloudFirewallPolicyLink));
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallPolicySettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallPolicySettings(cloudFirewallPolicySettings = {}) {
    return {
        "backingStoreEnabled": n => { cloudFirewallPolicySettings.backingStoreEnabled = true; },
        "defaultAction": n => { cloudFirewallPolicySettings.defaultAction = n.getEnumValue(CloudFirewallActionObject); },
        "@odata.type": n => { cloudFirewallPolicySettings.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallRule(cloudFirewallRule = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicyRule(cloudFirewallRule)), { "action": n => { cloudFirewallRule.action = n.getEnumValue(CloudFirewallActionObject); }, "description": n => { cloudFirewallRule.description = n.getStringValue(); }, "matchingConditions": n => { cloudFirewallRule.matchingConditions = n.getObjectValue(createCloudFirewallMatchingConditionsFromDiscriminatorValue); }, "priority": n => { cloudFirewallRule.priority = n.getNumberValue(); }, "settings": n => { cloudFirewallRule.settings = n.getObjectValue(createCloudFirewallRuleSettingsFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallRuleSettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallRuleSettings(cloudFirewallRuleSettings = {}) {
    return {
        "backingStoreEnabled": n => { cloudFirewallRuleSettings.backingStoreEnabled = true; },
        "@odata.type": n => { cloudFirewallRuleSettings.odataType = n.getStringValue(); },
        "status": n => { cloudFirewallRuleSettings.status = n.getEnumValue(SecurityRuleStatusObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallSourceAddress The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallSourceAddress(cloudFirewallSourceAddress = {}) {
    return {
        "backingStoreEnabled": n => { cloudFirewallSourceAddress.backingStoreEnabled = true; },
        "@odata.type": n => { cloudFirewallSourceAddress.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallSourceIpAddress The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallSourceIpAddress(cloudFirewallSourceIpAddress = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCloudFirewallSourceAddress(cloudFirewallSourceIpAddress)), { "values": n => { cloudFirewallSourceIpAddress.values = n.getCollectionOfPrimitiveValues("string"); } });
}
/**
 * The deserialization information for the current model
 * @param CloudFirewallSourceMatching The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCloudFirewallSourceMatching(cloudFirewallSourceMatching = {}) {
    return {
        "addresses": n => { cloudFirewallSourceMatching.addresses = n.getCollectionOfObjectValues(createCloudFirewallSourceAddressFromDiscriminatorValue); },
        "backingStoreEnabled": n => { cloudFirewallSourceMatching.backingStoreEnabled = true; },
        "@odata.type": n => { cloudFirewallSourceMatching.odataType = n.getStringValue(); },
        "ports": n => { cloudFirewallSourceMatching.ports = n.getCollectionOfPrimitiveValues("string"); },
    };
}
/**
 * The deserialization information for the current model
 * @param ConditionalAccessPolicy The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConditionalAccessPolicy(conditionalAccessPolicy = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(conditionalAccessPolicy)), { "createdDateTime": n => { conditionalAccessPolicy.createdDateTime = n.getDateValue(); }, "description": n => { conditionalAccessPolicy.description = n.getStringValue(); }, "displayName": n => { conditionalAccessPolicy.displayName = n.getStringValue(); }, "modifiedDateTime": n => { conditionalAccessPolicy.modifiedDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param ConditionalAccessPolicyCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConditionalAccessPolicyCollectionResponse(conditionalAccessPolicyCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(conditionalAccessPolicyCollectionResponse)), { "value": n => { conditionalAccessPolicyCollectionResponse.value = n.getCollectionOfObjectValues(createConditionalAccessPolicyFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ConditionalAccessSettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConditionalAccessSettings(conditionalAccessSettings = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(conditionalAccessSettings)), { "signalingStatus": n => { conditionalAccessSettings.signalingStatus = n.getEnumValue(StatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param Connection The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConnection(connection = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(connection)), { "agentVersion": n => { connection.agentVersion = n.getStringValue(); }, "applicationSnapshot": n => { connection.applicationSnapshot = n.getObjectValue(createApplicationSnapshotFromDiscriminatorValue); }, "createdDateTime": n => { connection.createdDateTime = n.getDateValue(); }, "crossTenantAccessType": n => { connection.crossTenantAccessType = n.getEnumValue(CrossTenantAccessTypeObject); }, "destinationFqdn": n => { connection.destinationFqdn = n.getStringValue(); }, "destinationIp": n => { connection.destinationIp = n.getStringValue(); }, "destinationPort": n => { connection.destinationPort = n.getNumberValue(); }, "deviceCategory": n => { connection.deviceCategory = n.getEnumValue(DeviceCategoryObject); }, "deviceId": n => { connection.deviceId = n.getStringValue(); }, "deviceJoinType": n => { connection.deviceJoinType = n.getEnumValue(DeviceJoinTypeObject); }, "deviceOperatingSystem": n => { connection.deviceOperatingSystem = n.getStringValue(); }, "deviceOperatingSystemVersion": n => { connection.deviceOperatingSystemVersion = n.getStringValue(); }, "endDateTime": n => { connection.endDateTime = n.getDateValue(); }, "homeTenantId": n => { connection.homeTenantId = n.getStringValue(); }, "initiatingProcessName": n => { connection.initiatingProcessName = n.getStringValue(); }, "lastUpdateDateTime": n => { connection.lastUpdateDateTime = n.getDateValue(); }, "networkProtocol": n => { connection.networkProtocol = n.getEnumValue(NetworkingProtocolObject); }, "popProcessingRegion": n => { connection.popProcessingRegion = n.getStringValue(); }, "privateAccessDetails": n => { connection.privateAccessDetails = n.getObjectValue(createPrivateAccessDetailsFromDiscriminatorValue); }, "receivedBytes": n => { connection.receivedBytes = n.getNumberValue(); }, "sentBytes": n => { connection.sentBytes = n.getNumberValue(); }, "sourceIp": n => { connection.sourceIp = n.getStringValue(); }, "sourcePort": n => { connection.sourcePort = n.getNumberValue(); }, "status": n => { connection.status = n.getEnumValue(ConnectionStatusObject); }, "tenantId": n => { connection.tenantId = n.getStringValue(); }, "trafficType": n => { connection.trafficType = n.getEnumValue(TrafficTypeObject); }, "transactionBlockCount": n => { connection.transactionBlockCount = n.getNumberValue(); }, "transactionCount": n => { connection.transactionCount = n.getNumberValue(); }, "transportProtocol": n => { connection.transportProtocol = n.getEnumValue(NetworkingProtocolObject); }, "userId": n => { connection.userId = n.getStringValue(); }, "userPrincipalName": n => { connection.userPrincipalName = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param ConnectionCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConnectionCollectionResponse(connectionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(connectionCollectionResponse)), { "value": n => { connectionCollectionResponse.value = n.getCollectionOfObjectValues(createConnectionFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ConnectionSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConnectionSummary(connectionSummary = {}) {
    return {
        "backingStoreEnabled": n => { connectionSummary.backingStoreEnabled = true; },
        "@odata.type": n => { connectionSummary.odataType = n.getStringValue(); },
        "totalCount": n => { connectionSummary.totalCount = n.getNumberValue(); },
        "trafficType": n => { connectionSummary.trafficType = n.getEnumValue(TrafficTypeObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param Connectivity The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConnectivity(connectivity = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(connectivity)), { "branches": n => { connectivity.branches = n.getCollectionOfObjectValues(createBranchSiteFromDiscriminatorValue); }, "remoteNetworks": n => { connectivity.remoteNetworks = n.getCollectionOfObjectValues(createRemoteNetworkFromDiscriminatorValue); }, "webCategories": n => { connectivity.webCategories = n.getCollectionOfObjectValues(createWebCategoryFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ConnectivityConfigurationLink The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConnectivityConfigurationLink(connectivityConfigurationLink = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(connectivityConfigurationLink)), { "displayName": n => { connectivityConfigurationLink.displayName = n.getStringValue(); }, "localConfigurations": n => { connectivityConfigurationLink.localConfigurations = n.getCollectionOfObjectValues(createLocalConnectivityConfigurationFromDiscriminatorValue); }, "peerConfiguration": n => { connectivityConfigurationLink.peerConfiguration = n.getObjectValue(createPeerConnectivityConfigurationFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ConnectivityConfigurationLinkCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoConnectivityConfigurationLinkCollectionResponse(connectivityConfigurationLinkCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(connectivityConfigurationLinkCollectionResponse)), { "value": n => { connectivityConfigurationLinkCollectionResponse.value = n.getCollectionOfObjectValues(createConnectivityConfigurationLinkFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CrossTenantAccess The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCrossTenantAccess(crossTenantAccess = {}) {
    return {
        "backingStoreEnabled": n => { crossTenantAccess.backingStoreEnabled = true; },
        "deviceCount": n => { crossTenantAccess.deviceCount = n.getNumberValue(); },
        "lastAccessDateTime": n => { crossTenantAccess.lastAccessDateTime = n.getDateValue(); },
        "@odata.type": n => { crossTenantAccess.odataType = n.getStringValue(); },
        "resourceTenantId": n => { crossTenantAccess.resourceTenantId = n.getStringValue(); },
        "resourceTenantName": n => { crossTenantAccess.resourceTenantName = n.getStringValue(); },
        "resourceTenantPrimaryDomain": n => { crossTenantAccess.resourceTenantPrimaryDomain = n.getStringValue(); },
        "usageStatus": n => { crossTenantAccess.usageStatus = n.getEnumValue(UsageStatusObject); },
        "userCount": n => { crossTenantAccess.userCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param CrossTenantAccessSettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCrossTenantAccessSettings(crossTenantAccessSettings = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(crossTenantAccessSettings)), { "networkPacketTaggingStatus": n => { crossTenantAccessSettings.networkPacketTaggingStatus = n.getEnumValue(StatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param CrossTenantSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCrossTenantSummary(crossTenantSummary = {}) {
    return {
        "authTransactionCount": n => { crossTenantSummary.authTransactionCount = n.getNumberValue(); },
        "backingStoreEnabled": n => { crossTenantSummary.backingStoreEnabled = true; },
        "deviceCount": n => { crossTenantSummary.deviceCount = n.getNumberValue(); },
        "newTenantCount": n => { crossTenantSummary.newTenantCount = n.getNumberValue(); },
        "@odata.type": n => { crossTenantSummary.odataType = n.getStringValue(); },
        "rarelyUsedTenantCount": n => { crossTenantSummary.rarelyUsedTenantCount = n.getNumberValue(); },
        "tenantCount": n => { crossTenantSummary.tenantCount = n.getNumberValue(); },
        "userCount": n => { crossTenantSummary.userCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param CustomBlockPage The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCustomBlockPage(customBlockPage = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(customBlockPage)), { "configuration": n => { customBlockPage.configuration = n.getObjectValue(createBlockPageConfigurationBaseFromDiscriminatorValue); }, "state": n => { customBlockPage.state = n.getEnumValue(StatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param Destination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDestination(destination = {}) {
    return {
        "backingStoreEnabled": n => { destination.backingStoreEnabled = true; },
        "deviceCount": n => { destination.deviceCount = n.getNumberValue(); },
        "firstAccessDateTime": n => { destination.firstAccessDateTime = n.getDateValue(); },
        "fqdn": n => { destination.fqdn = n.getStringValue(); },
        "ip": n => { destination.ip = n.getStringValue(); },
        "lastAccessDateTime": n => { destination.lastAccessDateTime = n.getDateValue(); },
        "networkingProtocol": n => { destination.networkingProtocol = n.getEnumValue(NetworkingProtocolObject); },
        "@odata.type": n => { destination.odataType = n.getStringValue(); },
        "port": n => { destination.port = n.getNumberValue(); },
        "threatCount": n => { destination.threatCount = n.getNumberValue(); },
        "totalBytesReceived": n => { destination.totalBytesReceived = n.getNumberValue(); },
        "totalBytesSent": n => { destination.totalBytesSent = n.getNumberValue(); },
        "trafficType": n => { destination.trafficType = n.getEnumValue(TrafficTypeObject); },
        "transactionCount": n => { destination.transactionCount = n.getNumberValue(); },
        "userCount": n => { destination.userCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param DestinationSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDestinationSummary(destinationSummary = {}) {
    return {
        "backingStoreEnabled": n => { destinationSummary.backingStoreEnabled = true; },
        "count": n => { destinationSummary.count = n.getNumberValue(); },
        "destination": n => { destinationSummary.destination = n.getStringValue(); },
        "@odata.type": n => { destinationSummary.odataType = n.getStringValue(); },
        "trafficType": n => { destinationSummary.trafficType = n.getEnumValue(TrafficTypeObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param Device The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDevice(device = {}) {
    return {
        "backingStoreEnabled": n => { device.backingStoreEnabled = true; },
        "deviceId": n => { device.deviceId = n.getStringValue(); },
        "displayName": n => { device.displayName = n.getStringValue(); },
        "isCompliant": n => { device.isCompliant = n.getBooleanValue(); },
        "lastAccessDateTime": n => { device.lastAccessDateTime = n.getDateValue(); },
        "@odata.type": n => { device.odataType = n.getStringValue(); },
        "operatingSystem": n => { device.operatingSystem = n.getStringValue(); },
        "trafficType": n => { device.trafficType = n.getEnumValue(TrafficTypeObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param DeviceLink The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDeviceLink(deviceLink = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(deviceLink)), { "bandwidthCapacityInMbps": n => { deviceLink.bandwidthCapacityInMbps = n.getEnumValue(BandwidthCapacityInMbpsObject); }, "bgpConfiguration": n => { deviceLink.bgpConfiguration = n.getObjectValue(createBgpConfigurationFromDiscriminatorValue); }, "deviceVendor": n => { deviceLink.deviceVendor = n.getEnumValue(DeviceVendorObject); }, "ipAddress": n => { deviceLink.ipAddress = n.getStringValue(); }, "lastModifiedDateTime": n => { deviceLink.lastModifiedDateTime = n.getDateValue(); }, "name": n => { deviceLink.name = n.getStringValue(); }, "redundancyConfiguration": n => { deviceLink.redundancyConfiguration = n.getObjectValue(createRedundancyConfigurationFromDiscriminatorValue); }, "tunnelConfiguration": n => { deviceLink.tunnelConfiguration = n.getObjectValue(createTunnelConfigurationFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param DeviceLinkCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDeviceLinkCollectionResponse(deviceLinkCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(deviceLinkCollectionResponse)), { "value": n => { deviceLinkCollectionResponse.value = n.getCollectionOfObjectValues(createDeviceLinkFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param DeviceUsageSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDeviceUsageSummary(deviceUsageSummary = {}) {
    return {
        "activeDeviceCount": n => { deviceUsageSummary.activeDeviceCount = n.getNumberValue(); },
        "backingStoreEnabled": n => { deviceUsageSummary.backingStoreEnabled = true; },
        "inactiveDeviceCount": n => { deviceUsageSummary.inactiveDeviceCount = n.getNumberValue(); },
        "@odata.type": n => { deviceUsageSummary.odataType = n.getStringValue(); },
        "totalDeviceCount": n => { deviceUsageSummary.totalDeviceCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param DiscoveredApplicationSegmentReport The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDiscoveredApplicationSegmentReport(discoveredApplicationSegmentReport = {}) {
    return {
        "accessType": n => { discoveredApplicationSegmentReport.accessType = n.getEnumValue(AccessTypeObject); },
        "backingStoreEnabled": n => { discoveredApplicationSegmentReport.backingStoreEnabled = true; },
        "deviceCount": n => { discoveredApplicationSegmentReport.deviceCount = n.getNumberValue(); },
        "discoveredApplicationSegmentId": n => { discoveredApplicationSegmentReport.discoveredApplicationSegmentId = n.getStringValue(); },
        "firstAccessDateTime": n => { discoveredApplicationSegmentReport.firstAccessDateTime = n.getDateValue(); },
        "fqdn": n => { discoveredApplicationSegmentReport.fqdn = n.getStringValue(); },
        "ip": n => { discoveredApplicationSegmentReport.ip = n.getStringValue(); },
        "lastAccessDateTime": n => { discoveredApplicationSegmentReport.lastAccessDateTime = n.getDateValue(); },
        "@odata.type": n => { discoveredApplicationSegmentReport.odataType = n.getStringValue(); },
        "port": n => { discoveredApplicationSegmentReport.port = n.getNumberValue(); },
        "totalBytesReceived": n => { discoveredApplicationSegmentReport.totalBytesReceived = n.getNumberValue(); },
        "totalBytesSent": n => { discoveredApplicationSegmentReport.totalBytesSent = n.getNumberValue(); },
        "transactionCount": n => { discoveredApplicationSegmentReport.transactionCount = n.getNumberValue(); },
        "transportProtocol": n => { discoveredApplicationSegmentReport.transportProtocol = n.getEnumValue(NetworkingProtocolObject); },
        "userCount": n => { discoveredApplicationSegmentReport.userCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param EnterpriseApplicationReport The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoEnterpriseApplicationReport(enterpriseApplicationReport = {}) {
    return {
        "accessType": n => { enterpriseApplicationReport.accessType = n.getEnumValue(AccessTypeObject); },
        "applicationId": n => { enterpriseApplicationReport.applicationId = n.getStringValue(); },
        "backingStoreEnabled": n => { enterpriseApplicationReport.backingStoreEnabled = true; },
        "deviceCount": n => { enterpriseApplicationReport.deviceCount = n.getNumberValue(); },
        "firstAccessDateTime": n => { enterpriseApplicationReport.firstAccessDateTime = n.getDateValue(); },
        "lastAccessDateTime": n => { enterpriseApplicationReport.lastAccessDateTime = n.getDateValue(); },
        "@odata.type": n => { enterpriseApplicationReport.odataType = n.getStringValue(); },
        "totalBytesReceived": n => { enterpriseApplicationReport.totalBytesReceived = n.getNumberValue(); },
        "totalBytesSent": n => { enterpriseApplicationReport.totalBytesSent = n.getNumberValue(); },
        "trafficType": n => { enterpriseApplicationReport.trafficType = n.getEnumValue(TrafficTypeObject); },
        "transactionCount": n => { enterpriseApplicationReport.transactionCount = n.getNumberValue(); },
        "userCount": n => { enterpriseApplicationReport.userCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param EntitiesSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoEntitiesSummary(entitiesSummary = {}) {
    return {
        "backingStoreEnabled": n => { entitiesSummary.backingStoreEnabled = true; },
        "deviceCount": n => { entitiesSummary.deviceCount = n.getNumberValue(); },
        "@odata.type": n => { entitiesSummary.odataType = n.getStringValue(); },
        "trafficType": n => { entitiesSummary.trafficType = n.getEnumValue(TrafficTypeObject); },
        "userCount": n => { entitiesSummary.userCount = n.getNumberValue(); },
        "workloadCount": n => { entitiesSummary.workloadCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param ExtendedProperties The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoExtendedProperties(extendedProperties = {}) {
    return Object.assign({}, deserializeIntoDictionary(extendedProperties));
}
/**
 * The deserialization information for the current model
 * @param ExternalCertificateAuthorityCertificate The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoExternalCertificateAuthorityCertificate(externalCertificateAuthorityCertificate = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(externalCertificateAuthorityCertificate)), { "certificate": n => { externalCertificateAuthorityCertificate.certificate = n.getStringValue(); }, "certificateSigningRequest": n => { externalCertificateAuthorityCertificate.certificateSigningRequest = n.getStringValue(); }, "chain": n => { externalCertificateAuthorityCertificate.chain = n.getStringValue(); }, "commonName": n => { externalCertificateAuthorityCertificate.commonName = n.getStringValue(); }, "name": n => { externalCertificateAuthorityCertificate.name = n.getStringValue(); }, "organizationName": n => { externalCertificateAuthorityCertificate.organizationName = n.getStringValue(); }, "status": n => { externalCertificateAuthorityCertificate.status = n.getEnumValue(TlsCertificateStatusObject); }, "validity": n => { externalCertificateAuthorityCertificate.validity = n.getObjectValue(createValidityDateFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ExternalCertificateAuthorityCertificateCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoExternalCertificateAuthorityCertificateCollectionResponse(externalCertificateAuthorityCertificateCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(externalCertificateAuthorityCertificateCollectionResponse)), { "value": n => { externalCertificateAuthorityCertificateCollectionResponse.value = n.getCollectionOfObjectValues(createExternalCertificateAuthorityCertificateFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param FilteringPolicy The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFilteringPolicy(filteringPolicy = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicy(filteringPolicy)), { "action": n => { filteringPolicy.action = n.getEnumValue(FilteringPolicyActionObject); }, "createdDateTime": n => { filteringPolicy.createdDateTime = n.getDateValue(); }, "lastModifiedDateTime": n => { filteringPolicy.lastModifiedDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param FilteringPolicyCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFilteringPolicyCollectionResponse(filteringPolicyCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(filteringPolicyCollectionResponse)), { "value": n => { filteringPolicyCollectionResponse.value = n.getCollectionOfObjectValues(createFilteringPolicyFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param FilteringPolicyLink The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFilteringPolicyLink(filteringPolicyLink = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicyLink(filteringPolicyLink)), { "createdDateTime": n => { filteringPolicyLink.createdDateTime = n.getDateValue(); }, "lastModifiedDateTime": n => { filteringPolicyLink.lastModifiedDateTime = n.getDateValue(); }, "loggingState": n => { filteringPolicyLink.loggingState = n.getEnumValue(StatusObject); }, "priority": n => { filteringPolicyLink.priority = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param FilteringProfile The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFilteringProfile(filteringProfile = {}) {
    return Object.assign(Object.assign({}, deserializeIntoProfile(filteringProfile)), { "conditionalAccessPolicies": n => { filteringProfile.conditionalAccessPolicies = n.getCollectionOfObjectValues(createConditionalAccessPolicyFromDiscriminatorValue); }, "createdDateTime": n => { filteringProfile.createdDateTime = n.getDateValue(); }, "priority": n => { filteringProfile.priority = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param FilteringProfileCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFilteringProfileCollectionResponse(filteringProfileCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(filteringProfileCollectionResponse)), { "value": n => { filteringProfileCollectionResponse.value = n.getCollectionOfObjectValues(createFilteringProfileFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param FilteringRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFilteringRule(filteringRule = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicyRule(filteringRule)), { "destinations": n => { filteringRule.destinations = n.getCollectionOfObjectValues(createRuleDestinationFromDiscriminatorValue); }, "ruleType": n => { filteringRule.ruleType = n.getEnumValue(NetworkDestinationTypeObject); } });
}
/**
 * The deserialization information for the current model
 * @param ForwardingOptions The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoForwardingOptions(forwardingOptions = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(forwardingOptions)), { "skipDnsLookupState": n => { forwardingOptions.skipDnsLookupState = n.getEnumValue(StatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param ForwardingPolicy The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoForwardingPolicy(forwardingPolicy = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicy(forwardingPolicy)), { "privateAccessAppId": n => { forwardingPolicy.privateAccessAppId = n.getStringValue(); }, "trafficForwardingType": n => { forwardingPolicy.trafficForwardingType = n.getEnumValue(TrafficForwardingTypeObject); } });
}
/**
 * The deserialization information for the current model
 * @param ForwardingPolicyCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoForwardingPolicyCollectionResponse(forwardingPolicyCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(forwardingPolicyCollectionResponse)), { "value": n => { forwardingPolicyCollectionResponse.value = n.getCollectionOfObjectValues(createForwardingPolicyFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ForwardingPolicyLink The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoForwardingPolicyLink(forwardingPolicyLink = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicyLink(forwardingPolicyLink)), { "priority": n => { forwardingPolicyLink.priority = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param ForwardingProfile The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoForwardingProfile(forwardingProfile = {}) {
    return Object.assign({}, deserializeIntoForwardingProfileBase(forwardingProfile));
}
/**
 * The deserialization information for the current model
 * @param ForwardingProfileBase The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoForwardingProfileBase(forwardingProfileBase = {}) {
    return Object.assign(Object.assign({}, deserializeIntoProfile(forwardingProfileBase)), { "associations": n => { forwardingProfileBase.associations = n.getCollectionOfObjectValues(createAssociationFromDiscriminatorValue); }, "isCustomProfile": n => { forwardingProfileBase.isCustomProfile = n.getBooleanValue(); }, "priority": n => { forwardingProfileBase.priority = n.getNumberValue(); }, "servicePrincipal": n => { forwardingProfileBase.servicePrincipal = n.getObjectValue(createServicePrincipalFromDiscriminatorValue); }, "trafficForwardingType": n => { forwardingProfileBase.trafficForwardingType = n.getEnumValue(TrafficForwardingTypeObject); } });
}
/**
 * The deserialization information for the current model
 * @param ForwardingProfileCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoForwardingProfileCollectionResponse(forwardingProfileCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(forwardingProfileCollectionResponse)), { "value": n => { forwardingProfileCollectionResponse.value = n.getCollectionOfObjectValues(createForwardingProfileFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ForwardingRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoForwardingRule(forwardingRule = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicyRule(forwardingRule)), { "action": n => { forwardingRule.action = n.getEnumValue(ForwardingRuleActionObject); }, "clientFallbackAction": n => { forwardingRule.clientFallbackAction = n.getEnumValue(ClientFallbackActionObject); }, "destinations": n => { forwardingRule.destinations = n.getCollectionOfObjectValues(createRuleDestinationFromDiscriminatorValue); }, "ruleType": n => { forwardingRule.ruleType = n.getEnumValue(NetworkDestinationTypeObject); } });
}
/**
 * The deserialization information for the current model
 * @param Fqdn The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFqdn(fqdn = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRuleDestination(fqdn)), { "value": n => { fqdn.value = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param FqdnFilteringRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoFqdnFilteringRule(fqdnFilteringRule = {}) {
    return Object.assign({}, deserializeIntoFilteringRule(fqdnFilteringRule));
}
/**
 * The deserialization information for the current model
 * @param GenerativeAIInsight The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGenerativeAIInsight(generativeAIInsight = {}) {
    return {
        "activity": n => { generativeAIInsight.activity = n.getEnumValue(ApplicationActivityObject); },
        "backingStoreEnabled": n => { generativeAIInsight.backingStoreEnabled = true; },
        "content": n => { generativeAIInsight.content = n.getStringValue(); },
        "createdDateTime": n => { generativeAIInsight.createdDateTime = n.getDateValue(); },
        "destinationUrl": n => { generativeAIInsight.destinationUrl = n.getStringValue(); },
        "eventId": n => { generativeAIInsight.eventId = n.getStringValue(); },
        "eventType": n => { generativeAIInsight.eventType = n.getStringValue(); },
        "mcpClientName": n => { generativeAIInsight.mcpClientName = n.getStringValue(); },
        "mcpServerName": n => { generativeAIInsight.mcpServerName = n.getStringValue(); },
        "@odata.type": n => { generativeAIInsight.odataType = n.getStringValue(); },
        "sessionId": n => { generativeAIInsight.sessionId = n.getStringValue(); },
        "subactivity": n => { generativeAIInsight.subactivity = n.getStringValue(); },
        "transactionId": n => { generativeAIInsight.transactionId = n.getStringValue(); },
        "userPrincipalName": n => { generativeAIInsight.userPrincipalName = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param GenerativeAIInsightCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGenerativeAIInsightCollectionResponse(generativeAIInsightCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(generativeAIInsightCollectionResponse)), { "value": n => { generativeAIInsightCollectionResponse.value = n.getCollectionOfObjectValues(createGenerativeAIInsightFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param Headers The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoHeaders(headers = {}) {
    return {
        "backingStoreEnabled": n => { headers.backingStoreEnabled = true; },
        "@odata.type": n => { headers.odataType = n.getStringValue(); },
        "origin": n => { headers.origin = n.getStringValue(); },
        "referrer": n => { headers.referrer = n.getStringValue(); },
        "xForwardedFor": n => { headers.xForwardedFor = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param InternetAccessForwardingRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoInternetAccessForwardingRule(internetAccessForwardingRule = {}) {
    return Object.assign(Object.assign({}, deserializeIntoForwardingRule(internetAccessForwardingRule)), { "ports": n => { internetAccessForwardingRule.ports = n.getCollectionOfPrimitiveValues("string"); }, "protocol": n => { internetAccessForwardingRule.protocol = n.getEnumValue(NetworkingProtocolObject); } });
}
/**
 * The deserialization information for the current model
 * @param IpAddress The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoIpAddress(ipAddress = {}) {
    return Object.assign(Object.assign({}, deserializeIntoIpDestination(ipAddress)), { "value": n => { ipAddress.value = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param IpDestination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoIpDestination(ipDestination = {}) {
    return Object.assign({}, deserializeIntoRuleDestination(ipDestination));
}
/**
 * The deserialization information for the current model
 * @param IpRange The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoIpRange(ipRange = {}) {
    return Object.assign(Object.assign({}, deserializeIntoIpDestination(ipRange)), { "beginAddress": n => { ipRange.beginAddress = n.getStringValue(); }, "endAddress": n => { ipRange.endAddress = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param IpSubnet The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoIpSubnet(ipSubnet = {}) {
    return Object.assign(Object.assign({}, deserializeIntoIpDestination(ipSubnet)), { "value": n => { ipSubnet.value = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param LocalConnectivityConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoLocalConnectivityConfiguration(localConnectivityConfiguration = {}) {
    return {
        "asn": n => { localConnectivityConfiguration.asn = n.getNumberValue(); },
        "backingStoreEnabled": n => { localConnectivityConfiguration.backingStoreEnabled = true; },
        "bgpAddress": n => { localConnectivityConfiguration.bgpAddress = n.getStringValue(); },
        "endpoint": n => { localConnectivityConfiguration.endpoint = n.getStringValue(); },
        "@odata.type": n => { localConnectivityConfiguration.odataType = n.getStringValue(); },
        "region": n => { localConnectivityConfiguration.region = n.getEnumValue(RegionObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param Logs The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoLogs(logs = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(logs)), { "connections": n => { logs.connections = n.getCollectionOfObjectValues(createConnectionFromDiscriminatorValue); }, "generativeAIInsights": n => { logs.generativeAIInsights = n.getCollectionOfObjectValues(createGenerativeAIInsightFromDiscriminatorValue); }, "remoteNetworks": n => { logs.remoteNetworks = n.getCollectionOfObjectValues(createRemoteNetworkHealthEventFromDiscriminatorValue); }, "traffic": n => { logs.traffic = n.getCollectionOfObjectValues(createNetworkAccessTrafficFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param M365ForwardingRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoM365ForwardingRule(m365ForwardingRule = {}) {
    return Object.assign(Object.assign({}, deserializeIntoForwardingRule(m365ForwardingRule)), { "category": n => { m365ForwardingRule.category = n.getEnumValue(ForwardingCategoryObject); }, "ports": n => { m365ForwardingRule.ports = n.getCollectionOfPrimitiveValues("string"); }, "protocol": n => { m365ForwardingRule.protocol = n.getEnumValue(NetworkingProtocolObject); } });
}
/**
 * The deserialization information for the current model
 * @param MarkdownBlockMessageConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMarkdownBlockMessageConfiguration(markdownBlockMessageConfiguration = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBlockPageConfigurationBase(markdownBlockMessageConfiguration)), { "body": n => { markdownBlockMessageConfiguration.body = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param NetworkAccessRoot The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoNetworkAccessRoot(networkAccessRoot = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(networkAccessRoot)), { "alerts": n => { networkAccessRoot.alerts = n.getCollectionOfObjectValues(createAlertFromDiscriminatorValue); }, "cloudFirewallPolicies": n => { networkAccessRoot.cloudFirewallPolicies = n.getCollectionOfObjectValues(createCloudFirewallPolicyFromDiscriminatorValue); }, "connectivity": n => { networkAccessRoot.connectivity = n.getObjectValue(createConnectivityFromDiscriminatorValue); }, "filteringPolicies": n => { networkAccessRoot.filteringPolicies = n.getCollectionOfObjectValues(createFilteringPolicyFromDiscriminatorValue); }, "filteringProfiles": n => { networkAccessRoot.filteringProfiles = n.getCollectionOfObjectValues(createFilteringProfileFromDiscriminatorValue); }, "forwardingPolicies": n => { networkAccessRoot.forwardingPolicies = n.getCollectionOfObjectValues(createForwardingPolicyFromDiscriminatorValue); }, "forwardingProfiles": n => { networkAccessRoot.forwardingProfiles = n.getCollectionOfObjectValues(createForwardingProfileFromDiscriminatorValue); }, "logs": n => { networkAccessRoot.logs = n.getObjectValue(createLogsFromDiscriminatorValue); }, "reports": n => { networkAccessRoot.reports = n.getObjectValue(createReportsFromDiscriminatorValue); }, "settings": n => { networkAccessRoot.settings = n.getObjectValue(createSettingsFromDiscriminatorValue); }, "tenantStatus": n => { networkAccessRoot.tenantStatus = n.getObjectValue(createTenantStatusFromDiscriminatorValue); }, "threatIntelligencePolicies": n => { networkAccessRoot.threatIntelligencePolicies = n.getCollectionOfObjectValues(createThreatIntelligencePolicyFromDiscriminatorValue); }, "tls": n => { networkAccessRoot.tls = n.getObjectValue(createTlsTerminationFromDiscriminatorValue); }, "tlsInspectionPolicies": n => { networkAccessRoot.tlsInspectionPolicies = n.getCollectionOfObjectValues(createTlsInspectionPolicyFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param NetworkAccessTraffic The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoNetworkAccessTraffic(networkAccessTraffic = {}) {
    return {
        "action": n => { networkAccessTraffic.action = n.getEnumValue(FilteringPolicyActionObject); },
        "agentVersion": n => { networkAccessTraffic.agentVersion = n.getStringValue(); },
        "applicationSnapshot": n => { networkAccessTraffic.applicationSnapshot = n.getObjectValue(createApplicationSnapshotFromDiscriminatorValue); },
        "backingStoreEnabled": n => { networkAccessTraffic.backingStoreEnabled = true; },
        "cloudApplicationMetadata": n => { networkAccessTraffic.cloudApplicationMetadata = n.getObjectValue(createCloudApplicationMetadataFromDiscriminatorValue); },
        "connectionId": n => { networkAccessTraffic.connectionId = n.getStringValue(); },
        "createdDateTime": n => { networkAccessTraffic.createdDateTime = n.getDateValue(); },
        "description": n => { networkAccessTraffic.description = n.getStringValue(); },
        "destinationFQDN": n => { networkAccessTraffic.destinationFQDN = n.getStringValue(); },
        "destinationIp": n => { networkAccessTraffic.destinationIp = n.getStringValue(); },
        "destinationPort": n => { networkAccessTraffic.destinationPort = n.getNumberValue(); },
        "destinationUrl": n => { networkAccessTraffic.destinationUrl = n.getStringValue(); },
        "destinationWebCategory": n => { networkAccessTraffic.destinationWebCategory = n.getObjectValue(createWebCategoryFromDiscriminatorValue); },
        "device": n => { networkAccessTraffic.device = n.getObjectValue(I35341c37cb1156f9816804144a0da7ca28a5bc5a466a4a6c4dd18a73c9fef2f1); },
        "deviceCategory": n => { networkAccessTraffic.deviceCategory = n.getEnumValue(DeviceCategoryObject); },
        "deviceId": n => { networkAccessTraffic.deviceId = n.getStringValue(); },
        "deviceOperatingSystem": n => { networkAccessTraffic.deviceOperatingSystem = n.getStringValue(); },
        "deviceOperatingSystemVersion": n => { networkAccessTraffic.deviceOperatingSystemVersion = n.getStringValue(); },
        "filteringProfileId": n => { networkAccessTraffic.filteringProfileId = n.getStringValue(); },
        "filteringProfileName": n => { networkAccessTraffic.filteringProfileName = n.getStringValue(); },
        "headers": n => { networkAccessTraffic.headers = n.getObjectValue(createHeadersFromDiscriminatorValue); },
        "httpMethod": n => { networkAccessTraffic.httpMethod = n.getEnumValue(HttpMethodObject); },
        "initiatingProcessName": n => { networkAccessTraffic.initiatingProcessName = n.getStringValue(); },
        "networkProtocol": n => { networkAccessTraffic.networkProtocol = n.getEnumValue(NetworkingProtocolObject); },
        "@odata.type": n => { networkAccessTraffic.odataType = n.getStringValue(); },
        "operationStatus": n => { networkAccessTraffic.operationStatus = n.getEnumValue(NetworkTrafficOperationStatusObject); },
        "policyId": n => { networkAccessTraffic.policyId = n.getStringValue(); },
        "policyName": n => { networkAccessTraffic.policyName = n.getStringValue(); },
        "policyRuleId": n => { networkAccessTraffic.policyRuleId = n.getStringValue(); },
        "policyRuleName": n => { networkAccessTraffic.policyRuleName = n.getStringValue(); },
        "popProcessingRegion": n => { networkAccessTraffic.popProcessingRegion = n.getStringValue(); },
        "privateAccessDetails": n => { networkAccessTraffic.privateAccessDetails = n.getObjectValue(createPrivateAccessDetailsFromDiscriminatorValue); },
        "receivedBytes": n => { networkAccessTraffic.receivedBytes = n.getNumberValue(); },
        "remoteNetworkId": n => { networkAccessTraffic.remoteNetworkId = n.getStringValue(); },
        "resourceTenantId": n => { networkAccessTraffic.resourceTenantId = n.getStringValue(); },
        "responseCode": n => { networkAccessTraffic.responseCode = n.getNumberValue(); },
        "sentBytes": n => { networkAccessTraffic.sentBytes = n.getNumberValue(); },
        "sessionId": n => { networkAccessTraffic.sessionId = n.getStringValue(); },
        "sourceIp": n => { networkAccessTraffic.sourceIp = n.getStringValue(); },
        "sourcePort": n => { networkAccessTraffic.sourcePort = n.getNumberValue(); },
        "tenantId": n => { networkAccessTraffic.tenantId = n.getStringValue(); },
        "threatType": n => { networkAccessTraffic.threatType = n.getStringValue(); },
        "trafficType": n => { networkAccessTraffic.trafficType = n.getEnumValue(TrafficTypeObject); },
        "transactionId": n => { networkAccessTraffic.transactionId = n.getStringValue(); },
        "transportProtocol": n => { networkAccessTraffic.transportProtocol = n.getEnumValue(NetworkingProtocolObject); },
        "user": n => { networkAccessTraffic.user = n.getObjectValue(I76468935476edf00ba62610ba93d13d7194a94fc3b9375d1eacaf60b72b6323e); },
        "userId": n => { networkAccessTraffic.userId = n.getStringValue(); },
        "userPrincipalName": n => { networkAccessTraffic.userPrincipalName = n.getStringValue(); },
        "vendorNames": n => { networkAccessTraffic.vendorNames = n.getCollectionOfPrimitiveValues("string"); },
    };
}
/**
 * The deserialization information for the current model
 * @param NetworkAccessTrafficCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoNetworkAccessTrafficCollectionResponse(networkAccessTrafficCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(networkAccessTrafficCollectionResponse)), { "value": n => { networkAccessTrafficCollectionResponse.value = n.getCollectionOfObjectValues(createNetworkAccessTrafficFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param PeerConnectivityConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPeerConnectivityConfiguration(peerConnectivityConfiguration = {}) {
    return {
        "asn": n => { peerConnectivityConfiguration.asn = n.getNumberValue(); },
        "backingStoreEnabled": n => { peerConnectivityConfiguration.backingStoreEnabled = true; },
        "bgpAddress": n => { peerConnectivityConfiguration.bgpAddress = n.getStringValue(); },
        "endpoint": n => { peerConnectivityConfiguration.endpoint = n.getStringValue(); },
        "@odata.type": n => { peerConnectivityConfiguration.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param Policy The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPolicy(policy = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(policy)), { "description": n => { policy.description = n.getStringValue(); }, "name": n => { policy.name = n.getStringValue(); }, "policyRules": n => { policy.policyRules = n.getCollectionOfObjectValues(createPolicyRuleFromDiscriminatorValue); }, "version": n => { policy.version = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param PolicyLink The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPolicyLink(policyLink = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(policyLink)), { "policy": n => { policyLink.policy = n.getObjectValue(createPolicyFromDiscriminatorValue); }, "state": n => { policyLink.state = n.getEnumValue(StatusObject); }, "version": n => { policyLink.version = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param PolicyLinkCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPolicyLinkCollectionResponse(policyLinkCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(policyLinkCollectionResponse)), { "value": n => { policyLinkCollectionResponse.value = n.getCollectionOfObjectValues(createPolicyLinkFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param PolicyRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPolicyRule(policyRule = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(policyRule)), { "name": n => { policyRule.name = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param PolicyRuleCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPolicyRuleCollectionResponse(policyRuleCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(policyRuleCollectionResponse)), { "value": n => { policyRuleCollectionResponse.value = n.getCollectionOfObjectValues(createPolicyRuleFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param PolicyRuleDelta The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPolicyRuleDelta(policyRuleDelta = {}) {
    return {
        "action": n => { policyRuleDelta.action = n.getEnumValue(ForwardingRuleActionObject); },
        "backingStoreEnabled": n => { policyRuleDelta.backingStoreEnabled = true; },
        "@odata.type": n => { policyRuleDelta.odataType = n.getStringValue(); },
        "ruleId": n => { policyRuleDelta.ruleId = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param PrivateAccessDetails The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPrivateAccessDetails(privateAccessDetails = {}) {
    return {
        "accessType": n => { privateAccessDetails.accessType = n.getEnumValue(AccessTypeObject); },
        "appSegmentId": n => { privateAccessDetails.appSegmentId = n.getStringValue(); },
        "backingStoreEnabled": n => { privateAccessDetails.backingStoreEnabled = true; },
        "connectionStatus": n => { privateAccessDetails.connectionStatus = n.getEnumValue(ConnectionStatusObject); },
        "connectorId": n => { privateAccessDetails.connectorId = n.getStringValue(); },
        "connectorIp": n => { privateAccessDetails.connectorIp = n.getStringValue(); },
        "connectorName": n => { privateAccessDetails.connectorName = n.getStringValue(); },
        "@odata.type": n => { privateAccessDetails.odataType = n.getStringValue(); },
        "processingRegion": n => { privateAccessDetails.processingRegion = n.getStringValue(); },
        "thirdPartyTokenDetails": n => { privateAccessDetails.thirdPartyTokenDetails = n.getObjectValue(createThirdPartyTokenDetailsFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param PrivateAccessForwardingRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPrivateAccessForwardingRule(privateAccessForwardingRule = {}) {
    return Object.assign({}, deserializeIntoForwardingRule(privateAccessForwardingRule));
}
/**
 * The deserialization information for the current model
 * @param Profile The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoProfile(profile = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseEntity(profile)), { "description": n => { profile.description = n.getStringValue(); }, "lastModifiedDateTime": n => { profile.lastModifiedDateTime = n.getDateValue(); }, "policies": n => { profile.policies = n.getCollectionOfObjectValues(createPolicyLinkFromDiscriminatorValue); }, "state": n => { profile.state = n.getEnumValue(StatusObject); }, "version": n => { profile.version = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RedundancyConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRedundancyConfiguration(redundancyConfiguration = {}) {
    return {
        "backingStoreEnabled": n => { redundancyConfiguration.backingStoreEnabled = true; },
        "@odata.type": n => { redundancyConfiguration.odataType = n.getStringValue(); },
        "redundancyTier": n => { redundancyConfiguration.redundancyTier = n.getEnumValue(RedundancyTierObject); },
        "zoneLocalIpAddress": n => { redundancyConfiguration.zoneLocalIpAddress = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param RelatedDestination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedDestination(relatedDestination = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedDestination)), { "fqdn": n => { relatedDestination.fqdn = n.getStringValue(); }, "ip": n => { relatedDestination.ip = n.getStringValue(); }, "networkingProtocol": n => { relatedDestination.networkingProtocol = n.getEnumValue(NetworkingProtocolObject); }, "port": n => { relatedDestination.port = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedDevice The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedDevice(relatedDevice = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedDevice)), { "deviceId": n => { relatedDevice.deviceId = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedFile The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedFile(relatedFile = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedFile)), { "directory": n => { relatedFile.directory = n.getStringValue(); }, "name": n => { relatedFile.name = n.getStringValue(); }, "sizeInBytes": n => { relatedFile.sizeInBytes = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedFileHash The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedFileHash(relatedFileHash = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedFileHash)), { "algorithm": n => { relatedFileHash.algorithm = n.getEnumValue(AlgorithmObject); }, "value": n => { relatedFileHash.value = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedMalware The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedMalware(relatedMalware = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedMalware)), { "category": n => { relatedMalware.category = n.getEnumValue(MalwareCategoryObject); }, "name": n => { relatedMalware.name = n.getStringValue(); }, "severity": n => { relatedMalware.severity = n.getEnumValue(ThreatSeverityObject); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedRemoteNetwork The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedRemoteNetwork(relatedRemoteNetwork = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedRemoteNetwork)), { "remoteNetworkId": n => { relatedRemoteNetwork.remoteNetworkId = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedResource The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedResource(relatedResource = {}) {
    return {
        "backingStoreEnabled": n => { relatedResource.backingStoreEnabled = true; },
        "@odata.type": n => { relatedResource.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param RelatedTenant The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedTenant(relatedTenant = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedTenant)), { "tenantId": n => { relatedTenant.tenantId = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedThreatIntelligence The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedThreatIntelligence(relatedThreatIntelligence = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedThreatIntelligence)), { "threatCount": n => { relatedThreatIntelligence.threatCount = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedToken The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedToken(relatedToken = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedToken)), { "uniqueTokenIdentifier": n => { relatedToken.uniqueTokenIdentifier = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedTransaction The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedTransaction(relatedTransaction = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedTransaction)), { "transactionId": n => { relatedTransaction.transactionId = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedUrl The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedUrl(relatedUrl = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedUrl)), { "url": n => { relatedUrl.url = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedUser The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedUser(relatedUser = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedUser)), { "userId": n => { relatedUser.userId = n.getStringValue(); }, "userPrincipalName": n => { relatedUser.userPrincipalName = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedWebCategory The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedWebCategory(relatedWebCategory = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRelatedResource(relatedWebCategory)), { "webCategoryName": n => { relatedWebCategory.webCategoryName = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RemoteNetwork The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRemoteNetwork(remoteNetwork = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseEntity(remoteNetwork)), { "connectivityConfiguration": n => { remoteNetwork.connectivityConfiguration = n.getObjectValue(createRemoteNetworkConnectivityConfigurationFromDiscriminatorValue); }, "deviceLinks": n => { remoteNetwork.deviceLinks = n.getCollectionOfObjectValues(createDeviceLinkFromDiscriminatorValue); }, "forwardingProfiles": n => { remoteNetwork.forwardingProfiles = n.getCollectionOfObjectValues(createForwardingProfileFromDiscriminatorValue); }, "lastModifiedDateTime": n => { remoteNetwork.lastModifiedDateTime = n.getDateValue(); }, "region": n => { remoteNetwork.region = n.getEnumValue(RegionObject); }, "version": n => { remoteNetwork.version = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RemoteNetworkCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRemoteNetworkCollectionResponse(remoteNetworkCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(remoteNetworkCollectionResponse)), { "value": n => { remoteNetworkCollectionResponse.value = n.getCollectionOfObjectValues(createRemoteNetworkFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param RemoteNetworkConnectivityConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRemoteNetworkConnectivityConfiguration(remoteNetworkConnectivityConfiguration = {}) {
    return {
        "backingStoreEnabled": n => { remoteNetworkConnectivityConfiguration.backingStoreEnabled = true; },
        "links": n => { remoteNetworkConnectivityConfiguration.links = n.getCollectionOfObjectValues(createConnectivityConfigurationLinkFromDiscriminatorValue); },
        "@odata.type": n => { remoteNetworkConnectivityConfiguration.odataType = n.getStringValue(); },
        "remoteNetworkId": n => { remoteNetworkConnectivityConfiguration.remoteNetworkId = n.getStringValue(); },
        "remoteNetworkName": n => { remoteNetworkConnectivityConfiguration.remoteNetworkName = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param RemoteNetworkHealthEvent The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRemoteNetworkHealthEvent(remoteNetworkHealthEvent = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(remoteNetworkHealthEvent)), { "bgpRoutesAdvertisedCount": n => { remoteNetworkHealthEvent.bgpRoutesAdvertisedCount = n.getNumberValue(); }, "createdDateTime": n => { remoteNetworkHealthEvent.createdDateTime = n.getDateValue(); }, "description": n => { remoteNetworkHealthEvent.description = n.getStringValue(); }, "destinationIp": n => { remoteNetworkHealthEvent.destinationIp = n.getStringValue(); }, "receivedBytes": n => { remoteNetworkHealthEvent.receivedBytes = n.getNumberValue(); }, "remoteNetworkId": n => { remoteNetworkHealthEvent.remoteNetworkId = n.getStringValue(); }, "sentBytes": n => { remoteNetworkHealthEvent.sentBytes = n.getNumberValue(); }, "sourceIp": n => { remoteNetworkHealthEvent.sourceIp = n.getStringValue(); }, "status": n => { remoteNetworkHealthEvent.status = n.getEnumValue(RemoteNetworkStatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param RemoteNetworkHealthEventCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRemoteNetworkHealthEventCollectionResponse(remoteNetworkHealthEventCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(remoteNetworkHealthEventCollectionResponse)), { "value": n => { remoteNetworkHealthEventCollectionResponse.value = n.getCollectionOfObjectValues(createRemoteNetworkHealthEventFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param Reports The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoReports(reports = {}) {
    return Object.assign({}, deserializeIntoEntity(reports));
}
/**
 * The deserialization information for the current model
 * @param RuleDestination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRuleDestination(ruleDestination = {}) {
    return {
        "backingStoreEnabled": n => { ruleDestination.backingStoreEnabled = true; },
        "@odata.type": n => { ruleDestination.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param Settings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSettings(settings = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(settings)), { "conditionalAccess": n => { settings.conditionalAccess = n.getObjectValue(createConditionalAccessSettingsFromDiscriminatorValue); }, "crossTenantAccess": n => { settings.crossTenantAccess = n.getObjectValue(createCrossTenantAccessSettingsFromDiscriminatorValue); }, "customBlockPage": n => { settings.customBlockPage = n.getObjectValue(createCustomBlockPageFromDiscriminatorValue); }, "forwardingOptions": n => { settings.forwardingOptions = n.getObjectValue(createForwardingOptionsFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TenantStatus The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTenantStatus(tenantStatus = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(tenantStatus)), { "onboardingErrorMessage": n => { tenantStatus.onboardingErrorMessage = n.getStringValue(); }, "onboardingStatus": n => { tenantStatus.onboardingStatus = n.getEnumValue(OnboardingStatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param ThirdPartyTokenDetails The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThirdPartyTokenDetails(thirdPartyTokenDetails = {}) {
    return {
        "backingStoreEnabled": n => { thirdPartyTokenDetails.backingStoreEnabled = true; },
        "expirationDateTime": n => { thirdPartyTokenDetails.expirationDateTime = n.getDateValue(); },
        "issuedAtDateTime": n => { thirdPartyTokenDetails.issuedAtDateTime = n.getDateValue(); },
        "@odata.type": n => { thirdPartyTokenDetails.odataType = n.getStringValue(); },
        "uniqueTokenIdentifier": n => { thirdPartyTokenDetails.uniqueTokenIdentifier = n.getStringValue(); },
        "validFromDateTime": n => { thirdPartyTokenDetails.validFromDateTime = n.getDateValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligenceDestination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligenceDestination(threatIntelligenceDestination = {}) {
    return {
        "backingStoreEnabled": n => { threatIntelligenceDestination.backingStoreEnabled = true; },
        "@odata.type": n => { threatIntelligenceDestination.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligenceFqdnDestination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligenceFqdnDestination(threatIntelligenceFqdnDestination = {}) {
    return Object.assign(Object.assign({}, deserializeIntoThreatIntelligenceDestination(threatIntelligenceFqdnDestination)), { "values": n => { threatIntelligenceFqdnDestination.values = n.getCollectionOfPrimitiveValues("string"); } });
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligenceMatchingConditions The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligenceMatchingConditions(threatIntelligenceMatchingConditions = {}) {
    return {
        "backingStoreEnabled": n => { threatIntelligenceMatchingConditions.backingStoreEnabled = true; },
        "destinations": n => { threatIntelligenceMatchingConditions.destinations = n.getCollectionOfObjectValues(createThreatIntelligenceDestinationFromDiscriminatorValue); },
        "@odata.type": n => { threatIntelligenceMatchingConditions.odataType = n.getStringValue(); },
        "severity": n => { threatIntelligenceMatchingConditions.severity = n.getEnumValue(ThreatIntelligenceSeverityObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligencePolicy The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligencePolicy(threatIntelligencePolicy = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicy(threatIntelligencePolicy)), { "lastModifiedDateTime": n => { threatIntelligencePolicy.lastModifiedDateTime = n.getDateValue(); }, "settings": n => { threatIntelligencePolicy.settings = n.getObjectValue(createThreatIntelligencePolicySettingsFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligencePolicyCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligencePolicyCollectionResponse(threatIntelligencePolicyCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(threatIntelligencePolicyCollectionResponse)), { "value": n => { threatIntelligencePolicyCollectionResponse.value = n.getCollectionOfObjectValues(createThreatIntelligencePolicyFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligencePolicyLink The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligencePolicyLink(threatIntelligencePolicyLink = {}) {
    return Object.assign({}, deserializeIntoPolicyLink(threatIntelligencePolicyLink));
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligencePolicySettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligencePolicySettings(threatIntelligencePolicySettings = {}) {
    return {
        "backingStoreEnabled": n => { threatIntelligencePolicySettings.backingStoreEnabled = true; },
        "defaultAction": n => { threatIntelligencePolicySettings.defaultAction = n.getEnumValue(ThreatIntelligenceActionObject); },
        "@odata.type": n => { threatIntelligencePolicySettings.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligenceRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligenceRule(threatIntelligenceRule = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicyRule(threatIntelligenceRule)), { "action": n => { threatIntelligenceRule.action = n.getEnumValue(ThreatIntelligenceActionObject); }, "description": n => { threatIntelligenceRule.description = n.getStringValue(); }, "matchingConditions": n => { threatIntelligenceRule.matchingConditions = n.getObjectValue(createThreatIntelligenceMatchingConditionsFromDiscriminatorValue); }, "priority": n => { threatIntelligenceRule.priority = n.getNumberValue(); }, "settings": n => { threatIntelligenceRule.settings = n.getObjectValue(createThreatIntelligenceRuleSettingsFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ThreatIntelligenceRuleSettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoThreatIntelligenceRuleSettings(threatIntelligenceRuleSettings = {}) {
    return {
        "backingStoreEnabled": n => { threatIntelligenceRuleSettings.backingStoreEnabled = true; },
        "@odata.type": n => { threatIntelligenceRuleSettings.odataType = n.getStringValue(); },
        "status": n => { threatIntelligenceRuleSettings.status = n.getEnumValue(SecurityRuleStatusObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionDestination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionDestination(tlsInspectionDestination = {}) {
    return {
        "backingStoreEnabled": n => { tlsInspectionDestination.backingStoreEnabled = true; },
        "@odata.type": n => { tlsInspectionDestination.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionFqdnDestination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionFqdnDestination(tlsInspectionFqdnDestination = {}) {
    return Object.assign(Object.assign({}, deserializeIntoTlsInspectionDestination(tlsInspectionFqdnDestination)), { "values": n => { tlsInspectionFqdnDestination.values = n.getCollectionOfPrimitiveValues("string"); } });
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionMatchingConditions The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionMatchingConditions(tlsInspectionMatchingConditions = {}) {
    return {
        "backingStoreEnabled": n => { tlsInspectionMatchingConditions.backingStoreEnabled = true; },
        "destinations": n => { tlsInspectionMatchingConditions.destinations = n.getCollectionOfObjectValues(createTlsInspectionDestinationFromDiscriminatorValue); },
        "@odata.type": n => { tlsInspectionMatchingConditions.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionPolicy The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionPolicy(tlsInspectionPolicy = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicy(tlsInspectionPolicy)), { "lastModifiedDateTime": n => { tlsInspectionPolicy.lastModifiedDateTime = n.getDateValue(); }, "settings": n => { tlsInspectionPolicy.settings = n.getObjectValue(createTlsInspectionPolicySettingsFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionPolicyCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionPolicyCollectionResponse(tlsInspectionPolicyCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(tlsInspectionPolicyCollectionResponse)), { "value": n => { tlsInspectionPolicyCollectionResponse.value = n.getCollectionOfObjectValues(createTlsInspectionPolicyFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionPolicyLink The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionPolicyLink(tlsInspectionPolicyLink = {}) {
    return Object.assign({}, deserializeIntoPolicyLink(tlsInspectionPolicyLink));
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionPolicySettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionPolicySettings(tlsInspectionPolicySettings = {}) {
    return {
        "backingStoreEnabled": n => { tlsInspectionPolicySettings.backingStoreEnabled = true; },
        "@odata.type": n => { tlsInspectionPolicySettings.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionRule(tlsInspectionRule = {}) {
    return Object.assign(Object.assign({}, deserializeIntoPolicyRule(tlsInspectionRule)), { "description": n => { tlsInspectionRule.description = n.getStringValue(); }, "matchingConditions": n => { tlsInspectionRule.matchingConditions = n.getObjectValue(createTlsInspectionMatchingConditionsFromDiscriminatorValue); }, "priority": n => { tlsInspectionRule.priority = n.getNumberValue(); }, "settings": n => { tlsInspectionRule.settings = n.getObjectValue(createTlsInspectionRuleSettingsFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionRuleSettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionRuleSettings(tlsInspectionRuleSettings = {}) {
    return {
        "backingStoreEnabled": n => { tlsInspectionRuleSettings.backingStoreEnabled = true; },
        "@odata.type": n => { tlsInspectionRuleSettings.odataType = n.getStringValue(); },
        "status": n => { tlsInspectionRuleSettings.status = n.getEnumValue(SecurityRuleStatusObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param TlsInspectionWebCategoryDestination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsInspectionWebCategoryDestination(tlsInspectionWebCategoryDestination = {}) {
    return Object.assign(Object.assign({}, deserializeIntoTlsInspectionDestination(tlsInspectionWebCategoryDestination)), { "values": n => { tlsInspectionWebCategoryDestination.values = n.getCollectionOfPrimitiveValues("string"); } });
}
/**
 * The deserialization information for the current model
 * @param TlsTermination The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTlsTermination(tlsTermination = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(tlsTermination)), { "externalCertificateAuthorityCertificates": n => { tlsTermination.externalCertificateAuthorityCertificates = n.getCollectionOfObjectValues(createExternalCertificateAuthorityCertificateFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TransactionSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTransactionSummary(transactionSummary = {}) {
    return {
        "backingStoreEnabled": n => { transactionSummary.backingStoreEnabled = true; },
        "blockedCount": n => { transactionSummary.blockedCount = n.getNumberValue(); },
        "@odata.type": n => { transactionSummary.odataType = n.getStringValue(); },
        "totalCount": n => { transactionSummary.totalCount = n.getNumberValue(); },
        "trafficType": n => { transactionSummary.trafficType = n.getEnumValue(TrafficTypeObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param TunnelConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTunnelConfiguration(tunnelConfiguration = {}) {
    return {
        "backingStoreEnabled": n => { tunnelConfiguration.backingStoreEnabled = true; },
        "@odata.type": n => { tunnelConfiguration.odataType = n.getStringValue(); },
        "preSharedKey": n => { tunnelConfiguration.preSharedKey = n.getStringValue(); },
        "zoneRedundancyPreSharedKey": n => { tunnelConfiguration.zoneRedundancyPreSharedKey = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param TunnelConfigurationIKEv2Custom The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTunnelConfigurationIKEv2Custom(tunnelConfigurationIKEv2Custom = {}) {
    return Object.assign(Object.assign({}, deserializeIntoTunnelConfiguration(tunnelConfigurationIKEv2Custom)), { "dhGroup": n => { tunnelConfigurationIKEv2Custom.dhGroup = n.getEnumValue(DhGroupObject); }, "ikeEncryption": n => { tunnelConfigurationIKEv2Custom.ikeEncryption = n.getEnumValue(IkeEncryptionObject); }, "ikeIntegrity": n => { tunnelConfigurationIKEv2Custom.ikeIntegrity = n.getEnumValue(IkeIntegrityObject); }, "ipSecEncryption": n => { tunnelConfigurationIKEv2Custom.ipSecEncryption = n.getEnumValue(IpSecEncryptionObject); }, "ipSecIntegrity": n => { tunnelConfigurationIKEv2Custom.ipSecIntegrity = n.getEnumValue(IpSecIntegrityObject); }, "pfsGroup": n => { tunnelConfigurationIKEv2Custom.pfsGroup = n.getEnumValue(PfsGroupObject); }, "saLifeTimeSeconds": n => { tunnelConfigurationIKEv2Custom.saLifeTimeSeconds = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param TunnelConfigurationIKEv2Default The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTunnelConfigurationIKEv2Default(tunnelConfigurationIKEv2Default = {}) {
    return Object.assign({}, deserializeIntoTunnelConfiguration(tunnelConfigurationIKEv2Default));
}
/**
 * The deserialization information for the current model
 * @param Url The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUrl(url = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRuleDestination(url)), { "value": n => { url.value = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param UrlDestinationFilteringRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUrlDestinationFilteringRule(urlDestinationFilteringRule = {}) {
    return Object.assign({}, deserializeIntoFilteringRule(urlDestinationFilteringRule));
}
/**
 * The deserialization information for the current model
 * @param UsageProfilingPoint The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUsageProfilingPoint(usageProfilingPoint = {}) {
    return {
        "backingStoreEnabled": n => { usageProfilingPoint.backingStoreEnabled = true; },
        "internetAccessTrafficCount": n => { usageProfilingPoint.internetAccessTrafficCount = n.getNumberValue(); },
        "microsoft365AccessTrafficCount": n => { usageProfilingPoint.microsoft365AccessTrafficCount = n.getNumberValue(); },
        "@odata.type": n => { usageProfilingPoint.odataType = n.getStringValue(); },
        "privateAccessTrafficCount": n => { usageProfilingPoint.privateAccessTrafficCount = n.getNumberValue(); },
        "timeStampDateTime": n => { usageProfilingPoint.timeStampDateTime = n.getDateValue(); },
        "totalTrafficCount": n => { usageProfilingPoint.totalTrafficCount = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param User The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUser(user = {}) {
    return {
        "backingStoreEnabled": n => { user.backingStoreEnabled = true; },
        "displayName": n => { user.displayName = n.getStringValue(); },
        "firstAccessDateTime": n => { user.firstAccessDateTime = n.getDateValue(); },
        "lastAccessDateTime": n => { user.lastAccessDateTime = n.getDateValue(); },
        "@odata.type": n => { user.odataType = n.getStringValue(); },
        "totalBytesReceived": n => { user.totalBytesReceived = n.getNumberValue(); },
        "totalBytesSent": n => { user.totalBytesSent = n.getNumberValue(); },
        "trafficType": n => { user.trafficType = n.getEnumValue(TrafficTypeObject); },
        "transactionCount": n => { user.transactionCount = n.getNumberValue(); },
        "userId": n => { user.userId = n.getStringValue(); },
        "userPrincipalName": n => { user.userPrincipalName = n.getStringValue(); },
        "userType": n => { user.userType = n.getEnumValue(UserTypeObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param ValidityDate The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoValidityDate(validityDate = {}) {
    return {
        "backingStoreEnabled": n => { validityDate.backingStoreEnabled = true; },
        "endDateTime": n => { validityDate.endDateTime = n.getDateValue(); },
        "@odata.type": n => { validityDate.odataType = n.getStringValue(); },
        "startDateTime": n => { validityDate.startDateTime = n.getDateValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param WebCategoriesSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWebCategoriesSummary(webCategoriesSummary = {}) {
    return {
        "action": n => { webCategoriesSummary.action = n.getEnumValue(FilteringPolicyActionObject); },
        "backingStoreEnabled": n => { webCategoriesSummary.backingStoreEnabled = true; },
        "deviceCount": n => { webCategoriesSummary.deviceCount = n.getNumberValue(); },
        "@odata.type": n => { webCategoriesSummary.odataType = n.getStringValue(); },
        "transactionCount": n => { webCategoriesSummary.transactionCount = n.getNumberValue(); },
        "userCount": n => { webCategoriesSummary.userCount = n.getNumberValue(); },
        "webCategory": n => { webCategoriesSummary.webCategory = n.getObjectValue(createWebCategoryFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param WebCategory The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWebCategory(webCategory = {}) {
    return Object.assign(Object.assign({}, deserializeIntoRuleDestination(webCategory)), { "displayName": n => { webCategory.displayName = n.getStringValue(); }, "group": n => { webCategory.group = n.getStringValue(); }, "name": n => { webCategory.name = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param WebCategoryFilteringRule The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWebCategoryFilteringRule(webCategoryFilteringRule = {}) {
    return Object.assign({}, deserializeIntoFilteringRule(webCategoryFilteringRule));
}
/**
 * Serializes information the current object
 * @param Alert The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlert(writer, alert = {}, isSerializingDerivedType = false) {
    if (!alert || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, alert, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("actions", alert.actions, serializeAlertAction);
    writer.writeEnumValue("alertType", alert.alertType);
    if (alert.categories)
        writer.writeCollectionOfEnumValues("categories", alert.categories);
    writer.writeStringValue("componentName", alert.componentName);
    writer.writeDateValue("creationDateTime", alert.creationDateTime);
    writer.writeStringValue("description", alert.description);
    writer.writeStringValue("detectionTechnology", alert.detectionTechnology);
    writer.writeStringValue("displayName", alert.displayName);
    writer.writeObjectValue("extendedProperties", alert.extendedProperties, serializeExtendedProperties);
    writer.writeDateValue("firstActivityDateTime", alert.firstActivityDateTime);
    writer.writeBooleanValue("isPreview", alert.isPreview);
    writer.writeDateValue("lastActivityDateTime", alert.lastActivityDateTime);
    writer.writeObjectValue("policy", alert.policy, serializeFilteringPolicy);
    writer.writeStringValue("productName", alert.productName);
    writer.writeCollectionOfObjectValues("relatedResources", alert.relatedResources, serializeRelatedResource);
    writer.writeEnumValue("severity", alert.severity);
    writer.writeCollectionOfPrimitiveValues("subTechniques", alert.subTechniques);
    writer.writeCollectionOfPrimitiveValues("techniques", alert.techniques);
    writer.writeStringValue("vendorName", alert.vendorName);
}
/**
 * Serializes information the current object
 * @param AlertAction The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlertAction(writer, alertAction = {}, isSerializingDerivedType = false) {
    if (!alertAction || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("actionLink", alertAction.actionLink);
    writer.writeStringValue("actionText", alertAction.actionText);
    writer.writeStringValue("@odata.type", alertAction.odataType);
    writer.writeAdditionalData(alertAction.additionalData);
}
/**
 * Serializes information the current object
 * @param AlertCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlertCollectionResponse(writer, alertCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!alertCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, alertCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", alertCollectionResponse.value, serializeAlert);
}
/**
 * Serializes information the current object
 * @param AlertFrequencyPoint The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlertFrequencyPoint(writer, alertFrequencyPoint = {}, isSerializingDerivedType = false) {
    if (!alertFrequencyPoint || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("highSeverityCount", alertFrequencyPoint.highSeverityCount);
    writer.writeNumberValue("informationalSeverityCount", alertFrequencyPoint.informationalSeverityCount);
    writer.writeNumberValue("lowSeverityCount", alertFrequencyPoint.lowSeverityCount);
    writer.writeNumberValue("mediumSeverityCount", alertFrequencyPoint.mediumSeverityCount);
    writer.writeStringValue("@odata.type", alertFrequencyPoint.odataType);
    writer.writeDateValue("timeStampDateTime", alertFrequencyPoint.timeStampDateTime);
    writer.writeAdditionalData(alertFrequencyPoint.additionalData);
}
/**
 * Serializes information the current object
 * @param AlertSeveritySummary The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlertSeveritySummary(writer, alertSeveritySummary = {}, isSerializingDerivedType = false) {
    if (!alertSeveritySummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("count", alertSeveritySummary.count);
    writer.writeStringValue("@odata.type", alertSeveritySummary.odataType);
    writer.writeEnumValue("severity", alertSeveritySummary.severity);
    writer.writeAdditionalData(alertSeveritySummary.additionalData);
}
/**
 * Serializes information the current object
 * @param AlertSummary The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAlertSummary(writer, alertSummary = {}, isSerializingDerivedType = false) {
    if (!alertSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("alertType", alertSummary.alertType);
    writer.writeNumberValue("count", alertSummary.count);
    writer.writeStringValue("@odata.type", alertSummary.odataType);
    writer.writeEnumValue("severity", alertSummary.severity);
    writer.writeAdditionalData(alertSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param ApplicationAnalyticsUsagePoint The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeApplicationAnalyticsUsagePoint(writer, applicationAnalyticsUsagePoint = {}, isSerializingDerivedType = false) {
    if (!applicationAnalyticsUsagePoint || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("cloudAppsCount", applicationAnalyticsUsagePoint.cloudAppsCount);
    writer.writeNumberValue("enterpriseAppsCount", applicationAnalyticsUsagePoint.enterpriseAppsCount);
    writer.writeStringValue("@odata.type", applicationAnalyticsUsagePoint.odataType);
    writer.writeDateValue("timeStampDateTime", applicationAnalyticsUsagePoint.timeStampDateTime);
    writer.writeNumberValue("totalCount", applicationAnalyticsUsagePoint.totalCount);
    writer.writeAdditionalData(applicationAnalyticsUsagePoint.additionalData);
}
/**
 * Serializes information the current object
 * @param ApplicationSnapshot The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeApplicationSnapshot(writer, applicationSnapshot = {}, isSerializingDerivedType = false) {
    if (!applicationSnapshot || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("appId", applicationSnapshot.appId);
    writer.writeStringValue("@odata.type", applicationSnapshot.odataType);
    writer.writeAdditionalData(applicationSnapshot.additionalData);
}
/**
 * Serializes information the current object
 * @param AssociatedBranch The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAssociatedBranch(writer, associatedBranch = {}, isSerializingDerivedType = false) {
    if (!associatedBranch || isSerializingDerivedType) {
        return;
    }
    serializeAssociation(writer, associatedBranch, isSerializingDerivedType);
    writer.writeStringValue("branchId", associatedBranch.branchId);
}
/**
 * Serializes information the current object
 * @param Association The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeAssociation(writer, association = {}, isSerializingDerivedType = false) {
    if (!association || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", association.odataType);
    writer.writeAdditionalData(association.additionalData);
    switch (association.odataType) {
        case "#microsoft.graph.networkaccess.associatedBranch":
            serializeAssociatedBranch(writer, association, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param BaseEntity The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeBaseEntity(writer, baseEntity = {}, isSerializingDerivedType = false) {
    if (!baseEntity || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, baseEntity, isSerializingDerivedType);
    writer.writeStringValue("name", baseEntity.name);
    switch (baseEntity.odataType) {
        case "#microsoft.graph.networkaccess.filteringProfile":
            serializeFilteringProfile(writer, baseEntity, true);
            break;
        case "#microsoft.graph.networkaccess.forwardingProfile":
            serializeForwardingProfile(writer, baseEntity, true);
            break;
        case "#microsoft.graph.networkaccess.forwardingProfileBase":
            serializeForwardingProfileBase(writer, baseEntity, true);
            break;
        case "#microsoft.graph.networkaccess.profile":
            serializeProfile(writer, baseEntity, true);
            break;
        case "#microsoft.graph.networkaccess.remoteNetwork":
            serializeRemoteNetwork(writer, baseEntity, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param BgpConfiguration The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeBgpConfiguration(writer, bgpConfiguration = {}, isSerializingDerivedType = false) {
    if (!bgpConfiguration || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("asn", bgpConfiguration.asn);
    writer.writeStringValue("ipAddress", bgpConfiguration.ipAddress);
    writer.writeStringValue("localIpAddress", bgpConfiguration.localIpAddress);
    writer.writeStringValue("@odata.type", bgpConfiguration.odataType);
    writer.writeStringValue("peerIpAddress", bgpConfiguration.peerIpAddress);
    writer.writeAdditionalData(bgpConfiguration.additionalData);
}
/**
 * Serializes information the current object
 * @param BlockPageConfigurationBase The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeBlockPageConfigurationBase(writer, blockPageConfigurationBase = {}, isSerializingDerivedType = false) {
    if (!blockPageConfigurationBase || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", blockPageConfigurationBase.odataType);
    writer.writeAdditionalData(blockPageConfigurationBase.additionalData);
    switch (blockPageConfigurationBase.odataType) {
        case "#microsoft.graph.networkaccess.markdownBlockMessageConfiguration":
            serializeMarkdownBlockMessageConfiguration(writer, blockPageConfigurationBase, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param BranchConnectivityConfiguration The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeBranchConnectivityConfiguration(writer, branchConnectivityConfiguration = {}, isSerializingDerivedType = false) {
    if (!branchConnectivityConfiguration || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("branchId", branchConnectivityConfiguration.branchId);
    writer.writeStringValue("branchName", branchConnectivityConfiguration.branchName);
    writer.writeCollectionOfObjectValues("links", branchConnectivityConfiguration.links, serializeConnectivityConfigurationLink);
    writer.writeStringValue("@odata.type", branchConnectivityConfiguration.odataType);
    writer.writeAdditionalData(branchConnectivityConfiguration.additionalData);
}
/**
 * Serializes information the current object
 * @param BranchSite The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeBranchSite(writer, branchSite = {}, isSerializingDerivedType = false) {
    if (!branchSite || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, branchSite, isSerializingDerivedType);
    writer.writeNumberValue("bandwidthCapacity", branchSite.bandwidthCapacity);
    writer.writeObjectValue("connectivityConfiguration", branchSite.connectivityConfiguration, serializeBranchConnectivityConfiguration);
    writer.writeEnumValue("connectivityState", branchSite.connectivityState);
    writer.writeStringValue("country", branchSite.country);
    writer.writeCollectionOfObjectValues("deviceLinks", branchSite.deviceLinks, serializeDeviceLink);
    writer.writeCollectionOfObjectValues("forwardingProfiles", branchSite.forwardingProfiles, serializeForwardingProfile);
    writer.writeDateValue("lastModifiedDateTime", branchSite.lastModifiedDateTime);
    writer.writeStringValue("name", branchSite.name);
    writer.writeEnumValue("region", branchSite.region);
    writer.writeStringValue("version", branchSite.version);
}
/**
 * Serializes information the current object
 * @param BranchSiteCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeBranchSiteCollectionResponse(writer, branchSiteCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!branchSiteCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, branchSiteCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", branchSiteCollectionResponse.value, serializeBranchSite);
}
/**
 * Serializes information the current object
 * @param CloudApplicationMetadata The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudApplicationMetadata(writer, cloudApplicationMetadata = {}, isSerializingDerivedType = false) {
    if (!cloudApplicationMetadata || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("activity", cloudApplicationMetadata.activity);
    writer.writeCollectionOfPrimitiveValues("categories", cloudApplicationMetadata.categories);
    writer.writeStringValue("cloudApplicationCatalogId", cloudApplicationMetadata.cloudApplicationCatalogId);
    writer.writeNumberValue("complianceScore", cloudApplicationMetadata.complianceScore);
    writer.writeNumberValue("generalScore", cloudApplicationMetadata.generalScore);
    writer.writeNumberValue("legalScore", cloudApplicationMetadata.legalScore);
    writer.writeStringValue("loginUser", cloudApplicationMetadata.loginUser);
    writer.writeStringValue("name", cloudApplicationMetadata.name);
    writer.writeStringValue("@odata.type", cloudApplicationMetadata.odataType);
    writer.writeNumberValue("riskScore", cloudApplicationMetadata.riskScore);
    writer.writeNumberValue("securityScore", cloudApplicationMetadata.securityScore);
    writer.writeStringValue("subactivity", cloudApplicationMetadata.subactivity);
    writer.writeAdditionalData(cloudApplicationMetadata.additionalData);
}
/**
 * Serializes information the current object
 * @param CloudApplicationReport The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudApplicationReport(writer, cloudApplicationReport = {}, isSerializingDerivedType = false) {
    if (!cloudApplicationReport || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfPrimitiveValues("categories", cloudApplicationReport.categories);
    writer.writeStringValue("cloudApplicationCatalogId", cloudApplicationReport.cloudApplicationCatalogId);
    writer.writeNumberValue("complianceScore", cloudApplicationReport.complianceScore);
    writer.writeNumberValue("deviceCount", cloudApplicationReport.deviceCount);
    writer.writeDateValue("firstAccessDateTime", cloudApplicationReport.firstAccessDateTime);
    writer.writeNumberValue("generalScore", cloudApplicationReport.generalScore);
    writer.writeDateValue("lastAccessDateTime", cloudApplicationReport.lastAccessDateTime);
    writer.writeNumberValue("legalScore", cloudApplicationReport.legalScore);
    writer.writeStringValue("name", cloudApplicationReport.name);
    writer.writeStringValue("@odata.type", cloudApplicationReport.odataType);
    writer.writeNumberValue("riskScore", cloudApplicationReport.riskScore);
    writer.writeNumberValue("securityScore", cloudApplicationReport.securityScore);
    writer.writeNumberValue("totalBytesReceived", cloudApplicationReport.totalBytesReceived);
    writer.writeNumberValue("totalBytesSent", cloudApplicationReport.totalBytesSent);
    writer.writeEnumValue("trafficType", cloudApplicationReport.trafficType);
    writer.writeNumberValue("transactionCount", cloudApplicationReport.transactionCount);
    writer.writeNumberValue("userCount", cloudApplicationReport.userCount);
    writer.writeAdditionalData(cloudApplicationReport.additionalData);
}
/**
 * Serializes information the current object
 * @param CloudFirewallDestinationAddress The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallDestinationAddress(writer, cloudFirewallDestinationAddress = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallDestinationAddress || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", cloudFirewallDestinationAddress.odataType);
    writer.writeAdditionalData(cloudFirewallDestinationAddress.additionalData);
    switch (cloudFirewallDestinationAddress.odataType) {
        case "#microsoft.graph.networkaccess.cloudFirewallDestinationFqdnAddress":
            serializeCloudFirewallDestinationFqdnAddress(writer, cloudFirewallDestinationAddress, true);
            break;
        case "#microsoft.graph.networkaccess.cloudFirewallDestinationIpAddress":
            serializeCloudFirewallDestinationIpAddress(writer, cloudFirewallDestinationAddress, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param CloudFirewallDestinationFqdnAddress The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallDestinationFqdnAddress(writer, cloudFirewallDestinationFqdnAddress = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallDestinationFqdnAddress || isSerializingDerivedType) {
        return;
    }
    serializeCloudFirewallDestinationAddress(writer, cloudFirewallDestinationFqdnAddress, isSerializingDerivedType);
    writer.writeCollectionOfPrimitiveValues("values", cloudFirewallDestinationFqdnAddress.values);
}
/**
 * Serializes information the current object
 * @param CloudFirewallDestinationIpAddress The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallDestinationIpAddress(writer, cloudFirewallDestinationIpAddress = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallDestinationIpAddress || isSerializingDerivedType) {
        return;
    }
    serializeCloudFirewallDestinationAddress(writer, cloudFirewallDestinationIpAddress, isSerializingDerivedType);
    writer.writeCollectionOfPrimitiveValues("values", cloudFirewallDestinationIpAddress.values);
}
/**
 * Serializes information the current object
 * @param CloudFirewallDestinationMatching The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallDestinationMatching(writer, cloudFirewallDestinationMatching = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallDestinationMatching || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfObjectValues("addresses", cloudFirewallDestinationMatching.addresses, serializeCloudFirewallDestinationAddress);
    writer.writeStringValue("@odata.type", cloudFirewallDestinationMatching.odataType);
    writer.writeCollectionOfPrimitiveValues("ports", cloudFirewallDestinationMatching.ports);
    writer.writeEnumValue("protocols", cloudFirewallDestinationMatching.protocols);
    writer.writeAdditionalData(cloudFirewallDestinationMatching.additionalData);
}
/**
 * Serializes information the current object
 * @param CloudFirewallMatchingConditions The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallMatchingConditions(writer, cloudFirewallMatchingConditions = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallMatchingConditions || isSerializingDerivedType) {
        return;
    }
    writer.writeObjectValue("destinations", cloudFirewallMatchingConditions.destinations, serializeCloudFirewallDestinationMatching);
    writer.writeStringValue("@odata.type", cloudFirewallMatchingConditions.odataType);
    writer.writeObjectValue("sources", cloudFirewallMatchingConditions.sources, serializeCloudFirewallSourceMatching);
    writer.writeAdditionalData(cloudFirewallMatchingConditions.additionalData);
}
/**
 * Serializes information the current object
 * @param CloudFirewallPolicy The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallPolicy(writer, cloudFirewallPolicy = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallPolicy || isSerializingDerivedType) {
        return;
    }
    serializePolicy(writer, cloudFirewallPolicy, isSerializingDerivedType);
    writer.writeDateValue("lastModifiedDateTime", cloudFirewallPolicy.lastModifiedDateTime);
    writer.writeObjectValue("settings", cloudFirewallPolicy.settings, serializeCloudFirewallPolicySettings);
}
/**
 * Serializes information the current object
 * @param CloudFirewallPolicyCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallPolicyCollectionResponse(writer, cloudFirewallPolicyCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallPolicyCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, cloudFirewallPolicyCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", cloudFirewallPolicyCollectionResponse.value, serializeCloudFirewallPolicy);
}
/**
 * Serializes information the current object
 * @param CloudFirewallPolicyLink The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallPolicyLink(writer, cloudFirewallPolicyLink = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallPolicyLink || isSerializingDerivedType) {
        return;
    }
    serializePolicyLink(writer, cloudFirewallPolicyLink, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param CloudFirewallPolicySettings The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallPolicySettings(writer, cloudFirewallPolicySettings = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallPolicySettings || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("defaultAction", cloudFirewallPolicySettings.defaultAction);
    writer.writeStringValue("@odata.type", cloudFirewallPolicySettings.odataType);
    writer.writeAdditionalData(cloudFirewallPolicySettings.additionalData);
}
/**
 * Serializes information the current object
 * @param CloudFirewallRule The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallRule(writer, cloudFirewallRule = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallRule || isSerializingDerivedType) {
        return;
    }
    serializePolicyRule(writer, cloudFirewallRule, isSerializingDerivedType);
    writer.writeEnumValue("action", cloudFirewallRule.action);
    writer.writeStringValue("description", cloudFirewallRule.description);
    writer.writeObjectValue("matchingConditions", cloudFirewallRule.matchingConditions, serializeCloudFirewallMatchingConditions);
    writer.writeNumberValue("priority", cloudFirewallRule.priority);
    writer.writeObjectValue("settings", cloudFirewallRule.settings, serializeCloudFirewallRuleSettings);
}
/**
 * Serializes information the current object
 * @param CloudFirewallRuleSettings The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallRuleSettings(writer, cloudFirewallRuleSettings = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallRuleSettings || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", cloudFirewallRuleSettings.odataType);
    writer.writeEnumValue("status", cloudFirewallRuleSettings.status);
    writer.writeAdditionalData(cloudFirewallRuleSettings.additionalData);
}
/**
 * Serializes information the current object
 * @param CloudFirewallSourceAddress The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallSourceAddress(writer, cloudFirewallSourceAddress = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallSourceAddress || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", cloudFirewallSourceAddress.odataType);
    writer.writeAdditionalData(cloudFirewallSourceAddress.additionalData);
    switch (cloudFirewallSourceAddress.odataType) {
        case "#microsoft.graph.networkaccess.cloudFirewallSourceIpAddress":
            serializeCloudFirewallSourceIpAddress(writer, cloudFirewallSourceAddress, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param CloudFirewallSourceIpAddress The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallSourceIpAddress(writer, cloudFirewallSourceIpAddress = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallSourceIpAddress || isSerializingDerivedType) {
        return;
    }
    serializeCloudFirewallSourceAddress(writer, cloudFirewallSourceIpAddress, isSerializingDerivedType);
    writer.writeCollectionOfPrimitiveValues("values", cloudFirewallSourceIpAddress.values);
}
/**
 * Serializes information the current object
 * @param CloudFirewallSourceMatching The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCloudFirewallSourceMatching(writer, cloudFirewallSourceMatching = {}, isSerializingDerivedType = false) {
    if (!cloudFirewallSourceMatching || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfObjectValues("addresses", cloudFirewallSourceMatching.addresses, serializeCloudFirewallSourceAddress);
    writer.writeStringValue("@odata.type", cloudFirewallSourceMatching.odataType);
    writer.writeCollectionOfPrimitiveValues("ports", cloudFirewallSourceMatching.ports);
    writer.writeAdditionalData(cloudFirewallSourceMatching.additionalData);
}
/**
 * Serializes information the current object
 * @param ConditionalAccessPolicy The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConditionalAccessPolicy(writer, conditionalAccessPolicy = {}, isSerializingDerivedType = false) {
    if (!conditionalAccessPolicy || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, conditionalAccessPolicy, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", conditionalAccessPolicy.createdDateTime);
    writer.writeStringValue("description", conditionalAccessPolicy.description);
    writer.writeStringValue("displayName", conditionalAccessPolicy.displayName);
    writer.writeDateValue("modifiedDateTime", conditionalAccessPolicy.modifiedDateTime);
}
/**
 * Serializes information the current object
 * @param ConditionalAccessPolicyCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConditionalAccessPolicyCollectionResponse(writer, conditionalAccessPolicyCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!conditionalAccessPolicyCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, conditionalAccessPolicyCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", conditionalAccessPolicyCollectionResponse.value, serializeConditionalAccessPolicy);
}
/**
 * Serializes information the current object
 * @param ConditionalAccessSettings The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConditionalAccessSettings(writer, conditionalAccessSettings = {}, isSerializingDerivedType = false) {
    if (!conditionalAccessSettings || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, conditionalAccessSettings, isSerializingDerivedType);
    writer.writeEnumValue("signalingStatus", conditionalAccessSettings.signalingStatus);
}
/**
 * Serializes information the current object
 * @param Connection The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConnection(writer, connection = {}, isSerializingDerivedType = false) {
    if (!connection || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, connection, isSerializingDerivedType);
    writer.writeStringValue("agentVersion", connection.agentVersion);
    writer.writeObjectValue("applicationSnapshot", connection.applicationSnapshot, serializeApplicationSnapshot);
    writer.writeDateValue("createdDateTime", connection.createdDateTime);
    writer.writeEnumValue("crossTenantAccessType", connection.crossTenantAccessType);
    writer.writeStringValue("destinationFqdn", connection.destinationFqdn);
    writer.writeStringValue("destinationIp", connection.destinationIp);
    writer.writeNumberValue("destinationPort", connection.destinationPort);
    writer.writeEnumValue("deviceCategory", connection.deviceCategory);
    writer.writeStringValue("deviceId", connection.deviceId);
    writer.writeEnumValue("deviceJoinType", connection.deviceJoinType);
    writer.writeStringValue("deviceOperatingSystem", connection.deviceOperatingSystem);
    writer.writeStringValue("deviceOperatingSystemVersion", connection.deviceOperatingSystemVersion);
    writer.writeDateValue("endDateTime", connection.endDateTime);
    writer.writeStringValue("homeTenantId", connection.homeTenantId);
    writer.writeStringValue("initiatingProcessName", connection.initiatingProcessName);
    writer.writeDateValue("lastUpdateDateTime", connection.lastUpdateDateTime);
    writer.writeEnumValue("networkProtocol", connection.networkProtocol);
    writer.writeStringValue("popProcessingRegion", connection.popProcessingRegion);
    writer.writeObjectValue("privateAccessDetails", connection.privateAccessDetails, serializePrivateAccessDetails);
    writer.writeNumberValue("receivedBytes", connection.receivedBytes);
    writer.writeNumberValue("sentBytes", connection.sentBytes);
    writer.writeStringValue("sourceIp", connection.sourceIp);
    writer.writeNumberValue("sourcePort", connection.sourcePort);
    writer.writeEnumValue("status", connection.status);
    writer.writeStringValue("tenantId", connection.tenantId);
    writer.writeEnumValue("trafficType", connection.trafficType);
    writer.writeNumberValue("transactionBlockCount", connection.transactionBlockCount);
    writer.writeNumberValue("transactionCount", connection.transactionCount);
    writer.writeEnumValue("transportProtocol", connection.transportProtocol);
    writer.writeStringValue("userId", connection.userId);
    writer.writeStringValue("userPrincipalName", connection.userPrincipalName);
}
/**
 * Serializes information the current object
 * @param ConnectionCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConnectionCollectionResponse(writer, connectionCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!connectionCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, connectionCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", connectionCollectionResponse.value, serializeConnection);
}
/**
 * Serializes information the current object
 * @param ConnectionSummary The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConnectionSummary(writer, connectionSummary = {}, isSerializingDerivedType = false) {
    if (!connectionSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", connectionSummary.odataType);
    writer.writeNumberValue("totalCount", connectionSummary.totalCount);
    writer.writeEnumValue("trafficType", connectionSummary.trafficType);
    writer.writeAdditionalData(connectionSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param Connectivity The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConnectivity(writer, connectivity = {}, isSerializingDerivedType = false) {
    if (!connectivity || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, connectivity, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("branches", connectivity.branches, serializeBranchSite);
    writer.writeCollectionOfObjectValues("remoteNetworks", connectivity.remoteNetworks, serializeRemoteNetwork);
    writer.writeCollectionOfObjectValues("webCategories", connectivity.webCategories, serializeWebCategory);
}
/**
 * Serializes information the current object
 * @param ConnectivityConfigurationLink The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConnectivityConfigurationLink(writer, connectivityConfigurationLink = {}, isSerializingDerivedType = false) {
    if (!connectivityConfigurationLink || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, connectivityConfigurationLink, isSerializingDerivedType);
    writer.writeStringValue("displayName", connectivityConfigurationLink.displayName);
    writer.writeCollectionOfObjectValues("localConfigurations", connectivityConfigurationLink.localConfigurations, serializeLocalConnectivityConfiguration);
    writer.writeObjectValue("peerConfiguration", connectivityConfigurationLink.peerConfiguration, serializePeerConnectivityConfiguration);
}
/**
 * Serializes information the current object
 * @param ConnectivityConfigurationLinkCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeConnectivityConfigurationLinkCollectionResponse(writer, connectivityConfigurationLinkCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!connectivityConfigurationLinkCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, connectivityConfigurationLinkCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", connectivityConfigurationLinkCollectionResponse.value, serializeConnectivityConfigurationLink);
}
/**
 * Serializes information the current object
 * @param CrossTenantAccess The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCrossTenantAccess(writer, crossTenantAccess = {}, isSerializingDerivedType = false) {
    if (!crossTenantAccess || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("deviceCount", crossTenantAccess.deviceCount);
    writer.writeDateValue("lastAccessDateTime", crossTenantAccess.lastAccessDateTime);
    writer.writeStringValue("@odata.type", crossTenantAccess.odataType);
    writer.writeStringValue("resourceTenantId", crossTenantAccess.resourceTenantId);
    writer.writeStringValue("resourceTenantName", crossTenantAccess.resourceTenantName);
    writer.writeStringValue("resourceTenantPrimaryDomain", crossTenantAccess.resourceTenantPrimaryDomain);
    writer.writeEnumValue("usageStatus", crossTenantAccess.usageStatus);
    writer.writeNumberValue("userCount", crossTenantAccess.userCount);
    writer.writeAdditionalData(crossTenantAccess.additionalData);
}
/**
 * Serializes information the current object
 * @param CrossTenantAccessSettings The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCrossTenantAccessSettings(writer, crossTenantAccessSettings = {}, isSerializingDerivedType = false) {
    if (!crossTenantAccessSettings || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, crossTenantAccessSettings, isSerializingDerivedType);
    writer.writeEnumValue("networkPacketTaggingStatus", crossTenantAccessSettings.networkPacketTaggingStatus);
}
/**
 * Serializes information the current object
 * @param CrossTenantSummary The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCrossTenantSummary(writer, crossTenantSummary = {}, isSerializingDerivedType = false) {
    if (!crossTenantSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("authTransactionCount", crossTenantSummary.authTransactionCount);
    writer.writeNumberValue("deviceCount", crossTenantSummary.deviceCount);
    writer.writeNumberValue("newTenantCount", crossTenantSummary.newTenantCount);
    writer.writeStringValue("@odata.type", crossTenantSummary.odataType);
    writer.writeNumberValue("rarelyUsedTenantCount", crossTenantSummary.rarelyUsedTenantCount);
    writer.writeNumberValue("tenantCount", crossTenantSummary.tenantCount);
    writer.writeNumberValue("userCount", crossTenantSummary.userCount);
    writer.writeAdditionalData(crossTenantSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param CustomBlockPage The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeCustomBlockPage(writer, customBlockPage = {}, isSerializingDerivedType = false) {
    if (!customBlockPage || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, customBlockPage, isSerializingDerivedType);
    writer.writeObjectValue("configuration", customBlockPage.configuration, serializeBlockPageConfigurationBase);
    writer.writeEnumValue("state", customBlockPage.state);
}
/**
 * Serializes information the current object
 * @param Destination The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDestination(writer, destination = {}, isSerializingDerivedType = false) {
    if (!destination || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("deviceCount", destination.deviceCount);
    writer.writeDateValue("firstAccessDateTime", destination.firstAccessDateTime);
    writer.writeStringValue("fqdn", destination.fqdn);
    writer.writeStringValue("ip", destination.ip);
    writer.writeDateValue("lastAccessDateTime", destination.lastAccessDateTime);
    writer.writeEnumValue("networkingProtocol", destination.networkingProtocol);
    writer.writeStringValue("@odata.type", destination.odataType);
    writer.writeNumberValue("port", destination.port);
    writer.writeNumberValue("threatCount", destination.threatCount);
    writer.writeNumberValue("totalBytesReceived", destination.totalBytesReceived);
    writer.writeNumberValue("totalBytesSent", destination.totalBytesSent);
    writer.writeEnumValue("trafficType", destination.trafficType);
    writer.writeNumberValue("transactionCount", destination.transactionCount);
    writer.writeNumberValue("userCount", destination.userCount);
    writer.writeAdditionalData(destination.additionalData);
}
/**
 * Serializes information the current object
 * @param DestinationSummary The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDestinationSummary(writer, destinationSummary = {}, isSerializingDerivedType = false) {
    if (!destinationSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("count", destinationSummary.count);
    writer.writeStringValue("destination", destinationSummary.destination);
    writer.writeStringValue("@odata.type", destinationSummary.odataType);
    writer.writeEnumValue("trafficType", destinationSummary.trafficType);
    writer.writeAdditionalData(destinationSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param Device The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDevice(writer, device = {}, isSerializingDerivedType = false) {
    if (!device || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("deviceId", device.deviceId);
    writer.writeStringValue("displayName", device.displayName);
    writer.writeBooleanValue("isCompliant", device.isCompliant);
    writer.writeDateValue("lastAccessDateTime", device.lastAccessDateTime);
    writer.writeStringValue("@odata.type", device.odataType);
    writer.writeStringValue("operatingSystem", device.operatingSystem);
    writer.writeEnumValue("trafficType", device.trafficType);
    writer.writeAdditionalData(device.additionalData);
}
/**
 * Serializes information the current object
 * @param DeviceLink The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDeviceLink(writer, deviceLink = {}, isSerializingDerivedType = false) {
    if (!deviceLink || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, deviceLink, isSerializingDerivedType);
    writer.writeEnumValue("bandwidthCapacityInMbps", deviceLink.bandwidthCapacityInMbps);
    writer.writeObjectValue("bgpConfiguration", deviceLink.bgpConfiguration, serializeBgpConfiguration);
    writer.writeEnumValue("deviceVendor", deviceLink.deviceVendor);
    writer.writeStringValue("ipAddress", deviceLink.ipAddress);
    writer.writeDateValue("lastModifiedDateTime", deviceLink.lastModifiedDateTime);
    writer.writeStringValue("name", deviceLink.name);
    writer.writeObjectValue("redundancyConfiguration", deviceLink.redundancyConfiguration, serializeRedundancyConfiguration);
    writer.writeObjectValue("tunnelConfiguration", deviceLink.tunnelConfiguration, serializeTunnelConfiguration);
}
/**
 * Serializes information the current object
 * @param DeviceLinkCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDeviceLinkCollectionResponse(writer, deviceLinkCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!deviceLinkCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, deviceLinkCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", deviceLinkCollectionResponse.value, serializeDeviceLink);
}
/**
 * Serializes information the current object
 * @param DeviceUsageSummary The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDeviceUsageSummary(writer, deviceUsageSummary = {}, isSerializingDerivedType = false) {
    if (!deviceUsageSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("activeDeviceCount", deviceUsageSummary.activeDeviceCount);
    writer.writeNumberValue("inactiveDeviceCount", deviceUsageSummary.inactiveDeviceCount);
    writer.writeStringValue("@odata.type", deviceUsageSummary.odataType);
    writer.writeNumberValue("totalDeviceCount", deviceUsageSummary.totalDeviceCount);
    writer.writeAdditionalData(deviceUsageSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param DiscoveredApplicationSegmentReport The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeDiscoveredApplicationSegmentReport(writer, discoveredApplicationSegmentReport = {}, isSerializingDerivedType = false) {
    if (!discoveredApplicationSegmentReport || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("accessType", discoveredApplicationSegmentReport.accessType);
    writer.writeNumberValue("deviceCount", discoveredApplicationSegmentReport.deviceCount);
    writer.writeStringValue("discoveredApplicationSegmentId", discoveredApplicationSegmentReport.discoveredApplicationSegmentId);
    writer.writeDateValue("firstAccessDateTime", discoveredApplicationSegmentReport.firstAccessDateTime);
    writer.writeStringValue("fqdn", discoveredApplicationSegmentReport.fqdn);
    writer.writeStringValue("ip", discoveredApplicationSegmentReport.ip);
    writer.writeDateValue("lastAccessDateTime", discoveredApplicationSegmentReport.lastAccessDateTime);
    writer.writeStringValue("@odata.type", discoveredApplicationSegmentReport.odataType);
    writer.writeNumberValue("port", discoveredApplicationSegmentReport.port);
    writer.writeNumberValue("totalBytesReceived", discoveredApplicationSegmentReport.totalBytesReceived);
    writer.writeNumberValue("totalBytesSent", discoveredApplicationSegmentReport.totalBytesSent);
    writer.writeNumberValue("transactionCount", discoveredApplicationSegmentReport.transactionCount);
    writer.writeEnumValue("transportProtocol", discoveredApplicationSegmentReport.transportProtocol);
    writer.writeNumberValue("userCount", discoveredApplicationSegmentReport.userCount);
    writer.writeAdditionalData(discoveredApplicationSegmentReport.additionalData);
}
/**
 * Serializes information the current object
 * @param EnterpriseApplicationReport The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeEnterpriseApplicationReport(writer, enterpriseApplicationReport = {}, isSerializingDerivedType = false) {
    if (!enterpriseApplicationReport || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("accessType", enterpriseApplicationReport.accessType);
    writer.writeStringValue("applicationId", enterpriseApplicationReport.applicationId);
    writer.writeNumberValue("deviceCount", enterpriseApplicationReport.deviceCount);
    writer.writeDateValue("firstAccessDateTime", enterpriseApplicationReport.firstAccessDateTime);
    writer.writeDateValue("lastAccessDateTime", enterpriseApplicationReport.lastAccessDateTime);
    writer.writeStringValue("@odata.type", enterpriseApplicationReport.odataType);
    writer.writeNumberValue("totalBytesReceived", enterpriseApplicationReport.totalBytesReceived);
    writer.writeNumberValue("totalBytesSent", enterpriseApplicationReport.totalBytesSent);
    writer.writeEnumValue("trafficType", enterpriseApplicationReport.trafficType);
    writer.writeNumberValue("transactionCount", enterpriseApplicationReport.transactionCount);
    writer.writeNumberValue("userCount", enterpriseApplicationReport.userCount);
    writer.writeAdditionalData(enterpriseApplicationReport.additionalData);
}
/**
 * Serializes information the current object
 * @param EntitiesSummary The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeEntitiesSummary(writer, entitiesSummary = {}, isSerializingDerivedType = false) {
    if (!entitiesSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("deviceCount", entitiesSummary.deviceCount);
    writer.writeStringValue("@odata.type", entitiesSummary.odataType);
    writer.writeEnumValue("trafficType", entitiesSummary.trafficType);
    writer.writeNumberValue("userCount", entitiesSummary.userCount);
    writer.writeNumberValue("workloadCount", entitiesSummary.workloadCount);
    writer.writeAdditionalData(entitiesSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param ExtendedProperties The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeExtendedProperties(writer, extendedProperties = {}, isSerializingDerivedType = false) {
    if (!extendedProperties || isSerializingDerivedType) {
        return;
    }
    serializeDictionary(writer, extendedProperties, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param ExternalCertificateAuthorityCertificate The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeExternalCertificateAuthorityCertificate(writer, externalCertificateAuthorityCertificate = {}, isSerializingDerivedType = false) {
    if (!externalCertificateAuthorityCertificate || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, externalCertificateAuthorityCertificate, isSerializingDerivedType);
    writer.writeStringValue("certificate", externalCertificateAuthorityCertificate.certificate);
    writer.writeStringValue("certificateSigningRequest", externalCertificateAuthorityCertificate.certificateSigningRequest);
    writer.writeStringValue("chain", externalCertificateAuthorityCertificate.chain);
    writer.writeStringValue("commonName", externalCertificateAuthorityCertificate.commonName);
    writer.writeStringValue("name", externalCertificateAuthorityCertificate.name);
    writer.writeStringValue("organizationName", externalCertificateAuthorityCertificate.organizationName);
    writer.writeEnumValue("status", externalCertificateAuthorityCertificate.status);
    writer.writeObjectValue("validity", externalCertificateAuthorityCertificate.validity, serializeValidityDate);
}
/**
 * Serializes information the current object
 * @param ExternalCertificateAuthorityCertificateCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeExternalCertificateAuthorityCertificateCollectionResponse(writer, externalCertificateAuthorityCertificateCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!externalCertificateAuthorityCertificateCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, externalCertificateAuthorityCertificateCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", externalCertificateAuthorityCertificateCollectionResponse.value, serializeExternalCertificateAuthorityCertificate);
}
/**
 * Serializes information the current object
 * @param FilteringPolicy The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFilteringPolicy(writer, filteringPolicy = {}, isSerializingDerivedType = false) {
    if (!filteringPolicy || isSerializingDerivedType) {
        return;
    }
    serializePolicy(writer, filteringPolicy, isSerializingDerivedType);
    writer.writeEnumValue("action", filteringPolicy.action);
    writer.writeDateValue("createdDateTime", filteringPolicy.createdDateTime);
    writer.writeDateValue("lastModifiedDateTime", filteringPolicy.lastModifiedDateTime);
}
/**
 * Serializes information the current object
 * @param FilteringPolicyCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFilteringPolicyCollectionResponse(writer, filteringPolicyCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!filteringPolicyCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, filteringPolicyCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", filteringPolicyCollectionResponse.value, serializeFilteringPolicy);
}
/**
 * Serializes information the current object
 * @param FilteringPolicyLink The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFilteringPolicyLink(writer, filteringPolicyLink = {}, isSerializingDerivedType = false) {
    if (!filteringPolicyLink || isSerializingDerivedType) {
        return;
    }
    serializePolicyLink(writer, filteringPolicyLink, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", filteringPolicyLink.createdDateTime);
    writer.writeDateValue("lastModifiedDateTime", filteringPolicyLink.lastModifiedDateTime);
    writer.writeEnumValue("loggingState", filteringPolicyLink.loggingState);
    writer.writeNumberValue("priority", filteringPolicyLink.priority);
}
/**
 * Serializes information the current object
 * @param FilteringProfile The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFilteringProfile(writer, filteringProfile = {}, isSerializingDerivedType = false) {
    if (!filteringProfile || isSerializingDerivedType) {
        return;
    }
    serializeProfile(writer, filteringProfile, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("conditionalAccessPolicies", filteringProfile.conditionalAccessPolicies, serializeConditionalAccessPolicy);
    writer.writeDateValue("createdDateTime", filteringProfile.createdDateTime);
    writer.writeNumberValue("priority", filteringProfile.priority);
}
/**
 * Serializes information the current object
 * @param FilteringProfileCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFilteringProfileCollectionResponse(writer, filteringProfileCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!filteringProfileCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, filteringProfileCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", filteringProfileCollectionResponse.value, serializeFilteringProfile);
}
/**
 * Serializes information the current object
 * @param FilteringRule The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFilteringRule(writer, filteringRule = {}, isSerializingDerivedType = false) {
    if (!filteringRule || isSerializingDerivedType) {
        return;
    }
    serializePolicyRule(writer, filteringRule, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("destinations", filteringRule.destinations, serializeRuleDestination);
    writer.writeEnumValue("ruleType", filteringRule.ruleType);
    switch (filteringRule.odataType) {
        case "#microsoft.graph.networkaccess.fqdnFilteringRule":
            serializeFqdnFilteringRule(writer, filteringRule, true);
            break;
        case "#microsoft.graph.networkaccess.urlDestinationFilteringRule":
            serializeUrlDestinationFilteringRule(writer, filteringRule, true);
            break;
        case "#microsoft.graph.networkaccess.webCategoryFilteringRule":
            serializeWebCategoryFilteringRule(writer, filteringRule, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param ForwardingOptions The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeForwardingOptions(writer, forwardingOptions = {}, isSerializingDerivedType = false) {
    if (!forwardingOptions || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, forwardingOptions, isSerializingDerivedType);
    writer.writeEnumValue("skipDnsLookupState", forwardingOptions.skipDnsLookupState);
}
/**
 * Serializes information the current object
 * @param ForwardingPolicy The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeForwardingPolicy(writer, forwardingPolicy = {}, isSerializingDerivedType = false) {
    if (!forwardingPolicy || isSerializingDerivedType) {
        return;
    }
    serializePolicy(writer, forwardingPolicy, isSerializingDerivedType);
    writer.writeStringValue("privateAccessAppId", forwardingPolicy.privateAccessAppId);
    writer.writeEnumValue("trafficForwardingType", forwardingPolicy.trafficForwardingType);
}
/**
 * Serializes information the current object
 * @param ForwardingPolicyCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeForwardingPolicyCollectionResponse(writer, forwardingPolicyCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!forwardingPolicyCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, forwardingPolicyCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", forwardingPolicyCollectionResponse.value, serializeForwardingPolicy);
}
/**
 * Serializes information the current object
 * @param ForwardingPolicyLink The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeForwardingPolicyLink(writer, forwardingPolicyLink = {}, isSerializingDerivedType = false) {
    if (!forwardingPolicyLink || isSerializingDerivedType) {
        return;
    }
    serializePolicyLink(writer, forwardingPolicyLink, isSerializingDerivedType);
    writer.writeNumberValue("priority", forwardingPolicyLink.priority);
}
/**
 * Serializes information the current object
 * @param ForwardingProfile The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeForwardingProfile(writer, forwardingProfile = {}, isSerializingDerivedType = false) {
    if (!forwardingProfile || isSerializingDerivedType) {
        return;
    }
    serializeForwardingProfileBase(writer, forwardingProfile, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param ForwardingProfileBase The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeForwardingProfileBase(writer, forwardingProfileBase = {}, isSerializingDerivedType = false) {
    if (!forwardingProfileBase || isSerializingDerivedType) {
        return;
    }
    serializeProfile(writer, forwardingProfileBase, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("associations", forwardingProfileBase.associations, serializeAssociation);
    writer.writeBooleanValue("isCustomProfile", forwardingProfileBase.isCustomProfile);
    writer.writeNumberValue("priority", forwardingProfileBase.priority);
    writer.writeObjectValue("servicePrincipal", forwardingProfileBase.servicePrincipal, serializeServicePrincipal);
    writer.writeEnumValue("trafficForwardingType", forwardingProfileBase.trafficForwardingType);
    switch (forwardingProfileBase.odataType) {
        case "#microsoft.graph.networkaccess.forwardingProfile":
            serializeForwardingProfile(writer, forwardingProfileBase, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param ForwardingProfileCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeForwardingProfileCollectionResponse(writer, forwardingProfileCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!forwardingProfileCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, forwardingProfileCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", forwardingProfileCollectionResponse.value, serializeForwardingProfile);
}
/**
 * Serializes information the current object
 * @param ForwardingRule The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeForwardingRule(writer, forwardingRule = {}, isSerializingDerivedType = false) {
    if (!forwardingRule || isSerializingDerivedType) {
        return;
    }
    serializePolicyRule(writer, forwardingRule, isSerializingDerivedType);
    writer.writeEnumValue("action", forwardingRule.action);
    writer.writeEnumValue("clientFallbackAction", forwardingRule.clientFallbackAction);
    writer.writeCollectionOfObjectValues("destinations", forwardingRule.destinations, serializeRuleDestination);
    writer.writeEnumValue("ruleType", forwardingRule.ruleType);
    switch (forwardingRule.odataType) {
        case "#microsoft.graph.networkaccess.internetAccessForwardingRule":
            serializeInternetAccessForwardingRule(writer, forwardingRule, true);
            break;
        case "#microsoft.graph.networkaccess.m365ForwardingRule":
            serializeM365ForwardingRule(writer, forwardingRule, true);
            break;
        case "#microsoft.graph.networkaccess.privateAccessForwardingRule":
            serializePrivateAccessForwardingRule(writer, forwardingRule, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param Fqdn The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFqdn(writer, fqdn = {}, isSerializingDerivedType = false) {
    if (!fqdn || isSerializingDerivedType) {
        return;
    }
    serializeRuleDestination(writer, fqdn, isSerializingDerivedType);
    writer.writeStringValue("value", fqdn.value);
}
/**
 * Serializes information the current object
 * @param FqdnFilteringRule The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeFqdnFilteringRule(writer, fqdnFilteringRule = {}, isSerializingDerivedType = false) {
    if (!fqdnFilteringRule || isSerializingDerivedType) {
        return;
    }
    serializeFilteringRule(writer, fqdnFilteringRule, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param GenerativeAIInsight The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeGenerativeAIInsight(writer, generativeAIInsight = {}, isSerializingDerivedType = false) {
    if (!generativeAIInsight || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("activity", generativeAIInsight.activity);
    writer.writeStringValue("content", generativeAIInsight.content);
    writer.writeDateValue("createdDateTime", generativeAIInsight.createdDateTime);
    writer.writeStringValue("destinationUrl", generativeAIInsight.destinationUrl);
    writer.writeStringValue("eventId", generativeAIInsight.eventId);
    writer.writeStringValue("eventType", generativeAIInsight.eventType);
    writer.writeStringValue("mcpClientName", generativeAIInsight.mcpClientName);
    writer.writeStringValue("mcpServerName", generativeAIInsight.mcpServerName);
    writer.writeStringValue("@odata.type", generativeAIInsight.odataType);
    writer.writeStringValue("sessionId", generativeAIInsight.sessionId);
    writer.writeStringValue("subactivity", generativeAIInsight.subactivity);
    writer.writeStringValue("transactionId", generativeAIInsight.transactionId);
    writer.writeStringValue("userPrincipalName", generativeAIInsight.userPrincipalName);
    writer.writeAdditionalData(generativeAIInsight.additionalData);
}
/**
 * Serializes information the current object
 * @param GenerativeAIInsightCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeGenerativeAIInsightCollectionResponse(writer, generativeAIInsightCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!generativeAIInsightCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, generativeAIInsightCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", generativeAIInsightCollectionResponse.value, serializeGenerativeAIInsight);
}
/**
 * Serializes information the current object
 * @param Headers The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeHeaders(writer, headers = {}, isSerializingDerivedType = false) {
    if (!headers || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", headers.odataType);
    writer.writeStringValue("origin", headers.origin);
    writer.writeStringValue("referrer", headers.referrer);
    writer.writeStringValue("xForwardedFor", headers.xForwardedFor);
    writer.writeAdditionalData(headers.additionalData);
}
/**
 * Serializes information the current object
 * @param InternetAccessForwardingRule The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeInternetAccessForwardingRule(writer, internetAccessForwardingRule = {}, isSerializingDerivedType = false) {
    if (!internetAccessForwardingRule || isSerializingDerivedType) {
        return;
    }
    serializeForwardingRule(writer, internetAccessForwardingRule, isSerializingDerivedType);
    writer.writeCollectionOfPrimitiveValues("ports", internetAccessForwardingRule.ports);
    writer.writeEnumValue("protocol", internetAccessForwardingRule.protocol);
}
/**
 * Serializes information the current object
 * @param IpAddress The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeIpAddress(writer, ipAddress = {}, isSerializingDerivedType = false) {
    if (!ipAddress || isSerializingDerivedType) {
        return;
    }
    serializeIpDestination(writer, ipAddress, isSerializingDerivedType);
    writer.writeStringValue("value", ipAddress.value);
}
/**
 * Serializes information the current object
 * @param IpDestination The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeIpDestination(writer, ipDestination = {}, isSerializingDerivedType = false) {
    if (!ipDestination || isSerializingDerivedType) {
        return;
    }
    serializeRuleDestination(writer, ipDestination, isSerializingDerivedType);
    switch (ipDestination.odataType) {
        case "#microsoft.graph.networkaccess.ipAddress":
            serializeIpAddress(writer, ipDestination, true);
            break;
        case "#microsoft.graph.networkaccess.ipRange":
            serializeIpRange(writer, ipDestination, true);
            break;
        case "#microsoft.graph.networkaccess.ipSubnet":
            serializeIpSubnet(writer, ipDestination, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param IpRange The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeIpRange(writer, ipRange = {}, isSerializingDerivedType = false) {
    if (!ipRange || isSerializingDerivedType) {
        return;
    }
    serializeIpDestination(writer, ipRange, isSerializingDerivedType);
    writer.writeStringValue("beginAddress", ipRange.beginAddress);
    writer.writeStringValue("endAddress", ipRange.endAddress);
}
/**
 * Serializes information the current object
 * @param IpSubnet The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeIpSubnet(writer, ipSubnet = {}, isSerializingDerivedType = false) {
    if (!ipSubnet || isSerializingDerivedType) {
        return;
    }
    serializeIpDestination(writer, ipSubnet, isSerializingDerivedType);
    writer.writeStringValue("value", ipSubnet.value);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param LocalConnectivityConfiguration The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeLocalConnectivityConfiguration(writer, localConnectivityConfiguration = {}, isSerializingDerivedType = false) {
    if (!localConnectivityConfiguration || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("asn", localConnectivityConfiguration.asn);
    writer.writeStringValue("bgpAddress", localConnectivityConfiguration.bgpAddress);
    writer.writeStringValue("endpoint", localConnectivityConfiguration.endpoint);
    writer.writeStringValue("@odata.type", localConnectivityConfiguration.odataType);
    writer.writeEnumValue("region", localConnectivityConfiguration.region);
    writer.writeAdditionalData(localConnectivityConfiguration.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Logs The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeLogs(writer, logs = {}, isSerializingDerivedType = false) {
    if (!logs || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, logs, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("connections", logs.connections, serializeConnection);
    writer.writeCollectionOfObjectValues("generativeAIInsights", logs.generativeAIInsights, serializeGenerativeAIInsight);
    writer.writeCollectionOfObjectValues("remoteNetworks", logs.remoteNetworks, serializeRemoteNetworkHealthEvent);
    writer.writeCollectionOfObjectValues("traffic", logs.traffic, serializeNetworkAccessTraffic);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param M365ForwardingRule The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeM365ForwardingRule(writer, m365ForwardingRule = {}, isSerializingDerivedType = false) {
    if (!m365ForwardingRule || isSerializingDerivedType) {
        return;
    }
    serializeForwardingRule(writer, m365ForwardingRule, isSerializingDerivedType);
    writer.writeEnumValue("category", m365ForwardingRule.category);
    writer.writeCollectionOfPrimitiveValues("ports", m365ForwardingRule.ports);
    writer.writeEnumValue("protocol", m365ForwardingRule.protocol);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param MarkdownBlockMessageConfiguration The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMarkdownBlockMessageConfiguration(writer, markdownBlockMessageConfiguration = {}, isSerializingDerivedType = false) {
    if (!markdownBlockMessageConfiguration || isSerializingDerivedType) {
        return;
    }
    serializeBlockPageConfigurationBase(writer, markdownBlockMessageConfiguration, isSerializingDerivedType);
    writer.writeStringValue("body", markdownBlockMessageConfiguration.body);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param NetworkAccessRoot The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeNetworkAccessRoot(writer, networkAccessRoot = {}, isSerializingDerivedType = false) {
    if (!networkAccessRoot || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, networkAccessRoot, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("alerts", networkAccessRoot.alerts, serializeAlert);
    writer.writeCollectionOfObjectValues("cloudFirewallPolicies", networkAccessRoot.cloudFirewallPolicies, serializeCloudFirewallPolicy);
    writer.writeObjectValue("connectivity", networkAccessRoot.connectivity, serializeConnectivity);
    writer.writeCollectionOfObjectValues("filteringPolicies", networkAccessRoot.filteringPolicies, serializeFilteringPolicy);
    writer.writeCollectionOfObjectValues("filteringProfiles", networkAccessRoot.filteringProfiles, serializeFilteringProfile);
    writer.writeCollectionOfObjectValues("forwardingPolicies", networkAccessRoot.forwardingPolicies, serializeForwardingPolicy);
    writer.writeCollectionOfObjectValues("forwardingProfiles", networkAccessRoot.forwardingProfiles, serializeForwardingProfile);
    writer.writeObjectValue("logs", networkAccessRoot.logs, serializeLogs);
    writer.writeObjectValue("reports", networkAccessRoot.reports, serializeReports);
    writer.writeObjectValue("settings", networkAccessRoot.settings, serializeSettings);
    writer.writeObjectValue("tenantStatus", networkAccessRoot.tenantStatus, serializeTenantStatus);
    writer.writeCollectionOfObjectValues("threatIntelligencePolicies", networkAccessRoot.threatIntelligencePolicies, serializeThreatIntelligencePolicy);
    writer.writeObjectValue("tls", networkAccessRoot.tls, serializeTlsTermination);
    writer.writeCollectionOfObjectValues("tlsInspectionPolicies", networkAccessRoot.tlsInspectionPolicies, serializeTlsInspectionPolicy);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param NetworkAccessTraffic The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeNetworkAccessTraffic(writer, networkAccessTraffic = {}, isSerializingDerivedType = false) {
    if (!networkAccessTraffic || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("action", networkAccessTraffic.action);
    writer.writeStringValue("agentVersion", networkAccessTraffic.agentVersion);
    writer.writeObjectValue("applicationSnapshot", networkAccessTraffic.applicationSnapshot, serializeApplicationSnapshot);
    writer.writeObjectValue("cloudApplicationMetadata", networkAccessTraffic.cloudApplicationMetadata, serializeCloudApplicationMetadata);
    writer.writeStringValue("connectionId", networkAccessTraffic.connectionId);
    writer.writeDateValue("createdDateTime", networkAccessTraffic.createdDateTime);
    writer.writeStringValue("description", networkAccessTraffic.description);
    writer.writeStringValue("destinationFQDN", networkAccessTraffic.destinationFQDN);
    writer.writeStringValue("destinationIp", networkAccessTraffic.destinationIp);
    writer.writeNumberValue("destinationPort", networkAccessTraffic.destinationPort);
    writer.writeStringValue("destinationUrl", networkAccessTraffic.destinationUrl);
    writer.writeObjectValue("destinationWebCategory", networkAccessTraffic.destinationWebCategory, serializeWebCategory);
    writer.writeObjectValue("device", networkAccessTraffic.device, I93801fe1d0700e2dfbaabaac8a107eaad07c485b973484cdebd0254423e093c4);
    writer.writeEnumValue("deviceCategory", networkAccessTraffic.deviceCategory);
    writer.writeStringValue("deviceId", networkAccessTraffic.deviceId);
    writer.writeStringValue("deviceOperatingSystem", networkAccessTraffic.deviceOperatingSystem);
    writer.writeStringValue("deviceOperatingSystemVersion", networkAccessTraffic.deviceOperatingSystemVersion);
    writer.writeStringValue("filteringProfileId", networkAccessTraffic.filteringProfileId);
    writer.writeStringValue("filteringProfileName", networkAccessTraffic.filteringProfileName);
    writer.writeObjectValue("headers", networkAccessTraffic.headers, serializeHeaders);
    writer.writeEnumValue("httpMethod", networkAccessTraffic.httpMethod);
    writer.writeStringValue("initiatingProcessName", networkAccessTraffic.initiatingProcessName);
    writer.writeEnumValue("networkProtocol", networkAccessTraffic.networkProtocol);
    writer.writeStringValue("@odata.type", networkAccessTraffic.odataType);
    writer.writeEnumValue("operationStatus", networkAccessTraffic.operationStatus);
    writer.writeStringValue("policyId", networkAccessTraffic.policyId);
    writer.writeStringValue("policyName", networkAccessTraffic.policyName);
    writer.writeStringValue("policyRuleId", networkAccessTraffic.policyRuleId);
    writer.writeStringValue("policyRuleName", networkAccessTraffic.policyRuleName);
    writer.writeStringValue("popProcessingRegion", networkAccessTraffic.popProcessingRegion);
    writer.writeObjectValue("privateAccessDetails", networkAccessTraffic.privateAccessDetails, serializePrivateAccessDetails);
    writer.writeNumberValue("receivedBytes", networkAccessTraffic.receivedBytes);
    writer.writeStringValue("remoteNetworkId", networkAccessTraffic.remoteNetworkId);
    writer.writeStringValue("resourceTenantId", networkAccessTraffic.resourceTenantId);
    writer.writeNumberValue("responseCode", networkAccessTraffic.responseCode);
    writer.writeNumberValue("sentBytes", networkAccessTraffic.sentBytes);
    writer.writeStringValue("sessionId", networkAccessTraffic.sessionId);
    writer.writeStringValue("sourceIp", networkAccessTraffic.sourceIp);
    writer.writeNumberValue("sourcePort", networkAccessTraffic.sourcePort);
    writer.writeStringValue("tenantId", networkAccessTraffic.tenantId);
    writer.writeStringValue("threatType", networkAccessTraffic.threatType);
    writer.writeEnumValue("trafficType", networkAccessTraffic.trafficType);
    writer.writeStringValue("transactionId", networkAccessTraffic.transactionId);
    writer.writeEnumValue("transportProtocol", networkAccessTraffic.transportProtocol);
    writer.writeObjectValue("user", networkAccessTraffic.user, I52fb59bcf4aad10419ab5ac07e13466b759ff69b47806ecf063de624d08c4da3);
    writer.writeStringValue("userId", networkAccessTraffic.userId);
    writer.writeStringValue("userPrincipalName", networkAccessTraffic.userPrincipalName);
    writer.writeCollectionOfPrimitiveValues("vendorNames", networkAccessTraffic.vendorNames);
    writer.writeAdditionalData(networkAccessTraffic.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param NetworkAccessTrafficCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeNetworkAccessTrafficCollectionResponse(writer, networkAccessTrafficCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!networkAccessTrafficCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, networkAccessTrafficCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", networkAccessTrafficCollectionResponse.value, serializeNetworkAccessTraffic);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PeerConnectivityConfiguration The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePeerConnectivityConfiguration(writer, peerConnectivityConfiguration = {}, isSerializingDerivedType = false) {
    if (!peerConnectivityConfiguration || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("asn", peerConnectivityConfiguration.asn);
    writer.writeStringValue("bgpAddress", peerConnectivityConfiguration.bgpAddress);
    writer.writeStringValue("endpoint", peerConnectivityConfiguration.endpoint);
    writer.writeStringValue("@odata.type", peerConnectivityConfiguration.odataType);
    writer.writeAdditionalData(peerConnectivityConfiguration.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Policy The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePolicy(writer, policy = {}, isSerializingDerivedType = false) {
    if (!policy || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, policy, isSerializingDerivedType);
    writer.writeStringValue("description", policy.description);
    writer.writeStringValue("name", policy.name);
    writer.writeCollectionOfObjectValues("policyRules", policy.policyRules, serializePolicyRule);
    writer.writeStringValue("version", policy.version);
    switch (policy.odataType) {
        case "#microsoft.graph.networkaccess.cloudFirewallPolicy":
            serializeCloudFirewallPolicy(writer, policy, true);
            break;
        case "#microsoft.graph.networkaccess.filteringPolicy":
            serializeFilteringPolicy(writer, policy, true);
            break;
        case "#microsoft.graph.networkaccess.forwardingPolicy":
            serializeForwardingPolicy(writer, policy, true);
            break;
        case "#microsoft.graph.networkaccess.threatIntelligencePolicy":
            serializeThreatIntelligencePolicy(writer, policy, true);
            break;
        case "#microsoft.graph.networkaccess.tlsInspectionPolicy":
            serializeTlsInspectionPolicy(writer, policy, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PolicyLink The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePolicyLink(writer, policyLink = {}, isSerializingDerivedType = false) {
    if (!policyLink || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, policyLink, isSerializingDerivedType);
    writer.writeObjectValue("policy", policyLink.policy, serializePolicy);
    writer.writeEnumValue("state", policyLink.state);
    writer.writeStringValue("version", policyLink.version);
    switch (policyLink.odataType) {
        case "#microsoft.graph.networkaccess.cloudFirewallPolicyLink":
            serializeCloudFirewallPolicyLink(writer, policyLink, true);
            break;
        case "#microsoft.graph.networkaccess.filteringPolicyLink":
            serializeFilteringPolicyLink(writer, policyLink, true);
            break;
        case "#microsoft.graph.networkaccess.forwardingPolicyLink":
            serializeForwardingPolicyLink(writer, policyLink, true);
            break;
        case "#microsoft.graph.networkaccess.threatIntelligencePolicyLink":
            serializeThreatIntelligencePolicyLink(writer, policyLink, true);
            break;
        case "#microsoft.graph.networkaccess.tlsInspectionPolicyLink":
            serializeTlsInspectionPolicyLink(writer, policyLink, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PolicyLinkCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePolicyLinkCollectionResponse(writer, policyLinkCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!policyLinkCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, policyLinkCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", policyLinkCollectionResponse.value, serializePolicyLink);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PolicyRule The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePolicyRule(writer, policyRule = {}, isSerializingDerivedType = false) {
    if (!policyRule || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, policyRule, isSerializingDerivedType);
    writer.writeStringValue("name", policyRule.name);
    switch (policyRule.odataType) {
        case "#microsoft.graph.networkaccess.cloudFirewallRule":
            serializeCloudFirewallRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.filteringRule":
            serializeFilteringRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.forwardingRule":
            serializeForwardingRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.fqdnFilteringRule":
            serializeFqdnFilteringRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.internetAccessForwardingRule":
            serializeInternetAccessForwardingRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.m365ForwardingRule":
            serializeM365ForwardingRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.privateAccessForwardingRule":
            serializePrivateAccessForwardingRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.threatIntelligenceRule":
            serializeThreatIntelligenceRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.tlsInspectionRule":
            serializeTlsInspectionRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.urlDestinationFilteringRule":
            serializeUrlDestinationFilteringRule(writer, policyRule, true);
            break;
        case "#microsoft.graph.networkaccess.webCategoryFilteringRule":
            serializeWebCategoryFilteringRule(writer, policyRule, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PolicyRuleCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePolicyRuleCollectionResponse(writer, policyRuleCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!policyRuleCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, policyRuleCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", policyRuleCollectionResponse.value, serializePolicyRule);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PolicyRuleDelta The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePolicyRuleDelta(writer, policyRuleDelta = {}, isSerializingDerivedType = false) {
    if (!policyRuleDelta || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("action", policyRuleDelta.action);
    writer.writeStringValue("@odata.type", policyRuleDelta.odataType);
    writer.writeStringValue("ruleId", policyRuleDelta.ruleId);
    writer.writeAdditionalData(policyRuleDelta.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PrivateAccessDetails The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePrivateAccessDetails(writer, privateAccessDetails = {}, isSerializingDerivedType = false) {
    if (!privateAccessDetails || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("accessType", privateAccessDetails.accessType);
    writer.writeStringValue("appSegmentId", privateAccessDetails.appSegmentId);
    writer.writeEnumValue("connectionStatus", privateAccessDetails.connectionStatus);
    writer.writeStringValue("connectorId", privateAccessDetails.connectorId);
    writer.writeStringValue("connectorIp", privateAccessDetails.connectorIp);
    writer.writeStringValue("connectorName", privateAccessDetails.connectorName);
    writer.writeStringValue("@odata.type", privateAccessDetails.odataType);
    writer.writeStringValue("processingRegion", privateAccessDetails.processingRegion);
    writer.writeObjectValue("thirdPartyTokenDetails", privateAccessDetails.thirdPartyTokenDetails, serializeThirdPartyTokenDetails);
    writer.writeAdditionalData(privateAccessDetails.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PrivateAccessForwardingRule The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePrivateAccessForwardingRule(writer, privateAccessForwardingRule = {}, isSerializingDerivedType = false) {
    if (!privateAccessForwardingRule || isSerializingDerivedType) {
        return;
    }
    serializeForwardingRule(writer, privateAccessForwardingRule, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Profile The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeProfile(writer, profile = {}, isSerializingDerivedType = false) {
    if (!profile || isSerializingDerivedType) {
        return;
    }
    serializeBaseEntity(writer, profile, isSerializingDerivedType);
    writer.writeStringValue("description", profile.description);
    writer.writeDateValue("lastModifiedDateTime", profile.lastModifiedDateTime);
    writer.writeCollectionOfObjectValues("policies", profile.policies, serializePolicyLink);
    writer.writeEnumValue("state", profile.state);
    writer.writeStringValue("version", profile.version);
    switch (profile.odataType) {
        case "#microsoft.graph.networkaccess.filteringProfile":
            serializeFilteringProfile(writer, profile, true);
            break;
        case "#microsoft.graph.networkaccess.forwardingProfile":
            serializeForwardingProfile(writer, profile, true);
            break;
        case "#microsoft.graph.networkaccess.forwardingProfileBase":
            serializeForwardingProfileBase(writer, profile, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RedundancyConfiguration The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRedundancyConfiguration(writer, redundancyConfiguration = {}, isSerializingDerivedType = false) {
    if (!redundancyConfiguration || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", redundancyConfiguration.odataType);
    writer.writeEnumValue("redundancyTier", redundancyConfiguration.redundancyTier);
    writer.writeStringValue("zoneLocalIpAddress", redundancyConfiguration.zoneLocalIpAddress);
    writer.writeAdditionalData(redundancyConfiguration.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedDestination The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedDestination(writer, relatedDestination = {}, isSerializingDerivedType = false) {
    if (!relatedDestination || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedDestination, isSerializingDerivedType);
    writer.writeStringValue("fqdn", relatedDestination.fqdn);
    writer.writeStringValue("ip", relatedDestination.ip);
    writer.writeEnumValue("networkingProtocol", relatedDestination.networkingProtocol);
    writer.writeNumberValue("port", relatedDestination.port);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedDevice The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedDevice(writer, relatedDevice = {}, isSerializingDerivedType = false) {
    if (!relatedDevice || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedDevice, isSerializingDerivedType);
    writer.writeStringValue("deviceId", relatedDevice.deviceId);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedFile The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedFile(writer, relatedFile = {}, isSerializingDerivedType = false) {
    if (!relatedFile || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedFile, isSerializingDerivedType);
    writer.writeStringValue("directory", relatedFile.directory);
    writer.writeStringValue("name", relatedFile.name);
    writer.writeNumberValue("sizeInBytes", relatedFile.sizeInBytes);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedFileHash The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedFileHash(writer, relatedFileHash = {}, isSerializingDerivedType = false) {
    if (!relatedFileHash || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedFileHash, isSerializingDerivedType);
    writer.writeEnumValue("algorithm", relatedFileHash.algorithm);
    writer.writeStringValue("value", relatedFileHash.value);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedMalware The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedMalware(writer, relatedMalware = {}, isSerializingDerivedType = false) {
    if (!relatedMalware || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedMalware, isSerializingDerivedType);
    writer.writeEnumValue("category", relatedMalware.category);
    writer.writeStringValue("name", relatedMalware.name);
    writer.writeEnumValue("severity", relatedMalware.severity);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedRemoteNetwork The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedRemoteNetwork(writer, relatedRemoteNetwork = {}, isSerializingDerivedType = false) {
    if (!relatedRemoteNetwork || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedRemoteNetwork, isSerializingDerivedType);
    writer.writeStringValue("remoteNetworkId", relatedRemoteNetwork.remoteNetworkId);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedResource The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedResource(writer, relatedResource = {}, isSerializingDerivedType = false) {
    if (!relatedResource || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", relatedResource.odataType);
    writer.writeAdditionalData(relatedResource.additionalData);
    switch (relatedResource.odataType) {
        case "#microsoft.graph.networkaccess.relatedDestination":
            serializeRelatedDestination(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedDevice":
            serializeRelatedDevice(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedFile":
            serializeRelatedFile(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedFileHash":
            serializeRelatedFileHash(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedMalware":
            serializeRelatedMalware(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedRemoteNetwork":
            serializeRelatedRemoteNetwork(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedTenant":
            serializeRelatedTenant(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedThreatIntelligence":
            serializeRelatedThreatIntelligence(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedToken":
            serializeRelatedToken(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedTransaction":
            serializeRelatedTransaction(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedUrl":
            serializeRelatedUrl(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedUser":
            serializeRelatedUser(writer, relatedResource, true);
            break;
        case "#microsoft.graph.networkaccess.relatedWebCategory":
            serializeRelatedWebCategory(writer, relatedResource, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedTenant The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedTenant(writer, relatedTenant = {}, isSerializingDerivedType = false) {
    if (!relatedTenant || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedTenant, isSerializingDerivedType);
    writer.writeStringValue("tenantId", relatedTenant.tenantId);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedThreatIntelligence The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedThreatIntelligence(writer, relatedThreatIntelligence = {}, isSerializingDerivedType = false) {
    if (!relatedThreatIntelligence || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedThreatIntelligence, isSerializingDerivedType);
    writer.writeNumberValue("threatCount", relatedThreatIntelligence.threatCount);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedToken The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedToken(writer, relatedToken = {}, isSerializingDerivedType = false) {
    if (!relatedToken || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedToken, isSerializingDerivedType);
    writer.writeStringValue("uniqueTokenIdentifier", relatedToken.uniqueTokenIdentifier);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedTransaction The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedTransaction(writer, relatedTransaction = {}, isSerializingDerivedType = false) {
    if (!relatedTransaction || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedTransaction, isSerializingDerivedType);
    writer.writeStringValue("transactionId", relatedTransaction.transactionId);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedUrl The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedUrl(writer, relatedUrl = {}, isSerializingDerivedType = false) {
    if (!relatedUrl || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedUrl, isSerializingDerivedType);
    writer.writeStringValue("url", relatedUrl.url);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedUser The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedUser(writer, relatedUser = {}, isSerializingDerivedType = false) {
    if (!relatedUser || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedUser, isSerializingDerivedType);
    writer.writeStringValue("userId", relatedUser.userId);
    writer.writeStringValue("userPrincipalName", relatedUser.userPrincipalName);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedWebCategory The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedWebCategory(writer, relatedWebCategory = {}, isSerializingDerivedType = false) {
    if (!relatedWebCategory || isSerializingDerivedType) {
        return;
    }
    serializeRelatedResource(writer, relatedWebCategory, isSerializingDerivedType);
    writer.writeStringValue("webCategoryName", relatedWebCategory.webCategoryName);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RemoteNetwork The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRemoteNetwork(writer, remoteNetwork = {}, isSerializingDerivedType = false) {
    if (!remoteNetwork || isSerializingDerivedType) {
        return;
    }
    serializeBaseEntity(writer, remoteNetwork, isSerializingDerivedType);
    writer.writeObjectValue("connectivityConfiguration", remoteNetwork.connectivityConfiguration, serializeRemoteNetworkConnectivityConfiguration);
    writer.writeCollectionOfObjectValues("deviceLinks", remoteNetwork.deviceLinks, serializeDeviceLink);
    writer.writeCollectionOfObjectValues("forwardingProfiles", remoteNetwork.forwardingProfiles, serializeForwardingProfile);
    writer.writeDateValue("lastModifiedDateTime", remoteNetwork.lastModifiedDateTime);
    writer.writeEnumValue("region", remoteNetwork.region);
    writer.writeStringValue("version", remoteNetwork.version);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RemoteNetworkCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRemoteNetworkCollectionResponse(writer, remoteNetworkCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!remoteNetworkCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, remoteNetworkCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", remoteNetworkCollectionResponse.value, serializeRemoteNetwork);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RemoteNetworkConnectivityConfiguration The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRemoteNetworkConnectivityConfiguration(writer, remoteNetworkConnectivityConfiguration = {}, isSerializingDerivedType = false) {
    if (!remoteNetworkConnectivityConfiguration || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfObjectValues("links", remoteNetworkConnectivityConfiguration.links, serializeConnectivityConfigurationLink);
    writer.writeStringValue("@odata.type", remoteNetworkConnectivityConfiguration.odataType);
    writer.writeStringValue("remoteNetworkId", remoteNetworkConnectivityConfiguration.remoteNetworkId);
    writer.writeStringValue("remoteNetworkName", remoteNetworkConnectivityConfiguration.remoteNetworkName);
    writer.writeAdditionalData(remoteNetworkConnectivityConfiguration.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RemoteNetworkHealthEvent The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRemoteNetworkHealthEvent(writer, remoteNetworkHealthEvent = {}, isSerializingDerivedType = false) {
    if (!remoteNetworkHealthEvent || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, remoteNetworkHealthEvent, isSerializingDerivedType);
    writer.writeNumberValue("bgpRoutesAdvertisedCount", remoteNetworkHealthEvent.bgpRoutesAdvertisedCount);
    writer.writeDateValue("createdDateTime", remoteNetworkHealthEvent.createdDateTime);
    writer.writeStringValue("description", remoteNetworkHealthEvent.description);
    writer.writeStringValue("destinationIp", remoteNetworkHealthEvent.destinationIp);
    writer.writeNumberValue("receivedBytes", remoteNetworkHealthEvent.receivedBytes);
    writer.writeStringValue("remoteNetworkId", remoteNetworkHealthEvent.remoteNetworkId);
    writer.writeNumberValue("sentBytes", remoteNetworkHealthEvent.sentBytes);
    writer.writeStringValue("sourceIp", remoteNetworkHealthEvent.sourceIp);
    writer.writeEnumValue("status", remoteNetworkHealthEvent.status);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RemoteNetworkHealthEventCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRemoteNetworkHealthEventCollectionResponse(writer, remoteNetworkHealthEventCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!remoteNetworkHealthEventCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, remoteNetworkHealthEventCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", remoteNetworkHealthEventCollectionResponse.value, serializeRemoteNetworkHealthEvent);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Reports The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeReports(writer, reports = {}, isSerializingDerivedType = false) {
    if (!reports || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, reports, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RuleDestination The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRuleDestination(writer, ruleDestination = {}, isSerializingDerivedType = false) {
    if (!ruleDestination || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", ruleDestination.odataType);
    writer.writeAdditionalData(ruleDestination.additionalData);
    switch (ruleDestination.odataType) {
        case "#microsoft.graph.networkaccess.fqdn":
            serializeFqdn(writer, ruleDestination, true);
            break;
        case "#microsoft.graph.networkaccess.ipAddress":
            serializeIpAddress(writer, ruleDestination, true);
            break;
        case "#microsoft.graph.networkaccess.ipDestination":
            serializeIpDestination(writer, ruleDestination, true);
            break;
        case "#microsoft.graph.networkaccess.ipRange":
            serializeIpRange(writer, ruleDestination, true);
            break;
        case "#microsoft.graph.networkaccess.ipSubnet":
            serializeIpSubnet(writer, ruleDestination, true);
            break;
        case "#microsoft.graph.networkaccess.url":
            serializeUrl(writer, ruleDestination, true);
            break;
        case "#microsoft.graph.networkaccess.webCategory":
            serializeWebCategory(writer, ruleDestination, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Settings The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSettings(writer, settings = {}, isSerializingDerivedType = false) {
    if (!settings || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, settings, isSerializingDerivedType);
    writer.writeObjectValue("conditionalAccess", settings.conditionalAccess, serializeConditionalAccessSettings);
    writer.writeObjectValue("crossTenantAccess", settings.crossTenantAccess, serializeCrossTenantAccessSettings);
    writer.writeObjectValue("customBlockPage", settings.customBlockPage, serializeCustomBlockPage);
    writer.writeObjectValue("forwardingOptions", settings.forwardingOptions, serializeForwardingOptions);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TenantStatus The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTenantStatus(writer, tenantStatus = {}, isSerializingDerivedType = false) {
    if (!tenantStatus || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, tenantStatus, isSerializingDerivedType);
    writer.writeStringValue("onboardingErrorMessage", tenantStatus.onboardingErrorMessage);
    writer.writeEnumValue("onboardingStatus", tenantStatus.onboardingStatus);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThirdPartyTokenDetails The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThirdPartyTokenDetails(writer, thirdPartyTokenDetails = {}, isSerializingDerivedType = false) {
    if (!thirdPartyTokenDetails || isSerializingDerivedType) {
        return;
    }
    writer.writeDateValue("expirationDateTime", thirdPartyTokenDetails.expirationDateTime);
    writer.writeDateValue("issuedAtDateTime", thirdPartyTokenDetails.issuedAtDateTime);
    writer.writeStringValue("@odata.type", thirdPartyTokenDetails.odataType);
    writer.writeStringValue("uniqueTokenIdentifier", thirdPartyTokenDetails.uniqueTokenIdentifier);
    writer.writeDateValue("validFromDateTime", thirdPartyTokenDetails.validFromDateTime);
    writer.writeAdditionalData(thirdPartyTokenDetails.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligenceDestination The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligenceDestination(writer, threatIntelligenceDestination = {}, isSerializingDerivedType = false) {
    if (!threatIntelligenceDestination || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", threatIntelligenceDestination.odataType);
    writer.writeAdditionalData(threatIntelligenceDestination.additionalData);
    switch (threatIntelligenceDestination.odataType) {
        case "#microsoft.graph.networkaccess.threatIntelligenceFqdnDestination":
            serializeThreatIntelligenceFqdnDestination(writer, threatIntelligenceDestination, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligenceFqdnDestination The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligenceFqdnDestination(writer, threatIntelligenceFqdnDestination = {}, isSerializingDerivedType = false) {
    if (!threatIntelligenceFqdnDestination || isSerializingDerivedType) {
        return;
    }
    serializeThreatIntelligenceDestination(writer, threatIntelligenceFqdnDestination, isSerializingDerivedType);
    writer.writeCollectionOfPrimitiveValues("values", threatIntelligenceFqdnDestination.values);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligenceMatchingConditions The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligenceMatchingConditions(writer, threatIntelligenceMatchingConditions = {}, isSerializingDerivedType = false) {
    if (!threatIntelligenceMatchingConditions || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfObjectValues("destinations", threatIntelligenceMatchingConditions.destinations, serializeThreatIntelligenceDestination);
    writer.writeStringValue("@odata.type", threatIntelligenceMatchingConditions.odataType);
    writer.writeEnumValue("severity", threatIntelligenceMatchingConditions.severity);
    writer.writeAdditionalData(threatIntelligenceMatchingConditions.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligencePolicy The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligencePolicy(writer, threatIntelligencePolicy = {}, isSerializingDerivedType = false) {
    if (!threatIntelligencePolicy || isSerializingDerivedType) {
        return;
    }
    serializePolicy(writer, threatIntelligencePolicy, isSerializingDerivedType);
    writer.writeDateValue("lastModifiedDateTime", threatIntelligencePolicy.lastModifiedDateTime);
    writer.writeObjectValue("settings", threatIntelligencePolicy.settings, serializeThreatIntelligencePolicySettings);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligencePolicyCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligencePolicyCollectionResponse(writer, threatIntelligencePolicyCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!threatIntelligencePolicyCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, threatIntelligencePolicyCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", threatIntelligencePolicyCollectionResponse.value, serializeThreatIntelligencePolicy);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligencePolicyLink The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligencePolicyLink(writer, threatIntelligencePolicyLink = {}, isSerializingDerivedType = false) {
    if (!threatIntelligencePolicyLink || isSerializingDerivedType) {
        return;
    }
    serializePolicyLink(writer, threatIntelligencePolicyLink, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligencePolicySettings The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligencePolicySettings(writer, threatIntelligencePolicySettings = {}, isSerializingDerivedType = false) {
    if (!threatIntelligencePolicySettings || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("defaultAction", threatIntelligencePolicySettings.defaultAction);
    writer.writeStringValue("@odata.type", threatIntelligencePolicySettings.odataType);
    writer.writeAdditionalData(threatIntelligencePolicySettings.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligenceRule The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligenceRule(writer, threatIntelligenceRule = {}, isSerializingDerivedType = false) {
    if (!threatIntelligenceRule || isSerializingDerivedType) {
        return;
    }
    serializePolicyRule(writer, threatIntelligenceRule, isSerializingDerivedType);
    writer.writeEnumValue("action", threatIntelligenceRule.action);
    writer.writeStringValue("description", threatIntelligenceRule.description);
    writer.writeObjectValue("matchingConditions", threatIntelligenceRule.matchingConditions, serializeThreatIntelligenceMatchingConditions);
    writer.writeNumberValue("priority", threatIntelligenceRule.priority);
    writer.writeObjectValue("settings", threatIntelligenceRule.settings, serializeThreatIntelligenceRuleSettings);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ThreatIntelligenceRuleSettings The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeThreatIntelligenceRuleSettings(writer, threatIntelligenceRuleSettings = {}, isSerializingDerivedType = false) {
    if (!threatIntelligenceRuleSettings || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", threatIntelligenceRuleSettings.odataType);
    writer.writeEnumValue("status", threatIntelligenceRuleSettings.status);
    writer.writeAdditionalData(threatIntelligenceRuleSettings.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionDestination The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionDestination(writer, tlsInspectionDestination = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionDestination || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", tlsInspectionDestination.odataType);
    writer.writeAdditionalData(tlsInspectionDestination.additionalData);
    switch (tlsInspectionDestination.odataType) {
        case "#microsoft.graph.networkaccess.tlsInspectionFqdnDestination":
            serializeTlsInspectionFqdnDestination(writer, tlsInspectionDestination, true);
            break;
        case "#microsoft.graph.networkaccess.tlsInspectionWebCategoryDestination":
            serializeTlsInspectionWebCategoryDestination(writer, tlsInspectionDestination, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionFqdnDestination The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionFqdnDestination(writer, tlsInspectionFqdnDestination = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionFqdnDestination || isSerializingDerivedType) {
        return;
    }
    serializeTlsInspectionDestination(writer, tlsInspectionFqdnDestination, isSerializingDerivedType);
    writer.writeCollectionOfPrimitiveValues("values", tlsInspectionFqdnDestination.values);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionMatchingConditions The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionMatchingConditions(writer, tlsInspectionMatchingConditions = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionMatchingConditions || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfObjectValues("destinations", tlsInspectionMatchingConditions.destinations, serializeTlsInspectionDestination);
    writer.writeStringValue("@odata.type", tlsInspectionMatchingConditions.odataType);
    writer.writeAdditionalData(tlsInspectionMatchingConditions.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionPolicy The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionPolicy(writer, tlsInspectionPolicy = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionPolicy || isSerializingDerivedType) {
        return;
    }
    serializePolicy(writer, tlsInspectionPolicy, isSerializingDerivedType);
    writer.writeDateValue("lastModifiedDateTime", tlsInspectionPolicy.lastModifiedDateTime);
    writer.writeObjectValue("settings", tlsInspectionPolicy.settings, serializeTlsInspectionPolicySettings);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionPolicyCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionPolicyCollectionResponse(writer, tlsInspectionPolicyCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionPolicyCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, tlsInspectionPolicyCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", tlsInspectionPolicyCollectionResponse.value, serializeTlsInspectionPolicy);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionPolicyLink The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionPolicyLink(writer, tlsInspectionPolicyLink = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionPolicyLink || isSerializingDerivedType) {
        return;
    }
    serializePolicyLink(writer, tlsInspectionPolicyLink, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionPolicySettings The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionPolicySettings(writer, tlsInspectionPolicySettings = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionPolicySettings || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", tlsInspectionPolicySettings.odataType);
    writer.writeAdditionalData(tlsInspectionPolicySettings.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionRule The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionRule(writer, tlsInspectionRule = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionRule || isSerializingDerivedType) {
        return;
    }
    serializePolicyRule(writer, tlsInspectionRule, isSerializingDerivedType);
    writer.writeStringValue("description", tlsInspectionRule.description);
    writer.writeObjectValue("matchingConditions", tlsInspectionRule.matchingConditions, serializeTlsInspectionMatchingConditions);
    writer.writeNumberValue("priority", tlsInspectionRule.priority);
    writer.writeObjectValue("settings", tlsInspectionRule.settings, serializeTlsInspectionRuleSettings);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionRuleSettings The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionRuleSettings(writer, tlsInspectionRuleSettings = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionRuleSettings || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", tlsInspectionRuleSettings.odataType);
    writer.writeEnumValue("status", tlsInspectionRuleSettings.status);
    writer.writeAdditionalData(tlsInspectionRuleSettings.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsInspectionWebCategoryDestination The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsInspectionWebCategoryDestination(writer, tlsInspectionWebCategoryDestination = {}, isSerializingDerivedType = false) {
    if (!tlsInspectionWebCategoryDestination || isSerializingDerivedType) {
        return;
    }
    serializeTlsInspectionDestination(writer, tlsInspectionWebCategoryDestination, isSerializingDerivedType);
    writer.writeCollectionOfPrimitiveValues("values", tlsInspectionWebCategoryDestination.values);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TlsTermination The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTlsTermination(writer, tlsTermination = {}, isSerializingDerivedType = false) {
    if (!tlsTermination || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, tlsTermination, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("externalCertificateAuthorityCertificates", tlsTermination.externalCertificateAuthorityCertificates, serializeExternalCertificateAuthorityCertificate);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TransactionSummary The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTransactionSummary(writer, transactionSummary = {}, isSerializingDerivedType = false) {
    if (!transactionSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("blockedCount", transactionSummary.blockedCount);
    writer.writeStringValue("@odata.type", transactionSummary.odataType);
    writer.writeNumberValue("totalCount", transactionSummary.totalCount);
    writer.writeEnumValue("trafficType", transactionSummary.trafficType);
    writer.writeAdditionalData(transactionSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TunnelConfiguration The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTunnelConfiguration(writer, tunnelConfiguration = {}, isSerializingDerivedType = false) {
    if (!tunnelConfiguration || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", tunnelConfiguration.odataType);
    writer.writeStringValue("preSharedKey", tunnelConfiguration.preSharedKey);
    writer.writeStringValue("zoneRedundancyPreSharedKey", tunnelConfiguration.zoneRedundancyPreSharedKey);
    writer.writeAdditionalData(tunnelConfiguration.additionalData);
    switch (tunnelConfiguration.odataType) {
        case "#microsoft.graph.networkaccess.tunnelConfigurationIKEv2Custom":
            serializeTunnelConfigurationIKEv2Custom(writer, tunnelConfiguration, true);
            break;
        case "#microsoft.graph.networkaccess.tunnelConfigurationIKEv2Default":
            serializeTunnelConfigurationIKEv2Default(writer, tunnelConfiguration, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TunnelConfigurationIKEv2Custom The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTunnelConfigurationIKEv2Custom(writer, tunnelConfigurationIKEv2Custom = {}, isSerializingDerivedType = false) {
    if (!tunnelConfigurationIKEv2Custom || isSerializingDerivedType) {
        return;
    }
    serializeTunnelConfiguration(writer, tunnelConfigurationIKEv2Custom, isSerializingDerivedType);
    writer.writeEnumValue("dhGroup", tunnelConfigurationIKEv2Custom.dhGroup);
    writer.writeEnumValue("ikeEncryption", tunnelConfigurationIKEv2Custom.ikeEncryption);
    writer.writeEnumValue("ikeIntegrity", tunnelConfigurationIKEv2Custom.ikeIntegrity);
    writer.writeEnumValue("ipSecEncryption", tunnelConfigurationIKEv2Custom.ipSecEncryption);
    writer.writeEnumValue("ipSecIntegrity", tunnelConfigurationIKEv2Custom.ipSecIntegrity);
    writer.writeEnumValue("pfsGroup", tunnelConfigurationIKEv2Custom.pfsGroup);
    writer.writeNumberValue("saLifeTimeSeconds", tunnelConfigurationIKEv2Custom.saLifeTimeSeconds);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TunnelConfigurationIKEv2Default The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTunnelConfigurationIKEv2Default(writer, tunnelConfigurationIKEv2Default = {}, isSerializingDerivedType = false) {
    if (!tunnelConfigurationIKEv2Default || isSerializingDerivedType) {
        return;
    }
    serializeTunnelConfiguration(writer, tunnelConfigurationIKEv2Default, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Url The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUrl(writer, url = {}, isSerializingDerivedType = false) {
    if (!url || isSerializingDerivedType) {
        return;
    }
    serializeRuleDestination(writer, url, isSerializingDerivedType);
    writer.writeStringValue("value", url.value);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param UrlDestinationFilteringRule The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUrlDestinationFilteringRule(writer, urlDestinationFilteringRule = {}, isSerializingDerivedType = false) {
    if (!urlDestinationFilteringRule || isSerializingDerivedType) {
        return;
    }
    serializeFilteringRule(writer, urlDestinationFilteringRule, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param UsageProfilingPoint The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUsageProfilingPoint(writer, usageProfilingPoint = {}, isSerializingDerivedType = false) {
    if (!usageProfilingPoint || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("internetAccessTrafficCount", usageProfilingPoint.internetAccessTrafficCount);
    writer.writeNumberValue("microsoft365AccessTrafficCount", usageProfilingPoint.microsoft365AccessTrafficCount);
    writer.writeStringValue("@odata.type", usageProfilingPoint.odataType);
    writer.writeNumberValue("privateAccessTrafficCount", usageProfilingPoint.privateAccessTrafficCount);
    writer.writeDateValue("timeStampDateTime", usageProfilingPoint.timeStampDateTime);
    writer.writeNumberValue("totalTrafficCount", usageProfilingPoint.totalTrafficCount);
    writer.writeAdditionalData(usageProfilingPoint.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param User The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUser(writer, user = {}, isSerializingDerivedType = false) {
    if (!user || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("displayName", user.displayName);
    writer.writeDateValue("firstAccessDateTime", user.firstAccessDateTime);
    writer.writeDateValue("lastAccessDateTime", user.lastAccessDateTime);
    writer.writeStringValue("@odata.type", user.odataType);
    writer.writeNumberValue("totalBytesReceived", user.totalBytesReceived);
    writer.writeNumberValue("totalBytesSent", user.totalBytesSent);
    writer.writeEnumValue("trafficType", user.trafficType);
    writer.writeNumberValue("transactionCount", user.transactionCount);
    writer.writeStringValue("userId", user.userId);
    writer.writeStringValue("userPrincipalName", user.userPrincipalName);
    writer.writeEnumValue("userType", user.userType);
    writer.writeAdditionalData(user.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ValidityDate The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeValidityDate(writer, validityDate = {}, isSerializingDerivedType = false) {
    if (!validityDate || isSerializingDerivedType) {
        return;
    }
    writer.writeDateValue("endDateTime", validityDate.endDateTime);
    writer.writeStringValue("@odata.type", validityDate.odataType);
    writer.writeDateValue("startDateTime", validityDate.startDateTime);
    writer.writeAdditionalData(validityDate.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WebCategoriesSummary The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWebCategoriesSummary(writer, webCategoriesSummary = {}, isSerializingDerivedType = false) {
    if (!webCategoriesSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeEnumValue("action", webCategoriesSummary.action);
    writer.writeNumberValue("deviceCount", webCategoriesSummary.deviceCount);
    writer.writeStringValue("@odata.type", webCategoriesSummary.odataType);
    writer.writeNumberValue("transactionCount", webCategoriesSummary.transactionCount);
    writer.writeNumberValue("userCount", webCategoriesSummary.userCount);
    writer.writeObjectValue("webCategory", webCategoriesSummary.webCategory, serializeWebCategory);
    writer.writeAdditionalData(webCategoriesSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WebCategory The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWebCategory(writer, webCategory = {}, isSerializingDerivedType = false) {
    if (!webCategory || isSerializingDerivedType) {
        return;
    }
    serializeRuleDestination(writer, webCategory, isSerializingDerivedType);
    writer.writeStringValue("displayName", webCategory.displayName);
    writer.writeStringValue("group", webCategory.group);
    writer.writeStringValue("name", webCategory.name);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WebCategoryFilteringRule The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWebCategoryFilteringRule(writer, webCategoryFilteringRule = {}, isSerializingDerivedType = false) {
    if (!webCategoryFilteringRule || isSerializingDerivedType) {
        return;
    }
    serializeFilteringRule(writer, webCategoryFilteringRule, isSerializingDerivedType);
}
export const AccessTypeObject = {
    QuickAccess: "quickAccess",
    PrivateAccess: "privateAccess",
    UnknownFutureValue: "unknownFutureValue",
    AppAccess: "appAccess",
};
export const AlertSeverityObject = {
    Informational: "informational",
    Low: "low",
    Medium: "medium",
    High: "high",
    UnknownFutureValue: "unknownFutureValue",
};
export const AlertTypeObject = {
    UnhealthyRemoteNetworks: "unhealthyRemoteNetworks",
    UnhealthyConnectors: "unhealthyConnectors",
    DeviceTokenInconsistency: "deviceTokenInconsistency",
    CrossTenantAnomaly: "crossTenantAnomaly",
    SuspiciousProcess: "suspiciousProcess",
    ThreatIntelligenceTransactions: "threatIntelligenceTransactions",
    UnknownFutureValue: "unknownFutureValue",
    WebContentBlocked: "webContentBlocked",
    Malware: "malware",
    PatientZero: "patientZero",
    Dlp: "dlp",
};
export const AlgorithmObject = {
    Md5: "md5",
    Sha1: "sha1",
    Sha256: "sha256",
    Sha256ac: "sha256ac",
    UnknownFutureValue: "unknownFutureValue",
};
export const ApplicationActivityObject = {
    None: "none",
    Prompt: "prompt",
    Mcp: "mcp",
    UnknownFutureValue: "unknownFutureValue",
};
export const BandwidthCapacityInMbpsObject = {
    Mbps250: "mbps250",
    Mbps500: "mbps500",
    Mbps750: "mbps750",
    Mbps1000: "mbps1000",
    UnknownFutureValue: "unknownFutureValue",
};
export const ClientFallbackActionObject = {
    Bypass: "bypass",
    Block: "block",
    DefaultEscaped: "default",
    UnknownFutureValue: "unknownFutureValue",
};
export const CloudFirewallActionObject = {
    Allow: "allow",
    Block: "block",
    UnknownFutureValue: "unknownFutureValue",
};
export const CloudFirewallProtocolObject = {
    Tcp: "tcp",
    Udp: "udp",
    UnknownFutureValue: "unknownFutureValue",
};
export const ConnectionStatusObject = {
    Open: "open",
    Active: "active",
    Closed: "closed",
    UnknownFutureValue: "unknownFutureValue",
};
export const ConnectivityStateObject = {
    Pending: "pending",
    Connected: "connected",
    Inactive: "inactive",
    ErrorEscaped: "error",
    UnknownFutureValue: "unknownFutureValue",
};
export const CrossTenantAccessTypeObject = {
    None: "none",
    B2bCollaboration: "b2bCollaboration",
    UnknownFutureValue: "unknownFutureValue",
};
export const DeviceCategoryObject = {
    Client: "client",
    Branch: "branch",
    UnknownFutureValue: "unknownFutureValue",
    RemoteNetwork: "remoteNetwork",
};
export const DeviceJoinTypeObject = {
    None: "none",
    MicrosoftEntraJoined: "microsoftEntraJoined",
    MicrosoftEntraRegistered: "microsoftEntraRegistered",
    UnknownFutureValue: "unknownFutureValue",
};
export const DeviceVendorObject = {
    BarracudaNetworks: "barracudaNetworks",
    CheckPoint: "checkPoint",
    CiscoMeraki: "ciscoMeraki",
    Citrix: "citrix",
    Fortinet: "fortinet",
    HpeAruba: "hpeAruba",
    NetFoundry: "netFoundry",
    Nuage: "nuage",
    OpenSystems: "openSystems",
    PaloAltoNetworks: "paloAltoNetworks",
    RiverbedTechnology: "riverbedTechnology",
    SilverPeak: "silverPeak",
    VmWareSdWan: "vmWareSdWan",
    Versa: "versa",
    Other: "other",
    CiscoCatalyst: "ciscoCatalyst",
    UnknownFutureValue: "unknownFutureValue",
    Aviatrix: "aviatrix",
    Netskope: "netskope",
    Teridion: "teridion",
    AristaNetworks: "aristaNetworks",
    AristaVeloCloud: "aristaVeloCloud",
    JuniperNetworks: "juniperNetworks",
};
export const DhGroupObject = {
    DhGroup14: "dhGroup14",
    DhGroup24: "dhGroup24",
    DhGroup2048: "dhGroup2048",
    Ecp256: "ecp256",
    Ecp384: "ecp384",
    UnknownFutureValue: "unknownFutureValue",
};
export const FilteringPolicyActionObject = {
    Block: "block",
    Allow: "allow",
    UnknownFutureValue: "unknownFutureValue",
    Bypass: "bypass",
    Alert: "alert",
};
export const ForwardingCategoryObject = {
    DefaultEscaped: "default",
    Optimized: "optimized",
    Allow: "allow",
    UnknownFutureValue: "unknownFutureValue",
};
export const ForwardingRuleActionObject = {
    Bypass: "bypass",
    Forward: "forward",
    UnknownFutureValue: "unknownFutureValue",
};
export const HttpMethodObject = {
    Get: "get",
    Post: "post",
    Put: "put",
    Delete: "delete",
    Head: "head",
    Options: "options",
    Connect: "connect",
    Patch: "patch",
    Trace: "trace",
    UnknownFutureValue: "unknownFutureValue",
};
export const IkeEncryptionObject = {
    Aes128: "aes128",
    Aes192: "aes192",
    Aes256: "aes256",
    GcmAes128: "gcmAes128",
    GcmAes256: "gcmAes256",
    UnknownFutureValue: "unknownFutureValue",
};
export const IkeIntegrityObject = {
    Sha256: "sha256",
    Sha384: "sha384",
    GcmAes128: "gcmAes128",
    GcmAes256: "gcmAes256",
    UnknownFutureValue: "unknownFutureValue",
};
export const IntentCategoryObject = {
    InitialAccess: "initialAccess",
    Persistence: "persistence",
    PrivilegeEscalation: "privilegeEscalation",
    DefenseEvasion: "defenseEvasion",
    CredentialAccess: "credentialAccess",
    Discovery: "discovery",
    LateralMovement: "lateralMovement",
    Execution: "execution",
    Collection: "collection",
    Exfiltration: "exfiltration",
    CommandAndControl: "commandAndControl",
    Impact: "impact",
    ImpairProcessControl: "impairProcessControl",
    InhibitResponseFunction: "inhibitResponseFunction",
    Reconnaissance: "reconnaissance",
    ResourceDevelopment: "resourceDevelopment",
    Evasion: "evasion",
    UnknownFutureValue: "unknownFutureValue",
};
export const IpSecEncryptionObject = {
    None: "none",
    GcmAes128: "gcmAes128",
    GcmAes192: "gcmAes192",
    GcmAes256: "gcmAes256",
    UnknownFutureValue: "unknownFutureValue",
};
export const IpSecIntegrityObject = {
    GcmAes128: "gcmAes128",
    GcmAes192: "gcmAes192",
    GcmAes256: "gcmAes256",
    Sha256: "sha256",
    UnknownFutureValue: "unknownFutureValue",
};
export const MalwareCategoryObject = {
    Adware: "adware",
    Backdoor: "backdoor",
    Behavior: "behavior",
    Bot: "bot",
    BrowserModifier: "browserModifier",
    Constructor: "constructor",
    Cryptojacking: "cryptojacking",
    Ddos: "ddos",
    Dropper: "dropper",
    DropperMalware: "dropperMalware",
    Exploit: "exploit",
    FilelessMalware: "filelessMalware",
    HackTool: "hackTool",
    HybridMalware: "hybridMalware",
    Joke: "joke",
    Keylogger: "keylogger",
    Misleading: "misleading",
    MonitoringTool: "monitoringTool",
    PolymorphicMalware: "polymorphicMalware",
    PasswordStealer: "passwordStealer",
    Program: "program",
    Ransomware: "ransomware",
    RemoteAccess: "remoteAccess",
    Rogue: "rogue",
    Rootkit: "rootkit",
    SettingsModifier: "settingsModifier",
    SoftwareBundler: "softwareBundler",
    Spammer: "spammer",
    Spoofer: "spoofer",
    Spyware: "spyware",
    Tool: "tool",
    Trojan: "trojan",
    TrojanClicker: "trojanClicker",
    TrojanDownloader: "trojanDownloader",
    TrojanNotifier: "trojanNotifier",
    TrojanProxy: "trojanProxy",
    TrojanSpy: "trojanSpy",
    Virus: "virus",
    WiperMalware: "wiperMalware",
    Worm: "worm",
    UnknownFutureValue: "unknownFutureValue",
};
export const NetworkDestinationTypeObject = {
    Url: "url",
    Fqdn: "fqdn",
    IpAddress: "ipAddress",
    IpRange: "ipRange",
    IpSubnet: "ipSubnet",
    WebCategory: "webCategory",
    UnknownFutureValue: "unknownFutureValue",
};
export const NetworkingProtocolObject = {
    Ip: "ip",
    Icmp: "icmp",
    Igmp: "igmp",
    Ggp: "ggp",
    Ipv4: "ipv4",
    Tcp: "tcp",
    Pup: "pup",
    Udp: "udp",
    Idp: "idp",
    Ipv6: "ipv6",
    Ipv6RoutingHeader: "ipv6RoutingHeader",
    Ipv6FragmentHeader: "ipv6FragmentHeader",
    IpSecEncapsulatingSecurityPayload: "ipSecEncapsulatingSecurityPayload",
    IpSecAuthenticationHeader: "ipSecAuthenticationHeader",
    IcmpV6: "icmpV6",
    Ipv6NoNextHeader: "ipv6NoNextHeader",
    Ipv6DestinationOptions: "ipv6DestinationOptions",
    Nd: "nd",
    Ipx: "ipx",
    Raw: "raw",
    Spx: "spx",
    SpxII: "spxII",
    UnknownFutureValue: "unknownFutureValue",
};
export const NetworkTrafficOperationStatusObject = {
    Success: "success",
    Failure: "failure",
    UnknownFutureValue: "unknownFutureValue",
};
export const OnboardingStatusObject = {
    Offboarded: "offboarded",
    OffboardingInProgress: "offboardingInProgress",
    OnboardingInProgress: "onboardingInProgress",
    Onboarded: "onboarded",
    OnboardingErrorOccurred: "onboardingErrorOccurred",
    OffboardingErrorOccurred: "offboardingErrorOccurred",
    UnknownFutureValue: "unknownFutureValue",
};
export const PfsGroupObject = {
    None: "none",
    Pfs1: "pfs1",
    Pfs2: "pfs2",
    Pfs14: "pfs14",
    Pfs24: "pfs24",
    Pfs2048: "pfs2048",
    Pfsmm: "pfsmm",
    Ecp256: "ecp256",
    Ecp384: "ecp384",
    UnknownFutureValue: "unknownFutureValue",
};
export const RedundancyTierObject = {
    NoRedundancy: "noRedundancy",
    ZoneRedundancy: "zoneRedundancy",
    UnknownFutureValue: "unknownFutureValue",
};
export const RegionObject = {
    EastUS: "eastUS",
    EastUS2: "eastUS2",
    WestUS: "westUS",
    WestUS2: "westUS2",
    WestUS3: "westUS3",
    CentralUS: "centralUS",
    NorthCentralUS: "northCentralUS",
    SouthCentralUS: "southCentralUS",
    NorthEurope: "northEurope",
    WestEurope: "westEurope",
    FranceCentral: "franceCentral",
    GermanyWestCentral: "germanyWestCentral",
    SwitzerlandNorth: "switzerlandNorth",
    UkSouth: "ukSouth",
    CanadaEast: "canadaEast",
    CanadaCentral: "canadaCentral",
    SouthAfricaWest: "southAfricaWest",
    SouthAfricaNorth: "southAfricaNorth",
    UaeNorth: "uaeNorth",
    AustraliaEast: "australiaEast",
    WestCentralUS: "westCentralUS",
    CentralIndia: "centralIndia",
    SouthEastAsia: "southEastAsia",
    SwedenCentral: "swedenCentral",
    SouthIndia: "southIndia",
    AustraliaSouthEast: "australiaSouthEast",
    KoreaCentral: "koreaCentral",
    PolandCentral: "polandCentral",
    BrazilSouth: "brazilSouth",
    JapanEast: "japanEast",
    JapanWest: "japanWest",
    KoreaSouth: "koreaSouth",
    ItalyNorth: "italyNorth",
    FranceSouth: "franceSouth",
    IsraelCentral: "israelCentral",
    UnknownFutureValue: "unknownFutureValue",
    TaiwanNorth: "taiwanNorth",
    MexicoCentral: "mexicoCentral",
    SpainCentral: "spainCentral",
    JioIndiaCentral: "jioIndiaCentral",
    BrazilSouthEast: "brazilSouthEast",
};
export const RemoteNetworkStatusObject = {
    TunnelDisconnected: "tunnelDisconnected",
    TunnelConnected: "tunnelConnected",
    BgpDisconnected: "bgpDisconnected",
    BgpConnected: "bgpConnected",
    RemoteNetworkAlive: "remoteNetworkAlive",
    UnknownFutureValue: "unknownFutureValue",
};
export const SecurityRuleStatusObject = {
    Enabled: "enabled",
    Disabled: "disabled",
    ReportOnly: "reportOnly",
    UnknownFutureValue: "unknownFutureValue",
};
export const StatusObject = {
    Enabled: "enabled",
    Disabled: "disabled",
    UnknownFutureValue: "unknownFutureValue",
};
export const ThreatIntelligenceActionObject = {
    Allow: "allow",
    Block: "block",
    UnknownFutureValue: "unknownFutureValue",
};
export const ThreatIntelligenceSeverityObject = {
    Low: "low",
    Medium: "medium",
    High: "high",
    UnknownFutureValue: "unknownFutureValue",
};
export const ThreatSeverityObject = {
    Low: "low",
    Medium: "medium",
    High: "high",
    Critical: "critical",
    UnknownFutureValue: "unknownFutureValue",
};
export const TlsCertificateStatusObject = {
    CsrGenerated: "csrGenerated",
    Enrolling: "enrolling",
    Active: "active",
    UnknownFutureValue: "unknownFutureValue",
    Expiring: "expiring",
    Expired: "expired",
    Enabled: "enabled",
    Disabled: "disabled",
    Creating: "creating",
    Revoked: "revoked",
};
export const TrafficForwardingTypeObject = {
    M365: "m365",
    Internet: "internet",
    Private: "private",
    UnknownFutureValue: "unknownFutureValue",
};
export const TrafficTypeObject = {
    Internet: "internet",
    Private: "private",
    Microsoft365: "microsoft365",
    All: "all",
    UnknownFutureValue: "unknownFutureValue",
};
export const UsageStatusObject = {
    FrequentlyUsed: "frequentlyUsed",
    RarelyUsed: "rarelyUsed",
    UnknownFutureValue: "unknownFutureValue",
};
export const UserTypeObject = {
    Member: "member",
    Guest: "guest",
    UnknownFutureValue: "unknownFutureValue",
};
/* tslint:enable */
/* eslint-enable */
//# sourceMappingURL=index.js.map