diff --git a/functional_tests/ZBIO-5139.feature b/functional_tests/ZBIO-5139.feature
new file mode 100644
index 0000000..f91c80e
--- /dev/null
+++ b/functional_tests/ZBIO-5139.feature
@@ -0,0 +1,60 @@
+Feature: Testing API for Banking Services
+ Scenario: Testing HTTP POST method for submitting credit card application online
+ Given the API base URL '/credit-card-application'
+ When I send a POST request to '/submit-online' with valid customer information
+ Then the response status should be 201
+ And the response should contain 'Application submitted successfully, confirmation notification sent'
+
+ Scenario: Testing HTTP POST method for submitting credit card application through a bank branch
+ Given the API base URL '/credit-card-application'
+ When I send a POST request to '/submit-branch' with customer data
+ Then the response status should be 201
+ And the response should contain 'Application submitted successfully, customer informed'
+
+ Scenario: Testing HTTP POST method for lodging a customer's unexpected fee complaint
+ Given the API base URL '/charges-complaint'
+ When I send a POST request to '/file-complaint' with fee complaint detail
+ Then the response status should be 201
+ And the response should contain 'Complaint lodged successfully'
+
+ Scenario: Testing HTTP PUT method for processing customer's unexpected fee waiver
+ Given the API base URL '/charges-complaint'
+ When I send a PUT request to '/process-waiver' with complaint reference ID
+ Then the response status should be 200
+ And the response should contain 'Charges waived off, customer informed'
+
+ Scenario: Testing HTTP POST method for adding reward points to a customer's account
+ Given the API base URL '/reward-points'
+ When I send a POST request to '/add-points' with transaction data
+ Then the response status should be 201
+ And the response should contain 'Rewards points added successfully'
+
+ Scenario: Testing HTTP PUT method for redeeming a customer's reward points
+ Given the API base URL '/reward-points'
+ When a PUT request is sent to '/redeem-points' with reward selection data
+ Then the response status should be 200
+ And the response should contain 'Rewards redeemed successfully, points updated'
+
+ Scenario: Testing HTTP PUT method for increasing a customer's credit limit
+ Given the API base URL '/credit-limit'
+ When a PUT request is sent to '/increase-limit' with customer ID
+ Then the response status should be 200
+ And the response should contain 'Credit limit increased successfully, customer informed'
+
+ Scenario: Testing HTTP PUT method for reducing a customer's credit limit
+ Given the API base URL '/credit-limit'
+ When a PUT request is sent to '/decrease-limit' with customer ID
+ Then the response status should be 200
+ And the response should contain 'Credit limit reduced successfully, customer informed'
+
+ Scenario: Testing HTTP POST method for sending promotional balance transfer offer to a customer
+ Given the API base URL '/promo-balance-transfer'
+ When a POST request is sent to '/send-offer' with customer ID
+ Then the response status should be 201
+ And the response should contain 'Promotional offer sent to customer'
+
+ Scenario: Testing HTTP PUT method for processing a customer's decision to opt for promotional balance transfer offer
+ Given the API base URL '/promo-balance-transfer'
+ When a PUT request is sent to '/process-transfer' with transfer data
+ Then the response status should be 200
+ And the response should contain 'Balance transferred successfully, account updated'
diff --git a/functional_tests/ZBIO-5139.txt b/functional_tests/ZBIO-5139.txt
new file mode 100644
index 0000000..bf0a017
--- /dev/null
+++ b/functional_tests/ZBIO-5139.txt
@@ -0,0 +1,64 @@
+Functional Test Cases:
+
+1. Credit Card Application:
+ - Test Case 1: Customer applies for the credit card online
+ - Input: Valid customer information to fill application form
+ - Expected Output: Application submitted successfully and confirmation notification received
+ - Test Case 2: Customer applies through a bank branch
+ - Input: Bank branch applies with the customer's data on their behalf
+ - Expected Output: Application submitted successfully and informed to customer
+
+2. Waiving off charges:
+ - Test Case 1: Customer encounters an unexpected fee
+ - Input: Customer reports an unexpected fee
+ - Expected Output: A fee complaint report is lodged
+ - Test Case 2: Bank processes waiver for the unexpected fee
+ - Input: Fee complaint report from the customer
+ - Expected Output: Charges are waived off and the customer is informed
+
+3. Redeeming points:
+ - Test Case 1: Customer accumulates reward points
+ - Input: Customer makes transactions using credit card
+ - Expected Output: Reward points for transactions are added to customer's account
+ - Test Case 2: Customer redeems reward points
+ - Input: Customer chooses to redeem reward points for a reward
+ - Expected Output: Desired reward is given to customer and the respective points are subtracted from the account
+
+4. Credit Limit Adjustment:
+ - Test Case 1: Bank increases the credit limit based on creditworthiness
+ - Input: Creditworthiness analysis of a customer
+ - Expected Output: Credit limit is increased and the customer is informed
+ - Test Case 2: Bank reduces the credit limit due to changes in the financial situation
+ - Input: Financial risk analysis of a customer
+ - Expected Output: Credit limit is reduced and the customer is informed
+
+5. Promotional Balance Transfers
+ - Test Case 1: Customer gets a balance transfer offer
+ - Input: Bank decision to offer promotional balance transfer
+ - Expected Output: The customer is informed about the promotional offer
+ - Test Case 2: Customer decides to opt for the promotional balance transfer offer
+ - Input: Customer's decision to transfer high-interest balance
+ - Expected Output: Balance transferred successfully and updating in customer account
+
+Non-functional Test Cases:
+
+1. Usability:
+ - Customers are able to easily navigate and use all the provided services
+
+2. Performance:
+ - Test the speed and response time of services
+
+3. Security:
+ - Customer information provided during the application process, transactions, and other operations is securely handled and stored
+
+4. Compatibility:
+ - Services and operations are compatible and easily accessible across different platforms, browsers, and devices
+
+5. Scalability:
+ - System should handle the increasing load when multiple users access services simultaneously
+
+6. Accessibility:
+ - Services are accessible 24/7
+
+7. Fault Tolerance:
+ - In case of any error or issue, the system should generate a relevant error message and recover without disturbing the user's workflow
\ No newline at end of file
diff --git a/functional_tests/ZBIO-5139.yaml b/functional_tests/ZBIO-5139.yaml
new file mode 100644
index 0000000..0b9d8e6
--- /dev/null
+++ b/functional_tests/ZBIO-5139.yaml
@@ -0,0 +1,152 @@
+openapi: 3.0.0
+info:
+ title: API for Banking Services
+ description: This is the API that provides different banking service scenarios.
+ version: 1.0.0
+servers:
+ - url: http://api.example.com/{path}
+ variables:
+ path:
+ default: v1
+paths:
+ /credit-card-application/submit-online:
+ post:
+ summary: Submitting online credit card application
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerApplication'
+ responses:
+ '201':
+ description: Application submitted successfully, confirmation notification sent
+ /credit-card-application/submit-branch:
+ post:
+ summary: Submitting branch credit card application
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerApplication'
+ responses:
+ '201':
+ description: Application submitted successfully, customer informed
+ /charges-complaint/file-complaint:
+ post:
+ summary: Filing a charges complaint
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ComplaintDetails'
+ responses:
+ '201':
+ description: Complaint lodged successfully
+ /charges-complaint/process-waiver:
+ put:
+ summary: Processing waiver
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ComplaintReferenceID'
+ responses:
+ '200':
+ description: Charges waived off, customer informed
+ /reward-points/add-points:
+ post:
+ summary: Adding reward points
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TransactionData'
+ responses:
+ '201':
+ description: Rewards points added successfully
+ /reward-points/redeem-points:
+ put:
+ summary: Redeeming reward points
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RewardSelectionData'
+ responses:
+ '200':
+ description: Rewards redeemed successfully, points updated
+ /credit-limit/increase-limit:
+ put:
+ summary: Increasing credit limit
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerID'
+ responses:
+ '200':
+ description: Credit limit increased successfully, customer informed
+ /credit-limit/decrease-limit:
+ put:
+ summary: Decreasing credit limit
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerID'
+ responses:
+ '200':
+ description: Credit limit reduced successfully, customer informed
+ /promo-balance-transfer/send-offer:
+ post:
+ summary: Sending promotional balance transfer offer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerID'
+ responses:
+ '201':
+ description: Promotional offer sent to customer
+ /promo-balance-transfer/process-transfer:
+ put:
+ summary: Processing promotional balance transfer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TransferData'
+ responses:
+ '200':
+ description: Balance transferred successfully, account updated
+
+components:
+ schemas:
+ CustomerApplication:
+ type: object
+ properties:
+ //required customer data details
+ ComplaintDetails:
+ type: object
+ properties:
+ //required complaint details
+ ComplaintReferenceID:
+ type: object
+ properties:
+ //required complaint reference ID details
+ TransactionData:
+ type: object
+ properties:
+ //required transaction data details
+ RewardSelectionData:
+ type: object
+ properties:
+ //required reward selection data details
+ CustomerID:
+ type: object
+ properties:
+ //required customer ID details
+ TransferData:
+ type: object
+ properties:
+ //required transfer details
diff --git a/spring-boot-openapi-generator/.openapi-generator-ignore b/spring-boot-openapi-generator/.openapi-generator-ignore
new file mode 100644
index 0000000..7484ee5
--- /dev/null
+++ b/spring-boot-openapi-generator/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/spring-boot-openapi-generator/.openapi-generator/FILES b/spring-boot-openapi-generator/.openapi-generator/FILES
new file mode 100644
index 0000000..c78612e
--- /dev/null
+++ b/spring-boot-openapi-generator/.openapi-generator/FILES
@@ -0,0 +1,21 @@
+.openapi-generator-ignore
+README.md
+pom.xml
+src/main/java/org/openapitools/OpenApiGeneratorApplication.java
+src/main/java/org/openapitools/RFC3339DateFormat.java
+src/main/java/org/openapitools/api/ApiUtil.java
+src/main/java/org/openapitools/api/ChargesComplaintApi.java
+src/main/java/org/openapitools/api/ChargesComplaintApiController.java
+src/main/java/org/openapitools/api/CreditCardApplicationApi.java
+src/main/java/org/openapitools/api/CreditCardApplicationApiController.java
+src/main/java/org/openapitools/api/CreditLimitApi.java
+src/main/java/org/openapitools/api/CreditLimitApiController.java
+src/main/java/org/openapitools/api/PromoBalanceTransferApi.java
+src/main/java/org/openapitools/api/PromoBalanceTransferApiController.java
+src/main/java/org/openapitools/api/RewardPointsApi.java
+src/main/java/org/openapitools/api/RewardPointsApiController.java
+src/main/java/org/openapitools/configuration/HomeController.java
+src/main/java/org/openapitools/configuration/SpringDocConfiguration.java
+src/main/resources/application.properties
+src/main/resources/openapi.yaml
+src/test/java/org/openapitools/OpenApiGeneratorApplicationTests.java
diff --git a/spring-boot-openapi-generator/.openapi-generator/VERSION b/spring-boot-openapi-generator/.openapi-generator/VERSION
new file mode 100644
index 0000000..ba7f754
--- /dev/null
+++ b/spring-boot-openapi-generator/.openapi-generator/VERSION
@@ -0,0 +1 @@
+7.4.0
diff --git a/spring-boot-openapi-generator/README.md b/spring-boot-openapi-generator/README.md
new file mode 100644
index 0000000..5cd22b6
--- /dev/null
+++ b/spring-boot-openapi-generator/README.md
@@ -0,0 +1,21 @@
+# OpenAPI generated server
+
+Spring Boot Server
+
+## Overview
+This server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.
+By using the [OpenAPI-Spec](https://openapis.org), you can easily generate a server stub.
+This is an example of building a OpenAPI-enabled server in Java using the SpringBoot framework.
+
+
+The underlying library integrating OpenAPI to Spring Boot is [springdoc](https://springdoc.org).
+Springdoc will generate an OpenAPI v3 specification based on the generated Controller and Model classes.
+The specification is available to download using the following url:
+http://localhost:8080/v3/api-docs/
+
+Start your server as a simple java application
+
+You can view the api documentation in swagger-ui by pointing to
+http://localhost:8080/swagger-ui.html
+
+Change default port value in application.properties
\ No newline at end of file
diff --git a/spring-boot-openapi-generator/pom.xml b/spring-boot-openapi-generator/pom.xml
new file mode 100644
index 0000000..90809d2
--- /dev/null
+++ b/spring-boot-openapi-generator/pom.xml
@@ -0,0 +1,82 @@
+
+ 4.0.0
+ org.openapitools
+ openapi-spring
+ jar
+ openapi-spring
+ 1.0.0
+
+ 1.8
+ ${java.version}
+ ${java.version}
+ UTF-8
+ 1.6.14
+ 5.3.1
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.7.15
+
+
+
+ src/main/java
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.data
+ spring-data-commons
+
+
+
+ org.springdoc
+ springdoc-openapi-ui
+ ${springdoc.version}
+
+
+
+ com.google.code.findbugs
+ jsr305
+ 3.0.2
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-yaml
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
+
+ org.openapitools
+ jackson-databind-nullable
+ 0.2.6
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/OpenApiGeneratorApplication.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/OpenApiGeneratorApplication.java
new file mode 100644
index 0000000..97252a8
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/OpenApiGeneratorApplication.java
@@ -0,0 +1,30 @@
+package org.openapitools;
+
+import com.fasterxml.jackson.databind.Module;
+import org.openapitools.jackson.nullable.JsonNullableModule;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.FilterType;
+import org.springframework.context.annotation.FullyQualifiedAnnotationBeanNameGenerator;
+
+@SpringBootApplication(
+ nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class
+)
+@ComponentScan(
+ basePackages = {"org.openapitools", "org.openapitools.api" , "org.openapitools.configuration"},
+ nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class
+)
+public class OpenApiGeneratorApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(OpenApiGeneratorApplication.class, args);
+ }
+
+ @Bean(name = "org.openapitools.OpenApiGeneratorApplication.jsonNullableModule")
+ public Module jsonNullableModule() {
+ return new JsonNullableModule();
+ }
+
+}
\ No newline at end of file
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/RFC3339DateFormat.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/RFC3339DateFormat.java
new file mode 100644
index 0000000..bcd3936
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/RFC3339DateFormat.java
@@ -0,0 +1,38 @@
+package org.openapitools;
+
+import com.fasterxml.jackson.databind.util.StdDateFormat;
+
+import java.text.DateFormat;
+import java.text.FieldPosition;
+import java.text.ParsePosition;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+public class RFC3339DateFormat extends DateFormat {
+ private static final long serialVersionUID = 1L;
+ private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC");
+
+ private final StdDateFormat fmt = new StdDateFormat()
+ .withTimeZone(TIMEZONE_Z)
+ .withColonInTimeZone(true);
+
+ public RFC3339DateFormat() {
+ this.calendar = new GregorianCalendar();
+ }
+
+ @Override
+ public Date parse(String source, ParsePosition pos) {
+ return fmt.parse(source, pos);
+ }
+
+ @Override
+ public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
+ return fmt.format(date, toAppendTo, fieldPosition);
+ }
+
+ @Override
+ public Object clone() {
+ return this;
+ }
+}
\ No newline at end of file
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ApiUtil.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ApiUtil.java
new file mode 100644
index 0000000..1245b1d
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ApiUtil.java
@@ -0,0 +1,19 @@
+package org.openapitools.api;
+
+import org.springframework.web.context.request.NativeWebRequest;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+public class ApiUtil {
+ public static void setExampleResponse(NativeWebRequest req, String contentType, String example) {
+ try {
+ HttpServletResponse res = req.getNativeResponse(HttpServletResponse.class);
+ res.setCharacterEncoding("UTF-8");
+ res.addHeader("Content-Type", contentType);
+ res.getWriter().print(example);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ChargesComplaintApi.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ChargesComplaintApi.java
new file mode 100644
index 0000000..ac34d58
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ChargesComplaintApi.java
@@ -0,0 +1,96 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.4.0).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openapitools.api;
+
+import io.swagger.v3.oas.annotations.ExternalDocumentation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Validated
+@Tag(name = "charges-complaint", description = "the charges-complaint API")
+public interface ChargesComplaintApi {
+
+ default Optional getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * POST /charges-complaint/file-complaint : Filing a charges complaint
+ *
+ * @param body (optional)
+ * @return Complaint lodged successfully (status code 201)
+ */
+ @Operation(
+ operationId = "chargesComplaintFileComplaintPost",
+ summary = "Filing a charges complaint",
+ responses = {
+ @ApiResponse(responseCode = "201", description = "Complaint lodged successfully")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/charges-complaint/file-complaint",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity chargesComplaintFileComplaintPost(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * PUT /charges-complaint/process-waiver : Processing waiver
+ *
+ * @param body (optional)
+ * @return Charges waived off, customer informed (status code 200)
+ */
+ @Operation(
+ operationId = "chargesComplaintProcessWaiverPut",
+ summary = "Processing waiver",
+ responses = {
+ @ApiResponse(responseCode = "200", description = "Charges waived off, customer informed")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.PUT,
+ value = "/charges-complaint/process-waiver",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity chargesComplaintProcessWaiverPut(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ChargesComplaintApiController.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ChargesComplaintApiController.java
new file mode 100644
index 0000000..5ae22f1
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ChargesComplaintApiController.java
@@ -0,0 +1,45 @@
+package org.openapitools.api;
+
+
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Controller
+@RequestMapping("${openapi.aPIForBankingServices.base-path:/v1}")
+public class ChargesComplaintApiController implements ChargesComplaintApi {
+
+ private final NativeWebRequest request;
+
+ @Autowired
+ public ChargesComplaintApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditCardApplicationApi.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditCardApplicationApi.java
new file mode 100644
index 0000000..39bfd16
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditCardApplicationApi.java
@@ -0,0 +1,96 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.4.0).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openapitools.api;
+
+import io.swagger.v3.oas.annotations.ExternalDocumentation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Validated
+@Tag(name = "credit-card-application", description = "the credit-card-application API")
+public interface CreditCardApplicationApi {
+
+ default Optional getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * POST /credit-card-application/submit-branch : Submitting branch credit card application
+ *
+ * @param body (optional)
+ * @return Application submitted successfully, customer informed (status code 201)
+ */
+ @Operation(
+ operationId = "creditCardApplicationSubmitBranchPost",
+ summary = "Submitting branch credit card application",
+ responses = {
+ @ApiResponse(responseCode = "201", description = "Application submitted successfully, customer informed")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/credit-card-application/submit-branch",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity creditCardApplicationSubmitBranchPost(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /credit-card-application/submit-online : Submitting online credit card application
+ *
+ * @param body (optional)
+ * @return Application submitted successfully, confirmation notification sent (status code 201)
+ */
+ @Operation(
+ operationId = "creditCardApplicationSubmitOnlinePost",
+ summary = "Submitting online credit card application",
+ responses = {
+ @ApiResponse(responseCode = "201", description = "Application submitted successfully, confirmation notification sent")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/credit-card-application/submit-online",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity creditCardApplicationSubmitOnlinePost(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditCardApplicationApiController.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditCardApplicationApiController.java
new file mode 100644
index 0000000..8ed55ea
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditCardApplicationApiController.java
@@ -0,0 +1,45 @@
+package org.openapitools.api;
+
+
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Controller
+@RequestMapping("${openapi.aPIForBankingServices.base-path:/v1}")
+public class CreditCardApplicationApiController implements CreditCardApplicationApi {
+
+ private final NativeWebRequest request;
+
+ @Autowired
+ public CreditCardApplicationApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditLimitApi.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditLimitApi.java
new file mode 100644
index 0000000..1af4f2c
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditLimitApi.java
@@ -0,0 +1,96 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.4.0).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openapitools.api;
+
+import io.swagger.v3.oas.annotations.ExternalDocumentation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Validated
+@Tag(name = "credit-limit", description = "the credit-limit API")
+public interface CreditLimitApi {
+
+ default Optional getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * PUT /credit-limit/decrease-limit : Decreasing credit limit
+ *
+ * @param body (optional)
+ * @return Credit limit reduced successfully, customer informed (status code 200)
+ */
+ @Operation(
+ operationId = "creditLimitDecreaseLimitPut",
+ summary = "Decreasing credit limit",
+ responses = {
+ @ApiResponse(responseCode = "200", description = "Credit limit reduced successfully, customer informed")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.PUT,
+ value = "/credit-limit/decrease-limit",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity creditLimitDecreaseLimitPut(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * PUT /credit-limit/increase-limit : Increasing credit limit
+ *
+ * @param body (optional)
+ * @return Credit limit increased successfully, customer informed (status code 200)
+ */
+ @Operation(
+ operationId = "creditLimitIncreaseLimitPut",
+ summary = "Increasing credit limit",
+ responses = {
+ @ApiResponse(responseCode = "200", description = "Credit limit increased successfully, customer informed")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.PUT,
+ value = "/credit-limit/increase-limit",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity creditLimitIncreaseLimitPut(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditLimitApiController.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditLimitApiController.java
new file mode 100644
index 0000000..90ba171
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditLimitApiController.java
@@ -0,0 +1,45 @@
+package org.openapitools.api;
+
+
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Controller
+@RequestMapping("${openapi.aPIForBankingServices.base-path:/v1}")
+public class CreditLimitApiController implements CreditLimitApi {
+
+ private final NativeWebRequest request;
+
+ @Autowired
+ public CreditLimitApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/PromoBalanceTransferApi.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/PromoBalanceTransferApi.java
new file mode 100644
index 0000000..628ac74
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/PromoBalanceTransferApi.java
@@ -0,0 +1,96 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.4.0).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openapitools.api;
+
+import io.swagger.v3.oas.annotations.ExternalDocumentation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Validated
+@Tag(name = "promo-balance-transfer", description = "the promo-balance-transfer API")
+public interface PromoBalanceTransferApi {
+
+ default Optional getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * PUT /promo-balance-transfer/process-transfer : Processing promotional balance transfer
+ *
+ * @param body (optional)
+ * @return Balance transferred successfully, account updated (status code 200)
+ */
+ @Operation(
+ operationId = "promoBalanceTransferProcessTransferPut",
+ summary = "Processing promotional balance transfer",
+ responses = {
+ @ApiResponse(responseCode = "200", description = "Balance transferred successfully, account updated")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.PUT,
+ value = "/promo-balance-transfer/process-transfer",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity promoBalanceTransferProcessTransferPut(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /promo-balance-transfer/send-offer : Sending promotional balance transfer offer
+ *
+ * @param body (optional)
+ * @return Promotional offer sent to customer (status code 201)
+ */
+ @Operation(
+ operationId = "promoBalanceTransferSendOfferPost",
+ summary = "Sending promotional balance transfer offer",
+ responses = {
+ @ApiResponse(responseCode = "201", description = "Promotional offer sent to customer")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/promo-balance-transfer/send-offer",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity promoBalanceTransferSendOfferPost(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/PromoBalanceTransferApiController.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/PromoBalanceTransferApiController.java
new file mode 100644
index 0000000..b1d4d49
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/PromoBalanceTransferApiController.java
@@ -0,0 +1,45 @@
+package org.openapitools.api;
+
+
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Controller
+@RequestMapping("${openapi.aPIForBankingServices.base-path:/v1}")
+public class PromoBalanceTransferApiController implements PromoBalanceTransferApi {
+
+ private final NativeWebRequest request;
+
+ @Autowired
+ public PromoBalanceTransferApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/RewardPointsApi.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/RewardPointsApi.java
new file mode 100644
index 0000000..2ae9ffb
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/RewardPointsApi.java
@@ -0,0 +1,96 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.4.0).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openapitools.api;
+
+import io.swagger.v3.oas.annotations.ExternalDocumentation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Validated
+@Tag(name = "reward-points", description = "the reward-points API")
+public interface RewardPointsApi {
+
+ default Optional getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * POST /reward-points/add-points : Adding reward points
+ *
+ * @param body (optional)
+ * @return Rewards points added successfully (status code 201)
+ */
+ @Operation(
+ operationId = "rewardPointsAddPointsPost",
+ summary = "Adding reward points",
+ responses = {
+ @ApiResponse(responseCode = "201", description = "Rewards points added successfully")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/reward-points/add-points",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity rewardPointsAddPointsPost(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * PUT /reward-points/redeem-points : Redeeming reward points
+ *
+ * @param body (optional)
+ * @return Rewards redeemed successfully, points updated (status code 200)
+ */
+ @Operation(
+ operationId = "rewardPointsRedeemPointsPut",
+ summary = "Redeeming reward points",
+ responses = {
+ @ApiResponse(responseCode = "200", description = "Rewards redeemed successfully, points updated")
+ }
+ )
+ @RequestMapping(
+ method = RequestMethod.PUT,
+ value = "/reward-points/redeem-points",
+ consumes = { "application/json" }
+ )
+
+ default ResponseEntity rewardPointsRedeemPointsPut(
+ @Parameter(name = "body", description = "") @Valid @RequestBody(required = false) Object body
+ ) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/api/RewardPointsApiController.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/RewardPointsApiController.java
new file mode 100644
index 0000000..e734a6b
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/api/RewardPointsApiController.java
@@ -0,0 +1,45 @@
+package org.openapitools.api;
+
+
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Generated;
+
+@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-03-27T14:56:01.389439+05:30[Asia/Kolkata]", comments = "Generator version: 7.4.0")
+@Controller
+@RequestMapping("${openapi.aPIForBankingServices.base-path:/v1}")
+public class RewardPointsApiController implements RewardPointsApi {
+
+ private final NativeWebRequest request;
+
+ @Autowired
+ public RewardPointsApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/configuration/HomeController.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/configuration/HomeController.java
new file mode 100644
index 0000000..9aa2928
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/configuration/HomeController.java
@@ -0,0 +1,20 @@
+package org.openapitools.configuration;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.GetMapping;
+
+/**
+ * Home redirection to OpenAPI api documentation
+ */
+@Controller
+public class HomeController {
+
+ @RequestMapping("/")
+ public String index() {
+ return "redirect:swagger-ui.html";
+ }
+
+}
\ No newline at end of file
diff --git a/spring-boot-openapi-generator/src/main/java/org/openapitools/configuration/SpringDocConfiguration.java b/spring-boot-openapi-generator/src/main/java/org/openapitools/configuration/SpringDocConfiguration.java
new file mode 100644
index 0000000..01beb9f
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/java/org/openapitools/configuration/SpringDocConfiguration.java
@@ -0,0 +1,27 @@
+package org.openapitools.configuration;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.info.Contact;
+import io.swagger.v3.oas.models.info.License;
+import io.swagger.v3.oas.models.Components;
+import io.swagger.v3.oas.models.security.SecurityScheme;
+
+@Configuration
+public class SpringDocConfiguration {
+
+ @Bean(name = "org.openapitools.configuration.SpringDocConfiguration.apiInfo")
+ OpenAPI apiInfo() {
+ return new OpenAPI()
+ .info(
+ new Info()
+ .title("API for Banking Services")
+ .description("This is the API that provides different banking service scenarios.")
+ .version("1.0.0")
+ )
+ ;
+ }
+}
\ No newline at end of file
diff --git a/spring-boot-openapi-generator/src/main/resources/application.properties b/spring-boot-openapi-generator/src/main/resources/application.properties
new file mode 100644
index 0000000..7e90813
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/resources/application.properties
@@ -0,0 +1,3 @@
+server.port=8080
+spring.jackson.date-format=org.openapitools.RFC3339DateFormat
+spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
diff --git a/spring-boot-openapi-generator/src/main/resources/openapi.yaml b/spring-boot-openapi-generator/src/main/resources/openapi.yaml
new file mode 100644
index 0000000..af14f16
--- /dev/null
+++ b/spring-boot-openapi-generator/src/main/resources/openapi.yaml
@@ -0,0 +1,158 @@
+openapi: 3.0.0
+info:
+ description: This is the API that provides different banking service scenarios.
+ title: API for Banking Services
+ version: 1.0.0
+servers:
+- url: "http://api.example.com/{path}"
+ variables:
+ path:
+ default: v1
+paths:
+ /credit-card-application/submit-online:
+ post:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerApplication'
+ responses:
+ "201":
+ description: "Application submitted successfully, confirmation notification\
+ \ sent"
+ summary: Submitting online credit card application
+ x-content-type: application/json
+ x-accepts: application/json
+ /credit-card-application/submit-branch:
+ post:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerApplication'
+ responses:
+ "201":
+ description: "Application submitted successfully, customer informed"
+ summary: Submitting branch credit card application
+ x-content-type: application/json
+ x-accepts: application/json
+ /charges-complaint/file-complaint:
+ post:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ComplaintDetails'
+ responses:
+ "201":
+ description: Complaint lodged successfully
+ summary: Filing a charges complaint
+ x-content-type: application/json
+ x-accepts: application/json
+ /charges-complaint/process-waiver:
+ put:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ComplaintReferenceID'
+ responses:
+ "200":
+ description: "Charges waived off, customer informed"
+ summary: Processing waiver
+ x-content-type: application/json
+ x-accepts: application/json
+ /reward-points/add-points:
+ post:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TransactionData'
+ responses:
+ "201":
+ description: Rewards points added successfully
+ summary: Adding reward points
+ x-content-type: application/json
+ x-accepts: application/json
+ /reward-points/redeem-points:
+ put:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RewardSelectionData'
+ responses:
+ "200":
+ description: "Rewards redeemed successfully, points updated"
+ summary: Redeeming reward points
+ x-content-type: application/json
+ x-accepts: application/json
+ /credit-limit/increase-limit:
+ put:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerID'
+ responses:
+ "200":
+ description: "Credit limit increased successfully, customer informed"
+ summary: Increasing credit limit
+ x-content-type: application/json
+ x-accepts: application/json
+ /credit-limit/decrease-limit:
+ put:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerID'
+ responses:
+ "200":
+ description: "Credit limit reduced successfully, customer informed"
+ summary: Decreasing credit limit
+ x-content-type: application/json
+ x-accepts: application/json
+ /promo-balance-transfer/send-offer:
+ post:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CustomerID'
+ responses:
+ "201":
+ description: Promotional offer sent to customer
+ summary: Sending promotional balance transfer offer
+ x-content-type: application/json
+ x-accepts: application/json
+ /promo-balance-transfer/process-transfer:
+ put:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TransferData'
+ responses:
+ "200":
+ description: "Balance transferred successfully, account updated"
+ summary: Processing promotional balance transfer
+ x-content-type: application/json
+ x-accepts: application/json
+components:
+ schemas:
+ CustomerApplication:
+ type: object
+ ComplaintDetails:
+ type: object
+ ComplaintReferenceID:
+ type: object
+ TransactionData:
+ type: object
+ RewardSelectionData:
+ type: object
+ CustomerID:
+ type: object
+ TransferData:
+ type: object
diff --git a/spring-boot-openapi-generator/src/test/java/org/openapitools/OpenApiGeneratorApplicationTests.java b/spring-boot-openapi-generator/src/test/java/org/openapitools/OpenApiGeneratorApplicationTests.java
new file mode 100644
index 0000000..3681f67
--- /dev/null
+++ b/spring-boot-openapi-generator/src/test/java/org/openapitools/OpenApiGeneratorApplicationTests.java
@@ -0,0 +1,13 @@
+package org.openapitools;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class OpenApiGeneratorApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}
\ No newline at end of file
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/OpenApiGeneratorApplication.class b/spring-boot-openapi-generator/target/classes/org/openapitools/OpenApiGeneratorApplication.class
new file mode 100644
index 0000000..ea9530a
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/OpenApiGeneratorApplication.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/RFC3339DateFormat.class b/spring-boot-openapi-generator/target/classes/org/openapitools/RFC3339DateFormat.class
new file mode 100644
index 0000000..dad6fa1
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/RFC3339DateFormat.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/ApiUtil.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/ApiUtil.class
new file mode 100644
index 0000000..b9ed45f
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/ApiUtil.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/ChargesComplaintApi.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/ChargesComplaintApi.class
new file mode 100644
index 0000000..78c25bd
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/ChargesComplaintApi.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/ChargesComplaintApiController.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/ChargesComplaintApiController.class
new file mode 100644
index 0000000..2f60b9e
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/ChargesComplaintApiController.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditCardApplicationApi.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditCardApplicationApi.class
new file mode 100644
index 0000000..3ad5d87
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditCardApplicationApi.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditCardApplicationApiController.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditCardApplicationApiController.class
new file mode 100644
index 0000000..39ea87e
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditCardApplicationApiController.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditLimitApi.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditLimitApi.class
new file mode 100644
index 0000000..b2ec0c2
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditLimitApi.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditLimitApiController.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditLimitApiController.class
new file mode 100644
index 0000000..0b31286
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/CreditLimitApiController.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/PromoBalanceTransferApi.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/PromoBalanceTransferApi.class
new file mode 100644
index 0000000..c5b63cf
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/PromoBalanceTransferApi.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/PromoBalanceTransferApiController.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/PromoBalanceTransferApiController.class
new file mode 100644
index 0000000..2a8ae65
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/PromoBalanceTransferApiController.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/RewardPointsApi.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/RewardPointsApi.class
new file mode 100644
index 0000000..1575191
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/RewardPointsApi.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/api/RewardPointsApiController.class b/spring-boot-openapi-generator/target/classes/org/openapitools/api/RewardPointsApiController.class
new file mode 100644
index 0000000..ddffc3f
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/api/RewardPointsApiController.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/configuration/HomeController.class b/spring-boot-openapi-generator/target/classes/org/openapitools/configuration/HomeController.class
new file mode 100644
index 0000000..9659dc9
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/configuration/HomeController.class differ
diff --git a/spring-boot-openapi-generator/target/classes/org/openapitools/configuration/SpringDocConfiguration.class b/spring-boot-openapi-generator/target/classes/org/openapitools/configuration/SpringDocConfiguration.class
new file mode 100644
index 0000000..6793dbe
Binary files /dev/null and b/spring-boot-openapi-generator/target/classes/org/openapitools/configuration/SpringDocConfiguration.class differ
diff --git a/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..744854a
--- /dev/null
+++ b/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,15 @@
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditCardApplicationApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ChargesComplaintApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/PromoBalanceTransferApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/RFC3339DateFormat.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditLimitApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditLimitApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/PromoBalanceTransferApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ApiUtil.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/ChargesComplaintApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/configuration/HomeController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/CreditCardApplicationApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/RewardPointsApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/api/RewardPointsApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/configuration/SpringDocConfiguration.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/main/java/org/openapitools/OpenApiGeneratorApplication.java
diff --git a/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..74180b0
--- /dev/null
+++ b/spring-boot-openapi-generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot-openapi-generator/src/test/java/org/openapitools/OpenApiGeneratorApplicationTests.java
diff --git a/spring-boot-openapi-generator/target/test-classes/org/openapitools/OpenApiGeneratorApplicationTests.class b/spring-boot-openapi-generator/target/test-classes/org/openapitools/OpenApiGeneratorApplicationTests.class
new file mode 100644
index 0000000..7621c71
Binary files /dev/null and b/spring-boot-openapi-generator/target/test-classes/org/openapitools/OpenApiGeneratorApplicationTests.class differ
diff --git a/spring-boot-swagger-codegen/.swagger-codegen-ignore b/spring-boot-swagger-codegen/.swagger-codegen-ignore
new file mode 100644
index 0000000..c5fa491
--- /dev/null
+++ b/spring-boot-swagger-codegen/.swagger-codegen-ignore
@@ -0,0 +1,23 @@
+# Swagger Codegen Ignore
+# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/spring-boot-swagger-codegen/.swagger-codegen/VERSION b/spring-boot-swagger-codegen/.swagger-codegen/VERSION
new file mode 100644
index 0000000..248908e
--- /dev/null
+++ b/spring-boot-swagger-codegen/.swagger-codegen/VERSION
@@ -0,0 +1 @@
+3.0.54
\ No newline at end of file
diff --git a/spring-boot-swagger-codegen/README.md b/spring-boot-swagger-codegen/README.md
new file mode 100644
index 0000000..901354c
--- /dev/null
+++ b/spring-boot-swagger-codegen/README.md
@@ -0,0 +1,18 @@
+# Swagger generated server
+
+Spring Boot Server
+
+
+## Overview
+This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project.
+By using the [OpenAPI-Spec](https://github.com/swagger-api/swagger-core), you can easily generate a server stub.
+This is an example of building a swagger-enabled server in Java using the SpringBoot framework.
+
+The underlying library integrating swagger to SpringBoot is [springdoc-openapi](https://github.com/springdoc/springdoc-openapi)
+
+Start your server as an simple java application
+
+You can view the api documentation in swagger-ui by pointing to
+http://localhost:8080/
+
+Change default port value in application.properties
\ No newline at end of file
diff --git a/spring-boot-swagger-codegen/pom.xml b/spring-boot-swagger-codegen/pom.xml
new file mode 100644
index 0000000..63729dd
--- /dev/null
+++ b/spring-boot-swagger-codegen/pom.xml
@@ -0,0 +1,78 @@
+
+ 4.0.0
+ io.swagger
+ swagger-spring
+ jar
+ swagger-spring
+ 1.0.0
+
+ 1.9
+ ${java.version}
+ ${java.version}
+ 1.8.0
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.1.16.RELEASE
+
+
+ src/main/java
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+ org.springdoc
+ springdoc-openapi-ui
+ ${springdoc-version}
+
+
+
+
+ com.github.joschi.jackson
+ jackson-datatype-threetenbp
+ 2.6.4
+
+
+
+
+ javax.validation
+ validation-api
+
+
+
+ org.springframework.plugin
+ spring-plugin-core
+ 2.0.0.RELEASE
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/RFC3339DateFormat.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/RFC3339DateFormat.java
new file mode 100644
index 0000000..538b6f2
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/RFC3339DateFormat.java
@@ -0,0 +1,22 @@
+package io.swagger;
+
+import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
+import com.fasterxml.jackson.databind.util.ISO8601Utils;
+
+import java.text.FieldPosition;
+import java.util.Date;
+
+
+public class RFC3339DateFormat extends ISO8601DateFormat {
+
+ private static final long serialVersionUID = 1L;
+
+ // Same as ISO8601DateFormat but serializing milliseconds.
+ @Override
+ public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
+ String value = ISO8601Utils.format(date, true);
+ toAppendTo.append(value);
+ return toAppendTo;
+ }
+
+}
\ No newline at end of file
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/Swagger2SpringBoot.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/Swagger2SpringBoot.java
new file mode 100644
index 0000000..59a7fc7
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/Swagger2SpringBoot.java
@@ -0,0 +1,50 @@
+package io.swagger;
+
+import io.swagger.configuration.LocalDateConverter;
+import io.swagger.configuration.LocalDateTimeConverter;
+
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.ExitCodeGenerator;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.format.FormatterRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+@SpringBootApplication
+@ComponentScan(basePackages = { "io.swagger", "io.swagger.api" , "io.swagger.configuration"})
+public class Swagger2SpringBoot implements CommandLineRunner {
+
+ @Override
+ public void run(String... arg0) throws Exception {
+ if (arg0.length > 0 && arg0[0].equals("exitcode")) {
+ throw new ExitException();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ new SpringApplication(Swagger2SpringBoot.class).run(args);
+ }
+
+ @Configuration
+ static class CustomDateConfig extends WebMvcConfigurerAdapter {
+ @Override
+ public void addFormatters(FormatterRegistry registry) {
+ registry.addConverter(new LocalDateConverter("yyyy-MM-dd"));
+ registry.addConverter(new LocalDateTimeConverter("yyyy-MM-dd'T'HH:mm:ss.SSS"));
+ }
+ }
+
+ class ExitException extends RuntimeException implements ExitCodeGenerator {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int getExitCode() {
+ return 10;
+ }
+
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiException.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiException.java
new file mode 100644
index 0000000..f3fb5b3
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiException.java
@@ -0,0 +1,10 @@
+package io.swagger.api;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+public class ApiException extends Exception {
+ private int code;
+ public ApiException (int code, String msg) {
+ super(msg);
+ this.code = code;
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiOriginFilter.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiOriginFilter.java
new file mode 100644
index 0000000..98e81d4
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiOriginFilter.java
@@ -0,0 +1,27 @@
+package io.swagger.api;
+
+import java.io.IOException;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletResponse;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+public class ApiOriginFilter implements Filter {
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+ HttpServletResponse res = (HttpServletResponse) response;
+ res.addHeader("Access-Control-Allow-Origin", "*");
+ res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
+ res.addHeader("Access-Control-Allow-Headers", "Content-Type");
+ chain.doFilter(request, response);
+ }
+
+ @Override
+ public void destroy() {
+ }
+
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiResponseMessage.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiResponseMessage.java
new file mode 100644
index 0000000..6994331
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ApiResponseMessage.java
@@ -0,0 +1,69 @@
+package io.swagger.api;
+
+import javax.xml.bind.annotation.XmlTransient;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@javax.xml.bind.annotation.XmlRootElement
+public class ApiResponseMessage {
+ public static final int ERROR = 1;
+ public static final int WARNING = 2;
+ public static final int INFO = 3;
+ public static final int OK = 4;
+ public static final int TOO_BUSY = 5;
+
+ int code;
+ String type;
+ String message;
+
+ public ApiResponseMessage(){}
+
+ public ApiResponseMessage(int code, String message){
+ this.code = code;
+ switch(code){
+ case ERROR:
+ setType("error");
+ break;
+ case WARNING:
+ setType("warning");
+ break;
+ case INFO:
+ setType("info");
+ break;
+ case OK:
+ setType("ok");
+ break;
+ case TOO_BUSY:
+ setType("too busy");
+ break;
+ default:
+ setType("unknown");
+ break;
+ }
+ this.message = message;
+ }
+
+ @XmlTransient
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ChargesComplaintApi.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ChargesComplaintApi.java
new file mode 100644
index 0000000..af8db0c
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ChargesComplaintApi.java
@@ -0,0 +1,60 @@
+/**
+ * NOTE: This class is auto generated by the swagger code generator program (3.0.54).
+ * https://github.com/swagger-api/swagger-codegen
+ * Do not edit the class manually.
+ */
+package io.swagger.api;
+
+import io.swagger.model.ComplaintDetails;
+import io.swagger.model.ComplaintReferenceID;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.CookieValue;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@Validated
+public interface ChargesComplaintApi {
+
+ @Operation(summary = "Filing a charges complaint", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "201", description = "Complaint lodged successfully") })
+ @RequestMapping(value = "/charges-complaint/file-complaint",
+ consumes = { "application/json" },
+ method = RequestMethod.POST)
+ ResponseEntity chargesComplaintFileComplaintPost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody ComplaintDetails body
+);
+
+
+ @Operation(summary = "Processing waiver", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Charges waived off, customer informed") })
+ @RequestMapping(value = "/charges-complaint/process-waiver",
+ consumes = { "application/json" },
+ method = RequestMethod.PUT)
+ ResponseEntity chargesComplaintProcessWaiverPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody ComplaintReferenceID body
+);
+
+}
+
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ChargesComplaintApiController.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ChargesComplaintApiController.java
new file mode 100644
index 0000000..b937366
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/ChargesComplaintApiController.java
@@ -0,0 +1,64 @@
+package io.swagger.api;
+
+import io.swagger.model.ComplaintDetails;
+import io.swagger.model.ComplaintReferenceID;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@RestController
+public class ChargesComplaintApiController implements ChargesComplaintApi {
+
+ private static final Logger log = LoggerFactory.getLogger(ChargesComplaintApiController.class);
+
+ private final ObjectMapper objectMapper;
+
+ private final HttpServletRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public ChargesComplaintApiController(ObjectMapper objectMapper, HttpServletRequest request) {
+ this.objectMapper = objectMapper;
+ this.request = request;
+ }
+
+ public ResponseEntity chargesComplaintFileComplaintPost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody ComplaintDetails body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+ public ResponseEntity chargesComplaintProcessWaiverPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody ComplaintReferenceID body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditCardApplicationApi.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditCardApplicationApi.java
new file mode 100644
index 0000000..cdb33fe
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditCardApplicationApi.java
@@ -0,0 +1,59 @@
+/**
+ * NOTE: This class is auto generated by the swagger code generator program (3.0.54).
+ * https://github.com/swagger-api/swagger-codegen
+ * Do not edit the class manually.
+ */
+package io.swagger.api;
+
+import io.swagger.model.CustomerApplication;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.CookieValue;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@Validated
+public interface CreditCardApplicationApi {
+
+ @Operation(summary = "Submitting branch credit card application", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "201", description = "Application submitted successfully, customer informed") })
+ @RequestMapping(value = "/credit-card-application/submit-branch",
+ consumes = { "application/json" },
+ method = RequestMethod.POST)
+ ResponseEntity creditCardApplicationSubmitBranchPost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerApplication body
+);
+
+
+ @Operation(summary = "Submitting online credit card application", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "201", description = "Application submitted successfully, confirmation notification sent") })
+ @RequestMapping(value = "/credit-card-application/submit-online",
+ consumes = { "application/json" },
+ method = RequestMethod.POST)
+ ResponseEntity creditCardApplicationSubmitOnlinePost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerApplication body
+);
+
+}
+
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditCardApplicationApiController.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditCardApplicationApiController.java
new file mode 100644
index 0000000..588bb35
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditCardApplicationApiController.java
@@ -0,0 +1,63 @@
+package io.swagger.api;
+
+import io.swagger.model.CustomerApplication;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@RestController
+public class CreditCardApplicationApiController implements CreditCardApplicationApi {
+
+ private static final Logger log = LoggerFactory.getLogger(CreditCardApplicationApiController.class);
+
+ private final ObjectMapper objectMapper;
+
+ private final HttpServletRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public CreditCardApplicationApiController(ObjectMapper objectMapper, HttpServletRequest request) {
+ this.objectMapper = objectMapper;
+ this.request = request;
+ }
+
+ public ResponseEntity creditCardApplicationSubmitBranchPost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerApplication body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+ public ResponseEntity creditCardApplicationSubmitOnlinePost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerApplication body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditLimitApi.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditLimitApi.java
new file mode 100644
index 0000000..d320e58
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditLimitApi.java
@@ -0,0 +1,59 @@
+/**
+ * NOTE: This class is auto generated by the swagger code generator program (3.0.54).
+ * https://github.com/swagger-api/swagger-codegen
+ * Do not edit the class manually.
+ */
+package io.swagger.api;
+
+import io.swagger.model.CustomerID;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.CookieValue;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@Validated
+public interface CreditLimitApi {
+
+ @Operation(summary = "Decreasing credit limit", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Credit limit reduced successfully, customer informed") })
+ @RequestMapping(value = "/credit-limit/decrease-limit",
+ consumes = { "application/json" },
+ method = RequestMethod.PUT)
+ ResponseEntity creditLimitDecreaseLimitPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerID body
+);
+
+
+ @Operation(summary = "Increasing credit limit", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Credit limit increased successfully, customer informed") })
+ @RequestMapping(value = "/credit-limit/increase-limit",
+ consumes = { "application/json" },
+ method = RequestMethod.PUT)
+ ResponseEntity creditLimitIncreaseLimitPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerID body
+);
+
+}
+
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditLimitApiController.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditLimitApiController.java
new file mode 100644
index 0000000..392da44
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/CreditLimitApiController.java
@@ -0,0 +1,63 @@
+package io.swagger.api;
+
+import io.swagger.model.CustomerID;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@RestController
+public class CreditLimitApiController implements CreditLimitApi {
+
+ private static final Logger log = LoggerFactory.getLogger(CreditLimitApiController.class);
+
+ private final ObjectMapper objectMapper;
+
+ private final HttpServletRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public CreditLimitApiController(ObjectMapper objectMapper, HttpServletRequest request) {
+ this.objectMapper = objectMapper;
+ this.request = request;
+ }
+
+ public ResponseEntity creditLimitDecreaseLimitPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerID body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+ public ResponseEntity creditLimitIncreaseLimitPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerID body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/NotFoundException.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/NotFoundException.java
new file mode 100644
index 0000000..f59f7ba
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/NotFoundException.java
@@ -0,0 +1,10 @@
+package io.swagger.api;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+public class NotFoundException extends ApiException {
+ private int code;
+ public NotFoundException (int code, String msg) {
+ super(code, msg);
+ this.code = code;
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/PromoBalanceTransferApi.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/PromoBalanceTransferApi.java
new file mode 100644
index 0000000..b796051
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/PromoBalanceTransferApi.java
@@ -0,0 +1,60 @@
+/**
+ * NOTE: This class is auto generated by the swagger code generator program (3.0.54).
+ * https://github.com/swagger-api/swagger-codegen
+ * Do not edit the class manually.
+ */
+package io.swagger.api;
+
+import io.swagger.model.CustomerID;
+import io.swagger.model.TransferData;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.CookieValue;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@Validated
+public interface PromoBalanceTransferApi {
+
+ @Operation(summary = "Processing promotional balance transfer", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Balance transferred successfully, account updated") })
+ @RequestMapping(value = "/promo-balance-transfer/process-transfer",
+ consumes = { "application/json" },
+ method = RequestMethod.PUT)
+ ResponseEntity promoBalanceTransferProcessTransferPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody TransferData body
+);
+
+
+ @Operation(summary = "Sending promotional balance transfer offer", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "201", description = "Promotional offer sent to customer") })
+ @RequestMapping(value = "/promo-balance-transfer/send-offer",
+ consumes = { "application/json" },
+ method = RequestMethod.POST)
+ ResponseEntity promoBalanceTransferSendOfferPost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerID body
+);
+
+}
+
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/PromoBalanceTransferApiController.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/PromoBalanceTransferApiController.java
new file mode 100644
index 0000000..86b512b
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/PromoBalanceTransferApiController.java
@@ -0,0 +1,64 @@
+package io.swagger.api;
+
+import io.swagger.model.CustomerID;
+import io.swagger.model.TransferData;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@RestController
+public class PromoBalanceTransferApiController implements PromoBalanceTransferApi {
+
+ private static final Logger log = LoggerFactory.getLogger(PromoBalanceTransferApiController.class);
+
+ private final ObjectMapper objectMapper;
+
+ private final HttpServletRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public PromoBalanceTransferApiController(ObjectMapper objectMapper, HttpServletRequest request) {
+ this.objectMapper = objectMapper;
+ this.request = request;
+ }
+
+ public ResponseEntity promoBalanceTransferProcessTransferPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody TransferData body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+ public ResponseEntity promoBalanceTransferSendOfferPost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody CustomerID body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/RewardPointsApi.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/RewardPointsApi.java
new file mode 100644
index 0000000..4469c6b
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/RewardPointsApi.java
@@ -0,0 +1,60 @@
+/**
+ * NOTE: This class is auto generated by the swagger code generator program (3.0.54).
+ * https://github.com/swagger-api/swagger-codegen
+ * Do not edit the class manually.
+ */
+package io.swagger.api;
+
+import io.swagger.model.RewardSelectionData;
+import io.swagger.model.TransactionData;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.CookieValue;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@Validated
+public interface RewardPointsApi {
+
+ @Operation(summary = "Adding reward points", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "201", description = "Rewards points added successfully") })
+ @RequestMapping(value = "/reward-points/add-points",
+ consumes = { "application/json" },
+ method = RequestMethod.POST)
+ ResponseEntity rewardPointsAddPointsPost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody TransactionData body
+);
+
+
+ @Operation(summary = "Redeeming reward points", description = "", tags={ })
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Rewards redeemed successfully, points updated") })
+ @RequestMapping(value = "/reward-points/redeem-points",
+ consumes = { "application/json" },
+ method = RequestMethod.PUT)
+ ResponseEntity rewardPointsRedeemPointsPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody RewardSelectionData body
+);
+
+}
+
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/api/RewardPointsApiController.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/RewardPointsApiController.java
new file mode 100644
index 0000000..bfbd1fe
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/api/RewardPointsApiController.java
@@ -0,0 +1,64 @@
+package io.swagger.api;
+
+import io.swagger.model.RewardSelectionData;
+import io.swagger.model.TransactionData;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@RestController
+public class RewardPointsApiController implements RewardPointsApi {
+
+ private static final Logger log = LoggerFactory.getLogger(RewardPointsApiController.class);
+
+ private final ObjectMapper objectMapper;
+
+ private final HttpServletRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public RewardPointsApiController(ObjectMapper objectMapper, HttpServletRequest request) {
+ this.objectMapper = objectMapper;
+ this.request = request;
+ }
+
+ public ResponseEntity rewardPointsAddPointsPost(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody TransactionData body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+ public ResponseEntity rewardPointsRedeemPointsPut(@Parameter(in = ParameterIn.DEFAULT, description = "", schema=@Schema()) @Valid @RequestBody RewardSelectionData body
+) {
+ String accept = request.getHeader("Accept");
+ return new ResponseEntity(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/CustomInstantDeserializer.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/CustomInstantDeserializer.java
new file mode 100644
index 0000000..6e5b8ed
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/CustomInstantDeserializer.java
@@ -0,0 +1,232 @@
+package io.swagger.configuration;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonTokenId;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.datatype.threetenbp.DecimalUtils;
+import com.fasterxml.jackson.datatype.threetenbp.deser.ThreeTenDateTimeDeserializerBase;
+import com.fasterxml.jackson.datatype.threetenbp.function.BiFunction;
+import com.fasterxml.jackson.datatype.threetenbp.function.Function;
+import org.threeten.bp.DateTimeException;
+import org.threeten.bp.DateTimeUtils;
+import org.threeten.bp.Instant;
+import org.threeten.bp.OffsetDateTime;
+import org.threeten.bp.ZoneId;
+import org.threeten.bp.ZonedDateTime;
+import org.threeten.bp.format.DateTimeFormatter;
+import org.threeten.bp.temporal.Temporal;
+import org.threeten.bp.temporal.TemporalAccessor;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+
+/**
+ * Deserializer for ThreeTen temporal {@link Instant}s, {@link OffsetDateTime}, and {@link ZonedDateTime}s.
+ * Adapted from the jackson threetenbp InstantDeserializer to add support for deserializing rfc822 format.
+ *
+ * @author Nick Williams
+ */
+public class CustomInstantDeserializer
+ extends ThreeTenDateTimeDeserializerBase {
+ private static final long serialVersionUID = 1L;
+
+ public static final CustomInstantDeserializer INSTANT = new CustomInstantDeserializer(
+ Instant.class, DateTimeFormatter.ISO_INSTANT,
+ new Function() {
+ @Override
+ public Instant apply(TemporalAccessor temporalAccessor) {
+ return Instant.from(temporalAccessor);
+ }
+ },
+ new Function() {
+ @Override
+ public Instant apply(FromIntegerArguments a) {
+ return Instant.ofEpochMilli(a.value);
+ }
+ },
+ new Function() {
+ @Override
+ public Instant apply(FromDecimalArguments a) {
+ return Instant.ofEpochSecond(a.integer, a.fraction);
+ }
+ },
+ null
+ );
+
+ public static final CustomInstantDeserializer OFFSET_DATE_TIME = new CustomInstantDeserializer(
+ OffsetDateTime.class, DateTimeFormatter.ISO_OFFSET_DATE_TIME,
+ new Function() {
+ @Override
+ public OffsetDateTime apply(TemporalAccessor temporalAccessor) {
+ return OffsetDateTime.from(temporalAccessor);
+ }
+ },
+ new Function() {
+ @Override
+ public OffsetDateTime apply(FromIntegerArguments a) {
+ return OffsetDateTime.ofInstant(Instant.ofEpochMilli(a.value), a.zoneId);
+ }
+ },
+ new Function() {
+ @Override
+ public OffsetDateTime apply(FromDecimalArguments a) {
+ return OffsetDateTime.ofInstant(Instant.ofEpochSecond(a.integer, a.fraction), a.zoneId);
+ }
+ },
+ new BiFunction() {
+ @Override
+ public OffsetDateTime apply(OffsetDateTime d, ZoneId z) {
+ return d.withOffsetSameInstant(z.getRules().getOffset(d.toLocalDateTime()));
+ }
+ }
+ );
+
+ public static final CustomInstantDeserializer ZONED_DATE_TIME = new CustomInstantDeserializer(
+ ZonedDateTime.class, DateTimeFormatter.ISO_ZONED_DATE_TIME,
+ new Function() {
+ @Override
+ public ZonedDateTime apply(TemporalAccessor temporalAccessor) {
+ return ZonedDateTime.from(temporalAccessor);
+ }
+ },
+ new Function() {
+ @Override
+ public ZonedDateTime apply(FromIntegerArguments a) {
+ return ZonedDateTime.ofInstant(Instant.ofEpochMilli(a.value), a.zoneId);
+ }
+ },
+ new Function() {
+ @Override
+ public ZonedDateTime apply(FromDecimalArguments a) {
+ return ZonedDateTime.ofInstant(Instant.ofEpochSecond(a.integer, a.fraction), a.zoneId);
+ }
+ },
+ new BiFunction() {
+ @Override
+ public ZonedDateTime apply(ZonedDateTime zonedDateTime, ZoneId zoneId) {
+ return zonedDateTime.withZoneSameInstant(zoneId);
+ }
+ }
+ );
+
+ protected final Function fromMilliseconds;
+
+ protected final Function fromNanoseconds;
+
+ protected final Function parsedToValue;
+
+ protected final BiFunction adjust;
+
+ protected CustomInstantDeserializer(Class supportedType,
+ DateTimeFormatter parser,
+ Function parsedToValue,
+ Function fromMilliseconds,
+ Function fromNanoseconds,
+ BiFunction adjust) {
+ super(supportedType, parser);
+ this.parsedToValue = parsedToValue;
+ this.fromMilliseconds = fromMilliseconds;
+ this.fromNanoseconds = fromNanoseconds;
+ this.adjust = adjust == null ? new BiFunction() {
+ @Override
+ public T apply(T t, ZoneId zoneId) {
+ return t;
+ }
+ } : adjust;
+ }
+
+ @SuppressWarnings("unchecked")
+ protected CustomInstantDeserializer(CustomInstantDeserializer base, DateTimeFormatter f) {
+ super((Class) base.handledType(), f);
+ parsedToValue = base.parsedToValue;
+ fromMilliseconds = base.fromMilliseconds;
+ fromNanoseconds = base.fromNanoseconds;
+ adjust = base.adjust;
+ }
+
+ @Override
+ protected JsonDeserializer withDateFormat(DateTimeFormatter dtf) {
+ if (dtf == _formatter) {
+ return this;
+ }
+ return new CustomInstantDeserializer(this, dtf);
+ }
+
+ @Override
+ public T deserialize(JsonParser parser, DeserializationContext context) throws IOException {
+ //NOTE: Timestamps contain no timezone info, and are always in configured TZ. Only
+ //string values have to be adjusted to the configured TZ.
+ switch (parser.getCurrentTokenId()) {
+ case JsonTokenId.ID_NUMBER_FLOAT: {
+ BigDecimal value = parser.getDecimalValue();
+ long seconds = value.longValue();
+ int nanoseconds = DecimalUtils.extractNanosecondDecimal(value, seconds);
+ return fromNanoseconds.apply(new FromDecimalArguments(
+ seconds, nanoseconds, getZone(context)));
+ }
+
+ case JsonTokenId.ID_NUMBER_INT: {
+ long timestamp = parser.getLongValue();
+ if (context.isEnabled(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS)) {
+ return this.fromNanoseconds.apply(new FromDecimalArguments(
+ timestamp, 0, this.getZone(context)
+ ));
+ }
+ return this.fromMilliseconds.apply(new FromIntegerArguments(
+ timestamp, this.getZone(context)
+ ));
+ }
+
+ case JsonTokenId.ID_STRING: {
+ String string = parser.getText().trim();
+ if (string.length() == 0) {
+ return null;
+ }
+ if (string.endsWith("+0000")) {
+ string = string.substring(0, string.length() - 5) + "Z";
+ }
+ T value;
+ try {
+ TemporalAccessor acc = _formatter.parse(string);
+ value = parsedToValue.apply(acc);
+ if (context.isEnabled(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)) {
+ return adjust.apply(value, this.getZone(context));
+ }
+ } catch (DateTimeException e) {
+ throw _peelDTE(e);
+ }
+ return value;
+ }
+ }
+ throw context.mappingException("Expected type float, integer, or string.");
+ }
+
+ private ZoneId getZone(DeserializationContext context) {
+ // Instants are always in UTC, so don't waste compute cycles
+ return (_valueClass == Instant.class) ? null : DateTimeUtils.toZoneId(context.getTimeZone());
+ }
+
+ private static class FromIntegerArguments {
+ public final long value;
+ public final ZoneId zoneId;
+
+ private FromIntegerArguments(long value, ZoneId zoneId) {
+ this.value = value;
+ this.zoneId = zoneId;
+ }
+ }
+
+ private static class FromDecimalArguments {
+ public final long integer;
+ public final int fraction;
+ public final ZoneId zoneId;
+
+ private FromDecimalArguments(long integer, int fraction, ZoneId zoneId) {
+ this.integer = integer;
+ this.fraction = fraction;
+ this.zoneId = zoneId;
+ }
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/HomeController.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/HomeController.java
new file mode 100644
index 0000000..09fd671
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/HomeController.java
@@ -0,0 +1,15 @@
+package io.swagger.configuration;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * Home redirection to swagger api documentation
+ */
+@Controller
+public class HomeController {
+ @RequestMapping(value = "/")
+ public String index() {
+ return "redirect:/swagger-ui/";
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/JacksonConfiguration.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/JacksonConfiguration.java
new file mode 100644
index 0000000..2609d72
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/JacksonConfiguration.java
@@ -0,0 +1,23 @@
+package io.swagger.configuration;
+
+import com.fasterxml.jackson.datatype.threetenbp.ThreeTenModule;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.threeten.bp.Instant;
+import org.threeten.bp.OffsetDateTime;
+import org.threeten.bp.ZonedDateTime;
+
+@Configuration
+public class JacksonConfiguration {
+
+ @Bean
+ @ConditionalOnMissingBean(ThreeTenModule.class)
+ ThreeTenModule threeTenModule() {
+ ThreeTenModule module = new ThreeTenModule();
+ module.addDeserializer(Instant.class, CustomInstantDeserializer.INSTANT);
+ module.addDeserializer(OffsetDateTime.class, CustomInstantDeserializer.OFFSET_DATE_TIME);
+ module.addDeserializer(ZonedDateTime.class, CustomInstantDeserializer.ZONED_DATE_TIME);
+ return module;
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/LocalDateConverter.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/LocalDateConverter.java
new file mode 100644
index 0000000..e7ceddd
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/LocalDateConverter.java
@@ -0,0 +1,21 @@
+package io.swagger.configuration;
+
+import org.springframework.core.convert.converter.Converter;
+import org.threeten.bp.LocalDate;
+import org.threeten.bp.format.DateTimeFormatter;
+
+public class LocalDateConverter implements Converter {
+ private final DateTimeFormatter formatter;
+
+ public LocalDateConverter(String dateFormat) {
+ this.formatter = DateTimeFormatter.ofPattern(dateFormat);
+ }
+
+ @Override
+ public LocalDate convert(String source) {
+ if(source == null || source.isEmpty()) {
+ return null;
+ }
+ return LocalDate.parse(source, this.formatter);
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/LocalDateTimeConverter.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/LocalDateTimeConverter.java
new file mode 100644
index 0000000..a8ac0ab
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/LocalDateTimeConverter.java
@@ -0,0 +1,21 @@
+package io.swagger.configuration;
+
+import org.springframework.core.convert.converter.Converter;
+import org.threeten.bp.LocalDateTime;
+import org.threeten.bp.format.DateTimeFormatter;
+
+public class LocalDateTimeConverter implements Converter {
+ private final DateTimeFormatter formatter;
+
+ public LocalDateTimeConverter(String dateFormat) {
+ this.formatter = DateTimeFormatter.ofPattern(dateFormat);
+ }
+
+ @Override
+ public LocalDateTime convert(String source) {
+ if(source == null || source.isEmpty()) {
+ return null;
+ }
+ return LocalDateTime.parse(source, this.formatter);
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/SwaggerDocumentationConfig.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/SwaggerDocumentationConfig.java
new file mode 100644
index 0000000..b0b4403
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/SwaggerDocumentationConfig.java
@@ -0,0 +1,29 @@
+package io.swagger.configuration;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.info.License;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@Configuration
+public class SwaggerDocumentationConfig {
+
+ @Bean
+ public OpenAPI openApi() {
+ return new OpenAPI()
+ .info(new Info()
+ .title("API for Banking Services")
+ .description("This is the API that provides different banking service scenarios.")
+ .termsOfService("")
+ .version("1.0.0")
+ .license(new License()
+ .name("")
+ .url("http://unlicense.org"))
+ .contact(new io.swagger.v3.oas.models.info.Contact()
+ .email("")));
+ }
+
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/SwaggerUiConfiguration.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/SwaggerUiConfiguration.java
new file mode 100644
index 0000000..82173c4
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/configuration/SwaggerUiConfiguration.java
@@ -0,0 +1,16 @@
+package io.swagger.configuration;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+@Configuration
+public class SwaggerUiConfiguration implements WebMvcConfigurer {
+
+ @Override
+ public void addViewControllers(ViewControllerRegistry registry) {
+ registry.addViewController("/swagger-ui/").setViewName("forward:/swagger-ui/index.html");
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/model/ComplaintDetails.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/ComplaintDetails.java
new file mode 100644
index 0000000..cb37c3c
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/ComplaintDetails.java
@@ -0,0 +1,52 @@
+package io.swagger.model;
+
+import java.util.Objects;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * ComplaintDetails
+ */
+@Validated
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+
+
+public class ComplaintDetails {
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ComplaintDetails {\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 ");
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/model/ComplaintReferenceID.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/ComplaintReferenceID.java
new file mode 100644
index 0000000..b620ac7
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/ComplaintReferenceID.java
@@ -0,0 +1,52 @@
+package io.swagger.model;
+
+import java.util.Objects;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * ComplaintReferenceID
+ */
+@Validated
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+
+
+public class ComplaintReferenceID {
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ComplaintReferenceID {\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 ");
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/model/CustomerApplication.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/CustomerApplication.java
new file mode 100644
index 0000000..e1e7a35
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/CustomerApplication.java
@@ -0,0 +1,52 @@
+package io.swagger.model;
+
+import java.util.Objects;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * CustomerApplication
+ */
+@Validated
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+
+
+public class CustomerApplication {
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CustomerApplication {\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 ");
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/model/CustomerID.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/CustomerID.java
new file mode 100644
index 0000000..774d9a8
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/CustomerID.java
@@ -0,0 +1,52 @@
+package io.swagger.model;
+
+import java.util.Objects;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * CustomerID
+ */
+@Validated
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+
+
+public class CustomerID {
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CustomerID {\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 ");
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/model/RewardSelectionData.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/RewardSelectionData.java
new file mode 100644
index 0000000..cf443ee
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/RewardSelectionData.java
@@ -0,0 +1,52 @@
+package io.swagger.model;
+
+import java.util.Objects;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * RewardSelectionData
+ */
+@Validated
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+
+
+public class RewardSelectionData {
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RewardSelectionData {\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 ");
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/model/TransactionData.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/TransactionData.java
new file mode 100644
index 0000000..c96b1aa
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/TransactionData.java
@@ -0,0 +1,52 @@
+package io.swagger.model;
+
+import java.util.Objects;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * TransactionData
+ */
+@Validated
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+
+
+public class TransactionData {
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TransactionData {\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 ");
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/java/io/swagger/model/TransferData.java b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/TransferData.java
new file mode 100644
index 0000000..89d84b1
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/java/io/swagger/model/TransferData.java
@@ -0,0 +1,52 @@
+package io.swagger.model;
+
+import java.util.Objects;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * TransferData
+ */
+@Validated
+@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2024-03-27T14:43:57.908054+05:30[Asia/Kolkata]")
+
+
+public class TransferData {
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class TransferData {\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 ");
+ }
+}
diff --git a/spring-boot-swagger-codegen/src/main/resources/application.properties b/spring-boot-swagger-codegen/src/main/resources/application.properties
new file mode 100644
index 0000000..e8b0fd4
--- /dev/null
+++ b/spring-boot-swagger-codegen/src/main/resources/application.properties
@@ -0,0 +1,5 @@
+springdoc.api-docs.path=/api-docs
+server.servlet.contextPath=/v1
+server.port=8080
+spring.jackson.date-format=io.swagger.RFC3339DateFormat
+spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
\ No newline at end of file
diff --git a/spring-boot-swagger-codegen/target/classes/application.properties b/spring-boot-swagger-codegen/target/classes/application.properties
new file mode 100644
index 0000000..e8b0fd4
--- /dev/null
+++ b/spring-boot-swagger-codegen/target/classes/application.properties
@@ -0,0 +1,5 @@
+springdoc.api-docs.path=/api-docs
+server.servlet.contextPath=/v1
+server.port=8080
+spring.jackson.date-format=io.swagger.RFC3339DateFormat
+spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
\ No newline at end of file
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/RFC3339DateFormat.class b/spring-boot-swagger-codegen/target/classes/io/swagger/RFC3339DateFormat.class
new file mode 100644
index 0000000..57d7890
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/RFC3339DateFormat.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot$CustomDateConfig.class b/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot$CustomDateConfig.class
new file mode 100644
index 0000000..5555166
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot$CustomDateConfig.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot$ExitException.class b/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot$ExitException.class
new file mode 100644
index 0000000..ff90c92
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot$ExitException.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot.class b/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot.class
new file mode 100644
index 0000000..c3706cc
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/Swagger2SpringBoot.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiException.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiException.class
new file mode 100644
index 0000000..78e31a6
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiException.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiOriginFilter.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiOriginFilter.class
new file mode 100644
index 0000000..61e582b
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiOriginFilter.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiResponseMessage.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiResponseMessage.class
new file mode 100644
index 0000000..1314c2c
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ApiResponseMessage.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/ChargesComplaintApi.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ChargesComplaintApi.class
new file mode 100644
index 0000000..fb86914
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ChargesComplaintApi.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/ChargesComplaintApiController.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ChargesComplaintApiController.class
new file mode 100644
index 0000000..e1deafe
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/ChargesComplaintApiController.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditCardApplicationApi.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditCardApplicationApi.class
new file mode 100644
index 0000000..ab106d4
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditCardApplicationApi.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditCardApplicationApiController.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditCardApplicationApiController.class
new file mode 100644
index 0000000..b906451
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditCardApplicationApiController.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditLimitApi.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditLimitApi.class
new file mode 100644
index 0000000..a0c441e
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditLimitApi.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditLimitApiController.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditLimitApiController.class
new file mode 100644
index 0000000..4d1b58e
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/CreditLimitApiController.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/NotFoundException.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/NotFoundException.class
new file mode 100644
index 0000000..5a25ec1
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/NotFoundException.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/PromoBalanceTransferApi.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/PromoBalanceTransferApi.class
new file mode 100644
index 0000000..1814c7e
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/PromoBalanceTransferApi.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/PromoBalanceTransferApiController.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/PromoBalanceTransferApiController.class
new file mode 100644
index 0000000..46c0f64
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/PromoBalanceTransferApiController.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/RewardPointsApi.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/RewardPointsApi.class
new file mode 100644
index 0000000..6814cdf
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/RewardPointsApi.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/api/RewardPointsApiController.class b/spring-boot-swagger-codegen/target/classes/io/swagger/api/RewardPointsApiController.class
new file mode 100644
index 0000000..2f3261c
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/api/RewardPointsApiController.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$1.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$1.class
new file mode 100644
index 0000000..ed301bb
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$1.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$10.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$10.class
new file mode 100644
index 0000000..9018e2e
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$10.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$11.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$11.class
new file mode 100644
index 0000000..794bd64
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$11.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$12.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$12.class
new file mode 100644
index 0000000..78d96d2
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$12.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$2.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$2.class
new file mode 100644
index 0000000..8ea69cd
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$2.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$3.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$3.class
new file mode 100644
index 0000000..a5a377c
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$3.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$4.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$4.class
new file mode 100644
index 0000000..739a748
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$4.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$5.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$5.class
new file mode 100644
index 0000000..1f32a59
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$5.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$6.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$6.class
new file mode 100644
index 0000000..4594404
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$6.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$7.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$7.class
new file mode 100644
index 0000000..2aeb7e7
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$7.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$8.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$8.class
new file mode 100644
index 0000000..85ee7ce
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$8.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$9.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$9.class
new file mode 100644
index 0000000..d7db4e9
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$9.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$FromDecimalArguments.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$FromDecimalArguments.class
new file mode 100644
index 0000000..a7b816e
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$FromDecimalArguments.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$FromIntegerArguments.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$FromIntegerArguments.class
new file mode 100644
index 0000000..f0b5f85
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer$FromIntegerArguments.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer.class
new file mode 100644
index 0000000..a3fcf21
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/CustomInstantDeserializer.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/HomeController.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/HomeController.class
new file mode 100644
index 0000000..9102e30
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/HomeController.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/JacksonConfiguration.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/JacksonConfiguration.class
new file mode 100644
index 0000000..7d78f74
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/JacksonConfiguration.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/LocalDateConverter.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/LocalDateConverter.class
new file mode 100644
index 0000000..00ef0e2
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/LocalDateConverter.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/LocalDateTimeConverter.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/LocalDateTimeConverter.class
new file mode 100644
index 0000000..af4aa11
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/LocalDateTimeConverter.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/SwaggerDocumentationConfig.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/SwaggerDocumentationConfig.class
new file mode 100644
index 0000000..ac8f499
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/SwaggerDocumentationConfig.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/SwaggerUiConfiguration.class b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/SwaggerUiConfiguration.class
new file mode 100644
index 0000000..ed189b7
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/configuration/SwaggerUiConfiguration.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/model/ComplaintDetails.class b/spring-boot-swagger-codegen/target/classes/io/swagger/model/ComplaintDetails.class
new file mode 100644
index 0000000..c35400e
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/model/ComplaintDetails.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/model/ComplaintReferenceID.class b/spring-boot-swagger-codegen/target/classes/io/swagger/model/ComplaintReferenceID.class
new file mode 100644
index 0000000..1c90e1c
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/model/ComplaintReferenceID.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/model/CustomerApplication.class b/spring-boot-swagger-codegen/target/classes/io/swagger/model/CustomerApplication.class
new file mode 100644
index 0000000..6a13b92
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/model/CustomerApplication.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/model/CustomerID.class b/spring-boot-swagger-codegen/target/classes/io/swagger/model/CustomerID.class
new file mode 100644
index 0000000..569a359
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/model/CustomerID.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/model/RewardSelectionData.class b/spring-boot-swagger-codegen/target/classes/io/swagger/model/RewardSelectionData.class
new file mode 100644
index 0000000..30c4770
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/model/RewardSelectionData.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/model/TransactionData.class b/spring-boot-swagger-codegen/target/classes/io/swagger/model/TransactionData.class
new file mode 100644
index 0000000..f812ae9
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/model/TransactionData.class differ
diff --git a/spring-boot-swagger-codegen/target/classes/io/swagger/model/TransferData.class b/spring-boot-swagger-codegen/target/classes/io/swagger/model/TransferData.class
new file mode 100644
index 0000000..838809c
Binary files /dev/null and b/spring-boot-swagger-codegen/target/classes/io/swagger/model/TransferData.class differ
diff --git a/spring-boot-swagger-codegen/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/spring-boot-swagger-codegen/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/spring-boot-swagger-codegen/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/spring-boot-swagger-codegen/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..42616e8
--- /dev/null
+++ b/spring-boot-swagger-codegen/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,30 @@
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/RFC3339DateFormat.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/PromoBalanceTransferApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/Swagger2SpringBoot.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/configuration/LocalDateConverter.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/configuration/SwaggerUiConfiguration.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/configuration/HomeController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/model/TransactionData.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/configuration/JacksonConfiguration.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/RewardPointsApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/configuration/SwaggerDocumentationConfig.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/CreditLimitApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/configuration/CustomInstantDeserializer.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/RewardPointsApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/model/CustomerApplication.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/ChargesComplaintApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/model/ComplaintReferenceID.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/configuration/LocalDateTimeConverter.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/model/RewardSelectionData.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/model/TransferData.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/ApiResponseMessage.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/CreditLimitApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/NotFoundException.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/model/CustomerID.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/PromoBalanceTransferApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/ApiException.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/ChargesComplaintApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/ApiOriginFilter.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/CreditCardApplicationApi.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/api/CreditCardApplicationApiController.java
+/Users/garvitjethwani/go/src/github.com/ZB-io/unit_tests_example/spring-boot/src/main/java/io/swagger/model/ComplaintDetails.java