// Path: src/main/java/com/github/sbouclier/input/InfoInput.java
// public enum InfoInput {
// 
//     ALL("info"),
//     LEVERAGE("leverage"),
//     FEES("fees"),
//     MARGIN("margin");
// 
//     private String value;
// 
//     InfoInput(String value) {
//         this.value = value;
//     }
// 
//     @JsonValue
//     public String getValue() {
//         return value;
//     }
// }
// 
// Path: src/main/java/com/github/sbouclier/input/Interval.java
// public enum Interval {
// 
//     ONE_MINUTE(1),
//     FIVE_MINUTES(5),
//     FIFTEEN_MINUTES(15),
//     THIRTY_MINUTES(30),
//     ONE_HOUR(60),
//     FOUR_HOURS(240),
//     ONE_DAY(1440),
//     ONE_WEEK(10080),
//     FIFTEEN_DAYS(21600);
// 
//     private int minutes;
// 
//     Interval(int minutes) {
//         this.minutes = minutes;
//     }
// 
//     public int getMinutes() {
//         return minutes;
//     }
// }


import com.github.sbouclier.input.InfoInput;
import com.github.sbouclier.input.Interval;
import com.github.sbouclier.result.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
     * @throws KrakenApiException
     */
    public AssetsInformationResult getAssetsInformation(String... assets) throws KrakenApiException {
        HttpApiClient<AssetsInformationResult> client = (HttpApiClient<AssetsInformationResult>) this.clientFactory.getHttpApiClient(KrakenApiMethod.ASSET_INFORMATION);

        Map<String, String> params = new HashMap<>();
        params.put("asset", String.join(",", assets));

        return client.callPublic(BASE_URL, KrakenApiMethod.ASSET_INFORMATION, AssetsInformationResult.class, params);
    }

    /**
     * Get tradable asset pairs
     *
     * @return asset pairs
     * @throws KrakenApiException
     */
    public AssetPairsResult getAssetPairs() throws KrakenApiException {
        HttpApiClient<AssetPairsResult> client = (HttpApiClient<AssetPairsResult>) this.clientFactory.getHttpApiClient(KrakenApiMethod.ASSET_PAIRS);
        return client.callPublic(BASE_URL, KrakenApiMethod.ASSET_PAIRS, AssetPairsResult.class);
    }

    /**
     * Get tradable asset pairs
     *
     * @param info informations to retrieve
     * @param assetPairs asset pairs to retrieve
     * @return asset pairs
     * @throws KrakenApiException
     */
// Path: src/main/java/com/github/sbouclier/input/InfoInput.java
// public enum InfoInput {
// 
//     ALL("info"),
//     LEVERAGE("leverage"),
//     FEES("fees"),
//     MARGIN("margin");
// 
//     private String value;
// 
//     InfoInput(String value) {
//         this.value = value;
//     }
// 
//     @JsonValue
//     public String getValue() {
//         return value;
//     }
// }
// 
// Path: src/main/java/com/github/sbouclier/input/Interval.java
// public enum Interval {
// 
//     ONE_MINUTE(1),
//     FIVE_MINUTES(5),
//     FIFTEEN_MINUTES(15),
//     THIRTY_MINUTES(30),
//     ONE_HOUR(60),
//     FOUR_HOURS(240),
//     ONE_DAY(1440),
//     ONE_WEEK(10080),
//     FIFTEEN_DAYS(21600);
// 
//     private int minutes;
// 
//     Interval(int minutes) {
//         this.minutes = minutes;
//     }
// 
//     public int getMinutes() {
//         return minutes;
//     }
// }


// Path: src/main/java/com/github/sbouclier/KrakenAPIClient.java
import com.github.sbouclier.input.InfoInput;
import com.github.sbouclier.input.Interval;
import com.github.sbouclier.result.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

     * @throws KrakenApiException
     */
    public AssetsInformationResult getAssetsInformation(String... assets) throws KrakenApiException {
        HttpApiClient<AssetsInformationResult> client = (HttpApiClient<AssetsInformationResult>) this.clientFactory.getHttpApiClient(KrakenApiMethod.ASSET_INFORMATION);

        Map<String, String> params = new HashMap<>();
        params.put("asset", String.join(",", assets));

        return client.callPublic(BASE_URL, KrakenApiMethod.ASSET_INFORMATION, AssetsInformationResult.class, params);
    }

    /**
     * Get tradable asset pairs
     *
     * @return asset pairs
     * @throws KrakenApiException
     */
    public AssetPairsResult getAssetPairs() throws KrakenApiException {
        HttpApiClient<AssetPairsResult> client = (HttpApiClient<AssetPairsResult>) this.clientFactory.getHttpApiClient(KrakenApiMethod.ASSET_PAIRS);
        return client.callPublic(BASE_URL, KrakenApiMethod.ASSET_PAIRS, AssetPairsResult.class);
    }

    /**
     * Get tradable asset pairs
     *
     * @param info informations to retrieve
     * @param assetPairs asset pairs to retrieve
     * @return asset pairs
     * @throws KrakenApiException
     */
    public AssetPairsResult getAssetPairs(InfoInput info, String... assetPairs) throws KrakenApiException {