Model para Json composto

Olá pessoal, Estou tentando utilizar o RestTemplate do Spring Boot para fazer um GET em uma api JSON, porém o response é JSON NESTED e o meu modelo não está conseguindo entender o campo nested desse JSON. Segue meu código abaixo.

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Currency {

	private BigDecimal amount;		
	private String base_currency_code;
	private String base_currency_name;		
	private Rates rates;
	private String status;
	private Date updated_date;
	
	public BigDecimal getAmount() {
		return amount;
	}
	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}
	public String getBase_currency_code() {
		return base_currency_code;
	}
	public void setBase_currency_code(String base_currency_code) {
		this.base_currency_code = base_currency_code;
	}
	public String getBase_currency_name() {
		return base_currency_name;
	}
	public void setBase_currency_name(String base_currency_name) {
		this.base_currency_name = base_currency_name;
	}
	public Rates getRates() {
		return rates;
	}
	public void setRates(Rates rates) {
		this.rates = rates;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public Date getUpdated_date() {
		return updated_date;
	}
	public void setUpdated_date(Date updated_date) {
		this.updated_date = updated_date;
	}

}

package br.com.marcelomsilva.valorhoje.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Rates {
private BRL BRL;

public BRL getBRL() {
	return this.BRL;
}

public void setBRL(BRL brl) {
	this.BRL = brl;
}	

}

public class BRL {
private String currency_name;
private String rate;
private String rate_for_amount;

public String getCurrency_name() {
	return currency_name;
}
public void setCurrency_name(String currency_name) {
	this.currency_name = currency_name;
}
public String getRate() {
	return rate;
}
public void setRate(String rate) {
	this.rate = rate;
}
public String getRate_for_amount() {
	return rate_for_amount;
}
public void setRate_for_amount(String rate_for_amount) {
	this.rate_for_amount = rate_for_amount;
}

}

@marcelomsilva
boa noite, segue exemplo:

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@ToString
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Currency implements Serializable {

    private static final long serialVersionUID = -7175171855460113680L;
    private BigDecimal amount;
    @JsonAlias("base_currency_code")
    private String baseCurrencyCode;
    private Rates rates;
    private String status;
    @JsonAlias("updated_date")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "America/Sao_Paulo")
    private Date updatedDate;

}
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@ToString
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Rates implements Serializable {

    private static final long serialVersionUID = -1621953727044942951L;
    @JsonAlias("BRL")
    private Brl brl;

}
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@ToString
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Brl implements Serializable {

    private static final long serialVersionUID = -8632762889283113740L;
    @JsonAlias("currency_name")
    private String currencyName;
    private String rate;
    @JsonAlias("rate_for_amount")
    private String rateForAmount;

}

Eu fiz um teste usando apenas a biblioteca Jackson e deu certinho.

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.text.SimpleDateFormat;

public class JsonParseTest {

    public static void main(String[] args) {
        new JsonParseTest().start();
    }

    public void start() {
        try {
            File file = new File("src/br/com/json_parse/text.json");
            ObjectMapper objectMapper = new ObjectMapper();
            Currency currency = objectMapper.readValue(file, Currency.class);
            System.out.println(currency);
            System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(currency.getUpdatedDate()));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}

Resultado:

Currency(amount=1.0000, baseCurrencyCode=USD, rates=Rates(brl=Brl(currencyName=Brazilian Real, rate=5.7885, rateForAmount=5.7885)), status=sucess, updatedDate=Mon May 18 00:00:00 BRT 2020)