Skip to content

Conversation

@AdyenAutomationBot
Copy link
Collaborator

This PR contains the automated changes for the checkout service.

The commit history of this PR reflects the adyen-openapi commits that have been applied.

@AdyenAutomationBot AdyenAutomationBot requested review from a team as code owners January 5, 2026 15:20
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @AdyenAutomationBot, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request delivers an automated update to the checkout service, incorporating the latest changes from the adyen-openapi specification. The modifications are largely structural, focusing on maintaining consistency in code generation, updating model definitions, and refining documentation. This ensures the client library remains current and aligned with the evolving API, facilitating smoother integration and development.

Highlights

  • Automated Code Generation: This pull request is an automated update generated by the OpenAPI Generator, ensuring our checkout service models and services are synchronized with the latest API specification.
  • Model Updates and Reformatting: The changes primarily involve reordering import statements, reformatting Javadoc comments, and minor code style adjustments across numerous model files. This improves code consistency and readability.
  • API Deprecation Notes: Several files, such as AdditionalData3DSecure and AfterpayDetails, include updated deprecation notes in their Javadoc, guiding developers towards current best practices and alternative API fields.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces extensive formatting changes across numerous Java model files, including reordering imports, adding blank lines, and reformatting Javadoc comments. Key changes involve consolidating multi-line equals, hashCode, and toString methods into single, excessively long lines, which the reviewer notes significantly reduces readability and maintainability. New functionality has also been added to handle explicit null values during JSON serialization and deserialization, including isSet boolean fields for each property and getExplicitNulls() methods. The review comments consistently highlight concerns about the decreased readability due to the single-line formatting of core methods and minor inconsistencies in Javadoc spacing.

Comment on lines 1136 to 1174
return Objects.equals(this.accountAgeIndicator, accountInfo.accountAgeIndicator) &&
Objects.equals(this.isSetAccountAgeIndicator, accountInfo.isSetAccountAgeIndicator) &&
Objects.equals(this.accountChangeDate, accountInfo.accountChangeDate) &&
Objects.equals(this.isSetAccountChangeDate, accountInfo.isSetAccountChangeDate) &&
Objects.equals(this.accountChangeIndicator, accountInfo.accountChangeIndicator) &&
Objects.equals(this.isSetAccountChangeIndicator, accountInfo.isSetAccountChangeIndicator) &&
Objects.equals(this.accountCreationDate, accountInfo.accountCreationDate) &&
Objects.equals(this.isSetAccountCreationDate, accountInfo.isSetAccountCreationDate) &&
Objects.equals(this.accountType, accountInfo.accountType) &&
Objects.equals(this.isSetAccountType, accountInfo.isSetAccountType) &&
Objects.equals(this.addCardAttemptsDay, accountInfo.addCardAttemptsDay) &&
Objects.equals(this.isSetAddCardAttemptsDay, accountInfo.isSetAddCardAttemptsDay) &&
Objects.equals(this.deliveryAddressUsageDate, accountInfo.deliveryAddressUsageDate) &&
Objects.equals(this.isSetDeliveryAddressUsageDate, accountInfo.isSetDeliveryAddressUsageDate) &&
Objects.equals(this.deliveryAddressUsageIndicator, accountInfo.deliveryAddressUsageIndicator) &&
Objects.equals(this.isSetDeliveryAddressUsageIndicator, accountInfo.isSetDeliveryAddressUsageIndicator) &&
Objects.equals(this.homePhone, accountInfo.homePhone) &&
Objects.equals(this.isSetHomePhone, accountInfo.isSetHomePhone) &&
Objects.equals(this.mobilePhone, accountInfo.mobilePhone) &&
Objects.equals(this.isSetMobilePhone, accountInfo.isSetMobilePhone) &&
Objects.equals(this.passwordChangeDate, accountInfo.passwordChangeDate) &&
Objects.equals(this.isSetPasswordChangeDate, accountInfo.isSetPasswordChangeDate) &&
Objects.equals(this.passwordChangeIndicator, accountInfo.passwordChangeIndicator) &&
Objects.equals(this.isSetPasswordChangeIndicator, accountInfo.isSetPasswordChangeIndicator) &&
Objects.equals(this.pastTransactionsDay, accountInfo.pastTransactionsDay) &&
Objects.equals(this.isSetPastTransactionsDay, accountInfo.isSetPastTransactionsDay) &&
Objects.equals(this.pastTransactionsYear, accountInfo.pastTransactionsYear) &&
Objects.equals(this.isSetPastTransactionsYear, accountInfo.isSetPastTransactionsYear) &&
Objects.equals(this.paymentAccountAge, accountInfo.paymentAccountAge) &&
Objects.equals(this.isSetPaymentAccountAge, accountInfo.isSetPaymentAccountAge) &&
Objects.equals(this.paymentAccountIndicator, accountInfo.paymentAccountIndicator) &&
Objects.equals(this.isSetPaymentAccountIndicator, accountInfo.isSetPaymentAccountIndicator) &&
Objects.equals(this.purchasesLast6Months, accountInfo.purchasesLast6Months) &&
Objects.equals(this.isSetPurchasesLast6Months, accountInfo.isSetPurchasesLast6Months) &&
Objects.equals(this.suspiciousActivity, accountInfo.suspiciousActivity) &&
Objects.equals(this.isSetSuspiciousActivity, accountInfo.isSetSuspiciousActivity) &&
Objects.equals(this.workPhone, accountInfo.workPhone) &&
Objects.equals(this.isSetWorkPhone, accountInfo.isSetWorkPhone)
;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The formatting of the equals method has become less readable due to the long chained && conditions and the dangling semicolon. The previous multi-line format was easier to read and maintain. Please consider reverting to a similar multi-line format for better code clarity. This formatting issue is present in equals methods across many of the modified files.

isSetSuspiciousActivity,
workPhone,
isSetWorkPhone);
return Objects.hash(accountAgeIndicator, isSetAccountAgeIndicator, accountChangeDate, isSetAccountChangeDate, accountChangeIndicator, isSetAccountChangeIndicator, accountCreationDate, isSetAccountCreationDate, accountType, isSetAccountType, addCardAttemptsDay, isSetAddCardAttemptsDay, deliveryAddressUsageDate, isSetDeliveryAddressUsageDate, deliveryAddressUsageIndicator, isSetDeliveryAddressUsageIndicator, homePhone, isSetHomePhone, mobilePhone, isSetMobilePhone, passwordChangeDate, isSetPasswordChangeDate, passwordChangeIndicator, isSetPasswordChangeIndicator, pastTransactionsDay, isSetPastTransactionsDay, pastTransactionsYear, isSetPastTransactionsYear, paymentAccountAge, isSetPaymentAccountAge, paymentAccountIndicator, isSetPaymentAccountIndicator, purchasesLast6Months, isSetPurchasesLast6Months, suspiciousActivity, isSetSuspiciousActivity, workPhone, isSetWorkPhone);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This line is excessively long, which harms readability. Please format the arguments to Objects.hash on separate lines for better maintainability, similar to the previous version of the code. This formatting issue is present in hashCode methods across many of the modified files.

Comment on lines 1186 to 1204
sb.append(" accountAgeIndicator: ").append(toIndentedString(accountAgeIndicator)).append("\n");
sb.append(" accountChangeDate: ").append(toIndentedString(accountChangeDate)).append("\n");
sb.append(" accountChangeIndicator: ")
.append(toIndentedString(accountChangeIndicator))
.append("\n");
sb.append(" accountCreationDate: ")
.append(toIndentedString(accountCreationDate))
.append("\n");
sb.append(" accountChangeIndicator: ").append(toIndentedString(accountChangeIndicator)).append("\n");
sb.append(" accountCreationDate: ").append(toIndentedString(accountCreationDate)).append("\n");
sb.append(" accountType: ").append(toIndentedString(accountType)).append("\n");
sb.append(" addCardAttemptsDay: ").append(toIndentedString(addCardAttemptsDay)).append("\n");
sb.append(" deliveryAddressUsageDate: ")
.append(toIndentedString(deliveryAddressUsageDate))
.append("\n");
sb.append(" deliveryAddressUsageIndicator: ")
.append(toIndentedString(deliveryAddressUsageIndicator))
.append("\n");
sb.append(" deliveryAddressUsageDate: ").append(toIndentedString(deliveryAddressUsageDate)).append("\n");
sb.append(" deliveryAddressUsageIndicator: ").append(toIndentedString(deliveryAddressUsageIndicator)).append("\n");
sb.append(" homePhone: ").append(toIndentedString(homePhone)).append("\n");
sb.append(" mobilePhone: ").append(toIndentedString(mobilePhone)).append("\n");
sb.append(" passwordChangeDate: ").append(toIndentedString(passwordChangeDate)).append("\n");
sb.append(" passwordChangeIndicator: ")
.append(toIndentedString(passwordChangeIndicator))
.append("\n");
sb.append(" pastTransactionsDay: ")
.append(toIndentedString(pastTransactionsDay))
.append("\n");
sb.append(" pastTransactionsYear: ")
.append(toIndentedString(pastTransactionsYear))
.append("\n");
sb.append(" passwordChangeIndicator: ").append(toIndentedString(passwordChangeIndicator)).append("\n");
sb.append(" pastTransactionsDay: ").append(toIndentedString(pastTransactionsDay)).append("\n");
sb.append(" pastTransactionsYear: ").append(toIndentedString(pastTransactionsYear)).append("\n");
sb.append(" paymentAccountAge: ").append(toIndentedString(paymentAccountAge)).append("\n");
sb.append(" paymentAccountIndicator: ")
.append(toIndentedString(paymentAccountIndicator))
.append("\n");
sb.append(" purchasesLast6Months: ")
.append(toIndentedString(purchasesLast6Months))
.append("\n");
sb.append(" paymentAccountIndicator: ").append(toIndentedString(paymentAccountIndicator)).append("\n");
sb.append(" purchasesLast6Months: ").append(toIndentedString(purchasesLast6Months)).append("\n");
sb.append(" suspiciousActivity: ").append(toIndentedString(suspiciousActivity)).append("\n");
sb.append(" workPhone: ").append(toIndentedString(workPhone)).append("\n");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The toString method has been formatted into very long lines, which reduces readability. Please consider reformatting this to chain .append() calls on new lines for better clarity, as it was in the previous version. This formatting issue is present in toString methods across many of the modified files.

* applying 3D Secure. Possible values: * **true** – Perform 3D Secure authentication. * **false**
* – Don&#39;t perform 3D Secure authentication. Note that this setting results in refusals if the
* issuer mandates 3D Secure because of the PSD2 directive or other, national regulations.
* Indicates if you want to perform 3D Secure authentication on a transaction. &gt; Alternatively, you can use [Dynamic 3D Secure](/risk-management/dynamic-3d-secure) to configure rules for applying 3D Secure. Possible values: * **true** – Perform 3D Secure authentication. * **false** – Don&#39;t perform 3D Secure authentication. Note that this setting results in refusals if the issuer mandates 3D Secure because of the PSD2 directive or other, national regulations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There's an extra space here between 'directive' and 'or'. This appears to be a recurring formatting issue in the generated Javadocs.

* &#x60;openinvoicedata&#x60; signature at the end. Since the field is optional, if it&#39;s not
* included it does not impact computing the merchant signature. Applies only to Klarna. You can
* contact Klarna for the format and structure of the string.
* Holds different merchant data points like product, purchase, customer, and so on. It takes data in a Base64 encoded string. The &#x60;merchantData&#x60; parameter needs to be added to the &#x60;openinvoicedata&#x60; signature at the end. Since the field is optional, if it&#39;s not included it does not impact computing the merchant signature. Applies only to Klarna. You can contact Klarna for the format and structure of the string.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There are extra spaces in this Javadoc comment, for example after 'string.', 'end.', 'signature.', and 'Klarna.'. This seems to be a recurring formatting issue in the generated Javadocs.

Comment on lines 618 to 644
return Objects.equals(this.agency, airline.agency) &&
Objects.equals(this.isSetAgency, airline.isSetAgency) &&
Objects.equals(this.boardingFee, airline.boardingFee) &&
Objects.equals(this.isSetBoardingFee, airline.isSetBoardingFee) &&
Objects.equals(this.code, airline.code) &&
Objects.equals(this.isSetCode, airline.isSetCode) &&
Objects.equals(this.computerizedReservationSystem, airline.computerizedReservationSystem) &&
Objects.equals(this.isSetComputerizedReservationSystem, airline.isSetComputerizedReservationSystem) &&
Objects.equals(this.customerReferenceNumber, airline.customerReferenceNumber) &&
Objects.equals(this.isSetCustomerReferenceNumber, airline.isSetCustomerReferenceNumber) &&
Objects.equals(this.designatorCode, airline.designatorCode) &&
Objects.equals(this.isSetDesignatorCode, airline.isSetDesignatorCode) &&
Objects.equals(this.documentType, airline.documentType) &&
Objects.equals(this.isSetDocumentType, airline.isSetDocumentType) &&
Objects.equals(this.flightDate, airline.flightDate) &&
Objects.equals(this.isSetFlightDate, airline.isSetFlightDate) &&
Objects.equals(this.legs, airline.legs) &&
Objects.equals(this.isSetLegs, airline.isSetLegs) &&
Objects.equals(this.passengerName, airline.passengerName) &&
Objects.equals(this.isSetPassengerName, airline.isSetPassengerName) &&
Objects.equals(this.passengers, airline.passengers) &&
Objects.equals(this.isSetPassengers, airline.isSetPassengers) &&
Objects.equals(this.ticket, airline.ticket) &&
Objects.equals(this.isSetTicket, airline.isSetTicket) &&
Objects.equals(this.travelAgency, airline.travelAgency) &&
Objects.equals(this.isSetTravelAgency, airline.isSetTravelAgency)
;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Similar to other files in this PR, the formatting of the equals method has become less readable. The previous multi-line format was easier to read and maintain. Please consider reverting to a similar multi-line format for better code clarity.

isSetTicket,
travelAgency,
isSetTravelAgency);
return Objects.hash(agency, isSetAgency, boardingFee, isSetBoardingFee, code, isSetCode, computerizedReservationSystem, isSetComputerizedReservationSystem, customerReferenceNumber, isSetCustomerReferenceNumber, designatorCode, isSetDesignatorCode, documentType, isSetDocumentType, flightDate, isSetFlightDate, legs, isSetLegs, passengerName, isSetPassengerName, passengers, isSetPassengers, ticket, isSetTicket, travelAgency, isSetTravelAgency);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This line is excessively long, which harms readability. Please format the arguments to Objects.hash on separate lines for better maintainability, similar to the previous version of the code.

@AdyenAutomationBot AdyenAutomationBot force-pushed the sdk-automation/checkout branch 4 times, most recently from baf3b35 to 971a77c Compare January 8, 2026 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants