uk.org.openbanking.datamodel.account.OBTierBand1 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openbanking-sdk Show documentation
Show all versions of openbanking-sdk Show documentation
A Java SDK to help implementing the Open Banking standard : https://www.openbanking.org.uk/read-write-apis/
/**
*
* The contents of this file are subject to the terms of the Common Development and
* Distribution License (the License). You may not use this file except in compliance with the
* License.
*
* You can obtain a copy of the License at https://forgerock.org/cddlv1-0/. See the License for the
* specific language governing permission and limitations under the License.
*
* When distributing Covered Software, include this CDDL Header Notice in each file and include
* the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
* Header, with the fields enclosed by brackets [] replaced by your own identifying
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2019 ForgeRock AS.
*/
package uk.org.openbanking.datamodel.account;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* Tier Band Details
*/
@ApiModel(description = "Tier Band Details")
@Validated
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2018-06-25T23:06:46.214+01:00")
public class OBTierBand1 {
@JsonProperty("Identification")
private String identification = null;
@JsonProperty("TierValueMinimum")
private String tierValueMinimum = null;
@JsonProperty("TierValueMaximum")
private String tierValueMaximum = null;
@JsonProperty("CalculationFrequency")
private OBFrequency1Code calculationFrequency = null;
@JsonProperty("ApplicationFrequency")
private OBFrequency1Code applicationFrequency = null;
@JsonProperty("DepositInterestAppliedCoverage")
private OBTierBandType1Code depositInterestAppliedCoverage = null;
@JsonProperty("FixedVariableInterestRateType")
private OBInterestFixedVariableType1Code fixedVariableInterestRateType = null;
@JsonProperty("AER")
private String aer = null;
@JsonProperty("BankInterestRateType")
private OBInterestRateType1Code bankInterestRateType = null;
@JsonProperty("BankInterestRate")
private String bankInterestRate = null;
@JsonProperty("Notes")
@Valid
private List notes = null;
@JsonProperty("OBOtherCodeType1")
private OBOtherCodeType1 otherBankInterestType = null;
@JsonProperty("OtherApplicationFrequency")
private OBOtherCodeType1 otherApplicationFrequency = null;
@JsonProperty("OtherCalculationFrequency")
private OBOtherCodeType1 otherCalculationFrequency = null;
public OBTierBand1 identification(String identification) {
this.identification = identification;
return this;
}
/**
* Unique and unambiguous identification of a Tier Band for a BCA.
* @return identification
**/
@ApiModelProperty(value = "Unique and unambiguous identification of a Tier Band for a BCA.")
@Size(min=1,max=35)
public String getIdentification() {
return identification;
}
public void setIdentification(String identification) {
this.identification = identification;
}
public OBTierBand1 tierValueMinimum(String tierValueMinimum) {
this.tierValueMinimum = tierValueMinimum;
return this;
}
/**
* Minimum deposit value for which the credit interest tier applies.
* @return tierValueMinimum
**/
@ApiModelProperty(required = true, value = "Minimum deposit value for which the credit interest tier applies.")
@NotNull
@Pattern(regexp="^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$")
public String getTierValueMinimum() {
return tierValueMinimum;
}
public void setTierValueMinimum(String tierValueMinimum) {
this.tierValueMinimum = tierValueMinimum;
}
public OBTierBand1 tierValueMaximum(String tierValueMaximum) {
this.tierValueMaximum = tierValueMaximum;
return this;
}
/**
* Maximum deposit value for which the credit interest tier applies.
* @return tierValueMaximum
**/
@ApiModelProperty(value = "Maximum deposit value for which the credit interest tier applies.")
@Pattern(regexp="^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$")
public String getTierValueMaximum() {
return tierValueMaximum;
}
public void setTierValueMaximum(String tierValueMaximum) {
this.tierValueMaximum = tierValueMaximum;
}
public OBTierBand1 calculationFrequency(OBFrequency1Code calculationFrequency) {
this.calculationFrequency = calculationFrequency;
return this;
}
/**
* How often is credit interest calculated for the account.
* @return calculationFrequency
**/
@ApiModelProperty(value = "How often is credit interest calculated for the account.")
public OBFrequency1Code getCalculationFrequency() {
return calculationFrequency;
}
public void setCalculationFrequency(OBFrequency1Code calculationFrequency) {
this.calculationFrequency = calculationFrequency;
}
public OBTierBand1 applicationFrequency(OBFrequency1Code applicationFrequency) {
this.applicationFrequency = applicationFrequency;
return this;
}
/**
* How often is interest applied to the BCA for this tier/band i.e. how often the financial institution pays accumulated interest to the customer's BCA.
* @return applicationFrequency
**/
@ApiModelProperty(required = true, value = "How often is interest applied to the BCA for this tier/band i.e. how often the financial institution pays accumulated interest to the customer's BCA.")
@NotNull
public OBFrequency1Code getApplicationFrequency() {
return applicationFrequency;
}
public void setApplicationFrequency(OBFrequency1Code applicationFrequency) {
this.applicationFrequency = applicationFrequency;
}
public OBTierBand1 depositInterestAppliedCoverage(OBTierBandType1Code depositInterestAppliedCoverage) {
this.depositInterestAppliedCoverage = depositInterestAppliedCoverage;
return this;
}
/**
* Amount on which Interest applied.
* @return depositInterestAppliedCoverage
**/
@ApiModelProperty(value = "Amount on which Interest applied.")
public OBTierBandType1Code getDepositInterestAppliedCoverage() {
return depositInterestAppliedCoverage;
}
public void setDepositInterestAppliedCoverage(OBTierBandType1Code depositInterestAppliedCoverage) {
this.depositInterestAppliedCoverage = depositInterestAppliedCoverage;
}
public OBTierBand1 fixedVariableInterestRateType(OBInterestFixedVariableType1Code fixedVariableInterestRateType) {
this.fixedVariableInterestRateType = fixedVariableInterestRateType;
return this;
}
/**
* Type of interest rate, Fixed or Variable
* @return fixedVariableInterestRateType
**/
@ApiModelProperty(required = true, value = "Type of interest rate, Fixed or Variable")
@NotNull
public OBInterestFixedVariableType1Code getFixedVariableInterestRateType() {
return fixedVariableInterestRateType;
}
public void setFixedVariableInterestRateType(OBInterestFixedVariableType1Code fixedVariableInterestRateType) {
this.fixedVariableInterestRateType = fixedVariableInterestRateType;
}
public OBTierBand1 aer(String aer) {
this.aer = aer;
return this;
}
/**
* The annual equivalent rate (AER) is interest that is calculated under the assumption that any interest paid is combined with the original balance and the next interest payment will be based on the slightly higher account balance. Overall, this means that interest can be compounded several times in a year depending on the number of times that interest payments are made. Read more: Annual Equivalent Rate (AER) http://www.investopedia.com/terms/a/aer.asp#ixzz4gfR7IO1A
* @return AER
**/
@ApiModelProperty(required = true, value = "The annual equivalent rate (AER) is interest that is calculated under the assumption that any interest paid is combined with the original balance and the next interest payment will be based on the slightly higher account balance. Overall, this means that interest can be compounded several times in a year depending on the number of times that interest payments are made. Read more: Annual Equivalent Rate (AER) http://www.investopedia.com/terms/a/aer.asp#ixzz4gfR7IO1A")
@NotNull
@Pattern(regexp="^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$")
public String getAer() {
return aer;
}
public void setAer(String aer) {
this.aer = aer;
}
public OBTierBand1 bankInterestRateType(OBInterestRateType1Code bankInterestRateType) {
this.bankInterestRateType = bankInterestRateType;
return this;
}
/**
* Interest rate types, other than AER, which financial institutions may use to describe the annual interest rate payable to the BCA.
* @return bankInterestRateType
**/
@ApiModelProperty(value = "Interest rate types, other than AER, which financial institutions may use to describe the annual interest rate payable to the BCA.")
public OBInterestRateType1Code getBankInterestRateType() {
return bankInterestRateType;
}
public void setBankInterestRateType(OBInterestRateType1Code bankInterestRateType) {
this.bankInterestRateType = bankInterestRateType;
}
public OBTierBand1 bankInterestRate(String bankInterestRate) {
this.bankInterestRate = bankInterestRate;
return this;
}
/**
* Bank Interest for the BCA product
* @return bankInterestRate
**/
@ApiModelProperty(value = "Bank Interest for the BCA product")
@Pattern(regexp="^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$")
public String getBankInterestRate() {
return bankInterestRate;
}
public void setBankInterestRate(String bankInterestRate) {
this.bankInterestRate = bankInterestRate;
}
public OBTierBand1 notes(List notes) {
this.notes = notes;
return this;
}
public OBTierBand1 addNotesItem(String notesItem) {
if (this.notes == null) {
this.notes = new ArrayList();
}
this.notes.add(notesItem);
return this;
}
/**
* Optional additional notes to supplement the Tier Band details
* @return notes
**/
@ApiModelProperty(value = "Optional additional notes to supplement the Tier Band details")
public List getNotes() {
return notes;
}
public void setNotes(List notes) {
this.notes = notes;
}
public OBTierBand1 otherBankInterestType(OBOtherCodeType1 otherBankInterestType) {
this.otherBankInterestType = otherBankInterestType;
return this;
}
/**
* Get otherBankInterestType
* @return otherBankInterestType
**/
@ApiModelProperty(value = "")
@Valid
public OBOtherCodeType1 getOtherBankInterestType() {
return otherBankInterestType;
}
public void setOtherBankInterestType(OBOtherCodeType1 otherBankInterestType) {
this.otherBankInterestType = otherBankInterestType;
}
public OBTierBand1 otherApplicationFrequency(OBOtherCodeType1 otherApplicationFrequency) {
this.otherApplicationFrequency = otherApplicationFrequency;
return this;
}
/**
* Get otherApplicationFrequency
* @return otherApplicationFrequency
**/
@ApiModelProperty(value = "")
@Valid
public OBOtherCodeType1 getOtherApplicationFrequency() {
return otherApplicationFrequency;
}
public void setOtherApplicationFrequency(OBOtherCodeType1 otherApplicationFrequency) {
this.otherApplicationFrequency = otherApplicationFrequency;
}
public OBTierBand1 otherCalculationFrequency(OBOtherCodeType1 otherCalculationFrequency) {
this.otherCalculationFrequency = otherCalculationFrequency;
return this;
}
/**
* Get otherCalculationFrequency
* @return otherCalculationFrequency
**/
@ApiModelProperty(value = "")
@Valid
public OBOtherCodeType1 getOtherCalculationFrequency() {
return otherCalculationFrequency;
}
public void setOtherCalculationFrequency(OBOtherCodeType1 otherCalculationFrequency) {
this.otherCalculationFrequency = otherCalculationFrequency;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
OBTierBand1 creditInterest1TierBand = (OBTierBand1) o;
return Objects.equals(this.identification, creditInterest1TierBand.identification) &&
Objects.equals(this.tierValueMinimum, creditInterest1TierBand.tierValueMinimum) &&
Objects.equals(this.tierValueMaximum, creditInterest1TierBand.tierValueMaximum) &&
Objects.equals(this.calculationFrequency, creditInterest1TierBand.calculationFrequency) &&
Objects.equals(this.applicationFrequency, creditInterest1TierBand.applicationFrequency) &&
Objects.equals(this.depositInterestAppliedCoverage, creditInterest1TierBand.depositInterestAppliedCoverage) &&
Objects.equals(this.fixedVariableInterestRateType, creditInterest1TierBand.fixedVariableInterestRateType) &&
Objects.equals(this.aer, creditInterest1TierBand.aer) &&
Objects.equals(this.bankInterestRateType, creditInterest1TierBand.bankInterestRateType) &&
Objects.equals(this.bankInterestRate, creditInterest1TierBand.bankInterestRate) &&
Objects.equals(this.notes, creditInterest1TierBand.notes) &&
Objects.equals(this.otherBankInterestType, creditInterest1TierBand.otherBankInterestType) &&
Objects.equals(this.otherApplicationFrequency, creditInterest1TierBand.otherApplicationFrequency) &&
Objects.equals(this.otherCalculationFrequency, creditInterest1TierBand.otherCalculationFrequency);
}
@Override
public int hashCode() {
return Objects.hash(identification, tierValueMinimum, tierValueMaximum, calculationFrequency, applicationFrequency, depositInterestAppliedCoverage, fixedVariableInterestRateType, aer, bankInterestRateType, bankInterestRate, notes, otherBankInterestType, otherApplicationFrequency, otherCalculationFrequency);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class OBTierBand1 {\n");
sb.append(" identification: ").append(toIndentedString(identification)).append("\n");
sb.append(" tierValueMinimum: ").append(toIndentedString(tierValueMinimum)).append("\n");
sb.append(" tierValueMaximum: ").append(toIndentedString(tierValueMaximum)).append("\n");
sb.append(" calculationFrequency: ").append(toIndentedString(calculationFrequency)).append("\n");
sb.append(" applicationFrequency: ").append(toIndentedString(applicationFrequency)).append("\n");
sb.append(" depositInterestAppliedCoverage: ").append(toIndentedString(depositInterestAppliedCoverage)).append("\n");
sb.append(" fixedVariableInterestRateType: ").append(toIndentedString(fixedVariableInterestRateType)).append("\n");
sb.append(" AER: ").append(toIndentedString(aer)).append("\n");
sb.append(" bankInterestRateType: ").append(toIndentedString(bankInterestRateType)).append("\n");
sb.append(" bankInterestRate: ").append(toIndentedString(bankInterestRate)).append("\n");
sb.append(" notes: ").append(toIndentedString(notes)).append("\n");
sb.append(" otherBankInterestType: ").append(toIndentedString(otherBankInterestType)).append("\n");
sb.append(" otherApplicationFrequency: ").append(toIndentedString(otherApplicationFrequency)).append("\n");
sb.append(" otherCalculationFrequency: ").append(toIndentedString(otherCalculationFrequency)).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}