UNPKG

@microsoft/msgraph-beta-sdk

Version:
1,616 lines 95.4 kB
/* tslint:disable */
/* eslint-disable */
// Generated by Microsoft Kiota
// @ts-ignore
import { createGroupFromDiscriminatorValue, deserializeIntoBaseCollectionPaginationCountResponse, deserializeIntoEntity, serializeBaseCollectionPaginationCountResponse, serializeEntity, serializeGroup } 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 {ActionStep}
 */
// @ts-ignore
export function createActionStepFromDiscriminatorValue(parseNode) {
    return deserializeIntoActionStep;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ActionUrl}
 */
// @ts-ignore
export function createActionUrlFromDiscriminatorValue(parseNode) {
    return deserializeIntoActionUrl;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {B2BRegistrationMetricsBase}
 */
// @ts-ignore
export function createB2BRegistrationMetricsBaseFromDiscriminatorValue(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.tenantGovernanceServices.b2BRegistrationMetricsInitial":
                    return deserializeIntoB2BRegistrationMetricsInitial;
                case "#microsoft.graph.tenantGovernanceServices.b2BRegistrationMetricsRecent":
                    return deserializeIntoB2BRegistrationMetricsRecent;
            }
        }
    }
    return deserializeIntoB2BRegistrationMetricsBase;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {B2bRegistrationMetrics}
 */
// @ts-ignore
export function createB2bRegistrationMetricsFromDiscriminatorValue(parseNode) {
    return deserializeIntoB2bRegistrationMetrics;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {B2BRegistrationMetricsInitial}
 */
// @ts-ignore
export function createB2BRegistrationMetricsInitialFromDiscriminatorValue(parseNode) {
    return deserializeIntoB2BRegistrationMetricsInitial;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {B2BRegistrationMetricsRecent}
 */
// @ts-ignore
export function createB2BRegistrationMetricsRecentFromDiscriminatorValue(parseNode) {
    return deserializeIntoB2BRegistrationMetricsRecent;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {B2BSignInActivityMetricsBase}
 */
// @ts-ignore
export function createB2BSignInActivityMetricsBaseFromDiscriminatorValue(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.tenantGovernanceServices.b2BSignInActivityMetricsInitial":
                    return deserializeIntoB2BSignInActivityMetricsInitial;
                case "#microsoft.graph.tenantGovernanceServices.b2BSignInActivityMetricsRecent":
                    return deserializeIntoB2BSignInActivityMetricsRecent;
            }
        }
    }
    return deserializeIntoB2BSignInActivityMetricsBase;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {B2BSignInActivityMetrics}
 */
// @ts-ignore
export function createB2BSignInActivityMetricsFromDiscriminatorValue(parseNode) {
    return deserializeIntoB2BSignInActivityMetrics;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {B2BSignInActivityMetricsInitial}
 */
// @ts-ignore
export function createB2BSignInActivityMetricsInitialFromDiscriminatorValue(parseNode) {
    return deserializeIntoB2BSignInActivityMetricsInitial;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {B2BSignInActivityMetricsRecent}
 */
// @ts-ignore
export function createB2BSignInActivityMetricsRecentFromDiscriminatorValue(parseNode) {
    return deserializeIntoB2BSignInActivityMetricsRecent;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BillingMetricsBase}
 */
// @ts-ignore
export function createBillingMetricsBaseFromDiscriminatorValue(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.tenantGovernanceServices.billingMetricsInitial":
                    return deserializeIntoBillingMetricsInitial;
                case "#microsoft.graph.tenantGovernanceServices.billingMetricsRecent":
                    return deserializeIntoBillingMetricsRecent;
            }
        }
    }
    return deserializeIntoBillingMetricsBase;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BillingMetrics}
 */
// @ts-ignore
export function createBillingMetricsFromDiscriminatorValue(parseNode) {
    return deserializeIntoBillingMetrics;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BillingMetricsInitial}
 */
// @ts-ignore
export function createBillingMetricsInitialFromDiscriminatorValue(parseNode) {
    return deserializeIntoBillingMetricsInitial;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BillingMetricsRecent}
 */
// @ts-ignore
export function createBillingMetricsRecentFromDiscriminatorValue(parseNode) {
    return deserializeIntoBillingMetricsRecent;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DelegatedAdministrationRoleAssignment}
 */
// @ts-ignore
export function createDelegatedAdministrationRoleAssignmentFromDiscriminatorValue(parseNode) {
    return deserializeIntoDelegatedAdministrationRoleAssignment;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DelegatedAdministrationRoleAssignmentSnapshot}
 */
// @ts-ignore
export function createDelegatedAdministrationRoleAssignmentSnapshotFromDiscriminatorValue(parseNode) {
    return deserializeIntoDelegatedAdministrationRoleAssignmentSnapshot;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GovernanceInvitationCollectionResponse}
 */
// @ts-ignore
export function createGovernanceInvitationCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoGovernanceInvitationCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GovernanceInvitation}
 */
// @ts-ignore
export function createGovernanceInvitationFromDiscriminatorValue(parseNode) {
    return deserializeIntoGovernanceInvitation;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GovernancePolicyTemplateCollectionResponse}
 */
// @ts-ignore
export function createGovernancePolicyTemplateCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoGovernancePolicyTemplateCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GovernancePolicyTemplate}
 */
// @ts-ignore
export function createGovernancePolicyTemplateFromDiscriminatorValue(parseNode) {
    return deserializeIntoGovernancePolicyTemplate;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GovernanceRelationshipCollectionResponse}
 */
// @ts-ignore
export function createGovernanceRelationshipCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoGovernanceRelationshipCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GovernanceRelationship}
 */
// @ts-ignore
export function createGovernanceRelationshipFromDiscriminatorValue(parseNode) {
    return deserializeIntoGovernanceRelationship;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GovernanceRequestCollectionResponse}
 */
// @ts-ignore
export function createGovernanceRequestCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoGovernanceRequestCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GovernanceRequest}
 */
// @ts-ignore
export function createGovernanceRequestFromDiscriminatorValue(parseNode) {
    return deserializeIntoGovernanceRequest;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {LongRunningOperation}
 */
// @ts-ignore
export function createLongRunningOperationFromDiscriminatorValue(parseNode) {
    return deserializeIntoLongRunningOperation;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {MultiTenantApplicationMetricsBase}
 */
// @ts-ignore
export function createMultiTenantApplicationMetricsBaseFromDiscriminatorValue(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.tenantGovernanceServices.multiTenantApplicationMetricsInitial":
                    return deserializeIntoMultiTenantApplicationMetricsInitial;
                case "#microsoft.graph.tenantGovernanceServices.multiTenantApplicationMetricsRecent":
                    return deserializeIntoMultiTenantApplicationMetricsRecent;
            }
        }
    }
    return deserializeIntoMultiTenantApplicationMetricsBase;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {MultiTenantApplicationMetrics}
 */
// @ts-ignore
export function createMultiTenantApplicationMetricsFromDiscriminatorValue(parseNode) {
    return deserializeIntoMultiTenantApplicationMetrics;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {MultiTenantApplicationMetricsInitial}
 */
// @ts-ignore
export function createMultiTenantApplicationMetricsInitialFromDiscriminatorValue(parseNode) {
    return deserializeIntoMultiTenantApplicationMetricsInitial;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {MultiTenantApplicationMetricsRecent}
 */
// @ts-ignore
export function createMultiTenantApplicationMetricsRecentFromDiscriminatorValue(parseNode) {
    return deserializeIntoMultiTenantApplicationMetricsRecent;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {MultiTenantApplicationsToProvision}
 */
// @ts-ignore
export function createMultiTenantApplicationsToProvisionFromDiscriminatorValue(parseNode) {
    return deserializeIntoMultiTenantApplicationsToProvision;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {MultiTenantApplicationsToProvisionSnapshot}
 */
// @ts-ignore
export function createMultiTenantApplicationsToProvisionSnapshotFromDiscriminatorValue(parseNode) {
    return deserializeIntoMultiTenantApplicationsToProvisionSnapshot;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RelatedTenantCollectionResponse}
 */
// @ts-ignore
export function createRelatedTenantCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedTenantCollectionResponse;
}
/**
 * Creates a new instance of 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 {RelatedTenantsRefreshRequest}
 */
// @ts-ignore
export function createRelatedTenantsRefreshRequestFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedTenantsRefreshRequest;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RelatedTenantsRefreshStatus}
 */
// @ts-ignore
export function createRelatedTenantsRefreshStatusFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelatedTenantsRefreshStatus;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RelationshipPolicy}
 */
// @ts-ignore
export function createRelationshipPolicyFromDiscriminatorValue(parseNode) {
    return deserializeIntoRelationshipPolicy;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RequiredResourceAccess}
 */
// @ts-ignore
export function createRequiredResourceAccessFromDiscriminatorValue(parseNode) {
    return deserializeIntoRequiredResourceAccess;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ResourcePermission}
 */
// @ts-ignore
export function createResourcePermissionFromDiscriminatorValue(parseNode) {
    return deserializeIntoResourcePermission;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RoleTemplate}
 */
// @ts-ignore
export function createRoleTemplateFromDiscriminatorValue(parseNode) {
    return deserializeIntoRoleTemplate;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TenantGovernance}
 */
// @ts-ignore
export function createTenantGovernanceFromDiscriminatorValue(parseNode) {
    return deserializeIntoTenantGovernance;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TenantGovernanceSetting}
 */
// @ts-ignore
export function createTenantGovernanceSettingFromDiscriminatorValue(parseNode) {
    return deserializeIntoTenantGovernanceSetting;
}
/**
 * The deserialization information for the current model
 * @param ActionStep The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoActionStep(actionStep = {}) {
    return {
        "actionUrl": n => { actionStep.actionUrl = n.getObjectValue(createActionUrlFromDiscriminatorValue); },
        "backingStoreEnabled": n => { actionStep.backingStoreEnabled = true; },
        "@odata.type": n => { actionStep.odataType = n.getStringValue(); },
        "stepNumber": n => { actionStep.stepNumber = n.getStringValue(); },
        "text": n => { actionStep.text = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param ActionUrl The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoActionUrl(actionUrl = {}) {
    return {
        "backingStoreEnabled": n => { actionUrl.backingStoreEnabled = true; },
        "displayName": n => { actionUrl.displayName = n.getStringValue(); },
        "@odata.type": n => { actionUrl.odataType = n.getStringValue(); },
        "url": n => { actionUrl.url = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param B2bRegistrationMetrics The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoB2bRegistrationMetrics(b2bRegistrationMetrics = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(b2bRegistrationMetrics)), { "initial": n => { b2bRegistrationMetrics.initial = n.getObjectValue(createB2BRegistrationMetricsInitialFromDiscriminatorValue); }, "investigationHints": n => { b2bRegistrationMetrics.investigationHints = n.getCollectionOfObjectValues(createActionStepFromDiscriminatorValue); }, "recent": n => { b2bRegistrationMetrics.recent = n.getObjectValue(createB2BRegistrationMetricsRecentFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param B2BRegistrationMetricsBase The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoB2BRegistrationMetricsBase(b2BRegistrationMetricsBase = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(b2BRegistrationMetricsBase)), { "inboundTotalUsers": n => { b2BRegistrationMetricsBase.inboundTotalUsers = n.getNumberValue(); }, "outboundTotalUsers": n => { b2BRegistrationMetricsBase.outboundTotalUsers = n.getNumberValue(); }, "watermarkDateTime": n => { b2BRegistrationMetricsBase.watermarkDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param B2BRegistrationMetricsInitial The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoB2BRegistrationMetricsInitial(b2BRegistrationMetricsInitial = {}) {
    return Object.assign(Object.assign({}, deserializeIntoB2BRegistrationMetricsBase(b2BRegistrationMetricsInitial)), { "createdDateTime": n => { b2BRegistrationMetricsInitial.createdDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param B2BRegistrationMetricsRecent The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoB2BRegistrationMetricsRecent(b2BRegistrationMetricsRecent = {}) {
    return Object.assign(Object.assign({}, deserializeIntoB2BRegistrationMetricsBase(b2BRegistrationMetricsRecent)), { "updateDateTime": n => { b2BRegistrationMetricsRecent.updateDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param B2BSignInActivityMetrics The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoB2BSignInActivityMetrics(b2BSignInActivityMetrics = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(b2BSignInActivityMetrics)), { "initial": n => { b2BSignInActivityMetrics.initial = n.getObjectValue(createB2BSignInActivityMetricsInitialFromDiscriminatorValue); }, "investigationHints": n => { b2BSignInActivityMetrics.investigationHints = n.getCollectionOfObjectValues(createActionStepFromDiscriminatorValue); }, "recent": n => { b2BSignInActivityMetrics.recent = n.getObjectValue(createB2BSignInActivityMetricsRecentFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param B2BSignInActivityMetricsBase The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoB2BSignInActivityMetricsBase(b2BSignInActivityMetricsBase = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(b2BSignInActivityMetricsBase)), { "inboundMonthlyTotalApplications": n => { b2BSignInActivityMetricsBase.inboundMonthlyTotalApplications = n.getNumberValue(); }, "inboundMonthlyTotalUsers": n => { b2BSignInActivityMetricsBase.inboundMonthlyTotalUsers = n.getNumberValue(); }, "outboundMonthlyTotalApplications": n => { b2BSignInActivityMetricsBase.outboundMonthlyTotalApplications = n.getNumberValue(); }, "outboundMonthlyTotalUsers": n => { b2BSignInActivityMetricsBase.outboundMonthlyTotalUsers = n.getNumberValue(); }, "watermarkDateTime": n => { b2BSignInActivityMetricsBase.watermarkDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param B2BSignInActivityMetricsInitial The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoB2BSignInActivityMetricsInitial(b2BSignInActivityMetricsInitial = {}) {
    return Object.assign(Object.assign({}, deserializeIntoB2BSignInActivityMetricsBase(b2BSignInActivityMetricsInitial)), { "createdDateTime": n => { b2BSignInActivityMetricsInitial.createdDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param B2BSignInActivityMetricsRecent The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoB2BSignInActivityMetricsRecent(b2BSignInActivityMetricsRecent = {}) {
    return Object.assign(Object.assign({}, deserializeIntoB2BSignInActivityMetricsBase(b2BSignInActivityMetricsRecent)), { "updateDateTime": n => { b2BSignInActivityMetricsRecent.updateDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param BillingMetrics The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBillingMetrics(billingMetrics = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(billingMetrics)), { "initial": n => { billingMetrics.initial = n.getObjectValue(createBillingMetricsInitialFromDiscriminatorValue); }, "investigationHints": n => { billingMetrics.investigationHints = n.getCollectionOfObjectValues(createActionStepFromDiscriminatorValue); }, "recent": n => { billingMetrics.recent = n.getObjectValue(createBillingMetricsRecentFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param BillingMetricsBase The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBillingMetricsBase(billingMetricsBase = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(billingMetricsBase)), { "foreignAssociatedTenantBillingManagementActiveCount": n => { billingMetricsBase.foreignAssociatedTenantBillingManagementActiveCount = n.getNumberValue(); }, "foreignAssociatedTenantCount": n => { billingMetricsBase.foreignAssociatedTenantCount = n.getNumberValue(); }, "foreignAssociatedTenantProvisioningActiveCount": n => { billingMetricsBase.foreignAssociatedTenantProvisioningActiveCount = n.getNumberValue(); }, "localAssociatedTenantBillingManagementActiveCount": n => { billingMetricsBase.localAssociatedTenantBillingManagementActiveCount = n.getNumberValue(); }, "localAssociatedTenantCount": n => { billingMetricsBase.localAssociatedTenantCount = n.getNumberValue(); }, "localAssociatedTenantIds": n => { billingMetricsBase.localAssociatedTenantIds = n.getCollectionOfPrimitiveValues("string"); }, "localAssociatedTenantProvisioningActiveCount": n => { billingMetricsBase.localAssociatedTenantProvisioningActiveCount = n.getNumberValue(); }, "watermarkDateTime": n => { billingMetricsBase.watermarkDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param BillingMetricsInitial The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBillingMetricsInitial(billingMetricsInitial = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBillingMetricsBase(billingMetricsInitial)), { "createdDateTime": n => { billingMetricsInitial.createdDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param BillingMetricsRecent The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoBillingMetricsRecent(billingMetricsRecent = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBillingMetricsBase(billingMetricsRecent)), { "updateDateTime": n => { billingMetricsRecent.updateDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param DelegatedAdministrationRoleAssignment The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDelegatedAdministrationRoleAssignment(delegatedAdministrationRoleAssignment = {}) {
    return {
        "backingStoreEnabled": n => { delegatedAdministrationRoleAssignment.backingStoreEnabled = true; },
        "group": n => { delegatedAdministrationRoleAssignment.group = n.getObjectValue(createGroupFromDiscriminatorValue); },
        "groupDisplayName": n => { delegatedAdministrationRoleAssignment.groupDisplayName = n.getStringValue(); },
        "@odata.type": n => { delegatedAdministrationRoleAssignment.odataType = n.getStringValue(); },
        "roleTemplates": n => { delegatedAdministrationRoleAssignment.roleTemplates = n.getCollectionOfObjectValues(createRoleTemplateFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param DelegatedAdministrationRoleAssignmentSnapshot The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoDelegatedAdministrationRoleAssignmentSnapshot(delegatedAdministrationRoleAssignmentSnapshot = {}) {
    return {
        "backingStoreEnabled": n => { delegatedAdministrationRoleAssignmentSnapshot.backingStoreEnabled = true; },
        "groupDisplayName": n => { delegatedAdministrationRoleAssignmentSnapshot.groupDisplayName = n.getStringValue(); },
        "groupId": n => { delegatedAdministrationRoleAssignmentSnapshot.groupId = n.getStringValue(); },
        "@odata.type": n => { delegatedAdministrationRoleAssignmentSnapshot.odataType = n.getStringValue(); },
        "roleTemplates": n => { delegatedAdministrationRoleAssignmentSnapshot.roleTemplates = n.getCollectionOfObjectValues(createRoleTemplateFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param GovernanceInvitation The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGovernanceInvitation(governanceInvitation = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(governanceInvitation)), { "createdDateTime": n => { governanceInvitation.createdDateTime = n.getDateValue(); }, "expirationDateTime": n => { governanceInvitation.expirationDateTime = n.getDateValue(); }, "governedTenantId": n => { governanceInvitation.governedTenantId = n.getStringValue(); }, "governedTenantName": n => { governanceInvitation.governedTenantName = n.getStringValue(); }, "governingTenantId": n => { governanceInvitation.governingTenantId = n.getStringValue(); }, "governingTenantName": n => { governanceInvitation.governingTenantName = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param GovernanceInvitationCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGovernanceInvitationCollectionResponse(governanceInvitationCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(governanceInvitationCollectionResponse)), { "value": n => { governanceInvitationCollectionResponse.value = n.getCollectionOfObjectValues(createGovernanceInvitationFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param GovernancePolicyTemplate The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGovernancePolicyTemplate(governancePolicyTemplate = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(governancePolicyTemplate)), { "createdDateTime": n => { governancePolicyTemplate.createdDateTime = n.getDateValue(); }, "delegatedAdministrationRoleAssignments": n => { governancePolicyTemplate.delegatedAdministrationRoleAssignments = n.getCollectionOfObjectValues(createDelegatedAdministrationRoleAssignmentFromDiscriminatorValue); }, "description": n => { governancePolicyTemplate.description = n.getStringValue(); }, "displayName": n => { governancePolicyTemplate.displayName = n.getStringValue(); }, "governedTenantCanTerminate": n => { governancePolicyTemplate.governedTenantCanTerminate = n.getBooleanValue(); }, "lastModifiedDateTime": n => { governancePolicyTemplate.lastModifiedDateTime = n.getDateValue(); }, "multiTenantApplicationsToProvision": n => { governancePolicyTemplate.multiTenantApplicationsToProvision = n.getCollectionOfObjectValues(createMultiTenantApplicationsToProvisionFromDiscriminatorValue); }, "version": n => { governancePolicyTemplate.version = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param GovernancePolicyTemplateCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGovernancePolicyTemplateCollectionResponse(governancePolicyTemplateCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(governancePolicyTemplateCollectionResponse)), { "value": n => { governancePolicyTemplateCollectionResponse.value = n.getCollectionOfObjectValues(createGovernancePolicyTemplateFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param GovernanceRelationship The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGovernanceRelationship(governanceRelationship = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(governanceRelationship)), { "createdType": n => { governanceRelationship.createdType = n.getEnumValue(RelationshipCreationTypeObject); }, "creationDateTime": n => { governanceRelationship.creationDateTime = n.getDateValue(); }, "governedTenantId": n => { governanceRelationship.governedTenantId = n.getStringValue(); }, "governedTenantName": n => { governanceRelationship.governedTenantName = n.getStringValue(); }, "governingTenantId": n => { governanceRelationship.governingTenantId = n.getStringValue(); }, "governingTenantName": n => { governanceRelationship.governingTenantName = n.getStringValue(); }, "policySnapshot": n => { governanceRelationship.policySnapshot = n.getObjectValue(createRelationshipPolicyFromDiscriminatorValue); }, "status": n => { governanceRelationship.status = n.getEnumValue(RelationshipStatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param GovernanceRelationshipCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGovernanceRelationshipCollectionResponse(governanceRelationshipCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(governanceRelationshipCollectionResponse)), { "value": n => { governanceRelationshipCollectionResponse.value = n.getCollectionOfObjectValues(createGovernanceRelationshipFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param GovernanceRequest The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGovernanceRequest(governanceRequest = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(governanceRequest)), { "expirationDateTime": n => { governanceRequest.expirationDateTime = n.getDateValue(); }, "governancePolicyTemplate": n => { governanceRequest.governancePolicyTemplate = n.getObjectValue(createGovernancePolicyTemplateFromDiscriminatorValue); }, "governedTenantId": n => { governanceRequest.governedTenantId = n.getStringValue(); }, "governedTenantName": n => { governanceRequest.governedTenantName = n.getStringValue(); }, "governingTenantId": n => { governanceRequest.governingTenantId = n.getStringValue(); }, "governingTenantName": n => { governanceRequest.governingTenantName = n.getStringValue(); }, "policySnapshot": n => { governanceRequest.policySnapshot = n.getObjectValue(createRelationshipPolicyFromDiscriminatorValue); }, "requestDateTime": n => { governanceRequest.requestDateTime = n.getDateValue(); }, "status": n => { governanceRequest.status = n.getEnumValue(RequestStatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param GovernanceRequestCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGovernanceRequestCollectionResponse(governanceRequestCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(governanceRequestCollectionResponse)), { "value": n => { governanceRequestCollectionResponse.value = n.getCollectionOfObjectValues(createGovernanceRequestFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param LongRunningOperation The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoLongRunningOperation(longRunningOperation = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(longRunningOperation)), { "createdDateTime": n => { longRunningOperation.createdDateTime = n.getDateValue(); }, "lastActionDateTime": n => { longRunningOperation.lastActionDateTime = n.getDateValue(); }, "resourceLocation": n => { longRunningOperation.resourceLocation = n.getStringValue(); }, "status": n => { longRunningOperation.status = n.getEnumValue(LongRunningOperationStatusObject); }, "statusDetail": n => { longRunningOperation.statusDetail = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param MultiTenantApplicationMetrics The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMultiTenantApplicationMetrics(multiTenantApplicationMetrics = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(multiTenantApplicationMetrics)), { "initial": n => { multiTenantApplicationMetrics.initial = n.getObjectValue(createMultiTenantApplicationMetricsInitialFromDiscriminatorValue); }, "investigationHints": n => { multiTenantApplicationMetrics.investigationHints = n.getCollectionOfObjectValues(createActionStepFromDiscriminatorValue); }, "recent": n => { multiTenantApplicationMetrics.recent = n.getObjectValue(createMultiTenantApplicationMetricsRecentFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param MultiTenantApplicationMetricsBase The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMultiTenantApplicationMetricsBase(multiTenantApplicationMetricsBase = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(multiTenantApplicationMetricsBase)), { "inboundMonthlyTotalApplications": n => { multiTenantApplicationMetricsBase.inboundMonthlyTotalApplications = n.getNumberValue(); }, "outboundMonthlyTotalApplications": n => { multiTenantApplicationMetricsBase.outboundMonthlyTotalApplications = n.getNumberValue(); }, "watermarkDateTime": n => { multiTenantApplicationMetricsBase.watermarkDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param MultiTenantApplicationMetricsInitial The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMultiTenantApplicationMetricsInitial(multiTenantApplicationMetricsInitial = {}) {
    return Object.assign(Object.assign({}, deserializeIntoMultiTenantApplicationMetricsBase(multiTenantApplicationMetricsInitial)), { "createdDateTime": n => { multiTenantApplicationMetricsInitial.createdDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param MultiTenantApplicationMetricsRecent The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMultiTenantApplicationMetricsRecent(multiTenantApplicationMetricsRecent = {}) {
    return Object.assign(Object.assign({}, deserializeIntoMultiTenantApplicationMetricsBase(multiTenantApplicationMetricsRecent)), { "updateDateTime": n => { multiTenantApplicationMetricsRecent.updateDateTime = n.getDateValue(); } });
}
/**
 * The deserialization information for the current model
 * @param MultiTenantApplicationsToProvision The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMultiTenantApplicationsToProvision(multiTenantApplicationsToProvision = {}) {
    return {
        "appId": n => { multiTenantApplicationsToProvision.appId = n.getStringValue(); },
        "backingStoreEnabled": n => { multiTenantApplicationsToProvision.backingStoreEnabled = true; },
        "displayName": n => { multiTenantApplicationsToProvision.displayName = n.getStringValue(); },
        "objectId": n => { multiTenantApplicationsToProvision.objectId = n.getStringValue(); },
        "@odata.type": n => { multiTenantApplicationsToProvision.odataType = n.getStringValue(); },
        "requiredResourceAccesses": n => { multiTenantApplicationsToProvision.requiredResourceAccesses = n.getCollectionOfObjectValues(createRequiredResourceAccessFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param MultiTenantApplicationsToProvisionSnapshot The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMultiTenantApplicationsToProvisionSnapshot(multiTenantApplicationsToProvisionSnapshot = {}) {
    return {
        "appId": n => { multiTenantApplicationsToProvisionSnapshot.appId = n.getStringValue(); },
        "backingStoreEnabled": n => { multiTenantApplicationsToProvisionSnapshot.backingStoreEnabled = true; },
        "displayName": n => { multiTenantApplicationsToProvisionSnapshot.displayName = n.getStringValue(); },
        "objectId": n => { multiTenantApplicationsToProvisionSnapshot.objectId = n.getStringValue(); },
        "@odata.type": n => { multiTenantApplicationsToProvisionSnapshot.odataType = n.getStringValue(); },
        "requiredResourceAccesses": n => { multiTenantApplicationsToProvisionSnapshot.requiredResourceAccesses = n.getCollectionOfObjectValues(createRequiredResourceAccessFromDiscriminatorValue); },
    };
}
/**
 * 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({}, deserializeIntoEntity(relatedTenant)), { "appB2BSignInActivityMetrics": n => { relatedTenant.appB2BSignInActivityMetrics = n.getObjectValue(createB2BSignInActivityMetricsFromDiscriminatorValue); }, "b2BRegistrationMetrics": n => { relatedTenant.b2BRegistrationMetrics = n.getObjectValue(createB2bRegistrationMetricsFromDiscriminatorValue); }, "b2BSignInActivityMetrics": n => { relatedTenant.b2BSignInActivityMetrics = n.getObjectValue(createB2BSignInActivityMetricsFromDiscriminatorValue); }, "billingMetrics": n => { relatedTenant.billingMetrics = n.getObjectValue(createBillingMetricsFromDiscriminatorValue); }, "createdDateTime": n => { relatedTenant.createdDateTime = n.getDateValue(); }, "isMicrosoftInfrastructure": n => { relatedTenant.isMicrosoftInfrastructure = n.getBooleanValue(); }, "multiTenantApplicationMetrics": n => { relatedTenant.multiTenantApplicationMetrics = n.getObjectValue(createMultiTenantApplicationMetricsFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedTenantCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedTenantCollectionResponse(relatedTenantCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(relatedTenantCollectionResponse)), { "value": n => { relatedTenantCollectionResponse.value = n.getCollectionOfObjectValues(createRelatedTenantFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedTenantsRefreshRequest The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedTenantsRefreshRequest(relatedTenantsRefreshRequest = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(relatedTenantsRefreshRequest)), { "location": n => { relatedTenantsRefreshRequest.location = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param RelatedTenantsRefreshStatus The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelatedTenantsRefreshStatus(relatedTenantsRefreshStatus = {}) {
    return {
        "backingStoreEnabled": n => { relatedTenantsRefreshStatus.backingStoreEnabled = true; },
        "isFirstRefresh": n => { relatedTenantsRefreshStatus.isFirstRefresh = n.getBooleanValue(); },
        "mostRecentRefreshRequestStatus": n => { relatedTenantsRefreshStatus.mostRecentRefreshRequestStatus = n.getStringValue(); },
        "mostRecentRefreshTime": n => { relatedTenantsRefreshStatus.mostRecentRefreshTime = n.getStringValue(); },
        "@odata.type": n => { relatedTenantsRefreshStatus.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param RelationshipPolicy The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRelationshipPolicy(relationshipPolicy = {}) {
    return {
        "backingStoreEnabled": n => { relationshipPolicy.backingStoreEnabled = true; },
        "delegatedAdministrationRoleAssignments": n => { relationshipPolicy.delegatedAdministrationRoleAssignments = n.getCollectionOfObjectValues(createDelegatedAdministrationRoleAssignmentSnapshotFromDiscriminatorValue); },
        "governedTenantCanTerminate": n => { relationshipPolicy.governedTenantCanTerminate = n.getBooleanValue(); },
        "multiTenantApplicationsToProvision": n => { relationshipPolicy.multiTenantApplicationsToProvision = n.getCollectionOfObjectValues(createMultiTenantApplicationsToProvisionSnapshotFromDiscriminatorValue); },
        "@odata.type": n => { relationshipPolicy.odataType = n.getStringValue(); },
        "policyId": n => { relationshipPolicy.policyId = n.getStringValue(); },
        "version": n => { relationshipPolicy.version = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param RequiredResourceAccess The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRequiredResourceAccess(requiredResourceAccess = {}) {
    return {
        "backingStoreEnabled": n => { requiredResourceAccess.backingStoreEnabled = true; },
        "@odata.type": n => { requiredResourceAccess.odataType = n.getStringValue(); },
        "permissions": n => { requiredResourceAccess.permissions = n.getCollectionOfObjectValues(createResourcePermissionFromDiscriminatorValue); },
        "resourceAppId": n => { requiredResourceAccess.resourceAppId = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param ResourcePermission The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoResourcePermission(resourcePermission = {}) {
    return {
        "backingStoreEnabled": n => { resourcePermission.backingStoreEnabled = true; },
        "id": n => { resourcePermission.id = n.getStringValue(); },
        "name": n => { resourcePermission.name = n.getStringValue(); },
        "@odata.type": n => { resourcePermission.odataType = n.getStringValue(); },
        "type": n => { resourcePermission.type = n.getEnumValue(PermissionTypeObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param RoleTemplate The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRoleTemplate(roleTemplate = {}) {
    return {
        "backingStoreEnabled": n => { roleTemplate.backingStoreEnabled = true; },
        "id": n => { roleTemplate.id = n.getStringValue(); },
        "name": n => { roleTemplate.name = n.getStringValue(); },
        "@odata.type": n => { roleTemplate.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param TenantGovernance The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTenantGovernance(tenantGovernance = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(tenantGovernance)), { "governanceInvitations": n => { tenantGovernance.governanceInvitations = n.getCollectionOfObjectValues(createGovernanceInvitationFromDiscriminatorValue); }, "governancePolicyTemplates": n => { tenantGovernance.governancePolicyTemplates = n.getCollectionOfObjectValues(createGovernancePolicyTemplateFromDiscriminatorValue); }, "governanceRelationships": n => { tenantGovernance.governanceRelationships = n.getCollectionOfObjectValues(createGovernanceRelationshipFromDiscriminatorValue); }, "governanceRequests": n => { tenantGovernance.governanceRequests = n.getCollectionOfObjectValues(createGovernanceRequestFromDiscriminatorValue); }, "relatedTenants": n => { tenantGovernance.relatedTenants = n.getCollectionOfObjectValues(createRelatedTenantFromDiscriminatorValue); }, "settings": n => { tenantGovernance.settings = n.getObjectValue(createTenantGovernanceSettingFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TenantGovernanceSetting The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTenantGovernanceSetting(tenantGovernanceSetting = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(tenantGovernanceSetting)), { "canReceiveInvitations": n => { tenantGovernanceSetting.canReceiveInvitations = n.getBooleanValue(); }, "isRelatedTenantsEnabled": n => { tenantGovernanceSetting.isRelatedTenantsEnabled = n.getBooleanValue(); } });
}
/**
 * Serializes information the current object
 * @param ActionStep 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 serializeActionStep(writer, actionStep = {}, isSerializingDerivedType = false) {
    if (!actionStep || isSerializingDerivedType) {
        return;
    }
    writer.writeObjectValue("actionUrl", actionStep.actionUrl, serializeActionUrl);
    writer.writeStringValue("@odata.type", actionStep.odataType);
    writer.writeStringValue("stepNumber", actionStep.stepNumber);
    writer.writeStringValue("text", actionStep.text);
    writer.writeAdditionalData(actionStep.additionalData);
}
/**
 * Serializes information the current object
 * @param ActionUrl 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 serializeActionUrl(writer, actionUrl = {}, isSerializingDerivedType = false) {
    if (!actionUrl || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("displayName", actionUrl.displayName);
    writer.writeStringValue("@odata.type", actionUrl.odataType);
    writer.writeStringValue("url", actionUrl.url);
    writer.writeAdditionalData(actionUrl.additionalData);
}
/**
 * Serializes information the current object
 * @param B2bRegistrationMetrics 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 serializeB2bRegistrationMetrics(writer, b2bRegistrationMetrics = {}, isSerializingDerivedType = false) {
    if (!b2bRegistrationMetrics || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, b2bRegistrationMetrics, isSerializingDerivedType);
    writer.writeObjectValue("initial", b2bRegistrationMetrics.initial, serializeB2BRegistrationMetricsInitial);
    writer.writeCollectionOfObjectValues("investigationHints", b2bRegistrationMetrics.investigationHints, serializeActionStep);
    writer.writeObjectValue("recent", b2bRegistrationMetrics.recent, serializeB2BRegistrationMetricsRecent);
}
/**
 * Serializes information the current object
 * @param B2BRegistrationMetricsBase 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 serializeB2BRegistrationMetricsBase(writer, b2BRegistrationMetricsBase = {}, isSerializingDerivedType = false) {
    if (!b2BRegistrationMetricsBase || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, b2BRegistrationMetricsBase, isSerializingDerivedType);
    writer.writeNumberValue("inboundTotalUsers", b2BRegistrationMetricsBase.inboundTotalUsers);
    writer.writeNumberValue("outboundTotalUsers", b2BRegistrationMetricsBase.outboundTotalUsers);
    writer.writeDateValue("watermarkDateTime", b2BRegistrationMetricsBase.watermarkDateTime);
    switch (b2BRegistrationMetricsBase.odataType) {
        case "#microsoft.graph.tenantGovernanceServices.b2BRegistrationMetricsInitial":
            serializeB2BRegistrationMetricsInitial(writer, b2BRegistrationMetricsBase, true);
            break;
        case "#microsoft.graph.tenantGovernanceServices.b2BRegistrationMetricsRecent":
            serializeB2BRegistrationMetricsRecent(writer, b2BRegistrationMetricsBase, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param B2BRegistrationMetricsInitial 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 serializeB2BRegistrationMetricsInitial(writer, b2BRegistrationMetricsInitial = {}, isSerializingDerivedType = false) {
    if (!b2BRegistrationMetricsInitial || isSerializingDerivedType) {
        return;
    }
    serializeB2BRegistrationMetricsBase(writer, b2BRegistrationMetricsInitial, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", b2BRegistrationMetricsInitial.createdDateTime);
}
/**
 * Serializes information the current object
 * @param B2BRegistrationMetricsRecent 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 serializeB2BRegistrationMetricsRecent(writer, b2BRegistrationMetricsRecent = {}, isSerializingDerivedType = false) {
    if (!b2BRegistrationMetricsRecent || isSerializingDerivedType) {
        return;
    }
    serializeB2BRegistrationMetricsBase(writer, b2BRegistrationMetricsRecent, isSerializingDerivedType);
    writer.writeDateValue("updateDateTime", b2BRegistrationMetricsRecent.updateDateTime);
}
/**
 * Serializes information the current object
 * @param B2BSignInActivityMetrics 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 serializeB2BSignInActivityMetrics(writer, b2BSignInActivityMetrics = {}, isSerializingDerivedType = false) {
    if (!b2BSignInActivityMetrics || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, b2BSignInActivityMetrics, isSerializingDerivedType);
    writer.writeObjectValue("initial", b2BSignInActivityMetrics.initial, serializeB2BSignInActivityMetricsInitial);
    writer.writeCollectionOfObjectValues("investigationHints", b2BSignInActivityMetrics.investigationHints, serializeActionStep);
    writer.writeObjectValue("recent", b2BSignInActivityMetrics.recent, serializeB2BSignInActivityMetricsRecent);
}
/**
 * Serializes information the current object
 * @param B2BSignInActivityMetricsBase 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 serializeB2BSignInActivityMetricsBase(writer, b2BSignInActivityMetricsBase = {}, isSerializingDerivedType = false) {
    if (!b2BSignInActivityMetricsBase || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, b2BSignInActivityMetricsBase, isSerializingDerivedType);
    writer.writeNumberValue("inboundMonthlyTotalApplications", b2BSignInActivityMetricsBase.inboundMonthlyTotalApplications);
    writer.writeNumberValue("inboundMonthlyTotalUsers", b2BSignInActivityMetricsBase.inboundMonthlyTotalUsers);
    writer.writeNumberValue("outboundMonthlyTotalApplications", b2BSignInActivityMetricsBase.outboundMonthlyTotalApplications);
    writer.writeNumberValue("outboundMonthlyTotalUsers", b2BSignInActivityMetricsBase.outboundMonthlyTotalUsers);
    writer.writeDateValue("watermarkDateTime", b2BSignInActivityMetricsBase.watermarkDateTime);
    switch (b2BSignInActivityMetricsBase.odataType) {
        case "#microsoft.graph.tenantGovernanceServices.b2BSignInActivityMetricsInitial":
            serializeB2BSignInActivityMetricsInitial(writer, b2BSignInActivityMetricsBase, true);
            break;
        case "#microsoft.graph.tenantGovernanceServices.b2BSignInActivityMetricsRecent":
            serializeB2BSignInActivityMetricsRecent(writer, b2BSignInActivityMetricsBase, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param B2BSignInActivityMetricsInitial 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 serializeB2BSignInActivityMetricsInitial(writer, b2BSignInActivityMetricsInitial = {}, isSerializingDerivedType = false) {
    if (!b2BSignInActivityMetricsInitial || isSerializingDerivedType) {
        return;
    }
    serializeB2BSignInActivityMetricsBase(writer, b2BSignInActivityMetricsInitial, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", b2BSignInActivityMetricsInitial.createdDateTime);
}
/**
 * Serializes information the current object
 * @param B2BSignInActivityMetricsRecent 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 serializeB2BSignInActivityMetricsRecent(writer, b2BSignInActivityMetricsRecent = {}, isSerializingDerivedType = false) {
    if (!b2BSignInActivityMetricsRecent || isSerializingDerivedType) {
        return;
    }
    serializeB2BSignInActivityMetricsBase(writer, b2BSignInActivityMetricsRecent, isSerializingDerivedType);
    writer.writeDateValue("updateDateTime", b2BSignInActivityMetricsRecent.updateDateTime);
}
/**
 * Serializes information the current object
 * @param BillingMetrics 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 serializeBillingMetrics(writer, billingMetrics = {}, isSerializingDerivedType = false) {
    if (!billingMetrics || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, billingMetrics, isSerializingDerivedType);
    writer.writeObjectValue("initial", billingMetrics.initial, serializeBillingMetricsInitial);
    writer.writeCollectionOfObjectValues("investigationHints", billingMetrics.investigationHints, serializeActionStep);
    writer.writeObjectValue("recent", billingMetrics.recent, serializeBillingMetricsRecent);
}
/**
 * Serializes information the current object
 * @param BillingMetricsBase 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 serializeBillingMetricsBase(writer, billingMetricsBase = {}, isSerializingDerivedType = false) {
    if (!billingMetricsBase || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, billingMetricsBase, isSerializingDerivedType);
    writer.writeNumberValue("foreignAssociatedTenantBillingManagementActiveCount", billingMetricsBase.foreignAssociatedTenantBillingManagementActiveCount);
    writer.writeNumberValue("foreignAssociatedTenantCount", billingMetricsBase.foreignAssociatedTenantCount);
    writer.writeNumberValue("foreignAssociatedTenantProvisioningActiveCount", billingMetricsBase.foreignAssociatedTenantProvisioningActiveCount);
    writer.writeNumberValue("localAssociatedTenantBillingManagementActiveCount", billingMetricsBase.localAssociatedTenantBillingManagementActiveCount);
    writer.writeNumberValue("localAssociatedTenantCount", billingMetricsBase.localAssociatedTenantCount);
    writer.writeCollectionOfPrimitiveValues("localAssociatedTenantIds", billingMetricsBase.localAssociatedTenantIds);
    writer.writeNumberValue("localAssociatedTenantProvisioningActiveCount", billingMetricsBase.localAssociatedTenantProvisioningActiveCount);
    writer.writeDateValue("watermarkDateTime", billingMetricsBase.watermarkDateTime);
    switch (billingMetricsBase.odataType) {
        case "#microsoft.graph.tenantGovernanceServices.billingMetricsInitial":
            serializeBillingMetricsInitial(writer, billingMetricsBase, true);
            break;
        case "#microsoft.graph.tenantGovernanceServices.billingMetricsRecent":
            serializeBillingMetricsRecent(writer, billingMetricsBase, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param BillingMetricsInitial 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 serializeBillingMetricsInitial(writer, billingMetricsInitial = {}, isSerializingDerivedType = false) {
    if (!billingMetricsInitial || isSerializingDerivedType) {
        return;
    }
    serializeBillingMetricsBase(writer, billingMetricsInitial, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", billingMetricsInitial.createdDateTime);
}
/**
 * Serializes information the current object
 * @param BillingMetricsRecent 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 serializeBillingMetricsRecent(writer, billingMetricsRecent = {}, isSerializingDerivedType = false) {
    if (!billingMetricsRecent || isSerializingDerivedType) {
        return;
    }
    serializeBillingMetricsBase(writer, billingMetricsRecent, isSerializingDerivedType);
    writer.writeDateValue("updateDateTime", billingMetricsRecent.updateDateTime);
}
/**
 * Serializes information the current object
 * @param DelegatedAdministrationRoleAssignment 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 serializeDelegatedAdministrationRoleAssignment(writer, delegatedAdministrationRoleAssignment = {}, isSerializingDerivedType = false) {
    if (!delegatedAdministrationRoleAssignment || isSerializingDerivedType) {
        return;
    }
    writer.writeObjectValue("group", delegatedAdministrationRoleAssignment.group, serializeGroup);
    writer.writeStringValue("groupDisplayName", delegatedAdministrationRoleAssignment.groupDisplayName);
    writer.writeStringValue("@odata.type", delegatedAdministrationRoleAssignment.odataType);
    writer.writeCollectionOfObjectValues("roleTemplates", delegatedAdministrationRoleAssignment.roleTemplates, serializeRoleTemplate);
    writer.writeAdditionalData(delegatedAdministrationRoleAssignment.additionalData);
}
/**
 * Serializes information the current object
 * @param DelegatedAdministrationRoleAssignmentSnapshot 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 serializeDelegatedAdministrationRoleAssignmentSnapshot(writer, delegatedAdministrationRoleAssignmentSnapshot = {}, isSerializingDerivedType = false) {
    if (!delegatedAdministrationRoleAssignmentSnapshot || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("groupDisplayName", delegatedAdministrationRoleAssignmentSnapshot.groupDisplayName);
    writer.writeStringValue("groupId", delegatedAdministrationRoleAssignmentSnapshot.groupId);
    writer.writeStringValue("@odata.type", delegatedAdministrationRoleAssignmentSnapshot.odataType);
    writer.writeCollectionOfObjectValues("roleTemplates", delegatedAdministrationRoleAssignmentSnapshot.roleTemplates, serializeRoleTemplate);
    writer.writeAdditionalData(delegatedAdministrationRoleAssignmentSnapshot.additionalData);
}
/**
 * Serializes information the current object
 * @param GovernanceInvitation 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 serializeGovernanceInvitation(writer, governanceInvitation = {}, isSerializingDerivedType = false) {
    if (!governanceInvitation || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, governanceInvitation, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", governanceInvitation.createdDateTime);
    writer.writeDateValue("expirationDateTime", governanceInvitation.expirationDateTime);
    writer.writeStringValue("governedTenantId", governanceInvitation.governedTenantId);
    writer.writeStringValue("governedTenantName", governanceInvitation.governedTenantName);
    writer.writeStringValue("governingTenantId", governanceInvitation.governingTenantId);
    writer.writeStringValue("governingTenantName", governanceInvitation.governingTenantName);
}
/**
 * Serializes information the current object
 * @param GovernanceInvitationCollectionResponse 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 serializeGovernanceInvitationCollectionResponse(writer, governanceInvitationCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!governanceInvitationCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, governanceInvitationCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", governanceInvitationCollectionResponse.value, serializeGovernanceInvitation);
}
/**
 * Serializes information the current object
 * @param GovernancePolicyTemplate 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 serializeGovernancePolicyTemplate(writer, governancePolicyTemplate = {}, isSerializingDerivedType = false) {
    if (!governancePolicyTemplate || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, governancePolicyTemplate, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", governancePolicyTemplate.createdDateTime);
    writer.writeCollectionOfObjectValues("delegatedAdministrationRoleAssignments", governancePolicyTemplate.delegatedAdministrationRoleAssignments, serializeDelegatedAdministrationRoleAssignment);
    writer.writeStringValue("description", governancePolicyTemplate.description);
    writer.writeStringValue("displayName", governancePolicyTemplate.displayName);
    writer.writeBooleanValue("governedTenantCanTerminate", governancePolicyTemplate.governedTenantCanTerminate);
    writer.writeDateValue("lastModifiedDateTime", governancePolicyTemplate.lastModifiedDateTime);
    writer.writeCollectionOfObjectValues("multiTenantApplicationsToProvision", governancePolicyTemplate.multiTenantApplicationsToProvision, serializeMultiTenantApplicationsToProvision);
    writer.writeStringValue("version", governancePolicyTemplate.version);
}
/**
 * Serializes information the current object
 * @param GovernancePolicyTemplateCollectionResponse 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 serializeGovernancePolicyTemplateCollectionResponse(writer, governancePolicyTemplateCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!governancePolicyTemplateCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, governancePolicyTemplateCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", governancePolicyTemplateCollectionResponse.value, serializeGovernancePolicyTemplate);
}
/**
 * Serializes information the current object
 * @param GovernanceRelationship 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 serializeGovernanceRelationship(writer, governanceRelationship = {}, isSerializingDerivedType = false) {
    if (!governanceRelationship || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, governanceRelationship, isSerializingDerivedType);
    writer.writeEnumValue("createdType", governanceRelationship.createdType);
    writer.writeDateValue("creationDateTime", governanceRelationship.creationDateTime);
    writer.writeStringValue("governedTenantId", governanceRelationship.governedTenantId);
    writer.writeStringValue("governedTenantName", governanceRelationship.governedTenantName);
    writer.writeStringValue("governingTenantId", governanceRelationship.governingTenantId);
    writer.writeStringValue("governingTenantName", governanceRelationship.governingTenantName);
    writer.writeObjectValue("policySnapshot", governanceRelationship.policySnapshot, serializeRelationshipPolicy);
    writer.writeEnumValue("status", governanceRelationship.status);
}
/**
 * Serializes information the current object
 * @param GovernanceRelationshipCollectionResponse 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 serializeGovernanceRelationshipCollectionResponse(writer, governanceRelationshipCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!governanceRelationshipCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, governanceRelationshipCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", governanceRelationshipCollectionResponse.value, serializeGovernanceRelationship);
}
/**
 * Serializes information the current object
 * @param GovernanceRequest 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 serializeGovernanceRequest(writer, governanceRequest = {}, isSerializingDerivedType = false) {
    if (!governanceRequest || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, governanceRequest, isSerializingDerivedType);
    writer.writeDateValue("expirationDateTime", governanceRequest.expirationDateTime);
    writer.writeObjectValue("governancePolicyTemplate", governanceRequest.governancePolicyTemplate, serializeGovernancePolicyTemplate);
    writer.writeStringValue("governedTenantId", governanceRequest.governedTenantId);
    writer.writeStringValue("governedTenantName", governanceRequest.governedTenantName);
    writer.writeStringValue("governingTenantId", governanceRequest.governingTenantId);
    writer.writeStringValue("governingTenantName", governanceRequest.governingTenantName);
    writer.writeObjectValue("policySnapshot", governanceRequest.policySnapshot, serializeRelationshipPolicy);
    writer.writeDateValue("requestDateTime", governanceRequest.requestDateTime);
    writer.writeEnumValue("status", governanceRequest.status);
}
/**
 * Serializes information the current object
 * @param GovernanceRequestCollectionResponse 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 serializeGovernanceRequestCollectionResponse(writer, governanceRequestCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!governanceRequestCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, governanceRequestCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", governanceRequestCollectionResponse.value, serializeGovernanceRequest);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param LongRunningOperation The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeLongRunningOperation(writer, longRunningOperation = {}, isSerializingDerivedType = false) {
    if (!longRunningOperation || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, longRunningOperation, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", longRunningOperation.createdDateTime);
    writer.writeDateValue("lastActionDateTime", longRunningOperation.lastActionDateTime);
    writer.writeStringValue("resourceLocation", longRunningOperation.resourceLocation);
    writer.writeEnumValue("status", longRunningOperation.status);
    writer.writeStringValue("statusDetail", longRunningOperation.statusDetail);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param MultiTenantApplicationMetrics The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMultiTenantApplicationMetrics(writer, multiTenantApplicationMetrics = {}, isSerializingDerivedType = false) {
    if (!multiTenantApplicationMetrics || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, multiTenantApplicationMetrics, isSerializingDerivedType);
    writer.writeObjectValue("initial", multiTenantApplicationMetrics.initial, serializeMultiTenantApplicationMetricsInitial);
    writer.writeCollectionOfObjectValues("investigationHints", multiTenantApplicationMetrics.investigationHints, serializeActionStep);
    writer.writeObjectValue("recent", multiTenantApplicationMetrics.recent, serializeMultiTenantApplicationMetricsRecent);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param MultiTenantApplicationMetricsBase The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMultiTenantApplicationMetricsBase(writer, multiTenantApplicationMetricsBase = {}, isSerializingDerivedType = false) {
    if (!multiTenantApplicationMetricsBase || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, multiTenantApplicationMetricsBase, isSerializingDerivedType);
    writer.writeNumberValue("inboundMonthlyTotalApplications", multiTenantApplicationMetricsBase.inboundMonthlyTotalApplications);
    writer.writeNumberValue("outboundMonthlyTotalApplications", multiTenantApplicationMetricsBase.outboundMonthlyTotalApplications);
    writer.writeDateValue("watermarkDateTime", multiTenantApplicationMetricsBase.watermarkDateTime);
    switch (multiTenantApplicationMetricsBase.odataType) {
        case "#microsoft.graph.tenantGovernanceServices.multiTenantApplicationMetricsInitial":
            serializeMultiTenantApplicationMetricsInitial(writer, multiTenantApplicationMetricsBase, true);
            break;
        case "#microsoft.graph.tenantGovernanceServices.multiTenantApplicationMetricsRecent":
            serializeMultiTenantApplicationMetricsRecent(writer, multiTenantApplicationMetricsBase, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param MultiTenantApplicationMetricsInitial The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMultiTenantApplicationMetricsInitial(writer, multiTenantApplicationMetricsInitial = {}, isSerializingDerivedType = false) {
    if (!multiTenantApplicationMetricsInitial || isSerializingDerivedType) {
        return;
    }
    serializeMultiTenantApplicationMetricsBase(writer, multiTenantApplicationMetricsInitial, isSerializingDerivedType);
    writer.writeDateValue("createdDateTime", multiTenantApplicationMetricsInitial.createdDateTime);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param MultiTenantApplicationMetricsRecent The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMultiTenantApplicationMetricsRecent(writer, multiTenantApplicationMetricsRecent = {}, isSerializingDerivedType = false) {
    if (!multiTenantApplicationMetricsRecent || isSerializingDerivedType) {
        return;
    }
    serializeMultiTenantApplicationMetricsBase(writer, multiTenantApplicationMetricsRecent, isSerializingDerivedType);
    writer.writeDateValue("updateDateTime", multiTenantApplicationMetricsRecent.updateDateTime);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param MultiTenantApplicationsToProvision The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMultiTenantApplicationsToProvision(writer, multiTenantApplicationsToProvision = {}, isSerializingDerivedType = false) {
    if (!multiTenantApplicationsToProvision || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("appId", multiTenantApplicationsToProvision.appId);
    writer.writeStringValue("displayName", multiTenantApplicationsToProvision.displayName);
    writer.writeStringValue("objectId", multiTenantApplicationsToProvision.objectId);
    writer.writeStringValue("@odata.type", multiTenantApplicationsToProvision.odataType);
    writer.writeCollectionOfObjectValues("requiredResourceAccesses", multiTenantApplicationsToProvision.requiredResourceAccesses, serializeRequiredResourceAccess);
    writer.writeAdditionalData(multiTenantApplicationsToProvision.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param MultiTenantApplicationsToProvisionSnapshot The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMultiTenantApplicationsToProvisionSnapshot(writer, multiTenantApplicationsToProvisionSnapshot = {}, isSerializingDerivedType = false) {
    if (!multiTenantApplicationsToProvisionSnapshot || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("appId", multiTenantApplicationsToProvisionSnapshot.appId);
    writer.writeStringValue("displayName", multiTenantApplicationsToProvisionSnapshot.displayName);
    writer.writeStringValue("objectId", multiTenantApplicationsToProvisionSnapshot.objectId);
    writer.writeStringValue("@odata.type", multiTenantApplicationsToProvisionSnapshot.odataType);
    writer.writeCollectionOfObjectValues("requiredResourceAccesses", multiTenantApplicationsToProvisionSnapshot.requiredResourceAccesses, serializeRequiredResourceAccess);
    writer.writeAdditionalData(multiTenantApplicationsToProvisionSnapshot.additionalData);
}
/**
 * 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;
    }
    serializeEntity(writer, relatedTenant, isSerializingDerivedType);
    writer.writeObjectValue("appB2BSignInActivityMetrics", relatedTenant.appB2BSignInActivityMetrics, serializeB2BSignInActivityMetrics);
    writer.writeObjectValue("b2BRegistrationMetrics", relatedTenant.b2BRegistrationMetrics, serializeB2bRegistrationMetrics);
    writer.writeObjectValue("b2BSignInActivityMetrics", relatedTenant.b2BSignInActivityMetrics, serializeB2BSignInActivityMetrics);
    writer.writeObjectValue("billingMetrics", relatedTenant.billingMetrics, serializeBillingMetrics);
    writer.writeDateValue("createdDateTime", relatedTenant.createdDateTime);
    writer.writeObjectValue("multiTenantApplicationMetrics", relatedTenant.multiTenantApplicationMetrics, serializeMultiTenantApplicationMetrics);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedTenantCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedTenantCollectionResponse(writer, relatedTenantCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!relatedTenantCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, relatedTenantCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", relatedTenantCollectionResponse.value, serializeRelatedTenant);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedTenantsRefreshRequest The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedTenantsRefreshRequest(writer, relatedTenantsRefreshRequest = {}, isSerializingDerivedType = false) {
    if (!relatedTenantsRefreshRequest || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, relatedTenantsRefreshRequest, isSerializingDerivedType);
    writer.writeStringValue("location", relatedTenantsRefreshRequest.location);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelatedTenantsRefreshStatus The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelatedTenantsRefreshStatus(writer, relatedTenantsRefreshStatus = {}, isSerializingDerivedType = false) {
    if (!relatedTenantsRefreshStatus || isSerializingDerivedType) {
        return;
    }
    writer.writeBooleanValue("isFirstRefresh", relatedTenantsRefreshStatus.isFirstRefresh);
    writer.writeStringValue("mostRecentRefreshRequestStatus", relatedTenantsRefreshStatus.mostRecentRefreshRequestStatus);
    writer.writeStringValue("mostRecentRefreshTime", relatedTenantsRefreshStatus.mostRecentRefreshTime);
    writer.writeStringValue("@odata.type", relatedTenantsRefreshStatus.odataType);
    writer.writeAdditionalData(relatedTenantsRefreshStatus.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RelationshipPolicy The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRelationshipPolicy(writer, relationshipPolicy = {}, isSerializingDerivedType = false) {
    if (!relationshipPolicy || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfObjectValues("delegatedAdministrationRoleAssignments", relationshipPolicy.delegatedAdministrationRoleAssignments, serializeDelegatedAdministrationRoleAssignmentSnapshot);
    writer.writeBooleanValue("governedTenantCanTerminate", relationshipPolicy.governedTenantCanTerminate);
    writer.writeCollectionOfObjectValues("multiTenantApplicationsToProvision", relationshipPolicy.multiTenantApplicationsToProvision, serializeMultiTenantApplicationsToProvisionSnapshot);
    writer.writeStringValue("@odata.type", relationshipPolicy.odataType);
    writer.writeStringValue("policyId", relationshipPolicy.policyId);
    writer.writeAdditionalData(relationshipPolicy.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RequiredResourceAccess The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRequiredResourceAccess(writer, requiredResourceAccess = {}, isSerializingDerivedType = false) {
    if (!requiredResourceAccess || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", requiredResourceAccess.odataType);
    writer.writeCollectionOfObjectValues("permissions", requiredResourceAccess.permissions, serializeResourcePermission);
    writer.writeStringValue("resourceAppId", requiredResourceAccess.resourceAppId);
    writer.writeAdditionalData(requiredResourceAccess.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ResourcePermission The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeResourcePermission(writer, resourcePermission = {}, isSerializingDerivedType = false) {
    if (!resourcePermission || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("id", resourcePermission.id);
    writer.writeStringValue("name", resourcePermission.name);
    writer.writeStringValue("@odata.type", resourcePermission.odataType);
    writer.writeEnumValue("type", resourcePermission.type);
    writer.writeAdditionalData(resourcePermission.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RoleTemplate The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRoleTemplate(writer, roleTemplate = {}, isSerializingDerivedType = false) {
    if (!roleTemplate || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("id", roleTemplate.id);
    writer.writeStringValue("name", roleTemplate.name);
    writer.writeStringValue("@odata.type", roleTemplate.odataType);
    writer.writeAdditionalData(roleTemplate.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TenantGovernance The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTenantGovernance(writer, tenantGovernance = {}, isSerializingDerivedType = false) {
    if (!tenantGovernance || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, tenantGovernance, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("governanceInvitations", tenantGovernance.governanceInvitations, serializeGovernanceInvitation);
    writer.writeCollectionOfObjectValues("governancePolicyTemplates", tenantGovernance.governancePolicyTemplates, serializeGovernancePolicyTemplate);
    writer.writeCollectionOfObjectValues("governanceRelationships", tenantGovernance.governanceRelationships, serializeGovernanceRelationship);
    writer.writeCollectionOfObjectValues("governanceRequests", tenantGovernance.governanceRequests, serializeGovernanceRequest);
    writer.writeCollectionOfObjectValues("relatedTenants", tenantGovernance.relatedTenants, serializeRelatedTenant);
    writer.writeObjectValue("settings", tenantGovernance.settings, serializeTenantGovernanceSetting);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TenantGovernanceSetting The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTenantGovernanceSetting(writer, tenantGovernanceSetting = {}, isSerializingDerivedType = false) {
    if (!tenantGovernanceSetting || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, tenantGovernanceSetting, isSerializingDerivedType);
    writer.writeBooleanValue("canReceiveInvitations", tenantGovernanceSetting.canReceiveInvitations);
    writer.writeBooleanValue("isRelatedTenantsEnabled", tenantGovernanceSetting.isRelatedTenantsEnabled);
}
export const LongRunningOperationStatusObject = {
    NotStarted: "notStarted",
    Running: "running",
    Succeeded: "succeeded",
    Failed: "failed",
    UnknownFutureValue: "unknownFutureValue",
};
export const PermissionTypeObject = {
    /** Represents a type of permission that is for an app only scenario. No user is involved. */
    Role: "role",
    /** Represents a type of permission that is for an app and user scenario. */
    Scope: "scope",
    /** This will help in making this enum evolable and adding more values in the future- */
    UnknownFutureValue: "unknownFutureValue",
};
export const RelationshipCreationTypeObject = {
    /** Represents a relationship between two tenants that was created by an explicit approval from the governed tenant admin. */
    ApprovedByAdmin: "approvedByAdmin",
    /** Represents a relationship between the add-on tenant and the tenant from which it was created. */
    AddOnTenant: "addOnTenant",
    /** This will help in making this enum evolvable and adding more values in the future- */
    UnknownFutureValue: "unknownFutureValue",
};
export const RelationshipStatusObject = {
    /** Represents a relationship that is currently active. */
    Active: "active",
    /** Represents a relationship that has been terminated. */
    Terminated: "terminated",
    /** Represents a relationship that has been requested to be terminated by governing tenant. */
    TerminationRequestedByGoverningTenant: "terminationRequestedByGoverningTenant",
    /** This will help in making this enum evolable and adding more values in the future- */
    UnknownFutureValue: "unknownFutureValue",
};
export const RequestStatusObject = {
    /** Represents a governance request that is pending */
    Pending: "pending",
    /** Represents a governance request that was accepted */
    Accepted: "accepted",
    /** Represents a governance request that was rejected */
    Rejected: "rejected",
    /** This will help in making this enum evolable and adding more values in the future- */
    UnknownFutureValue: "unknownFutureValue",
};
/* tslint:enable */
/* eslint-enable */
//# sourceMappingURL=index.js.map