docs: @VisibleForTesting
    void updateTopologyHandler(String topologyName, Config updateConfig)
        throws TopologyRuntimeManagementException, PackingException, UpdateDryRunResponse {
      assert !potentialStaleExecutionData;
      String newParallelism = updateConfig.getStringValue(RUNTIME_MANAGER_COMPONENT_PARALLELISM_KEY);
      String newContainerNumber = updateConfig.getStringValue(RUNTIME_MANAGER_CONTAINER_NUMBER_KEY);
      String userRuntimeConfig = updateConfig.getStringValue(RUNTIME_MANAGER_RUNTIME_CONFIG_KEY);
      LOG.info("userRuntimeConfig " + userRuntimeConfig
          + "; newParallelism " + newParallelism
          + "; newContainerNumber " + newContainerNumber);
  
      // parallelism and runtime config can not be updated at the same time.
      if (((newParallelism != null && !newParallelism.isEmpty())
          || (newContainerNumber != null && !newContainerNumber.isEmpty()))
          && userRuntimeConfig != null && !userRuntimeConfig.isEmpty()) {
        throw new TopologyRuntimeManagementException(
            "parallelism or container number "
                + "and runtime config can not be updated at the same time.");
      }
      if (userRuntimeConfig != null && !userRuntimeConfig.isEmpty()) {
        // Update user runtime config if userRuntimeConfig parameter is available
        updateTopologyUserRuntimeConfig(topologyName, userRuntimeConfig);
      } else if (newContainerNumber != null && !newContainerNumber.isEmpty()) {
        // Update container count if newContainerNumber parameter is available
        updateTopologyContainerCount(topologyName, newContainerNumber, newParallelism);
      } else if (newParallelism != null && !newParallelism.isEmpty()) {
        // Update parallelism if newParallelism parameter is available
        updateTopologyComponentParallelism(topologyName, newParallelism);
      } else {
        throw new TopologyRuntimeManagementException("Missing arguments. Not taking action.");
      }
      // Clean the connection when we are done.
      LOG.fine("Scheduler updated topology successfully.");
    }