def create_from_discriminator_value(parse_node: ParseNode) -> RestoreArtifactsBulkRequestBase:
        """
        Creates a new instance of the appropriate class based on discriminator value
        param parse_node: The parse node to use to read the discriminator value and create the object
        Returns: RestoreArtifactsBulkRequestBase
        """
        if parse_node is None:
            raise TypeError("parse_node cannot be null.")
        try:
            child_node = parse_node.get_child_node("@odata.type")
            mapping_value = child_node.get_str_value() if child_node else None
        except AttributeError:
            mapping_value = None
        if mapping_value and mapping_value.casefold() == "#microsoft.graph.driveRestoreArtifactsBulkAdditionRequest".casefold():
            from .drive_restore_artifacts_bulk_addition_request import DriveRestoreArtifactsBulkAdditionRequest

            return DriveRestoreArtifactsBulkAdditionRequest()
        if mapping_value and mapping_value.casefold() == "#microsoft.graph.mailboxRestoreArtifactsBulkAdditionRequest".casefold():
            from .mailbox_restore_artifacts_bulk_addition_request import MailboxRestoreArtifactsBulkAdditionRequest

            return MailboxRestoreArtifactsBulkAdditionRequest()
        if mapping_value and mapping_value.casefold() == "#microsoft.graph.siteRestoreArtifactsBulkAdditionRequest".casefold():
            from .site_restore_artifacts_bulk_addition_request import SiteRestoreArtifactsBulkAdditionRequest

            return SiteRestoreArtifactsBulkAdditionRequest()
        return RestoreArtifactsBulkRequestBase()

        Creates a new instance of the appropriate class based on discriminator value
        param parse_node: The parse node to use to read the discriminator value and create the object
        Returns: RestoreArtifactsBulkRequestBase
        
msgraph/generated/models/restore_artifacts_bulk_request_base.py