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]

Reply via email to