// Path: src/main/java/com/hyperwallet/clientsdk/model/HyperwalletTransfer.java
// public static class ForeignExchange {
// 
//     private Double sourceAmount;
//     private String sourceCurrency;
//     private Double destinationAmount;
//     private String destinationCurrency;
//     private Double rate;
// 
//     public Double getSourceAmount() {
//         return sourceAmount;
//     }
// 
//     public void setSourceAmount(Double sourceAmount) {
//         this.sourceAmount = sourceAmount;
//     }
// 
//     public String getSourceCurrency() {
//         return sourceCurrency;
//     }
// 
//     public void setSourceCurrency(String sourceCurrency) {
//         this.sourceCurrency = sourceCurrency;
//     }
// 
//     public Double getDestinationAmount() {
//         return destinationAmount;
//     }
// 
//     public void setDestinationAmount(Double destinationAmount) {
//         this.destinationAmount = destinationAmount;
//     }
// 
//     public String getDestinationCurrency() {
//         return destinationCurrency;
//     }
// 
//     public void setDestinationCurrency(String destinationCurrency) {
//         this.destinationCurrency = destinationCurrency;
//     }
// 
//     public Double getRate() {
//         return rate;
//     }
// 
//     public void setRate(Double rate) {
//         this.rate = rate;
//     }
// }
// 
// Path: src/main/java/com/hyperwallet/clientsdk/util/HyperwalletJsonConfiguration.java
// public class HyperwalletJsonConfiguration {
// 
//     public static final String INCLUSION_FILTER = "inclusion-filter";
//     private ObjectMapper objectMapper;
//     private ObjectMapper parsingObjectMapper;
// 
//     HyperwalletJsonConfiguration() {
//         DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
//         dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
// 
//         this.objectMapper = new ObjectMapper()
//                 .configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true)
//                 .configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true)
//                 .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
//                 .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
//                 .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
//                 .configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false)
//                 .configure(SerializationFeature.WRITE_ENUMS_USING_INDEX, false)
//                 .setDateFormat(dateFormat)
//                 .setSerializationInclusion(Include.ALWAYS);
// 
//         this.parsingObjectMapper = new ObjectMapper()
//                 .configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true)
//                 .configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true)
//                 .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
//                 .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
//                 .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
//                 .configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false)
//                 .configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false)
//                 .configure(SerializationFeature.WRITE_ENUMS_USING_INDEX, false);
//     }
// 
//     public ObjectMapper getParser() {
//         return this.parsingObjectMapper;
//     }
// 
//     public ObjectMapper getContext(final Class<?> type) {
//         return objectMapper;
//     }
// 
// 
// }


import com.fasterxml.jackson.annotation.JsonFilter;
import com.hyperwallet.clientsdk.model.HyperwalletTransfer.ForeignExchange;
import com.hyperwallet.clientsdk.util.HyperwalletJsonConfiguration;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Date;
import java.util.List;
package com.hyperwallet.clientsdk.model;



@JsonFilter(HyperwalletJsonConfiguration.INCLUSION_FILTER)
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class HyperwalletTransferRefund extends HyperwalletBaseMonitor {

    public static enum Status {PENDING, FAILED, COMPLETED}

    private String token;
    private Status status;
    private String clientRefundId;
    private String sourceToken;
    private Double sourceAmount;
    private String sourceCurrency;
    private String destinationToken;
    private Double destinationAmount;
    private String destinationCurrency;
// Path: src/main/java/com/hyperwallet/clientsdk/model/HyperwalletTransfer.java
// public static class ForeignExchange {
// 
//     private Double sourceAmount;
//     private String sourceCurrency;
//     private Double destinationAmount;
//     private String destinationCurrency;
//     private Double rate;
// 
//     public Double getSourceAmount() {
//         return sourceAmount;
//     }
// 
//     public void setSourceAmount(Double sourceAmount) {
//         this.sourceAmount = sourceAmount;
//     }
// 
//     public String getSourceCurrency() {
//         return sourceCurrency;
//     }
// 
//     public void setSourceCurrency(String sourceCurrency) {
//         this.sourceCurrency = sourceCurrency;
//     }
// 
//     public Double getDestinationAmount() {
//         return destinationAmount;
//     }
// 
//     public void setDestinationAmount(Double destinationAmount) {
//         this.destinationAmount = destinationAmount;
//     }
// 
//     public String getDestinationCurrency() {
//         return destinationCurrency;
//     }
// 
//     public void setDestinationCurrency(String destinationCurrency) {
//         this.destinationCurrency = destinationCurrency;
//     }
// 
//     public Double getRate() {
//         return rate;
//     }
// 
//     public void setRate(Double rate) {
//         this.rate = rate;
//     }
// }
// 
// Path: src/main/java/com/hyperwallet/clientsdk/util/HyperwalletJsonConfiguration.java
// public class HyperwalletJsonConfiguration {
// 
//     public static final String INCLUSION_FILTER = "inclusion-filter";
//     private ObjectMapper objectMapper;
//     private ObjectMapper parsingObjectMapper;
// 
//     HyperwalletJsonConfiguration() {
//         DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
//         dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
// 
//         this.objectMapper = new ObjectMapper()
//                 .configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true)
//                 .configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true)
//                 .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
//                 .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
//                 .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
//                 .configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false)
//                 .configure(SerializationFeature.WRITE_ENUMS_USING_INDEX, false)
//                 .setDateFormat(dateFormat)
//                 .setSerializationInclusion(Include.ALWAYS);
// 
//         this.parsingObjectMapper = new ObjectMapper()
//                 .configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true)
//                 .configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true)
//                 .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
//                 .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
//                 .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
//                 .configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false)
//                 .configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false)
//                 .configure(SerializationFeature.WRITE_ENUMS_USING_INDEX, false);
//     }
// 
//     public ObjectMapper getParser() {
//         return this.parsingObjectMapper;
//     }
// 
//     public ObjectMapper getContext(final Class<?> type) {
//         return objectMapper;
//     }
// 
// 
// }


// Path: src/main/java/com/hyperwallet/clientsdk/model/HyperwalletTransferRefund.java
import com.fasterxml.jackson.annotation.JsonFilter;
import com.hyperwallet.clientsdk.model.HyperwalletTransfer.ForeignExchange;
import com.hyperwallet.clientsdk.util.HyperwalletJsonConfiguration;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Date;
import java.util.List;

package com.hyperwallet.clientsdk.model;



@JsonFilter(HyperwalletJsonConfiguration.INCLUSION_FILTER)
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class HyperwalletTransferRefund extends HyperwalletBaseMonitor {

    public static enum Status {PENDING, FAILED, COMPLETED}

    private String token;
    private Status status;
    private String clientRefundId;
    private String sourceToken;
    private Double sourceAmount;
    private String sourceCurrency;
    private String destinationToken;
    private Double destinationAmount;
    private String destinationCurrency;
    private List<ForeignExchange> foreignExchanges;