From The Open Source Backup Wiki (Amanda, MySQL Backup, BackupPC)
The implementation of the Application API will be done in many phases. As of release-2.6.1, phase 3 is largely completed.
Phase 1: Application API that is unaware of collections
a- tape header change b- Small change to the protocol to allow the server to send Application API information to the client. c- modify selfcheck/sendsize/sendbackup/amrecover to use the Application API d- amrecover/amidxtaped
support --message=line --index=line
Phase 2: Tool definition in amanda.conf and amanda-client.conf
a- conffile b- protocol change to send tool property to plugins, <XML> for REQ packet
Phase 3: new format for message in selfcheck/sendsize/sendbackup (XML)
a- Change in selfcheck/sendsize/sendbackup b- Change in amcheck/planner/dumper
Phase 4: Object user index content attribute
a- new XML index format b- amindexd - sort and parse new index format c- protocol between amindexd and amrecover to send attribute d- amrecover - can display attribute.
Phase 5: Allow collection in data stream
a- the index will contains information about collection
data stream should not be filtered (compression/encryption), otherwise, we can recover a single collection.
Phase 6: amrestore/amfetchdump can restore only one collection instead of a complete data stream
Phase 7: amrecover understand collection
a- amindexd send collection information to amrecover b- amrecover send collection information to amidxtaped. c- amidxtaped send only the needed collection
Phase 8: filter each collection separately
a- a new filter must be executed for each collection