All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.org.openbanking.datamodel.account.BCAFeeChargeDetail Maven / Gradle / Ivy

Go to download

A Java SDK to help implementing the Open Banking standard : https://www.openbanking.org.uk/read-write-apis/

There is a newer version: 3.1.2.5
Show newest version
/**
 *
 * 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.
 */
/*
 * Account and Transaction API Specification
 * Swagger for Account and Transaction API Specification
 *
 * OpenAPI spec version: v3.1.2-RC1
 * Contact: [email protected]
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */


package uk.org.openbanking.datamodel.account;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * Other fees/charges details
 */
@ApiModel(description = "Other fees/charges details")
@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2019-06-13T15:59:01.633+01:00")
public class BCAFeeChargeDetail {
    @JsonProperty("FeeCategory")
    private FeeCategoryEnum feeCategory = null;
    @JsonProperty("FeeType")
    private FeeTypeEnum feeType = null;
    @JsonProperty("NegotiableIndicator")
    private Boolean negotiableIndicator = null;
    @JsonProperty("FeeAmount")
    private String feeAmount = null;
    @JsonProperty("FeeRate")
    private String feeRate = null;
    @JsonProperty("FeeRateType")
    private FeeRateTypeEnum feeRateType = null;
    @JsonProperty("ApplicationFrequency")
    private ApplicationFrequencyEnum applicationFrequency = null;
    @JsonProperty("CalculationFrequency")
    private CalculationFrequencyEnum calculationFrequency = null;
    @JsonProperty("Notes")
    private List notes = null;
    @JsonProperty("FeeChargeCap")
    private List feeChargeCap = null;
    @JsonProperty("OtherFeeCategoryType")
    private OtherFeeCategoryType otherFeeCategoryType = null;
    @JsonProperty("OtherFeeType")
    private OtherFeeType1 otherFeeType = null;
    @JsonProperty("OtherFeeRateType")
    private OtherFeeRateType1 otherFeeRateType = null;
    @JsonProperty("OtherApplicationFrequency")
    private OtherApplicationFrequency1 otherApplicationFrequency = null;
    @JsonProperty("OtherCalculationFrequency")
    private OtherCalculationFrequency1 otherCalculationFrequency = null;
    @JsonProperty("FeeApplicableRange")
    private FeeApplicableRange feeApplicableRange = null;

    public BCAFeeChargeDetail feeCategory(FeeCategoryEnum feeCategory) {
        this.feeCategory = feeCategory;
        return this;
    }

    /**
     * Categorisation of fees and charges into standard categories.
     *
     * @return feeCategory
     **/
    @NotNull
    @ApiModelProperty(required = true, value = "Categorisation of fees and charges into standard categories.")
    public FeeCategoryEnum getFeeCategory() {
        return feeCategory;
    }

    public void setFeeCategory(FeeCategoryEnum feeCategory) {
        this.feeCategory = feeCategory;
    }

    public BCAFeeChargeDetail feeType(FeeTypeEnum feeType) {
        this.feeType = feeType;
        return this;
    }

    /**
     * Fee/Charge Type
     *
     * @return feeType
     **/
    @NotNull
    @ApiModelProperty(required = true, value = "Fee/Charge Type")
    public FeeTypeEnum getFeeType() {
        return feeType;
    }

    public void setFeeType(FeeTypeEnum feeType) {
        this.feeType = feeType;
    }

    public BCAFeeChargeDetail negotiableIndicator(Boolean negotiableIndicator) {
        this.negotiableIndicator = negotiableIndicator;
        return this;
    }

    /**
     * Fee/charge which is usually negotiable rather than a fixed amount
     *
     * @return negotiableIndicator
     **/
    @ApiModelProperty(value = "Fee/charge which is usually negotiable rather than a fixed amount")
    public Boolean isNegotiableIndicator() {
        return negotiableIndicator;
    }

    public void setNegotiableIndicator(Boolean negotiableIndicator) {
        this.negotiableIndicator = negotiableIndicator;
    }

    public BCAFeeChargeDetail feeAmount(String feeAmount) {
        this.feeAmount = feeAmount;
        return this;
    }

    /**
     * Fee Amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)
     *
     * @return feeAmount
     **/
    @Pattern(regexp = "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$")
    @ApiModelProperty(value = "Fee Amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)")
    public String getFeeAmount() {
        return feeAmount;
    }

    public void setFeeAmount(String feeAmount) {
        this.feeAmount = feeAmount;
    }

    public BCAFeeChargeDetail feeRate(String feeRate) {
        this.feeRate = feeRate;
        return this;
    }

    /**
     * Rate charged for Fee/Charge (where it is charged in terms of a rate rather than an amount)
     *
     * @return feeRate
     **/
    @Pattern(regexp = "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$")
    @ApiModelProperty(value = "Rate charged for Fee/Charge (where it is charged in terms of a rate rather than an amount)")
    public String getFeeRate() {
        return feeRate;
    }

    public void setFeeRate(String feeRate) {
        this.feeRate = feeRate;
    }

    public BCAFeeChargeDetail feeRateType(FeeRateTypeEnum feeRateType) {
        this.feeRateType = feeRateType;
        return this;
    }

    /**
     * Rate type for Fee/Charge (where it is charged in terms of a rate rather than an amount)
     *
     * @return feeRateType
     **/
    @ApiModelProperty(value = "Rate type for Fee/Charge (where it is charged in terms of a rate rather than an amount)")
    public FeeRateTypeEnum getFeeRateType() {
        return feeRateType;
    }

    public void setFeeRateType(FeeRateTypeEnum feeRateType) {
        this.feeRateType = feeRateType;
    }

    public BCAFeeChargeDetail applicationFrequency(ApplicationFrequencyEnum applicationFrequency) {
        this.applicationFrequency = applicationFrequency;
        return this;
    }

    /**
     * How frequently the fee/charge is applied to the account
     *
     * @return applicationFrequency
     **/
    @NotNull
    @ApiModelProperty(required = true, value = "How frequently the fee/charge is applied to the account")
    public ApplicationFrequencyEnum getApplicationFrequency() {
        return applicationFrequency;
    }

    public void setApplicationFrequency(ApplicationFrequencyEnum applicationFrequency) {
        this.applicationFrequency = applicationFrequency;
    }

    public BCAFeeChargeDetail calculationFrequency(CalculationFrequencyEnum calculationFrequency) {
        this.calculationFrequency = calculationFrequency;
        return this;
    }

    /**
     * How frequently the fee/charge is calculated
     *
     * @return calculationFrequency
     **/
    @ApiModelProperty(value = "How frequently the fee/charge is calculated")
    public CalculationFrequencyEnum getCalculationFrequency() {
        return calculationFrequency;
    }

    public void setCalculationFrequency(CalculationFrequencyEnum calculationFrequency) {
        this.calculationFrequency = calculationFrequency;
    }

    public BCAFeeChargeDetail notes(List notes) {
        this.notes = notes;
        return this;
    }

    public BCAFeeChargeDetail addNotesItem(String notesItem) {
        if (this.notes == null) {
            this.notes = new ArrayList();
        }
        this.notes.add(notesItem);
        return this;
    }

    /**
     * Optional additional notes to supplement the fee/charge details.
     *
     * @return notes
     **/
    @ApiModelProperty(value = "Optional additional notes to supplement the fee/charge details.")
    public List getNotes() {
        return notes;
    }

    public void setNotes(List notes) {
        this.notes = notes;
    }

    public BCAFeeChargeDetail feeChargeCap(List feeChargeCap) {
        this.feeChargeCap = feeChargeCap;
        return this;
    }

    public BCAFeeChargeDetail addFeeChargeCapItem(BCAFeeChargeCap feeChargeCapItem) {
        if (this.feeChargeCap == null) {
            this.feeChargeCap = new ArrayList();
        }
        this.feeChargeCap.add(feeChargeCapItem);
        return this;
    }

    /**
     * Details about any caps (maximum charges) that apply to a particular or group of fee/charge
     *
     * @return feeChargeCap
     **/
    @Valid
    @ApiModelProperty(value = "Details about any caps (maximum charges) that apply to a particular or group of fee/charge")
    public List getFeeChargeCap() {
        return feeChargeCap;
    }

    public void setFeeChargeCap(List feeChargeCap) {
        this.feeChargeCap = feeChargeCap;
    }

    public BCAFeeChargeDetail otherFeeCategoryType(OtherFeeCategoryType otherFeeCategoryType) {
        this.otherFeeCategoryType = otherFeeCategoryType;
        return this;
    }

    /**
     * Get otherFeeCategoryType
     *
     * @return otherFeeCategoryType
     **/
    @Valid
    @ApiModelProperty(value = "")
    public OtherFeeCategoryType getOtherFeeCategoryType() {
        return otherFeeCategoryType;
    }

    public void setOtherFeeCategoryType(OtherFeeCategoryType otherFeeCategoryType) {
        this.otherFeeCategoryType = otherFeeCategoryType;
    }

    public BCAFeeChargeDetail otherFeeType(OtherFeeType1 otherFeeType) {
        this.otherFeeType = otherFeeType;
        return this;
    }

    /**
     * Get otherFeeType
     *
     * @return otherFeeType
     **/
    @Valid
    @ApiModelProperty(value = "")
    public OtherFeeType1 getOtherFeeType() {
        return otherFeeType;
    }

    public void setOtherFeeType(OtherFeeType1 otherFeeType) {
        this.otherFeeType = otherFeeType;
    }

    public BCAFeeChargeDetail otherFeeRateType(OtherFeeRateType1 otherFeeRateType) {
        this.otherFeeRateType = otherFeeRateType;
        return this;
    }

    /**
     * Get otherFeeRateType
     *
     * @return otherFeeRateType
     **/
    @Valid
    @ApiModelProperty(value = "")
    public OtherFeeRateType1 getOtherFeeRateType() {
        return otherFeeRateType;
    }

    public void setOtherFeeRateType(OtherFeeRateType1 otherFeeRateType) {
        this.otherFeeRateType = otherFeeRateType;
    }

    public BCAFeeChargeDetail otherApplicationFrequency(OtherApplicationFrequency1 otherApplicationFrequency) {
        this.otherApplicationFrequency = otherApplicationFrequency;
        return this;
    }

    /**
     * Get otherApplicationFrequency
     *
     * @return otherApplicationFrequency
     **/
    @Valid
    @ApiModelProperty(value = "")
    public OtherApplicationFrequency1 getOtherApplicationFrequency() {
        return otherApplicationFrequency;
    }

    public void setOtherApplicationFrequency(OtherApplicationFrequency1 otherApplicationFrequency) {
        this.otherApplicationFrequency = otherApplicationFrequency;
    }

    public BCAFeeChargeDetail otherCalculationFrequency(OtherCalculationFrequency1 otherCalculationFrequency) {
        this.otherCalculationFrequency = otherCalculationFrequency;
        return this;
    }

    /**
     * Get otherCalculationFrequency
     *
     * @return otherCalculationFrequency
     **/
    @Valid
    @ApiModelProperty(value = "")
    public OtherCalculationFrequency1 getOtherCalculationFrequency() {
        return otherCalculationFrequency;
    }

    public void setOtherCalculationFrequency(OtherCalculationFrequency1 otherCalculationFrequency) {
        this.otherCalculationFrequency = otherCalculationFrequency;
    }

    public BCAFeeChargeDetail feeApplicableRange(FeeApplicableRange feeApplicableRange) {
        this.feeApplicableRange = feeApplicableRange;
        return this;
    }

    /**
     * Get feeApplicableRange
     *
     * @return feeApplicableRange
     **/
    @Valid
    @ApiModelProperty(value = "")
    public FeeApplicableRange getFeeApplicableRange() {
        return feeApplicableRange;
    }

    public void setFeeApplicableRange(FeeApplicableRange feeApplicableRange) {
        this.feeApplicableRange = feeApplicableRange;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        BCAFeeChargeDetail bcAFeeChargeDetail = (BCAFeeChargeDetail) o;
        return Objects.equals(this.feeCategory, bcAFeeChargeDetail.feeCategory) &&
                Objects.equals(this.feeType, bcAFeeChargeDetail.feeType) &&
                Objects.equals(this.negotiableIndicator, bcAFeeChargeDetail.negotiableIndicator) &&
                Objects.equals(this.feeAmount, bcAFeeChargeDetail.feeAmount) &&
                Objects.equals(this.feeRate, bcAFeeChargeDetail.feeRate) &&
                Objects.equals(this.feeRateType, bcAFeeChargeDetail.feeRateType) &&
                Objects.equals(this.applicationFrequency, bcAFeeChargeDetail.applicationFrequency) &&
                Objects.equals(this.calculationFrequency, bcAFeeChargeDetail.calculationFrequency) &&
                Objects.equals(this.notes, bcAFeeChargeDetail.notes) &&
                Objects.equals(this.feeChargeCap, bcAFeeChargeDetail.feeChargeCap) &&
                Objects.equals(this.otherFeeCategoryType, bcAFeeChargeDetail.otherFeeCategoryType) &&
                Objects.equals(this.otherFeeType, bcAFeeChargeDetail.otherFeeType) &&
                Objects.equals(this.otherFeeRateType, bcAFeeChargeDetail.otherFeeRateType) &&
                Objects.equals(this.otherApplicationFrequency, bcAFeeChargeDetail.otherApplicationFrequency) &&
                Objects.equals(this.otherCalculationFrequency, bcAFeeChargeDetail.otherCalculationFrequency) &&
                Objects.equals(this.feeApplicableRange, bcAFeeChargeDetail.feeApplicableRange);
    }

    @Override
    public int hashCode() {
        return Objects.hash(feeCategory, feeType, negotiableIndicator, feeAmount, feeRate, feeRateType, applicationFrequency, calculationFrequency, notes, feeChargeCap, otherFeeCategoryType, otherFeeType, otherFeeRateType, otherApplicationFrequency, otherCalculationFrequency, feeApplicableRange);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class BCAFeeChargeDetail {\n");

        sb.append("    feeCategory: ").append(toIndentedString(feeCategory)).append("\n");
        sb.append("    feeType: ").append(toIndentedString(feeType)).append("\n");
        sb.append("    negotiableIndicator: ").append(toIndentedString(negotiableIndicator)).append("\n");
        sb.append("    feeAmount: ").append(toIndentedString(feeAmount)).append("\n");
        sb.append("    feeRate: ").append(toIndentedString(feeRate)).append("\n");
        sb.append("    feeRateType: ").append(toIndentedString(feeRateType)).append("\n");
        sb.append("    applicationFrequency: ").append(toIndentedString(applicationFrequency)).append("\n");
        sb.append("    calculationFrequency: ").append(toIndentedString(calculationFrequency)).append("\n");
        sb.append("    notes: ").append(toIndentedString(notes)).append("\n");
        sb.append("    feeChargeCap: ").append(toIndentedString(feeChargeCap)).append("\n");
        sb.append("    otherFeeCategoryType: ").append(toIndentedString(otherFeeCategoryType)).append("\n");
        sb.append("    otherFeeType: ").append(toIndentedString(otherFeeType)).append("\n");
        sb.append("    otherFeeRateType: ").append(toIndentedString(otherFeeRateType)).append("\n");
        sb.append("    otherApplicationFrequency: ").append(toIndentedString(otherApplicationFrequency)).append("\n");
        sb.append("    otherCalculationFrequency: ").append(toIndentedString(otherCalculationFrequency)).append("\n");
        sb.append("    feeApplicableRange: ").append(toIndentedString(feeApplicableRange)).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    ");
    }

    /**
     * Categorisation of fees and charges into standard categories.
     */
    public enum FeeCategoryEnum {
        OTHER("Other"),

        SERVICING("Servicing");

        private String value;

        FeeCategoryEnum(String value) {
            this.value = value;
        }

        @JsonCreator
        public static FeeCategoryEnum fromValue(String text) {
            for (FeeCategoryEnum b : FeeCategoryEnum.values()) {
                if (String.valueOf(b.value).equals(text)) {
                    return b;
                }
            }
            return null;
        }

        @JsonValue
        public String getValue() {
            return value;
        }

        @Override
        public String toString() {
            return String.valueOf(value);
        }
    }


    /**
     * Fee/Charge Type
     */
    public enum FeeTypeEnum {
        OTHER("Other"),

        SERVICECACCOUNTFEE("ServiceCAccountFee"),

        SERVICECACCOUNTFEEMONTHLY("ServiceCAccountFeeMonthly"),

        SERVICECACCOUNTFEEQUARTERLY("ServiceCAccountFeeQuarterly"),

        SERVICECFIXEDTARIFF("ServiceCFixedTariff"),

        SERVICECBUSIDEPACCBREAKAGE("ServiceCBusiDepAccBreakage"),

        SERVICECMINIMUMMONTHLYFEE("ServiceCMinimumMonthlyFee"),

        SERVICECOTHER("ServiceCOther");

        private String value;

        FeeTypeEnum(String value) {
            this.value = value;
        }

        @JsonCreator
        public static FeeTypeEnum fromValue(String text) {
            for (FeeTypeEnum b : FeeTypeEnum.values()) {
                if (String.valueOf(b.value).equals(text)) {
                    return b;
                }
            }
            return null;
        }

        @JsonValue
        public String getValue() {
            return value;
        }

        @Override
        public String toString() {
            return String.valueOf(value);
        }
    }

    /**
     * Rate type for Fee/Charge (where it is charged in terms of a rate rather than an amount)
     */
    public enum FeeRateTypeEnum {
        GROSS("Gross"),

        OTHER("Other");

        private String value;

        FeeRateTypeEnum(String value) {
            this.value = value;
        }

        @JsonCreator
        public static FeeRateTypeEnum fromValue(String text) {
            for (FeeRateTypeEnum b : FeeRateTypeEnum.values()) {
                if (String.valueOf(b.value).equals(text)) {
                    return b;
                }
            }
            return null;
        }

        @JsonValue
        public String getValue() {
            return value;
        }

        @Override
        public String toString() {
            return String.valueOf(value);
        }
    }


    /**
     * How frequently the fee/charge is applied to the account
     */
    public enum ApplicationFrequencyEnum {
        ONCLOSING("OnClosing"),

        ONOPENING("OnOpening"),

        CHARGINGPERIOD("ChargingPeriod"),

        DAILY("Daily"),

        PERITEM("PerItem"),

        MONTHLY("Monthly"),

        ONANNIVERSARY("OnAnniversary"),

        OTHER("Other"),

        PERHUNDREDPOUNDS("PerHundredPounds"),

        PERHOUR("PerHour"),

        PEROCCURRENCE("PerOccurrence"),

        PERSHEET("PerSheet"),

        PERTRANSACTION("PerTransaction"),

        PERTRANSACTIONAMOUNT("PerTransactionAmount"),

        PERTRANSACTIONPERCENTAGE("PerTransactionPercentage"),

        QUARTERLY("Quarterly"),

        SIXMONTHLY("SixMonthly"),

        STATEMENTMONTHLY("StatementMonthly"),

        WEEKLY("Weekly"),

        YEARLY("Yearly");

        private String value;

        ApplicationFrequencyEnum(String value) {
            this.value = value;
        }

        @JsonCreator
        public static ApplicationFrequencyEnum fromValue(String text) {
            for (ApplicationFrequencyEnum b : ApplicationFrequencyEnum.values()) {
                if (String.valueOf(b.value).equals(text)) {
                    return b;
                }
            }
            return null;
        }

        @JsonValue
        public String getValue() {
            return value;
        }

        @Override
        public String toString() {
            return String.valueOf(value);
        }
    }

    /**
     * How frequently the fee/charge is calculated
     */
    public enum CalculationFrequencyEnum {
        ONCLOSING("OnClosing"),

        ONOPENING("OnOpening"),

        CHARGINGPERIOD("ChargingPeriod"),

        DAILY("Daily"),

        PERITEM("PerItem"),

        MONTHLY("Monthly"),

        ONANNIVERSARY("OnAnniversary"),

        OTHER("Other"),

        PERHUNDREDPOUNDS("PerHundredPounds"),

        PERHOUR("PerHour"),

        PEROCCURRENCE("PerOccurrence"),

        PERSHEET("PerSheet"),

        PERTRANSACTION("PerTransaction"),

        PERTRANSACTIONAMOUNT("PerTransactionAmount"),

        PERTRANSACTIONPERCENTAGE("PerTransactionPercentage"),

        QUARTERLY("Quarterly"),

        SIXMONTHLY("SixMonthly"),

        STATEMENTMONTHLY("StatementMonthly"),

        WEEKLY("Weekly"),

        YEARLY("Yearly");

        private String value;

        CalculationFrequencyEnum(String value) {
            this.value = value;
        }

        @JsonCreator
        public static CalculationFrequencyEnum fromValue(String text) {
            for (CalculationFrequencyEnum b : CalculationFrequencyEnum.values()) {
                if (String.valueOf(b.value).equals(text)) {
                    return b;
                }
            }
            return null;
        }

        @JsonValue
        public String getValue() {
            return value;
        }

        @Override
        public String toString() {
            return String.valueOf(value);
        }
    }

}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy