TS4300: RESTful API

The TS4300 REST API is a simple application planning interface (API) to manage the 3U scalable tape libraries remotely over an HTTPS interface. This API is requested and needed for manufacturing and for automated test and monitoring systems.

Syntax:
https-address {login-credentials} GET | PATCH | POST url-endpoint [JSON data]
Parameters:
  • https-address
  • Login credentials in JSON format
  • HTTP-Method: GET | PATCH | POST
  • url-endpoint
  • [JSON data]

https-address

The IP address of the library.

Login credentials

The library differentiates the following security levels:
  • Admin Security
  • User Security
  • Service Security
The user/password that is used to log in. Additionally, for some product variants in case of service level login the service password (service_password) and the administrator password (password) must be sent. In case the administrator password is not required the ‘service_password’ must be set through the normal password field. Parameter:
'{"username":"administrator”,
 "password":"password”
 [“service_password”:””servicepassword”]}'

http-method

The method for a dedicated request: GET, PUT, POST

url-endpoint

Valid URLs in combination with the http method. If the parameter is required, it can be passed with ? and &.

For a detailed URL endpoint definition, refer to the TS4300 RESTful documentation: https://www.ibm.com/support/knowledgecenter/STAKKZ/ts4300_kc/con_3U_REST_overview.html.

JSON data

Some commands need extra data in JSON format like ‘serialnumber change’.

Example:
sudo ./itdt https://1.2.3.4 '{"username":"service","password":"123456"}' GET /library/baseinfo
 {
BaseInfo  {
 "SerialNumber": "1234567890123455",
 "MacAdress_1": "00:0e:11:1c:31:b5",
 "MacAdress_2": "00:0e:11:1c:31:b7",
 "Vendor": "IBM",
 "ProductID": "3573-TL",
 "BaseFWRevision": "1.3.0.0-D00",
 "BaseFWBuildDate": "07-02-2019",
 "ExpansionFWRevision": "0.30",
 "WWNodeName": "500000000000000",
 "RoboticHWRevision": "4",
 "RoboticFWRevision": "0.13",
 "RoboticSerialNumber": "12345678901234",  "NoOfModules": "2",
 "LibraryType": "32"
},
"ModulesInfo": [
 {
   "PhysicalNumber": "4",
   "LogicalNumber": "1",
   "ReadyStatus": "TRUE",
   "SerialNumber": "3555L3A1234567"
 },
 {
   "PhysicalNumber": "5",
   "LogicalNumber": "2",
   "ReadyStatus": "TRUE",
   "SerialNumber": "3555E3A0234567"
    }
   ]
  }
Exit with code: 0
Notes:
  1. ITDT sends a login request for each command.
  2. Microsoft Windows command prompt does not support a single quotation mark (') to send a string to an application. That is, every special character must be escaped. The Microsoft Windows command shell is different and the command must be sent with the following form.
    Example for Windows:
    itdt.exe https://1.2.3.4 "{\"username\":\"service\",\"password\":\"123456\"}" GET /library/baseinfo
    itdt.exe https://1.2.3.4 "{\"username\":\"service\",\"password\":\"123456\"}" GET "/library/getevents?EventType=Info&MaxNum=2"