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

au.org.consumerdatastandards.api.banking.models.BankingScheduledPaymentRecurrence Maven / Gradle / Ivy

Go to download

This artefact describes the Consumer Data Standards using Java classes and annotations in a way suitable for automatic generation of Open API Specification, documentation, Server Stub, Client Libraries and Reference Test.

There is a newer version: 1.1.1
Show newest version
package au.org.consumerdatastandards.api.banking.models;

import au.org.consumerdatastandards.support.data.*;

@DataDefinition(
    description = "Object containing the detail of the schedule for the payment"
)
@CustomAttributes({
    @CustomAttribute(name = "x-conditional", value = "onceOff", multiple = true),
    @CustomAttribute(name = "x-conditional", value = "intervalSchedule", multiple = true),
    @CustomAttribute(name = "x-conditional", value = "lastWeekDay", multiple = true),
    @CustomAttribute(name = "x-conditional", value = "eventBased", multiple = true)
})
public class BankingScheduledPaymentRecurrence {

    public enum RecurrenceUType {
        onceOff,
        intervalSchedule,
        lastWeekDay,
        eventBased
    }

    @Property(
        description = "The date of the next payment under the recurrence schedule"
    )
    @CDSDataType(CustomDataType.Date)
    String nextPaymentDate;

    @Property(
        description = "The type of recurrence used to define the schedule",
        required = true
    )
    RecurrenceUType recurrenceUType;

    @Property(
        requiredIf = { @Condition(propertyName = "recurrenceUType", values = {"onceOff"}) }
    )
    BankingScheduledPaymentRecurrenceOnceOff onceOff;

    @Property(
        requiredIf = { @Condition(propertyName = "recurrenceUType", values = {"intervalSchedule"}) }
    )
    BankingScheduledPaymentRecurrenceIntervalSchedule intervalSchedule;

    @Property(
        requiredIf = { @Condition(propertyName = "recurrenceUType", values = {"lastWeekDay"}) }
    )
    BankingScheduledPaymentRecurrenceLastWeekday lastWeekDay;

    @Property(
        requiredIf = { @Condition(propertyName = "recurrenceUType", values = {"eventBased"}) }
    )
    BankingScheduledPaymentRecurrenceEventBased eventBased;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy