Scalable Tape Library REST API Guide
Scalable Tape Library REST API Guide
Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1. Version information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Contact information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3. URI scheme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4. Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.5. Consumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.6. Produces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.7. General REST API Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.8. How To Use the REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.9. Synonyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1. Get the current REST API version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2. Login Request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. User Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1. User Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2. User Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.3. User List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.4. User Modify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.5. Password Policies Modify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.6. Password Policies List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3. Library Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1. Get physical libary information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2. Get physical component information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3. Get Date and Time relevant info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.4. Get list of recent events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.5. Inventory of physical library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.6. Mailslot Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.7. License List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.8. Get library logs dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.9. List of media. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.10. Network Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.11. Get physical library status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4. Library Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.1. Inventory scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.2. Open Mailslot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.3. Move a cartridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4.4. Shut down the library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.5. Reboot the libary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5. Library Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5.1. Set Date and Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5.2. Set SNTP for Date and Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5.3. Set Timezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.5.4. Mailslot Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.5.5. Import License key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.5.6. Change MAC of the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5.7. Change MAC and/or WWN of the Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5.8. Set network settings per interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.5.9. Set a hostname and/or domainname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.5.10. Reset the Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.5.11. Restore a library configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.12. Get library configuration as file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.13. Set library serial number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.14. Upgrade Library SW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.5.15. Change WWN of the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.5.16. Set the global SNMP configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.5.17. Get SNMP configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.5.18. Get SNMP MIB zip file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5.19. Add SNMP trap target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5.20. Delete SNMP trap target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.6. Library Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.6.1. Abort Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.6.2. Element to Element Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.6.3. Position Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.6.4. Robotic Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.6.5. Slot to Slot Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.6.6. Test Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.6.7. System (Demo) Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.7. Drive Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.7.1. Get drive information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.8. Drive Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8.1. Upgrade Drive FW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8.2. Drive Power Off. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.8.3. Drive Power On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.8.4. Drive Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.9. Partition Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.9.1. Get partition (Logical Library) information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.9.2. Inventory of a partition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.9.3. List of media of a partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.10. Partition Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.10.1. Create partitions in simple mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.11. Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.1. BaseInfoData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.2. BaseStatusData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.3. ComponentBarcodeReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.4. ComponentBaseController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.5. ComponentDrive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.6. ComponentDriveSled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.7. ComponentExpansionController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.8. ComponentInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.9. ComponentModule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.10. ComponentOCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.11. ComponentPowerBoard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.12. ComponentPowerSupply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.13. ComponentRobot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.14. DriveInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.15. DriveInfoInventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.16. Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.17. EventEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.18. GetDateTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.19. GetSnmpConfigSchema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.20. GetSnmpTargetsSchema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.21. IOStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.22. Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.23. LibraryInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.24. LibraryStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.25. LicenseInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.26. MediaInfoData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.27. Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.28. ModuleStatusData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.29. Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.30. Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.31. PartitionInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.32. Slot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.33. SystemStateInformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.34. TestStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.35. Timezones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.36. UserListInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.37. UserPasswordPolicies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4. Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.1. UserSecurity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.2. AdminSecurity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3. SecuritySecurity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.4. ServiceSecurity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
© BDT Storage GmbH
Chapter 1. Overview
A simple API to manage the Scalable Tape Libraries remotely over a HTTPS interface. This is
requested and needed for manufacturing and for automated test / monitoring systems.
1.4. Tags
• System : System requests
1.5. Consumes
• application/json
1.6. Produces
• application/json
Protocol HTTPS
Port 3031
Certificate Self-Signed
1. Login to the system with the POST command URL [Link] where the
username and password must be sent as content in JSON format (application/json).
Example Content:
{
"username" : "administrator",
"password" : "password"
}
2. If the login was successful a Bearer token will be returned like: "Bearer
eyJ0eXAiOiJKV1QiLCJhb….zRcVud3c"
3. The returned Bearer token must be added as the "Authorization" header value to the REST calls
which have a security check.
Authorization: Bearer token
NOTE: If the token is invalid or the login was invalid a 401 HTTP error will be returned.
CURL Examples:
1.9. Synonyms
To generalize the document and to support different wording in different environments the
following synonyms are used in this specification
Chapter 2. Resources
2.1. System
System requests
GET /apiversion
Description
Responses
HTTP
Description Schema
Code
200 OK GetApiVersion
GetApiVersion
Name Schema
version
string
required
Response 200
{
"version" : "1.1.10"
}
POST /login
2.1. System | 4
© BDT Storage GmbH
Description
*Required* Initial request to get authenticated against the tape library. The user roles/names of the
library are used. This API command returns after a successful authentication an session based
Bearer token, which has to be attached in the "Authorization" header of every following API
command during a session.
Parameters
PostAuth
password
Example : "password" string
required
Responses
HTTP
Description Schema
Code
201 Login request was successful and session token is generated Response 201
Response 201
Name Schema
token
string
required
Consumes
• application/json
Response 201
{
"status" : "ok",
"token" : "Bearer
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjEwMDg5OSwiZXhwIjoxMDgwOTksIlVST0xFIjoyL
CJqaXQiOiI0NmEzOTBiZDcwMTA5Y2ViYjk0MzExNTQ2YjkxYjI3ZXQyM2Y1Y2hhYmE5bnNpdTQ3bnU3cXI1a3Q
zMDAwMThhMjM2ZDQ5MDYuNTg2OTc4MTcifQ.DrCpCaX0jMwREFRYmSHazGY7wOs6QfGzRcVud3cDjA0"
}
PUT /user/add
Description
With this command the a new user can be added to the system
Parameters
PutDataUserAdd
enum (USER,
userRole User Role for the user, for e.g. ADMINISTRATOR
ADMINISTRATOR,
required Example : "ADMINISTRATOR"
SECURITY)
Responses
HTTP
Description Schema
Code
200 The user was added successfully No Content
Security
Type Name
apiKey AdminSecurity
apiKey ServiceSecurity
apiKey SecuritySecurity
DELETE /user/delete
Description
With this command a user can be removed from the system (at least one local administrator must
be kept SYSTEM or CUSTOM)
Parameters
DeleteDataUser
userType User type can be system (system default users) or custom enum (SYSTEM,
required added user CUSTOM)
Responses
HTTP
Description Schema
Code
200 The user was successfully deleted No Content
Security
Type Name
apiKey AdminSecurity
Type Name
apiKey ServiceSecurity
apiKey SecuritySecurity
GET /user/list
Description
With this command the users from the system can be listed
Parameters
Name
Query Filter by Username (CSV supported) < string > array(csv)
optional
Responses
HTTP
Description Schema
Code
< UserListInfo >
200 OK
array
HTTP
Description Schema
Code
401 Access denied - not authenticated No Content
Security
Type Name
apiKey AdminSecurity
apiKey ServiceSecurity
apiKey SecuritySecurity
Response 200
[ {
"Id" : 8,
"Type" : "CUSTOM",
"Name" : "AdminCustom",
"State" : "ENABLED",
"Role" : "ADMINISTRATOR",
"LastLoginTime" : "2021-10-05T[Link]Z",
"PwdChangedTime" : "2021-10-05T[Link]Z",
"FailedLgiCnt" : 1
}, {
"Id" : 9,
"Type" : "CUSTOM",
"Name" : "AdminCustom2",
"State" : "ENABLED",
"Role" : "ADMINISTRATOR",
"LastLoginTime" : "null",
"PwdChangedTime" : "null",
"FailedLgiCnt" : 0
} ]
POST /user/modify
Description
Parameters
PostUserModify
password
new password for the user string
required
Responses
HTTP
Description Schema
Code
200 The user password was successfully changed No Content
Security
Type Name
apiKey AdminSecurity
Type Name
apiKey ServiceSecurity
apiKey SecuritySecurity
POST /user/pwdpolicies
Description
Parameters
PostUserPwdPolicies
Responses
HTTP
Description Schema
Code
200 OK No Content
Security
Type Name
apiKey AdminSecurity
apiKey ServiceSecurity
apiKey SecuritySecurity
GET /user/pwdpolicies
Description
With this command the password policies for the system can be listed
Responses
HTTP
Description Schema
Code
UserPasswordPoli
200 OK
cies
Security
Type Name
apiKey AdminSecurity
apiKey ServiceSecurity
apiKey SecuritySecurity
Response 200
{
"MinNumOfChars" : 8,
"MinNumOfUpperCaseChars" : 1,
"MinNumOfLowerCaseChars" : 1,
"MinNumOfNumericChars" : 1,
"MinNumOfSpecialChars" : 0,
"MaxNumOfConsecutiveChars" : 2,
"MaxNumOfFailedLogins" : 3,
"MaxNumOfDaysBeforeMustChange" : 2,
"MinNumOfDaysBeforeCanChange" : 1,
"NumOfPwdChangesBeforeUseAgain" : 6
}
GET /library/baseinfo
Description
The "baseinfo" command returns information about the physical tape library like serial number,
MAC address and other useful data
Responses
HTTP
Description Schema
Code
200 OK LibraryInfo
Security
Type Name
apiKey UserSecurity
Response 200
{
"BaseInfo" : {
"SerialNumber" : "DE00000000",
"MacAdress_1" : "[Link]",
"MacAdress_2" : "",
"Vendor" : "VENDOR",
"ProductID" : "ProductID",
"BaseFWRevision" : "SSx1",
"BaseFWBuildDate" : "2017-02-20",
"ExpansionFWRevision" : "0.20",
"WWNodeName" : "5001000000000000",
"RoboticHWRevision" : "4",
"RoboticFWRevision" : "0.10",
"RoboticSerialNumber" : "564EA000103",
"NoOfModules" : 7,
"LibraryType" : "32"
},
"ModulesInfo" : [ {
"PhysicalNumber" : 1,
"LogicalNumber" : 1,
"ReadyStatus" : true,
"SerialNumber" : "DE56400022",
"LCMTemp" : 29,
"CPUTemp" : 39
}, {
"PhysicalNumber" : 2,
"LogicalNumber" : 2,
"ReadyStatus" : true,
"SerialNumber" : "DE56400041",
"LCMTemp" : 26,
"CPUTemp" : 41
}, {
"PhysicalNumber" : 3,
"LogicalNumber" : 3,
"ReadyStatus" : true,
"SerialNumber" : "DE56400040",
"LCMTemp" : 28,
"CPUTemp" : 39
}, {
"PhysicalNumber" : 4,
"LogicalNumber" : 4,
"ReadyStatus" : true,
"SerialNumber" : "",
"LCMTemp" : 60,
"CPUTemp" : 67
}, {
"PhysicalNumber" : 5,
"LogicalNumber" : 5,
"ReadyStatus" : true,
"SerialNumber" : "DE56400045",
"LCMTemp" : 32,
"CPUTemp" : 31
}, {
"PhysicalNumber" : 6,
"LogicalNumber" : 6,
"ReadyStatus" : true,
"SerialNumber" : "DE56400042",
"LCMTemp" : 40,
"CPUTemp" : 35
}, {
"PhysicalNumber" : 7,
"LogicalNumber" : 7,
"ReadyStatus" : true,
"SerialNumber" : "DE564000XX",
"LCMTemp" : 30,
"CPUTemp" : 39
} ]
}
GET /library/componentinfo
Description
Parameters
MFGSerialNu
Filter by Manufacturing Serial Number of the
Query mber < string > array(csv)
Drive component (CSV supported)
optional
ModulePhysic
Filter by the physical location of the module the < integer >
Query alLocation
component is in (CSV supported) array(csv)
optional
ModuleLogica
Filter by the logical number of the module the < integer >
Query lNumber
component is in (CSV supported) array(csv)
optional
HardwareRev
Filter by the hardware revision of the
Query ision < string > array(csv)
component (CSV supported)
optional
FirmwareRevi
Filter by the firmware revision of the
Query sion < string > array(csv)
component (CSV supported)
optional
LogicalNumbe
Filter by the logical number of the component < integer >
Query r
(CSV supported) array(csv)
optional
PhysicalLocati
Filter by the physical location of the component < integer >
Query on
(CSV supported) array(csv)
optional
Present
Query Filter components by present status boolean
optional
Responses
HTTP
Description Schema
Code
200 OK ComponentInfo
HTTP
Description Schema
Code
401 Access denied - not authenticated No Content
Security
Type Name
apiKey UserSecurity
Response 200
{
"ComponentInfo" : {
"BaseController" : {
"SerialNumber" : "SKAH2209335486",
"HardwareRevision" : "B100",
"FirmwareRevision" : "1.0.0-0008",
"ModulePhysicalLocation" : 5,
"LogicalNumber" : 1,
"CPUTemp" : 61,
"LCMTemp" : 55,
"WWN" : "5000E111E0000000",
"Present" : true
},
"ExpansionControllers" : [ {
"SerialNumber" : "SKAK2217200303",
"HardwareRevision" : "E000",
"FirmwareRevision" : "0.04",
"ModulePhysicalLocation" : 6,
"LogicalNumber" : 2,
"CPUTemp" : 33,
"LCMTemp" : 25,
"Present" : true
} ],
"RoboticAssembly" : {
"SerialNumber" : "nonenonenone",
"HardwareRevision" : "6",
"FirmwareRevision" : "0.03",
"Temperature" : 34,
"BarcodeReader" : {
"HardwareRevision" : "SE-625",
"FirmwareRevision" : "PAAAMC00-002-N09D0"
}
},
"PowerBoards" : [ {
"ModulePhysicalLocation" : 3,
"ModuleLogicalNumber" : 1,
"HardwareRevision" : "SFLH1713006343+24VOR01",
"Status" : "OK",
"Present" : true,
"PowerBoardType" : "24V"
}, {
"ModulePhysicalLocation" : 4,
"ModuleLogicalNumber" : 2,
"HardwareRevision" : "SFLH1713006343+24VOR01",
"Status" : "OK",
"Present" : true,
"PowerBoardType" : "24V"
} ],
"PowerSupplies" : [ {
"LogicalNumber" : 1,
"PowerStatus" : "OK",
"PowerSupply1Present" : true,
"PowerSupply2Present" : false
}, {
"LogicalNumber" : 2,
"PowerStatus" : "OK",
"PowerSupply1Present" : true,
"PowerSupply2Present" : false
} ],
"BaseModule" : {
"SerialNumber" : "DE13782986",
"PhysicalLocation" : 4,
"LogicalNumber" : 2,
"LCMTemp" : 59,
"CPUTemp" : 66,
"UnitLockPresent" : true,
"ChassisFanPresent" : false,
"Present" : true
},
"ExpansionModules" : [ {
"SerialNumber" : "DE13937657",
"PhysicalLocation" : 3,
"LogicalNumber" : 1,
"LCMTemp" : 27,
"CPUTemp" : 36,
"UnitLockPresent" : false,
"ChassisFanPresent" : false,
"Present" : true
} ],
"DriveSleds" : [ {
"SerialNumber" : "000000005B",
"ModulePhysicalLocation" : 3,
"ModuleLogicalNumber" : 1,
"FirmwareRevision" : "05",
"PhysicalLocation" : 9,
"LogicalNumber" : 1,
"FanLevel" : 83,
"Present" : true
}, {
"SerialNumber" : "000000016B",
"ModulePhysicalLocation" : 4,
"ModuleLogicalNumber" : 2,
"FirmwareRevision" : "05",
"PhysicalLocation" : 11,
"LogicalNumber" : 2,
"Present" : false
} ],
"Drives" : [ {
"SerialNumber" : "0000000056",
"MFGSerialNumber" : "1013000167",
"HardwareRevision" : "ULT3580-HH7",
"FirmwareRevision" : "N9M1",
"ModulePhysicalLocation" : 3,
"ModuleLogicalNumber" : 1,
"PhysicalLocation" : 9,
"LogialNumber" : 1,
"Vendor" : "IBM",
"Temperature" : 39,
"ErrorState" : false,
"ADTMode" : "IADT",
"PortASignal" : true,
"PortBSignal" : false,
"PortASpeed" : 8,
"PortBSpeed" : 0,
"DriveReady" : true,
"WWN" : "5001000000000056",
"PortAWWN" : "5001000000000057",
"PortBWWN" : "5001000000000058",
"Present" : true
} ],
"OCP" : {
"SerialNumber" : "SFLN1722100273",
"FirmwareRevision" : "V5.63 r0 / V1.5"
}
}
}
GET /library/datetime
Description
Responses
HTTP
Description Schema
Code
200 OK GetDateTime
Security
Type Name
apiKey UserSecurity
apiKey AdminSecurity
Response 200
{
"DateTimeUtc" : "2022-04-04T[Link]Z",
"Timezone" : "Europe/Berlin",
"SntpEnabled" : true,
"SntpAddress" : "[Link]"
}
GET /library/getevents
Description
Based on the "EventType" this request returns a list of the recent events. The event types are
"Ticket"
"Info"
"Config"
"Service"
The number of returns can be limited by the parameter "MaxNum". To include already closed
Tickets add "IncClosed" param.
Parameters
IncClosed
Query The closed state of the ticket. enum (true, false) "false"
optional
enum (CRITICAL,
Severity
Query Filter by severity WARNING,
optional
CONFIG, INFO)
Details
Query Include detail information of ticket. enum (true, false) "true"
optional
Responses
HTTP
Description Schema
Code
< EventEntry >
200 OK
array
Security
Type Name
apiKey UserSecurity
Response 200
[ {
"Number" : 33,
"TimeStamp" : "2017_03_23T[Link]Z",
"EventCode" : 9003,
"Severity" : "INFO",
"Component" : "ROBOTICS",
"ComponentID" : 1,
"Text" : "Move media command was executed",
"State" : "TICKET_PENDING",
"Closed" : false,
"Details" : {
"LEVEL_1" : {
"SRC_ELEM_ADDR" : "2.40 (160)",
"SRC_ELEM_TYPE" : "STE (2)",
"DST_ELEM_ADDR" : "1.39 (119)",
"DST_ELEM_TYPE" : "STE (2)",
"MCHG_MEDI_PVT" : "CH1174L8",
"SYS_COMPONENT" : "ROBOTICS",
"PHY_NUM" : 1,
"TYPE" : "ACCESS"
}
}
}, {
"Number" : 32,
"TimeStamp" : "2017_03_23T[Link]Z",
"EventCode" : 9028,
"Severity" : "INFO",
"Component" : "STACK",
"ComponentID" : 1,
"Text" : "Configuration backup to base module was successful",
"State" : "TICKET_PENDING",
"Closed" : false,
"Details" : {
"LEVEL_1" : {
"SEVERITY" : "INFO",
"SYS_COMPONENT" : "STACK",
"PHY_NUM" : 1
}
}
}, {
"Number" : 31,
"TimeStamp" : "2017_03_23T[Link]Z",
"EventCode" : 9026,
"Severity" : "INFO",
"Component" : "SYSTEM",
"ComponentID" : 1,
"Text" : "Library test successfully finished",
"State" : "TICKET_PENDING",
"Closed" : false,
"Details" : {
"LEVEL_1" : {
"CMD_NAME" : "SLOT_TO_SLOT_TEST",
"CMD_INITIATOR" : "RMI_GUI_CTRL",
"PARAM1" : 1,
"USER_NAME" : "administrator",
"USER_REMOTE_IP" : "[Link]",
"PHY_NUM" : 1,
"SYS_COMPONENT" : "SYSTEM",
"CYCLE_COUNT" : 1,
"TARGETCYCLE_COUNT" : 1,
"START_TIME" : "27.02.2023 [Link]",
"END_TIME" : "27.02.2023 [Link]",
"USER_ROLE" : "ADMINISTRATOR",
"LOGIN_USER_METHOD" : "LOCAL",
"LOGIN_INTERFACE" : "RMI",
"TYPE" : "ACCESS"
}
}
}, {
"Number" : 30,
"TimeStamp" : "2017_03_23T[Link]Z",
"EventCode" : 9003,
"Severity" : "INFO",
"Component" : "ROBOTICS",
"ComponentID" : 1,
"Text" : "Move media command was executed",
"State" : "TICKET_PENDING",
"Closed" : false,
"Details" : {
"LEVEL_1" : {
"SRC_ELEM_ADDR" : "1.39 (119)",
"SRC_ELEM_TYPE" : "STE (2)",
"DST_ELEM_ADDR" : "2.40 (160)",
"DST_ELEM_TYPE" : "STE (2)",
"MCHG_MEDI_PVT" : "CH1174L8",
"SYS_COMPONENT" : "ROBOTICS",
"PHY_NUM" : 1,
"TYPE" : "ACCESS"
}
}
}, {
"Number" : 29,
"TimeStamp" : "2017_03_23T[Link]Z",
"EventCode" : 9003,
"Severity" : "INFO",
"Component" : "ROBOTICS",
"ComponentID" : 1,
"Text" : "Move media command was executed",
"State" : "TICKET_RESOLVED",
"Closed" : false,
"Details" : {
"LEVEL_1" : {
"SRC_ELEM_ADDR" : "2.40 (160)",
"SRC_ELEM_TYPE" : "STE (2)",
"DST_ELEM_ADDR" : "1.39 (119)",
"DST_ELEM_TYPE" : "STE (2)",
"MCHG_MEDI_PVT" : "CH1174L8",
"SYS_COMPONENT" : "ROBOTICS",
"PHY_NUM" : 1,
"TYPE" : "ACCESS"
}
}
} ]
GET /library/inventory
Description
Returns the inventory of the physical library including slots, drives and mailslots. It also returns the
corresponding metadata which belongs to the different types of the elements
Responses
HTTP
Description Schema
Code
200 OK Inventory
Security
Type Name
apiKey UserSecurity
Response 200
{
"Slots" : [ {
"PhysicalNumber" : 1,
"LogicalNumber" : "1.1",
"Module" : 1,
"Partition" : 1,
"Mailslot" : false,
"Cartridge" : false,
"CartridgeType" : "N/A",
"CartridgeSubType" : 0,
"Access" : true,
"Blocked" : true
}, {
"PhysicalNumber" : 2,
"LogicalNumber" : "1.2",
"Module" : 1,
"Partition" : 1,
"Mailslot" : false,
"Cartridge" : false,
"CartridgeType" : "N/A",
"CartridgeSubType" : 0,
"Access" : true,
"Blocked" : false
}, {
"PhysicalNumber" : 3,
"LogicalNumber" : "1.3",
"Module" : 1,
"Partition" : 1,
"Mailslot" : false,
"Cartridge" : true,
"Barcode" : "TT0013L4",
"CartridgeType" : "Data",
"CartridgeSubType" : 0,
"CartridgeGeneration" : 4,
"CartridgeEncrypted" : false,
"Access" : true,
"Blocked" : false
}, { }, {
"PhysicalNumber" : 280,
"LogicalNumber" : "7.40",
"Module" : 7,
"Partition" : 0,
"Mailslot" : true,
"Cartridge" : false,
"CartridgeType" : "N/A",
"CartridgeSubType" : 0,
"Access" : true,
"Blocked" : false
} ],
"Drives" : [ {
"PhysicalNumber" : 10,
"LogicalNumber" : 1,
"Partition" : 0,
"Vendor" : "VENDOR ",
"Product" : "Ultrium 7-SCSI ",
"FWRevision" : "ABCD",
"SerialNumber" : "1234567890"
}, {
"PhysicalNumber" : 11,
"LogicalNumber" : 2,
"Partition" : 0,
"Vendor" : "VENDOR ",
"Product" : "Ultrium 7-SCSI ",
"FWRevision" : "ABCD",
"SerialNumber" : "1234567891"
}, {
"PhysicalNumber" : 12,
"LogicalNumber" : 3,
"Partition" : 0,
"Vendor" : "VENDOR ",
"Product" : "Ultrium 7-SCSI ",
"FWRevision" : "ABCD",
"SerialNumber" : "1234567892"
}, {
"PhysicalNumber" : 20,
"LogicalNumber" : 4,
"Partition" : 0,
"Vendor" : "",
"Product" : "",
"FWRevision" : "",
"SerialNumber" : ""
} ]
}
GET /library/io/status
Description
Responses
HTTP
Description Schema
Code
200 OK < IOStatus > array
HTTP
Description Schema
Code
401 Access denied - not authenticated No Content
Security
Type Name
apiKey UserSecurity
Response 200
[ {
"ModuleNo" : 7,
"Configured" : false,
"OpenStatus" : false,
"Unlocked" : false
}, {
"ModuleNo" : 6,
"Configured" : false,
"OpenStatus" : false,
"Unlocked" : false
}, {
"ModuleNo" : 5,
"Configured" : true,
"OpenStatus" : false,
"Unlocked" : false
}, {
"ModuleNo" : 4,
"Configured" : true,
"OpenStatus" : false,
"Unlocked" : false
}, {
"ModuleNo" : 3,
"Configured" : false,
"OpenStatus" : false,
"Unlocked" : false
}, {
"ModuleNo" : 2,
"Configured" : false,
"OpenStatus" : false,
"Unlocked" : false
}, {
"ModuleNo" : 1,
"Configured" : false,
"OpenStatus" : false,
"Unlocked" : false
} ]
GET /library/license
Description
Responses
HTTP
Description Schema
Code
< LicenseInfo >
200 OK
array
Security
Type Name
apiKey AdminSecurity
GET /library/logs
Description
Generates and returns a log file from the stack in binary format "application/octet-stream". Other
responses are returned as "application/json"
Responses
HTTP
Description Schema
Code
200 OK file (binary)
Produces
• application/json
• application/octet-stream
Security
Type Name
apiKey AdminSecurity
GET /library/mediainfo
Description
Returns the list of media which are located in the library including detailed information about
them
Responses
HTTP
Description Schema
Code
< MediaInfoData >
200 OK
array
Security
Type Name
apiKey UserSecurity
Response 200
[ {
"Barcode" : "TC070ML5",
"LocationType" : "SLOT",
"LogicalNumber" : "2.34",
"PhysicalNumber" : 74,
"Cleaning" : false,
"Partition" : 1,
"Generation" : 5,
"SubType" : 0,
"Protection" : false,
"Encryption" : false,
"NoLoads" : 148,
"MBRead" : 153,
"MBReadLoad" : 150,
"MBWritten" : 226,
"MBWrittenLoad" : 226
}, {
"Barcode" : "000113L5",
"LocationType" : "SLOT",
"LogicalNumber" : "3.4",
"PhysicalNumber" : 84,
"Cleaning" : false,
"Partition" : 1,
"Generation" : 5,
"SubType" : 0,
"Protection" : false,
"Encryption" : false,
"NoLoads" : 11,
"MBRead" : 0,
"MBReadLoad" : 0,
"MBWritten" : 14,
"MBWrittenLoad" : 14
}, {
"Barcode" : "TC084ML5",
"LocationType" : "SLOT",
"LogicalNumber" : "3.28",
"PhysicalNumber" : 108,
"Cleaning" : false,
"Partition" : 2,
"Generation" : 5,
"SubType" : 0,
"Protection" : true,
"Encryption" : false,
"NoLoads" : 64,
"MBRead" : 1643,
"MBReadLoad" : 1603,
"MBWritten" : 943,
"MBWrittenLoad" : 943
} ]
GET /library/network
Description
Responses
HTTP
Description Schema
Code
200 OK Network
Security
Type Name
apiKey UserSecurity
apiKey AdminSecurity
Response 200
[ {
"General" : {
"Hostname" : "TL-563138",
"Domainname" : "[Link]"
}
}, {
"Status" : [ {
"Interface" : "eth0",
"MacAddress" : "[Link]",
"IPv4" : "[Link]",
"IPv4Netmask" : "[Link]",
"IPv4Gateway" : "[Link]",
"IPv6" : "fe80::a8bb:ccff:fedd:eef1",
"IPv6Prefix" : 64,
"IPv6Gateway" : "fe80::250:ddff:feb4:7237",
"LinkSpeed" : 1000,
"Link" : true,
"Duplex" : true
}, {
"Interface" : "eth1",
"MacAddress" : "[Link]",
"IPv6Prefix" : 0,
"Link" : false,
"Duplex" : false
} ]
}, {
"Config" : [ {
"Interface" : "eth0",
"Enabled" : true,
"Protocol" : "IPv4/IPv6",
"IPv4Method" : "DHCP",
"IPv4" : "[Link]",
"IPv4Netmask" : "[Link]",
"IPv6Method" : "STATELESS",
"IPv6" : "::0",
"IPv6Prefix" : 64,
"LinkSpeed" : 1000
}, {
"Interface" : "eth1",
"Enabled" : true,
"Protocol" : "IPv4",
"IPv4Method" : "DHCP",
"IPv6Method" : "STATIC",
"IPv6Prefix" : 64,
"LinkSpeed" : 1000
} ]
} ]
GET /library/status
Description
The "status" command returns the live status of the physical library like health, number of moves
and other live data
Responses
HTTP
Description Schema
Code
200 OK LibraryStatus
Security
Type Name
apiKey UserSecurity
Response 200
{
"BaseStatus" : {
"Information" : "Idle",
"RobStatus" : "Idle",
"MoveCount" : 1,
"PowerUpCount" : 10,
"PowerOnTime" : "16 days, 3 hours, 2 minutes",
"LibHealth" : "WARNING"
},
"ModulesStatus" : [ {
"PhysicalNumber" : 1,
"LogicalNumber" : 1,
"Health" : "OK"
}, {
"PhysicalNumber" : 2,
"LogicalNumber" : 2,
"Health" : "OK"
}, {
"PhysicalNumber" : 3,
"LogicalNumber" : 3,
"Health" : "OK"
}, {
"PhysicalNumber" : 4,
"LogicalNumber" : 4,
"Health" : "OK"
}, {
"PhysicalNumber" : 5,
"LogicalNumber" : 5,
"Health" : "OK"
}, {
"PhysicalNumber" : 6,
"LogicalNumber" : 6,
"Health" : "OK"
}, {
"PhysicalNumber" : 7,
"LogicalNumber" : 7,
"Health" : "OK"
} ]
}
POST /library/inventory
Description
Responses
HTTP
Description Schema
Code
200 OK No Content
Security
Type Name
apiKey AdminSecurity
POST /library/io/open
Description
This command sends a request to open a mailslot. The mailslot block which is addressed has to be
configured as mailslot first. The mailslot stays open for a defined time and will be locked
automatically after this time. The status of the mailslot can be retrieved by issuing the IO/status
request
Parameters
PostLibraryIoOpen
Responses
HTTP
Description Schema
Code
200 The mailslot open was successful No Content
Security
Type Name
apiKey AdminSecurity
POST /library/movemedia
Description
Parameters
PostLibraryMoveMedia
SrcAddress
Example : "1.2" string
required
DestType
Example : "DRIVE" enum (DRIVE, SLOT)
required
DestAddress
Example : "3" string
required
threading
Example : false boolean
optional
Responses
HTTP
Description Schema
Code
200 The move was executed successfully No Content
Security
Type Name
apiKey AdminSecurity
POST /library/powerdown
Description
The library will be shut down. During shutdown the robotic will be secured at a safe transport
Parameters
PostLibraryPowerdown
Responses
HTTP
Description Schema
Code
200 The shutdown was executed successfully No Content
Security
Type Name
apiKey AdminSecurity
POST /library/reboot
Description
The library will be rebooted. The shutdown will be initiated after response to this command. The
connection will be lost until the library restarted successfully. A new login will be required
Responses
HTTP
Description Schema
Code
200 The reboot was executed successfully No Content
Security
Type Name
apiKey AdminSecurity
POST /library/datetime
Description
With this command the Date and Time can be set in format "yyyy-MM-ddTHH:mm:ssZ" for e.g.
2021-07-21T[Link]Z
NOTE Setting a date time can invalidate the Bearer Token and a new login is required!
Parameters
PostLibraryDateTime
Name Schema
dateTime
string (date-time)
required
Responses
HTTP
Description Schema
Code
200 The date time config was successful No Content
Security
Type Name
apiKey AdminSecurity
POST /library/datetime/sntp
Description
With this command the SNTP server can be set and the SNTP option can be enabled/disabled.
Parameters
PostLibraryDateTimeSntp
Name Schema
server
string
required
enabled
boolean
required
Responses
HTTP
Description Schema
Code
200 The configuration was successful No Content
Security
Type Name
apiKey AdminSecurity
POST /library/datetime/timezone
Description
Parameters
PostLibraryDateTimeTimezone
Responses
HTTP
Description Schema
Code
200 The timezone config was successful No Content
Security
Type Name
apiKey AdminSecurity
POST /library/io/config
Description
With this command the mailslot block in a magazine can be configured as mailslots or as standard
storage slots. In order to be able to open mailslot slots of the magazine block they need to be
configured as mailslots
Parameters
PostLibraryIoConfig
mode
A true will configure mailslot mode, a false storage mode boolean
required
Responses
HTTP
Description Schema
Code
200 The mailslot configuration was successful No Content
Security
Type Name
apiKey AdminSecurity
POST /library/license
Description
With this command keys for licensed features can be imported and added to the system. The key
inherits the feature and additional parameters which have to licensed
Parameters
PostLibraryLicense
Responses
HTTP
Description Schema
Code
200 The license key was added succesfully No Content
Security
Type Name
apiKey AdminSecurity
POST /library/mac
Description
With this command the MACs can be set. After successful change the Library will be rebooted.
Parameters
PostLibraryMac
Responses
HTTP
Description Schema
Code
200 The settings succesfully changed. No Content
Security
Type Name
apiKey ServiceSecurity
POST /library/mac_wwn
Description
With this command the WWN (WWide Node Name) and the MACs can be configured. After
successful change the Library will be rebooted.
Parameters
PostLibraryMacWwn
mac0
Length : 17 string
optional
mac1
Length : 17 string
optional
Responses
HTTP
Description Schema
Code
200 The settings succesfully changed. No Content
Security
Type Name
apiKey ServiceSecurity
POST /library/network
Description
Parameters
PostLibraryNetwork
Protocol The protocol IPv4 only, IPv6 only or dual stack IPv4/IPv6. enum (IPv4/IPv6,
required Example : "IPv4" IPv4, IPv6)
Responses
HTTP
Description Schema
Code
200 The move was executed successfully No Content
Security
Type Name
apiKey AdminSecurity
POST /library/network/hostdomain
Description
Parameters
PostLibraryNetworkHostDomain
Responses
HTTP
Description Schema
Code
200 The move was executed successfully No Content
Security
Type Name
apiKey AdminSecurity
POST /library/resetconfig
Description
After issuing this command the configuration of the library will be set to standard defaults or to
manufacturing defaults depending on the ManufacturingMode parameter. The standard defaults
will keep IP address, counters and manufacturing defaults will reset everything. In case of manual
configured network the connection will possibly be lost. If no Mode parameter is submitted
standard default mode will be used. Reset to Manufacturing Mode will also delete existing license
keys in the system
Parameters
PostLibraryResetConfig
PowerDown true powers the unit off after a reset. false keeps default
boolean
optional reboot behavior
Responses
HTTP
Description Schema
Code
200 The reset configuration was executed successfully No Content
Security
Type Name
apiKey AdminSecurity
apiKey ServiceSecurity
POST /library/restoreconfig
Description
Parameters
Responses
HTTP
Description Schema
Code
200 The restore was successful No Content
Consumes
• multipart/form-data
Security
Type Name
apiKey AdminSecurity
apiKey ServiceSecurity
GET /library/saveconfig
Description
Generates and returns a config file from the stack in binary format "application/octet-stream".
Other responses are returned as "application/json"
Responses
HTTP
Description Schema
Code
200 Configuration file (zipped) file (binary)
Produces
• application/octet-stream
• application/json
Security
Type Name
apiKey AdminSecurity
apiKey ServiceSecurity
PUT /library/serialnum
Description
Note: After setting the serial number the library must be restarted for the changes to take effect.
Parameters
PutLibrarySerialNumber
Responses
HTTP
Description Schema
Code
200 OK No Content
Security
Type Name
apiKey ServiceSecurity
POST /library/swupgrade
Description
The command upgrades the SW on the library. It returns before the SW upgrade process is started.
After the upgrade a reboot will be initiated. The connection will be lost during this time frame
Parameters
Responses
HTTP
Description Schema
Code
200 OK No Content
Consumes
• multipart/form-data
Security
Type Name
apiKey AdminSecurity
POST /library/wwn
Description
With this command the WWN (WWide Node Name) can be set. Format is 16 hex characters [0-9 A-
F]. After successful change the Library will be rebooted.
Parameters
PostLibraryWwn
Responses
HTTP
Description Schema
Code
200 The WWN was succesfully changed. No Content
Security
Type Name
apiKey ServiceSecurity
POST /snmp/config
Description
Parameters
PostSnmpConfig
CommunityNa
Community Name
me string
Example : "public"
required
enum (CRITICAL,
Notification Level combination Inactive, Critical, Critical +
WARNING,
NotifyLvl Warning, Critical + Warning + Configuration, Critical +
CONFIGURATION,
required Warning + Configuration + Information
INFORMATION,
Example : "WARNING"
INACTIVE)
enum
SnmpV3Secur
SNMPv3 Security Level (V3) (NOAUTHNOPRIV,
ityLevel
Example : "NOAUTHNOPRIV" AUTHNOPRIV,
optional
AUTHPRIV)
Responses
HTTP
Description Schema
Code
200 OK No Content
Security
Type Name
apiKey AdminSecurity
GET /snmp/config
Description
Responses
HTTP
Description Schema
Code
GetSnmpConfigSc
200 OK
hema
Security
Type Name
apiKey AdminSecurity
GET /snmp/mib
Description
Responses
HTTP
Description Schema
Code
200 OK file (binary)
Produces
• application/json
• application/octet-stream
Security
Type Name
apiKey AdminSecurity
POST /snmp/target
Description
Parameters
PostSnmpTarget
Communityna
Must be set for SNMP v1/v2 not needed for v3
me string
Example : "public"
optional
Responses
HTTP
Description Schema
Code
200 OK No Content
Security
Type Name
apiKey AdminSecurity
DELETE /snmp/target
Description
Parameters
DeleteSnmpTarget
Responses
HTTP
Description Schema
Code
200 OK No Content
Security
Type Name
apiKey AdminSecurity
POST /test/abort
Description
Responses
HTTP
Description Schema
Code
200 The test could be stopped / aborted succesfully No Content
Security
Type Name
apiKey AdminSecurity
POST /test/element2element
Description
Performs the Element to Element test n times. The number of executions has to be defined in the
count parameter. The command returns immediately after starting the test. The progress has to be
polled by the /test/status request
Parameters
PostTestElement2ElementTest
SrcAddress
Example : "1.2" string
required
DestType
Example : "DRIVE" enum (DRIVE, SLOT)
required
DestAddress
Example : "2" string
required
Responses
HTTP
Description Schema
Code
200 The test could be started succesfully No Content
Security
Type Name
apiKey AdminSecurity
POST /test/positiontest
Description
Performs the position test n times. The number of executions has to be defined in the count
parameter. The command returns immediately after starting the test. The progress has to be polled
by the /test/status request
Parameters
PostTestPositionTest
SrcAddress
Example : "1.2" string
required
DestType
Example : "DRIVE" enum (DRIVE, SLOT)
required
DestAddress
Example : "2" string
required
Responses
HTTP
Description Schema
Code
200 The test could be started succesfully No Content
Security
Type Name
apiKey AdminSecurity
POST /test/robotictest
Description
The Robotic Test exercises all robotic assembly movements and sensors. The test does not move
cartridges.
Responses
HTTP
Description Schema
Code
200 The test could be stopped / aborted succesfully No Content
Security
Type Name
apiKey AdminSecurity
POST /test/slot2slot
Description
Performs the slot to slot test n times. The number of executions has to be defined in the count
parameter. The command returns immediately after starting the test. The progress has to be polled
by the /test/status request
Parameters
PostTestSlotToSlot
Responses
HTTP
Description Schema
Code
200 The test could be started succesfully No Content
Security
Type Name
apiKey AdminSecurity
GET /test/status
Description
Returns the status of the tests which were executed and is currently running. A test run always
asynchronously, a response is sent immediately after the start. This function is used to monitor the
status of the test, it returns the current test cycle and the run status. It only runs one test at a time.
Responses
HTTP
Description Schema
Code
< TestStatus >
200 Status of current test
array
Security
Type Name
apiKey AdminSecurity
Response 200
[ {
"name" : "Slot to Slot Test",
"currentCycle" : 2,
"testCycles" : 10,
"status" : "passed",
"running" : false
}, {
"name" : "Robotic Test",
"currentCycle" : 1,
"testCycles" : 1,
"status" : "passed",
"running" : false
}, {
"name" : "System Test",
"currentCycle" : 24,
"testCycles" : 100,
"status" : "failed",
"running" : false,
"ticketNo" : 15
}, {
"name" : "Position Test",
"currentCycle" : 3,
"testCyles" : 3,
"status" : "passed",
"running" : false
}, {
"name" : "Element to Element Test",
"currentCycle" : 1,
"testCycles" : 20,
"status" : "failed",
"running" : false,
"ticketNo" : 16
} ]
POST /test/systemtest
Description
Performs the integrated system (Demo) test n times. The number of executions has to be defined in
the count parameter. The command returns immediately after starting the test. The progress has to
be polled by the /test/status request
Parameters
PostTestSystemTest
seating
boolean
optional
Responses
HTTP
Description Schema
Code
200 The test could be started succesfully No Content
Security
Type Name
apiKey AdminSecurity
GET /drive/information
Description
Returns the information about drives like Product Id, Model, Serialno and other useful information.
Responses
HTTP
Description Schema
Code
< DriveInfo >
200 OK
array
Security
Type Name
apiKey UserSecurity
Response 200
{
"LogicalNumber" : 1,
"PhysicalNumber" : 10,
"Module" : 1,
"Partition" : 0,
"Generation" : 8,
"Cartridge" : false,
"Vendor" : "IBM",
"Product" : "ULT3580-HH8",
"FWRevision" : "J28F",
"SerialNumber" : "000000005B",
"WWNodeName" : "",
"Interface" : "FC",
"MFGSerialNumber" : "1013000188",
"ErrorState" : true,
"Power" : false,
"Presence" : true,
"ADTMode" : "IADT",
"Temperature" : 40
}
POST /drive/fwupgrade
Description
Parameters
FormDat drivenumber The logical drive number(s), multiple drives < integer >
a required possible as array (comma separated values) array(csv)
Responses
HTTP
Description Schema
Code
200 The FW upgrade was successful No Content
Consumes
• multipart/form-data
Security
Type Name
apiKey AdminSecurity
POST /drive/power/off
Description
The command performs a drive power off for the given drive
Parameters
PostDrivePowerOff
Responses
HTTP
Description Schema
Code
200 The drive was powered off successfully No Content
Security
Type Name
apiKey AdminSecurity
POST /drive/power/on
Description
Parameters
PostDrivePowerOn
Responses
HTTP
Description Schema
Code
200 The drive was powered on successfully No Content
Security
Type Name
apiKey AdminSecurity
POST /drive/reset
Description
Parameters
PostDriveReset
Responses
HTTP
Description Schema
Code
200 The drive was reset successfully No Content
Security
Type Name
apiKey AdminSecurity
GET /partition/information
Description
Responses
HTTP
Description Schema
Code
< PartitionInfo >
200 OK
array
Security
Type Name
apiKey UserSecurity
Response 200
[ {
"PartitionNumber" : 1,
"Name" : "New Partition_1",
"SerialNumber" : "DE00000000_LL01",
"NumSlots" : 87,
"NumIOSlots" : 0,
"NumDrives" : 1,
"LunMasterDrive" : 1,
"LunMasterDrivePhys" : 10,
"LunMasterDriveArr" : [ 1 ],
"LunMasterDrivePhysArr" : [ 10 ],
"EncryptionMode" : "ISV",
"BarcodeAlign" : "left",
"BarcodeLength" : 8,
"AutoClean" : true,
"WWNode" : "5001000000000071",
"Micw" : false
}, {
"PartitionNumber" : 2,
"Name" : "New Partition_2",
"SerialNumber" : "DE00000000_LL02",
"NumSlots" : 90,
"NumIOSlots" : 5,
"NumDrives" : 1,
"LunMasterDrive" : 2,
"LunMasterDrivePhys" : 11,
"LunMasterDriveArr" : [ 2 ],
"LunMasterDrivePhysArr" : [ 11 ],
"EncryptionMode" : "ISV",
"BarcodeAlign" : "left",
"BarcodeLength" : 8,
"AutoClean" : true,
"WWNode" : "5001000000000081",
"Micw" : false
}, {
"PartitionNumber" : 3,
"Name" : "New Partition_3",
"SerialNumber" : "DE00000000_LL03",
"NumSlots" : 85,
"NumIOSlots" : 5,
"NumDrives" : 1,
"LunMasterDrive" : 3,
"LunMasterDrivePhys" : 12,
"LunMasterDriveArr" : [ 3 ],
"LunMasterDrivePhysArr" : [ 12 ],
"EncryptionMode" : "ISV",
"BarcodeAlign" : "left",
"BarcodeLength" : 8,
"AutoClean" : true,
"WWNode" : "5001000000000091",
"Micw" : false
} ]
GET /partition/inventory
Description
Returns the inventory of the selected partition including slots, drives and mailslots. It also returns
the corresponding metadata which belongs to the different types of the elements
Parameters
Responses
HTTP
Description Schema
Code
200 OK Inventory
Security
Type Name
apiKey UserSecurity
Response 200
{
"Slots" : [ {
"PhysicalNumber" : 1,
"LogicalNumber" : "1.1",
"Module" : 1,
"Partition" : 1,
"Mailslot" : false,
"Cartridge" : false,
"CartridgeType" : "N/A",
"Access" : true,
"Blocked" : true
}, {
"PhysicalNumber" : 2,
"LogicalNumber" : "1.2",
"Module" : 1,
"Partition" : 1,
"Mailslot" : false,
"Cartridge" : false,
"CartridgeType" : "N/A",
"Access" : true,
"Blocked" : false
}, {
"PhysicalNumber" : 3,
"LogicalNumber" : 1.3,
"Module" : 1,
"Partition" : 1,
"Mailslot" : false,
"Cartridge" : true,
"Barcode" : "TT0013L4",
"CartridgeType" : "Data",
"CartridgeSubType" : 0,
"CartridgeGeneration" : 4,
"CartridgeEncrypted" : false,
"Access" : true,
"Blocked" : false
}, { }, {
"PhysicalNumber" : 280,
"LogicalNumber" : 7.4,
"Module" : 7,
"Partition" : 0,
"Mailslot" : true,
"Cartridge" : false,
"CartridgeType" : "N/A",
"Access" : true,
"Blocked" : false
} ],
"Drives" : [ {
"PhysicalNumber" : 10,
"LogicalNumber" : 1,
"Partition" : 0,
"Vendor" : "VENDOR ",
"Product" : "Ultrium 7-SCSI ",
"FWRevision" : "ABCD",
"SerialNumber" : 1234567890
}, {
"PhysicalNumber" : 11,
"LogicalNumber" : 2,
"Partition" : 0,
"Vendor" : "VENDOR ",
"Product" : "Ultrium 7-SCSI ",
"FWRevision" : "ABCD",
"SerialNumber" : 1234567891
}, {
"PhysicalNumber" : 12,
"LogicalNumber" : 3,
"Partition" : 0,
"Vendor" : "VENDOR ",
"Product" : "Ultrium 7-SCSI ",
"FWRevision" : "ABCD",
"SerialNumber" : 1234567892
}, {
"PhysicalNumber" : 20,
"LogicalNumber" : 4,
"Partition" : 0,
"Vendor" : "",
"Product" : "",
"FWRevision" : "",
"SerialNumber" : ""
} ]
}
GET /partition/mediainfo
Description
Returns the list of media which are assigned to the partition including detailed information about
them
Parameters
Responses
HTTP
Description Schema
Code
< MediaInfoData >
200 OK
array
Security
Type Name
apiKey UserSecurity
Response 200
[ {
"Barcode" : "TD239ML4",
"LocationType" : "SLOT",
"LogicalNumber" : "3.35",
"PhysicalNumber" : 115,
"Cleaning" : false,
"Partition" : 2,
"Generation" : 4,
"SubType" : 0,
"Protection" : false,
"Encryption" : false,
"NoLoads" : 0,
"MBRead" : 0,
"MBReadLoad" : 0,
"MBWritten" : 0,
"MBWrittenLoad" : 0
}, {
"Barcode" : "TC084ML5",
"LocationType" : "SLOT",
"LogicalNumber" : "5.10",
"PhysicalNumber" : 170,
"Cleaning" : false,
"Partition" : 2,
"Generation" : 5,
"SubType" : 0,
"Protection" : true,
"Encryption" : false,
"NoLoads" : 64,
"MBRead" : 1643,
"MBReadLoad" : 1603,
"MBWritten" : 943,
"MBWrittenLoad" : 943
} ]
POST /partition/createsimple
Description
Creates the number of partitions which are requested in the parameters. This commands
corresponds to the Basic Wizard in RMI to create partitions. The maximum number of partitions
which can be created are limited by the number of installed drives.
Parameters
PostPartitionCreateSimple
Responses
HTTP
Description Schema
Code
200 OK No Content
Consumes
• application/json
Security
Type Name
apiKey AdminSecurity
2.11. Service
Service Request
2.11. Service | 84
© BDT Storage GmbH
Chapter 3. Definitions
3.1. BaseInfoData
The definition of the physical base module information
MacAdress_1
The MAC address of the Ethernet port 1 string
optional
MacAdress_2
The MAC address of the Ethernet port 2 string
optional
Vendor
The product vendor name string
optional
ProductID
The Product ID string
optional
BaseFWRevisi
on Firmware Revision of the base library string
optional
BaseFWBuild
Date Build date of base library firmware YYYY-MM-DD string (date)
optional
ExpansionFW
Revision Firmware Revision of the expansion modules string
optional
WWNodeNam
e World Wide Node Name of the library string
optional
RoboticHWRe
vision Hardware Revision Level of the Robotic string
optional
RoboticSerial
Number Internal serial number of the Robotic string
optional
NoOfModules
Number of connected expansion modules integer
optional
LibraryType
Library Type (32/40) (Product specific) string
optional
3.2. BaseStatusData
Overview status data of the library
RobStatus
Activity Status of the Robotic enum (Idle, Moving)
optional
MoveCount
Number of moves over lifetime integer
optional
PowerUpCoun
t Number of power cycles over lifetime integer
optional
PowerOnTime
Power up time over lifetime string
optional
3.3. ComponentBarcodeReader
The definition of the Barcode Reader component
3.2. BaseStatusData | 86
© BDT Storage GmbH
FirmwareRevi
sion The firmware revision of the barcode reader string
optional
3.4. ComponentBaseController
The definition of the physical controller component in the base unit
HardwareRev
ision The hardware revision of the controller string
optional
FirmwareRevi
sion The firmware revision of the controller string
optional
ModulePhysic
The physical location of the module the controller is in.
alLocation integer
This number starts at 1 for the lowest slot in the library.
optional
LogicalNumbe
The logical number of the controller. This number starts at
r integer
1 for the lowest inserted controller in the library.
optional
CPUTemp
The controller CPU temperature integer
optional
LCMTemp
The general controller temperature integer
optional
WWN
The WWide Node name of the controller string
optional
3.5. ComponentDrive
The definition of the Drive component
MFGSerialNu
mber The Manufacturing Serial Number of the Drive string
optional
HardwareRev
ision The hardware revision of the Drive string
optional
FirmwareRevi
sion The hardware revision of the Drive string
optional
ModulePhysic
The physical location of the module the Drive is in. This
alLocation integer
number starts at 1 for the lowest module slot in the library.
optional
ModuleLogica The logical number of the module the Drive Sled is in. This
lNumber number starts at 1 for the first slot in the lowest module in integer
optional the library.
LogicalNumbe
The logical number of the Drive. This number starts at 1 for
r integer
the first inserted drive in the lowest module in the library.
optional
Vendor
The vendor of the Drive string
optional
3.5. ComponentDrive | 88
© BDT Storage GmbH
ErrorState
Indicates if a drive is in an error state boolean
optional
ADTMode
The ADT mode of the drive string
optional
PortASignal
Is there a signal on port A boolean
optional
PortBSignal
Is there a signal on port B boolean
optional
PortASpeed
Speed in GB/s for Port A integer
optional
PortBSpeed
Speed in GB/s for Port B integer
optional
DriveReady
Drive ready for operational usage boolean
optional
WWN
The World Wide Node Name of the drive string
optional
PortAWWN
The World Wide Node Name of port string
optional
PortBWWN
The World Wide Node Name of port string
optional
Present
is the Drive present boolean
optional
3.6. ComponentDriveSled
The definition of the Drive Sled
ModulePhysic The physical location of the module the Drive Sled is in.
alLocation This number starts at 1 for the lowest module slot in the integer
optional library.
ModuleLogica The logical number of the module the Drive Sled is in. This
lNumber number starts at 1 for the first slot in the lowest module in integer
optional the library.
FirmwareRevi
sion The firmware revision of the Drive Sled string
optional
PhysicalLocati
The physical location of the Drive Sled. This number starts
on integer
at 1 for the lowest module slot in the library.
optional
LogicalNumbe
The logical number of the Drive Sled. This number starts at
r integer
1 for the first slot in the lowest module in the library.
optional
FanLevel
Reports the fan level of the drive(sled) integer
optional
Present
The present status of the drive sled. boolean
optional
3.7. ComponentExpansionController
The definition of the physical controller component in the expansion unit
HardwareRev
ision The hardware revision of the controller string
optional
3.7. ComponentExpansionController | 90
© BDT Storage GmbH
ModulePhysic
The physical location of the module the controller is in.
alLocation integer
This number starts at 1 for the lowest slot in the library.
optional
LogicalNumbe
The logical number of the controller. This number starts at
r integer
1 for the lowest inserted controller in the library.
optional
CPUTemp
The controller CPU temperature integer
optional
LCMTemp
The general controller temperature integer
optional
3.8. ComponentInfo
The definition of the physical component information
ExpansionCon <
trollers Expansion Controller information ComponentExpansio
optional nController > array
RoboticAssem
bly Robotic Assembly information ComponentRobot
optional
<
PowerBoards
Power Board information ComponentPowerBo
optional
ard > array
BarcodeReade
ComponentBarcode
r Barcode Reader information
Reader
optional
BaseModule
Base Module information ComponentModule
optional
ExpansionMo
< ComponentModule
dules Expansion Module information
> array
optional
<
DriveSleds
Drive Sled information ComponentDriveSle
optional
d > array
OCP
OCP information ComponentOCP
optional
3.9. ComponentModule
The definition of the module component
PhysicalLocati
The physical location of the module. This number starts at 1
on integer
for the lowest slot in the library.
optional
LogicalNumbe
The logical number of the module. This number starts at 1
r integer
for the lowest inserted module in the library.
optional
3.9. ComponentModule | 92
© BDT Storage GmbH
CPUTemp
The temperature of the cpu on the controller integer
optional
UnitLockPres
Reports the state of the UNIT to UNIT LOCK sensor. true ->
ent boolean
locked, false -> unlocked
optional
ChassisFanPr
esent Reports if the chassis fan is present boolean
optional
Present
The present status of the module. boolean
optional
3.10. ComponentOCP
The definition of the OCP component
FirmwareRevi
sion The Firmware Revision of the OCP string
optional
3.11. ComponentPowerBoard
The definition of the Power Board component
ModuleLogica
The logical number of the module the power board is in.
lNumber integer
This number starts at 1 for the lowest slot in the library.
optional
Status
The status of the powerboard string
optional
PowerBoardT
ype The type of the power board string
optional
3.12. ComponentPowerSupply
The definition of the Power Supply component
PowerStatus The status of the power supply. Not OK if one of the power
string
optional supplies failed.
PowerSupply1
Present The present status of power supply 1. boolean
optional
PowerSupply2
Present The present status of power supply 2. boolean
optional
3.13. ComponentRobot
The definition of the Robotic Assembly component
3.12. ComponentPowerSupply | 94
© BDT Storage GmbH
FirmwareRevi
sion The firmware revision of the robot string
optional
Temperature
The temperature of the robot integer
optional
BarcodeReade
ComponentBarcode
r The data of the barcode reader
Reader
optional
3.14. DriveInfo
Name Description Schema
LogicalNumbe
The logical drive number starts always at 1 with the first
r integer
inserted drive in the lowest available module
optional
Module
The Expansion Module where the drive is located in integer
optional
Generation
LTO Generation of Drive integer
optional
Cartridge
true - Cartridge is loaded / false - no Cartridge loaded boolean
optional
Product
The Product ID of the drive string
optional
FWRevision
The FW revision of the drive string
optional
SerialNumber
The serial number of the drive (Spoofed) string
optional
WWNodeNam
e The World Wide Node Name of the drive string
optional
MFGSerialNu
mber The Manufacturing Serial number string
optional
ErrorState
Is Drive in an error state boolean
optional
Power
Is drive powered boolean
optional
Presence
Is drive present boolean
optional
enum (Unknown,
ADTMode
ADT Transport Mode SERIAL, PROXY,
optional
IADT)
Temperature
The temperature of the drive integer
optional
3.15. DriveInfoInventory
3.15. DriveInfoInventory | 96
© BDT Storage GmbH
LogicalNumbe
The logical drive number starts always at 1 with the first
r integer
inserted drive in the lowest available module
optional
Module
The Expansion Module where the drive is located in integer
optional
Vendor
The drive vendor name string
optional
Product
The Product ID of the drive string
optional
FWRevision
The FW revision of the drive string
optional
SerialNumber
The serial number of the drive (Spoofed) string
optional
MFGSerialNu
mber The manufacturing serial number string
optional
3.16. Error
Name Schema
code
string
optional
message
string
optional
3.17. EventEntry
Structure of event entry
TimeStamp
Date/ Time of of event string (date-time)
optional
EventCode
Eventcode, describing the event which occurred integer
optional
enum (CRITICAL,
Severity
Displays the tickets severity WARNING, CONFIG,
optional
INFO)
Component
The component that generated the ticket string
optional
ComponentID
The id of the component that generated the ticket string
optional
Text
Short description of EventCode string
optional
enum (INFO,
CONFIG, SERVICE,
State
Shows the current state for the ticket. TICKET_PENDING,
optional
TICKET_RESOLVED,
SINGULAR_TICKET)
Closed
Reflects the closed state for tickets boolean
optional
SolutionSugge
stion Displays troubleshooting steps if available string
optional
3.17. EventEntry | 98
© BDT Storage GmbH
3.18. GetDateTime
Current Date Time setting of the librry
Timezone
The available timezones in the system Timezones
required
SntpEnabled
true - SNTP is enabled / false - SNTP is disabled boolean
required
SntpAddress
Address of the the sntp server string
optional
3.19. GetSnmpConfigSchema
SNMP config
<
SnmpTargets
SNMP Targets GetSnmpTargetsSch
optional
ema > array
SnmpConfig
CommunityNa
SNMP community name
me string
Example : "public"
optional
enum
SnmpV3Secur
SNMPv3 Security Level (noAuthNoPriv,
ityLevel
Example : "noAuthNoPriv" authNoPriv,
optional
authPriv)
SnmpV3User
SNMPv3 Authentication User Name string
optional
SnmpV3AuthP
SNMPv3 Authentication Protocol enum (None, MD5,
rotocol
Example : "None" SHA)
optional
SnmpV3PrivE
SNMPv3 Privacy/Encryption Protocol enum (None, DES,
ncProtocol
Example : "None" AES128)
optional
3.20. GetSnmpTargetsSchema
Name Description Schema
Target Name of the target
string
optional Example : "TargetName"
3.21. IOStatus
Name Description Schema
ModuleNo
logical module number where the IO Station is located integer
required
Unlocked
false - IO Station is locked. true - IO Station is unlocked boolean
optional
OpenStatus
false - IO STation is closed. true - IO Station is opened boolean
optional
3.22. Inventory
Name Schema
Slots
< Slot > array
optional
Drives
< DriveInfoInventory > array
optional
3.23. LibraryInfo
The definition of the physical library information
ModulesInfo
Module Information < Module > array
required
3.24. LibraryStatus
Overview status information of the library
Name Schema
BaseStatus
BaseStatusData
required
ModulesStatus
< ModuleStatusData > array
required
3.25. LicenseInfo
Licensed Feature data
LicenseKey
License Key string string
required
3.26. MediaInfoData
Information about a tape media.
LogicalNumbe
r The logical number of media location string
optional
PhysicalNumb
er The physical number of media location integer
optional
Generation
LTO Generation of media integer
optional
SubType
LTO SubType of media (0 = default, 1= Type M) integer
optional
MBRead
Bytes read from this media in MB integer
optional
MBReadLoad
Bytes read from this media in MB during last load integer
optional
MBWritten
Bytes written to this media in MB integer
optional
MBWrittenLo
ad Bytes written to this media in MB during last load integer
optional
3.27. Module
The definition of an expansion module informational data
SerialNumber
The internal manufacturing serial number of the module string
optional
LCMTemp
The module controller temperature integer
optional
CPUTemp
The module controller cpu temperature integer
optional
3.28. ModuleStatusData
Current Health Status of a module
LogicalNumbe
r Module Number (logical) integer
optional
3.29. Modules
List of expansion module data
3.30. Network
Network data
Status
Status data of the network ports < Status > array
optional
Config
Configured data of the network ports < Config > array
optional
General
Domainname
domainname set in the library string
optional
Status
MacAddress
MAC address of the ethernet port string
required
IPv4
IPv4 address string
optional
IPv4Netmask
IPv4 netmask string
optional
IPv4Gateway
IPv4 gateway string
optional
IPv4Dns1
IPv4 DNS 1 string
optional
IPv4Dns2
IPv4 DNS 2 string
optional
IPv6Prefix
IPv6 Prefix integer
optional
IPv6Gateway
IPv6 gateway string
optional
IPv6Dns1
IPv6 DNS 1 string
optional
IPv6Dns2
IPv6 DNS 2 string
optional
LinkSpeed
Speed of the link in Mbit/s integer
optional
Link
Interface link status boolean
required
Duplex
Interface duplex status boolean
required
Config
Enabled
Port enabled / disabled boolean
required
IPv4
IPv4 address string
optional
IPv4Gateway
IPv4 gateway string
optional
IPv4Dns1
IPv4 DNS 1 string
optional
IPv4Dns2
IPv4 DNS 2 string
optional
IPv6
IPv6 address string
optional
IPv6Prefix
IPv6 Prefix integer
optional
IPv6Gateway
IPv6 gateway string
optional
IPv6Dns1
IPv6 DNS 1 string
optional
IPv6Dns2
IPv6 DNS 2 string
optional
LinkSpeed
Configured Max Speed of the link in Mbit/s integer
required
3.31. PartitionInfo
Partition data
NumSlots
Number of slots assigned to partition integer
optional
NumIOSlots
Number of IO slots (Mailslots) assigned to partition integer
optional
NumDrives
Number of drives assigned to partition integer
optional
LunMasterDri
ve Lun Master Drive number (logical) integer
optional
LunMasterDri
vePhys Lun Master Drive number (physical) integer
optional
LunMasterDri
veArr Lun Master Drive number (logical) < integer > array
optional
LunMasterDri
vePhysArr Lun Master Drive number (physical) < integer > array
optional
BarcodeLengt
h Barcode Label Length integer
optional
AutoClean
AutoClean enabled boolean
optional
WWNode
WWN of Partition string
optional
Micw
Multi-initiator conflict warning enabled boolean
optional
3.32. Slot
The definition of cartridge slot data
Module
The Expansion Module where the slot is located in integer
optional
Partition The partition (logical library) where the slot is assigned to.
integer
optional If no partition is assigned the value will be 0
Cartridge
If a cartridge is detected in the slot this entry is set to true boolean
optional
CartridgeSub
Type SubType of a cartridge 0 = Default, 1= Type M integer
optional
CartridgeGen
eration Generation of the cartridge integer
optional
CartridgeEncr
ypted Cartridge encryption state boolean
optional
Access
If the slot is accessible by the system the entry is set to true boolean
optional
3.33. SystemStateInformation
Activity Status of the library
Type : enum (Idle, Moving, Scanning, Test Running, Initializing, Configuring, Upgrading, Drive
Upgrading, Magazine removed, Magazine unlocked, Drive cleaning in progress, System starting,
System shutting down, Unlocking, Startup halted, Calibrating, Configuring Drives, Stopped, Unit
lock unlocked, Bottom cover removed, Top cover removed, Connection lost to module, Robotic
error, Unknown, Idle (Unconfigured Offline), Moving (Unconfigured Offline), Scanning
(Unconfigured Offline), Test Running (Unconfigured Offline), Initializing (Unconfigured Offline),
Configuring (Unconfigured Offline), Upgrading (Unconfigured Offline), Drive Upgrading
(Unconfigured Offline), Magazine removed (Unconfigured Offline), Magazine unlocked
(Unconfigured Offline), Drive cleaning in progress (Unconfigured Offline), System starting
(Unconfigured Offline), System shutting down (Unconfigured Offline), Unlocking (Unconfigured
Offline), Startup halted (Unconfigured Offline), Calibrating (Unconfigured Offline), Configuring
Drives (Unconfigured Offline), Stopped (Unconfigured Offline), Unit lock unlocked (Unconfigured
Offline), Bottom cover removed (Unconfigured Offline), Top cover removed (Unconfigured Offline),
Connection lost to module (Unconfigured Offline), Robotic error (Unconfigured Offline), Unknown
(Unconfigured Offline), Idle (Offline), Moving (Offline), Scanning (Offline), Test Running (Offline),
Initializing (Offline), Configuring (Offline), Upgrading (Offline), Drive Upgrading (Offline), Magazine
removed (Offline), Magazine unlocked (Offline), Drive cleaning in progress (Offline), System
starting (Offline), System shutting down (Offline), Unlocking (Offline), Startup halted (Offline),
Calibrating (Offline), Configuring Drives (Offline), Stopped (Offline), Unit lock unlocked (Offline),
Bottom cover removed (Offline), Top cover removed (Offline), Connection lost to module (Offline),
Robotic error (Offline), Unknown (Offline))
3.34. TestStatus
Name Description Schema
enum (Robotic Test,
Slot to Slot Test,
name
name of the current running test System Test, Position
required
Test, Element to
Element Test)
currentCycle
current test cycle number integer
required
testCycles
number of test cycles planned integer
required
running
true - test is still running, false - no test running boolean
required
ticketNo
ticket number if an error occurs integer
optional
3.35. Timezones
The available timezones in the system
3.36. UserListInfo
Name Description Schema
Id Id of the User
integer
required Example : 1
enum (USER,
Role User Role
ADMINISTRATOR,
required Example : "USER"
SECURITY, SERVICE)
LastLoginTim
DateTime in UTC when the user logged in
e string (date-time)
Example : "2021-10-04T[Link]Z"
optional
PwdChangedT
DateTime in UTC when the password was changed
ime string (date-time)
Example : "2021-10-03T[Link]Z"
optional
FailedLgiCnt
Failed login attempts integer
required
3.37. UserPasswordPolicies
Name Description Schema
MinNumOfCh
ars Minimum Number Of Characters integer
required
MinNumOfUp
Minimum Number Of Upper Case Alphabetic Characters (A-
perCaseChars integer
Z)
required
MinNumOfLo
Minimum Number Of Lower Case Alphabetic Characters (a-
werCaseChars integer
z)
required
MinNumOfNu
mericChars Minimum Number Of Numeric Characters (0-9) integer
required
MinNumOfSp
Minimum Number Of Special Characters (!@#$%^&*()_+-
ecialChars integer
={}|[]\;':"<>?,./)
required
MaxNumOfFa
Maximum Number Of Failed Logins Before Password Is
iledLogins integer
Locked (0 means unlimited)
required
MaxNumOfDa
ysBeforeMust Maximum Number Of Days Before Password Must Be
integer
Change Changed (0 means unlimited)
required
MinNumOfDa
ysBeforeCanC Minimum Number Of Days Before Password Can Be
integer
hange Changed (0 means unlimited)
required
NumOfPwdCh
angesBeforeU Number Of Password Changes Before An Old Password Can
integer
seAgain Be Used Again
required
Chapter 4. Security
4.1. UserSecurity
User role API Key, only allowing status requests.
Type : apiKey
Name : Authorization
In : HEADER
4.2. AdminSecurity
Admin role API Key, allowing status, Operations and operational requests
Type : apiKey
Name : Authorization
In : HEADER
4.3. SecuritySecurity
Sercurity role API Key, allowing status, Operations and operational requests and security related
tasks
Type : apiKey
Name : Authorization
In : HEADER
4.4. ServiceSecurity
Service role API Key, allowing special service requests including Admin level
Type : apiKey
Name : Authorization
In : HEADER