DaanHoogland opened a new pull request, #14580:
URL: https://github.com/apache/cloudstack/pull/14580
### Description
Addresses the parameterised-types part of #3360.
Raw `Map` fields on API commands are replaced with
`Map<Integer, Map<String, String>>`. This matches what
ParamUnpackWorker actually builds for `param[i].key=value` input, for
sync and async commands alike. Getters and setters are typed to match:
- getters that return the first entry return `Map<String, String>`
- setters used by internal callers (e.g. the Veeam adapter, image
store migration) take the indexed map
Response classes get typed `details` maps. NetworkOffering, BgpPeer
and VolumeForImport use their enum `Detail` keys; Gson serialises
those by name, so the output is the same.
No API behaviour changes: listApis still reports these parameters and
response fields as `map`. That leaves the apidocs, CloudMonkey and
Marvin's generated client unchanged.
Fixes: #12583
### Types of changes
- [x] Cleanup (Code refactoring and cleanup, that may add test cases)
### How Has This Been Tested?
- Compiled api, server, framework/extensions, oauth2, kubernetes-service,
veeam-control-service, metrics and the external hypervisor plugin.
- Unit tests pass for api (190), framework/extensions (91), oauth2 (1)
and server (459, including UserVmManagerImplTest,
AutoScaleManagerImplTest, VnfTemplateManagerImplTest and
ConfigurationManagerTest).
- pre-commit passes on the changed files.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]