code: public static Map<String, String> getParameterDefinitions() {
          Map<String, String> params = new HashMap<String, String>();
  
          ExtensionList<ParameterDefinition.ParameterDescriptor> paramExtensions =
                  Jenkins.getActiveInstance().getExtensionList(ParameterDefinition.ParameterDescriptor.class);
          for(ParameterDefinition.ParameterDescriptor paramExtension: paramExtensions) {
              // we need the getEnclosingClass() to drop the inner ParameterDescriptor
              // and work directly with the ParameterDefinition
              params.put(paramExtension.getClass().getEnclosingClass().getName(), paramExtension.getDisplayName());
          }
  
          return params;
      }
docs: Returns a map of all {@link ParameterDefinition}s that can be used in
  jobs.
  
  <p>The key is the class name of the {@link ParameterDefinition}, the value
  is its display name.</p>