UNPKG

@microsoft/msgraph-beta-sdk

Version:
2,813 lines 157 kB
/* tslint:disable */
/* eslint-disable */
// Generated by Microsoft Kiota
// @ts-ignore
import { createApplicationFromDiscriminatorValue, createCustomExtensionCallbackConfigurationFromDiscriminatorValue, createDeletedItemContainerFromDiscriminatorValue, createDirectoryObjectFromDiscriminatorValue, createEmailSettingsFromDiscriminatorValue, createGroupFromDiscriminatorValue, createKeyValuePairFromDiscriminatorValue, createSubjectSetFromDiscriminatorValue, createUserFromDiscriminatorValue, deserializeIntoBaseCollectionPaginationCountResponse, deserializeIntoCustomCalloutExtension, deserializeIntoCustomExtensionCallbackConfiguration, deserializeIntoCustomExtensionData, deserializeIntoEntity, deserializeIntoSubjectSet, serializeApplication, serializeBaseCollectionPaginationCountResponse, serializeCustomCalloutExtension, serializeCustomExtensionCallbackConfiguration, serializeCustomExtensionData, serializeDeletedItemContainer, serializeDirectoryObject, serializeEmailSettings, serializeEntity, serializeGroup, serializeKeyValuePair, serializeSubjectSet, serializeUser } 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 {ActivateGroupScope}
 */
// @ts-ignore
export function createActivateGroupScopeFromDiscriminatorValue(parseNode) {
    return deserializeIntoActivateGroupScope;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ActivateProcessingResultScope}
 */
// @ts-ignore
export function createActivateProcessingResultScopeFromDiscriminatorValue(parseNode) {
    return deserializeIntoActivateProcessingResultScope;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ActivateRunScope}
 */
// @ts-ignore
export function createActivateRunScopeFromDiscriminatorValue(parseNode) {
    return deserializeIntoActivateRunScope;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ActivateUserScope}
 */
// @ts-ignore
export function createActivateUserScopeFromDiscriminatorValue(parseNode) {
    return deserializeIntoActivateUserScope;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ActivationScope}
 */
// @ts-ignore
export function createActivationScopeFromDiscriminatorValue(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.identityGovernance.activateGroupScope":
                    return deserializeIntoActivateGroupScope;
                case "#microsoft.graph.identityGovernance.activateProcessingResultScope":
                    return deserializeIntoActivateProcessingResultScope;
                case "#microsoft.graph.identityGovernance.activateRunScope":
                    return deserializeIntoActivateRunScope;
                case "#microsoft.graph.identityGovernance.activateUserScope":
                    return deserializeIntoActivateUserScope;
            }
        }
    }
    return deserializeIntoActivationScope;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AttributeChangeTrigger}
 */
// @ts-ignore
export function createAttributeChangeTriggerFromDiscriminatorValue(parseNode) {
    return deserializeIntoAttributeChangeTrigger;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AttributeSetEntry}
 */
// @ts-ignore
export function createAttributeSetEntryFromDiscriminatorValue(parseNode) {
    return deserializeIntoAttributeSetEntry;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AwaitedWorkflowProcessingResult}
 */
// @ts-ignore
export function createAwaitedWorkflowProcessingResultFromDiscriminatorValue(parseNode) {
    return deserializeIntoAwaitedWorkflowProcessingResult;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CancelRunsScope}
 */
// @ts-ignore
export function createCancelRunsScopeFromDiscriminatorValue(parseNode) {
    return deserializeIntoCancelRunsScope;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CancelScope}
 */
// @ts-ignore
export function createCancelScopeFromDiscriminatorValue(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.identityGovernance.cancelRunsScope":
                    return deserializeIntoCancelRunsScope;
            }
        }
    }
    return deserializeIntoCancelScope;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CountBasedQuarantineCondition}
 */
// @ts-ignore
export function createCountBasedQuarantineConditionFromDiscriminatorValue(parseNode) {
    return deserializeIntoCountBasedQuarantineCondition;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CustomTaskExtensionCallbackConfiguration}
 */
// @ts-ignore
export function createCustomTaskExtensionCallbackConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustomTaskExtensionCallbackConfiguration;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CustomTaskExtensionCallbackData}
 */
// @ts-ignore
export function createCustomTaskExtensionCallbackDataFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustomTaskExtensionCallbackData;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CustomTaskExtensionCalloutData}
 */
// @ts-ignore
export function createCustomTaskExtensionCalloutDataFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustomTaskExtensionCalloutData;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CustomTaskExtensionCollectionResponse}
 */
// @ts-ignore
export function createCustomTaskExtensionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustomTaskExtensionCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CustomTaskExtension}
 */
// @ts-ignore
export function createCustomTaskExtensionFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustomTaskExtension;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CustomTaskExtensionResponseData}
 */
// @ts-ignore
export function createCustomTaskExtensionResponseDataFromDiscriminatorValue(parseNode) {
    return deserializeIntoCustomTaskExtensionResponseData;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GroupBasedSubjectSet}
 */
// @ts-ignore
export function createGroupBasedSubjectSetFromDiscriminatorValue(parseNode) {
    return deserializeIntoGroupBasedSubjectSet;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {GuestSponsorTrigger}
 */
// @ts-ignore
export function createGuestSponsorTriggerFromDiscriminatorValue(parseNode) {
    return deserializeIntoGuestSponsorTrigger;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Insights}
 */
// @ts-ignore
export function createInsightsFromDiscriminatorValue(parseNode) {
    return deserializeIntoInsights;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {LifecycleManagementSettings}
 */
// @ts-ignore
export function createLifecycleManagementSettingsFromDiscriminatorValue(parseNode) {
    return deserializeIntoLifecycleManagementSettings;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {LifecycleWorkflowsContainer}
 */
// @ts-ignore
export function createLifecycleWorkflowsContainerFromDiscriminatorValue(parseNode) {
    return deserializeIntoLifecycleWorkflowsContainer;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {MembershipChangeTrigger}
 */
// @ts-ignore
export function createMembershipChangeTriggerFromDiscriminatorValue(parseNode) {
    return deserializeIntoMembershipChangeTrigger;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {OnDemandExecutionOnly}
 */
// @ts-ignore
export function createOnDemandExecutionOnlyFromDiscriminatorValue(parseNode) {
    return deserializeIntoOnDemandExecutionOnly;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Parameter}
 */
// @ts-ignore
export function createParameterFromDiscriminatorValue(parseNode) {
    return deserializeIntoParameter;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {PercentageBasedQuarantineCondition}
 */
// @ts-ignore
export function createPercentageBasedQuarantineConditionFromDiscriminatorValue(parseNode) {
    return deserializeIntoPercentageBasedQuarantineCondition;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {PreviewFailedTask}
 */
// @ts-ignore
export function createPreviewFailedTaskFromDiscriminatorValue(parseNode) {
    return deserializeIntoPreviewFailedTask;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ProvisioningAttributeMapping}
 */
// @ts-ignore
export function createProvisioningAttributeMappingFromDiscriminatorValue(parseNode) {
    return deserializeIntoProvisioningAttributeMapping;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ProvisioningObjectWorkflowSubject}
 */
// @ts-ignore
export function createProvisioningObjectWorkflowSubjectFromDiscriminatorValue(parseNode) {
    return deserializeIntoProvisioningObjectWorkflowSubject;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {QuarantineCondition}
 */
// @ts-ignore
export function createQuarantineConditionFromDiscriminatorValue(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.identityGovernance.countBasedQuarantineCondition":
                    return deserializeIntoCountBasedQuarantineCondition;
                case "#microsoft.graph.identityGovernance.percentageBasedQuarantineCondition":
                    return deserializeIntoPercentageBasedQuarantineCondition;
            }
        }
    }
    return deserializeIntoQuarantineCondition;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {QuarantineConfiguration}
 */
// @ts-ignore
export function createQuarantineConfigurationFromDiscriminatorValue(parseNode) {
    return deserializeIntoQuarantineConfiguration;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {QuarantineDetails}
 */
// @ts-ignore
export function createQuarantineDetailsFromDiscriminatorValue(parseNode) {
    return deserializeIntoQuarantineDetails;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RuleBasedSubjectSet}
 */
// @ts-ignore
export function createRuleBasedSubjectSetFromDiscriminatorValue(parseNode) {
    return deserializeIntoRuleBasedSubjectSet;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RunCollectionResponse}
 */
// @ts-ignore
export function createRunCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoRunCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Run}
 */
// @ts-ignore
export function createRunFromDiscriminatorValue(parseNode) {
    return deserializeIntoRun;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RunSummary}
 */
// @ts-ignore
export function createRunSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoRunSummary;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SubjectProcessingResultCollectionResponse}
 */
// @ts-ignore
export function createSubjectProcessingResultCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoSubjectProcessingResultCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SubjectProcessingResult}
 */
// @ts-ignore
export function createSubjectProcessingResultFromDiscriminatorValue(parseNode) {
    return deserializeIntoSubjectProcessingResult;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TaskCollectionResponse}
 */
// @ts-ignore
export function createTaskCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoTaskCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TaskDefinitionCollectionResponse}
 */
// @ts-ignore
export function createTaskDefinitionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoTaskDefinitionCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TaskDefinition}
 */
// @ts-ignore
export function createTaskDefinitionFromDiscriminatorValue(parseNode) {
    return deserializeIntoTaskDefinition;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Task}
 */
// @ts-ignore
export function createTaskFromDiscriminatorValue(parseNode) {
    return deserializeIntoTask;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TaskProcessingResultCollectionResponse}
 */
// @ts-ignore
export function createTaskProcessingResultCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoTaskProcessingResultCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TaskProcessingResult}
 */
// @ts-ignore
export function createTaskProcessingResultFromDiscriminatorValue(parseNode) {
    return deserializeIntoTaskProcessingResult;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TaskReportCollectionResponse}
 */
// @ts-ignore
export function createTaskReportCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoTaskReportCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TaskReport}
 */
// @ts-ignore
export function createTaskReportFromDiscriminatorValue(parseNode) {
    return deserializeIntoTaskReport;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TaskReportSummary}
 */
// @ts-ignore
export function createTaskReportSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoTaskReportSummary;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TimeBasedAttributeTrigger}
 */
// @ts-ignore
export function createTimeBasedAttributeTriggerFromDiscriminatorValue(parseNode) {
    return deserializeIntoTimeBasedAttributeTrigger;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TopTasksInsightsSummary}
 */
// @ts-ignore
export function createTopTasksInsightsSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoTopTasksInsightsSummary;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TopWorkflowsInsightsSummary}
 */
// @ts-ignore
export function createTopWorkflowsInsightsSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoTopWorkflowsInsightsSummary;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TriggerAndScopeBasedConditions}
 */
// @ts-ignore
export function createTriggerAndScopeBasedConditionsFromDiscriminatorValue(parseNode) {
    return deserializeIntoTriggerAndScopeBasedConditions;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TriggerAttribute}
 */
// @ts-ignore
export function createTriggerAttributeFromDiscriminatorValue(parseNode) {
    return deserializeIntoTriggerAttribute;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserInactivityTrigger}
 */
// @ts-ignore
export function createUserInactivityTriggerFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserInactivityTrigger;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserProcessingResultCollectionResponse}
 */
// @ts-ignore
export function createUserProcessingResultCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserProcessingResultCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserProcessingResult}
 */
// @ts-ignore
export function createUserProcessingResultFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserProcessingResult;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserSummary}
 */
// @ts-ignore
export function createUserSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoUserSummary;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowBase}
 */
// @ts-ignore
export function createWorkflowBaseFromDiscriminatorValue(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.identityGovernance.workflow":
                    return deserializeIntoWorkflow;
                case "#microsoft.graph.identityGovernance.workflowVersion":
                    return deserializeIntoWorkflowVersion;
            }
        }
    }
    return deserializeIntoWorkflowBase;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowCollectionResponse}
 */
// @ts-ignore
export function createWorkflowCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflowCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowExecutionConditions}
 */
// @ts-ignore
export function createWorkflowExecutionConditionsFromDiscriminatorValue(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.identityGovernance.onDemandExecutionOnly":
                    return deserializeIntoOnDemandExecutionOnly;
                case "#microsoft.graph.identityGovernance.provisioningAttributeMapping":
                    return deserializeIntoProvisioningAttributeMapping;
                case "#microsoft.graph.identityGovernance.triggerAndScopeBasedConditions":
                    return deserializeIntoTriggerAndScopeBasedConditions;
            }
        }
    }
    return deserializeIntoWorkflowExecutionConditions;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowExecutionTrigger}
 */
// @ts-ignore
export function createWorkflowExecutionTriggerFromDiscriminatorValue(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.identityGovernance.attributeChangeTrigger":
                    return deserializeIntoAttributeChangeTrigger;
                case "#microsoft.graph.identityGovernance.guestSponsorTrigger":
                    return deserializeIntoGuestSponsorTrigger;
                case "#microsoft.graph.identityGovernance.membershipChangeTrigger":
                    return deserializeIntoMembershipChangeTrigger;
                case "#microsoft.graph.identityGovernance.timeBasedAttributeTrigger":
                    return deserializeIntoTimeBasedAttributeTrigger;
                case "#microsoft.graph.identityGovernance.userInactivityTrigger":
                    return deserializeIntoUserInactivityTrigger;
            }
        }
    }
    return deserializeIntoWorkflowExecutionTrigger;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Workflow}
 */
// @ts-ignore
export function createWorkflowFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflow;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowSetting}
 */
// @ts-ignore
export function createWorkflowSettingFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflowSetting;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowsInsightsByCategory}
 */
// @ts-ignore
export function createWorkflowsInsightsByCategoryFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflowsInsightsByCategory;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowsInsightsSummary}
 */
// @ts-ignore
export function createWorkflowsInsightsSummaryFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflowsInsightsSummary;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowSubject}
 */
// @ts-ignore
export function createWorkflowSubjectFromDiscriminatorValue(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.identityGovernance.provisioningObjectWorkflowSubject":
                    return deserializeIntoProvisioningObjectWorkflowSubject;
            }
        }
    }
    return deserializeIntoWorkflowSubject;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowTemplateCollectionResponse}
 */
// @ts-ignore
export function createWorkflowTemplateCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflowTemplateCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowTemplate}
 */
// @ts-ignore
export function createWorkflowTemplateFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflowTemplate;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowVersionCollectionResponse}
 */
// @ts-ignore
export function createWorkflowVersionCollectionResponseFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflowVersionCollectionResponse;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {WorkflowVersion}
 */
// @ts-ignore
export function createWorkflowVersionFromDiscriminatorValue(parseNode) {
    return deserializeIntoWorkflowVersion;
}
/**
 * The deserialization information for the current model
 * @param ActivateGroupScope The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoActivateGroupScope(activateGroupScope = {}) {
    return Object.assign(Object.assign({}, deserializeIntoActivationScope(activateGroupScope)), { "group": n => { activateGroupScope.group = n.getObjectValue(createGroupFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ActivateProcessingResultScope The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoActivateProcessingResultScope(activateProcessingResultScope = {}) {
    return Object.assign(Object.assign({}, deserializeIntoActivationScope(activateProcessingResultScope)), { "processingResults": n => { activateProcessingResultScope.processingResults = n.getCollectionOfObjectValues(createUserProcessingResultFromDiscriminatorValue); }, "taskScope": n => { activateProcessingResultScope.taskScope = n.getEnumValue(ActivationTaskScopeTypeObject); } });
}
/**
 * The deserialization information for the current model
 * @param ActivateRunScope The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoActivateRunScope(activateRunScope = {}) {
    return Object.assign(Object.assign({}, deserializeIntoActivationScope(activateRunScope)), { "run": n => { activateRunScope.run = n.getObjectValue(createRunFromDiscriminatorValue); }, "taskScope": n => { activateRunScope.taskScope = n.getEnumValue(ActivationTaskScopeTypeObject); }, "userScope": n => { activateRunScope.userScope = n.getEnumValue(ActivationUserScopeTypeObject); } });
}
/**
 * The deserialization information for the current model
 * @param ActivateUserScope The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoActivateUserScope(activateUserScope = {}) {
    return Object.assign(Object.assign({}, deserializeIntoActivationScope(activateUserScope)), { "users": n => { activateUserScope.users = n.getCollectionOfObjectValues(createUserFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param ActivationScope The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoActivationScope(activationScope = {}) {
    return {
        "backingStoreEnabled": n => { activationScope.backingStoreEnabled = true; },
        "@odata.type": n => { activationScope.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param AttributeChangeTrigger The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAttributeChangeTrigger(attributeChangeTrigger = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowExecutionTrigger(attributeChangeTrigger)), { "triggerAttributes": n => { attributeChangeTrigger.triggerAttributes = n.getCollectionOfObjectValues(createTriggerAttributeFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param AttributeSetEntry The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAttributeSetEntry(attributeSetEntry = {}) {
    return {
        "backingStoreEnabled": n => { attributeSetEntry.backingStoreEnabled = true; },
        "name": n => { attributeSetEntry.name = n.getStringValue(); },
        "@odata.type": n => { attributeSetEntry.odataType = n.getStringValue(); },
        "value": n => { attributeSetEntry.value = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param AwaitedWorkflowProcessingResult The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoAwaitedWorkflowProcessingResult(awaitedWorkflowProcessingResult = {}) {
    return {
        "backingStoreEnabled": n => { awaitedWorkflowProcessingResult.backingStoreEnabled = true; },
        "@odata.type": n => { awaitedWorkflowProcessingResult.odataType = n.getStringValue(); },
        "processingStatus": n => { awaitedWorkflowProcessingResult.processingStatus = n.getEnumValue(LifecycleWorkflowProcessingStatusObject); },
        "statusReasons": n => { awaitedWorkflowProcessingResult.statusReasons = n.getCollectionOfPrimitiveValues("string"); },
        "subject": n => { awaitedWorkflowProcessingResult.subject = n.getObjectValue(createWorkflowSubjectFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param CancelRunsScope The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCancelRunsScope(cancelRunsScope = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCancelScope(cancelRunsScope)), { "runs": n => { cancelRunsScope.runs = n.getCollectionOfObjectValues(createRunFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CancelScope The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCancelScope(cancelScope = {}) {
    return {
        "backingStoreEnabled": n => { cancelScope.backingStoreEnabled = true; },
        "@odata.type": n => { cancelScope.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param CountBasedQuarantineCondition The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCountBasedQuarantineCondition(countBasedQuarantineCondition = {}) {
    return Object.assign(Object.assign({}, deserializeIntoQuarantineCondition(countBasedQuarantineCondition)), { "threshold": n => { countBasedQuarantineCondition.threshold = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param CustomTaskExtension The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCustomTaskExtension(customTaskExtension = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCustomCalloutExtension(customTaskExtension)), { "callbackConfiguration": n => { customTaskExtension.callbackConfiguration = n.getObjectValue(createCustomExtensionCallbackConfigurationFromDiscriminatorValue); }, "createdBy": n => { customTaskExtension.createdBy = n.getObjectValue(createUserFromDiscriminatorValue); }, "createdDateTime": n => { customTaskExtension.createdDateTime = n.getDateValue(); }, "lastModifiedBy": n => { customTaskExtension.lastModifiedBy = n.getObjectValue(createUserFromDiscriminatorValue); }, "lastModifiedDateTime": n => { customTaskExtension.lastModifiedDateTime = n.getDateValue(); }, "replyMode": n => { customTaskExtension.replyMode = n.getEnumValue(CustomTaskExtensionReplyModeObject); } });
}
/**
 * The deserialization information for the current model
 * @param CustomTaskExtensionCallbackConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCustomTaskExtensionCallbackConfiguration(customTaskExtensionCallbackConfiguration = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCustomExtensionCallbackConfiguration(customTaskExtensionCallbackConfiguration)), { "authorizedApps": n => { customTaskExtensionCallbackConfiguration.authorizedApps = n.getCollectionOfObjectValues(createApplicationFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CustomTaskExtensionCallbackData The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCustomTaskExtensionCallbackData(customTaskExtensionCallbackData = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCustomExtensionData(customTaskExtensionCallbackData)), { "operationStatus": n => { customTaskExtensionCallbackData.operationStatus = n.getEnumValue(CustomTaskExtensionOperationStatusObject); } });
}
/**
 * The deserialization information for the current model
 * @param CustomTaskExtensionCalloutData The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCustomTaskExtensionCalloutData(customTaskExtensionCalloutData = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCustomExtensionData(customTaskExtensionCalloutData)), { "subject": n => { customTaskExtensionCalloutData.subject = n.getObjectValue(createUserFromDiscriminatorValue); }, "targetSubject": n => { customTaskExtensionCalloutData.targetSubject = n.getObjectValue(createWorkflowSubjectFromDiscriminatorValue); }, "task": n => { customTaskExtensionCalloutData.task = n.getObjectValue(createTaskFromDiscriminatorValue); }, "taskProcessingresult": n => { customTaskExtensionCalloutData.taskProcessingresult = n.getObjectValue(createTaskProcessingResultFromDiscriminatorValue); }, "workflow": n => { customTaskExtensionCalloutData.workflow = n.getObjectValue(createWorkflowFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CustomTaskExtensionCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCustomTaskExtensionCollectionResponse(customTaskExtensionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(customTaskExtensionCollectionResponse)), { "value": n => { customTaskExtensionCollectionResponse.value = n.getCollectionOfObjectValues(createCustomTaskExtensionFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param CustomTaskExtensionResponseData The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoCustomTaskExtensionResponseData(customTaskExtensionResponseData = {}) {
    return Object.assign(Object.assign({}, deserializeIntoCustomExtensionData(customTaskExtensionResponseData)), { "operationStatus": n => { customTaskExtensionResponseData.operationStatus = n.getEnumValue(CustomTaskExtensionOperationStatusObject); }, "statusReasons": n => { customTaskExtensionResponseData.statusReasons = n.getCollectionOfPrimitiveValues("string"); }, "targetSubject": n => { customTaskExtensionResponseData.targetSubject = n.getObjectValue(createWorkflowSubjectFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param GroupBasedSubjectSet The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGroupBasedSubjectSet(groupBasedSubjectSet = {}) {
    return Object.assign(Object.assign({}, deserializeIntoSubjectSet(groupBasedSubjectSet)), { "groups": n => { groupBasedSubjectSet.groups = n.getCollectionOfObjectValues(createGroupFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param GuestSponsorTrigger The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoGuestSponsorTrigger(guestSponsorTrigger = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowExecutionTrigger(guestSponsorTrigger)), { "minimumRequiredSponsors": n => { guestSponsorTrigger.minimumRequiredSponsors = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param Insights The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoInsights(insights = {}) {
    return Object.assign({}, deserializeIntoEntity(insights));
}
/**
 * The deserialization information for the current model
 * @param LifecycleManagementSettings The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoLifecycleManagementSettings(lifecycleManagementSettings = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(lifecycleManagementSettings)), { "emailSettings": n => { lifecycleManagementSettings.emailSettings = n.getObjectValue(createEmailSettingsFromDiscriminatorValue); }, "quarantineConfiguration": n => { lifecycleManagementSettings.quarantineConfiguration = n.getObjectValue(createQuarantineConfigurationFromDiscriminatorValue); }, "workflowScheduleIntervalInHours": n => { lifecycleManagementSettings.workflowScheduleIntervalInHours = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param LifecycleWorkflowsContainer The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoLifecycleWorkflowsContainer(lifecycleWorkflowsContainer = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(lifecycleWorkflowsContainer)), { "customTaskExtensions": n => { lifecycleWorkflowsContainer.customTaskExtensions = n.getCollectionOfObjectValues(createCustomTaskExtensionFromDiscriminatorValue); }, "deletedItems": n => { lifecycleWorkflowsContainer.deletedItems = n.getObjectValue(createDeletedItemContainerFromDiscriminatorValue); }, "insights": n => { lifecycleWorkflowsContainer.insights = n.getObjectValue(createInsightsFromDiscriminatorValue); }, "settings": n => { lifecycleWorkflowsContainer.settings = n.getObjectValue(createLifecycleManagementSettingsFromDiscriminatorValue); }, "taskDefinitions": n => { lifecycleWorkflowsContainer.taskDefinitions = n.getCollectionOfObjectValues(createTaskDefinitionFromDiscriminatorValue); }, "workflows": n => { lifecycleWorkflowsContainer.workflows = n.getCollectionOfObjectValues(createWorkflowFromDiscriminatorValue); }, "workflowTemplates": n => { lifecycleWorkflowsContainer.workflowTemplates = n.getCollectionOfObjectValues(createWorkflowTemplateFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param MembershipChangeTrigger The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoMembershipChangeTrigger(membershipChangeTrigger = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowExecutionTrigger(membershipChangeTrigger)), { "changeType": n => { membershipChangeTrigger.changeType = n.getEnumValue(MembershipChangeTypeObject); } });
}
/**
 * The deserialization information for the current model
 * @param OnDemandExecutionOnly The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoOnDemandExecutionOnly(onDemandExecutionOnly = {}) {
    return Object.assign({}, deserializeIntoWorkflowExecutionConditions(onDemandExecutionOnly));
}
/**
 * The deserialization information for the current model
 * @param Parameter The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoParameter(parameter = {}) {
    return {
        "backingStoreEnabled": n => { parameter.backingStoreEnabled = true; },
        "name": n => { parameter.name = n.getStringValue(); },
        "@odata.type": n => { parameter.odataType = n.getStringValue(); },
        "values": n => { parameter.values = n.getCollectionOfPrimitiveValues("string"); },
        "valueType": n => { parameter.valueType = n.getEnumValue(ValueTypeObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param PercentageBasedQuarantineCondition The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPercentageBasedQuarantineCondition(percentageBasedQuarantineCondition = {}) {
    return Object.assign(Object.assign({}, deserializeIntoQuarantineCondition(percentageBasedQuarantineCondition)), { "percentage": n => { percentageBasedQuarantineCondition.percentage = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param PreviewFailedTask The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoPreviewFailedTask(previewFailedTask = {}) {
    return {
        "backingStoreEnabled": n => { previewFailedTask.backingStoreEnabled = true; },
        "definitionId": n => { previewFailedTask.definitionId = n.getStringValue(); },
        "failureReason": n => { previewFailedTask.failureReason = n.getStringValue(); },
        "name": n => { previewFailedTask.name = n.getStringValue(); },
        "@odata.type": n => { previewFailedTask.odataType = n.getStringValue(); },
        "taskId": n => { previewFailedTask.taskId = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param ProvisioningAttributeMapping The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoProvisioningAttributeMapping(provisioningAttributeMapping = {}) {
    return Object.assign({}, deserializeIntoWorkflowExecutionConditions(provisioningAttributeMapping));
}
/**
 * The deserialization information for the current model
 * @param ProvisioningObjectWorkflowSubject The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoProvisioningObjectWorkflowSubject(provisioningObjectWorkflowSubject = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowSubject(provisioningObjectWorkflowSubject)), { "attributeSetEntries": n => { provisioningObjectWorkflowSubject.attributeSetEntries = n.getCollectionOfObjectValues(createAttributeSetEntryFromDiscriminatorValue); }, "id": n => { provisioningObjectWorkflowSubject.id = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param QuarantineCondition The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoQuarantineCondition(quarantineCondition = {}) {
    return {
        "backingStoreEnabled": n => { quarantineCondition.backingStoreEnabled = true; },
        "@odata.type": n => { quarantineCondition.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param QuarantineConfiguration The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoQuarantineConfiguration(quarantineConfiguration = {}) {
    return {
        "backingStoreEnabled": n => { quarantineConfiguration.backingStoreEnabled = true; },
        "conditions": n => { quarantineConfiguration.conditions = n.getCollectionOfObjectValues(createQuarantineConditionFromDiscriminatorValue); },
        "matchMode": n => { quarantineConfiguration.matchMode = n.getEnumValue(MatchModeObject); },
        "@odata.type": n => { quarantineConfiguration.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param QuarantineDetails The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoQuarantineDetails(quarantineDetails = {}) {
    return {
        "backingStoreEnabled": n => { quarantineDetails.backingStoreEnabled = true; },
        "@odata.type": n => { quarantineDetails.odataType = n.getStringValue(); },
        "quarantinedDateTime": n => { quarantineDetails.quarantinedDateTime = n.getDateValue(); },
        "quarantineReason": n => { quarantineDetails.quarantineReason = n.getStringValue(); },
        "quarantineType": n => { quarantineDetails.quarantineType = n.getEnumValue(QuarantineTypeObject); },
    };
}
/**
 * The deserialization information for the current model
 * @param RuleBasedSubjectSet The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRuleBasedSubjectSet(ruleBasedSubjectSet = {}) {
    return Object.assign(Object.assign({}, deserializeIntoSubjectSet(ruleBasedSubjectSet)), { "rule": n => { ruleBasedSubjectSet.rule = n.getStringValue(); } });
}
/**
 * The deserialization information for the current model
 * @param Run The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRun(run = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(run)), { "activatedOnScope": n => { run.activatedOnScope = n.getObjectValue(createActivationScopeFromDiscriminatorValue); }, "completedDateTime": n => { run.completedDateTime = n.getDateValue(); }, "failedTasksCount": n => { run.failedTasksCount = n.getNumberValue(); }, "failedUsersCount": n => { run.failedUsersCount = n.getNumberValue(); }, "lastUpdatedDateTime": n => { run.lastUpdatedDateTime = n.getDateValue(); }, "processingStatus": n => { run.processingStatus = n.getEnumValue(LifecycleWorkflowProcessingStatusObject); }, "reprocessedRuns": n => { run.reprocessedRuns = n.getCollectionOfObjectValues(createRunFromDiscriminatorValue); }, "scheduledDateTime": n => { run.scheduledDateTime = n.getDateValue(); }, "startedDateTime": n => { run.startedDateTime = n.getDateValue(); }, "subjectProcessingResults": n => { run.subjectProcessingResults = n.getCollectionOfObjectValues(createSubjectProcessingResultFromDiscriminatorValue); }, "successfulUsersCount": n => { run.successfulUsersCount = n.getNumberValue(); }, "taskProcessingResults": n => { run.taskProcessingResults = n.getCollectionOfObjectValues(createTaskProcessingResultFromDiscriminatorValue); }, "totalTasksCount": n => { run.totalTasksCount = n.getNumberValue(); }, "totalUnprocessedTasksCount": n => { run.totalUnprocessedTasksCount = n.getNumberValue(); }, "totalUsersCount": n => { run.totalUsersCount = n.getNumberValue(); }, "userProcessingResults": n => { run.userProcessingResults = n.getCollectionOfObjectValues(createUserProcessingResultFromDiscriminatorValue); }, "workflowExecutionType": n => { run.workflowExecutionType = n.getEnumValue(WorkflowExecutionTypeObject); } });
}
/**
 * The deserialization information for the current model
 * @param RunCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRunCollectionResponse(runCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(runCollectionResponse)), { "value": n => { runCollectionResponse.value = n.getCollectionOfObjectValues(createRunFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param RunSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoRunSummary(runSummary = {}) {
    return {
        "backingStoreEnabled": n => { runSummary.backingStoreEnabled = true; },
        "failedRuns": n => { runSummary.failedRuns = n.getNumberValue(); },
        "failedTasks": n => { runSummary.failedTasks = n.getNumberValue(); },
        "@odata.type": n => { runSummary.odataType = n.getStringValue(); },
        "successfulRuns": n => { runSummary.successfulRuns = n.getNumberValue(); },
        "totalRuns": n => { runSummary.totalRuns = n.getNumberValue(); },
        "totalTasks": n => { runSummary.totalTasks = n.getNumberValue(); },
        "totalUsers": n => { runSummary.totalUsers = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param SubjectProcessingResult The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSubjectProcessingResult(subjectProcessingResult = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(subjectProcessingResult)), { "completedDateTime": n => { subjectProcessingResult.completedDateTime = n.getDateValue(); }, "failedTasksCount": n => { subjectProcessingResult.failedTasksCount = n.getNumberValue(); }, "processingStatus": n => { subjectProcessingResult.processingStatus = n.getEnumValue(LifecycleWorkflowProcessingStatusObject); }, "reprocessedRuns": n => { subjectProcessingResult.reprocessedRuns = n.getCollectionOfObjectValues(createRunFromDiscriminatorValue); }, "scheduledDateTime": n => { subjectProcessingResult.scheduledDateTime = n.getDateValue(); }, "startedDateTime": n => { subjectProcessingResult.startedDateTime = n.getDateValue(); }, "subject": n => { subjectProcessingResult.subject = n.getObjectValue(createWorkflowSubjectFromDiscriminatorValue); }, "taskProcessingResults": n => { subjectProcessingResult.taskProcessingResults = n.getCollectionOfObjectValues(createTaskProcessingResultFromDiscriminatorValue); }, "totalTasksCount": n => { subjectProcessingResult.totalTasksCount = n.getNumberValue(); }, "totalUnprocessedTasksCount": n => { subjectProcessingResult.totalUnprocessedTasksCount = n.getNumberValue(); }, "workflowExecutionType": n => { subjectProcessingResult.workflowExecutionType = n.getEnumValue(WorkflowExecutionTypeObject); }, "workflowVersion": n => { subjectProcessingResult.workflowVersion = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param SubjectProcessingResultCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoSubjectProcessingResultCollectionResponse(subjectProcessingResultCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(subjectProcessingResultCollectionResponse)), { "value": n => { subjectProcessingResultCollectionResponse.value = n.getCollectionOfObjectValues(createSubjectProcessingResultFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param Task The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTask(task = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(task)), { "arguments": n => { task.arguments = n.getCollectionOfObjectValues(createKeyValuePairFromDiscriminatorValue); }, "category": n => { task.category = n.getCollectionOfEnumValues(LifecycleTaskCategoryObject); }, "continueOnError": n => { task.continueOnError = n.getBooleanValue(); }, "description": n => { task.description = n.getStringValue(); }, "displayName": n => { task.displayName = n.getStringValue(); }, "executionSequence": n => { task.executionSequence = n.getNumberValue(); }, "isEnabled": n => { task.isEnabled = n.getBooleanValue(); }, "taskDefinitionId": n => { task.taskDefinitionId = n.getStringValue(); }, "taskProcessingResults": n => { task.taskProcessingResults = n.getCollectionOfObjectValues(createTaskProcessingResultFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TaskCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTaskCollectionResponse(taskCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(taskCollectionResponse)), { "value": n => { taskCollectionResponse.value = n.getCollectionOfObjectValues(createTaskFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TaskDefinition The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTaskDefinition(taskDefinition = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(taskDefinition)), { "category": n => { taskDefinition.category = n.getCollectionOfEnumValues(LifecycleTaskCategoryObject); }, "continueOnError": n => { taskDefinition.continueOnError = n.getBooleanValue(); }, "description": n => { taskDefinition.description = n.getStringValue(); }, "displayName": n => { taskDefinition.displayName = n.getStringValue(); }, "parameters": n => { taskDefinition.parameters = n.getCollectionOfObjectValues(createParameterFromDiscriminatorValue); }, "version": n => { taskDefinition.version = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param TaskDefinitionCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTaskDefinitionCollectionResponse(taskDefinitionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(taskDefinitionCollectionResponse)), { "value": n => { taskDefinitionCollectionResponse.value = n.getCollectionOfObjectValues(createTaskDefinitionFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TaskProcessingResult The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTaskProcessingResult(taskProcessingResult = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(taskProcessingResult)), { "completedDateTime": n => { taskProcessingResult.completedDateTime = n.getDateValue(); }, "createdDateTime": n => { taskProcessingResult.createdDateTime = n.getDateValue(); }, "failureReason": n => { taskProcessingResult.failureReason = n.getStringValue(); }, "processingInfo": n => { taskProcessingResult.processingInfo = n.getStringValue(); }, "processingStatus": n => { taskProcessingResult.processingStatus = n.getEnumValue(LifecycleWorkflowProcessingStatusObject); }, "startedDateTime": n => { taskProcessingResult.startedDateTime = n.getDateValue(); }, "subject": n => { taskProcessingResult.subject = n.getObjectValue(createUserFromDiscriminatorValue); }, "task": n => { taskProcessingResult.task = n.getObjectValue(createTaskFromDiscriminatorValue); }, "workflowSubject": n => { taskProcessingResult.workflowSubject = n.getObjectValue(createWorkflowSubjectFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TaskProcessingResultCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTaskProcessingResultCollectionResponse(taskProcessingResultCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(taskProcessingResultCollectionResponse)), { "value": n => { taskProcessingResultCollectionResponse.value = n.getCollectionOfObjectValues(createTaskProcessingResultFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TaskReport The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTaskReport(taskReport = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(taskReport)), { "completedDateTime": n => { taskReport.completedDateTime = n.getDateValue(); }, "failedUsersCount": n => { taskReport.failedUsersCount = n.getNumberValue(); }, "lastUpdatedDateTime": n => { taskReport.lastUpdatedDateTime = n.getDateValue(); }, "processingStatus": n => { taskReport.processingStatus = n.getEnumValue(LifecycleWorkflowProcessingStatusObject); }, "runId": n => { taskReport.runId = n.getStringValue(); }, "startedDateTime": n => { taskReport.startedDateTime = n.getDateValue(); }, "successfulUsersCount": n => { taskReport.successfulUsersCount = n.getNumberValue(); }, "task": n => { taskReport.task = n.getObjectValue(createTaskFromDiscriminatorValue); }, "taskDefinition": n => { taskReport.taskDefinition = n.getObjectValue(createTaskDefinitionFromDiscriminatorValue); }, "taskProcessingResults": n => { taskReport.taskProcessingResults = n.getCollectionOfObjectValues(createTaskProcessingResultFromDiscriminatorValue); }, "totalUsersCount": n => { taskReport.totalUsersCount = n.getNumberValue(); }, "unprocessedUsersCount": n => { taskReport.unprocessedUsersCount = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param TaskReportCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTaskReportCollectionResponse(taskReportCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(taskReportCollectionResponse)), { "value": n => { taskReportCollectionResponse.value = n.getCollectionOfObjectValues(createTaskReportFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TaskReportSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTaskReportSummary(taskReportSummary = {}) {
    return {
        "backingStoreEnabled": n => { taskReportSummary.backingStoreEnabled = true; },
        "failedTasks": n => { taskReportSummary.failedTasks = n.getNumberValue(); },
        "@odata.type": n => { taskReportSummary.odataType = n.getStringValue(); },
        "successfulTasks": n => { taskReportSummary.successfulTasks = n.getNumberValue(); },
        "totalTasks": n => { taskReportSummary.totalTasks = n.getNumberValue(); },
        "unprocessedTasks": n => { taskReportSummary.unprocessedTasks = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param TimeBasedAttributeTrigger The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTimeBasedAttributeTrigger(timeBasedAttributeTrigger = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowExecutionTrigger(timeBasedAttributeTrigger)), { "offsetInDays": n => { timeBasedAttributeTrigger.offsetInDays = n.getNumberValue(); }, "timeBasedAttribute": n => { timeBasedAttributeTrigger.timeBasedAttribute = n.getEnumValue(WorkflowTriggerTimeBasedAttributeObject); } });
}
/**
 * The deserialization information for the current model
 * @param TopTasksInsightsSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTopTasksInsightsSummary(topTasksInsightsSummary = {}) {
    return {
        "backingStoreEnabled": n => { topTasksInsightsSummary.backingStoreEnabled = true; },
        "failedTasks": n => { topTasksInsightsSummary.failedTasks = n.getNumberValue(); },
        "failedUsers": n => { topTasksInsightsSummary.failedUsers = n.getNumberValue(); },
        "@odata.type": n => { topTasksInsightsSummary.odataType = n.getStringValue(); },
        "successfulTasks": n => { topTasksInsightsSummary.successfulTasks = n.getNumberValue(); },
        "successfulUsers": n => { topTasksInsightsSummary.successfulUsers = n.getNumberValue(); },
        "taskDefinitionDisplayName": n => { topTasksInsightsSummary.taskDefinitionDisplayName = n.getStringValue(); },
        "taskDefinitionId": n => { topTasksInsightsSummary.taskDefinitionId = n.getStringValue(); },
        "totalTasks": n => { topTasksInsightsSummary.totalTasks = n.getNumberValue(); },
        "totalUsers": n => { topTasksInsightsSummary.totalUsers = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param TopWorkflowsInsightsSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTopWorkflowsInsightsSummary(topWorkflowsInsightsSummary = {}) {
    return {
        "backingStoreEnabled": n => { topWorkflowsInsightsSummary.backingStoreEnabled = true; },
        "failedRuns": n => { topWorkflowsInsightsSummary.failedRuns = n.getNumberValue(); },
        "failedUsers": n => { topWorkflowsInsightsSummary.failedUsers = n.getNumberValue(); },
        "@odata.type": n => { topWorkflowsInsightsSummary.odataType = n.getStringValue(); },
        "successfulRuns": n => { topWorkflowsInsightsSummary.successfulRuns = n.getNumberValue(); },
        "successfulUsers": n => { topWorkflowsInsightsSummary.successfulUsers = n.getNumberValue(); },
        "totalRuns": n => { topWorkflowsInsightsSummary.totalRuns = n.getNumberValue(); },
        "totalUsers": n => { topWorkflowsInsightsSummary.totalUsers = n.getNumberValue(); },
        "workflowCategory": n => { topWorkflowsInsightsSummary.workflowCategory = n.getEnumValue(LifecycleWorkflowCategoryObject); },
        "workflowDisplayName": n => { topWorkflowsInsightsSummary.workflowDisplayName = n.getStringValue(); },
        "workflowId": n => { topWorkflowsInsightsSummary.workflowId = n.getStringValue(); },
        "workflowVersion": n => { topWorkflowsInsightsSummary.workflowVersion = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param TriggerAndScopeBasedConditions The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTriggerAndScopeBasedConditions(triggerAndScopeBasedConditions = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowExecutionConditions(triggerAndScopeBasedConditions)), { "scope": n => { triggerAndScopeBasedConditions.scope = n.getObjectValue(createSubjectSetFromDiscriminatorValue); }, "trigger": n => { triggerAndScopeBasedConditions.trigger = n.getObjectValue(createWorkflowExecutionTriggerFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param TriggerAttribute The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoTriggerAttribute(triggerAttribute = {}) {
    return {
        "backingStoreEnabled": n => { triggerAttribute.backingStoreEnabled = true; },
        "name": n => { triggerAttribute.name = n.getStringValue(); },
        "@odata.type": n => { triggerAttribute.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param UserInactivityTrigger The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUserInactivityTrigger(userInactivityTrigger = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowExecutionTrigger(userInactivityTrigger)), { "inactivityPeriodInDays": n => { userInactivityTrigger.inactivityPeriodInDays = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param UserProcessingResult The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUserProcessingResult(userProcessingResult = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(userProcessingResult)), { "completedDateTime": n => { userProcessingResult.completedDateTime = n.getDateValue(); }, "failedTasksCount": n => { userProcessingResult.failedTasksCount = n.getNumberValue(); }, "processingStatus": n => { userProcessingResult.processingStatus = n.getEnumValue(LifecycleWorkflowProcessingStatusObject); }, "reprocessedRuns": n => { userProcessingResult.reprocessedRuns = n.getCollectionOfObjectValues(createRunFromDiscriminatorValue); }, "scheduledDateTime": n => { userProcessingResult.scheduledDateTime = n.getDateValue(); }, "startedDateTime": n => { userProcessingResult.startedDateTime = n.getDateValue(); }, "subject": n => { userProcessingResult.subject = n.getObjectValue(createUserFromDiscriminatorValue); }, "taskProcessingResults": n => { userProcessingResult.taskProcessingResults = n.getCollectionOfObjectValues(createTaskProcessingResultFromDiscriminatorValue); }, "totalTasksCount": n => { userProcessingResult.totalTasksCount = n.getNumberValue(); }, "totalUnprocessedTasksCount": n => { userProcessingResult.totalUnprocessedTasksCount = n.getNumberValue(); }, "workflowExecutionType": n => { userProcessingResult.workflowExecutionType = n.getEnumValue(WorkflowExecutionTypeObject); }, "workflowVersion": n => { userProcessingResult.workflowVersion = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param UserProcessingResultCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUserProcessingResultCollectionResponse(userProcessingResultCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(userProcessingResultCollectionResponse)), { "value": n => { userProcessingResultCollectionResponse.value = n.getCollectionOfObjectValues(createUserProcessingResultFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param UserSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoUserSummary(userSummary = {}) {
    return {
        "backingStoreEnabled": n => { userSummary.backingStoreEnabled = true; },
        "failedTasks": n => { userSummary.failedTasks = n.getNumberValue(); },
        "failedUsers": n => { userSummary.failedUsers = n.getNumberValue(); },
        "@odata.type": n => { userSummary.odataType = n.getStringValue(); },
        "successfulUsers": n => { userSummary.successfulUsers = n.getNumberValue(); },
        "totalTasks": n => { userSummary.totalTasks = n.getNumberValue(); },
        "totalUsers": n => { userSummary.totalUsers = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param Workflow The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflow(workflow = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowBase(workflow)), { "deletedDateTime": n => { workflow.deletedDateTime = n.getDateValue(); }, "executionScope": n => { workflow.executionScope = n.getCollectionOfObjectValues(createUserProcessingResultFromDiscriminatorValue); }, "id": n => { workflow.id = n.getStringValue(); }, "nextScheduleRunDateTime": n => { workflow.nextScheduleRunDateTime = n.getDateValue(); }, "previewScope": n => { workflow.previewScope = n.getCollectionOfObjectValues(createDirectoryObjectFromDiscriminatorValue); }, "quarantineDetails": n => { workflow.quarantineDetails = n.getObjectValue(createQuarantineDetailsFromDiscriminatorValue); }, "runs": n => { workflow.runs = n.getCollectionOfObjectValues(createRunFromDiscriminatorValue); }, "settings": n => { workflow.settings = n.getObjectValue(createWorkflowSettingFromDiscriminatorValue); }, "subjectProcessingResults": n => { workflow.subjectProcessingResults = n.getCollectionOfObjectValues(createSubjectProcessingResultFromDiscriminatorValue); }, "taskReports": n => { workflow.taskReports = n.getCollectionOfObjectValues(createTaskReportFromDiscriminatorValue); }, "userProcessingResults": n => { workflow.userProcessingResults = n.getCollectionOfObjectValues(createUserProcessingResultFromDiscriminatorValue); }, "version": n => { workflow.version = n.getNumberValue(); }, "versions": n => { workflow.versions = n.getCollectionOfObjectValues(createWorkflowVersionFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param WorkflowBase The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowBase(workflowBase = {}) {
    return {
        "administrationScopeTargets": n => { workflowBase.administrationScopeTargets = n.getCollectionOfObjectValues(createDirectoryObjectFromDiscriminatorValue); },
        "backingStoreEnabled": n => { workflowBase.backingStoreEnabled = true; },
        "category": n => { workflowBase.category = n.getEnumValue(LifecycleWorkflowCategoryObject); },
        "createdBy": n => { workflowBase.createdBy = n.getObjectValue(createUserFromDiscriminatorValue); },
        "createdDateTime": n => { workflowBase.createdDateTime = n.getDateValue(); },
        "description": n => { workflowBase.description = n.getStringValue(); },
        "displayName": n => { workflowBase.displayName = n.getStringValue(); },
        "executionConditions": n => { workflowBase.executionConditions = n.getObjectValue(createWorkflowExecutionConditionsFromDiscriminatorValue); },
        "isEnabled": n => { workflowBase.isEnabled = n.getBooleanValue(); },
        "isSchedulingEnabled": n => { workflowBase.isSchedulingEnabled = n.getBooleanValue(); },
        "lastModifiedBy": n => { workflowBase.lastModifiedBy = n.getObjectValue(createUserFromDiscriminatorValue); },
        "lastModifiedDateTime": n => { workflowBase.lastModifiedDateTime = n.getDateValue(); },
        "@odata.type": n => { workflowBase.odataType = n.getStringValue(); },
        "tasks": n => { workflowBase.tasks = n.getCollectionOfObjectValues(createTaskFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param WorkflowCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowCollectionResponse(workflowCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(workflowCollectionResponse)), { "value": n => { workflowCollectionResponse.value = n.getCollectionOfObjectValues(createWorkflowFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param WorkflowExecutionConditions The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowExecutionConditions(workflowExecutionConditions = {}) {
    return {
        "backingStoreEnabled": n => { workflowExecutionConditions.backingStoreEnabled = true; },
        "@odata.type": n => { workflowExecutionConditions.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param WorkflowExecutionTrigger The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowExecutionTrigger(workflowExecutionTrigger = {}) {
    return {
        "backingStoreEnabled": n => { workflowExecutionTrigger.backingStoreEnabled = true; },
        "@odata.type": n => { workflowExecutionTrigger.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param WorkflowSetting The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowSetting(workflowSetting = {}) {
    return {
        "backingStoreEnabled": n => { workflowSetting.backingStoreEnabled = true; },
        "@odata.type": n => { workflowSetting.odataType = n.getStringValue(); },
        "quarantineConfiguration": n => { workflowSetting.quarantineConfiguration = n.getObjectValue(createQuarantineConfigurationFromDiscriminatorValue); },
    };
}
/**
 * The deserialization information for the current model
 * @param WorkflowsInsightsByCategory The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowsInsightsByCategory(workflowsInsightsByCategory = {}) {
    return {
        "backingStoreEnabled": n => { workflowsInsightsByCategory.backingStoreEnabled = true; },
        "failedJoinerRuns": n => { workflowsInsightsByCategory.failedJoinerRuns = n.getNumberValue(); },
        "failedLeaverRuns": n => { workflowsInsightsByCategory.failedLeaverRuns = n.getNumberValue(); },
        "failedMoverRuns": n => { workflowsInsightsByCategory.failedMoverRuns = n.getNumberValue(); },
        "@odata.type": n => { workflowsInsightsByCategory.odataType = n.getStringValue(); },
        "successfulJoinerRuns": n => { workflowsInsightsByCategory.successfulJoinerRuns = n.getNumberValue(); },
        "successfulLeaverRuns": n => { workflowsInsightsByCategory.successfulLeaverRuns = n.getNumberValue(); },
        "successfulMoverRuns": n => { workflowsInsightsByCategory.successfulMoverRuns = n.getNumberValue(); },
        "totalJoinerRuns": n => { workflowsInsightsByCategory.totalJoinerRuns = n.getNumberValue(); },
        "totalLeaverRuns": n => { workflowsInsightsByCategory.totalLeaverRuns = n.getNumberValue(); },
        "totalMoverRuns": n => { workflowsInsightsByCategory.totalMoverRuns = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param WorkflowsInsightsSummary The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowsInsightsSummary(workflowsInsightsSummary = {}) {
    return {
        "backingStoreEnabled": n => { workflowsInsightsSummary.backingStoreEnabled = true; },
        "failedRuns": n => { workflowsInsightsSummary.failedRuns = n.getNumberValue(); },
        "failedTasks": n => { workflowsInsightsSummary.failedTasks = n.getNumberValue(); },
        "failedUsers": n => { workflowsInsightsSummary.failedUsers = n.getNumberValue(); },
        "@odata.type": n => { workflowsInsightsSummary.odataType = n.getStringValue(); },
        "successfulRuns": n => { workflowsInsightsSummary.successfulRuns = n.getNumberValue(); },
        "successfulTasks": n => { workflowsInsightsSummary.successfulTasks = n.getNumberValue(); },
        "successfulUsers": n => { workflowsInsightsSummary.successfulUsers = n.getNumberValue(); },
        "totalRuns": n => { workflowsInsightsSummary.totalRuns = n.getNumberValue(); },
        "totalTasks": n => { workflowsInsightsSummary.totalTasks = n.getNumberValue(); },
        "totalUsers": n => { workflowsInsightsSummary.totalUsers = n.getNumberValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param WorkflowSubject The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowSubject(workflowSubject = {}) {
    return {
        "backingStoreEnabled": n => { workflowSubject.backingStoreEnabled = true; },
        "@odata.type": n => { workflowSubject.odataType = n.getStringValue(); },
    };
}
/**
 * The deserialization information for the current model
 * @param WorkflowTemplate The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowTemplate(workflowTemplate = {}) {
    return Object.assign(Object.assign({}, deserializeIntoEntity(workflowTemplate)), { "category": n => { workflowTemplate.category = n.getEnumValue(LifecycleWorkflowCategoryObject); }, "description": n => { workflowTemplate.description = n.getStringValue(); }, "displayName": n => { workflowTemplate.displayName = n.getStringValue(); }, "executionConditions": n => { workflowTemplate.executionConditions = n.getObjectValue(createWorkflowExecutionConditionsFromDiscriminatorValue); }, "tasks": n => { workflowTemplate.tasks = n.getCollectionOfObjectValues(createTaskFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param WorkflowTemplateCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowTemplateCollectionResponse(workflowTemplateCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(workflowTemplateCollectionResponse)), { "value": n => { workflowTemplateCollectionResponse.value = n.getCollectionOfObjectValues(createWorkflowTemplateFromDiscriminatorValue); } });
}
/**
 * The deserialization information for the current model
 * @param WorkflowVersion The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowVersion(workflowVersion = {}) {
    return Object.assign(Object.assign({}, deserializeIntoWorkflowBase(workflowVersion)), { "settings": n => { workflowVersion.settings = n.getObjectValue(createWorkflowSettingFromDiscriminatorValue); }, "versionNumber": n => { workflowVersion.versionNumber = n.getNumberValue(); } });
}
/**
 * The deserialization information for the current model
 * @param WorkflowVersionCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
// @ts-ignore
export function deserializeIntoWorkflowVersionCollectionResponse(workflowVersionCollectionResponse = {}) {
    return Object.assign(Object.assign({}, deserializeIntoBaseCollectionPaginationCountResponse(workflowVersionCollectionResponse)), { "value": n => { workflowVersionCollectionResponse.value = n.getCollectionOfObjectValues(createWorkflowVersionFromDiscriminatorValue); } });
}
/**
 * Serializes information the current object
 * @param ActivateGroupScope 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 serializeActivateGroupScope(writer, activateGroupScope = {}, isSerializingDerivedType = false) {
    if (!activateGroupScope || isSerializingDerivedType) {
        return;
    }
    serializeActivationScope(writer, activateGroupScope, isSerializingDerivedType);
    writer.writeObjectValue("group", activateGroupScope.group, serializeGroup);
}
/**
 * Serializes information the current object
 * @param ActivateProcessingResultScope 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 serializeActivateProcessingResultScope(writer, activateProcessingResultScope = {}, isSerializingDerivedType = false) {
    if (!activateProcessingResultScope || isSerializingDerivedType) {
        return;
    }
    serializeActivationScope(writer, activateProcessingResultScope, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("processingResults", activateProcessingResultScope.processingResults, serializeUserProcessingResult);
    writer.writeEnumValue("taskScope", activateProcessingResultScope.taskScope);
}
/**
 * Serializes information the current object
 * @param ActivateRunScope 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 serializeActivateRunScope(writer, activateRunScope = {}, isSerializingDerivedType = false) {
    if (!activateRunScope || isSerializingDerivedType) {
        return;
    }
    serializeActivationScope(writer, activateRunScope, isSerializingDerivedType);
    writer.writeObjectValue("run", activateRunScope.run, serializeRun);
    writer.writeEnumValue("taskScope", activateRunScope.taskScope);
    writer.writeEnumValue("userScope", activateRunScope.userScope);
}
/**
 * Serializes information the current object
 * @param ActivateUserScope 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 serializeActivateUserScope(writer, activateUserScope = {}, isSerializingDerivedType = false) {
    if (!activateUserScope || isSerializingDerivedType) {
        return;
    }
    serializeActivationScope(writer, activateUserScope, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("users", activateUserScope.users, serializeUser);
}
/**
 * Serializes information the current object
 * @param ActivationScope 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 serializeActivationScope(writer, activationScope = {}, isSerializingDerivedType = false) {
    if (!activationScope || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", activationScope.odataType);
    writer.writeAdditionalData(activationScope.additionalData);
    switch (activationScope.odataType) {
        case "#microsoft.graph.identityGovernance.activateGroupScope":
            serializeActivateGroupScope(writer, activationScope, true);
            break;
        case "#microsoft.graph.identityGovernance.activateProcessingResultScope":
            serializeActivateProcessingResultScope(writer, activationScope, true);
            break;
        case "#microsoft.graph.identityGovernance.activateRunScope":
            serializeActivateRunScope(writer, activationScope, true);
            break;
        case "#microsoft.graph.identityGovernance.activateUserScope":
            serializeActivateUserScope(writer, activationScope, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param AttributeChangeTrigger 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 serializeAttributeChangeTrigger(writer, attributeChangeTrigger = {}, isSerializingDerivedType = false) {
    if (!attributeChangeTrigger || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowExecutionTrigger(writer, attributeChangeTrigger, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("triggerAttributes", attributeChangeTrigger.triggerAttributes, serializeTriggerAttribute);
}
/**
 * Serializes information the current object
 * @param AttributeSetEntry 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 serializeAttributeSetEntry(writer, attributeSetEntry = {}, isSerializingDerivedType = false) {
    if (!attributeSetEntry || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("name", attributeSetEntry.name);
    writer.writeStringValue("@odata.type", attributeSetEntry.odataType);
    writer.writeStringValue("value", attributeSetEntry.value);
    writer.writeAdditionalData(attributeSetEntry.additionalData);
}
/**
 * Serializes information the current object
 * @param AwaitedWorkflowProcessingResult 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 serializeAwaitedWorkflowProcessingResult(writer, awaitedWorkflowProcessingResult = {}, isSerializingDerivedType = false) {
    if (!awaitedWorkflowProcessingResult || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", awaitedWorkflowProcessingResult.odataType);
    writer.writeEnumValue("processingStatus", awaitedWorkflowProcessingResult.processingStatus);
    writer.writeCollectionOfPrimitiveValues("statusReasons", awaitedWorkflowProcessingResult.statusReasons);
    writer.writeObjectValue("subject", awaitedWorkflowProcessingResult.subject, serializeWorkflowSubject);
    writer.writeAdditionalData(awaitedWorkflowProcessingResult.additionalData);
}
/**
 * Serializes information the current object
 * @param CancelRunsScope 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 serializeCancelRunsScope(writer, cancelRunsScope = {}, isSerializingDerivedType = false) {
    if (!cancelRunsScope || isSerializingDerivedType) {
        return;
    }
    serializeCancelScope(writer, cancelRunsScope, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("runs", cancelRunsScope.runs, serializeRun);
}
/**
 * Serializes information the current object
 * @param CancelScope 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 serializeCancelScope(writer, cancelScope = {}, isSerializingDerivedType = false) {
    if (!cancelScope || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", cancelScope.odataType);
    writer.writeAdditionalData(cancelScope.additionalData);
    switch (cancelScope.odataType) {
        case "#microsoft.graph.identityGovernance.cancelRunsScope":
            serializeCancelRunsScope(writer, cancelScope, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param CountBasedQuarantineCondition 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 serializeCountBasedQuarantineCondition(writer, countBasedQuarantineCondition = {}, isSerializingDerivedType = false) {
    if (!countBasedQuarantineCondition || isSerializingDerivedType) {
        return;
    }
    serializeQuarantineCondition(writer, countBasedQuarantineCondition, isSerializingDerivedType);
    writer.writeNumberValue("threshold", countBasedQuarantineCondition.threshold);
}
/**
 * Serializes information the current object
 * @param CustomTaskExtension 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 serializeCustomTaskExtension(writer, customTaskExtension = {}, isSerializingDerivedType = false) {
    if (!customTaskExtension || isSerializingDerivedType) {
        return;
    }
    serializeCustomCalloutExtension(writer, customTaskExtension, isSerializingDerivedType);
    writer.writeObjectValue("callbackConfiguration", customTaskExtension.callbackConfiguration, serializeCustomExtensionCallbackConfiguration);
    writer.writeObjectValue("createdBy", customTaskExtension.createdBy, serializeUser);
    writer.writeDateValue("createdDateTime", customTaskExtension.createdDateTime);
    writer.writeObjectValue("lastModifiedBy", customTaskExtension.lastModifiedBy, serializeUser);
    writer.writeDateValue("lastModifiedDateTime", customTaskExtension.lastModifiedDateTime);
    writer.writeEnumValue("replyMode", customTaskExtension.replyMode);
}
/**
 * Serializes information the current object
 * @param CustomTaskExtensionCallbackConfiguration 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 serializeCustomTaskExtensionCallbackConfiguration(writer, customTaskExtensionCallbackConfiguration = {}, isSerializingDerivedType = false) {
    if (!customTaskExtensionCallbackConfiguration || isSerializingDerivedType) {
        return;
    }
    serializeCustomExtensionCallbackConfiguration(writer, customTaskExtensionCallbackConfiguration, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("authorizedApps", customTaskExtensionCallbackConfiguration.authorizedApps, serializeApplication);
}
/**
 * Serializes information the current object
 * @param CustomTaskExtensionCallbackData 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 serializeCustomTaskExtensionCallbackData(writer, customTaskExtensionCallbackData = {}, isSerializingDerivedType = false) {
    if (!customTaskExtensionCallbackData || isSerializingDerivedType) {
        return;
    }
    serializeCustomExtensionData(writer, customTaskExtensionCallbackData, isSerializingDerivedType);
    writer.writeEnumValue("operationStatus", customTaskExtensionCallbackData.operationStatus);
}
/**
 * Serializes information the current object
 * @param CustomTaskExtensionCalloutData 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 serializeCustomTaskExtensionCalloutData(writer, customTaskExtensionCalloutData = {}, isSerializingDerivedType = false) {
    if (!customTaskExtensionCalloutData || isSerializingDerivedType) {
        return;
    }
    serializeCustomExtensionData(writer, customTaskExtensionCalloutData, isSerializingDerivedType);
    writer.writeObjectValue("subject", customTaskExtensionCalloutData.subject, serializeUser);
    writer.writeObjectValue("targetSubject", customTaskExtensionCalloutData.targetSubject, serializeWorkflowSubject);
    writer.writeObjectValue("task", customTaskExtensionCalloutData.task, serializeTask);
    writer.writeObjectValue("taskProcessingresult", customTaskExtensionCalloutData.taskProcessingresult, serializeTaskProcessingResult);
    writer.writeObjectValue("workflow", customTaskExtensionCalloutData.workflow, serializeWorkflow);
}
/**
 * Serializes information the current object
 * @param CustomTaskExtensionCollectionResponse 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 serializeCustomTaskExtensionCollectionResponse(writer, customTaskExtensionCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!customTaskExtensionCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, customTaskExtensionCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", customTaskExtensionCollectionResponse.value, serializeCustomTaskExtension);
}
/**
 * Serializes information the current object
 * @param CustomTaskExtensionResponseData 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 serializeCustomTaskExtensionResponseData(writer, customTaskExtensionResponseData = {}, isSerializingDerivedType = false) {
    if (!customTaskExtensionResponseData || isSerializingDerivedType) {
        return;
    }
    serializeCustomExtensionData(writer, customTaskExtensionResponseData, isSerializingDerivedType);
    writer.writeEnumValue("operationStatus", customTaskExtensionResponseData.operationStatus);
    writer.writeCollectionOfPrimitiveValues("statusReasons", customTaskExtensionResponseData.statusReasons);
    writer.writeObjectValue("targetSubject", customTaskExtensionResponseData.targetSubject, serializeWorkflowSubject);
}
/**
 * Serializes information the current object
 * @param GroupBasedSubjectSet 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 serializeGroupBasedSubjectSet(writer, groupBasedSubjectSet = {}, isSerializingDerivedType = false) {
    if (!groupBasedSubjectSet || isSerializingDerivedType) {
        return;
    }
    serializeSubjectSet(writer, groupBasedSubjectSet, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("groups", groupBasedSubjectSet.groups, serializeGroup);
}
/**
 * Serializes information the current object
 * @param GuestSponsorTrigger 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 serializeGuestSponsorTrigger(writer, guestSponsorTrigger = {}, isSerializingDerivedType = false) {
    if (!guestSponsorTrigger || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowExecutionTrigger(writer, guestSponsorTrigger, isSerializingDerivedType);
    writer.writeNumberValue("minimumRequiredSponsors", guestSponsorTrigger.minimumRequiredSponsors);
}
/**
 * Serializes information the current object
 * @param Insights 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 serializeInsights(writer, insights = {}, isSerializingDerivedType = false) {
    if (!insights || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, insights, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param LifecycleManagementSettings The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeLifecycleManagementSettings(writer, lifecycleManagementSettings = {}, isSerializingDerivedType = false) {
    if (!lifecycleManagementSettings || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, lifecycleManagementSettings, isSerializingDerivedType);
    writer.writeObjectValue("emailSettings", lifecycleManagementSettings.emailSettings, serializeEmailSettings);
    writer.writeObjectValue("quarantineConfiguration", lifecycleManagementSettings.quarantineConfiguration, serializeQuarantineConfiguration);
    writer.writeNumberValue("workflowScheduleIntervalInHours", lifecycleManagementSettings.workflowScheduleIntervalInHours);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param LifecycleWorkflowsContainer The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeLifecycleWorkflowsContainer(writer, lifecycleWorkflowsContainer = {}, isSerializingDerivedType = false) {
    if (!lifecycleWorkflowsContainer || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, lifecycleWorkflowsContainer, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("customTaskExtensions", lifecycleWorkflowsContainer.customTaskExtensions, serializeCustomTaskExtension);
    writer.writeObjectValue("deletedItems", lifecycleWorkflowsContainer.deletedItems, serializeDeletedItemContainer);
    writer.writeObjectValue("insights", lifecycleWorkflowsContainer.insights, serializeInsights);
    writer.writeObjectValue("settings", lifecycleWorkflowsContainer.settings, serializeLifecycleManagementSettings);
    writer.writeCollectionOfObjectValues("taskDefinitions", lifecycleWorkflowsContainer.taskDefinitions, serializeTaskDefinition);
    writer.writeCollectionOfObjectValues("workflows", lifecycleWorkflowsContainer.workflows, serializeWorkflow);
    writer.writeCollectionOfObjectValues("workflowTemplates", lifecycleWorkflowsContainer.workflowTemplates, serializeWorkflowTemplate);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param MembershipChangeTrigger The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeMembershipChangeTrigger(writer, membershipChangeTrigger = {}, isSerializingDerivedType = false) {
    if (!membershipChangeTrigger || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowExecutionTrigger(writer, membershipChangeTrigger, isSerializingDerivedType);
    writer.writeEnumValue("changeType", membershipChangeTrigger.changeType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param OnDemandExecutionOnly The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeOnDemandExecutionOnly(writer, onDemandExecutionOnly = {}, isSerializingDerivedType = false) {
    if (!onDemandExecutionOnly || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowExecutionConditions(writer, onDemandExecutionOnly, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Parameter The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeParameter(writer, parameter = {}, isSerializingDerivedType = false) {
    if (!parameter || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("name", parameter.name);
    writer.writeStringValue("@odata.type", parameter.odataType);
    writer.writeCollectionOfPrimitiveValues("values", parameter.values);
    writer.writeEnumValue("valueType", parameter.valueType);
    writer.writeAdditionalData(parameter.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PercentageBasedQuarantineCondition The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePercentageBasedQuarantineCondition(writer, percentageBasedQuarantineCondition = {}, isSerializingDerivedType = false) {
    if (!percentageBasedQuarantineCondition || isSerializingDerivedType) {
        return;
    }
    serializeQuarantineCondition(writer, percentageBasedQuarantineCondition, isSerializingDerivedType);
    writer.writeNumberValue("percentage", percentageBasedQuarantineCondition.percentage);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param PreviewFailedTask The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializePreviewFailedTask(writer, previewFailedTask = {}, isSerializingDerivedType = false) {
    if (!previewFailedTask || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("definitionId", previewFailedTask.definitionId);
    writer.writeStringValue("failureReason", previewFailedTask.failureReason);
    writer.writeStringValue("name", previewFailedTask.name);
    writer.writeStringValue("@odata.type", previewFailedTask.odataType);
    writer.writeStringValue("taskId", previewFailedTask.taskId);
    writer.writeAdditionalData(previewFailedTask.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ProvisioningAttributeMapping The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeProvisioningAttributeMapping(writer, provisioningAttributeMapping = {}, isSerializingDerivedType = false) {
    if (!provisioningAttributeMapping || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowExecutionConditions(writer, provisioningAttributeMapping, isSerializingDerivedType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param ProvisioningObjectWorkflowSubject The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeProvisioningObjectWorkflowSubject(writer, provisioningObjectWorkflowSubject = {}, isSerializingDerivedType = false) {
    if (!provisioningObjectWorkflowSubject || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowSubject(writer, provisioningObjectWorkflowSubject, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("attributeSetEntries", provisioningObjectWorkflowSubject.attributeSetEntries, serializeAttributeSetEntry);
    writer.writeStringValue("id", provisioningObjectWorkflowSubject.id);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param QuarantineCondition The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeQuarantineCondition(writer, quarantineCondition = {}, isSerializingDerivedType = false) {
    if (!quarantineCondition || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", quarantineCondition.odataType);
    writer.writeAdditionalData(quarantineCondition.additionalData);
    switch (quarantineCondition.odataType) {
        case "#microsoft.graph.identityGovernance.countBasedQuarantineCondition":
            serializeCountBasedQuarantineCondition(writer, quarantineCondition, true);
            break;
        case "#microsoft.graph.identityGovernance.percentageBasedQuarantineCondition":
            serializePercentageBasedQuarantineCondition(writer, quarantineCondition, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param QuarantineConfiguration The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeQuarantineConfiguration(writer, quarantineConfiguration = {}, isSerializingDerivedType = false) {
    if (!quarantineConfiguration || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfObjectValues("conditions", quarantineConfiguration.conditions, serializeQuarantineCondition);
    writer.writeEnumValue("matchMode", quarantineConfiguration.matchMode);
    writer.writeStringValue("@odata.type", quarantineConfiguration.odataType);
    writer.writeAdditionalData(quarantineConfiguration.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param QuarantineDetails The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeQuarantineDetails(writer, quarantineDetails = {}, isSerializingDerivedType = false) {
    if (!quarantineDetails || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", quarantineDetails.odataType);
    writer.writeDateValue("quarantinedDateTime", quarantineDetails.quarantinedDateTime);
    writer.writeStringValue("quarantineReason", quarantineDetails.quarantineReason);
    writer.writeEnumValue("quarantineType", quarantineDetails.quarantineType);
    writer.writeAdditionalData(quarantineDetails.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RuleBasedSubjectSet The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRuleBasedSubjectSet(writer, ruleBasedSubjectSet = {}, isSerializingDerivedType = false) {
    if (!ruleBasedSubjectSet || isSerializingDerivedType) {
        return;
    }
    serializeSubjectSet(writer, ruleBasedSubjectSet, isSerializingDerivedType);
    writer.writeStringValue("rule", ruleBasedSubjectSet.rule);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Run The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRun(writer, run = {}, isSerializingDerivedType = false) {
    if (!run || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, run, isSerializingDerivedType);
    writer.writeObjectValue("activatedOnScope", run.activatedOnScope, serializeActivationScope);
    writer.writeDateValue("completedDateTime", run.completedDateTime);
    writer.writeNumberValue("failedTasksCount", run.failedTasksCount);
    writer.writeNumberValue("failedUsersCount", run.failedUsersCount);
    writer.writeDateValue("lastUpdatedDateTime", run.lastUpdatedDateTime);
    writer.writeEnumValue("processingStatus", run.processingStatus);
    writer.writeCollectionOfObjectValues("reprocessedRuns", run.reprocessedRuns, serializeRun);
    writer.writeDateValue("scheduledDateTime", run.scheduledDateTime);
    writer.writeDateValue("startedDateTime", run.startedDateTime);
    writer.writeCollectionOfObjectValues("subjectProcessingResults", run.subjectProcessingResults, serializeSubjectProcessingResult);
    writer.writeNumberValue("successfulUsersCount", run.successfulUsersCount);
    writer.writeCollectionOfObjectValues("taskProcessingResults", run.taskProcessingResults, serializeTaskProcessingResult);
    writer.writeNumberValue("totalTasksCount", run.totalTasksCount);
    writer.writeNumberValue("totalUnprocessedTasksCount", run.totalUnprocessedTasksCount);
    writer.writeNumberValue("totalUsersCount", run.totalUsersCount);
    writer.writeCollectionOfObjectValues("userProcessingResults", run.userProcessingResults, serializeUserProcessingResult);
    writer.writeEnumValue("workflowExecutionType", run.workflowExecutionType);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RunCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRunCollectionResponse(writer, runCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!runCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, runCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", runCollectionResponse.value, serializeRun);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param RunSummary The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeRunSummary(writer, runSummary = {}, isSerializingDerivedType = false) {
    if (!runSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("failedRuns", runSummary.failedRuns);
    writer.writeNumberValue("failedTasks", runSummary.failedTasks);
    writer.writeStringValue("@odata.type", runSummary.odataType);
    writer.writeNumberValue("successfulRuns", runSummary.successfulRuns);
    writer.writeNumberValue("totalRuns", runSummary.totalRuns);
    writer.writeNumberValue("totalTasks", runSummary.totalTasks);
    writer.writeNumberValue("totalUsers", runSummary.totalUsers);
    writer.writeAdditionalData(runSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param SubjectProcessingResult The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSubjectProcessingResult(writer, subjectProcessingResult = {}, isSerializingDerivedType = false) {
    if (!subjectProcessingResult || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, subjectProcessingResult, isSerializingDerivedType);
    writer.writeDateValue("completedDateTime", subjectProcessingResult.completedDateTime);
    writer.writeNumberValue("failedTasksCount", subjectProcessingResult.failedTasksCount);
    writer.writeEnumValue("processingStatus", subjectProcessingResult.processingStatus);
    writer.writeCollectionOfObjectValues("reprocessedRuns", subjectProcessingResult.reprocessedRuns, serializeRun);
    writer.writeDateValue("scheduledDateTime", subjectProcessingResult.scheduledDateTime);
    writer.writeDateValue("startedDateTime", subjectProcessingResult.startedDateTime);
    writer.writeObjectValue("subject", subjectProcessingResult.subject, serializeWorkflowSubject);
    writer.writeCollectionOfObjectValues("taskProcessingResults", subjectProcessingResult.taskProcessingResults, serializeTaskProcessingResult);
    writer.writeNumberValue("totalTasksCount", subjectProcessingResult.totalTasksCount);
    writer.writeNumberValue("totalUnprocessedTasksCount", subjectProcessingResult.totalUnprocessedTasksCount);
    writer.writeEnumValue("workflowExecutionType", subjectProcessingResult.workflowExecutionType);
    writer.writeNumberValue("workflowVersion", subjectProcessingResult.workflowVersion);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param SubjectProcessingResultCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeSubjectProcessingResultCollectionResponse(writer, subjectProcessingResultCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!subjectProcessingResultCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, subjectProcessingResultCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", subjectProcessingResultCollectionResponse.value, serializeSubjectProcessingResult);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Task The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTask(writer, task = {}, isSerializingDerivedType = false) {
    if (!task || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, task, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("arguments", task.arguments, serializeKeyValuePair);
    writer.writeEnumValue("category", task.category);
    writer.writeBooleanValue("continueOnError", task.continueOnError);
    writer.writeStringValue("description", task.description);
    writer.writeStringValue("displayName", task.displayName);
    writer.writeNumberValue("executionSequence", task.executionSequence);
    writer.writeBooleanValue("isEnabled", task.isEnabled);
    writer.writeStringValue("taskDefinitionId", task.taskDefinitionId);
    writer.writeCollectionOfObjectValues("taskProcessingResults", task.taskProcessingResults, serializeTaskProcessingResult);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TaskCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTaskCollectionResponse(writer, taskCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!taskCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, taskCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", taskCollectionResponse.value, serializeTask);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TaskDefinition The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTaskDefinition(writer, taskDefinition = {}, isSerializingDerivedType = false) {
    if (!taskDefinition || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, taskDefinition, isSerializingDerivedType);
    writer.writeEnumValue("category", taskDefinition.category);
    writer.writeBooleanValue("continueOnError", taskDefinition.continueOnError);
    writer.writeStringValue("description", taskDefinition.description);
    writer.writeStringValue("displayName", taskDefinition.displayName);
    writer.writeCollectionOfObjectValues("parameters", taskDefinition.parameters, serializeParameter);
    writer.writeNumberValue("version", taskDefinition.version);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TaskDefinitionCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTaskDefinitionCollectionResponse(writer, taskDefinitionCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!taskDefinitionCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, taskDefinitionCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", taskDefinitionCollectionResponse.value, serializeTaskDefinition);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TaskProcessingResult The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTaskProcessingResult(writer, taskProcessingResult = {}, isSerializingDerivedType = false) {
    if (!taskProcessingResult || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, taskProcessingResult, isSerializingDerivedType);
    writer.writeDateValue("completedDateTime", taskProcessingResult.completedDateTime);
    writer.writeDateValue("createdDateTime", taskProcessingResult.createdDateTime);
    writer.writeStringValue("failureReason", taskProcessingResult.failureReason);
    writer.writeStringValue("processingInfo", taskProcessingResult.processingInfo);
    writer.writeEnumValue("processingStatus", taskProcessingResult.processingStatus);
    writer.writeDateValue("startedDateTime", taskProcessingResult.startedDateTime);
    writer.writeObjectValue("subject", taskProcessingResult.subject, serializeUser);
    writer.writeObjectValue("task", taskProcessingResult.task, serializeTask);
    writer.writeObjectValue("workflowSubject", taskProcessingResult.workflowSubject, serializeWorkflowSubject);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TaskProcessingResultCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTaskProcessingResultCollectionResponse(writer, taskProcessingResultCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!taskProcessingResultCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, taskProcessingResultCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", taskProcessingResultCollectionResponse.value, serializeTaskProcessingResult);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TaskReport The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTaskReport(writer, taskReport = {}, isSerializingDerivedType = false) {
    if (!taskReport || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, taskReport, isSerializingDerivedType);
    writer.writeDateValue("completedDateTime", taskReport.completedDateTime);
    writer.writeNumberValue("failedUsersCount", taskReport.failedUsersCount);
    writer.writeDateValue("lastUpdatedDateTime", taskReport.lastUpdatedDateTime);
    writer.writeEnumValue("processingStatus", taskReport.processingStatus);
    writer.writeStringValue("runId", taskReport.runId);
    writer.writeDateValue("startedDateTime", taskReport.startedDateTime);
    writer.writeNumberValue("successfulUsersCount", taskReport.successfulUsersCount);
    writer.writeObjectValue("task", taskReport.task, serializeTask);
    writer.writeObjectValue("taskDefinition", taskReport.taskDefinition, serializeTaskDefinition);
    writer.writeCollectionOfObjectValues("taskProcessingResults", taskReport.taskProcessingResults, serializeTaskProcessingResult);
    writer.writeNumberValue("totalUsersCount", taskReport.totalUsersCount);
    writer.writeNumberValue("unprocessedUsersCount", taskReport.unprocessedUsersCount);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TaskReportCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTaskReportCollectionResponse(writer, taskReportCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!taskReportCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, taskReportCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", taskReportCollectionResponse.value, serializeTaskReport);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TaskReportSummary The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTaskReportSummary(writer, taskReportSummary = {}, isSerializingDerivedType = false) {
    if (!taskReportSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("failedTasks", taskReportSummary.failedTasks);
    writer.writeStringValue("@odata.type", taskReportSummary.odataType);
    writer.writeNumberValue("successfulTasks", taskReportSummary.successfulTasks);
    writer.writeNumberValue("totalTasks", taskReportSummary.totalTasks);
    writer.writeNumberValue("unprocessedTasks", taskReportSummary.unprocessedTasks);
    writer.writeAdditionalData(taskReportSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TimeBasedAttributeTrigger The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTimeBasedAttributeTrigger(writer, timeBasedAttributeTrigger = {}, isSerializingDerivedType = false) {
    if (!timeBasedAttributeTrigger || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowExecutionTrigger(writer, timeBasedAttributeTrigger, isSerializingDerivedType);
    writer.writeNumberValue("offsetInDays", timeBasedAttributeTrigger.offsetInDays);
    writer.writeEnumValue("timeBasedAttribute", timeBasedAttributeTrigger.timeBasedAttribute);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TopTasksInsightsSummary The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTopTasksInsightsSummary(writer, topTasksInsightsSummary = {}, isSerializingDerivedType = false) {
    if (!topTasksInsightsSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("failedTasks", topTasksInsightsSummary.failedTasks);
    writer.writeNumberValue("failedUsers", topTasksInsightsSummary.failedUsers);
    writer.writeStringValue("@odata.type", topTasksInsightsSummary.odataType);
    writer.writeNumberValue("successfulTasks", topTasksInsightsSummary.successfulTasks);
    writer.writeNumberValue("successfulUsers", topTasksInsightsSummary.successfulUsers);
    writer.writeStringValue("taskDefinitionDisplayName", topTasksInsightsSummary.taskDefinitionDisplayName);
    writer.writeStringValue("taskDefinitionId", topTasksInsightsSummary.taskDefinitionId);
    writer.writeNumberValue("totalTasks", topTasksInsightsSummary.totalTasks);
    writer.writeNumberValue("totalUsers", topTasksInsightsSummary.totalUsers);
    writer.writeAdditionalData(topTasksInsightsSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TopWorkflowsInsightsSummary The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTopWorkflowsInsightsSummary(writer, topWorkflowsInsightsSummary = {}, isSerializingDerivedType = false) {
    if (!topWorkflowsInsightsSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("failedRuns", topWorkflowsInsightsSummary.failedRuns);
    writer.writeNumberValue("failedUsers", topWorkflowsInsightsSummary.failedUsers);
    writer.writeStringValue("@odata.type", topWorkflowsInsightsSummary.odataType);
    writer.writeNumberValue("successfulRuns", topWorkflowsInsightsSummary.successfulRuns);
    writer.writeNumberValue("successfulUsers", topWorkflowsInsightsSummary.successfulUsers);
    writer.writeNumberValue("totalRuns", topWorkflowsInsightsSummary.totalRuns);
    writer.writeNumberValue("totalUsers", topWorkflowsInsightsSummary.totalUsers);
    writer.writeEnumValue("workflowCategory", topWorkflowsInsightsSummary.workflowCategory);
    writer.writeStringValue("workflowDisplayName", topWorkflowsInsightsSummary.workflowDisplayName);
    writer.writeStringValue("workflowId", topWorkflowsInsightsSummary.workflowId);
    writer.writeNumberValue("workflowVersion", topWorkflowsInsightsSummary.workflowVersion);
    writer.writeAdditionalData(topWorkflowsInsightsSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TriggerAndScopeBasedConditions The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTriggerAndScopeBasedConditions(writer, triggerAndScopeBasedConditions = {}, isSerializingDerivedType = false) {
    if (!triggerAndScopeBasedConditions || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowExecutionConditions(writer, triggerAndScopeBasedConditions, isSerializingDerivedType);
    writer.writeObjectValue("scope", triggerAndScopeBasedConditions.scope, serializeSubjectSet);
    writer.writeObjectValue("trigger", triggerAndScopeBasedConditions.trigger, serializeWorkflowExecutionTrigger);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param TriggerAttribute The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeTriggerAttribute(writer, triggerAttribute = {}, isSerializingDerivedType = false) {
    if (!triggerAttribute || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("name", triggerAttribute.name);
    writer.writeStringValue("@odata.type", triggerAttribute.odataType);
    writer.writeAdditionalData(triggerAttribute.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param UserInactivityTrigger The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUserInactivityTrigger(writer, userInactivityTrigger = {}, isSerializingDerivedType = false) {
    if (!userInactivityTrigger || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowExecutionTrigger(writer, userInactivityTrigger, isSerializingDerivedType);
    writer.writeNumberValue("inactivityPeriodInDays", userInactivityTrigger.inactivityPeriodInDays);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param UserProcessingResult The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUserProcessingResult(writer, userProcessingResult = {}, isSerializingDerivedType = false) {
    if (!userProcessingResult || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, userProcessingResult, isSerializingDerivedType);
    writer.writeDateValue("completedDateTime", userProcessingResult.completedDateTime);
    writer.writeNumberValue("failedTasksCount", userProcessingResult.failedTasksCount);
    writer.writeEnumValue("processingStatus", userProcessingResult.processingStatus);
    writer.writeCollectionOfObjectValues("reprocessedRuns", userProcessingResult.reprocessedRuns, serializeRun);
    writer.writeDateValue("scheduledDateTime", userProcessingResult.scheduledDateTime);
    writer.writeDateValue("startedDateTime", userProcessingResult.startedDateTime);
    writer.writeObjectValue("subject", userProcessingResult.subject, serializeUser);
    writer.writeCollectionOfObjectValues("taskProcessingResults", userProcessingResult.taskProcessingResults, serializeTaskProcessingResult);
    writer.writeNumberValue("totalTasksCount", userProcessingResult.totalTasksCount);
    writer.writeNumberValue("totalUnprocessedTasksCount", userProcessingResult.totalUnprocessedTasksCount);
    writer.writeEnumValue("workflowExecutionType", userProcessingResult.workflowExecutionType);
    writer.writeNumberValue("workflowVersion", userProcessingResult.workflowVersion);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param UserProcessingResultCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUserProcessingResultCollectionResponse(writer, userProcessingResultCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!userProcessingResultCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, userProcessingResultCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", userProcessingResultCollectionResponse.value, serializeUserProcessingResult);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param UserSummary The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeUserSummary(writer, userSummary = {}, isSerializingDerivedType = false) {
    if (!userSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("failedTasks", userSummary.failedTasks);
    writer.writeNumberValue("failedUsers", userSummary.failedUsers);
    writer.writeStringValue("@odata.type", userSummary.odataType);
    writer.writeNumberValue("successfulUsers", userSummary.successfulUsers);
    writer.writeNumberValue("totalTasks", userSummary.totalTasks);
    writer.writeNumberValue("totalUsers", userSummary.totalUsers);
    writer.writeAdditionalData(userSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Workflow The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflow(writer, workflow = {}, isSerializingDerivedType = false) {
    if (!workflow || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowBase(writer, workflow, isSerializingDerivedType);
    writer.writeDateValue("deletedDateTime", workflow.deletedDateTime);
    writer.writeCollectionOfObjectValues("executionScope", workflow.executionScope, serializeUserProcessingResult);
    writer.writeStringValue("id", workflow.id);
    writer.writeDateValue("nextScheduleRunDateTime", workflow.nextScheduleRunDateTime);
    writer.writeCollectionOfObjectValues("previewScope", workflow.previewScope, serializeDirectoryObject);
    writer.writeObjectValue("quarantineDetails", workflow.quarantineDetails, serializeQuarantineDetails);
    writer.writeCollectionOfObjectValues("runs", workflow.runs, serializeRun);
    writer.writeObjectValue("settings", workflow.settings, serializeWorkflowSetting);
    writer.writeCollectionOfObjectValues("subjectProcessingResults", workflow.subjectProcessingResults, serializeSubjectProcessingResult);
    writer.writeCollectionOfObjectValues("taskReports", workflow.taskReports, serializeTaskReport);
    writer.writeCollectionOfObjectValues("userProcessingResults", workflow.userProcessingResults, serializeUserProcessingResult);
    writer.writeNumberValue("version", workflow.version);
    writer.writeCollectionOfObjectValues("versions", workflow.versions, serializeWorkflowVersion);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowBase The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowBase(writer, workflowBase = {}, isSerializingDerivedType = false) {
    if (!workflowBase || isSerializingDerivedType) {
        return;
    }
    writer.writeCollectionOfObjectValues("administrationScopeTargets", workflowBase.administrationScopeTargets, serializeDirectoryObject);
    writer.writeEnumValue("category", workflowBase.category);
    writer.writeObjectValue("createdBy", workflowBase.createdBy, serializeUser);
    writer.writeDateValue("createdDateTime", workflowBase.createdDateTime);
    writer.writeStringValue("description", workflowBase.description);
    writer.writeStringValue("displayName", workflowBase.displayName);
    writer.writeObjectValue("executionConditions", workflowBase.executionConditions, serializeWorkflowExecutionConditions);
    writer.writeBooleanValue("isEnabled", workflowBase.isEnabled);
    writer.writeBooleanValue("isSchedulingEnabled", workflowBase.isSchedulingEnabled);
    writer.writeObjectValue("lastModifiedBy", workflowBase.lastModifiedBy, serializeUser);
    writer.writeDateValue("lastModifiedDateTime", workflowBase.lastModifiedDateTime);
    writer.writeStringValue("@odata.type", workflowBase.odataType);
    writer.writeCollectionOfObjectValues("tasks", workflowBase.tasks, serializeTask);
    writer.writeAdditionalData(workflowBase.additionalData);
    switch (workflowBase.odataType) {
        case "#microsoft.graph.identityGovernance.workflow":
            serializeWorkflow(writer, workflowBase, true);
            break;
        case "#microsoft.graph.identityGovernance.workflowVersion":
            serializeWorkflowVersion(writer, workflowBase, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowCollectionResponse(writer, workflowCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!workflowCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, workflowCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", workflowCollectionResponse.value, serializeWorkflow);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowExecutionConditions The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowExecutionConditions(writer, workflowExecutionConditions = {}, isSerializingDerivedType = false) {
    if (!workflowExecutionConditions || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", workflowExecutionConditions.odataType);
    writer.writeAdditionalData(workflowExecutionConditions.additionalData);
    switch (workflowExecutionConditions.odataType) {
        case "#microsoft.graph.identityGovernance.onDemandExecutionOnly":
            serializeOnDemandExecutionOnly(writer, workflowExecutionConditions, true);
            break;
        case "#microsoft.graph.identityGovernance.provisioningAttributeMapping":
            serializeProvisioningAttributeMapping(writer, workflowExecutionConditions, true);
            break;
        case "#microsoft.graph.identityGovernance.triggerAndScopeBasedConditions":
            serializeTriggerAndScopeBasedConditions(writer, workflowExecutionConditions, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowExecutionTrigger The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowExecutionTrigger(writer, workflowExecutionTrigger = {}, isSerializingDerivedType = false) {
    if (!workflowExecutionTrigger || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", workflowExecutionTrigger.odataType);
    writer.writeAdditionalData(workflowExecutionTrigger.additionalData);
    switch (workflowExecutionTrigger.odataType) {
        case "#microsoft.graph.identityGovernance.attributeChangeTrigger":
            serializeAttributeChangeTrigger(writer, workflowExecutionTrigger, true);
            break;
        case "#microsoft.graph.identityGovernance.guestSponsorTrigger":
            serializeGuestSponsorTrigger(writer, workflowExecutionTrigger, true);
            break;
        case "#microsoft.graph.identityGovernance.membershipChangeTrigger":
            serializeMembershipChangeTrigger(writer, workflowExecutionTrigger, true);
            break;
        case "#microsoft.graph.identityGovernance.timeBasedAttributeTrigger":
            serializeTimeBasedAttributeTrigger(writer, workflowExecutionTrigger, true);
            break;
        case "#microsoft.graph.identityGovernance.userInactivityTrigger":
            serializeUserInactivityTrigger(writer, workflowExecutionTrigger, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowSetting The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowSetting(writer, workflowSetting = {}, isSerializingDerivedType = false) {
    if (!workflowSetting || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", workflowSetting.odataType);
    writer.writeObjectValue("quarantineConfiguration", workflowSetting.quarantineConfiguration, serializeQuarantineConfiguration);
    writer.writeAdditionalData(workflowSetting.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowsInsightsByCategory The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowsInsightsByCategory(writer, workflowsInsightsByCategory = {}, isSerializingDerivedType = false) {
    if (!workflowsInsightsByCategory || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("failedJoinerRuns", workflowsInsightsByCategory.failedJoinerRuns);
    writer.writeNumberValue("failedLeaverRuns", workflowsInsightsByCategory.failedLeaverRuns);
    writer.writeNumberValue("failedMoverRuns", workflowsInsightsByCategory.failedMoverRuns);
    writer.writeStringValue("@odata.type", workflowsInsightsByCategory.odataType);
    writer.writeNumberValue("successfulJoinerRuns", workflowsInsightsByCategory.successfulJoinerRuns);
    writer.writeNumberValue("successfulLeaverRuns", workflowsInsightsByCategory.successfulLeaverRuns);
    writer.writeNumberValue("successfulMoverRuns", workflowsInsightsByCategory.successfulMoverRuns);
    writer.writeNumberValue("totalJoinerRuns", workflowsInsightsByCategory.totalJoinerRuns);
    writer.writeNumberValue("totalLeaverRuns", workflowsInsightsByCategory.totalLeaverRuns);
    writer.writeNumberValue("totalMoverRuns", workflowsInsightsByCategory.totalMoverRuns);
    writer.writeAdditionalData(workflowsInsightsByCategory.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowsInsightsSummary The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowsInsightsSummary(writer, workflowsInsightsSummary = {}, isSerializingDerivedType = false) {
    if (!workflowsInsightsSummary || isSerializingDerivedType) {
        return;
    }
    writer.writeNumberValue("failedRuns", workflowsInsightsSummary.failedRuns);
    writer.writeNumberValue("failedTasks", workflowsInsightsSummary.failedTasks);
    writer.writeNumberValue("failedUsers", workflowsInsightsSummary.failedUsers);
    writer.writeStringValue("@odata.type", workflowsInsightsSummary.odataType);
    writer.writeNumberValue("successfulRuns", workflowsInsightsSummary.successfulRuns);
    writer.writeNumberValue("successfulTasks", workflowsInsightsSummary.successfulTasks);
    writer.writeNumberValue("successfulUsers", workflowsInsightsSummary.successfulUsers);
    writer.writeNumberValue("totalRuns", workflowsInsightsSummary.totalRuns);
    writer.writeNumberValue("totalTasks", workflowsInsightsSummary.totalTasks);
    writer.writeNumberValue("totalUsers", workflowsInsightsSummary.totalUsers);
    writer.writeAdditionalData(workflowsInsightsSummary.additionalData);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowSubject The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowSubject(writer, workflowSubject = {}, isSerializingDerivedType = false) {
    if (!workflowSubject || isSerializingDerivedType) {
        return;
    }
    writer.writeStringValue("@odata.type", workflowSubject.odataType);
    writer.writeAdditionalData(workflowSubject.additionalData);
    switch (workflowSubject.odataType) {
        case "#microsoft.graph.identityGovernance.provisioningObjectWorkflowSubject":
            serializeProvisioningObjectWorkflowSubject(writer, workflowSubject, true);
            break;
    }
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowTemplate The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowTemplate(writer, workflowTemplate = {}, isSerializingDerivedType = false) {
    if (!workflowTemplate || isSerializingDerivedType) {
        return;
    }
    serializeEntity(writer, workflowTemplate, isSerializingDerivedType);
    writer.writeEnumValue("category", workflowTemplate.category);
    writer.writeStringValue("description", workflowTemplate.description);
    writer.writeStringValue("displayName", workflowTemplate.displayName);
    writer.writeObjectValue("executionConditions", workflowTemplate.executionConditions, serializeWorkflowExecutionConditions);
    writer.writeCollectionOfObjectValues("tasks", workflowTemplate.tasks, serializeTask);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowTemplateCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowTemplateCollectionResponse(writer, workflowTemplateCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!workflowTemplateCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, workflowTemplateCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", workflowTemplateCollectionResponse.value, serializeWorkflowTemplate);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowVersion The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowVersion(writer, workflowVersion = {}, isSerializingDerivedType = false) {
    if (!workflowVersion || isSerializingDerivedType) {
        return;
    }
    serializeWorkflowBase(writer, workflowVersion, isSerializingDerivedType);
    writer.writeObjectValue("settings", workflowVersion.settings, serializeWorkflowSetting);
    writer.writeNumberValue("versionNumber", workflowVersion.versionNumber);
}
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param WorkflowVersionCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
// @ts-ignore
export function serializeWorkflowVersionCollectionResponse(writer, workflowVersionCollectionResponse = {}, isSerializingDerivedType = false) {
    if (!workflowVersionCollectionResponse || isSerializingDerivedType) {
        return;
    }
    serializeBaseCollectionPaginationCountResponse(writer, workflowVersionCollectionResponse, isSerializingDerivedType);
    writer.writeCollectionOfObjectValues("value", workflowVersionCollectionResponse.value, serializeWorkflowVersion);
}
export const ActivationTaskScopeTypeObject = {
    AllTasks: "allTasks",
    FailedTasks: "failedTasks",
    UnknownFutureValue: "unknownFutureValue",
};
export const ActivationUserScopeTypeObject = {
    AllUsers: "allUsers",
    FailedUsers: "failedUsers",
    UnknownFutureValue: "unknownFutureValue",
};
export const CustomTaskExtensionOperationStatusObject = {
    Completed: "completed",
    Failed: "failed",
    UnknownFutureValue: "unknownFutureValue",
};
export const CustomTaskExtensionReplyModeObject = {
    None: "none",
    Callback: "callback",
    Response: "response",
    UnknownFutureValue: "unknownFutureValue",
};
export const LifecycleTaskCategoryObject = {
    Joiner: "joiner",
    Leaver: "leaver",
    UnknownFutureValue: "unknownFutureValue",
    Mover: "mover",
    Extensibility: "extensibility",
};
export const LifecycleWorkflowCategoryObject = {
    Joiner: "joiner",
    Leaver: "leaver",
    UnknownFutureValue: "unknownFutureValue",
    Mover: "mover",
    Extensibility: "extensibility",
};
export const LifecycleWorkflowProcessingStatusObject = {
    Queued: "queued",
    InProgress: "inProgress",
    Completed: "completed",
    CompletedWithErrors: "completedWithErrors",
    Canceled: "canceled",
    Failed: "failed",
    UnknownFutureValue: "unknownFutureValue",
    Canceling: "canceling",
    Quarantined: "quarantined",
};
export const MatchModeObject = {
    Any: "any",
    All: "all",
    UnknownFutureValue: "unknownFutureValue",
};
export const MembershipChangeTypeObject = {
    Add: "add",
    Remove: "remove",
    UnknownFutureValue: "unknownFutureValue",
};
export const QuarantineTypeObject = {
    NotQuarantined: "notQuarantined",
    CountBasedThresholdExceeded: "countBasedThresholdExceeded",
    PercentageBasedThresholdExceeded: "percentageBasedThresholdExceeded",
    MultipleConditionsExceeded: "multipleConditionsExceeded",
    UnknownFutureValue: "unknownFutureValue",
};
export const ValueTypeObject = {
    EnumEscaped: "enum",
    String: "string",
    Int: "int",
    Bool: "bool",
    UnknownFutureValue: "unknownFutureValue",
};
export const WorkflowExecutionTypeObject = {
    Scheduled: "scheduled",
    OnDemand: "onDemand",
    UnknownFutureValue: "unknownFutureValue",
    ActivatedWithScope: "activatedWithScope",
    Preview: "preview",
    ExtensibilityOnDemand: "extensibilityOnDemand",
};
export const WorkflowTriggerTimeBasedAttributeObject = {
    EmployeeHireDate: "employeeHireDate",
    EmployeeLeaveDateTime: "employeeLeaveDateTime",
    UnknownFutureValue: "unknownFutureValue",
    CreatedDateTime: "createdDateTime",
};
/* tslint:enable */
/* eslint-enable */
//# sourceMappingURL=index.js.map