Public API examples
curl --location 'https://localhost:8443/api/public/v1/auth' \ --header 'Content-Type: application/json' \ --data '{ "username": "xormon", "password": "xormon" }'you will then recieve response with the api key (response is in json fromat):
{ "statusCode": 200, "data": { "apiKey": "b2c9bcf8a16c29d50a73dd52bdcc44a6", "expiration": "2025-06-06T08:39:44.640Z" } }You will use then use the api key inside the header like this:
curl --location 'https://localhost:8443/api/public/v1/hostcfg/' \ --header 'apiKey: b2c9bcf8a16c29d50a73dd52bdcc44a6'This request will return all your device configurations in this format:
[ { "hostcfg_id": "a7ac3eb5-95de-42c4-ba81-494835fa9ab0", "label": "storwize", "hw_type": "swiz", "disabled": true, "target": false, "ignore_health_status": false, "ignore_health_status_reason": null, "data": { "host": "", "alias": "storwize", "radio": "ssh-key-option", "device": "IBM__STORWIZE_FAMILY", "vendor": "IBM", "created": "2022-11-03T09:31:30Z", "sshPort": 22, "updated": "2023-10-24T09:22:36Z", "isKeyFile": true, "sampleRate": 5, "sshKeyFile": "", "sshPassword": null, "sshUsername": "stor2rrd" }, "createdAt": "2024-08-02T13:42:16.905Z", "updatedAt": "2024-08-09T10:21:12.753Z", "hw_type_label": "Storwize", "limited": false }, ]You can filter the array for the ibm storwize storages, they will always have "device": "IBM__STORWIZE_FAMILY" inside the data: {}, they will also have hw_type: storwize
curl --location 'https://localhost:8443/api/public/v1/hostcfg/' \ --header 'apiKey: b2c9bcf8a16c29d50a73dd52bdcc44a6' \ --header 'Content-Type: application/json' \ --data '{ "hostcfg_id": "a7ac3eb5-95de-42c4-ba81-494835fa9ab0", "label": "storwize", "hw_type": "swiz", "disabled": true, "target": false, "ignore_health_status": false, "ignore_health_status_reason": null, "data": { "host": "", "alias": "storwize", "radio": "ssh-key-option", "device": "IBM__STORWIZE_FAMILY", "vendor": "IBM", "created": "2022-11-03T09:31:30Z", "sshPort": 22, "updated": "2023-10-24T09:22:36Z", "isKeyFile": true, "sampleRate": 5, "sshKeyFile": "", "sshPassword": "YOUR NEW PASSWORD AS STRING HERE", "sshUsername": "stor2rrd" }, }'Also you dont have to include many of the keys, here is the minimum working example but you will always have to include the "hostcfg_id" and every single key that is inside the data key! Like this:
curl --location 'https://localhost:8443/api/public/v1/hostcfg/' \ --header 'apiKey: b2c9bcf8a16c29d50a73dd52bdcc44a6' \ --header 'Content-Type: application/json' \ --data '{ "hostcfg_id": "a7ac3eb5-95de-42c4-ba81-494835fa9ab0", "data": { "host": "", "alias": "storwize", "radio": "ssh-key-option", "device": "IBM__STORWIZE_FAMILY", "vendor": "IBM", "created": "2022-11-03T09:31:30Z", "sshPort": 22, "updated": "2023-10-24T09:22:36Z", "isKeyFile": true, "sampleRate": 5, "sshKeyFile": "", "sshPassword": "YOUR NEW PASSWORD AS STRING HERE", "sshUsername": "stor2rrd" }, }'The key for password change for the IBM Storwize storages is sshPassword inside the data object.