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

nz.co.blink.debit.dto.v1.EnduringConsentRequest Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (c) 2022 BlinkPay
 * 

* Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: *

* The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. *

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package nz.co.blink.debit.dto.v1; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.annotation.Generated; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import nz.co.blink.debit.helpers.CustomOffsetDateTimeDeserializer; import nz.co.blink.debit.helpers.CustomOffsetDateTimeSerializer; import org.springframework.validation.annotation.Validated; import java.time.OffsetDateTime; import java.util.Objects; /** * The model for an enduring consent request, relating to multiple payments. */ @Schema(description = "The model for an enduring consent request, relating to multiple payments.") @Validated @Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-04-22T17:59:56.975143+12:00[Pacific/Auckland]") @JsonInclude(JsonInclude.Include.NON_NULL) public class EnduringConsentRequest extends ConsentDetail implements OneOfconsentDetail { @JsonProperty("flow") private AuthFlow flow = null; @JsonProperty("expiry_timestamp") @JsonSerialize(using = CustomOffsetDateTimeSerializer.class) @JsonDeserialize(using = CustomOffsetDateTimeDeserializer.class) private OffsetDateTime expiryTimestamp = null; @JsonProperty("from_timestamp") @JsonSerialize(using = CustomOffsetDateTimeSerializer.class) @JsonDeserialize(using = CustomOffsetDateTimeDeserializer.class) private OffsetDateTime fromTimestamp = null; @JsonProperty("maximum_amount_period") private Amount maximumAmountPeriod = null; @JsonProperty("period") private Period period = null; public EnduringConsentRequest flow(AuthFlow flow) { this.flow = flow; return this; } /** * Get flow * * @return flow **/ @Schema(requiredMode = Schema.RequiredMode.REQUIRED, description = "") @NotNull(message = "Authorization flow must not be null") @Valid public AuthFlow getFlow() { return flow; } public void setFlow(AuthFlow flow) { this.flow = flow; } public EnduringConsentRequest expiryTimestamp(OffsetDateTime expiryTimestamp) { this.expiryTimestamp = expiryTimestamp; return this; } /** * The ISO 8601 timeout for when an enduring consent will expire. If this field is blank, an indefinite request will be attempted. * * @return expiryTimestamp **/ @Schema(example = "2021-12-01T00:00+13:00", description = "The ISO 8601 timeout for when an enduring consent will expire. If this field is blank, an indefinite request will be attempted.") @Valid public OffsetDateTime getExpiryTimestamp() { return expiryTimestamp; } public void setExpiryTimestamp(OffsetDateTime expiryTimestamp) { this.expiryTimestamp = expiryTimestamp; } public EnduringConsentRequest fromTimestamp(OffsetDateTime fromTimestamp) { this.fromTimestamp = fromTimestamp; return this; } /** * The ISO 8601 start date to calculate the periods for which to calculate the consent period. * * @return fromTimestamp **/ @Schema(example = "2020-12-01T00:00+13:00", requiredMode = Schema.RequiredMode.REQUIRED, description = "The ISO 8601 start date to calculate the periods for which to calculate the consent period.") @NotNull(message = "From timestamp must not be null") @Valid public OffsetDateTime getFromTimestamp() { return fromTimestamp; } public void setFromTimestamp(OffsetDateTime fromTimestamp) { this.fromTimestamp = fromTimestamp; } public EnduringConsentRequest maximumAmountPeriod(Amount maximumAmountPeriod) { this.maximumAmountPeriod = maximumAmountPeriod; return this; } /** * Get maximumAmountPeriod * * @return maximumAmountPeriod **/ @Schema(requiredMode = Schema.RequiredMode.REQUIRED, description = "") @NotNull(message = "Maximum amount period must not be null") @Valid public Amount getMaximumAmountPeriod() { return maximumAmountPeriod; } public void setMaximumAmountPeriod(Amount maximumAmountPeriod) { this.maximumAmountPeriod = maximumAmountPeriod; } public EnduringConsentRequest period(Period period) { this.period = period; return this; } /** * Get period * * @return period **/ @Schema(requiredMode = Schema.RequiredMode.REQUIRED, description = "") @NotNull(message = "Period must not be null") @Valid public Period getPeriod() { return period; } public void setPeriod(Period period) { this.period = period; } @Override public TypeEnum getType() { return TypeEnum.ENDURING; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } EnduringConsentRequest enduringConsentRequest = (EnduringConsentRequest) o; return Objects.equals(this.flow, enduringConsentRequest.flow) && Objects.equals(this.expiryTimestamp, enduringConsentRequest.expiryTimestamp) && Objects.equals(this.fromTimestamp, enduringConsentRequest.fromTimestamp) && Objects.equals(this.maximumAmountPeriod, enduringConsentRequest.maximumAmountPeriod) && Objects.equals(this.period, enduringConsentRequest.period) && super.equals(o); } @Override public int hashCode() { return Objects.hash(flow, expiryTimestamp, fromTimestamp, maximumAmountPeriod, period, super.hashCode()); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class EnduringConsentRequest {\n"); sb.append(" ").append(toIndentedString(super.toString())).append("\n"); sb.append(" flow: ").append(toIndentedString(flow)).append("\n"); sb.append(" expiryTimestamp: ").append(toIndentedString(expiryTimestamp)).append("\n"); sb.append(" fromTimestamp: ").append(toIndentedString(fromTimestamp)).append("\n"); sb.append(" maximumAmountPeriod: ").append(toIndentedString(maximumAmountPeriod)).append("\n"); sb.append(" period: ").append(toIndentedString(period)).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 "); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy