// Path: src/main/java/com/gocardless/resources/CurrencyExchangeRate.java
// public class CurrencyExchangeRate {
//     private CurrencyExchangeRate() {
//         // blank to prevent instantiation
//     }
// 
//     private String rate;
//     private String source;
//     private String target;
//     private String time;
// 
//     /**
//      * The exchange rate from the source to target currencies provided with up to 10 decimal places.
//      */
//     public String getRate() {
//         return rate;
//     }
// 
//     /**
//      * Source currency
//      */
//     public String getSource() {
//         return source;
//     }
// 
//     /**
//      * Target currency
//      */
//     public String getTarget() {
//         return target;
//     }
// 
//     /**
//      * Time at which the rate was retrieved from the provider.
//      */
//     public String getTime() {
//         return time;
//     }
// }


import com.gocardless.http.*;
import com.gocardless.resources.CurrencyExchangeRate;
import com.google.common.collect.ImmutableMap;
import com.google.gson.reflect.TypeToken;
import java.util.List;
import java.util.Map;
            }
            createdAt.withLte(lte);
            return this;
        }

        /**
         * Number of records to return.
         */
        public CurrencyExchangeRateListRequest<S> withLimit(Integer limit) {
            setLimit(limit);
            return this;
        }

        /**
         * Source currency
         */
        public CurrencyExchangeRateListRequest<S> withSource(String source) {
            this.source = source;
            return this;
        }

        /**
         * Target currency
         */
        public CurrencyExchangeRateListRequest<S> withTarget(String target) {
            this.target = target;
            return this;
        }

        private CurrencyExchangeRateListRequest(HttpClient httpClient,
// Path: src/main/java/com/gocardless/resources/CurrencyExchangeRate.java
// public class CurrencyExchangeRate {
//     private CurrencyExchangeRate() {
//         // blank to prevent instantiation
//     }
// 
//     private String rate;
//     private String source;
//     private String target;
//     private String time;
// 
//     /**
//      * The exchange rate from the source to target currencies provided with up to 10 decimal places.
//      */
//     public String getRate() {
//         return rate;
//     }
// 
//     /**
//      * Source currency
//      */
//     public String getSource() {
//         return source;
//     }
// 
//     /**
//      * Target currency
//      */
//     public String getTarget() {
//         return target;
//     }
// 
//     /**
//      * Time at which the rate was retrieved from the provider.
//      */
//     public String getTime() {
//         return time;
//     }
// }


// Path: src/main/java/com/gocardless/services/CurrencyExchangeRateService.java
import com.gocardless.http.*;
import com.gocardless.resources.CurrencyExchangeRate;
import com.google.common.collect.ImmutableMap;
import com.google.gson.reflect.TypeToken;
import java.util.List;
import java.util.Map;

            }
            createdAt.withLte(lte);
            return this;
        }

        /**
         * Number of records to return.
         */
        public CurrencyExchangeRateListRequest<S> withLimit(Integer limit) {
            setLimit(limit);
            return this;
        }

        /**
         * Source currency
         */
        public CurrencyExchangeRateListRequest<S> withSource(String source) {
            this.source = source;
            return this;
        }

        /**
         * Target currency
         */
        public CurrencyExchangeRateListRequest<S> withTarget(String target) {
            this.target = target;
            return this;
        }

        private CurrencyExchangeRateListRequest(HttpClient httpClient,
                ListRequestExecutor<S, CurrencyExchangeRate> executor) {