code: public static LocalCall<Map<String, Change<Xor<String, List<Info>>>>> install(
              boolean refresh, List<String> pkgs, List<String> attributes) {
          LinkedHashMap<String, Object> kwargs = new LinkedHashMap<>();
          kwargs.put("refresh", refresh);
          kwargs.put("pkgs", pkgs);
          kwargs.put("attr", attributes);
          return new LocalCall<>("pkg.install", Optional.empty(), Optional.of(kwargs),
                  new TypeToken<Map<String, Change<Xor<String, List<Info>>>>>(){});
      }
docs: Call 'pkg.install' API.
  
  @param refresh refresh repos before installation
  @param pkgs list of packages
  @param attributes list of attributes that should be included in the result
  @return the call. For each package, a change of old and new value.
  Those can contain an empty String, or a package version String, or an Info object
  containing specified attributes. They exact type depends on the Salt version
  depending on Salt version used and minion support