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

de.adorsys.multibanking.xs2a_adapter.model.PaymentInitiationBulkElementJson Maven / Gradle / Ivy

/*
 * NextGenPSD2 XS2A Framework
 * # Summary The **NextGenPSD2** *Framework Version 1.3.4* offers a modern, open, harmonised and interoperable set of  Application Programming Interfaces (APIs) as the safest and most efficient way to provide data securely.  The NextGenPSD2 Framework reduces XS2A complexity and costs, addresses the problem of multiple competing standards  in Europe and, aligned with the goals of the Euro Retail Payments Board, enables European banking customers to benefit from innovative products and services ('Banking as a Service')  by granting TPPs safe and secure (authenticated and authorised) access to their bank accounts and financial data.  The possible Approaches are:   * Redirect SCA Approach   * OAuth SCA Approach   * Decoupled SCA Approach   * Embedded SCA Approach without SCA method   * Embedded SCA Approach with only one SCA method available   * Embedded SCA Approach with Selection of a SCA method    Not every message defined in this API definition is necessary for all approaches.    Furthermore this API definition does not differ between methods which are mandatory, conditional, or optional   Therefore for a particular implementation of a Berlin Group PSD2 compliant API it is only necessary to support    a certain subset of the methods defined in this API definition.    **Please have a look at the implementation guidelines if you are not sure    which message has to be used for the approach you are going to use.**  ## Some General Remarks Related to this version of the OpenAPI Specification: * **This API definition is based on the Implementation Guidelines of the Berlin Group PSD2 API.**    It is not an replacement in any sense.   The main specification is (at the moment) always the Implementation Guidelines of the Berlin Group PSD2 API. * **This API definition contains the REST-API for requests from the PISP to the ASPSP.** * **This API definition contains the messages for all different approaches defined in the Implementation Guidelines.** * According to the OpenAPI-Specification [https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md]        \"If in is \"header\" and the name field is \"Accept\", \"Content-Type\" or \"Authorization\", the parameter definition SHALL be ignored.\"      The element \"Accept\" will not be defined in this file at any place.      The elements \"Content-Type\" and \"Authorization\" are implicitly defined by the OpenApi tags \"content\" and \"security\".    * There are several predefined types which might occur in payment initiation messages,    but are not used in the standard JSON messages in the Implementation Guidelines.   Therefore they are not used in the corresponding messages in this file either.   We added them for the convenience of the user.   If there is a payment product, which need these field, one can easily use the predefined types.   But the ASPSP need not to accept them in general.    * **We omit the definition of all standard HTTP header elements (mandatory/optional/conditional)    except they are mention in the Implementation Guidelines.**   Therefore the implementer might add the in his own realisation of a PSD2 comlient API in addition to the elements define in this file.     ## General Remarks on Data Types  The Berlin Group definition of UTF-8 strings in context of the PSD2 API have to support at least the following characters  a b c d e f g h i j k l m n o p q r s t u v w x y z  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  0 1 2 3 4 5 6 7 8 9  / - ? : ( ) . , ' +  Space 
 *
 * OpenAPI spec version: 1.3.4_2019-07-17v1
 * 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 de.adorsys.multibanking.xs2a_adapter.model;

import java.util.Objects;
import java.util.Arrays;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import de.adorsys.multibanking.xs2a_adapter.model.AccountReference;
import de.adorsys.multibanking.xs2a_adapter.model.Address;
import de.adorsys.multibanking.xs2a_adapter.model.Amount;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.IOException;
/**
 * Generic body for a bulk payment initation entry.  The bulk entry type is a type which follows the JSON formats for the supported products for single payments excluding the data elements (if supported):   * debtorAccount   * requestedExecutionDate,   * requestedExecutionTime. These data elements may not be contained in any bulk entry.  This data object can be used to represent valid bulk payment initiations entry for the following JSON based payment product,  which where defined in the Implementation Guidelines:    * sepa-credit-transfers   * instant-sepa-credit-transfers   * target-2-payments   * cross-border-credit-transfers  For the convenience of the implementer additional which are already predefinded in the Implementation Guidelines  are included (but commented in source code), such that an ASPSP may add them easily.  Take care: Since the format is intended to fit for all payment products  there are additional conditions which are NOT covered by this specification. Please check the Implementation Guidelines for detailes.   The following data element are depending on the actual payment product available (in source code):             <table style=\"width:100%\">  <tr><th>Data Element</th><th>SCT EU Core</th><th>SCT INST EU Core</th><th>Target2 Paym. Core</th><th>Cross Border CT Core</th></tr>  <tr><td>endToEndIdentification</td><td> optional</td> <td>optional</td> <td>optional</td> <td>n.a.</td> </tr>  <tr><td>debtorId</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>ultimateDebtor</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>instructedAmount</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> </tr>  <tr><td>transactionCurrency</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>exchangeRateInformation</td> <td>n.a.</td> <td>n.a.</td><td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>creditorAccount</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> </tr>  <tr><td>creditorAgent</td> <td>optional</td> <td>optional</td> <td>optional</td> <td>conditional </td> </tr>  <tr><td>creditorAgentName</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>creditorName</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> <td>mandatory</td> </tr>  <tr><td>creditorId</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>creditorAddress</td>optional</td> <td>optional</td> <td>optional</td> <td>conditional </td> </tr>  <tr><td>creditorNameAndAddress</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>ultimateCreditor</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>purposeCode</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>chargeBearer</td> <td>n.a.</td> <td>n.a.</td> <td>optional</td> <td>conditional </td> </tr>  <tr><td>remittanceInformationUnstructured</td> <td>optional</td> <td>optional</td> <td> optional</td> <td>optional</td> </tr>  <tr><td>remittanceInformationUnstructuredArray</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>  <tr><td>remittanceInformationStructured</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> <td>n.a.</td> </tr>     </td></tr>   </table>    IMPORTANT: In this API definition the following holds:   *  All data elements mentioned above are defined, but some of them are commented,      i.e. they are only visible in the source code and can be used by uncommenting them.   * Data elements which are mandatory in the table above for all payment products      are set to be mandatory in this specification.   * Data elements which are indicated in the table above as n.a. for all payment products are commented in the source code.   * Data elements which are indicated to be option, conditional or mandatory for at least one payment product      in the table above are set to be optional in the s specification except the case where all are definde to be mandatory.    * Data element which are inticated to be n.a. can be used by the ASPS if needed.      In this case uncomment tthe the relatetd lines in the source code.   * If one uses this data types for some payment products he has to ensure that the used data type is      valid according to the underlying payment product, e.g. by some appropriate validations. 
 */
@Schema(description = "Generic body for a bulk payment initation entry.  The bulk entry type is a type which follows the JSON formats for the supported products for single payments excluding the data elements (if supported):   * debtorAccount   * requestedExecutionDate,   * requestedExecutionTime. These data elements may not be contained in any bulk entry.  This data object can be used to represent valid bulk payment initiations entry for the following JSON based payment product,  which where defined in the Implementation Guidelines:    * sepa-credit-transfers   * instant-sepa-credit-transfers   * target-2-payments   * cross-border-credit-transfers  For the convenience of the implementer additional which are already predefinded in the Implementation Guidelines  are included (but commented in source code), such that an ASPSP may add them easily.  Take care: Since the format is intended to fit for all payment products  there are additional conditions which are NOT covered by this specification. Please check the Implementation Guidelines for detailes.   The following data element are depending on the actual payment product available (in source code):             optional
Data ElementSCT EU CoreSCT INST EU CoreTarget2 Paym. CoreCross Border CT Core
endToEndIdentification optional optional optional n.a.
debtorId n.a. n.a. n.a. n.a.
ultimateDebtor n.a. n.a. n.a. n.a.
instructedAmount mandatory mandatory mandatory mandatory
transactionCurrency n.a. n.a. n.a. n.a.
exchangeRateInformation n.a. n.a.n.a. n.a.
creditorAccount mandatory mandatory mandatory mandatory
creditorAgent optional optional optional conditional
creditorAgentName n.a. n.a. n.a. n.a.
creditorName mandatory mandatory mandatory mandatory
creditorId n.a. n.a. n.a. n.a.
creditorAddress optional optional conditional
creditorNameAndAddress n.a. n.a. n.a. n.a.
ultimateCreditor n.a. n.a. n.a. n.a.
purposeCode n.a. n.a. n.a. n.a.
chargeBearer n.a. n.a. optional conditional
remittanceInformationUnstructured optional optional optional optional
remittanceInformationUnstructuredArray n.a. n.a. n.a. n.a.
remittanceInformationStructured n.a. n.a. n.a. n.a.
IMPORTANT: In this API definition the following holds: * All data elements mentioned above are defined, but some of them are commented, i.e. they are only visible in the source code and can be used by uncommenting them. * Data elements which are mandatory in the table above for all payment products are set to be mandatory in this specification. * Data elements which are indicated in the table above as n.a. for all payment products are commented in the source code. * Data elements which are indicated to be option, conditional or mandatory for at least one payment product in the table above are set to be optional in the s specification except the case where all are definde to be mandatory. * Data element which are inticated to be n.a. can be used by the ASPS if needed. In this case uncomment tthe the relatetd lines in the source code. * If one uses this data types for some payment products he has to ensure that the used data type is valid according to the underlying payment product, e.g. by some appropriate validations. ") @javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2020-03-31T11:42:31.302Z[UTC]") public class PaymentInitiationBulkElementJson { @SerializedName("endToEndIdentification") private String endToEndIdentification = null; @SerializedName("instructedAmount") private Amount instructedAmount = null; @SerializedName("creditorAccount") private AccountReference creditorAccount = null; @SerializedName("creditorAgent") private String creditorAgent = null; @SerializedName("creditorAgentName") private String creditorAgentName = null; @SerializedName("creditorName") private String creditorName = null; @SerializedName("creditorAddress") private Address creditorAddress = null; @SerializedName("remittanceInformationUnstructured") private String remittanceInformationUnstructured = null; public PaymentInitiationBulkElementJson endToEndIdentification(String endToEndIdentification) { this.endToEndIdentification = endToEndIdentification; return this; } /** * Get endToEndIdentification * @return endToEndIdentification **/ @Schema(description = "") public String getEndToEndIdentification() { return endToEndIdentification; } public void setEndToEndIdentification(String endToEndIdentification) { this.endToEndIdentification = endToEndIdentification; } public PaymentInitiationBulkElementJson instructedAmount(Amount instructedAmount) { this.instructedAmount = instructedAmount; return this; } /** * Get instructedAmount * @return instructedAmount **/ @Schema(required = true, description = "") public Amount getInstructedAmount() { return instructedAmount; } public void setInstructedAmount(Amount instructedAmount) { this.instructedAmount = instructedAmount; } public PaymentInitiationBulkElementJson creditorAccount(AccountReference creditorAccount) { this.creditorAccount = creditorAccount; return this; } /** * Get creditorAccount * @return creditorAccount **/ @Schema(required = true, description = "") public AccountReference getCreditorAccount() { return creditorAccount; } public void setCreditorAccount(AccountReference creditorAccount) { this.creditorAccount = creditorAccount; } public PaymentInitiationBulkElementJson creditorAgent(String creditorAgent) { this.creditorAgent = creditorAgent; return this; } /** * Get creditorAgent * @return creditorAgent **/ @Schema(description = "") public String getCreditorAgent() { return creditorAgent; } public void setCreditorAgent(String creditorAgent) { this.creditorAgent = creditorAgent; } public PaymentInitiationBulkElementJson creditorAgentName(String creditorAgentName) { this.creditorAgentName = creditorAgentName; return this; } /** * Get creditorAgentName * @return creditorAgentName **/ @Schema(description = "") public String getCreditorAgentName() { return creditorAgentName; } public void setCreditorAgentName(String creditorAgentName) { this.creditorAgentName = creditorAgentName; } public PaymentInitiationBulkElementJson creditorName(String creditorName) { this.creditorName = creditorName; return this; } /** * Get creditorName * @return creditorName **/ @Schema(required = true, description = "") public String getCreditorName() { return creditorName; } public void setCreditorName(String creditorName) { this.creditorName = creditorName; } public PaymentInitiationBulkElementJson creditorAddress(Address creditorAddress) { this.creditorAddress = creditorAddress; return this; } /** * Get creditorAddress * @return creditorAddress **/ @Schema(description = "") public Address getCreditorAddress() { return creditorAddress; } public void setCreditorAddress(Address creditorAddress) { this.creditorAddress = creditorAddress; } public PaymentInitiationBulkElementJson remittanceInformationUnstructured(String remittanceInformationUnstructured) { this.remittanceInformationUnstructured = remittanceInformationUnstructured; return this; } /** * Get remittanceInformationUnstructured * @return remittanceInformationUnstructured **/ @Schema(description = "") public String getRemittanceInformationUnstructured() { return remittanceInformationUnstructured; } public void setRemittanceInformationUnstructured(String remittanceInformationUnstructured) { this.remittanceInformationUnstructured = remittanceInformationUnstructured; } @Override public boolean equals(java.lang.Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } PaymentInitiationBulkElementJson paymentInitiationBulkElementJson = (PaymentInitiationBulkElementJson) o; return Objects.equals(this.endToEndIdentification, paymentInitiationBulkElementJson.endToEndIdentification) && Objects.equals(this.instructedAmount, paymentInitiationBulkElementJson.instructedAmount) && Objects.equals(this.creditorAccount, paymentInitiationBulkElementJson.creditorAccount) && Objects.equals(this.creditorAgent, paymentInitiationBulkElementJson.creditorAgent) && Objects.equals(this.creditorAgentName, paymentInitiationBulkElementJson.creditorAgentName) && Objects.equals(this.creditorName, paymentInitiationBulkElementJson.creditorName) && Objects.equals(this.creditorAddress, paymentInitiationBulkElementJson.creditorAddress) && Objects.equals(this.remittanceInformationUnstructured, paymentInitiationBulkElementJson.remittanceInformationUnstructured); } @Override public int hashCode() { return Objects.hash(endToEndIdentification, instructedAmount, creditorAccount, creditorAgent, creditorAgentName, creditorName, creditorAddress, remittanceInformationUnstructured); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class PaymentInitiationBulkElementJson {\n"); sb.append(" endToEndIdentification: ").append(toIndentedString(endToEndIdentification)).append("\n"); sb.append(" instructedAmount: ").append(toIndentedString(instructedAmount)).append("\n"); sb.append(" creditorAccount: ").append(toIndentedString(creditorAccount)).append("\n"); sb.append(" creditorAgent: ").append(toIndentedString(creditorAgent)).append("\n"); sb.append(" creditorAgentName: ").append(toIndentedString(creditorAgentName)).append("\n"); sb.append(" creditorName: ").append(toIndentedString(creditorName)).append("\n"); sb.append(" creditorAddress: ").append(toIndentedString(creditorAddress)).append("\n"); sb.append(" remittanceInformationUnstructured: ").append(toIndentedString(remittanceInformationUnstructured)).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(java.lang.Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy