From 48547bb615c95047abfeb12aa8f375d77d7ef28a Mon Sep 17 00:00:00 2001 From: gaubansa Date: Sat, 14 Jun 2025 18:31:07 +0530 Subject: [PATCH 01/11] adding new dependency for pgp encryption --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 5ac21ab8..ac0b3ac6 100644 --- a/pom.xml +++ b/pom.xml @@ -306,6 +306,12 @@ AuthenticationSdk 0.0.35 + + + org.bouncycastle + bcpg-jdk18on + 1.81 + From fde7b67f2828e9278736b94f05eb9817309c4a08 Mon Sep 17 00:00:00 2001 From: gaubansa Date: Sat, 14 Jun 2025 18:31:49 +0530 Subject: [PATCH 02/11] adding utilities for PGP batch upload api with mTLS --- .../pgpBatchUpload/BatchUploadUtility.java | 206 ++++++++++++++ .../MutualAuthUploadUtility.java | 252 ++++++++++++++++++ .../pgpBatchUpload/PgpEncryptionUtility.java | 112 ++++++++ 3 files changed, 570 insertions(+) create mode 100644 src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java create mode 100644 src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java create mode 100644 src/main/java/utilities/pgpBatchUpload/PgpEncryptionUtility.java diff --git a/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java b/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java new file mode 100644 index 00000000..e788fddd --- /dev/null +++ b/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java @@ -0,0 +1,206 @@ +package utilities.pgpBatchUpload; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.security.PrivateKey; +import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; +import java.util.Iterator; + +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.bouncycastle.openpgp.PGPException; +import org.bouncycastle.openpgp.PGPPublicKey; +import org.bouncycastle.openpgp.PGPPublicKeyRing; +import org.bouncycastle.openpgp.PGPPublicKeyRingCollection; +import org.bouncycastle.openpgp.PGPUtil; + +import com.cybersource.authsdk.util.GlobalLabelParameters; + +/** + * Utility class for batch upload operations, including certificate and PGP key loading, + * endpoint URL construction, and input validation for batch API operations. + */ +public class BatchUploadUtility { + + private static final Logger logger = LogManager.getLogger(BatchUploadUtility.class); + private static final long MAX_FILE_SIZE_BYTES = 75 * 1024 * 1024; + + /** + * Loads an X509 certificate from a PEM file. + * + * @param certFilePath The file path to the PEM certificate file. + * @return The loaded X509Certificate object. + * @throws CertificateException If the certificate cannot be parsed or is invalid. + * @throws IOException If the file cannot be read or does not exist. + */ + public static X509Certificate loadCertificateFromPemFile(String certFilePath) throws CertificateException, IOException { + try (FileInputStream inStream = new FileInputStream(certFilePath)) { + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + return (X509Certificate) cf.generateCertificate(inStream); + } + } + + /** + * Reads a PGP public key from the specified file. + * + * @param filePath The file path to the PGP public key. + * @return The first encryption-capable PGPPublicKey found in the file. + * @throws IOException If an I/O error occurs. + * @throws PGPException If a PGP error occurs or no encryption key is found. + * @throws IllegalArgumentException If the file path is null or empty. + */ + public static PGPPublicKey readPGPPublicKey(String filePath) throws IOException, PGPException { + validatePath(filePath, "pgp public key path"); + logger.debug("Reading pgp public key from file: {}", filePath); + try (InputStream keyIn = new BufferedInputStream(new FileInputStream(filePath))) { + PGPPublicKeyRingCollection pgpPub = new PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(keyIn), + new org.bouncycastle.openpgp.operator.jcajce.JcaKeyFingerprintCalculator()); + + Iterator keyRingIter = pgpPub.getKeyRings(); + while (keyRingIter.hasNext()) { + PGPPublicKeyRing keyRing = keyRingIter.next(); + Iterator keyIter = keyRing.getPublicKeys(); + while (keyIter.hasNext()) { + PGPPublicKey key = keyIter.next(); + if (key.isEncryptionKey()) { + return key; + } + } + } + } + throw new PGPException("No encryption key found in the provided key ring: " + filePath); + } + + /** + * Constructs the full endpoint URL for the given environment hostname and endpoint path. + * + * @param environmentHostname The environment hostname (with or without protocol prefix). + * @param endpoint The endpoint path to append. + * @return The full endpoint URL. + */ + public static String getEndpointUrl(String environmentHostname , String endpoint) { + String baseUrl; + if(environmentHostname.startsWith(GlobalLabelParameters.URL_PREFIX)) + baseUrl=environmentHostname.trim(); + else + baseUrl= GlobalLabelParameters.URL_PREFIX + environmentHostname.trim(); + return baseUrl + endpoint; + } + + /** + * Validates the input parameters for batch API using JKS keystore. + * + * @param inputFile The input CSV file for batch upload. + * @param environmentHostname The environment hostname. + * @param pgpEncryptionCertPath The path to the PGP encryption certificate. + * @param keystorePath The path to the keystore file. + * @param truststorePath The path to the truststore file. + * @throws Exception If any validation fails. + */ + public static void validateBatchApiJKSInputs(File inputFile, String environmentHostname, String pgpEncryptionCertPath, String keystorePath, String truststorePath) throws Exception{ + validateInputFile(inputFile); + if(StringUtils.isEmpty(environmentHostname)) { + logger.error("Environment Host Name for Batch Upload API cannot be null or empty."); + throw new IllegalArgumentException("Environment Host Name for Batch Upload API cannot be null or empty."); + } + validatePath(pgpEncryptionCertPath, "PGP Encryption Cert Path"); + validatePath(keystorePath, "Keystore Path"); + validatePath(truststorePath, "Truststore Path"); + } + + /** + * Validates the input parameters for batch API using P12 client certificate. + * + * @param inputFile The input CSV file for batch upload. + * @param environmentHostname The environment hostname. + * @param pgpEncryptionCertPath The path to the PGP encryption certificate. + * @param clientCertP12FilePath The path to the client certificate P12 file. + * @param serverTrustCertPath The path to the server trust certificate. + * @throws Exception If any validation fails. + */ + public static void validateBatchApiP12Inputs(File inputFile, String environmentHostname, String pgpEncryptionCertPath, String clientCertP12FilePath, String serverTrustCertPath) throws Exception{ + validateInputFile(inputFile); + if(StringUtils.isEmpty(environmentHostname)) { + logger.error("Environment Host Name for Batch Upload API cannot be null or empty."); + throw new IllegalArgumentException("Environment Host Name for Batch Upload API cannot be null or empty."); + } + validatePath(pgpEncryptionCertPath, "PGP Encryption Cert Path"); + validatePath(clientCertP12FilePath, "Client Cert P12 File Path"); + validatePath(serverTrustCertPath, "Server Trust Cert Path"); + } + + /** + * Validates the input parameters for batch API using direct key and certificate objects. + * + * @param inputFile The input CSV file for batch upload. + * @param environmentHostname The environment hostname. + * @param pgpPublicKey The PGP public key object. + * @param clientPrivateKey The client private key. + * @param clientCert The client X509 certificate. + * @param serverTrustCert The server trust X509 certificate. + * @throws Exception If any validation fails. + */ + public static void validateBatchApiKeysInputs(File inputFile, String environmentHostname, PGPPublicKey pgpPublicKey, PrivateKey clientPrivateKey, X509Certificate clientCert , X509Certificate serverTrustCert) throws Exception{ + validateInputFile(inputFile); + if(StringUtils.isEmpty(environmentHostname)) { + logger.error("Environment Host Name for Batch Upload API cannot be null or empty."); + throw new IllegalArgumentException("Environment Host Name for Batch Upload API cannot be null or empty."); + } + if (pgpPublicKey == null) throw new IllegalArgumentException("PGP Public Key is null"); + if (clientPrivateKey == null) throw new IllegalArgumentException("Client Private Key is null"); + if (clientCert == null) throw new IllegalArgumentException("Client Certificate is null"); + if (serverTrustCert == null) throw new IllegalArgumentException("Server Trust Certificate is null"); + } + + /** + * Validates the input file for batch upload. + * Checks for existence, file type (CSV), and maximum file size (75MB). + * + * @param inputFile The input file to validate. + * @throws IllegalArgumentException If the file is invalid, not a CSV, or exceeds size limit. + */ + private static void validateInputFile(File inputFile) { + if (inputFile == null || !inputFile.exists() || !inputFile.isFile()) { + logger.error("Input file is invalid or does not exist: " + (inputFile != null ? inputFile : "null")); + throw new IllegalArgumentException("Input file is invalid or does not exist: " + inputFile); + } + //only csv files are allowed for batch api + if (!inputFile.getName().toLowerCase().endsWith(".csv")) { + logger.error("Only CSV file type is allowed: " + inputFile.getName()); + throw new IllegalArgumentException("Only CSV file type is allowed: " + inputFile.getName()); + } + //maximum file size allowed is 75MB + if (inputFile.length() > MAX_FILE_SIZE_BYTES) { + logger.error("Input file size exceeds the maximum allowed size of 75MB: " + inputFile.length() + " fileName=" + inputFile.getName()); + throw new IllegalArgumentException("Input file size exceeds the maximum allowed size of 75MB: " + inputFile.length()); + } + } + + /** + * Validates that the given file path exists and is not empty. + * + * @param path The file path to validate. + * @param pathType A description of the path type (e.g., "Input file"). + * @throws IOException If the file does not exist. + * @throws IllegalArgumentException If the path is null or empty. + */ + private static void validatePath(String path, String pathType) throws IOException { + if (path == null || path.trim().isEmpty()) { + logger.error(pathType + " path cannot be null or empty"); + throw new IllegalArgumentException(pathType + " path cannot be null or empty"); + } + + File file = new File(path); + if (!file.exists()) { + logger.error(pathType + " does not exist: " + path); + throw new IOException(pathType + " does not exist: " + path); + } + } + +} diff --git a/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java b/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java new file mode 100644 index 00000000..2d08e817 --- /dev/null +++ b/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java @@ -0,0 +1,252 @@ +package utilities.pgpBatchUpload; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.SecureRandom; +import java.security.UnrecoverableKeyException; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.UUID; + +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; +import javax.net.ssl.X509TrustManager; + +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import Invokers.ApiException; +import Invokers.ApiResponse; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + +/** + * Utility class for uploading encrypted PGP files using mutual TLS authentication. + *

+ * Supports multiple authentication mechanisms including JKS, P12/PFX, and direct private key/certificate usage. + * Uses OkHttp for HTTP communication and supports multipart file uploads. + *

+ */ +public class MutualAuthUploadUtility { + + private static final Logger logger = LogManager.getLogger(MutualAuthUploadUtility.class); + + /** + * Handles file upload operation using JKS keystore and truststore for mutual authentication. + * + * @param encryptedPgpBytes The encrypted PGP file content as byte array + * @param endpointUrl The target URL endpoint for file upload + * @param fileName The name of the file to be uploaded (will be suffixed with .pgp) + * @param keystorePath The file path to the JKS keystore containing client certificates + * @param keystorePassword The password for the JKS keystore + * @param truststorePath The file path to the JKS truststore containing trusted server certificates + * @param truststorePassword The password for the JKS truststore + * @return ApiResponse containing the upload response details + * @throws IOException If file operations or network communication fails + * @throws KeyStoreException If keystore operations fail + * @throws NoSuchAlgorithmException If required cryptographic algorithms are not available + * @throws CertificateException If certificate processing fails + * @throws KeyManagementException If SSL key management fails + * @throws UnrecoverableKeyException If private key cannot be recovered from keystore + */ + public static ApiResponse handleUploadOperationWithJKS(byte[] encryptedPgpBytes, String endpointUrl, String fileName, String keystorePath, + char[] keystorePassword, String truststorePath, char[] truststorePassword) throws IOException, KeyStoreException, + NoSuchAlgorithmException, CertificateException, KeyManagementException, UnrecoverableKeyException { + + KeyStore clientKeyStore = KeyStore.getInstance("JKS"); + KeyStore serverTrustStore = KeyStore.getInstance("JKS"); + + // Load the JKS keyStore using try-with-resources + try (FileInputStream keyStoreFile = new FileInputStream(keystorePath)) { + clientKeyStore.load(keyStoreFile, keystorePassword); + } + + // Load the JKS trustStore using try-with-resources + try (FileInputStream trustStoreFile = new FileInputStream(truststorePath)) { + serverTrustStore.load(trustStoreFile, truststorePassword); + } + + try { + OkHttpClient client = getOkHttpClientForMutualAuth(clientKeyStore, serverTrustStore, keystorePassword); + return uploadFile(encryptedPgpBytes, fileName, endpointUrl, client); + } catch (Exception e) { + logger.error("Error during mutual auth upload operation", e); + throw new IOException("Failed to perform upload operation with JKS", e); + } + } + + /** + * Handles file upload operation using P12/PFX keystore and PEM server certificate for mutual authentication. + * + * @param encryptedPgpBytes The encrypted PGP file content as byte array + * @param endpointUrl The target URL endpoint for file upload + * @param fileName The name of the file to be uploaded (will be suffixed with .pgp) + * @param p12FilePath The file path to the P12/PFX keystore containing client certificates + * @param p12FilePassword The password for the P12/PFX keystore + * @param serverTrustCertPath The file path to the PEM file containing server trust certificate + * @return ApiResponse containing the upload response details + * @throws IOException If file operations or network communication fails + * @throws KeyStoreException If keystore operations fail + * @throws NoSuchAlgorithmException If required cryptographic algorithms are not available + * @throws CertificateException If certificate processing fails + * @throws KeyManagementException If SSL key management fails + * @throws UnrecoverableKeyException If private key cannot be recovered from keystore + */ + public static ApiResponse handleUploadOperationUsingP12orPfx(byte[] encryptedPgpBytes, String endpointUrl, String fileName, String p12FilePath, char[] p12FilePassword, String serverTrustCertPath) throws IOException, KeyStoreException, + NoSuchAlgorithmException, CertificateException, KeyManagementException, UnrecoverableKeyException { + + X509Certificate serverTrustCert; + KeyStore clientKeyStore; + + try { + serverTrustCert = BatchUploadUtility.loadCertificateFromPemFile(serverTrustCertPath); + } catch (CertificateException e) { + logger.error("Error loading certificate from PEM file", e); + throw new CertificateException("Failed to load certificate from PEM file: " + serverTrustCertPath, e); + } + + clientKeyStore = KeyStore.getInstance("PKCS12", new BouncyCastleProvider()); + + // Use try-with-resources for proper resource management + try (FileInputStream file = new FileInputStream(new File(p12FilePath))) { + clientKeyStore.load(file, p12FilePassword); + } + + KeyStore serverTrustStore = KeyStore.getInstance("JKS"); + serverTrustStore.load(null, null); + serverTrustStore.setCertificateEntry("server", serverTrustCert); + + try { + OkHttpClient client = getOkHttpClientForMutualAuth(clientKeyStore, serverTrustStore, p12FilePassword); + return uploadFile(encryptedPgpBytes, fileName, endpointUrl, client); + } catch (Exception e) { + logger.error("Error during P12/PFX upload operation", e); + throw new IOException("Failed to perform upload operation with P12/PFX", e); + } + } + + /** + * Handles file upload operation using provided private key and certificates for mutual authentication. + * + * @param encryptedPgpBytes The encrypted PGP file content as byte array + * @param endpointUrl The target URL endpoint for file upload + * @param fileName The name of the file to be uploaded (will be suffixed with .pgp) + * @param clientPrivateKey The client's private key for authentication + * @param clientCert The client's X509 certificate + * @param serverTrustCert The server's trusted X509 certificate + * @return ApiResponse containing the upload response details + * @throws KeyStoreException If keystore operations fail + * @throws NoSuchAlgorithmException If required cryptographic algorithms are not available + * @throws CertificateException If certificate processing fails + * @throws IOException If file operations or network communication fails + * @throws UnrecoverableKeyException If private key cannot be recovered + * @throws KeyManagementException If SSL key management fails + */ + public static ApiResponse handleUploadOperationUsingPrivateKeyAndCerts(byte[] encryptedPgpBytes, String endpointUrl, String fileName, PrivateKey clientPrivateKey,X509Certificate clientCert,X509Certificate serverTrustCert) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, UnrecoverableKeyException, KeyManagementException + { + // Create a KeyStore containing the client private key and certificate + KeyStore clientKeyStore = KeyStore.getInstance("PKCS12"); + clientKeyStore.load(null, null); + + clientKeyStore.setKeyEntry("client", clientPrivateKey, new char[] {}, new java.security.cert.Certificate[]{clientCert}); + + // Create a KeyStore containing the server's trusted certificate + KeyStore serverTrustStore = KeyStore.getInstance("JKS"); + serverTrustStore.load(null, null); + serverTrustStore.setCertificateEntry("server", serverTrustCert); + + try { + OkHttpClient client = getOkHttpClientForMutualAuth(clientKeyStore, serverTrustStore, new char[] {}); + return uploadFile(encryptedPgpBytes, fileName, endpointUrl, client); + } catch (Exception e) { + logger.error("Error during upload operation using private/cert keys ", e); + throw new IOException("Failed to perform upload operation with private/cert keys ", e); + } + } + + /** + * Creates an OkHttpClient configured for mutual TLS authentication. + * + * @param clientKeyStore The keystore containing client certificates and private keys + * @param serverTrustStore The truststore containing trusted server certificates + * @param keyPassword The password for accessing private keys in the keystore + * @return Configured OkHttpClient with mutual TLS support + * @throws NoSuchAlgorithmException If required cryptographic algorithms are not available + * @throws UnrecoverableKeyException If private key cannot be recovered from keystore + * @throws KeyStoreException If keystore operations fail + * @throws KeyManagementException If SSL key management fails + */ + private static OkHttpClient getOkHttpClientForMutualAuth(KeyStore clientKeyStore, KeyStore serverTrustStore, + char[] keyPassword) throws NoSuchAlgorithmException, UnrecoverableKeyException, KeyStoreException, + KeyManagementException + { + // Set up KeyManager and TrustManager + KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + kmf.init(clientKeyStore, keyPassword); // Use the provided password + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(serverTrustStore); + + // Create SSL context + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), new SecureRandom()); + + // Build OkHttpClient with mutual TLS + return new OkHttpClient.Builder() + .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) tmf.getTrustManagers()[0]) + .build(); + } + + /** + * Uploads a file to the specified endpoint using the provided HTTP client. + * + * @param encryptedPgpBytes The encrypted PGP file content as byte array + * @param fileName The name of the file to be uploaded (will be suffixed with .pgp if not present) + * @param endpointUrl The target URL endpoint for file upload + * @param okHttpClient The configured HTTP client to use for the upload + * @return ApiResponse containing the upload response details including status code and response body + * @throws IOException If network communication fails or server returns an error status + * @throws ApiException If API-specific errors occur during the upload process + */ + private static ApiResponse uploadFile(byte[] encryptedPgpBytes, String fileName, String endpointUrl, OkHttpClient okHttpClient) throws IOException, ApiException { + logger.info("Starting file upload process"); + + fileName = StringUtils.isEmpty(fileName) ? "file.pgp" : (fileName.contains(".") ? fileName.substring(0, fileName.lastIndexOf('.')) : fileName) + ".pgp"; + // Prepare multipart request + RequestBody fileBody = RequestBody.create(encryptedPgpBytes, MediaType.parse("application/octet-stream")); + MultipartBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM) + .addFormDataPart("file", fileName, fileBody).build(); + + String correlationId = UUID.randomUUID().toString(); + Request request = new Request.Builder().url(endpointUrl) + .addHeader("v-c-correlation-id", correlationId).post(requestBody).build(); + + logger.info("Executing HTTP POST request to URL: {} with correlation ID: {} for file: {}", endpointUrl, correlationId, fileName); + try (Response response = okHttpClient.newCall(request).execute()) { + int statusCode = response.code(); + String responseBody = response.body() != null ? response.body().string() : ""; + logger.info("Upload completed for correlationId: {}. Response status code: {}", correlationId, statusCode); + if (statusCode >= 200 && statusCode < 300) { + logger.info("File uploaded successfully for correlationId: {}", correlationId); + return new ApiResponse(response.code(), response.headers().toMultimap(), response.message(), responseBody); + } else { + logger.error("File upload failed for correlationId: {}. Status code: {}, response: {}", correlationId, statusCode, responseBody); + String errorMessage= "File upload failed. Status code: " + statusCode + ", body: " + responseBody; + throw new ApiException(errorMessage, statusCode, response.headers().toMultimap(), responseBody); + } + } + } + +} diff --git a/src/main/java/utilities/pgpBatchUpload/PgpEncryptionUtility.java b/src/main/java/utilities/pgpBatchUpload/PgpEncryptionUtility.java new file mode 100644 index 00000000..9ea14425 --- /dev/null +++ b/src/main/java/utilities/pgpBatchUpload/PgpEncryptionUtility.java @@ -0,0 +1,112 @@ +package utilities.pgpBatchUpload; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.security.SecureRandom; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.bouncycastle.openpgp.PGPCompressedData; +import org.bouncycastle.openpgp.PGPCompressedDataGenerator; +import org.bouncycastle.openpgp.PGPEncryptedData; +import org.bouncycastle.openpgp.PGPEncryptedDataGenerator; +import org.bouncycastle.openpgp.PGPException; +import org.bouncycastle.openpgp.PGPLiteralData; +import org.bouncycastle.openpgp.PGPPublicKey; +import org.bouncycastle.openpgp.PGPUtil; +import org.bouncycastle.openpgp.operator.jcajce.JcePGPDataEncryptorBuilder; +import org.bouncycastle.openpgp.operator.jcajce.JcePublicKeyKeyEncryptionMethodGenerator; + +/** + * Utility class for encrypting files using PGP (Pretty Good Privacy) encryption with BouncyCastle. + *

+ * Provides methods to encrypt files using a PGP public key, supporting both key file paths and direct key objects. + *

+ */ +public class PgpEncryptionUtility { + + private static final Logger logger = LogManager.getLogger(PgpEncryptionUtility.class); + private static int bufferSize = 65536; + + static { + if (java.security.Security.getProvider("BC") == null) { + java.security.Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); + } + } + + /** + * Encrypts the given input file using the PGP public key located at the specified path. + * + * @param inputFile The file to encrypt. + * @param pgpPublicKeyPath The file path to the PGP public key. + * @return The encrypted file as a byte array. + * @throws IOException If an I/O error occurs. + * @throws PGPException If a PGP error occurs. + * @throws IllegalArgumentException If required arguments are missing. + */ + public static byte[] handlePGPEncrypt(File inputFile, String pgpPublicKeyPath) + throws IOException, PGPException, IllegalArgumentException { + PGPPublicKey publicKey = BatchUploadUtility.readPGPPublicKey(pgpPublicKeyPath); + return handlePGPEncrypt(inputFile, publicKey); + } + + /** + * Encrypts the given input file using the provided PGP public key. + * + * @param inputFile The file to encrypt. + * @param pgpPublicKey The PGP public key to use for encryption. + * @return The encrypted file as a byte array. + * @throws IOException If an I/O error occurs. + * @throws PGPException If a PGP error occurs. + * @throws IllegalArgumentException If required arguments are missing. + */ + public static byte[] handlePGPEncrypt(File inputFile, PGPPublicKey pgpPublicKey) throws IOException, PGPException { + if (inputFile == null || pgpPublicKey == null) { + throw new IllegalArgumentException("Missing required options for encrypt operation"); + } + String inputFileName = inputFile.getName(); + + logger.info("Starting file encryption: {}", inputFileName); + byte[] encryptedPgpBytes = encryptFile(inputFile, pgpPublicKey); + logger.info("File encrypted successfully for {}", inputFileName); + return encryptedPgpBytes; + } + + /** + * Encrypts the given file using the specified PGP public key. + * + * @param inputFile The file to encrypt. + * @param publicKey The PGP public key to use for encryption. + * @return The encrypted file as a byte array. + * @throws IOException If an I/O error occurs. + * @throws PGPException If a PGP error occurs. + */ + private static byte[] encryptFile(File inputFile, PGPPublicKey publicKey) throws IOException, PGPException { + try (ByteArrayOutputStream byteOut = new ByteArrayOutputStream()) { + PGPEncryptedDataGenerator encGen = new PGPEncryptedDataGenerator( + new JcePGPDataEncryptorBuilder(PGPEncryptedData.AES_256) + .setWithIntegrityPacket(true) + .setSecureRandom(new SecureRandom()) + .setProvider("BC") + ); + encGen.addMethod(new JcePublicKeyKeyEncryptionMethodGenerator(publicKey).setProvider("BC")); + try (OutputStream encOut = encGen.open(byteOut, new byte[bufferSize])) { + PGPCompressedDataGenerator comData = new PGPCompressedDataGenerator(PGPCompressedData.ZIP); + try (OutputStream comOut = comData.open(encOut)) { + PGPUtil.writeFileToLiteralData(comOut, PGPLiteralData.BINARY, inputFile); + } + } + return byteOut.toByteArray(); + } + } + + /** + * Optionally sets the buffer size used during encryption. + * + * @param size The buffer size in bytes. + */ + public static void setBufferSize(int size) { + bufferSize = size; + } +} From 4dbfc6a6c76675a6d3ca733f7a9efe54cf31d2a4 Mon Sep 17 00:00:00 2001 From: gaubansa Date: Sat, 14 Jun 2025 18:32:14 +0530 Subject: [PATCH 03/11] adding api class for batchupload API with MTLS --- src/main/java/Api/BatchUploadwithMTLSApi.java | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/main/java/Api/BatchUploadwithMTLSApi.java diff --git a/src/main/java/Api/BatchUploadwithMTLSApi.java b/src/main/java/Api/BatchUploadwithMTLSApi.java new file mode 100644 index 00000000..b5793379 --- /dev/null +++ b/src/main/java/Api/BatchUploadwithMTLSApi.java @@ -0,0 +1,103 @@ +package Api; + +import java.io.File; +import java.security.PrivateKey; +import java.security.cert.X509Certificate; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.bouncycastle.openpgp.PGPPublicKey; + +import Invokers.ApiException; +import Invokers.ApiResponse; +import utilities.pgpBatchUpload.BatchUploadUtility; +import utilities.pgpBatchUpload.MutualAuthUploadUtility; +import utilities.pgpBatchUpload.PgpEncryptionUtility; + +/** + * API class for uploading batch files to CyberSource using mutual TLS authentication. + *

+ * Supports multiple authentication mechanisms: JKS keystore/truststore, PKCS#12 client certificates, + * and direct private key/certificate objects. Handles PGP encryption of files before upload. + *

+ */ +public class BatchUploadwithMTLSApi { + private static Logger logger = LogManager.getLogger(BatchUploadwithMTLSApi.class); + + /** + * Uploads a batch file using mutual TLS authentication with JKS keystore and truststore. + * + * @param inputFile The file to be uploaded. + * @param environmentHostname The environment hostname (e.g., secure-batch-test.cybersource.com). + * @param pgpEncryptionCertPath Path to the PGP encryption certificate. + * @param keystorePath Path to the JKS keystore file. + * @param keystorePassword Password for the keystore. + * @param truststorePath Path to the truststore file. + * @param truststorePassword Password for the truststore. + * @return ApiResponse containing the server response as a String. + * @throws ApiException If an API error occurs. + * @throws Exception If a general error occurs. + */ + public ApiResponse uploadBatchAPI(File inputFile, String environmentHostname, String pgpEncryptionCertPath, String keystorePath, char[] keystorePassword, String truststorePath, char[] truststorePassword) throws ApiException, Exception { + logger.info("Starting batch upload with JKS for given file"); + BatchUploadUtility.validateBatchApiJKSInputs(inputFile, environmentHostname, pgpEncryptionCertPath, keystorePath, truststorePath); + String endpoint = "/pts/v1/transaction-batch-upload"; + String endpointUrl = BatchUploadUtility.getEndpointUrl(environmentHostname, endpoint); + byte[] encryptedPgpBytes = PgpEncryptionUtility.handlePGPEncrypt(inputFile, pgpEncryptionCertPath); + return MutualAuthUploadUtility.handleUploadOperationWithJKS( + encryptedPgpBytes, endpointUrl, inputFile.getName(), + keystorePath, keystorePassword, truststorePath, truststorePassword + ); + } + + /** + * Uploads a batch file using mutual TLS authentication with a PKCS#12 (.p12/.pfx) client certificate file. + * + * @param inputFile The file to be uploaded. + * @param environmentHostname The environment hostname (e.g., api.cybersource.com). + * @param pgpEncryptionCertPath Path to the PGP encryption certificate. + * @param clientCertP12FilePath Path to the PKCS#12 client certificate file. + * @param clientCertP12Password Password for the PKCS#12 client certificate. + * @param serverTrustCertPath Path to the server trust certificate. + * @return ApiResponse containing the server response as a String. + * @throws ApiException If an API error occurs. + * @throws Exception If a general error occurs. + */ + public ApiResponse uploadBatchAPI(File inputFile, String environmentHostname, String pgpEncryptionCertPath, String clientCertP12FilePath , char[] clientCertP12Password, String serverTrustCertPath) throws ApiException, Exception{ + logger.info("Starting batch upload with p12/pfx for given file"); + BatchUploadUtility.validateBatchApiP12Inputs(inputFile, environmentHostname, pgpEncryptionCertPath, clientCertP12FilePath, serverTrustCertPath); + String endpoint = "/pts/v1/transaction-batch-upload"; + String endpointUrl = BatchUploadUtility.getEndpointUrl(environmentHostname, endpoint); + byte[] encryptedPgpBytes = PgpEncryptionUtility.handlePGPEncrypt(inputFile, pgpEncryptionCertPath); + return MutualAuthUploadUtility.handleUploadOperationUsingP12orPfx( + encryptedPgpBytes, endpointUrl, inputFile.getName(), + clientCertP12FilePath, clientCertP12Password, serverTrustCertPath + ); + } + + /** + * Uploads a batch file using mutual TLS authentication with client private key and certificates as objects. + * + * @param inputFile The file to be uploaded. + * @param environmentHostname The environment hostname (e.g., api.cybersource.com). + * @param pgpPublicKey The PGP public key for encryption. + * @param clientPrivateKey The client's private key. + * @param clientCert The client's X509 certificate. + * @param serverTrustCert The server's trust X509 certificate. + * @return ApiResponse containing the server response as a String. + * @throws ApiException If an API error occurs. + * @throws Exception If a general error occurs. + */ + public ApiResponse uploadBatchAPI(File inputFile, String environmentHostname, PGPPublicKey pgpPublicKey, PrivateKey clientPrivateKey, X509Certificate clientCert , X509Certificate serverTrustCert) throws ApiException, Exception { + logger.info("Starting batch upload with client private key and certs for given file"); + BatchUploadUtility.validateBatchApiKeysInputs(inputFile, environmentHostname, pgpPublicKey, clientPrivateKey, clientCert, serverTrustCert); + String endpoint = "/pts/v1/transaction-batch-upload"; + String endpointUrl = BatchUploadUtility.getEndpointUrl(environmentHostname, endpoint); + byte[] encryptedPgpBytes = PgpEncryptionUtility.handlePGPEncrypt(inputFile, pgpPublicKey); + return MutualAuthUploadUtility.handleUploadOperationUsingPrivateKeyAndCerts( + encryptedPgpBytes, endpointUrl, inputFile.getName(), + clientPrivateKey, clientCert, serverTrustCert + ); + } + +} From 6b8ce2c2bada07eabdb297a572e940e32af95079 Mon Sep 17 00:00:00 2001 From: gaubansa Date: Sat, 14 Jun 2025 18:33:06 +0530 Subject: [PATCH 04/11] adding batch mtls api class in bat file --- generator/cybersource_java_sdk_gen.bat | 1 + 1 file changed, 1 insertion(+) diff --git a/generator/cybersource_java_sdk_gen.bat b/generator/cybersource_java_sdk_gen.bat index 4f4940ae..3f14a219 100644 --- a/generator/cybersource_java_sdk_gen.bat +++ b/generator/cybersource_java_sdk_gen.bat @@ -22,6 +22,7 @@ powershell -Command " Set-Content ..\src\main\java\Model\PblPaymentLinksAllGet20 echo "completed the task of replacing the links keyword in PblPaymentLinksAllGet200Response.java model" git checkout ..\src\main\java\Api\OAuthApi.java +git checkout ..\src\main\java\Api\BatchUploadwithMTLSApi.java git checkout ..\src\main\java\Model\AccessTokenResponse.java git checkout ..\src\main\java\Model\CreateAccessTokenRequest.java From d5422543c2fbf1bb4f89c8f88f54e3f97a52045e Mon Sep 17 00:00:00 2001 From: gaubansa Date: Mon, 16 Jun 2025 16:08:25 +0530 Subject: [PATCH 05/11] enhancing the validate path function --- .../pgpBatchUpload/BatchUploadUtility.java | 45 +++++++++++++------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java b/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java index e788fddd..2c9af921 100644 --- a/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java +++ b/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java @@ -5,6 +5,9 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.security.PrivateKey; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; @@ -56,7 +59,7 @@ public static X509Certificate loadCertificateFromPemFile(String certFilePath) th * @throws IllegalArgumentException If the file path is null or empty. */ public static PGPPublicKey readPGPPublicKey(String filePath) throws IOException, PGPException { - validatePath(filePath, "pgp public key path"); + validatePathAndFile(filePath, "pgp public key path"); logger.debug("Reading pgp public key from file: {}", filePath); try (InputStream keyIn = new BufferedInputStream(new FileInputStream(filePath))) { PGPPublicKeyRingCollection pgpPub = new PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(keyIn), @@ -109,9 +112,9 @@ public static void validateBatchApiJKSInputs(File inputFile, String environmentH logger.error("Environment Host Name for Batch Upload API cannot be null or empty."); throw new IllegalArgumentException("Environment Host Name for Batch Upload API cannot be null or empty."); } - validatePath(pgpEncryptionCertPath, "PGP Encryption Cert Path"); - validatePath(keystorePath, "Keystore Path"); - validatePath(truststorePath, "Truststore Path"); + validatePathAndFile(pgpEncryptionCertPath, "PGP Encryption Cert Path"); + validatePathAndFile(keystorePath, "Keystore Path"); + validatePathAndFile(truststorePath, "Truststore Path"); } /** @@ -130,9 +133,9 @@ public static void validateBatchApiP12Inputs(File inputFile, String environmentH logger.error("Environment Host Name for Batch Upload API cannot be null or empty."); throw new IllegalArgumentException("Environment Host Name for Batch Upload API cannot be null or empty."); } - validatePath(pgpEncryptionCertPath, "PGP Encryption Cert Path"); - validatePath(clientCertP12FilePath, "Client Cert P12 File Path"); - validatePath(serverTrustCertPath, "Server Trust Cert Path"); + validatePathAndFile(pgpEncryptionCertPath, "PGP Encryption Cert Path"); + validatePathAndFile(clientCertP12FilePath, "Client Cert P12 File Path"); + validatePathAndFile(serverTrustCertPath, "Server Trust Cert Path"); } /** @@ -190,17 +193,31 @@ private static void validateInputFile(File inputFile) { * @throws IOException If the file does not exist. * @throws IllegalArgumentException If the path is null or empty. */ - private static void validatePath(String path, String pathType) throws IOException { - if (path == null || path.trim().isEmpty()) { - logger.error(pathType + " path cannot be null or empty"); + private static void validatePathAndFile(String filePath, String pathType) throws IOException { + if (filePath == null || filePath.trim().isEmpty()) { + logger.error(pathType + " path cannot be null or empty"); throw new IllegalArgumentException(pathType + " path cannot be null or empty"); } - - File file = new File(path); - if (!file.exists()) { - logger.error(pathType + " does not exist: " + path); + + // Normalize Windows-style paths that start with a slash before the drive letter + String normalizedPath = filePath; + if (File.separatorChar == '\\' && normalizedPath.matches("^/[A-Za-z]:.*")) { + normalizedPath = normalizedPath.substring(1); + } + + Path path = Paths.get(normalizedPath); + if (!Files.exists(path)) { + logger.error(pathType + " does not exist: " + path); throw new IOException(pathType + " does not exist: " + path); } + if (!Files.isRegularFile(path)) { + logger.error(pathType + " does not have valid file: " + path); + throw new IOException(pathType + " does not have valid file: " + path); + } + if (!Files.isReadable(path)) { + logger.error(pathType + " is not readable: " + path); + throw new IOException(pathType + " is not readable: " + path); + } } } From 4c4783fe46a1c76627897240066484104821a89c Mon Sep 17 00:00:00 2001 From: gaubansa Date: Tue, 17 Jun 2025 20:31:19 +0530 Subject: [PATCH 06/11] server cert made as optional and also server cert can be passed as cert chain --- src/main/java/Api/BatchUploadwithMTLSApi.java | 17 ++--- .../pgpBatchUpload/BatchUploadUtility.java | 39 +++++++---- .../MutualAuthUploadUtility.java | 65 ++++++++++++------- 3 files changed, 75 insertions(+), 46 deletions(-) diff --git a/src/main/java/Api/BatchUploadwithMTLSApi.java b/src/main/java/Api/BatchUploadwithMTLSApi.java index b5793379..9ccdf1cc 100644 --- a/src/main/java/Api/BatchUploadwithMTLSApi.java +++ b/src/main/java/Api/BatchUploadwithMTLSApi.java @@ -3,6 +3,7 @@ import java.io.File; import java.security.PrivateKey; import java.security.cert.X509Certificate; +import java.util.Collection; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -30,9 +31,9 @@ public class BatchUploadwithMTLSApi { * @param inputFile The file to be uploaded. * @param environmentHostname The environment hostname (e.g., secure-batch-test.cybersource.com). * @param pgpEncryptionCertPath Path to the PGP encryption certificate. - * @param keystorePath Path to the JKS keystore file. + * @param keystorePath Path to the JKS keystore file containing client certificates. * @param keystorePassword Password for the keystore. - * @param truststorePath Path to the truststore file. + * @param truststorePath Path to the JKS truststore file containing trusted server certificates. Optional: Can be null if not required. * @param truststorePassword Password for the truststore. * @return ApiResponse containing the server response as a String. * @throws ApiException If an API error occurs. @@ -56,9 +57,9 @@ public ApiResponse uploadBatchAPI(File inputFile, String environmentHost * @param inputFile The file to be uploaded. * @param environmentHostname The environment hostname (e.g., api.cybersource.com). * @param pgpEncryptionCertPath Path to the PGP encryption certificate. - * @param clientCertP12FilePath Path to the PKCS#12 client certificate file. + * @param clientCertP12FilePath Path to the PKCS#12 client certificate file (.p12 or .pfx). * @param clientCertP12Password Password for the PKCS#12 client certificate. - * @param serverTrustCertPath Path to the server trust certificate. + * @param serverTrustCertPath Path to the server trust certificate(s) in PEM format. Optional: Can be null if not required. * @return ApiResponse containing the server response as a String. * @throws ApiException If an API error occurs. * @throws Exception If a general error occurs. @@ -83,20 +84,20 @@ public ApiResponse uploadBatchAPI(File inputFile, String environmentHost * @param pgpPublicKey The PGP public key for encryption. * @param clientPrivateKey The client's private key. * @param clientCert The client's X509 certificate. - * @param serverTrustCert The server's trust X509 certificate. + * @param serverTrustCerts A collection of server's trusted X509 certificates (can be a certificate chain). Optional: Can be null or empty if not required. * @return ApiResponse containing the server response as a String. * @throws ApiException If an API error occurs. * @throws Exception If a general error occurs. */ - public ApiResponse uploadBatchAPI(File inputFile, String environmentHostname, PGPPublicKey pgpPublicKey, PrivateKey clientPrivateKey, X509Certificate clientCert , X509Certificate serverTrustCert) throws ApiException, Exception { + public ApiResponse uploadBatchAPI(File inputFile, String environmentHostname, PGPPublicKey pgpPublicKey, PrivateKey clientPrivateKey, X509Certificate clientCert , Collection serverTrustCerts) throws ApiException, Exception { logger.info("Starting batch upload with client private key and certs for given file"); - BatchUploadUtility.validateBatchApiKeysInputs(inputFile, environmentHostname, pgpPublicKey, clientPrivateKey, clientCert, serverTrustCert); + BatchUploadUtility.validateBatchApiKeysInputs(inputFile, environmentHostname, pgpPublicKey, clientPrivateKey, clientCert, serverTrustCerts); String endpoint = "/pts/v1/transaction-batch-upload"; String endpointUrl = BatchUploadUtility.getEndpointUrl(environmentHostname, endpoint); byte[] encryptedPgpBytes = PgpEncryptionUtility.handlePGPEncrypt(inputFile, pgpPublicKey); return MutualAuthUploadUtility.handleUploadOperationUsingPrivateKeyAndCerts( encryptedPgpBytes, endpointUrl, inputFile.getName(), - clientPrivateKey, clientCert, serverTrustCert + clientPrivateKey, clientCert, serverTrustCerts ); } diff --git a/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java b/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java index 2c9af921..b72927e8 100644 --- a/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java +++ b/src/main/java/utilities/pgpBatchUpload/BatchUploadUtility.java @@ -12,7 +12,10 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; +import java.util.List; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; @@ -33,21 +36,27 @@ public class BatchUploadUtility { private static final Logger logger = LogManager.getLogger(BatchUploadUtility.class); private static final long MAX_FILE_SIZE_BYTES = 75 * 1024 * 1024; - - /** - * Loads an X509 certificate from a PEM file. + + /** + * Loads X509 certificates from a PEM file. * * @param certFilePath The file path to the PEM certificate file. - * @return The loaded X509Certificate object. + * @return The loaded X509Certificate(s) as a Collection. * @throws CertificateException If the certificate cannot be parsed or is invalid. * @throws IOException If the file cannot be read or does not exist. */ - public static X509Certificate loadCertificateFromPemFile(String certFilePath) throws CertificateException, IOException { - try (FileInputStream inStream = new FileInputStream(certFilePath)) { - CertificateFactory cf = CertificateFactory.getInstance("X.509"); - return (X509Certificate) cf.generateCertificate(inStream); - } - } + public static Collection loadCertificatesFromPemFile(String certFilePath) throws CertificateException, IOException { + try (FileInputStream inStream = new FileInputStream(certFilePath)) { + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + Collection certs = cf.generateCertificates(inStream); + // Cast to X509Certificate + List x509Certs = new ArrayList<>(); + for (java.security.cert.Certificate cert : certs) { + x509Certs.add((X509Certificate) cert); + } + return x509Certs; + } + } /** * Reads a PGP public key from the specified file. @@ -114,7 +123,8 @@ public static void validateBatchApiJKSInputs(File inputFile, String environmentH } validatePathAndFile(pgpEncryptionCertPath, "PGP Encryption Cert Path"); validatePathAndFile(keystorePath, "Keystore Path"); - validatePathAndFile(truststorePath, "Truststore Path"); + if (!StringUtils.isEmpty(truststorePath)) + validatePathAndFile(truststorePath, "Truststore Path"); } /** @@ -135,7 +145,8 @@ public static void validateBatchApiP12Inputs(File inputFile, String environmentH } validatePathAndFile(pgpEncryptionCertPath, "PGP Encryption Cert Path"); validatePathAndFile(clientCertP12FilePath, "Client Cert P12 File Path"); - validatePathAndFile(serverTrustCertPath, "Server Trust Cert Path"); + if (!StringUtils.isEmpty(serverTrustCertPath)) + validatePathAndFile(serverTrustCertPath, "Server Trust Cert Path"); } /** @@ -149,7 +160,7 @@ public static void validateBatchApiP12Inputs(File inputFile, String environmentH * @param serverTrustCert The server trust X509 certificate. * @throws Exception If any validation fails. */ - public static void validateBatchApiKeysInputs(File inputFile, String environmentHostname, PGPPublicKey pgpPublicKey, PrivateKey clientPrivateKey, X509Certificate clientCert , X509Certificate serverTrustCert) throws Exception{ + public static void validateBatchApiKeysInputs(File inputFile, String environmentHostname, PGPPublicKey pgpPublicKey, PrivateKey clientPrivateKey, X509Certificate clientCert , Collection serverTrustCert) throws Exception{ validateInputFile(inputFile); if(StringUtils.isEmpty(environmentHostname)) { logger.error("Environment Host Name for Batch Upload API cannot be null or empty."); @@ -158,7 +169,7 @@ public static void validateBatchApiKeysInputs(File inputFile, String environment if (pgpPublicKey == null) throw new IllegalArgumentException("PGP Public Key is null"); if (clientPrivateKey == null) throw new IllegalArgumentException("Client Private Key is null"); if (clientCert == null) throw new IllegalArgumentException("Client Certificate is null"); - if (serverTrustCert == null) throw new IllegalArgumentException("Server Trust Certificate is null"); + //if (serverTrustCert == null) throw new IllegalArgumentException("Server Trust Certificate is null"); serverTrustCert is optional so can be null } /** diff --git a/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java b/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java index 2d08e817..7bbb63ef 100644 --- a/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java +++ b/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java @@ -12,6 +12,7 @@ import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; +import java.util.Collection; import java.util.UUID; import javax.net.ssl.KeyManagerFactory; @@ -52,7 +53,7 @@ public class MutualAuthUploadUtility { * @param fileName The name of the file to be uploaded (will be suffixed with .pgp) * @param keystorePath The file path to the JKS keystore containing client certificates * @param keystorePassword The password for the JKS keystore - * @param truststorePath The file path to the JKS truststore containing trusted server certificates + * @param truststorePath (Optional) The file path to the JKS truststore containing trusted server certificates. Can be null if not required. * @param truststorePassword The password for the JKS truststore * @return ApiResponse containing the upload response details * @throws IOException If file operations or network communication fails @@ -67,7 +68,7 @@ public static ApiResponse handleUploadOperationWithJKS(byte[] encryptedP NoSuchAlgorithmException, CertificateException, KeyManagementException, UnrecoverableKeyException { KeyStore clientKeyStore = KeyStore.getInstance("JKS"); - KeyStore serverTrustStore = KeyStore.getInstance("JKS"); + KeyStore serverTrustStore = null; // Load the JKS keyStore using try-with-resources try (FileInputStream keyStoreFile = new FileInputStream(keystorePath)) { @@ -75,8 +76,11 @@ public static ApiResponse handleUploadOperationWithJKS(byte[] encryptedP } // Load the JKS trustStore using try-with-resources - try (FileInputStream trustStoreFile = new FileInputStream(truststorePath)) { - serverTrustStore.load(trustStoreFile, truststorePassword); + if(!StringUtils.isEmpty(truststorePath)) { + serverTrustStore = KeyStore.getInstance("JKS"); + try (FileInputStream trustStoreFile = new FileInputStream(truststorePath)) { + serverTrustStore.load(trustStoreFile, truststorePassword); + } } try { @@ -89,14 +93,14 @@ public static ApiResponse handleUploadOperationWithJKS(byte[] encryptedP } /** - * Handles file upload operation using P12/PFX keystore and PEM server certificate for mutual authentication. - * - * @param encryptedPgpBytes The encrypted PGP file content as byte array + * Handles file upload operation using P12/PFX keystore and PEM server certificate(s) for mutual authentication + * + * @param encryptedPgpBytes The encrypted PGP file content as a byte array * @param endpointUrl The target URL endpoint for file upload * @param fileName The name of the file to be uploaded (will be suffixed with .pgp) * @param p12FilePath The file path to the P12/PFX keystore containing client certificates * @param p12FilePassword The password for the P12/PFX keystore - * @param serverTrustCertPath The file path to the PEM file containing server trust certificate + * @param serverTrustCertPath (Optional) The file path to the PEM file containing one or more server trust certificates. Can be null if not required * @return ApiResponse containing the upload response details * @throws IOException If file operations or network communication fails * @throws KeyStoreException If keystore operations fail @@ -108,14 +112,24 @@ public static ApiResponse handleUploadOperationWithJKS(byte[] encryptedP public static ApiResponse handleUploadOperationUsingP12orPfx(byte[] encryptedPgpBytes, String endpointUrl, String fileName, String p12FilePath, char[] p12FilePassword, String serverTrustCertPath) throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException, KeyManagementException, UnrecoverableKeyException { - X509Certificate serverTrustCert; + Collection serverTrustCert; KeyStore clientKeyStore; + KeyStore serverTrustStore =null; - try { - serverTrustCert = BatchUploadUtility.loadCertificateFromPemFile(serverTrustCertPath); - } catch (CertificateException e) { - logger.error("Error loading certificate from PEM file", e); - throw new CertificateException("Failed to load certificate from PEM file: " + serverTrustCertPath, e); + if(!StringUtils.isEmpty(serverTrustCertPath)) { + try { + serverTrustCert = BatchUploadUtility.loadCertificatesFromPemFile(serverTrustCertPath); + } catch (CertificateException e) { + logger.error("Error loading certificate from PEM file", e); + throw new CertificateException("Failed to load certificate from PEM file: " + serverTrustCertPath, e); + } + serverTrustStore = KeyStore.getInstance("JKS"); + serverTrustStore.load(null, null); + int i = 0; + for (X509Certificate cert : serverTrustCert) { + serverTrustStore.setCertificateEntry("server-" + i, cert); + i++; + } } clientKeyStore = KeyStore.getInstance("PKCS12", new BouncyCastleProvider()); @@ -124,11 +138,7 @@ public static ApiResponse handleUploadOperationUsingP12orPfx(byte[] encr try (FileInputStream file = new FileInputStream(new File(p12FilePath))) { clientKeyStore.load(file, p12FilePassword); } - - KeyStore serverTrustStore = KeyStore.getInstance("JKS"); - serverTrustStore.load(null, null); - serverTrustStore.setCertificateEntry("server", serverTrustCert); - + try { OkHttpClient client = getOkHttpClientForMutualAuth(clientKeyStore, serverTrustStore, p12FilePassword); return uploadFile(encryptedPgpBytes, fileName, endpointUrl, client); @@ -146,7 +156,7 @@ public static ApiResponse handleUploadOperationUsingP12orPfx(byte[] encr * @param fileName The name of the file to be uploaded (will be suffixed with .pgp) * @param clientPrivateKey The client's private key for authentication * @param clientCert The client's X509 certificate - * @param serverTrustCert The server's trusted X509 certificate + * @param serverTrustCerts (Optional) A collection of server's trusted X509 certificates (can be a certificate chain). Can be null or empty if not required. * @return ApiResponse containing the upload response details * @throws KeyStoreException If keystore operations fail * @throws NoSuchAlgorithmException If required cryptographic algorithms are not available @@ -155,7 +165,7 @@ public static ApiResponse handleUploadOperationUsingP12orPfx(byte[] encr * @throws UnrecoverableKeyException If private key cannot be recovered * @throws KeyManagementException If SSL key management fails */ - public static ApiResponse handleUploadOperationUsingPrivateKeyAndCerts(byte[] encryptedPgpBytes, String endpointUrl, String fileName, PrivateKey clientPrivateKey,X509Certificate clientCert,X509Certificate serverTrustCert) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, UnrecoverableKeyException, KeyManagementException + public static ApiResponse handleUploadOperationUsingPrivateKeyAndCerts(byte[] encryptedPgpBytes, String endpointUrl, String fileName, PrivateKey clientPrivateKey, X509Certificate clientCert, Collection serverTrustCerts) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, UnrecoverableKeyException, KeyManagementException { // Create a KeyStore containing the client private key and certificate KeyStore clientKeyStore = KeyStore.getInstance("PKCS12"); @@ -164,9 +174,16 @@ public static ApiResponse handleUploadOperationUsingPrivateKeyAndCerts(b clientKeyStore.setKeyEntry("client", clientPrivateKey, new char[] {}, new java.security.cert.Certificate[]{clientCert}); // Create a KeyStore containing the server's trusted certificate - KeyStore serverTrustStore = KeyStore.getInstance("JKS"); - serverTrustStore.load(null, null); - serverTrustStore.setCertificateEntry("server", serverTrustCert); + KeyStore serverTrustStore =null; + if(serverTrustCerts!=null && !serverTrustCerts.isEmpty()) { + serverTrustStore = KeyStore.getInstance("JKS"); + serverTrustStore.load(null, null); + int i = 0; + for (X509Certificate cert : serverTrustCerts) { + serverTrustStore.setCertificateEntry("server-" + i, cert); + i++; + } + } try { OkHttpClient client = getOkHttpClientForMutualAuth(clientKeyStore, serverTrustStore, new char[] {}); From f2973aec029f3133ed95fe418da4ceb745c868e4 Mon Sep 17 00:00:00 2001 From: gaubansa Date: Tue, 17 Jun 2025 21:12:11 +0530 Subject: [PATCH 07/11] adding code for disable ssl verification --- .../MutualAuthUploadUtility.java | 72 ++++++++++++++----- 1 file changed, 54 insertions(+), 18 deletions(-) diff --git a/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java b/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java index 7bbb63ef..e90bcb0b 100644 --- a/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java +++ b/src/main/java/utilities/pgpBatchUpload/MutualAuthUploadUtility.java @@ -42,9 +42,12 @@ *

*/ public class MutualAuthUploadUtility { - + private static final Logger logger = LogManager.getLogger(MutualAuthUploadUtility.class); - + + // Global variable to control SSL verification + private static boolean disableSslVerification = false; + /** * Handles file upload operation using JKS keystore and truststore for mutual authentication. * @@ -193,6 +196,19 @@ public static ApiResponse handleUploadOperationUsingPrivateKeyAndCerts(b throw new IOException("Failed to perform upload operation with private/cert keys ", e); } } + + /** + * Sets whether SSL verification should be disabled. + * @param disable true to disable SSL verification, false to enable + * By default, SSL verification is enabled. + */ + public static void setDisableSslVerification(boolean disable) { + logger.warn("Setting disableSslVerification to: " + disable); + if (disable) { + logger.warn("SSL verification is DISABLED. This setting is NOT SAFE for production and should NOT be used in production environments!"); + } + disableSslVerification = disable; + } /** * Creates an OkHttpClient configured for mutual TLS authentication. @@ -209,22 +225,42 @@ public static ApiResponse handleUploadOperationUsingPrivateKeyAndCerts(b private static OkHttpClient getOkHttpClientForMutualAuth(KeyStore clientKeyStore, KeyStore serverTrustStore, char[] keyPassword) throws NoSuchAlgorithmException, UnrecoverableKeyException, KeyStoreException, KeyManagementException - { - // Set up KeyManager and TrustManager - KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - kmf.init(clientKeyStore, keyPassword); // Use the provided password - TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - tmf.init(serverTrustStore); - - // Create SSL context - SSLContext sslContext = SSLContext.getInstance("TLS"); - sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), new SecureRandom()); - - // Build OkHttpClient with mutual TLS - return new OkHttpClient.Builder() - .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) tmf.getTrustManagers()[0]) - .build(); - } + { + if (disableSslVerification) { + logger.warn("SSL verification is DISABLED. This setting is NOT SAFE for production and should NOT be used in production environments!"); + // Trust all certificates + X509TrustManager trustAllManager = new X509TrustManager() { + public void checkClientTrusted(X509Certificate[] chain, String authType) {} + public void checkServerTrusted(X509Certificate[] chain, String authType) {} + public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } + }; + KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + kmf.init(clientKeyStore, keyPassword); + + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(kmf.getKeyManagers(), new javax.net.ssl.TrustManager[]{trustAllManager}, new SecureRandom()); + + return new OkHttpClient.Builder() + .sslSocketFactory(sslContext.getSocketFactory(), trustAllManager) + .hostnameVerifier((hostname, session) -> true) + .build(); + } else { + // Set up KeyManager and TrustManager + KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + kmf.init(clientKeyStore, keyPassword); // Use the provided password + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(serverTrustStore); + + // Create SSL context + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), new SecureRandom()); + + // Build OkHttpClient with mutual TLS + return new OkHttpClient.Builder() + .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) tmf.getTrustManagers()[0]) + .build(); + } + } /** * Uploads a file to the specified endpoint using the provided HTTP client. From 3d31ac20c4ad2a44d5617d0564dada2e8352dc0b Mon Sep 17 00:00:00 2001 From: gnongsie Date: Fri, 20 Jun 2025 11:24:03 +0530 Subject: [PATCH 08/11] Monthly API changes June 2025 --- docs/BatchesApi.md | 18 +- docs/DeAssociationRequestBody.md | 10 + docs/DeviceDeAssociationApi.md | 99 ++ docs/DeviceDeAssociationV3Api.md | 54 - docs/DeviceSearchApi.md | 56 +- docs/GenerateCaptureContextRequest.md | 2 +- ...ateUnifiedCheckoutCaptureContextRequest.md | 4 +- docs/GetSubscriptionResponse.md | 1 + ...criptionResponseReactivationInformation.md | 11 + docs/InlineResponse20010.md | 19 + docs/InlineResponse20010Records.md | 12 + ...d => InlineResponse20010ResponseRecord.md} | 4 +- ...se20010ResponseRecordAdditionalUpdates.md} | 2 +- ....md => InlineResponse20010SourceRecord.md} | 2 +- docs/InlineResponse2005.md | 8 +- docs/InlineResponse2005Devices.md | 18 + docs/InlineResponse2006.md | 8 +- docs/InlineResponse2007.md | 13 +- ...evices.md => InlineResponse2007Devices.md} | 4 +- docs/InlineResponse2007Embedded.md | 10 - docs/InlineResponse2007EmbeddedLinks.md | 10 - docs/InlineResponse2007Links.md | 11 - ...ponse2007PaymentProcessorToTerminalMap.md} | 2 +- docs/InlineResponse2008.md | 17 +- docs/InlineResponse2008Embedded.md | 10 + ...d => InlineResponse2008EmbeddedBatches.md} | 6 +- docs/InlineResponse2008EmbeddedLinks.md | 10 + ...InlineResponse2008EmbeddedLinksReports.md} | 2 +- ...md => InlineResponse2008EmbeddedTotals.md} | 2 +- docs/InlineResponse2008Links.md | 4 +- docs/InlineResponse2009.md | 14 +- ...illing.md => InlineResponse2009Billing.md} | 2 +- docs/InlineResponse2009Links.md | 11 + ...rt.md => InlineResponse2009LinksReport.md} | 2 +- docs/InlineResponse2009Records.md | 12 - docs/PaymentsProducts.md | 2 +- docs/PaymentsProductsUnifiedCheckout.md | 11 + ...UnifiedCheckoutConfigurationInformation.md | 10 + ...tConfigurationInformationConfigurations.md | 10 + ...rationInformationConfigurationsFeatures.md | 10 + ...onInformationConfigurationsFeaturesPaze.md | 12 + ...sUnifiedCheckoutSubscriptionInformation.md | 13 + ...CheckoutSubscriptionInformationFeatures.md | 10 + ...formationFeaturesPazeForUnifiedCheckout.md | 10 + docs/PostDeviceSearchRequest.md | 13 + docs/Riskv1decisionsTravelInformationLegs.md | 1 + docs/SubscriptionsApi.md | 8 +- ...tionsGet200ResponseProcessorInformation.md | 1 + docs/Upv1capturecontextsCaptureMandate.md | 1 + docs/Upv1capturecontextsCompleteMandate.md | 5 +- .../libraries/okhttp-gson/ApiClient.mustache | 8 +- generator/cybersource-rest-spec-java.json | 1051 +++++++++++++---- generator/cybersource-rest-spec.json | 1051 +++++++++++++---- generator/cybersource_java_sdk_gen.bat | 2 +- src/main/java/Api/BatchesApi.java | 50 +- ...V3Api.java => DeviceDeAssociationApi.java} | 170 ++- src/main/java/Api/DeviceSearchApi.java | 167 ++- src/main/java/Api/SubscriptionsApi.java | 30 +- src/main/java/Invokers/ApiClient.java | 6 +- .../java/Model/DeAssociationRequestBody.java | 94 ++ .../Model/GenerateCaptureContextRequest.java | 4 +- ...eUnifiedCheckoutCaptureContextRequest.java | 8 +- .../java/Model/GetSubscriptionResponse.java | 28 +- ...iptionResponseReactivationInformation.java | 117 ++ src/main/java/Model/InlineResponse20010.java | 314 +++++ ...s.java => InlineResponse20010Records.java} | 36 +- ...=> InlineResponse20010ResponseRecord.java} | 60 +- ...20010ResponseRecordAdditionalUpdates.java} | 28 +- ...a => InlineResponse20010SourceRecord.java} | 40 +- src/main/java/Model/InlineResponse2005.java | 138 ++- .../java/Model/InlineResponse2005Devices.java | 278 +++++ src/main/java/Model/InlineResponse2006.java | 138 +-- src/main/java/Model/InlineResponse2007.java | 148 +-- ...es.java => InlineResponse2007Devices.java} | 64 +- ...nse2007PaymentProcessorToTerminalMap.java} | 14 +- src/main/java/Model/InlineResponse2008.java | 246 ++-- ...d.java => InlineResponse2008Embedded.java} | 24 +- ...=> InlineResponse2008EmbeddedBatches.java} | 66 +- ...a => InlineResponse2008EmbeddedLinks.java} | 24 +- ...lineResponse2008EmbeddedLinksReports.java} | 10 +- ... => InlineResponse2008EmbeddedTotals.java} | 28 +- .../java/Model/InlineResponse2008Links.java | 66 +- src/main/java/Model/InlineResponse2009.java | 204 ++-- ...ng.java => InlineResponse2009Billing.java} | 24 +- .../java/Model/InlineResponse2009Links.java | 129 ++ ...ava => InlineResponse2009LinksReport.java} | 12 +- src/main/java/Model/PaymentsProducts.java | 9 +- .../PaymentsProductsUnifiedCheckout.java | 119 ++ ...fiedCheckoutConfigurationInformation.java} | 60 +- ...onfigurationInformationConfigurations.java | 95 ++ ...tionInformationConfigurationsFeatures.java | 95 ++ ...InformationConfigurationsFeaturesPaze.java | 141 +++ ...nifiedCheckoutSubscriptionInformation.java | 164 +++ ...eckoutSubscriptionInformationFeatures.java | 95 ++ ...rmationFeaturesPazeForUnifiedCheckout.java | 95 ++ .../java/Model/PostDeviceSearchRequest.java | 163 +++ .../Riskv1decisionsTravelInformationLegs.java | 27 +- ...onsGet200ResponseProcessorInformation.java | 25 +- .../Upv1capturecontextsCaptureMandate.java | 25 +- .../Upv1capturecontextsCompleteMandate.java | 35 +- .../utilities/JWEResponse/JWEUtility.java | 11 + src/test/java/Api/BatchesApiTest.java | 8 +- ...t.java => DeviceDeAssociationApiTest.java} | 29 +- src/test/java/Api/DeviceSearchApiTest.java | 24 +- src/test/java/Api/SubscriptionsApiTest.java | 5 +- 105 files changed, 5228 insertions(+), 1461 deletions(-) create mode 100644 docs/DeAssociationRequestBody.md create mode 100644 docs/DeviceDeAssociationApi.md delete mode 100644 docs/DeviceDeAssociationV3Api.md create mode 100644 docs/GetSubscriptionResponseReactivationInformation.md create mode 100644 docs/InlineResponse20010.md create mode 100644 docs/InlineResponse20010Records.md rename docs/{InlineResponse2009ResponseRecord.md => InlineResponse20010ResponseRecord.md} (76%) rename docs/{InlineResponse2009ResponseRecordAdditionalUpdates.md => InlineResponse20010ResponseRecordAdditionalUpdates.md} (87%) rename docs/{InlineResponse2009SourceRecord.md => InlineResponse20010SourceRecord.md} (93%) create mode 100644 docs/InlineResponse2005Devices.md rename docs/{InlineResponse2006Devices.md => InlineResponse2007Devices.md} (86%) delete mode 100644 docs/InlineResponse2007Embedded.md delete mode 100644 docs/InlineResponse2007EmbeddedLinks.md delete mode 100644 docs/InlineResponse2007Links.md rename docs/{InlineResponse2006PaymentProcessorToTerminalMap.md => InlineResponse2007PaymentProcessorToTerminalMap.md} (80%) create mode 100644 docs/InlineResponse2008Embedded.md rename docs/{InlineResponse2007EmbeddedBatches.md => InlineResponse2008EmbeddedBatches.md} (81%) create mode 100644 docs/InlineResponse2008EmbeddedLinks.md rename docs/{InlineResponse2007EmbeddedLinksReports.md => InlineResponse2008EmbeddedLinksReports.md} (78%) rename docs/{InlineResponse2007EmbeddedTotals.md => InlineResponse2008EmbeddedTotals.md} (91%) rename docs/{InlineResponse2008Billing.md => InlineResponse2009Billing.md} (90%) create mode 100644 docs/InlineResponse2009Links.md rename docs/{InlineResponse2008LinksReport.md => InlineResponse2009LinksReport.md} (82%) delete mode 100644 docs/InlineResponse2009Records.md create mode 100644 docs/PaymentsProductsUnifiedCheckout.md create mode 100644 docs/PaymentsProductsUnifiedCheckoutConfigurationInformation.md create mode 100644 docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.md create mode 100644 docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.md create mode 100644 docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.md create mode 100644 docs/PaymentsProductsUnifiedCheckoutSubscriptionInformation.md create mode 100644 docs/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.md create mode 100644 docs/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.md create mode 100644 docs/PostDeviceSearchRequest.md rename src/main/java/Api/{DeviceDeAssociationV3Api.java => DeviceDeAssociationApi.java} (54%) create mode 100644 src/main/java/Model/DeAssociationRequestBody.java create mode 100644 src/main/java/Model/GetSubscriptionResponseReactivationInformation.java create mode 100644 src/main/java/Model/InlineResponse20010.java rename src/main/java/Model/{InlineResponse2009Records.java => InlineResponse20010Records.java} (68%) rename src/main/java/Model/{InlineResponse2009ResponseRecord.java => InlineResponse20010ResponseRecord.java} (74%) rename src/main/java/Model/{InlineResponse2009ResponseRecordAdditionalUpdates.java => InlineResponse20010ResponseRecordAdditionalUpdates.java} (76%) rename src/main/java/Model/{InlineResponse2009SourceRecord.java => InlineResponse20010SourceRecord.java} (80%) create mode 100644 src/main/java/Model/InlineResponse2005Devices.java rename src/main/java/Model/{InlineResponse2006Devices.java => InlineResponse2007Devices.java} (81%) rename src/main/java/Model/{InlineResponse2006PaymentProcessorToTerminalMap.java => InlineResponse2007PaymentProcessorToTerminalMap.java} (84%) rename src/main/java/Model/{InlineResponse2007Embedded.java => InlineResponse2008Embedded.java} (71%) rename src/main/java/Model/{InlineResponse2007EmbeddedBatches.java => InlineResponse2008EmbeddedBatches.java} (79%) rename src/main/java/Model/{InlineResponse2007EmbeddedLinks.java => InlineResponse2008EmbeddedLinks.java} (70%) rename src/main/java/Model/{InlineResponse2007EmbeddedLinksReports.java => InlineResponse2008EmbeddedLinksReports.java} (85%) rename src/main/java/Model/{InlineResponse2007EmbeddedTotals.java => InlineResponse2008EmbeddedTotals.java} (84%) rename src/main/java/Model/{InlineResponse2008Billing.java => InlineResponse2009Billing.java} (81%) create mode 100644 src/main/java/Model/InlineResponse2009Links.java rename src/main/java/Model/{InlineResponse2008LinksReport.java => InlineResponse2009LinksReport.java} (84%) create mode 100644 src/main/java/Model/PaymentsProductsUnifiedCheckout.java rename src/main/java/Model/{InlineResponse2007Links.java => PaymentsProductsUnifiedCheckoutConfigurationInformation.java} (50%) create mode 100644 src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.java create mode 100644 src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.java create mode 100644 src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.java create mode 100644 src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformation.java create mode 100644 src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.java create mode 100644 src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.java create mode 100644 src/main/java/Model/PostDeviceSearchRequest.java rename src/test/java/Api/{DeviceDeAssociationV3ApiTest.java => DeviceDeAssociationApiTest.java} (63%) diff --git a/docs/BatchesApi.md b/docs/BatchesApi.md index ce7c8caf..fd1eb4fc 100644 --- a/docs/BatchesApi.md +++ b/docs/BatchesApi.md @@ -12,7 +12,7 @@ Method | HTTP request | Description # **getBatchReport** -> InlineResponse2009 getBatchReport(batchId) +> InlineResponse20010 getBatchReport(batchId) Retrieve a Batch Report @@ -28,7 +28,7 @@ Retrieve a Batch Report BatchesApi apiInstance = new BatchesApi(); String batchId = "batchId_example"; // String | Unique identification number assigned to the submitted request. try { - InlineResponse2009 result = apiInstance.getBatchReport(batchId); + InlineResponse20010 result = apiInstance.getBatchReport(batchId); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling BatchesApi#getBatchReport"); @@ -44,7 +44,7 @@ Name | Type | Description | Notes ### Return type -[**InlineResponse2009**](InlineResponse2009.md) +[**InlineResponse20010**](InlineResponse20010.md) ### Authorization @@ -57,7 +57,7 @@ No authorization required # **getBatchStatus** -> InlineResponse2008 getBatchStatus(batchId) +> InlineResponse2009 getBatchStatus(batchId) Retrieve a Batch Status @@ -73,7 +73,7 @@ Retrieve a Batch Status BatchesApi apiInstance = new BatchesApi(); String batchId = "batchId_example"; // String | Unique identification number assigned to the submitted request. try { - InlineResponse2008 result = apiInstance.getBatchStatus(batchId); + InlineResponse2009 result = apiInstance.getBatchStatus(batchId); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling BatchesApi#getBatchStatus"); @@ -89,7 +89,7 @@ Name | Type | Description | Notes ### Return type -[**InlineResponse2008**](InlineResponse2008.md) +[**InlineResponse2009**](InlineResponse2009.md) ### Authorization @@ -102,7 +102,7 @@ No authorization required # **getBatchesList** -> InlineResponse2007 getBatchesList(offset, limit, fromDate, toDate) +> InlineResponse2008 getBatchesList(offset, limit, fromDate, toDate) List Batches @@ -121,7 +121,7 @@ Long limit = 20L; // Long | The maximum number that can be returned in the array String fromDate = "fromDate_example"; // String | ISO-8601 format: yyyyMMddTHHmmssZ String toDate = "toDate_example"; // String | ISO-8601 format: yyyyMMddTHHmmssZ try { - InlineResponse2007 result = apiInstance.getBatchesList(offset, limit, fromDate, toDate); + InlineResponse2008 result = apiInstance.getBatchesList(offset, limit, fromDate, toDate); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling BatchesApi#getBatchesList"); @@ -140,7 +140,7 @@ Name | Type | Description | Notes ### Return type -[**InlineResponse2007**](InlineResponse2007.md) +[**InlineResponse2008**](InlineResponse2008.md) ### Authorization diff --git a/docs/DeAssociationRequestBody.md b/docs/DeAssociationRequestBody.md new file mode 100644 index 00000000..e943ea61 --- /dev/null +++ b/docs/DeAssociationRequestBody.md @@ -0,0 +1,10 @@ + +# DeAssociationRequestBody + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**deviceId** | **String** | UUID of the device which needs to be de-associated | [optional] + + + diff --git a/docs/DeviceDeAssociationApi.md b/docs/DeviceDeAssociationApi.md new file mode 100644 index 00000000..24b3307b --- /dev/null +++ b/docs/DeviceDeAssociationApi.md @@ -0,0 +1,99 @@ +# DeviceDeAssociationApi + +All URIs are relative to *https://apitest.cybersource.com* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**deleteTerminalAssociation**](DeviceDeAssociationApi.md#deleteTerminalAssociation) | **PATCH** /dms/v2/devices/deassociate | De-associate a device from merchant or account V2 +[**postDeAssociateV3Terminal**](DeviceDeAssociationApi.md#postDeAssociateV3Terminal) | **POST** /dms/v3/devices/deassociate | De-associate a device from merchant to account or reseller and from account to reseller + + + +# **deleteTerminalAssociation** +> deleteTerminalAssociation(deAssociationRequestBody) + +De-associate a device from merchant or account V2 + +The current association of the device will be removed and will be assigned back to parent in the hierarchy based on internal logic + +### Example +```java +// Import classes: +//import Invokers.ApiException; +//import Api.DeviceDeAssociationApi; + + +DeviceDeAssociationApi apiInstance = new DeviceDeAssociationApi(); +DeAssociationRequestBody deAssociationRequestBody = new DeAssociationRequestBody(); // DeAssociationRequestBody | de association of the deviceId in the request body. +try { + apiInstance.deleteTerminalAssociation(deAssociationRequestBody); +} catch (ApiException e) { + System.err.println("Exception when calling DeviceDeAssociationApi#deleteTerminalAssociation"); + e.printStackTrace(); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **deAssociationRequestBody** | [**DeAssociationRequestBody**](DeAssociationRequestBody.md)| de association of the deviceId in the request body. | + +### Return type + +null (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json;charset=UTF-8 + - **Accept**: application/hal+json;charset=utf-8 + + +# **postDeAssociateV3Terminal** +> List<InlineResponse2006> postDeAssociateV3Terminal(deviceDeAssociateV3Request) + +De-associate a device from merchant to account or reseller and from account to reseller + +A device will be de-associated from its current organization and moved up in the hierarchy. The device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user. + +### Example +```java +// Import classes: +//import Invokers.ApiException; +//import Api.DeviceDeAssociationApi; + + +DeviceDeAssociationApi apiInstance = new DeviceDeAssociationApi(); +List deviceDeAssociateV3Request = Arrays.asList(new DeviceDeAssociateV3Request()); // List | deviceId that has to be de-associated to the destination organizationId. +try { + List result = apiInstance.postDeAssociateV3Terminal(deviceDeAssociateV3Request); + System.out.println(result); +} catch (ApiException e) { + System.err.println("Exception when calling DeviceDeAssociationApi#postDeAssociateV3Terminal"); + e.printStackTrace(); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **deviceDeAssociateV3Request** | [**List<DeviceDeAssociateV3Request>**](DeviceDeAssociateV3Request.md)| deviceId that has to be de-associated to the destination organizationId. | + +### Return type + +[**List<InlineResponse2006>**](InlineResponse2006.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json;charset=UTF-8 + - **Accept**: application/json;charset=UTF-8 + diff --git a/docs/DeviceDeAssociationV3Api.md b/docs/DeviceDeAssociationV3Api.md deleted file mode 100644 index 25d18697..00000000 --- a/docs/DeviceDeAssociationV3Api.md +++ /dev/null @@ -1,54 +0,0 @@ -# DeviceDeAssociationV3Api - -All URIs are relative to *https://apitest.cybersource.com* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**postDeAssociateV3Terminal**](DeviceDeAssociationV3Api.md#postDeAssociateV3Terminal) | **POST** /dms/v3/devices/deassociate | De-associate a device from merchant to account or reseller and from account to reseller V3 - - - -# **postDeAssociateV3Terminal** -> List<InlineResponse2005> postDeAssociateV3Terminal(deviceDeAssociateV3Request) - -De-associate a device from merchant to account or reseller and from account to reseller V3 - -A device will be de-associated from its current organization and moved up in the hierarchy. The device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user. - -### Example -```java -// Import classes: -//import Invokers.ApiException; -//import Api.DeviceDeAssociationV3Api; - - -DeviceDeAssociationV3Api apiInstance = new DeviceDeAssociationV3Api(); -List deviceDeAssociateV3Request = Arrays.asList(new DeviceDeAssociateV3Request()); // List | deviceId that has to be de-associated to the destination organizationId. -try { - List result = apiInstance.postDeAssociateV3Terminal(deviceDeAssociateV3Request); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DeviceDeAssociationV3Api#postDeAssociateV3Terminal"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **deviceDeAssociateV3Request** | [**List<DeviceDeAssociateV3Request>**](DeviceDeAssociateV3Request.md)| deviceId that has to be de-associated to the destination organizationId. | - -### Return type - -[**List<InlineResponse2005>**](InlineResponse2005.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json;charset=UTF-8 - - **Accept**: application/json;charset=UTF-8 - diff --git a/docs/DeviceSearchApi.md b/docs/DeviceSearchApi.md index 3a56e88d..5342305e 100644 --- a/docs/DeviceSearchApi.md +++ b/docs/DeviceSearchApi.md @@ -4,14 +4,60 @@ All URIs are relative to *https://apitest.cybersource.com* Method | HTTP request | Description ------------- | ------------- | ------------- -[**postSearchQueryV3**](DeviceSearchApi.md#postSearchQueryV3) | **POST** /dms/v3/devices/search | Retrieve List of Devices for a given search query V3 +[**postSearchQuery**](DeviceSearchApi.md#postSearchQuery) | **POST** /dms/v2/devices/search | Retrieve List of Devices for a given search query V2 +[**postSearchQueryV3**](DeviceSearchApi.md#postSearchQueryV3) | **POST** /dms/v3/devices/search | Retrieve List of Devices for a given search query + +# **postSearchQuery** +> InlineResponse2005 postSearchQuery(postDeviceSearchRequest) + +Retrieve List of Devices for a given search query V2 + +Retrieves list of terminals in paginated format. + +### Example +```java +// Import classes: +//import Invokers.ApiException; +//import Api.DeviceSearchApi; + + +DeviceSearchApi apiInstance = new DeviceSearchApi(); +PostDeviceSearchRequest postDeviceSearchRequest = new PostDeviceSearchRequest(); // PostDeviceSearchRequest | +try { + InlineResponse2005 result = apiInstance.postSearchQuery(postDeviceSearchRequest); + System.out.println(result); +} catch (ApiException e) { + System.err.println("Exception when calling DeviceSearchApi#postSearchQuery"); + e.printStackTrace(); +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **postDeviceSearchRequest** | [**PostDeviceSearchRequest**](PostDeviceSearchRequest.md)| | + +### Return type + +[**InlineResponse2005**](InlineResponse2005.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json;charset=UTF-8 + - **Accept**: application/json;charset=UTF-8 + # **postSearchQueryV3** -> InlineResponse2006 postSearchQueryV3(postDeviceSearchRequestV3) +> InlineResponse2007 postSearchQueryV3(postDeviceSearchRequestV3) -Retrieve List of Devices for a given search query V3 +Retrieve List of Devices for a given search query Search for devices matching a given search query. The search query supports serialNumber, readerId, terminalId, status, statusChangeReason or organizationId Matching results are paginated. @@ -25,7 +71,7 @@ Search for devices matching a given search query. The search query supports ser DeviceSearchApi apiInstance = new DeviceSearchApi(); PostDeviceSearchRequestV3 postDeviceSearchRequestV3 = new PostDeviceSearchRequestV3(); // PostDeviceSearchRequestV3 | try { - InlineResponse2006 result = apiInstance.postSearchQueryV3(postDeviceSearchRequestV3); + InlineResponse2007 result = apiInstance.postSearchQueryV3(postDeviceSearchRequestV3); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling DeviceSearchApi#postSearchQueryV3"); @@ -41,7 +87,7 @@ Name | Type | Description | Notes ### Return type -[**InlineResponse2006**](InlineResponse2006.md) +[**InlineResponse2007**](InlineResponse2007.md) ### Authorization diff --git a/docs/GenerateCaptureContextRequest.md b/docs/GenerateCaptureContextRequest.md index 962bbda4..417f6243 100644 --- a/docs/GenerateCaptureContextRequest.md +++ b/docs/GenerateCaptureContextRequest.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **clientVersion** | **String** | Specify the version of Microform that you want to use. | [optional] **targetOrigins** | **List<String>** | The [target origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the website on which you will be launching Microform is defined by the scheme (protocol), hostname (domain) and port number (if used). You must use https://hostname (unless you use http://localhost) Wildcards are NOT supported. Ensure that subdomains are included. Any valid top-level domain is supported (e.g. .com, .co.uk, .gov.br etc) Examples: - https://example.com - https://subdomain.example.com - https://example.com:8080<br><br> If you are embedding within multiple nested iframes you need to specify the origins of all the browser contexts used, for example: targetOrigins: [ \"https://example.com\", \"https://basket.example.com\", \"https://ecom.example.com\" ]<br><br> You can supply up to nine origins within the targetOrigins field for nested iframes. If the list of origins exceeds five ensure that you: - Compare the list of origins in the v2/sessions targetOrigins field against the location.ancestorOrigins of the browser. - Ensure that the count of origins and their content matches in both. If any origins are absent or mismatched, the system will prevent Microform from loading and display a client-side error message. | [optional] -**allowedCardNetworks** | **List<String>** | The list of card networks you want to use for this Microform transaction. Microform currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA **Important:** - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request. - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request. - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request. | [optional] +**allowedCardNetworks** | **List<String>** | The list of card networks you want to use for this Microform transaction. Microform currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA - PAYPAK **Important:** - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request. - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request. - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request. | [optional] **allowedPaymentTypes** | **List<String>** | The payment types that are allowed for the merchant. Possible values when launching Microform: - CARD - CHECK <br><br> | [optional] **transientTokenResponseOptions** | [**Microformv2sessionsTransientTokenResponseOptions**](Microformv2sessionsTransientTokenResponseOptions.md) | | [optional] diff --git a/docs/GenerateUnifiedCheckoutCaptureContextRequest.md b/docs/GenerateUnifiedCheckoutCaptureContextRequest.md index 5970058c..a9409148 100644 --- a/docs/GenerateUnifiedCheckoutCaptureContextRequest.md +++ b/docs/GenerateUnifiedCheckoutCaptureContextRequest.md @@ -6,8 +6,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **clientVersion** | **String** | Specify the version of Unified Checkout that you want to use. | [optional] **targetOrigins** | **List<String>** | The [target origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the website on which you will be launching Unified Checkout is defined by the scheme (protocol), hostname (domain) and port number (if used). You must use https://hostname (unless you use http://localhost) Wildcards are NOT supported. Ensure that subdomains are included. Any valid top-level domain is supported (e.g. .com, .co.uk, .gov.br etc) Examples: - https://example.com - https://subdomain.example.com - https://example.com:8080<br><br> If you are embedding within multiple nested iframes you need to specify the origins of all the browser contexts used, for example: targetOrigins: [ \"https://example.com\", \"https://basket.example.com\", \"https://ecom.example.com\" ] | [optional] -**allowedCardNetworks** | **List<String>** | The list of card networks you want to use for this Unified Checkout transaction. Unified Checkout currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA | [optional] -**allowedPaymentTypes** | **List<String>** | The payment types that are allowed for the merchant. Possible values when launching Unified Checkout: - APPLEPAY - CHECK - CLICKTOPAY - GOOGLEPAY - PANENTRY - PAZE <br><br> Possible values when launching Click To Pay Drop-In UI: - CLICKTOPAY <br><br> **Important:** - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards. - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester. - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.<br><br> **Managing Google Pay Authentication Types** When you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay. | [optional] +**allowedCardNetworks** | **List<String>** | The list of card networks you want to use for this Unified Checkout transaction. Unified Checkout currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA - PAYPAK | [optional] +**allowedPaymentTypes** | **List<String>** | The payment types that are allowed for the merchant. Possible values when launching Unified Checkout: - APPLEPAY - CHECK - CLICKTOPAY - GOOGLEPAY - PANENTRY - PAZE <br><br> Unified Checkout also supports the following Alternative Payments: - AFTERPAY<br><br> Possible values when launching Click To Pay Drop-In UI: - CLICKTOPAY <br><br> **Important:** - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards. - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester. - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.<br><br> **Managing Google Pay Authentication Types** When you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay.<br><br> **Managing Google Pay Authentication Types** Where Click to Pay is the payment type selected by the customer and the customer manually enters their card, the option to enroll their card in Click to Pay will be auto-checked if this field is set to \"true\". This is only available where the merchant and cardholder are based in the following countries and the billing type is set to \"FULL\" or \"PARTIAL\". - UAE - Argentina - Brazil - Chile - Colombia - Kuwait - Mexico - Peru - Qatar - Saudi Arabia - Ukraine - South Africa<br><br> If false, this is not present or not supported in the market. Enrollment in Click to Pay is not checked for the customer when completing manual card entry. | [optional] **country** | **String** | Country the purchase is originating from (e.g. country of the merchant). Use the two-character ISO Standard | [optional] **locale** | **String** | Localization of the User experience conforming to the ISO 639-1 language standards and two-character ISO Standard Country Code. Please refer to list of [supported locales through Unified Checkout](https://developer.cybersource.com/docs/cybs/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-appendix-languages.html) | [optional] **captureMandate** | [**Upv1capturecontextsCaptureMandate**](Upv1capturecontextsCaptureMandate.md) | | [optional] diff --git a/docs/GetSubscriptionResponse.md b/docs/GetSubscriptionResponse.md index 21ff23e6..f51b4ff3 100644 --- a/docs/GetSubscriptionResponse.md +++ b/docs/GetSubscriptionResponse.md @@ -11,6 +11,7 @@ Name | Type | Description | Notes **subscriptionInformation** | [**GetAllSubscriptionsResponseSubscriptionInformation**](GetAllSubscriptionsResponseSubscriptionInformation.md) | | [optional] **paymentInformation** | [**GetAllSubscriptionsResponsePaymentInformation**](GetAllSubscriptionsResponsePaymentInformation.md) | | [optional] **orderInformation** | [**GetAllSubscriptionsResponseOrderInformation**](GetAllSubscriptionsResponseOrderInformation.md) | | [optional] +**reactivationInformation** | [**GetSubscriptionResponseReactivationInformation**](GetSubscriptionResponseReactivationInformation.md) | | [optional] diff --git a/docs/GetSubscriptionResponseReactivationInformation.md b/docs/GetSubscriptionResponseReactivationInformation.md new file mode 100644 index 00000000..53d43f70 --- /dev/null +++ b/docs/GetSubscriptionResponseReactivationInformation.md @@ -0,0 +1,11 @@ + +# GetSubscriptionResponseReactivationInformation + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**skippedPaymentsCount** | **String** | Number of payments that should have occurred while the subscription was in a suspended status. | [optional] +**skippedPaymentsTotalAmount** | **String** | Total amount that will be charged upon reactivation if `processSkippedPayments` is set to `true`. | [optional] + + + diff --git a/docs/InlineResponse20010.md b/docs/InlineResponse20010.md new file mode 100644 index 00000000..fd8b83b9 --- /dev/null +++ b/docs/InlineResponse20010.md @@ -0,0 +1,19 @@ + +# InlineResponse20010 + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**version** | **String** | | [optional] +**reportCreatedDate** | **String** | ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ | [optional] +**batchId** | **String** | Unique identification number assigned to the submitted request. | [optional] +**batchSource** | **String** | Valid Values: * SCHEDULER * TOKEN_API * CREDIT_CARD_FILE_UPLOAD * AMEX_REGSITRY * AMEX_REGISTRY_API * AMEX_MAINTENANCE | [optional] +**batchCaEndpoints** | **String** | | [optional] +**batchCreatedDate** | **String** | ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ | [optional] +**merchantReference** | **String** | Reference used by merchant to identify batch. | [optional] +**totals** | [**InlineResponse2008EmbeddedTotals**](InlineResponse2008EmbeddedTotals.md) | | [optional] +**billing** | [**InlineResponse2009Billing**](InlineResponse2009Billing.md) | | [optional] +**records** | [**List<InlineResponse20010Records>**](InlineResponse20010Records.md) | | [optional] + + + diff --git a/docs/InlineResponse20010Records.md b/docs/InlineResponse20010Records.md new file mode 100644 index 00000000..8d68940a --- /dev/null +++ b/docs/InlineResponse20010Records.md @@ -0,0 +1,12 @@ + +# InlineResponse20010Records + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **String** | | [optional] +**sourceRecord** | [**InlineResponse20010SourceRecord**](InlineResponse20010SourceRecord.md) | | [optional] +**responseRecord** | [**InlineResponse20010ResponseRecord**](InlineResponse20010ResponseRecord.md) | | [optional] + + + diff --git a/docs/InlineResponse2009ResponseRecord.md b/docs/InlineResponse20010ResponseRecord.md similarity index 76% rename from docs/InlineResponse2009ResponseRecord.md rename to docs/InlineResponse20010ResponseRecord.md index 602b2322..6e9dacba 100644 --- a/docs/InlineResponse2009ResponseRecord.md +++ b/docs/InlineResponse20010ResponseRecord.md @@ -1,5 +1,5 @@ -# InlineResponse2009ResponseRecord +# InlineResponse20010ResponseRecord ## Properties Name | Type | Description | Notes @@ -13,7 +13,7 @@ Name | Type | Description | Notes **cardExpiryMonth** | **String** | | [optional] **cardExpiryYear** | **String** | | [optional] **cardType** | **String** | | [optional] -**additionalUpdates** | [**List<InlineResponse2009ResponseRecordAdditionalUpdates>**](InlineResponse2009ResponseRecordAdditionalUpdates.md) | | [optional] +**additionalUpdates** | [**List<InlineResponse20010ResponseRecordAdditionalUpdates>**](InlineResponse20010ResponseRecordAdditionalUpdates.md) | | [optional] diff --git a/docs/InlineResponse2009ResponseRecordAdditionalUpdates.md b/docs/InlineResponse20010ResponseRecordAdditionalUpdates.md similarity index 87% rename from docs/InlineResponse2009ResponseRecordAdditionalUpdates.md rename to docs/InlineResponse20010ResponseRecordAdditionalUpdates.md index 997e1ac5..34cb87cb 100644 --- a/docs/InlineResponse2009ResponseRecordAdditionalUpdates.md +++ b/docs/InlineResponse20010ResponseRecordAdditionalUpdates.md @@ -1,5 +1,5 @@ -# InlineResponse2009ResponseRecordAdditionalUpdates +# InlineResponse20010ResponseRecordAdditionalUpdates ## Properties Name | Type | Description | Notes diff --git a/docs/InlineResponse2009SourceRecord.md b/docs/InlineResponse20010SourceRecord.md similarity index 93% rename from docs/InlineResponse2009SourceRecord.md rename to docs/InlineResponse20010SourceRecord.md index 212593dd..a710ebda 100644 --- a/docs/InlineResponse2009SourceRecord.md +++ b/docs/InlineResponse20010SourceRecord.md @@ -1,5 +1,5 @@ -# InlineResponse2009SourceRecord +# InlineResponse20010SourceRecord ## Properties Name | Type | Description | Notes diff --git a/docs/InlineResponse2005.md b/docs/InlineResponse2005.md index 5d0e2259..cc3f1eac 100644 --- a/docs/InlineResponse2005.md +++ b/docs/InlineResponse2005.md @@ -4,8 +4,12 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | Possible values: - OK | [optional] -**devices** | [**List<Dmsv3devicesdeassociateDevices>**](Dmsv3devicesdeassociateDevices.md) | | [optional] +**totalCount** | **Integer** | Total number of results. | [optional] +**offset** | **Integer** | Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. | [optional] +**limit** | **Integer** | Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. | [optional] +**sort** | **String** | A comma separated list of the following form: `submitTimeUtc:desc` | [optional] +**count** | **Integer** | Results for this page, this could be below the limit. | [optional] +**devices** | [**List<InlineResponse2005Devices>**](InlineResponse2005Devices.md) | A collection of devices | [optional] diff --git a/docs/InlineResponse2005Devices.md b/docs/InlineResponse2005Devices.md new file mode 100644 index 00000000..a866f603 --- /dev/null +++ b/docs/InlineResponse2005Devices.md @@ -0,0 +1,18 @@ + +# InlineResponse2005Devices + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**readerId** | **String** | | [optional] +**terminalSerialNumber** | **String** | | [optional] +**terminalId** | **String** | | [optional] +**model** | **String** | | [optional] +**make** | **String** | | [optional] +**hardwareRevision** | **String** | | [optional] +**status** | **String** | Status of the device. Possible Values: - 'ACTIVE' - 'INACTIVE' | [optional] +**creationDate** | **String** | | [optional] +**pin** | **String** | | [optional] + + + diff --git a/docs/InlineResponse2006.md b/docs/InlineResponse2006.md index 588fcfbb..fe3f9465 100644 --- a/docs/InlineResponse2006.md +++ b/docs/InlineResponse2006.md @@ -4,12 +4,8 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**totalCount** | **Integer** | Total number of results. | [optional] -**offset** | **Integer** | Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. | [optional] -**limit** | **Integer** | Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. | [optional] -**sort** | **String** | A comma separated list of the following form: `terminalCreationDate:desc or serialNumber or terminalUpdationDate` | [optional] -**count** | **Integer** | Results for this page, this could be below the limit. | [optional] -**devices** | [**List<InlineResponse2006Devices>**](InlineResponse2006Devices.md) | A collection of devices | [optional] +**status** | **String** | Possible values: - OK | [optional] +**devices** | [**List<Dmsv3devicesdeassociateDevices>**](Dmsv3devicesdeassociateDevices.md) | | [optional] diff --git a/docs/InlineResponse2007.md b/docs/InlineResponse2007.md index 1126110a..98552188 100644 --- a/docs/InlineResponse2007.md +++ b/docs/InlineResponse2007.md @@ -4,13 +4,12 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**links** | [**List<InlineResponse2007Links>**](InlineResponse2007Links.md) | | [optional] -**object** | **String** | | [optional] -**offset** | **Integer** | | [optional] -**limit** | **Integer** | | [optional] -**count** | **Integer** | | [optional] -**total** | **Integer** | | [optional] -**embedded** | [**InlineResponse2007Embedded**](InlineResponse2007Embedded.md) | | [optional] +**totalCount** | **Integer** | Total number of results. | [optional] +**offset** | **Integer** | Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. | [optional] +**limit** | **Integer** | Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. | [optional] +**sort** | **String** | A comma separated list of the following form: `terminalCreationDate:desc or serialNumber or terminalUpdationDate` | [optional] +**count** | **Integer** | Results for this page, this could be below the limit. | [optional] +**devices** | [**List<InlineResponse2007Devices>**](InlineResponse2007Devices.md) | A collection of devices | [optional] diff --git a/docs/InlineResponse2006Devices.md b/docs/InlineResponse2007Devices.md similarity index 86% rename from docs/InlineResponse2006Devices.md rename to docs/InlineResponse2007Devices.md index e6fa8531..f44de133 100644 --- a/docs/InlineResponse2006Devices.md +++ b/docs/InlineResponse2007Devices.md @@ -1,5 +1,5 @@ -# InlineResponse2006Devices +# InlineResponse2007Devices ## Properties Name | Type | Description | Notes @@ -15,7 +15,7 @@ Name | Type | Description | Notes **accountId** | **String** | ID of the account to whom the device assigned. | [optional] **terminalCreationDate** | [**DateTime**](DateTime.md) | Timestamp in which the device was created. | [optional] **terminalUpdationDate** | [**DateTime**](DateTime.md) | Timestamp in which the device was updated/modified. | [optional] -**paymentProcessorToTerminalMap** | [**InlineResponse2006PaymentProcessorToTerminalMap**](InlineResponse2006PaymentProcessorToTerminalMap.md) | | [optional] +**paymentProcessorToTerminalMap** | [**InlineResponse2007PaymentProcessorToTerminalMap**](InlineResponse2007PaymentProcessorToTerminalMap.md) | | [optional] diff --git a/docs/InlineResponse2007Embedded.md b/docs/InlineResponse2007Embedded.md deleted file mode 100644 index 82baafc1..00000000 --- a/docs/InlineResponse2007Embedded.md +++ /dev/null @@ -1,10 +0,0 @@ - -# InlineResponse2007Embedded - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**batches** | [**List<InlineResponse2007EmbeddedBatches>**](InlineResponse2007EmbeddedBatches.md) | | [optional] - - - diff --git a/docs/InlineResponse2007EmbeddedLinks.md b/docs/InlineResponse2007EmbeddedLinks.md deleted file mode 100644 index 44744e59..00000000 --- a/docs/InlineResponse2007EmbeddedLinks.md +++ /dev/null @@ -1,10 +0,0 @@ - -# InlineResponse2007EmbeddedLinks - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reports** | [**List<InlineResponse2007EmbeddedLinksReports>**](InlineResponse2007EmbeddedLinksReports.md) | | [optional] - - - diff --git a/docs/InlineResponse2007Links.md b/docs/InlineResponse2007Links.md deleted file mode 100644 index 6b95250d..00000000 --- a/docs/InlineResponse2007Links.md +++ /dev/null @@ -1,11 +0,0 @@ - -# InlineResponse2007Links - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rel** | **String** | Valid Values: * self * first * last * prev * next | [optional] -**href** | **String** | | [optional] - - - diff --git a/docs/InlineResponse2006PaymentProcessorToTerminalMap.md b/docs/InlineResponse2007PaymentProcessorToTerminalMap.md similarity index 80% rename from docs/InlineResponse2006PaymentProcessorToTerminalMap.md rename to docs/InlineResponse2007PaymentProcessorToTerminalMap.md index 6b1cd8db..2c974ebd 100644 --- a/docs/InlineResponse2006PaymentProcessorToTerminalMap.md +++ b/docs/InlineResponse2007PaymentProcessorToTerminalMap.md @@ -1,5 +1,5 @@ -# InlineResponse2006PaymentProcessorToTerminalMap +# InlineResponse2007PaymentProcessorToTerminalMap ## Properties Name | Type | Description | Notes diff --git a/docs/InlineResponse2008.md b/docs/InlineResponse2008.md index 496b7021..a1d4322d 100644 --- a/docs/InlineResponse2008.md +++ b/docs/InlineResponse2008.md @@ -4,16 +4,13 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**links** | [**InlineResponse2008Links**](InlineResponse2008Links.md) | | [optional] -**batchId** | **String** | Unique identification number assigned to the submitted request. | [optional] -**batchCreatedDate** | **String** | ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ | [optional] -**batchSource** | **String** | Valid Values: * SCHEDULER * TOKEN_API * CREDIT_CARD_FILE_UPLOAD * AMEX_REGSITRY * AMEX_REGISTRY_API * AMEX_MAINTENANCE | [optional] -**merchantReference** | **String** | Reference used by merchant to identify batch. | [optional] -**batchCaEndpoints** | **String** | | [optional] -**status** | **String** | Valid Values: * REJECTED * RECEIVED * VALIDATED * DECLINED * PROCESSING * COMPLETED | [optional] -**totals** | [**InlineResponse2007EmbeddedTotals**](InlineResponse2007EmbeddedTotals.md) | | [optional] -**billing** | [**InlineResponse2008Billing**](InlineResponse2008Billing.md) | | [optional] -**description** | **String** | | [optional] +**links** | [**List<InlineResponse2008Links>**](InlineResponse2008Links.md) | | [optional] +**object** | **String** | | [optional] +**offset** | **Integer** | | [optional] +**limit** | **Integer** | | [optional] +**count** | **Integer** | | [optional] +**total** | **Integer** | | [optional] +**embedded** | [**InlineResponse2008Embedded**](InlineResponse2008Embedded.md) | | [optional] diff --git a/docs/InlineResponse2008Embedded.md b/docs/InlineResponse2008Embedded.md new file mode 100644 index 00000000..ebc08a21 --- /dev/null +++ b/docs/InlineResponse2008Embedded.md @@ -0,0 +1,10 @@ + +# InlineResponse2008Embedded + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**batches** | [**List<InlineResponse2008EmbeddedBatches>**](InlineResponse2008EmbeddedBatches.md) | | [optional] + + + diff --git a/docs/InlineResponse2007EmbeddedBatches.md b/docs/InlineResponse2008EmbeddedBatches.md similarity index 81% rename from docs/InlineResponse2007EmbeddedBatches.md rename to docs/InlineResponse2008EmbeddedBatches.md index 12dd4e64..a1b87dbc 100644 --- a/docs/InlineResponse2007EmbeddedBatches.md +++ b/docs/InlineResponse2008EmbeddedBatches.md @@ -1,10 +1,10 @@ -# InlineResponse2007EmbeddedBatches +# InlineResponse2008EmbeddedBatches ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**links** | [**InlineResponse2007EmbeddedLinks**](InlineResponse2007EmbeddedLinks.md) | | [optional] +**links** | [**InlineResponse2008EmbeddedLinks**](InlineResponse2008EmbeddedLinks.md) | | [optional] **batchId** | **String** | Unique identification number assigned to the submitted request. | [optional] **batchCreatedDate** | **String** | ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ | [optional] **batchModifiedDate** | **String** | ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ | [optional] @@ -13,7 +13,7 @@ Name | Type | Description | Notes **merchantReference** | **String** | Reference used by merchant to identify batch. | [optional] **batchCaEndpoints** | **List<String>** | Valid Values: * VISA * MASTERCARD * AMEX | [optional] **status** | **String** | Valid Values: * REJECTED * RECEIVED * VALIDATED * DECLINED * PROCESSING * COMPLETE | [optional] -**totals** | [**InlineResponse2007EmbeddedTotals**](InlineResponse2007EmbeddedTotals.md) | | [optional] +**totals** | [**InlineResponse2008EmbeddedTotals**](InlineResponse2008EmbeddedTotals.md) | | [optional] diff --git a/docs/InlineResponse2008EmbeddedLinks.md b/docs/InlineResponse2008EmbeddedLinks.md new file mode 100644 index 00000000..52299a78 --- /dev/null +++ b/docs/InlineResponse2008EmbeddedLinks.md @@ -0,0 +1,10 @@ + +# InlineResponse2008EmbeddedLinks + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**reports** | [**List<InlineResponse2008EmbeddedLinksReports>**](InlineResponse2008EmbeddedLinksReports.md) | | [optional] + + + diff --git a/docs/InlineResponse2007EmbeddedLinksReports.md b/docs/InlineResponse2008EmbeddedLinksReports.md similarity index 78% rename from docs/InlineResponse2007EmbeddedLinksReports.md rename to docs/InlineResponse2008EmbeddedLinksReports.md index dc07c8ee..4fc22c74 100644 --- a/docs/InlineResponse2007EmbeddedLinksReports.md +++ b/docs/InlineResponse2008EmbeddedLinksReports.md @@ -1,5 +1,5 @@ -# InlineResponse2007EmbeddedLinksReports +# InlineResponse2008EmbeddedLinksReports ## Properties Name | Type | Description | Notes diff --git a/docs/InlineResponse2007EmbeddedTotals.md b/docs/InlineResponse2008EmbeddedTotals.md similarity index 91% rename from docs/InlineResponse2007EmbeddedTotals.md rename to docs/InlineResponse2008EmbeddedTotals.md index be6a5a9c..cff3030f 100644 --- a/docs/InlineResponse2007EmbeddedTotals.md +++ b/docs/InlineResponse2008EmbeddedTotals.md @@ -1,5 +1,5 @@ -# InlineResponse2007EmbeddedTotals +# InlineResponse2008EmbeddedTotals ## Properties Name | Type | Description | Notes diff --git a/docs/InlineResponse2008Links.md b/docs/InlineResponse2008Links.md index 51f1ed29..40195ea0 100644 --- a/docs/InlineResponse2008Links.md +++ b/docs/InlineResponse2008Links.md @@ -4,8 +4,8 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**self** | [**InlineResponse202LinksStatus**](InlineResponse202LinksStatus.md) | | [optional] -**report** | [**List<InlineResponse2008LinksReport>**](InlineResponse2008LinksReport.md) | | [optional] +**rel** | **String** | Valid Values: * self * first * last * prev * next | [optional] +**href** | **String** | | [optional] diff --git a/docs/InlineResponse2009.md b/docs/InlineResponse2009.md index 9de19d78..74bc8bb0 100644 --- a/docs/InlineResponse2009.md +++ b/docs/InlineResponse2009.md @@ -4,16 +4,16 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**version** | **String** | | [optional] -**reportCreatedDate** | **String** | ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ | [optional] +**links** | [**InlineResponse2009Links**](InlineResponse2009Links.md) | | [optional] **batchId** | **String** | Unique identification number assigned to the submitted request. | [optional] -**batchSource** | **String** | Valid Values: * SCHEDULER * TOKEN_API * CREDIT_CARD_FILE_UPLOAD * AMEX_REGSITRY * AMEX_REGISTRY_API * AMEX_MAINTENANCE | [optional] -**batchCaEndpoints** | **String** | | [optional] **batchCreatedDate** | **String** | ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ | [optional] +**batchSource** | **String** | Valid Values: * SCHEDULER * TOKEN_API * CREDIT_CARD_FILE_UPLOAD * AMEX_REGSITRY * AMEX_REGISTRY_API * AMEX_MAINTENANCE | [optional] **merchantReference** | **String** | Reference used by merchant to identify batch. | [optional] -**totals** | [**InlineResponse2007EmbeddedTotals**](InlineResponse2007EmbeddedTotals.md) | | [optional] -**billing** | [**InlineResponse2008Billing**](InlineResponse2008Billing.md) | | [optional] -**records** | [**List<InlineResponse2009Records>**](InlineResponse2009Records.md) | | [optional] +**batchCaEndpoints** | **String** | | [optional] +**status** | **String** | Valid Values: * REJECTED * RECEIVED * VALIDATED * DECLINED * PROCESSING * COMPLETED | [optional] +**totals** | [**InlineResponse2008EmbeddedTotals**](InlineResponse2008EmbeddedTotals.md) | | [optional] +**billing** | [**InlineResponse2009Billing**](InlineResponse2009Billing.md) | | [optional] +**description** | **String** | | [optional] diff --git a/docs/InlineResponse2008Billing.md b/docs/InlineResponse2009Billing.md similarity index 90% rename from docs/InlineResponse2008Billing.md rename to docs/InlineResponse2009Billing.md index 17276525..e0a88933 100644 --- a/docs/InlineResponse2008Billing.md +++ b/docs/InlineResponse2009Billing.md @@ -1,5 +1,5 @@ -# InlineResponse2008Billing +# InlineResponse2009Billing ## Properties Name | Type | Description | Notes diff --git a/docs/InlineResponse2009Links.md b/docs/InlineResponse2009Links.md new file mode 100644 index 00000000..7615a331 --- /dev/null +++ b/docs/InlineResponse2009Links.md @@ -0,0 +1,11 @@ + +# InlineResponse2009Links + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**self** | [**InlineResponse202LinksStatus**](InlineResponse202LinksStatus.md) | | [optional] +**report** | [**List<InlineResponse2009LinksReport>**](InlineResponse2009LinksReport.md) | | [optional] + + + diff --git a/docs/InlineResponse2008LinksReport.md b/docs/InlineResponse2009LinksReport.md similarity index 82% rename from docs/InlineResponse2008LinksReport.md rename to docs/InlineResponse2009LinksReport.md index 0bd97a2a..561a4d30 100644 --- a/docs/InlineResponse2008LinksReport.md +++ b/docs/InlineResponse2009LinksReport.md @@ -1,5 +1,5 @@ -# InlineResponse2008LinksReport +# InlineResponse2009LinksReport ## Properties Name | Type | Description | Notes diff --git a/docs/InlineResponse2009Records.md b/docs/InlineResponse2009Records.md deleted file mode 100644 index a8386567..00000000 --- a/docs/InlineResponse2009Records.md +++ /dev/null @@ -1,12 +0,0 @@ - -# InlineResponse2009Records - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **String** | | [optional] -**sourceRecord** | [**InlineResponse2009SourceRecord**](InlineResponse2009SourceRecord.md) | | [optional] -**responseRecord** | [**InlineResponse2009ResponseRecord**](InlineResponse2009ResponseRecord.md) | | [optional] - - - diff --git a/docs/PaymentsProducts.md b/docs/PaymentsProducts.md index d247d100..6be3b0af 100644 --- a/docs/PaymentsProducts.md +++ b/docs/PaymentsProducts.md @@ -21,7 +21,7 @@ Name | Type | Description | Notes **payouts** | [**PaymentsProductsPayouts**](PaymentsProductsPayouts.md) | | [optional] **differentialFee** | [**PaymentsProductsDifferentialFee**](PaymentsProductsDifferentialFee.md) | | [optional] **payByLink** | [**PaymentsProductsTax**](PaymentsProductsTax.md) | | [optional] -**unifiedCheckout** | [**PaymentsProductsTax**](PaymentsProductsTax.md) | | [optional] +**unifiedCheckout** | [**PaymentsProductsUnifiedCheckout**](PaymentsProductsUnifiedCheckout.md) | | [optional] **receivablesManager** | [**PaymentsProductsTax**](PaymentsProductsTax.md) | | [optional] **serviceFee** | [**PaymentsProductsServiceFee**](PaymentsProductsServiceFee.md) | | [optional] diff --git a/docs/PaymentsProductsUnifiedCheckout.md b/docs/PaymentsProductsUnifiedCheckout.md new file mode 100644 index 00000000..9372504f --- /dev/null +++ b/docs/PaymentsProductsUnifiedCheckout.md @@ -0,0 +1,11 @@ + +# PaymentsProductsUnifiedCheckout + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**subscriptionInformation** | [**PaymentsProductsUnifiedCheckoutSubscriptionInformation**](PaymentsProductsUnifiedCheckoutSubscriptionInformation.md) | | [optional] +**configurationInformation** | [**PaymentsProductsUnifiedCheckoutConfigurationInformation**](PaymentsProductsUnifiedCheckoutConfigurationInformation.md) | | [optional] + + + diff --git a/docs/PaymentsProductsUnifiedCheckoutConfigurationInformation.md b/docs/PaymentsProductsUnifiedCheckoutConfigurationInformation.md new file mode 100644 index 00000000..061baf31 --- /dev/null +++ b/docs/PaymentsProductsUnifiedCheckoutConfigurationInformation.md @@ -0,0 +1,10 @@ + +# PaymentsProductsUnifiedCheckoutConfigurationInformation + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**configurations** | [**PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations**](PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.md) | | [optional] + + + diff --git a/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.md b/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.md new file mode 100644 index 00000000..21a7f967 --- /dev/null +++ b/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.md @@ -0,0 +1,10 @@ + +# PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**features** | [**PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures**](PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.md) | | [optional] + + + diff --git a/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.md b/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.md new file mode 100644 index 00000000..184b2b8f --- /dev/null +++ b/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.md @@ -0,0 +1,10 @@ + +# PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**paze** | [**PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze**](PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.md) | | [optional] + + + diff --git a/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.md b/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.md new file mode 100644 index 00000000..ab71a265 --- /dev/null +++ b/docs/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.md @@ -0,0 +1,12 @@ + +# PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**financialInstitution** | **String** | Indicates the financial institution with whom the contract has been signed Possible values: - BANKOFAMERICA - WELLSFARGO | [optional] +**financialInstitutionContract** | **Boolean** | Indicates if the contract has been signed with the selected bank | [optional] +**pazeEnabledInProfile** | **Boolean** | Paze enabled in the profile for the merchants | [optional] + + + diff --git a/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformation.md b/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformation.md new file mode 100644 index 00000000..a059152e --- /dev/null +++ b/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformation.md @@ -0,0 +1,13 @@ + +# PaymentsProductsUnifiedCheckoutSubscriptionInformation + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**enabled** | **Boolean** | | [optional] +**enablementStatus** | **String** | Possible values: - PENDING - ENABLED_AND_USABLE - ENABLED_NOT_USABLE - DISABLED | [optional] +**selfServiceability** | **String** | Indicates if the organization can enable this product using self service. Possible values: - SELF_SERVICEABLE - NOT_SELF_SERVICEABLE - SELF_SERVICE_ONLY | [optional] +**features** | [**PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures**](PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.md) | | [optional] + + + diff --git a/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.md b/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.md new file mode 100644 index 00000000..0fd9e922 --- /dev/null +++ b/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.md @@ -0,0 +1,10 @@ + +# PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**pazeForUnifiedCheckout** | [**PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout**](PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.md) | | [optional] + + + diff --git a/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.md b/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.md new file mode 100644 index 00000000..e92f65c3 --- /dev/null +++ b/docs/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.md @@ -0,0 +1,10 @@ + +# PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**enabled** | **Boolean** | | [optional] + + + diff --git a/docs/PostDeviceSearchRequest.md b/docs/PostDeviceSearchRequest.md new file mode 100644 index 00000000..27ffd9fb --- /dev/null +++ b/docs/PostDeviceSearchRequest.md @@ -0,0 +1,13 @@ + +# PostDeviceSearchRequest + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**query** | **String** | The Search Query to retrieve the Terminals(Example :- terminalSerialNumber:12345678 AND readerId:66c395ca-4f20-4b40-acac-5ff4c772d5f9 AND terminalId:T9KN88RTPE). Empty Query returns everything for the given organization. | [optional] +**sort** | **String** | The Sort Query to order the Terminals by. By Default, It is in ascending order of last update of a device. | [optional] +**offset** | **Long** | The offset or page number. | [optional] +**limit** | **Long** | Number of devices to retrieve in one request. | [optional] + + + diff --git a/docs/Riskv1decisionsTravelInformationLegs.md b/docs/Riskv1decisionsTravelInformationLegs.md index 1ff4e3d6..2a47dd3d 100644 --- a/docs/Riskv1decisionsTravelInformationLegs.md +++ b/docs/Riskv1decisionsTravelInformationLegs.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **destination** | **String** | Use to specify the airport code for the destination of the leg of the trip, which is designated by the pound (#) symbol in the field name. This code is usually three digits long, for example: SFO = San Francisco. Do not use the colon (:) or the dash (-). For airport codes, see [IATA Airline and Airport Code Search](https://www.iata.org/publications/Pages/code-search.aspx). The leg number can be a positive integer from 0 to N. For example: `travelInformation.legs.0.destination=SFO` `travelInformation.legs.1.destination=SFO` **Note** In your request, send either the complete route or the individual legs (`legs.0.origination` and `legs.n.destination`). If you send all the fields, the complete route takes precedence over the individual legs. For details, see the `decision_manager_travel_leg#_dest` field description in _Decision Manager Using the SCMP API Developer Guide_ on the [CyberSource Business Center.](https://ebc2.cybersource.com/ebc2/) Click **Decision Manager** > **Documentation** > **Guides** > _Decision Manager Using the SCMP API Developer Guide_ (PDF link). | [optional] **carrierCode** | **String** | International Air Transport Association (IATA) code for the carrier for this leg of the trip. Required for each leg. Required for American Express SafeKey (U.S.) for travel-related requests. | [optional] **departureDate** | **String** | Departure date for the first leg of the trip. Format: YYYYMMDD. Required for American Express SafeKey (U.S.) for travel-related requests. | [optional] +**departureTime** | **Integer** | Time of departure for this leg of the trip. The format is military time and HHMM: If not all zeros, then the hours must be `00-23` and the minutes must be `00-59`. Format: English characters only. Optional request field for travel legs. | [optional] diff --git a/docs/SubscriptionsApi.md b/docs/SubscriptionsApi.md index 10bb2460..6a59b6b1 100644 --- a/docs/SubscriptionsApi.md +++ b/docs/SubscriptionsApi.md @@ -16,11 +16,11 @@ Method | HTTP request | Description # **activateSubscription** -> ActivateSubscriptionResponse activateSubscription(id) +> ActivateSubscriptionResponse activateSubscription(id, processSkippedPayments) Activate a Subscription -Activate a `CANCELLED` Or `SUSPENDED` Subscription +Activate a `SUSPENDED` Subscription ### Example ```java @@ -31,8 +31,9 @@ Activate a `CANCELLED` Or `SUSPENDED` Subscription SubscriptionsApi apiInstance = new SubscriptionsApi(); String id = "id_example"; // String | Subscription Id +Boolean processSkippedPayments = true; // Boolean | Indicates if skipped payments should be processed from the period when the subscription was suspended. By default, this is set to true. try { - ActivateSubscriptionResponse result = apiInstance.activateSubscription(id); + ActivateSubscriptionResponse result = apiInstance.activateSubscription(id, processSkippedPayments); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling SubscriptionsApi#activateSubscription"); @@ -45,6 +46,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **id** | **String**| Subscription Id | + **processSkippedPayments** | **Boolean**| Indicates if skipped payments should be processed from the period when the subscription was suspended. By default, this is set to true. | [optional] [default to true] ### Return type diff --git a/docs/TssV2TransactionsGet200ResponseProcessorInformation.md b/docs/TssV2TransactionsGet200ResponseProcessorInformation.md index 705a8192..e92ef90e 100644 --- a/docs/TssV2TransactionsGet200ResponseProcessorInformation.md +++ b/docs/TssV2TransactionsGet200ResponseProcessorInformation.md @@ -16,6 +16,7 @@ Name | Type | Description | Notes **cardVerification** | [**Riskv1decisionsProcessorInformationCardVerification**](Riskv1decisionsProcessorInformationCardVerification.md) | | [optional] **achVerification** | [**PtsV2PaymentsPost201ResponseProcessorInformationAchVerification**](PtsV2PaymentsPost201ResponseProcessorInformationAchVerification.md) | | [optional] **electronicVerificationResults** | [**TssV2TransactionsGet200ResponseProcessorInformationElectronicVerificationResults**](TssV2TransactionsGet200ResponseProcessorInformationElectronicVerificationResults.md) | | [optional] +**eventStatus** | **String** | The event status. | [optional] **systemTraceAuditNumber** | **String** | This field is returned only for **American Express Direct** and **CyberSource through VisaNet**. Returned by authorization and incremental authorization services. #### American Express Direct System trace audit number (STAN). This value identifies the transaction and is useful when investigating a chargeback dispute. #### CyberSource through VisaNet System trace number that must be printed on the customer's receipt. | [optional] **responseCodeSource** | **String** | Used by Visa only and contains the response source/reason code that identifies the source of the response decision. | [optional] **paymentAccountReferenceNumber** | **String** | Payment Account Reference (PAR) is a non-financial reference assigned to each unique payment account and used to link a payment account to associated network tokens, i.e. the same PAR is returned for PAN-based and tokenized transactions, such as from digital wallets. PAR can be returned in authorisation responses for requests initiated with both real PANs and tokenized PANs. PAR can be used by merchants for fraud detection and regulatory compliance across different channels and digital wallets. PAR allows all participants in the payments chain to have a single, non-sensitive value assigned to a consumer. This value can be used in place of sensitive card holder identification fields, and transmitted across the payments ecosystem to facilitate card holder identification. **Note** On CyberSource through VisaNet, the value for this field corresponds to the following data in the TC 33 capture file: - Record: CP01 TCR8 - Position: 79-110 - Field: Payment Account Reference The TC 33 Capture file contains information about the purchases and refunds that a merchant submits to CyberSource. CyberSource through VisaNet creates the TC 33 Capture file at the end of the day and sends it to the merchant's acquirer, who uses this information to facilitate end-of-day clearing processing with payment networks. | [optional] diff --git a/docs/Upv1capturecontextsCaptureMandate.md b/docs/Upv1capturecontextsCaptureMandate.md index 8d40a5aa..fb1eaf5c 100644 --- a/docs/Upv1capturecontextsCaptureMandate.md +++ b/docs/Upv1capturecontextsCaptureMandate.md @@ -10,6 +10,7 @@ Name | Type | Description | Notes **requestShipping** | **Boolean** | Configure Unified Checkout to capture customer shipping details. Possible values: - True - False | [optional] **shipToCountries** | **List<String>** | List of countries available to ship to. Use the two-character ISO Standard Country Codes. | [optional] **showAcceptedNetworkIcons** | **Boolean** | Configure Unified Checkout to display the list of accepted card networks beneath the payment button Possible values: - True - False | [optional] +**showConfirmationStep** | **Boolean** | Configure Unified Checkout to display the final confirmation screen when using Click to Pay.<br> Where 'BillingType'= NONE and 'requestShipping'= FALSE and the customer is using an existing Click to Pay card as their chosen payment method, a final confirmation screen can be removed allowing the customer to check out as soon as they have selected their payment method from within their Click to Pay card tray. Possible values: - True - False | [optional] **requestSaveCard** | **Boolean** | Configure Unified Checkout to display the \"Save card for future use\" checkbox.<br> Configurable check box that will show in a Manual card entry flow to allow a Cardholder to give consent to store their manually entered credential with the Merchant that they are paying.<br> Applicable when manually entering the details and not enrolling in Click to Pay. Possible values: - True - False<br><br> **Use Cases:** **Offer consumers option to save their card in Unified Checkout:** - Include the captureMandate.requestSaveCard field in the capture context request and set it to true. - When set to true, this will show a checkbox with the message 'Save card for future use' in Unified Checkout. - When selected this provides a response in both the Transient Token and Get Credentials API response.<br><br> **Do not offer consumers the option to save their card in Unified Checkout:** - Include the captureMandate.requestSaveCard field in the capture context request and set it to false OR omit the field from the capture context request. - When set to false, the save card option is not shown to consumers when manually entering card details. | [optional] **comboCard** | **Boolean** | Configure Unified Checkout to display combo card at checkout.<br> A combo debit/credit card is a single card that functions both as a Debit/Credit card. Unified Checkout / Click to Pay Drop-in UI allows the Cardholder to choose whether they would like the transaction to be paid for using either debit or credit card. **Important:** This is applicable to Visa cards only. Possible values: - True - False<br><br> **Use Cases:** **Offer Combo Card at Checkout:** - Include the captureMandate.comboCard field in the capture context request and set it to true. - When set to true, Combo Card selection is shown at checkout <br><br> **Do not offer Combo Card at Checkout:** - Include the captureMandate.comboCard field in the capture context request and set it to false OR omit the field from the capture context request. - The Combo Card selection is not shown at checkout. | [optional] **CPF** | **Boolean** | Configure Unified Checkout to display and capture the CPF number (Cadastro de Pessoas Físicas). The CPF number is a unique 11-digit identifier issued to Brazilian citizens and residents for tax purposes. Possible values: - True - False<br><br> This field is optional. If set to true the field is required. If set to false the field is optional. If the field is not included in the capture context then it is not captured.<br><br> **Important:** - If PANENTRY is specified in the allowedPaymentTypes field, the CPF number will be displayed in Unified Checkout regardless of what card number is entered. - If CLICKTOPAY is specified in the allowedPaymentTypes field, the CPF number will be displayed in Unified Checkout only when a Visa Click To Pay card is entered. | [optional] diff --git a/docs/Upv1capturecontextsCompleteMandate.md b/docs/Upv1capturecontextsCompleteMandate.md index 655475a2..2145b3a0 100644 --- a/docs/Upv1capturecontextsCompleteMandate.md +++ b/docs/Upv1capturecontextsCompleteMandate.md @@ -4,8 +4,9 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**type** | **String** | This field is used to indicate how a payment should be processed. Possible values: - AUTH: Use this value when you want to authorize a payment without capturing it immediately. Payment types that initiate an immediate transfer of funds are not allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned.<br><br> - CAPTURE: Use this value when you want to capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.<br><br> - PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. Payment types like account-to-account transfers that initiate an immediate transfer of funds are allowed and presented to the customer. If selected, an immediate transfer of funds occurs; otherwise, a final backend call is needed to capture the payment. Transactions can be AUTHORIZED, CAPTURED, or PENDING. | [optional] -**decisionManager** | **Boolean** | Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration. Possible values: - True - False<br><br> Setting this value to True indicates that device fingerprinting will be executed to add additional information for risk service Setting this value to False indicates that you do not wish to run device fingerprinting and skip decision manager services. | [optional] +**type** | **String** | This field is used to indicate how a payment should be processed. Possible values: - AUTH: Use this value when you want to authorize a payment within Unified Checkout without capturing it immediately. Payment types that initiate an immediate transfer of funds are NOT allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned. A merchant would need to perform their own capture via API where applicable.<br><br> - CAPTURE: Use this value when you want to perform a sale within Unified Checkout and capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.<br><br> - PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. It will perform a \"CAPTURE\" where an \"AUTH\" is not allowed by the payment type. Transactions can be AUTHORIZED, CAPTURED, or PENDING. If an \"AUTH\" is performed, a merchant would need to perform their own capture via API where applicable. | [optional] +**decisionManager** | **Boolean** | Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration. Possible values: - True - False<br><br> Setting this value to True indicates that device fingerprinting will be executed to add additional information for risk service Setting this value to False (or not provided) indicates that you do not wish to run device fingerprinting and skip decision manager services. | [optional] +**consumerAuthentication** | **Boolean** | Configure Unified Checkout to determine whether Consumer Authentication is invoked during service orchestration. Possible values: - True - False<br><br> Setting this value to True will attempt to perform authentication using the Payer Authentication Service. Setting this value to False (or not provided) indicates that you do not wish to perform authentication using the Payer Authentication Service. | [optional] diff --git a/generator/cybersource-java-template/libraries/okhttp-gson/ApiClient.mustache b/generator/cybersource-java-template/libraries/okhttp-gson/ApiClient.mustache index b7d6a6bb..a20e6855 100644 --- a/generator/cybersource-java-template/libraries/okhttp-gson/ApiClient.mustache +++ b/generator/cybersource-java-template/libraries/okhttp-gson/ApiClient.mustache @@ -959,8 +959,8 @@ public class ApiClient { * @return True if the given MIME is JSON, false otherwise. */ public boolean isJsonMime(String mime) { - String jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"; - return mime != null && (mime.matches(jsonMime) || mime.equalsIgnoreCase("application/json-patch+json")); + String jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(.*)?$"; + return mime != null && (mime.matches(jsonMime) || mime.equalsIgnoreCase("application/json-patch+json") || mime.equalsIgnoreCase("application/json") || mime.equalsIgnoreCase("application/hal+json")); } /** @@ -1451,7 +1451,9 @@ public class ApiClient { if (versionInfo != null && !versionInfo.isEmpty()) { requestHeaderMap.put("v-c-client-id", "cybs-rest-sdk-java-" + versionInfo); - } + } else { + requestHeaderMap.put("v-c-client-id", "cybs-rest-sdk-java-VERSIONUNKNOWN"); + } } catch (ConfigException | IOException e) { logger.error(e.getMessage()); diff --git a/generator/cybersource-rest-spec-java.json b/generator/cybersource-rest-spec-java.json index eefc269a..9bf29aae 100644 --- a/generator/cybersource-rest-spec-java.json +++ b/generator/cybersource-rest-spec-java.json @@ -288,7 +288,7 @@ }, { "name": "bankAccountValidation", - "description": "The Visa Bank Account Validation Service is a new standalone product designed to validate bank account details for eCheck transactions. It ensures that all eCheck transactions comply with Nacha guidelines by validating the routing and account numbers.\nThere will be 2 modes of validation:\n1. Basic Mode: Validate account number format and routing number\n2. Advance mode : Validate account and routing number combination. If the Advanced mode is Unavailable or cannot validate the account, the default behavior will be to fallback to the Basic Mode.\n" + "description": "The Visa Bank Account Validation Service is a new standalone product designed to validate customer's routing and bank account number combination for ACH transactions. Merchant's can use this standalone product to validate their customer's account prior to processing an ACH transaction against the customer's account to comply with Nacha's account validation mandate for Web-debit transactions.\n" } ], "x-devcenter-metaData": { @@ -388,7 +388,7 @@ }, { "name": "Visa_Bank_Account_Validation", - "description": "The Visa Bank Account Validation Service is a new standalone product designed to validate bank account details for eCheck transactions. It ensures that all eCheck transactions comply with Nacha guidelines by validating the routing and account numbers.\nThere will be 2 modes of validation:\n1. Basic Mode: Validate account number format and routing number\n2. Advance mode : Validate account and routing number combination. If the Advanced mode is Unavailable or cannot validate the account, the default behavior will be to fallback to the Basic Mode.\n" + "description": "The Visa Bank Account Validation Service is a new standalone product designed to validate customer's routing and bank account number combination for ACH transactions. Merchant's can use this standalone product to validate their customer's account prior to processing an ACH transaction against the customer's account to comply with Nacha's account validation mandate for Web-debit transactions.\n" } ] }, @@ -82180,7 +82180,7 @@ "items": { "type": "string" }, - "description": "The list of card networks you want to use for this Microform transaction.\n\nMicroform currently supports the following card networks:\n- VISA\n- MASTERCARD\n- AMEX\n- CARNET\n- CARTESBANCAIRES\n- CUP\n- DINERSCLUB\n- DISCOVER\n- EFTPOS\n- ELO\n- JCB\n- JCREW\n- MADA\n- MAESTRO\n- MEEZA\n\n**Important:** \n - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request.\n - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n" + "description": "The list of card networks you want to use for this Microform transaction.\n\nMicroform currently supports the following card networks:\n- VISA\n- MASTERCARD\n- AMEX\n- CARNET\n- CARTESBANCAIRES\n- CUP\n- DINERSCLUB\n- DISCOVER\n- EFTPOS\n- ELO\n- JCB\n- JCREW\n- MADA\n- MAESTRO\n- MEEZA\n- PAYPAK\n\n**Important:** \n - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request.\n - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n" }, "allowedPaymentTypes": { "type": "array", @@ -82205,6 +82205,23 @@ "x-example": { "example0": { "summary": "Generate Capture Context (Card)", + "value": { + "clientVersion": "v2", + "targetOrigins": [ + "https://www.test.com" + ], + "allowedCardNetworks": [ + "VISA", + "MASTERCARD", + "AMEX" + ], + "allowedPaymentTypes": [ + "CARD" + ] + } + }, + "example1": { + "summary": "Generate Capture Context With Full List of Card Networks (Card)", "value": { "clientVersion": "v2", "targetOrigins": [ @@ -82214,8 +82231,8 @@ "VISA", "MASTERCARD", "AMEX", - "CARNET", "CARTESBANCAIRES", + "CARNET", "CUP", "DINERSCLUB", "DISCOVER", @@ -82225,15 +82242,16 @@ "JCREW", "MADA", "MAESTRO", - "MEEZA" + "MEEZA", + "PAYPAK" ], "allowedPaymentTypes": [ "CARD" ] } }, - "example1": { - "summary": "Generate Capture Context (ACH/Echeck)", + "example2": { + "summary": "Generate Capture Context (ACH/eCheck)", "value": { "clientVersion": "v2", "targetOrigins": [ @@ -82244,7 +82262,7 @@ ] } }, - "example2": { + "example3": { "summary": "Generate Capture Context (Card - Opt-out of receiving card number prefix)", "value": { "clientVersion": "v2", @@ -82254,19 +82272,7 @@ "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "CARD" @@ -83874,6 +83880,11 @@ "departureDate": { "type": "string", "description": "Departure date for the first leg of the trip. Format: YYYYMMDD.\nRequired for American Express SafeKey (U.S.) for travel-related requests.\n" + }, + "departureTime": { + "type": "integer", + "maxLength": 4, + "description": "Time of departure for this leg of the trip. The format is military time and HHMM:\nIf not all zeros, then the hours must be `00-23` and the minutes must be `00-59`.\nFormat: English characters only.\nOptional request field for travel legs.\n" } } } @@ -87495,6 +87506,11 @@ "departureDate": { "type": "string", "description": "Departure date for the first leg of the trip. Format: YYYYMMDD.\nRequired for American Express SafeKey (U.S.) for travel-related requests.\n" + }, + "departureTime": { + "type": "integer", + "maxLength": 4, + "description": "Time of departure for this leg of the trip. The format is military time and HHMM:\nIf not all zeros, then the hours must be `00-23` and the minutes must be `00-59`.\nFormat: English characters only.\nOptional request field for travel legs.\n" } } } @@ -98193,6 +98209,21 @@ } } } + }, + "reactivationInformation": { + "type": "object", + "properties": { + "skippedPaymentsCount": { + "type": "string", + "maxLength": 10, + "description": "Number of payments that should have occurred while the subscription was in a suspended status.\n" + }, + "skippedPaymentsTotalAmount": { + "type": "string", + "maxLength": 19, + "description": "Total amount that will be charged upon reactivation if `processSkippedPayments` is set to `true`.\n" + } + } } } } @@ -98982,7 +99013,7 @@ "/rbs/v1/subscriptions/{id}/activate": { "post": { "summary": "Activate a Subscription", - "description": "Activate a `CANCELLED` Or `SUSPENDED` Subscription\n", + "description": "Activate a `SUSPENDED` Subscription\n", "tags": [ "Subscriptions" ], @@ -99008,6 +99039,14 @@ "type": "string", "required": true, "description": "Subscription Id" + }, + { + "name": "processSkippedPayments", + "in": "query", + "type": "boolean", + "description": "Indicates if skipped payments should be processed from the period when the subscription was suspended. By default, this is set to true.", + "required": false, + "default": true } ], "responses": { @@ -102181,6 +102220,10 @@ } } }, + "eventStatus": { + "type": "string", + "description": "The event status.\n" + }, "systemTraceAuditNumber": { "type": "string", "maxLength": 6, @@ -102818,6 +102861,7 @@ "postalCode": "78717", "postalCodeRaw": "1166678717" }, + "eventStatus": "Pending", "systemTraceAuditNumber": "123456", "responseCodeSource": "0", "paymentAccountReferenceNumber": "abc4545345dfsf2342342wfa" @@ -124236,10 +124280,62 @@ "enabled": { "type": "boolean" }, + "enablementStatus": { + "type": "string", + "default": "ENABLED_AND_USABLE", + "description": "Possible values:\n- PENDING\n- ENABLED_AND_USABLE\n- ENABLED_NOT_USABLE\n- DISABLED" + }, "selfServiceability": { "type": "string", "default": "NOT_SELF_SERVICEABLE", "description": "Indicates if the organization can enable this product using self service. \nPossible values:\n- SELF_SERVICEABLE\n- NOT_SELF_SERVICEABLE\n- SELF_SERVICE_ONLY" + }, + "features": { + "type": "object", + "properties": { + "pazeForUnifiedCheckout": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "description": "Enabling Paze under unified checkout" + } + } + } + } + }, + "configurationInformation": { + "type": "object", + "properties": { + "configurations": { + "type": "object", + "properties": { + "features": { + "type": "object", + "properties": { + "paze": { + "type": "object", + "properties": { + "financialInstitution": { + "type": "string", + "description": "Indicates the financial institution with whom the contract has been signed \nPossible values:\n- BANKOFAMERICA\n- WELLSFARGO" + }, + "financialInstitutionContract": { + "type": "boolean", + "description": "Indicates if the contract has been signed with the selected bank" + }, + "pazeEnabledInProfile": { + "type": "boolean", + "description": "Paze enabled in the profile for the merchants" + } + }, + "description": "Paze specific required configuration details under unified checkout" + } + } + } + } } } } @@ -133093,10 +133189,62 @@ "enabled": { "type": "boolean" }, + "enablementStatus": { + "type": "string", + "default": "ENABLED_AND_USABLE", + "description": "Possible values:\n- PENDING\n- ENABLED_AND_USABLE\n- ENABLED_NOT_USABLE\n- DISABLED" + }, "selfServiceability": { "type": "string", "default": "NOT_SELF_SERVICEABLE", "description": "Indicates if the organization can enable this product using self service. \nPossible values:\n- SELF_SERVICEABLE\n- NOT_SELF_SERVICEABLE\n- SELF_SERVICE_ONLY" + }, + "features": { + "type": "object", + "properties": { + "pazeForUnifiedCheckout": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "description": "Enabling Paze under unified checkout" + } + } + } + } + }, + "configurationInformation": { + "type": "object", + "properties": { + "configurations": { + "type": "object", + "properties": { + "features": { + "type": "object", + "properties": { + "paze": { + "type": "object", + "properties": { + "financialInstitution": { + "type": "string", + "description": "Indicates the financial institution with whom the contract has been signed \nPossible values:\n- BANKOFAMERICA\n- WELLSFARGO" + }, + "financialInstitutionContract": { + "type": "boolean", + "description": "Indicates if the contract has been signed with the selected bank" + }, + "pazeEnabledInProfile": { + "type": "boolean", + "description": "Paze enabled in the profile for the merchants" + } + }, + "description": "Paze specific required configuration details under unified checkout" + } + } + } + } } } } @@ -138106,46 +138254,50 @@ } } }, - "/dms/v3/devices/deassociate": { + "/dms/v2/devices/search": { "post": { - "summary": "De-associate a device from merchant to account or reseller and from account to reseller V3", - "description": "A device will be de-associated from its current organization and moved up in the hierarchy.\nThe device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user.\n", - "tags": [ - "Device De-Association V3" - ], - "operationId": "postDeAssociateV3Terminal", - "x-devcenter-metaData": { - "categoryTag": "Device_Management" - }, + "summary": "Retrieve List of Devices for a given search query V2", + "description": "Retrieves list of terminals in paginated format.", "parameters": [ { - "name": "deviceDeAssociateV3Request", - "required": true, + "name": "postDeviceSearchRequest", "in": "body", - "description": "deviceId that has to be de-associated to the destination organizationId.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "required": [ - "deviceId" - ], - "properties": { - "deviceId": { - "type": "string", - "description": "ID of the device to be de-associated.", - "maxLength": 256 - }, - "organizationId": { - "type": "string", - "description": "A field representing value of either account id or portfolio id.", - "maxLength": 30 - } + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The Search Query to retrieve the Terminals(Example :- terminalSerialNumber:12345678 AND readerId:66c395ca-4f20-4b40-acac-5ff4c772d5f9 AND terminalId:T9KN88RTPE). Empty Query returns everything for the given organization." + }, + "sort": { + "type": "string", + "description": "The Sort Query to order the Terminals by. By Default, It is in ascending order of last update of a device." + }, + "offset": { + "type": "integer", + "format": "int64", + "description": "The offset or page number." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Number of devices to retrieve in one request." } } } } ], + "tags": [ + "Device Search" + ], + "operationId": "postSearchQuery", + "x-devcenter-metaData": { + "categoryTag": "Device_Management", + "firstLevelApiLifeCycle": "hidden", + "secondLevelApiLifeCycle": "hidden", + "apiLifeCycle": "hidden" + }, "consumes": [ "application/json;charset=UTF-8" ], @@ -138154,70 +138306,528 @@ ], "responses": { "200": { - "description": "De-associated all device(s) to their respective destination(s)", - "schema": { - "type": "array", - "description": "A collection of details of each device de-associate", - "items": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "Possible values:\n- OK" - }, - "devices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "deviceId": { - "type": "string", - "example": "73c7d8ba-3673-4baf-801e-cf4bf5cc2b57" - }, - "reason": { - "type": "string", - "example": "Device detached successfully." - }, - "code": { - "type": "string", - "example": "deviceDetach.sync.success" - } - } - } - } - } - } - } - }, - "206": { - "description": "Partial Success. De-associated device(s) to their respective destination(s)", + "description": "Retrieved all Devices matched by the search query", "schema": { - "type": "array", - "description": "A collection of details of each device de-associate", - "items": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "Possible values:\n- OK\n- BAD_REQUEST" - }, - "devices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "deviceId": { - "type": "string", - "example": "73c7d8ba-3673-4baf-801e-cf4bf5cc2b57" - }, - "reason": { - "type": "string", - "example": "Device detached successfully." - }, - "code": { - "type": "string", - "example": "deviceDetach.sync.success" - } + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "description": "Total number of results." + }, + "offset": { + "type": "integer", + "description": "Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset.\n\nFor example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this:\n\n`offset=0`\n`offset=5`\n`offset=10`\n\n**Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned.\n" + }, + "limit": { + "type": "integer", + "description": "Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500.\n" + }, + "sort": { + "type": "string", + "description": "A comma separated list of the following form:\n\n`submitTimeUtc:desc`\n" + }, + "count": { + "type": "integer", + "description": "Results for this page, this could be below the limit." + }, + "devices": { + "type": "array", + "description": "A collection of devices", + "items": { + "type": "object", + "properties": { + "readerId": { + "type": "string", + "maxLength": 36 + }, + "terminalSerialNumber": { + "type": "string", + "maxLength": 256, + "pattern": "[0-9a-zA-Z][0-9a-zA-Z-]*" + }, + "terminalId": { + "type": "string", + "maxLength": 256 + }, + "model": { + "type": "string", + "maxLength": 256, + "pattern": "^[0-9a-zA-Z_ ]*$" + }, + "make": { + "type": "string", + "maxLength": 100, + "pattern": "^[0-9a-zA-Z_ ]*$" + }, + "hardwareRevision": { + "type": "string", + "maxLength": 256, + "pattern": "^[0-9a-zA-Z][0-9a-zA-Z-/_.]*$" + }, + "status": { + "type": "string", + "description": "Status of the device.\nPossible Values:\n - 'ACTIVE'\n - 'INACTIVE'\n" + }, + "creationDate": { + "type": "string", + "maxLength": 20, + "pattern": "YYYY-MM-DDThh:mm:ssZ" + }, + "pin": { + "type": "string" + } + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request. \nPossible values:\n- BAD_REQUEST" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "details": { + "type": "array", + "description": "An optional array which provides more details of the error.", + "items": { + "type": "object", + "properties": { + "field": { + "type": "string", + "description": "This is the flattened JSON object field name/path that is either missing or invalid." + }, + "reason": { + "type": "string", + "description": "Possible reasons for the error.\n" + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact field error." + } + } + } + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- UNAUTHORIZED" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "403": { + "description": "Forbidden", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- FORBIDDEN" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "404": { + "description": "Not Found", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- NOT_FOUND" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "500": { + "description": "Unexpected system error or system timeout.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- INTERNAL_SERVER_ERROR" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + } + } + } + }, + "/dms/v2/devices/deassociate": { + "patch": { + "summary": "De-associate a device from merchant or account V2", + "description": "The current association of the device will be removed and will be assigned back to parent in the hierarchy based on internal logic", + "tags": [ + "Device De-Association" + ], + "operationId": "deleteTerminalAssociation", + "x-devcenter-metaData": { + "categoryTag": "Device_Management", + "firstLevelApiLifeCycle": "hidden", + "secondLevelApiLifeCycle": "hidden", + "apiLifeCycle": "hidden" + }, + "parameters": [ + { + "name": "deAssociationRequestBody", + "required": true, + "in": "body", + "description": "de association of the deviceId in the request body.", + "schema": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "UUID of the device which needs to be de-associated" + } + } + } + } + ], + "consumes": [ + "application/json;charset=UTF-8" + ], + "responses": { + "204": { + "description": "The request is fulfilled but does not need to return a body" + }, + "400": { + "description": "Bad Request", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request. \nPossible values:\n- BAD_REQUEST" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "details": { + "type": "array", + "description": "An optional array which provides more details of the error.", + "items": { + "type": "object", + "properties": { + "field": { + "type": "string", + "description": "This is the flattened JSON object field name/path that is either missing or invalid." + }, + "reason": { + "type": "string", + "description": "Possible reasons for the error.\n" + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact field error." + } + } + } + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- UNAUTHORIZED" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "403": { + "description": "Forbidden", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- FORBIDDEN" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "404": { + "description": "Not Found", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- NOT_FOUND" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "500": { + "description": "Unexpected system error or system timeout.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- INTERNAL_SERVER_ERROR" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + } + }, + "x-example": { + "example0": { + "summary": "De-associate a device based on its deviceId.", + "value": { + "deviceId": "6ba4a8e3-d437-476d-ab94-996598ac8706" + } + } + } + } + }, + "/dms/v3/devices/deassociate": { + "post": { + "summary": "De-associate a device from merchant to account or reseller and from account to reseller", + "description": "A device will be de-associated from its current organization and moved up in the hierarchy.\nThe device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user.\n", + "tags": [ + "Device De-Association" + ], + "operationId": "postDeAssociateV3Terminal", + "x-devcenter-metaData": { + "categoryTag": "Device_Management" + }, + "parameters": [ + { + "name": "deviceDeAssociateV3Request", + "required": true, + "in": "body", + "description": "deviceId that has to be de-associated to the destination organizationId.", + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "deviceId" + ], + "properties": { + "deviceId": { + "type": "string", + "description": "ID of the device to be de-associated.", + "maxLength": 256 + }, + "organizationId": { + "type": "string", + "description": "A field representing value of either account id or portfolio id.", + "maxLength": 30 + } + } + } + } + } + ], + "consumes": [ + "application/json;charset=UTF-8" + ], + "produces": [ + "application/json;charset=UTF-8" + ], + "responses": { + "200": { + "description": "De-associated all device(s) to their respective destination(s)", + "schema": { + "type": "array", + "description": "A collection of details of each device de-associate", + "items": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Possible values:\n- OK" + }, + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "example": "73c7d8ba-3673-4baf-801e-cf4bf5cc2b57" + }, + "reason": { + "type": "string", + "example": "Device detached successfully." + }, + "code": { + "type": "string", + "example": "deviceDetach.sync.success" + } + } + } + } + } + } + } + }, + "206": { + "description": "Partial Success. De-associated device(s) to their respective destination(s)", + "schema": { + "type": "array", + "description": "A collection of details of each device de-associate", + "items": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Possible values:\n- OK\n- BAD_REQUEST" + }, + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "example": "73c7d8ba-3673-4baf-801e-cf4bf5cc2b57" + }, + "reason": { + "type": "string", + "example": "Device detached successfully." + }, + "code": { + "type": "string", + "example": "deviceDetach.sync.success" + } } } } @@ -138387,7 +138997,7 @@ }, "/dms/v3/devices/search": { "post": { - "summary": "Retrieve List of Devices for a given search query V3", + "summary": "Retrieve List of Devices for a given search query", "description": "Search for devices matching a given search query.\n\nThe search query supports serialNumber, readerId, terminalId, status, statusChangeReason or organizationId\n\nMatching results are paginated.\n", "parameters": [ { @@ -138724,14 +139334,14 @@ "MASTERCARD" ] }, - "description": "The list of card networks you want to use for this Unified Checkout transaction.\n\nUnified Checkout currently supports the following card networks:\n - VISA\n - MASTERCARD\n - AMEX\n - CARNET\n - CARTESBANCAIRES\n - CUP\n - DINERSCLUB\n - DISCOVER\n - EFTPOS\n - ELO\n - JCB\n - JCREW\n - MADA\n - MAESTRO\n - MEEZA\n" + "description": "The list of card networks you want to use for this Unified Checkout transaction.\n\nUnified Checkout currently supports the following card networks:\n - VISA\n - MASTERCARD\n - AMEX\n - CARNET\n - CARTESBANCAIRES\n - CUP\n - DINERSCLUB\n - DISCOVER\n - EFTPOS\n - ELO\n - JCB\n - JCREW\n - MADA\n - MAESTRO\n - MEEZA\n - PAYPAK\n" }, "allowedPaymentTypes": { "type": "array", "items": { "type": "string" }, - "description": "The payment types that are allowed for the merchant. \n\nPossible values when launching Unified Checkout:\n - APPLEPAY\n - CHECK\n - CLICKTOPAY\n - GOOGLEPAY\n - PANENTRY \n - PAZE

\n\nPossible values when launching Click To Pay Drop-In UI:\n- CLICKTOPAY

\n\n**Important:** \n - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards.\n - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester.\n - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.

\n\n**Managing Google Pay Authentication Types**\nWhen you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay.\n" + "description": "The payment types that are allowed for the merchant. \n\nPossible values when launching Unified Checkout:\n - APPLEPAY\n - CHECK\n - CLICKTOPAY\n - GOOGLEPAY\n - PANENTRY \n - PAZE

\n\nUnified Checkout also supports the following Alternative Payments:\n - AFTERPAY

\n\nPossible values when launching Click To Pay Drop-In UI:\n- CLICKTOPAY

\n\n**Important:** \n - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards.\n - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester.\n - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.

\n\n**Managing Google Pay Authentication Types**\nWhen you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay.

\n\n**Managing Google Pay Authentication Types**\nWhere Click to Pay is the payment type selected by the customer and the customer manually enters their card, the option to enroll their card in Click to Pay will be auto-checked if this field is set to \"true\". \n\nThis is only available where the merchant and cardholder are based in the following countries and the billing type is set to \"FULL\" or \"PARTIAL\".\n - UAE\n - Argentina\n - Brazil\n - Chile\n - Colombia\n - Kuwait\n - Mexico\n - Peru\n - Qatar\n - Saudi Arabia\n - Ukraine\n - South Africa

\n\nIf false, this is not present or not supported in the market. Enrollment in Click to Pay is not checked for the customer when completing manual card entry.\n" }, "country": { "type": "string", @@ -138778,6 +139388,10 @@ "type": "boolean", "description": "Configure Unified Checkout to display the list of accepted card networks beneath the payment button\n\nPossible values:\n- True\n- False\n" }, + "showConfirmationStep": { + "type": "boolean", + "description": "Configure Unified Checkout to display the final confirmation screen when using Click to Pay.
\nWhere 'BillingType'= NONE and 'requestShipping'= FALSE and the customer is using an existing Click to Pay card as their chosen payment method, a final confirmation screen can be removed allowing the customer to check out as soon as they have selected their payment method from within their Click to Pay card tray.\n\nPossible values:\n- True\n- False\n" + }, "requestSaveCard": { "type": "boolean", "description": "Configure Unified Checkout to display the \"Save card for future use\" checkbox.
\n\nConfigurable check box that will show in a Manual card entry flow to allow a Cardholder to give consent to store their manually entered credential with the Merchant that they are paying.
\nApplicable when manually entering the details and not enrolling in Click to Pay.\n\nPossible values:\n - True \n - False

\n\n**Use Cases:**\n\n**Offer consumers option to save their card in Unified Checkout:** \n- Include the captureMandate.requestSaveCard field in the capture context request and set it to true.\n- When set to true, this will show a checkbox with the message 'Save card for future use' in Unified Checkout.\n- When selected this provides a response in both the Transient Token and Get Credentials API response.

\n\n**Do not offer consumers the option to save their card in Unified Checkout:** \n- Include the captureMandate.requestSaveCard field in the capture context request and set it to false OR omit the field from the capture context request.\n- When set to false, the save card option is not shown to consumers when manually entering card details.\n" @@ -138800,11 +139414,15 @@ "type": "string", "example": "AUTH", "maxLength": 25, - "description": "This field is used to indicate how a payment should be processed.\n\nPossible values:\n- AUTH: Use this value when you want to authorize a payment without capturing it immediately. Payment types that initiate an immediate transfer of funds are not allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned.

\n- CAPTURE: Use this value when you want to capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.

\n- PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. Payment types like account-to-account transfers that initiate an immediate transfer of funds are allowed and presented to the customer. If selected, an immediate transfer of funds occurs; otherwise, a final backend call is needed to capture the payment. Transactions can be AUTHORIZED, CAPTURED, or PENDING.\n" + "description": "This field is used to indicate how a payment should be processed.\n\nPossible values:\n- AUTH: Use this value when you want to authorize a payment within Unified Checkout without capturing it immediately. Payment types that initiate an immediate transfer of funds are NOT allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned. A merchant would need to perform their own capture via API where applicable.

\n- CAPTURE: Use this value when you want to perform a sale within Unified Checkout and capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.

\n- PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. It will perform a \"CAPTURE\" where an \"AUTH\" is not allowed by the payment type. Transactions can be AUTHORIZED, CAPTURED, or PENDING. If an \"AUTH\" is performed, a merchant would need to perform their own capture via API where applicable.\n" }, "decisionManager": { "type": "boolean", - "description": "Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration.\n\nPossible values:\n - True\n - False

\n\nSetting this value to True indicates that device fingerprinting will be executed to add additional information for risk service\nSetting this value to False indicates that you do not wish to run device fingerprinting and skip decision manager services.\n" + "description": "Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration.\n\nPossible values:\n - True\n - False

\n\nSetting this value to True indicates that device fingerprinting will be executed to add additional information for risk service\nSetting this value to False (or not provided) indicates that you do not wish to run device fingerprinting and skip decision manager services.\n" + }, + "consumerAuthentication": { + "type": "boolean", + "description": "Configure Unified Checkout to determine whether Consumer Authentication is invoked during service orchestration.\n\nPossible values:\n - True\n - False

\n\nSetting this value to True will attempt to perform authentication using the Payer Authentication Service.\nSetting this value to False (or not provided) indicates that you do not wish to perform authentication using the Payer Authentication Service.\n" } } }, @@ -139102,26 +139720,14 @@ "example0": { "summary": "Generate Unified Checkout Capture Context", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139129,7 +139735,8 @@ "CLICKTOPAY", "GOOGLEPAY", "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139144,6 +139751,11 @@ ], "showAcceptedNetworkIcons": true }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, "orderInformation": { "amountDetails": { "totalAmount": "21.00", @@ -139153,16 +139765,29 @@ } }, "example1": { - "summary": "Generate Unified Checkout Capture Context with Service Orchestration", + "summary": "Generate Unified Checkout Capture Context With Full List of Card Networks", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX" + "AMEX", + "CARTESBANCAIRES", + "CARNET", + "CUP", + "DINERSCLUB", + "DISCOVER", + "EFTPOS", + "ELO", + "JCB", + "JCREW", + "MADA", + "MAESTRO", + "MEEZA", + "PAYPAK" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139170,7 +139795,8 @@ "CLICKTOPAY", "GOOGLEPAY", "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139186,8 +139812,9 @@ "showAcceptedNetworkIcons": true }, "completeMandate": { - "type": "AUTH", - "decisionManager": true + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true }, "orderInformation": { "amountDetails": { @@ -139198,28 +139825,16 @@ } }, "example2": { - "summary": "Generate Unified Checkout Capture Context With Custom Payment Options", + "summary": "Generate Unified Checkout Capture Context With Custom Google Payment Options", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139235,7 +139850,8 @@ } }, "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139250,6 +139866,11 @@ ], "showAcceptedNetworkIcons": true }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, "orderInformation": { "amountDetails": { "totalAmount": "21.00", @@ -139259,9 +139880,9 @@ } }, "example3": { - "summary": "Generate Unified Checkout Capture Context (Opt-out of receiving card number prefix)", + "summary": "Generate Unified Checkout Capture Context With Autocheck Enrollment", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], @@ -139269,18 +139890,54 @@ "VISA", "MASTERCARD", "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "ELO" + ], + "allowedPaymentTypes": [ + "GOOGLEPAY", + { + "type": "CLICKTOPAY", + "options": { + "autoCheckEnrollment": true + } + }, + "PANENTRY" + ], + "country": "BR", + "locale": "pt_BR", + "captureMandate": { + "billingType": "FULL", + "requestEmail": true, + "requestPhone": true, + "requestShipping": true, + "shipToCountries": [ + "BR" + ], + "showAcceptedNetworkIcons": true + }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, + "orderInformation": { + "amountDetails": { + "totalAmount": "21.00", + "currency": "USD" + } + } + } + }, + "example4": { + "summary": "Generate Unified Checkout Capture Context (Opt-out of receiving card number prefix)", + "value": { + "clientVersion": "0.28", + "targetOrigins": [ + "https://yourCheckoutPage.com" + ], + "allowedCardNetworks": [ + "VISA", + "MASTERCARD", + "AMEX" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139288,7 +139945,8 @@ "CLICKTOPAY", "GOOGLEPAY", "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139303,6 +139961,11 @@ ], "showAcceptedNetworkIcons": true }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, "orderInformation": { "amountDetails": { "totalAmount": "21.00", @@ -139314,29 +139977,17 @@ } } }, - "example4": { + "example5": { "summary": "Generate Unified Checkout Capture Context passing Billing & Shipping", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139344,7 +139995,8 @@ "CLICKTOPAY", "GOOGLEPAY", "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139359,6 +140011,11 @@ ], "showAcceptedNetworkIcons": true }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, "orderInformation": { "amountDetails": { "totalAmount": "21.00", @@ -139414,29 +140071,17 @@ } } }, - "example5": { + "example6": { "summary": "Generate Capture Context For Click To Pay Drop-In UI", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "CLICKTOPAY" diff --git a/generator/cybersource-rest-spec.json b/generator/cybersource-rest-spec.json index 761f9782..c0b30d7d 100644 --- a/generator/cybersource-rest-spec.json +++ b/generator/cybersource-rest-spec.json @@ -288,7 +288,7 @@ }, { "name": "bankAccountValidation", - "description": "The Visa Bank Account Validation Service is a new standalone product designed to validate bank account details for eCheck transactions. It ensures that all eCheck transactions comply with Nacha guidelines by validating the routing and account numbers.\nThere will be 2 modes of validation:\n1. Basic Mode: Validate account number format and routing number\n2. Advance mode : Validate account and routing number combination. If the Advanced mode is Unavailable or cannot validate the account, the default behavior will be to fallback to the Basic Mode.\n" + "description": "The Visa Bank Account Validation Service is a new standalone product designed to validate customer's routing and bank account number combination for ACH transactions. Merchant's can use this standalone product to validate their customer's account prior to processing an ACH transaction against the customer's account to comply with Nacha's account validation mandate for Web-debit transactions.\n" } ], "x-devcenter-metaData": { @@ -388,7 +388,7 @@ }, { "name": "Visa_Bank_Account_Validation", - "description": "The Visa Bank Account Validation Service is a new standalone product designed to validate bank account details for eCheck transactions. It ensures that all eCheck transactions comply with Nacha guidelines by validating the routing and account numbers.\nThere will be 2 modes of validation:\n1. Basic Mode: Validate account number format and routing number\n2. Advance mode : Validate account and routing number combination. If the Advanced mode is Unavailable or cannot validate the account, the default behavior will be to fallback to the Basic Mode.\n" + "description": "The Visa Bank Account Validation Service is a new standalone product designed to validate customer's routing and bank account number combination for ACH transactions. Merchant's can use this standalone product to validate their customer's account prior to processing an ACH transaction against the customer's account to comply with Nacha's account validation mandate for Web-debit transactions.\n" } ] }, @@ -82180,7 +82180,7 @@ "items": { "type": "string" }, - "description": "The list of card networks you want to use for this Microform transaction.\n\nMicroform currently supports the following card networks:\n- VISA\n- MASTERCARD\n- AMEX\n- CARNET\n- CARTESBANCAIRES\n- CUP\n- DINERSCLUB\n- DISCOVER\n- EFTPOS\n- ELO\n- JCB\n- JCREW\n- MADA\n- MAESTRO\n- MEEZA\n\n**Important:** \n - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request.\n - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n" + "description": "The list of card networks you want to use for this Microform transaction.\n\nMicroform currently supports the following card networks:\n- VISA\n- MASTERCARD\n- AMEX\n- CARNET\n- CARTESBANCAIRES\n- CUP\n- DINERSCLUB\n- DISCOVER\n- EFTPOS\n- ELO\n- JCB\n- JCREW\n- MADA\n- MAESTRO\n- MEEZA\n- PAYPAK\n\n**Important:** \n - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request.\n - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request.\n" }, "allowedPaymentTypes": { "type": "array", @@ -82205,6 +82205,23 @@ "x-example": { "example0": { "summary": "Generate Capture Context (Card)", + "value": { + "clientVersion": "v2", + "targetOrigins": [ + "https://www.test.com" + ], + "allowedCardNetworks": [ + "VISA", + "MASTERCARD", + "AMEX" + ], + "allowedPaymentTypes": [ + "CARD" + ] + } + }, + "example1": { + "summary": "Generate Capture Context With Full List of Card Networks (Card)", "value": { "clientVersion": "v2", "targetOrigins": [ @@ -82214,8 +82231,8 @@ "VISA", "MASTERCARD", "AMEX", - "CARNET", "CARTESBANCAIRES", + "CARNET", "CUP", "DINERSCLUB", "DISCOVER", @@ -82225,15 +82242,16 @@ "JCREW", "MADA", "MAESTRO", - "MEEZA" + "MEEZA", + "PAYPAK" ], "allowedPaymentTypes": [ "CARD" ] } }, - "example1": { - "summary": "Generate Capture Context (ACH/Echeck)", + "example2": { + "summary": "Generate Capture Context (ACH/eCheck)", "value": { "clientVersion": "v2", "targetOrigins": [ @@ -82244,7 +82262,7 @@ ] } }, - "example2": { + "example3": { "summary": "Generate Capture Context (Card - Opt-out of receiving card number prefix)", "value": { "clientVersion": "v2", @@ -82254,19 +82272,7 @@ "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "CARD" @@ -83874,6 +83880,11 @@ "departureDate": { "type": "string", "description": "Departure date for the first leg of the trip. Format: YYYYMMDD.\nRequired for American Express SafeKey (U.S.) for travel-related requests.\n" + }, + "departureTime": { + "type": "integer", + "maxLength": 4, + "description": "Time of departure for this leg of the trip. The format is military time and HHMM:\nIf not all zeros, then the hours must be `00-23` and the minutes must be `00-59`.\nFormat: English characters only.\nOptional request field for travel legs.\n" } } } @@ -87495,6 +87506,11 @@ "departureDate": { "type": "string", "description": "Departure date for the first leg of the trip. Format: YYYYMMDD.\nRequired for American Express SafeKey (U.S.) for travel-related requests.\n" + }, + "departureTime": { + "type": "integer", + "maxLength": 4, + "description": "Time of departure for this leg of the trip. The format is military time and HHMM:\nIf not all zeros, then the hours must be `00-23` and the minutes must be `00-59`.\nFormat: English characters only.\nOptional request field for travel legs.\n" } } } @@ -98193,6 +98209,21 @@ } } } + }, + "reactivationInformation": { + "type": "object", + "properties": { + "skippedPaymentsCount": { + "type": "string", + "maxLength": 10, + "description": "Number of payments that should have occurred while the subscription was in a suspended status.\n" + }, + "skippedPaymentsTotalAmount": { + "type": "string", + "maxLength": 19, + "description": "Total amount that will be charged upon reactivation if `processSkippedPayments` is set to `true`.\n" + } + } } } } @@ -98982,7 +99013,7 @@ "/rbs/v1/subscriptions/{id}/activate": { "post": { "summary": "Activate a Subscription", - "description": "Activate a `CANCELLED` Or `SUSPENDED` Subscription\n", + "description": "Activate a `SUSPENDED` Subscription\n", "tags": [ "Subscriptions" ], @@ -99008,6 +99039,14 @@ "type": "string", "required": true, "description": "Subscription Id" + }, + { + "name": "processSkippedPayments", + "in": "query", + "type": "boolean", + "description": "Indicates if skipped payments should be processed from the period when the subscription was suspended. By default, this is set to true.", + "required": false, + "default": true } ], "responses": { @@ -102181,6 +102220,10 @@ } } }, + "eventStatus": { + "type": "string", + "description": "The event status.\n" + }, "systemTraceAuditNumber": { "type": "string", "maxLength": 6, @@ -102818,6 +102861,7 @@ "postalCode": "78717", "postalCodeRaw": "1166678717" }, + "eventStatus": "Pending", "systemTraceAuditNumber": "123456", "responseCodeSource": "0", "paymentAccountReferenceNumber": "abc4545345dfsf2342342wfa" @@ -124236,10 +124280,62 @@ "enabled": { "type": "boolean" }, + "enablementStatus": { + "type": "string", + "default": "ENABLED_AND_USABLE", + "description": "Possible values:\n- PENDING\n- ENABLED_AND_USABLE\n- ENABLED_NOT_USABLE\n- DISABLED" + }, "selfServiceability": { "type": "string", "default": "NOT_SELF_SERVICEABLE", "description": "Indicates if the organization can enable this product using self service. \nPossible values:\n- SELF_SERVICEABLE\n- NOT_SELF_SERVICEABLE\n- SELF_SERVICE_ONLY" + }, + "features": { + "type": "object", + "properties": { + "pazeForUnifiedCheckout": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "description": "Enabling Paze under unified checkout" + } + } + } + } + }, + "configurationInformation": { + "type": "object", + "properties": { + "configurations": { + "type": "object", + "properties": { + "features": { + "type": "object", + "properties": { + "paze": { + "type": "object", + "properties": { + "financialInstitution": { + "type": "string", + "description": "Indicates the financial institution with whom the contract has been signed \nPossible values:\n- BANKOFAMERICA\n- WELLSFARGO" + }, + "financialInstitutionContract": { + "type": "boolean", + "description": "Indicates if the contract has been signed with the selected bank" + }, + "pazeEnabledInProfile": { + "type": "boolean", + "description": "Paze enabled in the profile for the merchants" + } + }, + "description": "Paze specific required configuration details under unified checkout" + } + } + } + } } } } @@ -133093,10 +133189,62 @@ "enabled": { "type": "boolean" }, + "enablementStatus": { + "type": "string", + "default": "ENABLED_AND_USABLE", + "description": "Possible values:\n- PENDING\n- ENABLED_AND_USABLE\n- ENABLED_NOT_USABLE\n- DISABLED" + }, "selfServiceability": { "type": "string", "default": "NOT_SELF_SERVICEABLE", "description": "Indicates if the organization can enable this product using self service. \nPossible values:\n- SELF_SERVICEABLE\n- NOT_SELF_SERVICEABLE\n- SELF_SERVICE_ONLY" + }, + "features": { + "type": "object", + "properties": { + "pazeForUnifiedCheckout": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "description": "Enabling Paze under unified checkout" + } + } + } + } + }, + "configurationInformation": { + "type": "object", + "properties": { + "configurations": { + "type": "object", + "properties": { + "features": { + "type": "object", + "properties": { + "paze": { + "type": "object", + "properties": { + "financialInstitution": { + "type": "string", + "description": "Indicates the financial institution with whom the contract has been signed \nPossible values:\n- BANKOFAMERICA\n- WELLSFARGO" + }, + "financialInstitutionContract": { + "type": "boolean", + "description": "Indicates if the contract has been signed with the selected bank" + }, + "pazeEnabledInProfile": { + "type": "boolean", + "description": "Paze enabled in the profile for the merchants" + } + }, + "description": "Paze specific required configuration details under unified checkout" + } + } + } + } } } } @@ -138106,46 +138254,50 @@ } } }, - "/dms/v3/devices/deassociate": { + "/dms/v2/devices/search": { "post": { - "summary": "De-associate a device from merchant to account or reseller and from account to reseller V3", - "description": "A device will be de-associated from its current organization and moved up in the hierarchy.\nThe device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user.\n", - "tags": [ - "Device De-Association V3" - ], - "operationId": "postDeAssociateV3Terminal", - "x-devcenter-metaData": { - "categoryTag": "Device_Management" - }, + "summary": "Retrieve List of Devices for a given search query V2", + "description": "Retrieves list of terminals in paginated format.", "parameters": [ { - "name": "deviceDeAssociateV3Request", - "required": true, + "name": "postDeviceSearchRequest", "in": "body", - "description": "deviceId that has to be de-associated to the destination organizationId.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "required": [ - "deviceId" - ], - "properties": { - "deviceId": { - "type": "string", - "description": "ID of the device to be de-associated.", - "maxLength": 256 - }, - "organizationId": { - "type": "string", - "description": "A field representing value of either account id or portfolio id.", - "maxLength": 30 - } + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The Search Query to retrieve the Terminals(Example :- terminalSerialNumber:12345678 AND readerId:66c395ca-4f20-4b40-acac-5ff4c772d5f9 AND terminalId:T9KN88RTPE). Empty Query returns everything for the given organization." + }, + "sort": { + "type": "string", + "description": "The Sort Query to order the Terminals by. By Default, It is in ascending order of last update of a device." + }, + "offset": { + "type": "integer", + "format": "int64", + "description": "The offset or page number." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Number of devices to retrieve in one request." } } } } ], + "tags": [ + "Device Search" + ], + "operationId": "postSearchQuery", + "x-devcenter-metaData": { + "categoryTag": "Device_Management", + "firstLevelApiLifeCycle": "hidden", + "secondLevelApiLifeCycle": "hidden", + "apiLifeCycle": "hidden" + }, "consumes": [ "application/json;charset=UTF-8" ], @@ -138154,70 +138306,528 @@ ], "responses": { "200": { - "description": "De-associated all device(s) to their respective destination(s)", - "schema": { - "type": "array", - "description": "A collection of details of each device de-associate", - "items": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "Possible values:\n- OK" - }, - "devices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "deviceId": { - "type": "string", - "example": "73c7d8ba-3673-4baf-801e-cf4bf5cc2b57" - }, - "reason": { - "type": "string", - "example": "Device detached successfully." - }, - "code": { - "type": "string", - "example": "deviceDetach.sync.success" - } - } - } - } - } - } - } - }, - "206": { - "description": "Partial Success. De-associated device(s) to their respective destination(s)", + "description": "Retrieved all Devices matched by the search query", "schema": { - "type": "array", - "description": "A collection of details of each device de-associate", - "items": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "Possible values:\n- OK\n- BAD_REQUEST" - }, - "devices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "deviceId": { - "type": "string", - "example": "73c7d8ba-3673-4baf-801e-cf4bf5cc2b57" - }, - "reason": { - "type": "string", - "example": "Device detached successfully." - }, - "code": { - "type": "string", - "example": "deviceDetach.sync.success" - } + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "description": "Total number of results." + }, + "offset": { + "type": "integer", + "description": "Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset.\n\nFor example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this:\n\n`offset=0`\n`offset=5`\n`offset=10`\n\n**Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned.\n" + }, + "limit": { + "type": "integer", + "description": "Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500.\n" + }, + "sort": { + "type": "string", + "description": "A comma separated list of the following form:\n\n`submitTimeUtc:desc`\n" + }, + "count": { + "type": "integer", + "description": "Results for this page, this could be below the limit." + }, + "devices": { + "type": "array", + "description": "A collection of devices", + "items": { + "type": "object", + "properties": { + "readerId": { + "type": "string", + "maxLength": 36 + }, + "terminalSerialNumber": { + "type": "string", + "maxLength": 256, + "pattern": "[0-9a-zA-Z][0-9a-zA-Z-]*" + }, + "terminalId": { + "type": "string", + "maxLength": 256 + }, + "model": { + "type": "string", + "maxLength": 256, + "pattern": "^[0-9a-zA-Z_ ]*$" + }, + "make": { + "type": "string", + "maxLength": 100, + "pattern": "^[0-9a-zA-Z_ ]*$" + }, + "hardwareRevision": { + "type": "string", + "maxLength": 256, + "pattern": "^[0-9a-zA-Z][0-9a-zA-Z-/_.]*$" + }, + "status": { + "type": "string", + "description": "Status of the device.\nPossible Values:\n - 'ACTIVE'\n - 'INACTIVE'\n" + }, + "creationDate": { + "type": "string", + "maxLength": 20, + "pattern": "YYYY-MM-DDThh:mm:ssZ" + }, + "pin": { + "type": "string" + } + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request. \nPossible values:\n- BAD_REQUEST" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "details": { + "type": "array", + "description": "An optional array which provides more details of the error.", + "items": { + "type": "object", + "properties": { + "field": { + "type": "string", + "description": "This is the flattened JSON object field name/path that is either missing or invalid." + }, + "reason": { + "type": "string", + "description": "Possible reasons for the error.\n" + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact field error." + } + } + } + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- UNAUTHORIZED" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "403": { + "description": "Forbidden", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- FORBIDDEN" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "404": { + "description": "Not Found", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- NOT_FOUND" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "500": { + "description": "Unexpected system error or system timeout.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- INTERNAL_SERVER_ERROR" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + } + } + } + }, + "/dms/v2/devices/deassociate": { + "patch": { + "summary": "De-associate a device from merchant or account V2", + "description": "The current association of the device will be removed and will be assigned back to parent in the hierarchy based on internal logic", + "tags": [ + "Device De-Association" + ], + "operationId": "deleteTerminalAssociation", + "x-devcenter-metaData": { + "categoryTag": "Device_Management", + "firstLevelApiLifeCycle": "hidden", + "secondLevelApiLifeCycle": "hidden", + "apiLifeCycle": "hidden" + }, + "parameters": [ + { + "name": "deAssociationRequestBody", + "required": true, + "in": "body", + "description": "de association of the deviceId in the request body.", + "schema": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "UUID of the device which needs to be de-associated" + } + } + } + } + ], + "consumes": [ + "application/json;charset=UTF-8" + ], + "responses": { + "204": { + "description": "The request is fulfilled but does not need to return a body" + }, + "400": { + "description": "Bad Request", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request. \nPossible values:\n- BAD_REQUEST" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "details": { + "type": "array", + "description": "An optional array which provides more details of the error.", + "items": { + "type": "object", + "properties": { + "field": { + "type": "string", + "description": "This is the flattened JSON object field name/path that is either missing or invalid." + }, + "reason": { + "type": "string", + "description": "Possible reasons for the error.\n" + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact field error." + } + } + } + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- UNAUTHORIZED" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "403": { + "description": "Forbidden", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- FORBIDDEN" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "404": { + "description": "Not Found", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- NOT_FOUND" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + }, + "500": { + "description": "Unexpected system error or system timeout.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the submitted request.\n \nPossible values:\n- INTERNAL_SERVER_ERROR" + }, + "message": { + "type": "string", + "description": "The detail message related to the status and reason listed above." + }, + "code": { + "type": "string", + "description": "An optional short string which identifies the exact error." + }, + "submitTimeUtc": { + "type": "string", + "description": "Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`\n\nExample 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the\ntime. The Z indicates UTC.\n" + } + } + } + } + }, + "x-example": { + "example0": { + "summary": "De-associate a device based on its deviceId.", + "value": { + "deviceId": "6ba4a8e3-d437-476d-ab94-996598ac8706" + } + } + } + } + }, + "/dms/v3/devices/deassociate": { + "post": { + "summary": "De-associate a device from merchant to account or reseller and from account to reseller", + "description": "A device will be de-associated from its current organization and moved up in the hierarchy.\nThe device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user.\n", + "tags": [ + "Device De-Association" + ], + "operationId": "postDeAssociateV3Terminal", + "x-devcenter-metaData": { + "categoryTag": "Device_Management" + }, + "parameters": [ + { + "name": "deviceDeAssociateV3Request", + "required": true, + "in": "body", + "description": "deviceId that has to be de-associated to the destination organizationId.", + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "deviceId" + ], + "properties": { + "deviceId": { + "type": "string", + "description": "ID of the device to be de-associated.", + "maxLength": 256 + }, + "organizationId": { + "type": "string", + "description": "A field representing value of either account id or portfolio id.", + "maxLength": 30 + } + } + } + } + } + ], + "consumes": [ + "application/json;charset=UTF-8" + ], + "produces": [ + "application/json;charset=UTF-8" + ], + "responses": { + "200": { + "description": "De-associated all device(s) to their respective destination(s)", + "schema": { + "type": "array", + "description": "A collection of details of each device de-associate", + "items": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Possible values:\n- OK" + }, + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "example": "73c7d8ba-3673-4baf-801e-cf4bf5cc2b57" + }, + "reason": { + "type": "string", + "example": "Device detached successfully." + }, + "code": { + "type": "string", + "example": "deviceDetach.sync.success" + } + } + } + } + } + } + } + }, + "206": { + "description": "Partial Success. De-associated device(s) to their respective destination(s)", + "schema": { + "type": "array", + "description": "A collection of details of each device de-associate", + "items": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Possible values:\n- OK\n- BAD_REQUEST" + }, + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "example": "73c7d8ba-3673-4baf-801e-cf4bf5cc2b57" + }, + "reason": { + "type": "string", + "example": "Device detached successfully." + }, + "code": { + "type": "string", + "example": "deviceDetach.sync.success" + } } } } @@ -138387,7 +138997,7 @@ }, "/dms/v3/devices/search": { "post": { - "summary": "Retrieve List of Devices for a given search query V3", + "summary": "Retrieve List of Devices for a given search query", "description": "Search for devices matching a given search query.\n\nThe search query supports serialNumber, readerId, terminalId, status, statusChangeReason or organizationId\n\nMatching results are paginated.\n", "parameters": [ { @@ -138724,14 +139334,14 @@ "MASTERCARD" ] }, - "description": "The list of card networks you want to use for this Unified Checkout transaction.\n\nUnified Checkout currently supports the following card networks:\n - VISA\n - MASTERCARD\n - AMEX\n - CARNET\n - CARTESBANCAIRES\n - CUP\n - DINERSCLUB\n - DISCOVER\n - EFTPOS\n - ELO\n - JCB\n - JCREW\n - MADA\n - MAESTRO\n - MEEZA\n" + "description": "The list of card networks you want to use for this Unified Checkout transaction.\n\nUnified Checkout currently supports the following card networks:\n - VISA\n - MASTERCARD\n - AMEX\n - CARNET\n - CARTESBANCAIRES\n - CUP\n - DINERSCLUB\n - DISCOVER\n - EFTPOS\n - ELO\n - JCB\n - JCREW\n - MADA\n - MAESTRO\n - MEEZA\n - PAYPAK\n" }, "allowedPaymentTypes": { "type": "array", "items": { "type": "string" }, - "description": "The payment types that are allowed for the merchant. \n\nPossible values when launching Unified Checkout:\n - APPLEPAY\n - CHECK\n - CLICKTOPAY\n - GOOGLEPAY\n - PANENTRY \n - PAZE

\n\nPossible values when launching Click To Pay Drop-In UI:\n- CLICKTOPAY

\n\n**Important:** \n - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards.\n - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester.\n - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.

\n\n**Managing Google Pay Authentication Types**\nWhen you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay.\n" + "description": "The payment types that are allowed for the merchant. \n\nPossible values when launching Unified Checkout:\n - APPLEPAY\n - CHECK\n - CLICKTOPAY\n - GOOGLEPAY\n - PANENTRY \n - PAZE

\n\nUnified Checkout also supports the following Alternative Payments:\n - AFTERPAY

\n\nPossible values when launching Click To Pay Drop-In UI:\n- CLICKTOPAY

\n\n**Important:** \n - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards.\n - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester.\n - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.

\n\n**Managing Google Pay Authentication Types**\nWhen you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay.

\n\n**Managing Google Pay Authentication Types**\nWhere Click to Pay is the payment type selected by the customer and the customer manually enters their card, the option to enroll their card in Click to Pay will be auto-checked if this field is set to \"true\". \n\nThis is only available where the merchant and cardholder are based in the following countries and the billing type is set to \"FULL\" or \"PARTIAL\".\n - UAE\n - Argentina\n - Brazil\n - Chile\n - Colombia\n - Kuwait\n - Mexico\n - Peru\n - Qatar\n - Saudi Arabia\n - Ukraine\n - South Africa

\n\nIf false, this is not present or not supported in the market. Enrollment in Click to Pay is not checked for the customer when completing manual card entry.\n" }, "country": { "type": "string", @@ -138778,6 +139388,10 @@ "type": "boolean", "description": "Configure Unified Checkout to display the list of accepted card networks beneath the payment button\n\nPossible values:\n- True\n- False\n" }, + "showConfirmationStep": { + "type": "boolean", + "description": "Configure Unified Checkout to display the final confirmation screen when using Click to Pay.
\nWhere 'BillingType'= NONE and 'requestShipping'= FALSE and the customer is using an existing Click to Pay card as their chosen payment method, a final confirmation screen can be removed allowing the customer to check out as soon as they have selected their payment method from within their Click to Pay card tray.\n\nPossible values:\n- True\n- False\n" + }, "requestSaveCard": { "type": "boolean", "description": "Configure Unified Checkout to display the \"Save card for future use\" checkbox.
\n\nConfigurable check box that will show in a Manual card entry flow to allow a Cardholder to give consent to store their manually entered credential with the Merchant that they are paying.
\nApplicable when manually entering the details and not enrolling in Click to Pay.\n\nPossible values:\n - True \n - False

\n\n**Use Cases:**\n\n**Offer consumers option to save their card in Unified Checkout:** \n- Include the captureMandate.requestSaveCard field in the capture context request and set it to true.\n- When set to true, this will show a checkbox with the message 'Save card for future use' in Unified Checkout.\n- When selected this provides a response in both the Transient Token and Get Credentials API response.

\n\n**Do not offer consumers the option to save their card in Unified Checkout:** \n- Include the captureMandate.requestSaveCard field in the capture context request and set it to false OR omit the field from the capture context request.\n- When set to false, the save card option is not shown to consumers when manually entering card details.\n" @@ -138800,11 +139414,15 @@ "type": "string", "example": "AUTH", "maxLength": 25, - "description": "This field is used to indicate how a payment should be processed.\n\nPossible values:\n- AUTH: Use this value when you want to authorize a payment without capturing it immediately. Payment types that initiate an immediate transfer of funds are not allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned.

\n- CAPTURE: Use this value when you want to capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.

\n- PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. Payment types like account-to-account transfers that initiate an immediate transfer of funds are allowed and presented to the customer. If selected, an immediate transfer of funds occurs; otherwise, a final backend call is needed to capture the payment. Transactions can be AUTHORIZED, CAPTURED, or PENDING.\n" + "description": "This field is used to indicate how a payment should be processed.\n\nPossible values:\n- AUTH: Use this value when you want to authorize a payment within Unified Checkout without capturing it immediately. Payment types that initiate an immediate transfer of funds are NOT allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned. A merchant would need to perform their own capture via API where applicable.

\n- CAPTURE: Use this value when you want to perform a sale within Unified Checkout and capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.

\n- PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. It will perform a \"CAPTURE\" where an \"AUTH\" is not allowed by the payment type. Transactions can be AUTHORIZED, CAPTURED, or PENDING. If an \"AUTH\" is performed, a merchant would need to perform their own capture via API where applicable.\n" }, "decisionManager": { "type": "boolean", - "description": "Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration.\n\nPossible values:\n - True\n - False

\n\nSetting this value to True indicates that device fingerprinting will be executed to add additional information for risk service\nSetting this value to False indicates that you do not wish to run device fingerprinting and skip decision manager services.\n" + "description": "Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration.\n\nPossible values:\n - True\n - False

\n\nSetting this value to True indicates that device fingerprinting will be executed to add additional information for risk service\nSetting this value to False (or not provided) indicates that you do not wish to run device fingerprinting and skip decision manager services.\n" + }, + "consumerAuthentication": { + "type": "boolean", + "description": "Configure Unified Checkout to determine whether Consumer Authentication is invoked during service orchestration.\n\nPossible values:\n - True\n - False

\n\nSetting this value to True will attempt to perform authentication using the Payer Authentication Service.\nSetting this value to False (or not provided) indicates that you do not wish to perform authentication using the Payer Authentication Service.\n" } } }, @@ -139102,26 +139720,14 @@ "example0": { "summary": "Generate Unified Checkout Capture Context", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139129,7 +139735,8 @@ "CLICKTOPAY", "GOOGLEPAY", "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139144,6 +139751,11 @@ ], "showAcceptedNetworkIcons": true }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, "orderInformation": { "amountDetails": { "totalAmount": "21.00", @@ -139153,16 +139765,29 @@ } }, "example1": { - "summary": "Generate Unified Checkout Capture Context with Service Orchestration", + "summary": "Generate Unified Checkout Capture Context With Full List of Card Networks", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX" + "AMEX", + "CARTESBANCAIRES", + "CARNET", + "CUP", + "DINERSCLUB", + "DISCOVER", + "EFTPOS", + "ELO", + "JCB", + "JCREW", + "MADA", + "MAESTRO", + "MEEZA", + "PAYPAK" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139170,7 +139795,8 @@ "CLICKTOPAY", "GOOGLEPAY", "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139186,8 +139812,9 @@ "showAcceptedNetworkIcons": true }, "completeMandate": { - "type": "AUTH", - "decisionManager": true + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true }, "orderInformation": { "amountDetails": { @@ -139198,28 +139825,16 @@ } }, "example2": { - "summary": "Generate Unified Checkout Capture Context With Custom Payment Options", + "summary": "Generate Unified Checkout Capture Context With Custom Google Payment Options", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139235,7 +139850,8 @@ } }, "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139250,6 +139866,11 @@ ], "showAcceptedNetworkIcons": true }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, "orderInformation": { "amountDetails": { "totalAmount": "21.00", @@ -139259,9 +139880,9 @@ } }, "example3": { - "summary": "Generate Unified Checkout Capture Context (Opt-out of receiving card number prefix)", + "summary": "Generate Unified Checkout Capture Context With Autocheck Enrollment", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], @@ -139269,18 +139890,54 @@ "VISA", "MASTERCARD", "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "ELO" + ], + "allowedPaymentTypes": [ + "GOOGLEPAY", + { + "type": "CLICKTOPAY", + "options": { + "autoCheckEnrollment": true + } + }, + "PANENTRY" + ], + "country": "BR", + "locale": "pt_BR", + "captureMandate": { + "billingType": "FULL", + "requestEmail": true, + "requestPhone": true, + "requestShipping": true, + "shipToCountries": [ + "BR" + ], + "showAcceptedNetworkIcons": true + }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, + "orderInformation": { + "amountDetails": { + "totalAmount": "21.00", + "currency": "USD" + } + } + } + }, + "example4": { + "summary": "Generate Unified Checkout Capture Context (Opt-out of receiving card number prefix)", + "value": { + "clientVersion": "0.28", + "targetOrigins": [ + "https://yourCheckoutPage.com" + ], + "allowedCardNetworks": [ + "VISA", + "MASTERCARD", + "AMEX" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139288,7 +139945,8 @@ "CLICKTOPAY", "GOOGLEPAY", "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139303,6 +139961,11 @@ ], "showAcceptedNetworkIcons": true }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, "orderInformation": { "amountDetails": { "totalAmount": "21.00", @@ -139314,29 +139977,17 @@ } } }, - "example4": { + "example5": { "summary": "Generate Unified Checkout Capture Context passing Billing & Shipping", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "APPLEPAY", @@ -139344,7 +139995,8 @@ "CLICKTOPAY", "GOOGLEPAY", "PANENTRY", - "PAZE" + "PAZE", + "AFTERPAY" ], "country": "US", "locale": "en_US", @@ -139359,6 +140011,11 @@ ], "showAcceptedNetworkIcons": true }, + "completeMandate": { + "type": "PREFER_AUTH", + "decisionManager": true, + "consumerAuthentication": true + }, "orderInformation": { "amountDetails": { "totalAmount": "21.00", @@ -139414,29 +140071,17 @@ } } }, - "example5": { + "example6": { "summary": "Generate Capture Context For Click To Pay Drop-In UI", "value": { - "clientVersion": "0.26", + "clientVersion": "0.28", "targetOrigins": [ "https://yourCheckoutPage.com" ], "allowedCardNetworks": [ "VISA", "MASTERCARD", - "AMEX", - "CARNET", - "CARTESBANCAIRES", - "CUP", - "DINERSCLUB", - "DISCOVER", - "EFTPOS", - "ELO", - "JCB", - "JCREW", - "MADA", - "MAESTRO", - "MEEZA" + "AMEX" ], "allowedPaymentTypes": [ "CLICKTOPAY" diff --git a/generator/cybersource_java_sdk_gen.bat b/generator/cybersource_java_sdk_gen.bat index 3f14a219..dd1bdeae 100644 --- a/generator/cybersource_java_sdk_gen.bat +++ b/generator/cybersource_java_sdk_gen.bat @@ -15,7 +15,7 @@ endlocal java -jar swagger-codegen-cli-2.4.38.jar generate -t cybersource-java-template\libraries\okhttp-gson -i cybersource-rest-spec-java.json -l java -o ../ -c cybersource-java-config.json powershell -Command " Set-Content ..\src\main\java\Api\SecureFileShareApi.java ((get-content ..\src\main\java\Api\SecureFileShareApi.java -raw) -replace '\*_\/_\*;charset=utf-8', '*/*;charset=utf-8') " -powershell -Command " Set-Content ..\src\main\java\Api\DeviceDeAssociationV3Api.java ((get-content ..\src\main\java\Api\DeviceDeAssociationV3Api.java -raw) -replace 'List\.class\.getSimpleName\(\)', 'DeviceDeAssociateV3Request.class.getSimpleName()') " +powershell -Command " Set-Content ..\src\main\java\Api\DeviceDeAssociationApi.java ((get-content ..\src\main\java\Api\DeviceDeAssociationApi.java -raw) -replace 'List\.class\.getSimpleName\(\)', 'DeviceDeAssociateV3Request.class.getSimpleName()') " @REM replace sdkLinks fieldName to links for supporting links field name in request/response body echo "starting of replacing the links keyword in PblPaymentLinksAllGet200Response.java model" powershell -Command " Set-Content ..\src\main\java\Model\PblPaymentLinksAllGet200Response.java ((get-content ..\src\main\java\Model\PblPaymentLinksAllGet200Response.java -raw) -replace '@SerializedName\(\"sdkLinks\"\)', '@SerializedName(\"links\")')" diff --git a/src/main/java/Api/BatchesApi.java b/src/main/java/Api/BatchesApi.java index ede8e946..ae032513 100644 --- a/src/main/java/Api/BatchesApi.java +++ b/src/main/java/Api/BatchesApi.java @@ -29,7 +29,7 @@ import Model.Body; -import Model.InlineResponse2007; +import Model.InlineResponse20010; import Model.InlineResponse2008; import Model.InlineResponse2009; import Model.InlineResponse202; @@ -154,12 +154,12 @@ private okhttp3.Call getBatchReportValidateBeforeCall(String batchId, final Prog * Retrieve a Batch Report * **Get Batch Report**<br>This resource accepts a batch id and returns: - The batch status. - The total number of accepted, rejected, updated records. - The total number of card association responses. - The billable quantities of: - New Account Numbers (NAN) - New Expiry Dates (NED) - Account Closures (ACL) - Contact Card Holders (CCH) - Source record information including token ids, masked card number, expiration dates & card type. - Response record information including response code, reason, token ids, masked card number, expiration dates & card type. * @param batchId Unique identification number assigned to the submitted request. (required) - * @return InlineResponse2009 + * @return InlineResponse20010 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public InlineResponse2009 getBatchReport(String batchId) throws ApiException { + public InlineResponse20010 getBatchReport(String batchId) throws ApiException { logger.info("CALL TO METHOD 'getBatchReport' STARTED"); - ApiResponse resp = getBatchReportWithHttpInfo(batchId); + ApiResponse resp = getBatchReportWithHttpInfo(batchId); logger.info("CALL TO METHOD 'getBatchReport' ENDED"); return resp.getData(); } @@ -168,13 +168,13 @@ public InlineResponse2009 getBatchReport(String batchId) throws ApiException { * Retrieve a Batch Report * **Get Batch Report**<br>This resource accepts a batch id and returns: - The batch status. - The total number of accepted, rejected, updated records. - The total number of card association responses. - The billable quantities of: - New Account Numbers (NAN) - New Expiry Dates (NED) - Account Closures (ACL) - Contact Card Holders (CCH) - Source record information including token ids, masked card number, expiration dates & card type. - Response record information including response code, reason, token ids, masked card number, expiration dates & card type. * @param batchId Unique identification number assigned to the submitted request. (required) - * @return ApiResponse<InlineResponse2009> + * @return ApiResponse<InlineResponse20010> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse getBatchReportWithHttpInfo(String batchId) throws ApiException { + public ApiResponse getBatchReportWithHttpInfo(String batchId) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); okhttp3.Call call = getBatchReportValidateBeforeCall(batchId, null, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return apiClient.execute(call, localVarReturnType); } @@ -186,7 +186,7 @@ public ApiResponse getBatchReportWithHttpInfo(String batchId * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public okhttp3.Call getBatchReportAsync(String batchId, final ApiCallback callback) throws ApiException { + public okhttp3.Call getBatchReportAsync(String batchId, final ApiCallback callback) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); ProgressResponseBody.ProgressListener progressListener = null; @@ -209,7 +209,7 @@ public void onRequestProgress(long bytesWritten, long contentLength, boolean don } okhttp3.Call call = getBatchReportValidateBeforeCall(batchId, progressListener, progressRequestListener); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); apiClient.executeAsync(call, localVarReturnType, callback); return call; } @@ -299,12 +299,12 @@ private okhttp3.Call getBatchStatusValidateBeforeCall(String batchId, final Prog * Retrieve a Batch Status * **Get Batch Status**<br>This resource accepts a batch id and returns: - The batch status. - The total number of accepted, rejected, updated records. - The total number of card association responses. - The billable quantities of: - New Account Numbers (NAN) - New Expiry Dates (NED) - Account Closures (ACL) - Contact Card Holders (CCH) * @param batchId Unique identification number assigned to the submitted request. (required) - * @return InlineResponse2008 + * @return InlineResponse2009 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public InlineResponse2008 getBatchStatus(String batchId) throws ApiException { + public InlineResponse2009 getBatchStatus(String batchId) throws ApiException { logger.info("CALL TO METHOD 'getBatchStatus' STARTED"); - ApiResponse resp = getBatchStatusWithHttpInfo(batchId); + ApiResponse resp = getBatchStatusWithHttpInfo(batchId); logger.info("CALL TO METHOD 'getBatchStatus' ENDED"); return resp.getData(); } @@ -313,13 +313,13 @@ public InlineResponse2008 getBatchStatus(String batchId) throws ApiException { * Retrieve a Batch Status * **Get Batch Status**<br>This resource accepts a batch id and returns: - The batch status. - The total number of accepted, rejected, updated records. - The total number of card association responses. - The billable quantities of: - New Account Numbers (NAN) - New Expiry Dates (NED) - Account Closures (ACL) - Contact Card Holders (CCH) * @param batchId Unique identification number assigned to the submitted request. (required) - * @return ApiResponse<InlineResponse2008> + * @return ApiResponse<InlineResponse2009> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse getBatchStatusWithHttpInfo(String batchId) throws ApiException { + public ApiResponse getBatchStatusWithHttpInfo(String batchId) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); okhttp3.Call call = getBatchStatusValidateBeforeCall(batchId, null, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return apiClient.execute(call, localVarReturnType); } @@ -331,7 +331,7 @@ public ApiResponse getBatchStatusWithHttpInfo(String batchId * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public okhttp3.Call getBatchStatusAsync(String batchId, final ApiCallback callback) throws ApiException { + public okhttp3.Call getBatchStatusAsync(String batchId, final ApiCallback callback) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); ProgressResponseBody.ProgressListener progressListener = null; @@ -354,7 +354,7 @@ public void onRequestProgress(long bytesWritten, long contentLength, boolean don } okhttp3.Call call = getBatchStatusValidateBeforeCall(batchId, progressListener, progressRequestListener); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); apiClient.executeAsync(call, localVarReturnType, callback); return call; } @@ -451,12 +451,12 @@ private okhttp3.Call getBatchesListValidateBeforeCall(Long offset, Long limit, S * @param limit The maximum number that can be returned in the array starting from the offset record in zero-based dataset. (optional, default to 20) * @param fromDate ISO-8601 format: yyyyMMddTHHmmssZ (optional) * @param toDate ISO-8601 format: yyyyMMddTHHmmssZ (optional) - * @return InlineResponse2007 + * @return InlineResponse2008 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public InlineResponse2007 getBatchesList(Long offset, Long limit, String fromDate, String toDate) throws ApiException { + public InlineResponse2008 getBatchesList(Long offset, Long limit, String fromDate, String toDate) throws ApiException { logger.info("CALL TO METHOD 'getBatchesList' STARTED"); - ApiResponse resp = getBatchesListWithHttpInfo(offset, limit, fromDate, toDate); + ApiResponse resp = getBatchesListWithHttpInfo(offset, limit, fromDate, toDate); logger.info("CALL TO METHOD 'getBatchesList' ENDED"); return resp.getData(); } @@ -468,13 +468,13 @@ public InlineResponse2007 getBatchesList(Long offset, Long limit, String fromDat * @param limit The maximum number that can be returned in the array starting from the offset record in zero-based dataset. (optional, default to 20) * @param fromDate ISO-8601 format: yyyyMMddTHHmmssZ (optional) * @param toDate ISO-8601 format: yyyyMMddTHHmmssZ (optional) - * @return ApiResponse<InlineResponse2007> + * @return ApiResponse<InlineResponse2008> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse getBatchesListWithHttpInfo(Long offset, Long limit, String fromDate, String toDate) throws ApiException { + public ApiResponse getBatchesListWithHttpInfo(Long offset, Long limit, String fromDate, String toDate) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); okhttp3.Call call = getBatchesListValidateBeforeCall(offset, limit, fromDate, toDate, null, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return apiClient.execute(call, localVarReturnType); } @@ -489,7 +489,7 @@ public ApiResponse getBatchesListWithHttpInfo(Long offset, L * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public okhttp3.Call getBatchesListAsync(Long offset, Long limit, String fromDate, String toDate, final ApiCallback callback) throws ApiException { + public okhttp3.Call getBatchesListAsync(Long offset, Long limit, String fromDate, String toDate, final ApiCallback callback) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); ProgressResponseBody.ProgressListener progressListener = null; @@ -512,7 +512,7 @@ public void onRequestProgress(long bytesWritten, long contentLength, boolean don } okhttp3.Call call = getBatchesListValidateBeforeCall(offset, limit, fromDate, toDate, progressListener, progressRequestListener); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); apiClient.executeAsync(call, localVarReturnType, callback); return call; } diff --git a/src/main/java/Api/DeviceDeAssociationV3Api.java b/src/main/java/Api/DeviceDeAssociationApi.java similarity index 54% rename from src/main/java/Api/DeviceDeAssociationV3Api.java rename to src/main/java/Api/DeviceDeAssociationApi.java index 4027fd10..da7c91fe 100644 --- a/src/main/java/Api/DeviceDeAssociationV3Api.java +++ b/src/main/java/Api/DeviceDeAssociationApi.java @@ -28,8 +28,9 @@ import java.io.InputStream; +import Model.DeAssociationRequestBody; import Model.DeviceDeAssociateV3Request; -import Model.InlineResponse2005; +import Model.InlineResponse2006; import Model.InlineResponse206; import Model.InlineResponse4008; import Model.InlineResponse401; @@ -49,16 +50,16 @@ import com.cybersource.authsdk.util.mle.MLEUtility; import com.cybersource.authsdk.util.mle.MLEException; -public class DeviceDeAssociationV3Api { - private static Logger logger = LogManager.getLogger(DeviceDeAssociationV3Api.class); +public class DeviceDeAssociationApi { + private static Logger logger = LogManager.getLogger(DeviceDeAssociationApi.class); private ApiClient apiClient; - public DeviceDeAssociationV3Api() { + public DeviceDeAssociationApi() { this(Configuration.getDefaultApiClient()); } - public DeviceDeAssociationV3Api(ApiClient apiClient) { + public DeviceDeAssociationApi(ApiClient apiClient) { this.apiClient = apiClient; } @@ -70,6 +71,143 @@ public void setApiClient(ApiClient apiClient) { this.apiClient = apiClient; } + /** + * Build call for deleteTerminalAssociation + * @param deAssociationRequestBody de association of the deviceId in the request body. (required) + * @param progressListener Progress listener + * @param progressRequestListener Progress request listener + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + */ + public okhttp3.Call deleteTerminalAssociationCall(DeAssociationRequestBody deAssociationRequestBody, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + SdkTracker sdkTracker = new SdkTracker(); + Object localVarPostBody = sdkTracker.insertDeveloperIdTracker(deAssociationRequestBody, DeAssociationRequestBody.class.getSimpleName(), apiClient.merchantConfig.getRunEnvironment(), apiClient.merchantConfig.getDefaultDeveloperId()); + + boolean isMLESupportedByCybsForApi = false; + if (MLEUtility.checkIsMLEForAPI(apiClient.merchantConfig, isMLESupportedByCybsForApi, "deleteTerminalAssociation,deleteTerminalAssociationAsync,deleteTerminalAssociationWithHttpInfo,deleteTerminalAssociationCall")) { + try { + localVarPostBody = MLEUtility.encryptRequestPayload(apiClient.merchantConfig, localVarPostBody); + } catch (MLEException e) { + logger.error("Failed to encrypt request body {}", e.getMessage(), e); + throw new ApiException("Failed to encrypt request body : " + e.getMessage()); + } + } + + // create path and map variables + String localVarPath = "/dms/v2/devices/deassociate"; + + List localVarQueryParams = new ArrayList(); + + Map localVarHeaderParams = new HashMap(); + + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/hal+json;charset=utf-8" + }; + final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) localVarHeaderParams.put("Accept", localVarAccept); + + final String[] localVarContentTypes = { + "application/json;charset=UTF-8" + }; + final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + if(progressListener != null) { + apiClient.getHttpClient().newBuilder().addNetworkInterceptor(new okhttp3.Interceptor() { + @Override + public okhttp3.Response intercept(okhttp3.Interceptor.Chain chain) throws IOException { + okhttp3.Response originalResponse = chain.proceed(chain.request()); + return originalResponse.newBuilder() + .body(new ProgressResponseBody(originalResponse.body(), progressListener)) + .build(); + } + }); + } + + String[] localVarAuthNames = new String[] { }; + return apiClient.buildCall(localVarPath, "PATCH", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteTerminalAssociationValidateBeforeCall(DeAssociationRequestBody deAssociationRequestBody, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + + // verify the required parameter 'deAssociationRequestBody' is set + if (deAssociationRequestBody == null) { + logger.error("Missing the required parameter 'deAssociationRequestBody' when calling deleteTerminalAssociation(Async)"); + throw new ApiException("Missing the required parameter 'deAssociationRequestBody' when calling deleteTerminalAssociation(Async)"); + } + + + okhttp3.Call call = deleteTerminalAssociationCall(deAssociationRequestBody, progressListener, progressRequestListener); + return call; + + + + + + } + + /** + * De-associate a device from merchant or account V2 + * The current association of the device will be removed and will be assigned back to parent in the hierarchy based on internal logic + * @param deAssociationRequestBody de association of the deviceId in the request body. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + */ + public void deleteTerminalAssociation(DeAssociationRequestBody deAssociationRequestBody) throws ApiException { + logger.info("CALL TO METHOD 'deleteTerminalAssociation' STARTED"); + deleteTerminalAssociationWithHttpInfo(deAssociationRequestBody); + + } + + /** + * De-associate a device from merchant or account V2 + * The current association of the device will be removed and will be assigned back to parent in the hierarchy based on internal logic + * @param deAssociationRequestBody de association of the deviceId in the request body. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + */ + public ApiResponse deleteTerminalAssociationWithHttpInfo(DeAssociationRequestBody deAssociationRequestBody) throws ApiException { + this.apiClient.setComputationStartTime(System.nanoTime()); + okhttp3.Call call = deleteTerminalAssociationValidateBeforeCall(deAssociationRequestBody, null, null); + return apiClient.execute(call); + } + + /** + * De-associate a device from merchant or account V2 (asynchronously) + * The current association of the device will be removed and will be assigned back to parent in the hierarchy based on internal logic + * @param deAssociationRequestBody de association of the deviceId in the request body. (required) + * @param callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + */ + public okhttp3.Call deleteTerminalAssociationAsync(DeAssociationRequestBody deAssociationRequestBody, final ApiCallback callback) throws ApiException { + + this.apiClient.setComputationStartTime(System.nanoTime()); + ProgressResponseBody.ProgressListener progressListener = null; + ProgressRequestBody.ProgressRequestListener progressRequestListener = null; + + if (callback != null) { + progressListener = new ProgressResponseBody.ProgressListener() { + @Override + public void update(long bytesRead, long contentLength, boolean done) { + callback.onDownloadProgress(bytesRead, contentLength, done); + } + }; + + progressRequestListener = new ProgressRequestBody.ProgressRequestListener() { + @Override + public void onRequestProgress(long bytesWritten, long contentLength, boolean done) { + callback.onUploadProgress(bytesWritten, contentLength, done); + } + }; + } + + okhttp3.Call call = deleteTerminalAssociationValidateBeforeCall(deAssociationRequestBody, progressListener, progressRequestListener); + apiClient.executeAsync(call, callback); + return call; + } /** * Build call for postDeAssociateV3Terminal * @param deviceDeAssociateV3Request deviceId that has to be de-associated to the destination organizationId. (required) @@ -149,42 +287,42 @@ private okhttp3.Call postDeAssociateV3TerminalValidateBeforeCall(List postDeAssociateV3Terminal(List deviceDeAssociateV3Request) throws ApiException { + public List postDeAssociateV3Terminal(List deviceDeAssociateV3Request) throws ApiException { logger.info("CALL TO METHOD 'postDeAssociateV3Terminal' STARTED"); - ApiResponse> resp = postDeAssociateV3TerminalWithHttpInfo(deviceDeAssociateV3Request); + ApiResponse> resp = postDeAssociateV3TerminalWithHttpInfo(deviceDeAssociateV3Request); logger.info("CALL TO METHOD 'postDeAssociateV3Terminal' ENDED"); return resp.getData(); } /** - * De-associate a device from merchant to account or reseller and from account to reseller V3 + * De-associate a device from merchant to account or reseller and from account to reseller * A device will be de-associated from its current organization and moved up in the hierarchy. The device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user. * @param deviceDeAssociateV3Request deviceId that has to be de-associated to the destination organizationId. (required) - * @return ApiResponse<List<InlineResponse2005>> + * @return ApiResponse<List<InlineResponse2006>> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse> postDeAssociateV3TerminalWithHttpInfo(List deviceDeAssociateV3Request) throws ApiException { + public ApiResponse> postDeAssociateV3TerminalWithHttpInfo(List deviceDeAssociateV3Request) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); okhttp3.Call call = postDeAssociateV3TerminalValidateBeforeCall(deviceDeAssociateV3Request, null, null); - Type localVarReturnType = new TypeToken>(){}.getType(); + Type localVarReturnType = new TypeToken>(){}.getType(); return apiClient.execute(call, localVarReturnType); } /** - * De-associate a device from merchant to account or reseller and from account to reseller V3 (asynchronously) + * De-associate a device from merchant to account or reseller and from account to reseller (asynchronously) * A device will be de-associated from its current organization and moved up in the hierarchy. The device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user. * @param deviceDeAssociateV3Request deviceId that has to be de-associated to the destination organizationId. (required) * @param callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public okhttp3.Call postDeAssociateV3TerminalAsync(List deviceDeAssociateV3Request, final ApiCallback> callback) throws ApiException { + public okhttp3.Call postDeAssociateV3TerminalAsync(List deviceDeAssociateV3Request, final ApiCallback> callback) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); ProgressResponseBody.ProgressListener progressListener = null; @@ -207,7 +345,7 @@ public void onRequestProgress(long bytesWritten, long contentLength, boolean don } okhttp3.Call call = postDeAssociateV3TerminalValidateBeforeCall(deviceDeAssociateV3Request, progressListener, progressRequestListener); - Type localVarReturnType = new TypeToken>(){}.getType(); + Type localVarReturnType = new TypeToken>(){}.getType(); apiClient.executeAsync(call, localVarReturnType, callback); return call; } diff --git a/src/main/java/Api/DeviceSearchApi.java b/src/main/java/Api/DeviceSearchApi.java index de12238b..f4af7aa7 100644 --- a/src/main/java/Api/DeviceSearchApi.java +++ b/src/main/java/Api/DeviceSearchApi.java @@ -28,12 +28,14 @@ import java.io.InputStream; -import Model.InlineResponse2006; +import Model.InlineResponse2005; +import Model.InlineResponse2007; import Model.InlineResponse4008; import Model.InlineResponse401; import Model.InlineResponse4032; import Model.InlineResponse4043; import Model.InlineResponse5003; +import Model.PostDeviceSearchRequest; import Model.PostDeviceSearchRequestV3; import java.lang.reflect.Type; @@ -69,6 +71,147 @@ public void setApiClient(ApiClient apiClient) { this.apiClient = apiClient; } + /** + * Build call for postSearchQuery + * @param postDeviceSearchRequest (required) + * @param progressListener Progress listener + * @param progressRequestListener Progress request listener + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + */ + public okhttp3.Call postSearchQueryCall(PostDeviceSearchRequest postDeviceSearchRequest, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + SdkTracker sdkTracker = new SdkTracker(); + Object localVarPostBody = sdkTracker.insertDeveloperIdTracker(postDeviceSearchRequest, PostDeviceSearchRequest.class.getSimpleName(), apiClient.merchantConfig.getRunEnvironment(), apiClient.merchantConfig.getDefaultDeveloperId()); + + boolean isMLESupportedByCybsForApi = false; + if (MLEUtility.checkIsMLEForAPI(apiClient.merchantConfig, isMLESupportedByCybsForApi, "postSearchQuery,postSearchQueryAsync,postSearchQueryWithHttpInfo,postSearchQueryCall")) { + try { + localVarPostBody = MLEUtility.encryptRequestPayload(apiClient.merchantConfig, localVarPostBody); + } catch (MLEException e) { + logger.error("Failed to encrypt request body {}", e.getMessage(), e); + throw new ApiException("Failed to encrypt request body : " + e.getMessage()); + } + } + + // create path and map variables + String localVarPath = "/dms/v2/devices/search"; + + List localVarQueryParams = new ArrayList(); + + Map localVarHeaderParams = new HashMap(); + + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json;charset=UTF-8" + }; + final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) localVarHeaderParams.put("Accept", localVarAccept); + + final String[] localVarContentTypes = { + "application/json;charset=UTF-8" + }; + final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + if(progressListener != null) { + apiClient.getHttpClient().newBuilder().addNetworkInterceptor(new okhttp3.Interceptor() { + @Override + public okhttp3.Response intercept(okhttp3.Interceptor.Chain chain) throws IOException { + okhttp3.Response originalResponse = chain.proceed(chain.request()); + return originalResponse.newBuilder() + .body(new ProgressResponseBody(originalResponse.body(), progressListener)) + .build(); + } + }); + } + + String[] localVarAuthNames = new String[] { }; + return apiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postSearchQueryValidateBeforeCall(PostDeviceSearchRequest postDeviceSearchRequest, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + + // verify the required parameter 'postDeviceSearchRequest' is set + if (postDeviceSearchRequest == null) { + logger.error("Missing the required parameter 'postDeviceSearchRequest' when calling postSearchQuery(Async)"); + throw new ApiException("Missing the required parameter 'postDeviceSearchRequest' when calling postSearchQuery(Async)"); + } + + + okhttp3.Call call = postSearchQueryCall(postDeviceSearchRequest, progressListener, progressRequestListener); + return call; + + + + + + } + + /** + * Retrieve List of Devices for a given search query V2 + * Retrieves list of terminals in paginated format. + * @param postDeviceSearchRequest (required) + * @return InlineResponse2005 + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + */ + public InlineResponse2005 postSearchQuery(PostDeviceSearchRequest postDeviceSearchRequest) throws ApiException { + logger.info("CALL TO METHOD 'postSearchQuery' STARTED"); + ApiResponse resp = postSearchQueryWithHttpInfo(postDeviceSearchRequest); + logger.info("CALL TO METHOD 'postSearchQuery' ENDED"); + return resp.getData(); + } + + /** + * Retrieve List of Devices for a given search query V2 + * Retrieves list of terminals in paginated format. + * @param postDeviceSearchRequest (required) + * @return ApiResponse<InlineResponse2005> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + */ + public ApiResponse postSearchQueryWithHttpInfo(PostDeviceSearchRequest postDeviceSearchRequest) throws ApiException { + this.apiClient.setComputationStartTime(System.nanoTime()); + okhttp3.Call call = postSearchQueryValidateBeforeCall(postDeviceSearchRequest, null, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return apiClient.execute(call, localVarReturnType); + } + + /** + * Retrieve List of Devices for a given search query V2 (asynchronously) + * Retrieves list of terminals in paginated format. + * @param postDeviceSearchRequest (required) + * @param callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + */ + public okhttp3.Call postSearchQueryAsync(PostDeviceSearchRequest postDeviceSearchRequest, final ApiCallback callback) throws ApiException { + + this.apiClient.setComputationStartTime(System.nanoTime()); + ProgressResponseBody.ProgressListener progressListener = null; + ProgressRequestBody.ProgressRequestListener progressRequestListener = null; + + if (callback != null) { + progressListener = new ProgressResponseBody.ProgressListener() { + @Override + public void update(long bytesRead, long contentLength, boolean done) { + callback.onDownloadProgress(bytesRead, contentLength, done); + } + }; + + progressRequestListener = new ProgressRequestBody.ProgressRequestListener() { + @Override + public void onRequestProgress(long bytesWritten, long contentLength, boolean done) { + callback.onUploadProgress(bytesWritten, contentLength, done); + } + }; + } + + okhttp3.Call call = postSearchQueryValidateBeforeCall(postDeviceSearchRequest, progressListener, progressRequestListener); + Type localVarReturnType = new TypeToken(){}.getType(); + apiClient.executeAsync(call, localVarReturnType, callback); + return call; + } /** * Build call for postSearchQueryV3 * @param postDeviceSearchRequestV3 (required) @@ -148,42 +291,42 @@ private okhttp3.Call postSearchQueryV3ValidateBeforeCall(PostDeviceSearchRequest } /** - * Retrieve List of Devices for a given search query V3 + * Retrieve List of Devices for a given search query * Search for devices matching a given search query. The search query supports serialNumber, readerId, terminalId, status, statusChangeReason or organizationId Matching results are paginated. * @param postDeviceSearchRequestV3 (required) - * @return InlineResponse2006 + * @return InlineResponse2007 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public InlineResponse2006 postSearchQueryV3(PostDeviceSearchRequestV3 postDeviceSearchRequestV3) throws ApiException { + public InlineResponse2007 postSearchQueryV3(PostDeviceSearchRequestV3 postDeviceSearchRequestV3) throws ApiException { logger.info("CALL TO METHOD 'postSearchQueryV3' STARTED"); - ApiResponse resp = postSearchQueryV3WithHttpInfo(postDeviceSearchRequestV3); + ApiResponse resp = postSearchQueryV3WithHttpInfo(postDeviceSearchRequestV3); logger.info("CALL TO METHOD 'postSearchQueryV3' ENDED"); return resp.getData(); } /** - * Retrieve List of Devices for a given search query V3 + * Retrieve List of Devices for a given search query * Search for devices matching a given search query. The search query supports serialNumber, readerId, terminalId, status, statusChangeReason or organizationId Matching results are paginated. * @param postDeviceSearchRequestV3 (required) - * @return ApiResponse<InlineResponse2006> + * @return ApiResponse<InlineResponse2007> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse postSearchQueryV3WithHttpInfo(PostDeviceSearchRequestV3 postDeviceSearchRequestV3) throws ApiException { + public ApiResponse postSearchQueryV3WithHttpInfo(PostDeviceSearchRequestV3 postDeviceSearchRequestV3) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); okhttp3.Call call = postSearchQueryV3ValidateBeforeCall(postDeviceSearchRequestV3, null, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return apiClient.execute(call, localVarReturnType); } /** - * Retrieve List of Devices for a given search query V3 (asynchronously) + * Retrieve List of Devices for a given search query (asynchronously) * Search for devices matching a given search query. The search query supports serialNumber, readerId, terminalId, status, statusChangeReason or organizationId Matching results are paginated. * @param postDeviceSearchRequestV3 (required) * @param callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public okhttp3.Call postSearchQueryV3Async(PostDeviceSearchRequestV3 postDeviceSearchRequestV3, final ApiCallback callback) throws ApiException { + public okhttp3.Call postSearchQueryV3Async(PostDeviceSearchRequestV3 postDeviceSearchRequestV3, final ApiCallback callback) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); ProgressResponseBody.ProgressListener progressListener = null; @@ -206,7 +349,7 @@ public void onRequestProgress(long bytesWritten, long contentLength, boolean don } okhttp3.Call call = postSearchQueryV3ValidateBeforeCall(postDeviceSearchRequestV3, progressListener, progressRequestListener); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); apiClient.executeAsync(call, localVarReturnType, callback); return call; } diff --git a/src/main/java/Api/SubscriptionsApi.java b/src/main/java/Api/SubscriptionsApi.java index e9481e0b..d121804c 100644 --- a/src/main/java/Api/SubscriptionsApi.java +++ b/src/main/java/Api/SubscriptionsApi.java @@ -79,12 +79,13 @@ public void setApiClient(ApiClient apiClient) { /** * Build call for activateSubscription * @param id Subscription Id (required) + * @param processSkippedPayments Indicates if skipped payments should be processed from the period when the subscription was suspended. By default, this is set to true. (optional, default to true) * @param progressListener Progress listener * @param progressRequestListener Progress request listener * @return Call to execute * @throws ApiException If fail to serialize the request body object */ - public okhttp3.Call activateSubscriptionCall(String id, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + public okhttp3.Call activateSubscriptionCall(String id, Boolean processSkippedPayments, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { SdkTracker sdkTracker = new SdkTracker(); Object localVarPostBody = null; if ("POST".equalsIgnoreCase("POST")) { @@ -106,6 +107,8 @@ public okhttp3.Call activateSubscriptionCall(String id, final ProgressResponseBo .replaceAll("\\{" + "id" + "\\}", apiClient.escapeString(id.toString())); List localVarQueryParams = new ArrayList(); + if (processSkippedPayments != null) + localVarQueryParams.addAll(apiClient.parameterToPairs("", "processSkippedPayments", processSkippedPayments)); Map localVarHeaderParams = new HashMap(); @@ -140,7 +143,7 @@ public okhttp3.Response intercept(okhttp3.Interceptor.Chain chain) throws IOExce } @SuppressWarnings("rawtypes") - private okhttp3.Call activateSubscriptionValidateBeforeCall(String id, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + private okhttp3.Call activateSubscriptionValidateBeforeCall(String id, Boolean processSkippedPayments, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { // verify the required parameter 'id' is set if (id == null) { @@ -149,7 +152,7 @@ private okhttp3.Call activateSubscriptionValidateBeforeCall(String id, final Pro } - okhttp3.Call call = activateSubscriptionCall(id, progressListener, progressRequestListener); + okhttp3.Call call = activateSubscriptionCall(id, processSkippedPayments, progressListener, progressRequestListener); return call; @@ -160,41 +163,44 @@ private okhttp3.Call activateSubscriptionValidateBeforeCall(String id, final Pro /** * Activate a Subscription - * Activate a `CANCELLED` Or `SUSPENDED` Subscription + * Activate a `SUSPENDED` Subscription * @param id Subscription Id (required) + * @param processSkippedPayments Indicates if skipped payments should be processed from the period when the subscription was suspended. By default, this is set to true. (optional, default to true) * @return ActivateSubscriptionResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ActivateSubscriptionResponse activateSubscription(String id) throws ApiException { + public ActivateSubscriptionResponse activateSubscription(String id, Boolean processSkippedPayments) throws ApiException { logger.info("CALL TO METHOD 'activateSubscription' STARTED"); - ApiResponse resp = activateSubscriptionWithHttpInfo(id); + ApiResponse resp = activateSubscriptionWithHttpInfo(id, processSkippedPayments); logger.info("CALL TO METHOD 'activateSubscription' ENDED"); return resp.getData(); } /** * Activate a Subscription - * Activate a `CANCELLED` Or `SUSPENDED` Subscription + * Activate a `SUSPENDED` Subscription * @param id Subscription Id (required) + * @param processSkippedPayments Indicates if skipped payments should be processed from the period when the subscription was suspended. By default, this is set to true. (optional, default to true) * @return ApiResponse<ActivateSubscriptionResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse activateSubscriptionWithHttpInfo(String id) throws ApiException { + public ApiResponse activateSubscriptionWithHttpInfo(String id, Boolean processSkippedPayments) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); - okhttp3.Call call = activateSubscriptionValidateBeforeCall(id, null, null); + okhttp3.Call call = activateSubscriptionValidateBeforeCall(id, processSkippedPayments, null, null); Type localVarReturnType = new TypeToken(){}.getType(); return apiClient.execute(call, localVarReturnType); } /** * Activate a Subscription (asynchronously) - * Activate a `CANCELLED` Or `SUSPENDED` Subscription + * Activate a `SUSPENDED` Subscription * @param id Subscription Id (required) + * @param processSkippedPayments Indicates if skipped payments should be processed from the period when the subscription was suspended. By default, this is set to true. (optional, default to true) * @param callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public okhttp3.Call activateSubscriptionAsync(String id, final ApiCallback callback) throws ApiException { + public okhttp3.Call activateSubscriptionAsync(String id, Boolean processSkippedPayments, final ApiCallback callback) throws ApiException { this.apiClient.setComputationStartTime(System.nanoTime()); ProgressResponseBody.ProgressListener progressListener = null; @@ -216,7 +222,7 @@ public void onRequestProgress(long bytesWritten, long contentLength, boolean don }; } - okhttp3.Call call = activateSubscriptionValidateBeforeCall(id, progressListener, progressRequestListener); + okhttp3.Call call = activateSubscriptionValidateBeforeCall(id, processSkippedPayments, progressListener, progressRequestListener); Type localVarReturnType = new TypeToken(){}.getType(); apiClient.executeAsync(call, localVarReturnType, callback); return call; diff --git a/src/main/java/Invokers/ApiClient.java b/src/main/java/Invokers/ApiClient.java index b7d6a6bb..e365b1d0 100644 --- a/src/main/java/Invokers/ApiClient.java +++ b/src/main/java/Invokers/ApiClient.java @@ -959,8 +959,8 @@ public String sanitizeFilename(String filename) { * @return True if the given MIME is JSON, false otherwise. */ public boolean isJsonMime(String mime) { - String jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"; - return mime != null && (mime.matches(jsonMime) || mime.equalsIgnoreCase("application/json-patch+json")); + String jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(.*)?$"; + return mime != null && (mime.matches(jsonMime) || mime.equalsIgnoreCase("application/json-patch+json") || mime.equalsIgnoreCase("application/json") || mime.equalsIgnoreCase("application/hal+json")); } /** @@ -1451,6 +1451,8 @@ public void callAuthenticationHeader(String method, String path, RequestBody req if (versionInfo != null && !versionInfo.isEmpty()) { requestHeaderMap.put("v-c-client-id", "cybs-rest-sdk-java-" + versionInfo); + } else { + requestHeaderMap.put("v-c-client-id", "cybs-rest-sdk-java-VERSIONUNKNOWN"); } } catch (ConfigException | IOException e) { diff --git a/src/main/java/Model/DeAssociationRequestBody.java b/src/main/java/Model/DeAssociationRequestBody.java new file mode 100644 index 00000000..734ebdf4 --- /dev/null +++ b/src/main/java/Model/DeAssociationRequestBody.java @@ -0,0 +1,94 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * DeAssociationRequestBody + */ + +public class DeAssociationRequestBody { + @SerializedName("deviceId") + private String deviceId = null; + + public DeAssociationRequestBody deviceId(String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * UUID of the device which needs to be de-associated + * @return deviceId + **/ + @ApiModelProperty(value = "UUID of the device which needs to be de-associated") + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeAssociationRequestBody deAssociationRequestBody = (DeAssociationRequestBody) o; + return Objects.equals(this.deviceId, deAssociationRequestBody.deviceId); + } + + @Override + public int hashCode() { + return Objects.hash(deviceId); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeAssociationRequestBody {\n"); + + if (deviceId != null) sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/GenerateCaptureContextRequest.java b/src/main/java/Model/GenerateCaptureContextRequest.java index 1284f83b..b2e60e3c 100644 --- a/src/main/java/Model/GenerateCaptureContextRequest.java +++ b/src/main/java/Model/GenerateCaptureContextRequest.java @@ -106,10 +106,10 @@ public GenerateCaptureContextRequest addAllowedCardNetworksItem(String allowedCa } /** - * The list of card networks you want to use for this Microform transaction. Microform currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA **Important:** - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request. - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request. - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request. + * The list of card networks you want to use for this Microform transaction. Microform currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA - PAYPAK **Important:** - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request. - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request. - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request. * @return allowedCardNetworks **/ - @ApiModelProperty(value = "The list of card networks you want to use for this Microform transaction. Microform currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA **Important:** - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request. - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request. - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request. ") + @ApiModelProperty(value = "The list of card networks you want to use for this Microform transaction. Microform currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA - PAYPAK **Important:** - When integrating Microform (Card) at least one card network should be specified in the allowedCardNetworks field in the capture context request. - When integrating Microform (ACH/eCheck) the allowedCardNetworks field is not required in the capture context request. - When integrating both Microform (Card) and Microform (ACH/eCheck) at least one card network should be specified in the allowedCardNetworks field in the capture context request. ") public List getAllowedCardNetworks() { return allowedCardNetworks; } diff --git a/src/main/java/Model/GenerateUnifiedCheckoutCaptureContextRequest.java b/src/main/java/Model/GenerateUnifiedCheckoutCaptureContextRequest.java index 83415278..b24aa588 100644 --- a/src/main/java/Model/GenerateUnifiedCheckoutCaptureContextRequest.java +++ b/src/main/java/Model/GenerateUnifiedCheckoutCaptureContextRequest.java @@ -123,10 +123,10 @@ public GenerateUnifiedCheckoutCaptureContextRequest addAllowedCardNetworksItem(S } /** - * The list of card networks you want to use for this Unified Checkout transaction. Unified Checkout currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA + * The list of card networks you want to use for this Unified Checkout transaction. Unified Checkout currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA - PAYPAK * @return allowedCardNetworks **/ - @ApiModelProperty(value = "The list of card networks you want to use for this Unified Checkout transaction. Unified Checkout currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA ") + @ApiModelProperty(value = "The list of card networks you want to use for this Unified Checkout transaction. Unified Checkout currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA - PAYPAK ") public List getAllowedCardNetworks() { return allowedCardNetworks; } @@ -149,10 +149,10 @@ public GenerateUnifiedCheckoutCaptureContextRequest addAllowedPaymentTypesItem(S } /** - * The payment types that are allowed for the merchant. Possible values when launching Unified Checkout: - APPLEPAY - CHECK - CLICKTOPAY - GOOGLEPAY - PANENTRY - PAZE <br><br> Possible values when launching Click To Pay Drop-In UI: - CLICKTOPAY <br><br> **Important:** - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards. - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester. - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.<br><br> **Managing Google Pay Authentication Types** When you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay. + * The payment types that are allowed for the merchant. Possible values when launching Unified Checkout: - APPLEPAY - CHECK - CLICKTOPAY - GOOGLEPAY - PANENTRY - PAZE <br><br> Unified Checkout also supports the following Alternative Payments: - AFTERPAY<br><br> Possible values when launching Click To Pay Drop-In UI: - CLICKTOPAY <br><br> **Important:** - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards. - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester. - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.<br><br> **Managing Google Pay Authentication Types** When you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay.<br><br> **Managing Google Pay Authentication Types** Where Click to Pay is the payment type selected by the customer and the customer manually enters their card, the option to enroll their card in Click to Pay will be auto-checked if this field is set to \"true\". This is only available where the merchant and cardholder are based in the following countries and the billing type is set to \"FULL\" or \"PARTIAL\". - UAE - Argentina - Brazil - Chile - Colombia - Kuwait - Mexico - Peru - Qatar - Saudi Arabia - Ukraine - South Africa<br><br> If false, this is not present or not supported in the market. Enrollment in Click to Pay is not checked for the customer when completing manual card entry. * @return allowedPaymentTypes **/ - @ApiModelProperty(value = "The payment types that are allowed for the merchant. Possible values when launching Unified Checkout: - APPLEPAY - CHECK - CLICKTOPAY - GOOGLEPAY - PANENTRY - PAZE

Possible values when launching Click To Pay Drop-In UI: - CLICKTOPAY

**Important:** - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards. - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester. - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.

**Managing Google Pay Authentication Types** When you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay. ") + @ApiModelProperty(value = "The payment types that are allowed for the merchant. Possible values when launching Unified Checkout: - APPLEPAY - CHECK - CLICKTOPAY - GOOGLEPAY - PANENTRY - PAZE

Unified Checkout also supports the following Alternative Payments: - AFTERPAY

Possible values when launching Click To Pay Drop-In UI: - CLICKTOPAY

**Important:** - CLICKTOPAY only available for Visa, Mastercard and AMEX for saved cards. - Visa and Mastercard will look to tokenize using network tokenization for all Click to Pay requests. Click to Pay uses Click to Pay token requester IDs and not the merchant's existing token requester. - Apple Pay, Google Pay, Check, and Paze can be used independently without requiring PAN entry in the allowedPaymentTypes field.

**Managing Google Pay Authentication Types** When you enable Google Pay on Unified Checkout you can specify optional parameters that define the types of card authentication you receive from Google Pay.

**Managing Google Pay Authentication Types** Where Click to Pay is the payment type selected by the customer and the customer manually enters their card, the option to enroll their card in Click to Pay will be auto-checked if this field is set to \"true\". This is only available where the merchant and cardholder are based in the following countries and the billing type is set to \"FULL\" or \"PARTIAL\". - UAE - Argentina - Brazil - Chile - Colombia - Kuwait - Mexico - Peru - Qatar - Saudi Arabia - Ukraine - South Africa

If false, this is not present or not supported in the market. Enrollment in Click to Pay is not checked for the customer when completing manual card entry. ") public List getAllowedPaymentTypes() { return allowedPaymentTypes; } diff --git a/src/main/java/Model/GetSubscriptionResponse.java b/src/main/java/Model/GetSubscriptionResponse.java index 6cf7e506..6b64e25a 100644 --- a/src/main/java/Model/GetSubscriptionResponse.java +++ b/src/main/java/Model/GetSubscriptionResponse.java @@ -20,6 +20,7 @@ import Model.GetAllSubscriptionsResponsePaymentInformation; import Model.GetAllSubscriptionsResponsePlanInformation; import Model.GetAllSubscriptionsResponseSubscriptionInformation; +import Model.GetSubscriptionResponseReactivationInformation; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -55,6 +56,9 @@ public class GetSubscriptionResponse { @SerializedName("orderInformation") private GetAllSubscriptionsResponseOrderInformation orderInformation = null; + @SerializedName("reactivationInformation") + private GetSubscriptionResponseReactivationInformation reactivationInformation = null; + public GetSubscriptionResponse links(GetAllSubscriptionsResponseLinks links) { this.links = links; return this; @@ -181,6 +185,24 @@ public void setOrderInformation(GetAllSubscriptionsResponseOrderInformation orde this.orderInformation = orderInformation; } + public GetSubscriptionResponse reactivationInformation(GetSubscriptionResponseReactivationInformation reactivationInformation) { + this.reactivationInformation = reactivationInformation; + return this; + } + + /** + * Get reactivationInformation + * @return reactivationInformation + **/ + @ApiModelProperty(value = "") + public GetSubscriptionResponseReactivationInformation getReactivationInformation() { + return reactivationInformation; + } + + public void setReactivationInformation(GetSubscriptionResponseReactivationInformation reactivationInformation) { + this.reactivationInformation = reactivationInformation; + } + @Override public boolean equals(java.lang.Object o) { @@ -197,12 +219,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.planInformation, getSubscriptionResponse.planInformation) && Objects.equals(this.subscriptionInformation, getSubscriptionResponse.subscriptionInformation) && Objects.equals(this.paymentInformation, getSubscriptionResponse.paymentInformation) && - Objects.equals(this.orderInformation, getSubscriptionResponse.orderInformation); + Objects.equals(this.orderInformation, getSubscriptionResponse.orderInformation) && + Objects.equals(this.reactivationInformation, getSubscriptionResponse.reactivationInformation); } @Override public int hashCode() { - return Objects.hash(links, id, submitTimeUtc, planInformation, subscriptionInformation, paymentInformation, orderInformation); + return Objects.hash(links, id, submitTimeUtc, planInformation, subscriptionInformation, paymentInformation, orderInformation, reactivationInformation); } @@ -218,6 +241,7 @@ public String toString() { if (subscriptionInformation != null) sb.append(" subscriptionInformation: ").append(toIndentedString(subscriptionInformation)).append("\n"); if (paymentInformation != null) sb.append(" paymentInformation: ").append(toIndentedString(paymentInformation)).append("\n"); if (orderInformation != null) sb.append(" orderInformation: ").append(toIndentedString(orderInformation)).append("\n"); + if (reactivationInformation != null) sb.append(" reactivationInformation: ").append(toIndentedString(reactivationInformation)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/Model/GetSubscriptionResponseReactivationInformation.java b/src/main/java/Model/GetSubscriptionResponseReactivationInformation.java new file mode 100644 index 00000000..7b04a4c2 --- /dev/null +++ b/src/main/java/Model/GetSubscriptionResponseReactivationInformation.java @@ -0,0 +1,117 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * GetSubscriptionResponseReactivationInformation + */ + +public class GetSubscriptionResponseReactivationInformation { + @SerializedName("skippedPaymentsCount") + private String skippedPaymentsCount = null; + + @SerializedName("skippedPaymentsTotalAmount") + private String skippedPaymentsTotalAmount = null; + + public GetSubscriptionResponseReactivationInformation skippedPaymentsCount(String skippedPaymentsCount) { + this.skippedPaymentsCount = skippedPaymentsCount; + return this; + } + + /** + * Number of payments that should have occurred while the subscription was in a suspended status. + * @return skippedPaymentsCount + **/ + @ApiModelProperty(value = "Number of payments that should have occurred while the subscription was in a suspended status. ") + public String getSkippedPaymentsCount() { + return skippedPaymentsCount; + } + + public void setSkippedPaymentsCount(String skippedPaymentsCount) { + this.skippedPaymentsCount = skippedPaymentsCount; + } + + public GetSubscriptionResponseReactivationInformation skippedPaymentsTotalAmount(String skippedPaymentsTotalAmount) { + this.skippedPaymentsTotalAmount = skippedPaymentsTotalAmount; + return this; + } + + /** + * Total amount that will be charged upon reactivation if `processSkippedPayments` is set to `true`. + * @return skippedPaymentsTotalAmount + **/ + @ApiModelProperty(value = "Total amount that will be charged upon reactivation if `processSkippedPayments` is set to `true`. ") + public String getSkippedPaymentsTotalAmount() { + return skippedPaymentsTotalAmount; + } + + public void setSkippedPaymentsTotalAmount(String skippedPaymentsTotalAmount) { + this.skippedPaymentsTotalAmount = skippedPaymentsTotalAmount; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetSubscriptionResponseReactivationInformation getSubscriptionResponseReactivationInformation = (GetSubscriptionResponseReactivationInformation) o; + return Objects.equals(this.skippedPaymentsCount, getSubscriptionResponseReactivationInformation.skippedPaymentsCount) && + Objects.equals(this.skippedPaymentsTotalAmount, getSubscriptionResponseReactivationInformation.skippedPaymentsTotalAmount); + } + + @Override + public int hashCode() { + return Objects.hash(skippedPaymentsCount, skippedPaymentsTotalAmount); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetSubscriptionResponseReactivationInformation {\n"); + + if (skippedPaymentsCount != null) sb.append(" skippedPaymentsCount: ").append(toIndentedString(skippedPaymentsCount)).append("\n"); + if (skippedPaymentsTotalAmount != null) sb.append(" skippedPaymentsTotalAmount: ").append(toIndentedString(skippedPaymentsTotalAmount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/InlineResponse20010.java b/src/main/java/Model/InlineResponse20010.java new file mode 100644 index 00000000..8201b32c --- /dev/null +++ b/src/main/java/Model/InlineResponse20010.java @@ -0,0 +1,314 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import Model.InlineResponse20010Records; +import Model.InlineResponse2008EmbeddedTotals; +import Model.InlineResponse2009Billing; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * InlineResponse20010 + */ + +public class InlineResponse20010 { + @SerializedName("version") + private String version = null; + + @SerializedName("reportCreatedDate") + private String reportCreatedDate = null; + + @SerializedName("batchId") + private String batchId = null; + + @SerializedName("batchSource") + private String batchSource = null; + + @SerializedName("batchCaEndpoints") + private String batchCaEndpoints = null; + + @SerializedName("batchCreatedDate") + private String batchCreatedDate = null; + + @SerializedName("merchantReference") + private String merchantReference = null; + + @SerializedName("totals") + private InlineResponse2008EmbeddedTotals totals = null; + + @SerializedName("billing") + private InlineResponse2009Billing billing = null; + + @SerializedName("records") + private List records = null; + + public InlineResponse20010 version(String version) { + this.version = version; + return this; + } + + /** + * Get version + * @return version + **/ + @ApiModelProperty(example = "1.0", value = "") + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public InlineResponse20010 reportCreatedDate(String reportCreatedDate) { + this.reportCreatedDate = reportCreatedDate; + return this; + } + + /** + * ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ + * @return reportCreatedDate + **/ + @ApiModelProperty(example = "2018-05-22T14.38.57Z", value = "ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ") + public String getReportCreatedDate() { + return reportCreatedDate; + } + + public void setReportCreatedDate(String reportCreatedDate) { + this.reportCreatedDate = reportCreatedDate; + } + + public InlineResponse20010 batchId(String batchId) { + this.batchId = batchId; + return this; + } + + /** + * Unique identification number assigned to the submitted request. + * @return batchId + **/ + @ApiModelProperty(example = "16188390061150001062041064", value = "Unique identification number assigned to the submitted request.") + public String getBatchId() { + return batchId; + } + + public void setBatchId(String batchId) { + this.batchId = batchId; + } + + public InlineResponse20010 batchSource(String batchSource) { + this.batchSource = batchSource; + return this; + } + + /** + * Valid Values: * SCHEDULER * TOKEN_API * CREDIT_CARD_FILE_UPLOAD * AMEX_REGSITRY * AMEX_REGISTRY_API * AMEX_MAINTENANCE + * @return batchSource + **/ + @ApiModelProperty(value = "Valid Values: * SCHEDULER * TOKEN_API * CREDIT_CARD_FILE_UPLOAD * AMEX_REGSITRY * AMEX_REGISTRY_API * AMEX_MAINTENANCE ") + public String getBatchSource() { + return batchSource; + } + + public void setBatchSource(String batchSource) { + this.batchSource = batchSource; + } + + public InlineResponse20010 batchCaEndpoints(String batchCaEndpoints) { + this.batchCaEndpoints = batchCaEndpoints; + return this; + } + + /** + * Get batchCaEndpoints + * @return batchCaEndpoints + **/ + @ApiModelProperty(example = "VISA,MASTERCARD", value = "") + public String getBatchCaEndpoints() { + return batchCaEndpoints; + } + + public void setBatchCaEndpoints(String batchCaEndpoints) { + this.batchCaEndpoints = batchCaEndpoints; + } + + public InlineResponse20010 batchCreatedDate(String batchCreatedDate) { + this.batchCreatedDate = batchCreatedDate; + return this; + } + + /** + * ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ + * @return batchCreatedDate + **/ + @ApiModelProperty(example = "2018-05-22T14.38.57Z", value = "ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ") + public String getBatchCreatedDate() { + return batchCreatedDate; + } + + public void setBatchCreatedDate(String batchCreatedDate) { + this.batchCreatedDate = batchCreatedDate; + } + + public InlineResponse20010 merchantReference(String merchantReference) { + this.merchantReference = merchantReference; + return this; + } + + /** + * Reference used by merchant to identify batch. + * @return merchantReference + **/ + @ApiModelProperty(example = "TC50171_3", value = "Reference used by merchant to identify batch.") + public String getMerchantReference() { + return merchantReference; + } + + public void setMerchantReference(String merchantReference) { + this.merchantReference = merchantReference; + } + + public InlineResponse20010 totals(InlineResponse2008EmbeddedTotals totals) { + this.totals = totals; + return this; + } + + /** + * Get totals + * @return totals + **/ + @ApiModelProperty(value = "") + public InlineResponse2008EmbeddedTotals getTotals() { + return totals; + } + + public void setTotals(InlineResponse2008EmbeddedTotals totals) { + this.totals = totals; + } + + public InlineResponse20010 billing(InlineResponse2009Billing billing) { + this.billing = billing; + return this; + } + + /** + * Get billing + * @return billing + **/ + @ApiModelProperty(value = "") + public InlineResponse2009Billing getBilling() { + return billing; + } + + public void setBilling(InlineResponse2009Billing billing) { + this.billing = billing; + } + + public InlineResponse20010 records(List records) { + this.records = records; + return this; + } + + public InlineResponse20010 addRecordsItem(InlineResponse20010Records recordsItem) { + if (this.records == null) { + this.records = new ArrayList(); + } + this.records.add(recordsItem); + return this; + } + + /** + * Get records + * @return records + **/ + @ApiModelProperty(value = "") + public List getRecords() { + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InlineResponse20010 inlineResponse20010 = (InlineResponse20010) o; + return Objects.equals(this.version, inlineResponse20010.version) && + Objects.equals(this.reportCreatedDate, inlineResponse20010.reportCreatedDate) && + Objects.equals(this.batchId, inlineResponse20010.batchId) && + Objects.equals(this.batchSource, inlineResponse20010.batchSource) && + Objects.equals(this.batchCaEndpoints, inlineResponse20010.batchCaEndpoints) && + Objects.equals(this.batchCreatedDate, inlineResponse20010.batchCreatedDate) && + Objects.equals(this.merchantReference, inlineResponse20010.merchantReference) && + Objects.equals(this.totals, inlineResponse20010.totals) && + Objects.equals(this.billing, inlineResponse20010.billing) && + Objects.equals(this.records, inlineResponse20010.records); + } + + @Override + public int hashCode() { + return Objects.hash(version, reportCreatedDate, batchId, batchSource, batchCaEndpoints, batchCreatedDate, merchantReference, totals, billing, records); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InlineResponse20010 {\n"); + + if (version != null) sb.append(" version: ").append(toIndentedString(version)).append("\n"); + if (reportCreatedDate != null) sb.append(" reportCreatedDate: ").append(toIndentedString(reportCreatedDate)).append("\n"); + if (batchId != null) sb.append(" batchId: ").append(toIndentedString(batchId)).append("\n"); + if (batchSource != null) sb.append(" batchSource: ").append(toIndentedString(batchSource)).append("\n"); + if (batchCaEndpoints != null) sb.append(" batchCaEndpoints: ").append(toIndentedString(batchCaEndpoints)).append("\n"); + if (batchCreatedDate != null) sb.append(" batchCreatedDate: ").append(toIndentedString(batchCreatedDate)).append("\n"); + if (merchantReference != null) sb.append(" merchantReference: ").append(toIndentedString(merchantReference)).append("\n"); + if (totals != null) sb.append(" totals: ").append(toIndentedString(totals)).append("\n"); + if (billing != null) sb.append(" billing: ").append(toIndentedString(billing)).append("\n"); + if (records != null) sb.append(" records: ").append(toIndentedString(records)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/InlineResponse2009Records.java b/src/main/java/Model/InlineResponse20010Records.java similarity index 68% rename from src/main/java/Model/InlineResponse2009Records.java rename to src/main/java/Model/InlineResponse20010Records.java index a3c7506c..a2cb7e56 100644 --- a/src/main/java/Model/InlineResponse2009Records.java +++ b/src/main/java/Model/InlineResponse20010Records.java @@ -15,8 +15,8 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2009ResponseRecord; -import Model.InlineResponse2009SourceRecord; +import Model.InlineResponse20010ResponseRecord; +import Model.InlineResponse20010SourceRecord; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -27,20 +27,20 @@ import java.io.IOException; /** - * InlineResponse2009Records + * InlineResponse20010Records */ -public class InlineResponse2009Records { +public class InlineResponse20010Records { @SerializedName("id") private String id = null; @SerializedName("sourceRecord") - private InlineResponse2009SourceRecord sourceRecord = null; + private InlineResponse20010SourceRecord sourceRecord = null; @SerializedName("responseRecord") - private InlineResponse2009ResponseRecord responseRecord = null; + private InlineResponse20010ResponseRecord responseRecord = null; - public InlineResponse2009Records id(String id) { + public InlineResponse20010Records id(String id) { this.id = id; return this; } @@ -58,7 +58,7 @@ public void setId(String id) { this.id = id; } - public InlineResponse2009Records sourceRecord(InlineResponse2009SourceRecord sourceRecord) { + public InlineResponse20010Records sourceRecord(InlineResponse20010SourceRecord sourceRecord) { this.sourceRecord = sourceRecord; return this; } @@ -68,15 +68,15 @@ public InlineResponse2009Records sourceRecord(InlineResponse2009SourceRecord sou * @return sourceRecord **/ @ApiModelProperty(value = "") - public InlineResponse2009SourceRecord getSourceRecord() { + public InlineResponse20010SourceRecord getSourceRecord() { return sourceRecord; } - public void setSourceRecord(InlineResponse2009SourceRecord sourceRecord) { + public void setSourceRecord(InlineResponse20010SourceRecord sourceRecord) { this.sourceRecord = sourceRecord; } - public InlineResponse2009Records responseRecord(InlineResponse2009ResponseRecord responseRecord) { + public InlineResponse20010Records responseRecord(InlineResponse20010ResponseRecord responseRecord) { this.responseRecord = responseRecord; return this; } @@ -86,11 +86,11 @@ public InlineResponse2009Records responseRecord(InlineResponse2009ResponseRecord * @return responseRecord **/ @ApiModelProperty(value = "") - public InlineResponse2009ResponseRecord getResponseRecord() { + public InlineResponse20010ResponseRecord getResponseRecord() { return responseRecord; } - public void setResponseRecord(InlineResponse2009ResponseRecord responseRecord) { + public void setResponseRecord(InlineResponse20010ResponseRecord responseRecord) { this.responseRecord = responseRecord; } @@ -103,10 +103,10 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2009Records inlineResponse2009Records = (InlineResponse2009Records) o; - return Objects.equals(this.id, inlineResponse2009Records.id) && - Objects.equals(this.sourceRecord, inlineResponse2009Records.sourceRecord) && - Objects.equals(this.responseRecord, inlineResponse2009Records.responseRecord); + InlineResponse20010Records inlineResponse20010Records = (InlineResponse20010Records) o; + return Objects.equals(this.id, inlineResponse20010Records.id) && + Objects.equals(this.sourceRecord, inlineResponse20010Records.sourceRecord) && + Objects.equals(this.responseRecord, inlineResponse20010Records.responseRecord); } @Override @@ -118,7 +118,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2009Records {\n"); + sb.append("class InlineResponse20010Records {\n"); if (id != null) sb.append(" id: ").append(toIndentedString(id)).append("\n"); if (sourceRecord != null) sb.append(" sourceRecord: ").append(toIndentedString(sourceRecord)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2009ResponseRecord.java b/src/main/java/Model/InlineResponse20010ResponseRecord.java similarity index 74% rename from src/main/java/Model/InlineResponse2009ResponseRecord.java rename to src/main/java/Model/InlineResponse20010ResponseRecord.java index b4e08c0f..ad0da63c 100644 --- a/src/main/java/Model/InlineResponse2009ResponseRecord.java +++ b/src/main/java/Model/InlineResponse20010ResponseRecord.java @@ -15,7 +15,7 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2009ResponseRecordAdditionalUpdates; +import Model.InlineResponse20010ResponseRecordAdditionalUpdates; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -28,10 +28,10 @@ import java.util.List; /** - * InlineResponse2009ResponseRecord + * InlineResponse20010ResponseRecord */ -public class InlineResponse2009ResponseRecord { +public class InlineResponse20010ResponseRecord { @SerializedName("response") private String response = null; @@ -60,9 +60,9 @@ public class InlineResponse2009ResponseRecord { private String cardType = null; @SerializedName("additionalUpdates") - private List additionalUpdates = null; + private List additionalUpdates = null; - public InlineResponse2009ResponseRecord response(String response) { + public InlineResponse20010ResponseRecord response(String response) { this.response = response; return this; } @@ -80,7 +80,7 @@ public void setResponse(String response) { this.response = response; } - public InlineResponse2009ResponseRecord reason(String reason) { + public InlineResponse20010ResponseRecord reason(String reason) { this.reason = reason; return this; } @@ -98,7 +98,7 @@ public void setReason(String reason) { this.reason = reason; } - public InlineResponse2009ResponseRecord token(String token) { + public InlineResponse20010ResponseRecord token(String token) { this.token = token; return this; } @@ -116,7 +116,7 @@ public void setToken(String token) { this.token = token; } - public InlineResponse2009ResponseRecord instrumentIdentifierId(String instrumentIdentifierId) { + public InlineResponse20010ResponseRecord instrumentIdentifierId(String instrumentIdentifierId) { this.instrumentIdentifierId = instrumentIdentifierId; return this; } @@ -134,7 +134,7 @@ public void setInstrumentIdentifierId(String instrumentIdentifierId) { this.instrumentIdentifierId = instrumentIdentifierId; } - public InlineResponse2009ResponseRecord instrumentIdentifierCreated(String instrumentIdentifierCreated) { + public InlineResponse20010ResponseRecord instrumentIdentifierCreated(String instrumentIdentifierCreated) { this.instrumentIdentifierCreated = instrumentIdentifierCreated; return this; } @@ -152,7 +152,7 @@ public void setInstrumentIdentifierCreated(String instrumentIdentifierCreated) { this.instrumentIdentifierCreated = instrumentIdentifierCreated; } - public InlineResponse2009ResponseRecord cardNumber(String cardNumber) { + public InlineResponse20010ResponseRecord cardNumber(String cardNumber) { this.cardNumber = cardNumber; return this; } @@ -170,7 +170,7 @@ public void setCardNumber(String cardNumber) { this.cardNumber = cardNumber; } - public InlineResponse2009ResponseRecord cardExpiryMonth(String cardExpiryMonth) { + public InlineResponse20010ResponseRecord cardExpiryMonth(String cardExpiryMonth) { this.cardExpiryMonth = cardExpiryMonth; return this; } @@ -188,7 +188,7 @@ public void setCardExpiryMonth(String cardExpiryMonth) { this.cardExpiryMonth = cardExpiryMonth; } - public InlineResponse2009ResponseRecord cardExpiryYear(String cardExpiryYear) { + public InlineResponse20010ResponseRecord cardExpiryYear(String cardExpiryYear) { this.cardExpiryYear = cardExpiryYear; return this; } @@ -206,7 +206,7 @@ public void setCardExpiryYear(String cardExpiryYear) { this.cardExpiryYear = cardExpiryYear; } - public InlineResponse2009ResponseRecord cardType(String cardType) { + public InlineResponse20010ResponseRecord cardType(String cardType) { this.cardType = cardType; return this; } @@ -224,14 +224,14 @@ public void setCardType(String cardType) { this.cardType = cardType; } - public InlineResponse2009ResponseRecord additionalUpdates(List additionalUpdates) { + public InlineResponse20010ResponseRecord additionalUpdates(List additionalUpdates) { this.additionalUpdates = additionalUpdates; return this; } - public InlineResponse2009ResponseRecord addAdditionalUpdatesItem(InlineResponse2009ResponseRecordAdditionalUpdates additionalUpdatesItem) { + public InlineResponse20010ResponseRecord addAdditionalUpdatesItem(InlineResponse20010ResponseRecordAdditionalUpdates additionalUpdatesItem) { if (this.additionalUpdates == null) { - this.additionalUpdates = new ArrayList(); + this.additionalUpdates = new ArrayList(); } this.additionalUpdates.add(additionalUpdatesItem); return this; @@ -242,11 +242,11 @@ public InlineResponse2009ResponseRecord addAdditionalUpdatesItem(InlineResponse2 * @return additionalUpdates **/ @ApiModelProperty(value = "") - public List getAdditionalUpdates() { + public List getAdditionalUpdates() { return additionalUpdates; } - public void setAdditionalUpdates(List additionalUpdates) { + public void setAdditionalUpdates(List additionalUpdates) { this.additionalUpdates = additionalUpdates; } @@ -259,17 +259,17 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2009ResponseRecord inlineResponse2009ResponseRecord = (InlineResponse2009ResponseRecord) o; - return Objects.equals(this.response, inlineResponse2009ResponseRecord.response) && - Objects.equals(this.reason, inlineResponse2009ResponseRecord.reason) && - Objects.equals(this.token, inlineResponse2009ResponseRecord.token) && - Objects.equals(this.instrumentIdentifierId, inlineResponse2009ResponseRecord.instrumentIdentifierId) && - Objects.equals(this.instrumentIdentifierCreated, inlineResponse2009ResponseRecord.instrumentIdentifierCreated) && - Objects.equals(this.cardNumber, inlineResponse2009ResponseRecord.cardNumber) && - Objects.equals(this.cardExpiryMonth, inlineResponse2009ResponseRecord.cardExpiryMonth) && - Objects.equals(this.cardExpiryYear, inlineResponse2009ResponseRecord.cardExpiryYear) && - Objects.equals(this.cardType, inlineResponse2009ResponseRecord.cardType) && - Objects.equals(this.additionalUpdates, inlineResponse2009ResponseRecord.additionalUpdates); + InlineResponse20010ResponseRecord inlineResponse20010ResponseRecord = (InlineResponse20010ResponseRecord) o; + return Objects.equals(this.response, inlineResponse20010ResponseRecord.response) && + Objects.equals(this.reason, inlineResponse20010ResponseRecord.reason) && + Objects.equals(this.token, inlineResponse20010ResponseRecord.token) && + Objects.equals(this.instrumentIdentifierId, inlineResponse20010ResponseRecord.instrumentIdentifierId) && + Objects.equals(this.instrumentIdentifierCreated, inlineResponse20010ResponseRecord.instrumentIdentifierCreated) && + Objects.equals(this.cardNumber, inlineResponse20010ResponseRecord.cardNumber) && + Objects.equals(this.cardExpiryMonth, inlineResponse20010ResponseRecord.cardExpiryMonth) && + Objects.equals(this.cardExpiryYear, inlineResponse20010ResponseRecord.cardExpiryYear) && + Objects.equals(this.cardType, inlineResponse20010ResponseRecord.cardType) && + Objects.equals(this.additionalUpdates, inlineResponse20010ResponseRecord.additionalUpdates); } @Override @@ -281,7 +281,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2009ResponseRecord {\n"); + sb.append("class InlineResponse20010ResponseRecord {\n"); if (response != null) sb.append(" response: ").append(toIndentedString(response)).append("\n"); if (reason != null) sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2009ResponseRecordAdditionalUpdates.java b/src/main/java/Model/InlineResponse20010ResponseRecordAdditionalUpdates.java similarity index 76% rename from src/main/java/Model/InlineResponse2009ResponseRecordAdditionalUpdates.java rename to src/main/java/Model/InlineResponse20010ResponseRecordAdditionalUpdates.java index bb5d91fc..38ef3075 100644 --- a/src/main/java/Model/InlineResponse2009ResponseRecordAdditionalUpdates.java +++ b/src/main/java/Model/InlineResponse20010ResponseRecordAdditionalUpdates.java @@ -25,10 +25,10 @@ import java.io.IOException; /** - * InlineResponse2009ResponseRecordAdditionalUpdates + * InlineResponse20010ResponseRecordAdditionalUpdates */ -public class InlineResponse2009ResponseRecordAdditionalUpdates { +public class InlineResponse20010ResponseRecordAdditionalUpdates { @SerializedName("customerId") private String customerId = null; @@ -44,7 +44,7 @@ public class InlineResponse2009ResponseRecordAdditionalUpdates { @SerializedName("message") private String message = null; - public InlineResponse2009ResponseRecordAdditionalUpdates customerId(String customerId) { + public InlineResponse20010ResponseRecordAdditionalUpdates customerId(String customerId) { this.customerId = customerId; return this; } @@ -62,7 +62,7 @@ public void setCustomerId(String customerId) { this.customerId = customerId; } - public InlineResponse2009ResponseRecordAdditionalUpdates paymentInstrumentId(String paymentInstrumentId) { + public InlineResponse20010ResponseRecordAdditionalUpdates paymentInstrumentId(String paymentInstrumentId) { this.paymentInstrumentId = paymentInstrumentId; return this; } @@ -80,7 +80,7 @@ public void setPaymentInstrumentId(String paymentInstrumentId) { this.paymentInstrumentId = paymentInstrumentId; } - public InlineResponse2009ResponseRecordAdditionalUpdates creator(String creator) { + public InlineResponse20010ResponseRecordAdditionalUpdates creator(String creator) { this.creator = creator; return this; } @@ -98,7 +98,7 @@ public void setCreator(String creator) { this.creator = creator; } - public InlineResponse2009ResponseRecordAdditionalUpdates state(String state) { + public InlineResponse20010ResponseRecordAdditionalUpdates state(String state) { this.state = state; return this; } @@ -116,7 +116,7 @@ public void setState(String state) { this.state = state; } - public InlineResponse2009ResponseRecordAdditionalUpdates message(String message) { + public InlineResponse20010ResponseRecordAdditionalUpdates message(String message) { this.message = message; return this; } @@ -143,12 +143,12 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2009ResponseRecordAdditionalUpdates inlineResponse2009ResponseRecordAdditionalUpdates = (InlineResponse2009ResponseRecordAdditionalUpdates) o; - return Objects.equals(this.customerId, inlineResponse2009ResponseRecordAdditionalUpdates.customerId) && - Objects.equals(this.paymentInstrumentId, inlineResponse2009ResponseRecordAdditionalUpdates.paymentInstrumentId) && - Objects.equals(this.creator, inlineResponse2009ResponseRecordAdditionalUpdates.creator) && - Objects.equals(this.state, inlineResponse2009ResponseRecordAdditionalUpdates.state) && - Objects.equals(this.message, inlineResponse2009ResponseRecordAdditionalUpdates.message); + InlineResponse20010ResponseRecordAdditionalUpdates inlineResponse20010ResponseRecordAdditionalUpdates = (InlineResponse20010ResponseRecordAdditionalUpdates) o; + return Objects.equals(this.customerId, inlineResponse20010ResponseRecordAdditionalUpdates.customerId) && + Objects.equals(this.paymentInstrumentId, inlineResponse20010ResponseRecordAdditionalUpdates.paymentInstrumentId) && + Objects.equals(this.creator, inlineResponse20010ResponseRecordAdditionalUpdates.creator) && + Objects.equals(this.state, inlineResponse20010ResponseRecordAdditionalUpdates.state) && + Objects.equals(this.message, inlineResponse20010ResponseRecordAdditionalUpdates.message); } @Override @@ -160,7 +160,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2009ResponseRecordAdditionalUpdates {\n"); + sb.append("class InlineResponse20010ResponseRecordAdditionalUpdates {\n"); if (customerId != null) sb.append(" customerId: ").append(toIndentedString(customerId)).append("\n"); if (paymentInstrumentId != null) sb.append(" paymentInstrumentId: ").append(toIndentedString(paymentInstrumentId)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2009SourceRecord.java b/src/main/java/Model/InlineResponse20010SourceRecord.java similarity index 80% rename from src/main/java/Model/InlineResponse2009SourceRecord.java rename to src/main/java/Model/InlineResponse20010SourceRecord.java index 6b947e36..9fcc5193 100644 --- a/src/main/java/Model/InlineResponse2009SourceRecord.java +++ b/src/main/java/Model/InlineResponse20010SourceRecord.java @@ -25,10 +25,10 @@ import java.io.IOException; /** - * InlineResponse2009SourceRecord + * InlineResponse20010SourceRecord */ -public class InlineResponse2009SourceRecord { +public class InlineResponse20010SourceRecord { @SerializedName("token") private String token = null; @@ -53,7 +53,7 @@ public class InlineResponse2009SourceRecord { @SerializedName("cardType") private String cardType = null; - public InlineResponse2009SourceRecord token(String token) { + public InlineResponse20010SourceRecord token(String token) { this.token = token; return this; } @@ -71,7 +71,7 @@ public void setToken(String token) { this.token = token; } - public InlineResponse2009SourceRecord customerId(String customerId) { + public InlineResponse20010SourceRecord customerId(String customerId) { this.customerId = customerId; return this; } @@ -89,7 +89,7 @@ public void setCustomerId(String customerId) { this.customerId = customerId; } - public InlineResponse2009SourceRecord paymentInstrumentId(String paymentInstrumentId) { + public InlineResponse20010SourceRecord paymentInstrumentId(String paymentInstrumentId) { this.paymentInstrumentId = paymentInstrumentId; return this; } @@ -107,7 +107,7 @@ public void setPaymentInstrumentId(String paymentInstrumentId) { this.paymentInstrumentId = paymentInstrumentId; } - public InlineResponse2009SourceRecord instrumentIdentifierId(String instrumentIdentifierId) { + public InlineResponse20010SourceRecord instrumentIdentifierId(String instrumentIdentifierId) { this.instrumentIdentifierId = instrumentIdentifierId; return this; } @@ -125,7 +125,7 @@ public void setInstrumentIdentifierId(String instrumentIdentifierId) { this.instrumentIdentifierId = instrumentIdentifierId; } - public InlineResponse2009SourceRecord cardNumber(String cardNumber) { + public InlineResponse20010SourceRecord cardNumber(String cardNumber) { this.cardNumber = cardNumber; return this; } @@ -143,7 +143,7 @@ public void setCardNumber(String cardNumber) { this.cardNumber = cardNumber; } - public InlineResponse2009SourceRecord cardExpiryMonth(String cardExpiryMonth) { + public InlineResponse20010SourceRecord cardExpiryMonth(String cardExpiryMonth) { this.cardExpiryMonth = cardExpiryMonth; return this; } @@ -161,7 +161,7 @@ public void setCardExpiryMonth(String cardExpiryMonth) { this.cardExpiryMonth = cardExpiryMonth; } - public InlineResponse2009SourceRecord cardExpiryYear(String cardExpiryYear) { + public InlineResponse20010SourceRecord cardExpiryYear(String cardExpiryYear) { this.cardExpiryYear = cardExpiryYear; return this; } @@ -179,7 +179,7 @@ public void setCardExpiryYear(String cardExpiryYear) { this.cardExpiryYear = cardExpiryYear; } - public InlineResponse2009SourceRecord cardType(String cardType) { + public InlineResponse20010SourceRecord cardType(String cardType) { this.cardType = cardType; return this; } @@ -206,15 +206,15 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2009SourceRecord inlineResponse2009SourceRecord = (InlineResponse2009SourceRecord) o; - return Objects.equals(this.token, inlineResponse2009SourceRecord.token) && - Objects.equals(this.customerId, inlineResponse2009SourceRecord.customerId) && - Objects.equals(this.paymentInstrumentId, inlineResponse2009SourceRecord.paymentInstrumentId) && - Objects.equals(this.instrumentIdentifierId, inlineResponse2009SourceRecord.instrumentIdentifierId) && - Objects.equals(this.cardNumber, inlineResponse2009SourceRecord.cardNumber) && - Objects.equals(this.cardExpiryMonth, inlineResponse2009SourceRecord.cardExpiryMonth) && - Objects.equals(this.cardExpiryYear, inlineResponse2009SourceRecord.cardExpiryYear) && - Objects.equals(this.cardType, inlineResponse2009SourceRecord.cardType); + InlineResponse20010SourceRecord inlineResponse20010SourceRecord = (InlineResponse20010SourceRecord) o; + return Objects.equals(this.token, inlineResponse20010SourceRecord.token) && + Objects.equals(this.customerId, inlineResponse20010SourceRecord.customerId) && + Objects.equals(this.paymentInstrumentId, inlineResponse20010SourceRecord.paymentInstrumentId) && + Objects.equals(this.instrumentIdentifierId, inlineResponse20010SourceRecord.instrumentIdentifierId) && + Objects.equals(this.cardNumber, inlineResponse20010SourceRecord.cardNumber) && + Objects.equals(this.cardExpiryMonth, inlineResponse20010SourceRecord.cardExpiryMonth) && + Objects.equals(this.cardExpiryYear, inlineResponse20010SourceRecord.cardExpiryYear) && + Objects.equals(this.cardType, inlineResponse20010SourceRecord.cardType); } @Override @@ -226,7 +226,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2009SourceRecord {\n"); + sb.append("class InlineResponse20010SourceRecord {\n"); if (token != null) sb.append(" token: ").append(toIndentedString(token)).append("\n"); if (customerId != null) sb.append(" customerId: ").append(toIndentedString(customerId)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2005.java b/src/main/java/Model/InlineResponse2005.java index ebb4eb8c..3ad31214 100644 --- a/src/main/java/Model/InlineResponse2005.java +++ b/src/main/java/Model/InlineResponse2005.java @@ -15,7 +15,7 @@ import java.util.Objects; import java.util.Arrays; -import Model.Dmsv3devicesdeassociateDevices; +import Model.InlineResponse2005Devices; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -32,53 +32,137 @@ */ public class InlineResponse2005 { - @SerializedName("status") - private String status = null; + @SerializedName("totalCount") + private Integer totalCount = null; + + @SerializedName("offset") + private Integer offset = null; + + @SerializedName("limit") + private Integer limit = null; + + @SerializedName("sort") + private String sort = null; + + @SerializedName("count") + private Integer count = null; @SerializedName("devices") - private List devices = null; + private List devices = null; + + public InlineResponse2005 totalCount(Integer totalCount) { + this.totalCount = totalCount; + return this; + } + + /** + * Total number of results. + * @return totalCount + **/ + @ApiModelProperty(value = "Total number of results.") + public Integer getTotalCount() { + return totalCount; + } + + public void setTotalCount(Integer totalCount) { + this.totalCount = totalCount; + } + + public InlineResponse2005 offset(Integer offset) { + this.offset = offset; + return this; + } + + /** + * Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. + * @return offset + **/ + @ApiModelProperty(value = "Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. ") + public Integer getOffset() { + return offset; + } + + public void setOffset(Integer offset) { + this.offset = offset; + } + + public InlineResponse2005 limit(Integer limit) { + this.limit = limit; + return this; + } + + /** + * Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. + * @return limit + **/ + @ApiModelProperty(value = "Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. ") + public Integer getLimit() { + return limit; + } + + public void setLimit(Integer limit) { + this.limit = limit; + } + + public InlineResponse2005 sort(String sort) { + this.sort = sort; + return this; + } + + /** + * A comma separated list of the following form: `submitTimeUtc:desc` + * @return sort + **/ + @ApiModelProperty(value = "A comma separated list of the following form: `submitTimeUtc:desc` ") + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } - public InlineResponse2005 status(String status) { - this.status = status; + public InlineResponse2005 count(Integer count) { + this.count = count; return this; } /** - * Possible values: - OK - * @return status + * Results for this page, this could be below the limit. + * @return count **/ - @ApiModelProperty(value = "Possible values: - OK") - public String getStatus() { - return status; + @ApiModelProperty(value = "Results for this page, this could be below the limit.") + public Integer getCount() { + return count; } - public void setStatus(String status) { - this.status = status; + public void setCount(Integer count) { + this.count = count; } - public InlineResponse2005 devices(List devices) { + public InlineResponse2005 devices(List devices) { this.devices = devices; return this; } - public InlineResponse2005 addDevicesItem(Dmsv3devicesdeassociateDevices devicesItem) { + public InlineResponse2005 addDevicesItem(InlineResponse2005Devices devicesItem) { if (this.devices == null) { - this.devices = new ArrayList(); + this.devices = new ArrayList(); } this.devices.add(devicesItem); return this; } /** - * Get devices + * A collection of devices * @return devices **/ - @ApiModelProperty(value = "") - public List getDevices() { + @ApiModelProperty(value = "A collection of devices") + public List getDevices() { return devices; } - public void setDevices(List devices) { + public void setDevices(List devices) { this.devices = devices; } @@ -92,13 +176,17 @@ public boolean equals(java.lang.Object o) { return false; } InlineResponse2005 inlineResponse2005 = (InlineResponse2005) o; - return Objects.equals(this.status, inlineResponse2005.status) && + return Objects.equals(this.totalCount, inlineResponse2005.totalCount) && + Objects.equals(this.offset, inlineResponse2005.offset) && + Objects.equals(this.limit, inlineResponse2005.limit) && + Objects.equals(this.sort, inlineResponse2005.sort) && + Objects.equals(this.count, inlineResponse2005.count) && Objects.equals(this.devices, inlineResponse2005.devices); } @Override public int hashCode() { - return Objects.hash(status, devices); + return Objects.hash(totalCount, offset, limit, sort, count, devices); } @@ -107,7 +195,11 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class InlineResponse2005 {\n"); - if (status != null) sb.append(" status: ").append(toIndentedString(status)).append("\n"); + if (totalCount != null) sb.append(" totalCount: ").append(toIndentedString(totalCount)).append("\n"); + if (offset != null) sb.append(" offset: ").append(toIndentedString(offset)).append("\n"); + if (limit != null) sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + if (sort != null) sb.append(" sort: ").append(toIndentedString(sort)).append("\n"); + if (count != null) sb.append(" count: ").append(toIndentedString(count)).append("\n"); if (devices != null) sb.append(" devices: ").append(toIndentedString(devices)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/src/main/java/Model/InlineResponse2005Devices.java b/src/main/java/Model/InlineResponse2005Devices.java new file mode 100644 index 00000000..34725234 --- /dev/null +++ b/src/main/java/Model/InlineResponse2005Devices.java @@ -0,0 +1,278 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * InlineResponse2005Devices + */ + +public class InlineResponse2005Devices { + @SerializedName("readerId") + private String readerId = null; + + @SerializedName("terminalSerialNumber") + private String terminalSerialNumber = null; + + @SerializedName("terminalId") + private String terminalId = null; + + @SerializedName("model") + private String model = null; + + @SerializedName("make") + private String make = null; + + @SerializedName("hardwareRevision") + private String hardwareRevision = null; + + @SerializedName("status") + private String status = null; + + @SerializedName("creationDate") + private String creationDate = null; + + @SerializedName("pin") + private String pin = null; + + public InlineResponse2005Devices readerId(String readerId) { + this.readerId = readerId; + return this; + } + + /** + * Get readerId + * @return readerId + **/ + @ApiModelProperty(value = "") + public String getReaderId() { + return readerId; + } + + public void setReaderId(String readerId) { + this.readerId = readerId; + } + + public InlineResponse2005Devices terminalSerialNumber(String terminalSerialNumber) { + this.terminalSerialNumber = terminalSerialNumber; + return this; + } + + /** + * Get terminalSerialNumber + * @return terminalSerialNumber + **/ + @ApiModelProperty(value = "") + public String getTerminalSerialNumber() { + return terminalSerialNumber; + } + + public void setTerminalSerialNumber(String terminalSerialNumber) { + this.terminalSerialNumber = terminalSerialNumber; + } + + public InlineResponse2005Devices terminalId(String terminalId) { + this.terminalId = terminalId; + return this; + } + + /** + * Get terminalId + * @return terminalId + **/ + @ApiModelProperty(value = "") + public String getTerminalId() { + return terminalId; + } + + public void setTerminalId(String terminalId) { + this.terminalId = terminalId; + } + + public InlineResponse2005Devices model(String model) { + this.model = model; + return this; + } + + /** + * Get model + * @return model + **/ + @ApiModelProperty(value = "") + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public InlineResponse2005Devices make(String make) { + this.make = make; + return this; + } + + /** + * Get make + * @return make + **/ + @ApiModelProperty(value = "") + public String getMake() { + return make; + } + + public void setMake(String make) { + this.make = make; + } + + public InlineResponse2005Devices hardwareRevision(String hardwareRevision) { + this.hardwareRevision = hardwareRevision; + return this; + } + + /** + * Get hardwareRevision + * @return hardwareRevision + **/ + @ApiModelProperty(value = "") + public String getHardwareRevision() { + return hardwareRevision; + } + + public void setHardwareRevision(String hardwareRevision) { + this.hardwareRevision = hardwareRevision; + } + + public InlineResponse2005Devices status(String status) { + this.status = status; + return this; + } + + /** + * Status of the device. Possible Values: - 'ACTIVE' - 'INACTIVE' + * @return status + **/ + @ApiModelProperty(value = "Status of the device. Possible Values: - 'ACTIVE' - 'INACTIVE' ") + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public InlineResponse2005Devices creationDate(String creationDate) { + this.creationDate = creationDate; + return this; + } + + /** + * Get creationDate + * @return creationDate + **/ + @ApiModelProperty(value = "") + public String getCreationDate() { + return creationDate; + } + + public void setCreationDate(String creationDate) { + this.creationDate = creationDate; + } + + public InlineResponse2005Devices pin(String pin) { + this.pin = pin; + return this; + } + + /** + * Get pin + * @return pin + **/ + @ApiModelProperty(value = "") + public String getPin() { + return pin; + } + + public void setPin(String pin) { + this.pin = pin; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InlineResponse2005Devices inlineResponse2005Devices = (InlineResponse2005Devices) o; + return Objects.equals(this.readerId, inlineResponse2005Devices.readerId) && + Objects.equals(this.terminalSerialNumber, inlineResponse2005Devices.terminalSerialNumber) && + Objects.equals(this.terminalId, inlineResponse2005Devices.terminalId) && + Objects.equals(this.model, inlineResponse2005Devices.model) && + Objects.equals(this.make, inlineResponse2005Devices.make) && + Objects.equals(this.hardwareRevision, inlineResponse2005Devices.hardwareRevision) && + Objects.equals(this.status, inlineResponse2005Devices.status) && + Objects.equals(this.creationDate, inlineResponse2005Devices.creationDate) && + Objects.equals(this.pin, inlineResponse2005Devices.pin); + } + + @Override + public int hashCode() { + return Objects.hash(readerId, terminalSerialNumber, terminalId, model, make, hardwareRevision, status, creationDate, pin); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InlineResponse2005Devices {\n"); + + if (readerId != null) sb.append(" readerId: ").append(toIndentedString(readerId)).append("\n"); + if (terminalSerialNumber != null) sb.append(" terminalSerialNumber: ").append(toIndentedString(terminalSerialNumber)).append("\n"); + if (terminalId != null) sb.append(" terminalId: ").append(toIndentedString(terminalId)).append("\n"); + if (model != null) sb.append(" model: ").append(toIndentedString(model)).append("\n"); + if (make != null) sb.append(" make: ").append(toIndentedString(make)).append("\n"); + if (hardwareRevision != null) sb.append(" hardwareRevision: ").append(toIndentedString(hardwareRevision)).append("\n"); + if (status != null) sb.append(" status: ").append(toIndentedString(status)).append("\n"); + if (creationDate != null) sb.append(" creationDate: ").append(toIndentedString(creationDate)).append("\n"); + if (pin != null) sb.append(" pin: ").append(toIndentedString(pin)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/InlineResponse2006.java b/src/main/java/Model/InlineResponse2006.java index b2946156..f25c9a6b 100644 --- a/src/main/java/Model/InlineResponse2006.java +++ b/src/main/java/Model/InlineResponse2006.java @@ -15,7 +15,7 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2006Devices; +import Model.Dmsv3devicesdeassociateDevices; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -32,137 +32,53 @@ */ public class InlineResponse2006 { - @SerializedName("totalCount") - private Integer totalCount = null; - - @SerializedName("offset") - private Integer offset = null; - - @SerializedName("limit") - private Integer limit = null; - - @SerializedName("sort") - private String sort = null; - - @SerializedName("count") - private Integer count = null; + @SerializedName("status") + private String status = null; @SerializedName("devices") - private List devices = null; - - public InlineResponse2006 totalCount(Integer totalCount) { - this.totalCount = totalCount; - return this; - } - - /** - * Total number of results. - * @return totalCount - **/ - @ApiModelProperty(value = "Total number of results.") - public Integer getTotalCount() { - return totalCount; - } - - public void setTotalCount(Integer totalCount) { - this.totalCount = totalCount; - } - - public InlineResponse2006 offset(Integer offset) { - this.offset = offset; - return this; - } - - /** - * Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. - * @return offset - **/ - @ApiModelProperty(value = "Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. ") - public Integer getOffset() { - return offset; - } - - public void setOffset(Integer offset) { - this.offset = offset; - } - - public InlineResponse2006 limit(Integer limit) { - this.limit = limit; - return this; - } - - /** - * Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. - * @return limit - **/ - @ApiModelProperty(value = "Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. ") - public Integer getLimit() { - return limit; - } - - public void setLimit(Integer limit) { - this.limit = limit; - } - - public InlineResponse2006 sort(String sort) { - this.sort = sort; - return this; - } - - /** - * A comma separated list of the following form: `terminalCreationDate:desc or serialNumber or terminalUpdationDate` - * @return sort - **/ - @ApiModelProperty(value = "A comma separated list of the following form: `terminalCreationDate:desc or serialNumber or terminalUpdationDate` ") - public String getSort() { - return sort; - } - - public void setSort(String sort) { - this.sort = sort; - } + private List devices = null; - public InlineResponse2006 count(Integer count) { - this.count = count; + public InlineResponse2006 status(String status) { + this.status = status; return this; } /** - * Results for this page, this could be below the limit. - * @return count + * Possible values: - OK + * @return status **/ - @ApiModelProperty(value = "Results for this page, this could be below the limit.") - public Integer getCount() { - return count; + @ApiModelProperty(value = "Possible values: - OK") + public String getStatus() { + return status; } - public void setCount(Integer count) { - this.count = count; + public void setStatus(String status) { + this.status = status; } - public InlineResponse2006 devices(List devices) { + public InlineResponse2006 devices(List devices) { this.devices = devices; return this; } - public InlineResponse2006 addDevicesItem(InlineResponse2006Devices devicesItem) { + public InlineResponse2006 addDevicesItem(Dmsv3devicesdeassociateDevices devicesItem) { if (this.devices == null) { - this.devices = new ArrayList(); + this.devices = new ArrayList(); } this.devices.add(devicesItem); return this; } /** - * A collection of devices + * Get devices * @return devices **/ - @ApiModelProperty(value = "A collection of devices") - public List getDevices() { + @ApiModelProperty(value = "") + public List getDevices() { return devices; } - public void setDevices(List devices) { + public void setDevices(List devices) { this.devices = devices; } @@ -176,17 +92,13 @@ public boolean equals(java.lang.Object o) { return false; } InlineResponse2006 inlineResponse2006 = (InlineResponse2006) o; - return Objects.equals(this.totalCount, inlineResponse2006.totalCount) && - Objects.equals(this.offset, inlineResponse2006.offset) && - Objects.equals(this.limit, inlineResponse2006.limit) && - Objects.equals(this.sort, inlineResponse2006.sort) && - Objects.equals(this.count, inlineResponse2006.count) && + return Objects.equals(this.status, inlineResponse2006.status) && Objects.equals(this.devices, inlineResponse2006.devices); } @Override public int hashCode() { - return Objects.hash(totalCount, offset, limit, sort, count, devices); + return Objects.hash(status, devices); } @@ -195,11 +107,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class InlineResponse2006 {\n"); - if (totalCount != null) sb.append(" totalCount: ").append(toIndentedString(totalCount)).append("\n"); - if (offset != null) sb.append(" offset: ").append(toIndentedString(offset)).append("\n"); - if (limit != null) sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); - if (sort != null) sb.append(" sort: ").append(toIndentedString(sort)).append("\n"); - if (count != null) sb.append(" count: ").append(toIndentedString(count)).append("\n"); + if (status != null) sb.append(" status: ").append(toIndentedString(status)).append("\n"); if (devices != null) sb.append(" devices: ").append(toIndentedString(devices)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/src/main/java/Model/InlineResponse2007.java b/src/main/java/Model/InlineResponse2007.java index 6b3f54db..7cc32581 100644 --- a/src/main/java/Model/InlineResponse2007.java +++ b/src/main/java/Model/InlineResponse2007.java @@ -15,8 +15,7 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2007Embedded; -import Model.InlineResponse2007Links; +import Model.InlineResponse2007Devices; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -33,11 +32,8 @@ */ public class InlineResponse2007 { - @SerializedName("_links") - private List links = null; - - @SerializedName("object") - private String object = null; + @SerializedName("totalCount") + private Integer totalCount = null; @SerializedName("offset") private Integer offset = null; @@ -45,57 +41,31 @@ public class InlineResponse2007 { @SerializedName("limit") private Integer limit = null; + @SerializedName("sort") + private String sort = null; + @SerializedName("count") private Integer count = null; - @SerializedName("total") - private Integer total = null; - - @SerializedName("_embedded") - private InlineResponse2007Embedded embedded = null; - - public InlineResponse2007 links(List links) { - this.links = links; - return this; - } - - public InlineResponse2007 addLinksItem(InlineResponse2007Links linksItem) { - if (this.links == null) { - this.links = new ArrayList(); - } - this.links.add(linksItem); - return this; - } - - /** - * Get links - * @return links - **/ - @ApiModelProperty(value = "") - public List getLinks() { - return links; - } - - public void setLinks(List links) { - this.links = links; - } + @SerializedName("devices") + private List devices = null; - public InlineResponse2007 object(String object) { - this.object = object; + public InlineResponse2007 totalCount(Integer totalCount) { + this.totalCount = totalCount; return this; } /** - * Get object - * @return object + * Total number of results. + * @return totalCount **/ - @ApiModelProperty(example = "collection", value = "") - public String getObject() { - return object; + @ApiModelProperty(value = "Total number of results.") + public Integer getTotalCount() { + return totalCount; } - public void setObject(String object) { - this.object = object; + public void setTotalCount(Integer totalCount) { + this.totalCount = totalCount; } public InlineResponse2007 offset(Integer offset) { @@ -104,10 +74,10 @@ public InlineResponse2007 offset(Integer offset) { } /** - * Get offset + * Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. * @return offset **/ - @ApiModelProperty(example = "0", value = "") + @ApiModelProperty(value = "Controls the starting point within the collection of results, which defaults to 0. The first item in the collection is retrieved by setting a zero offset. For example, if you have a collection of 15 items to be retrieved from a resource and you specify limit=5, you can retrieve the entire set of results in 3 successive requests by varying the offset value like this: `offset=0` `offset=5` `offset=10` **Note:** If an offset larger than the number of results is provided, this will result in no embedded object being returned. ") public Integer getOffset() { return offset; } @@ -122,10 +92,10 @@ public InlineResponse2007 limit(Integer limit) { } /** - * Get limit + * Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. * @return limit **/ - @ApiModelProperty(example = "20", value = "") + @ApiModelProperty(value = "Controls the maximum number of items that may be returned for a single request. The default is 20, the maximum is 2500. ") public Integer getLimit() { return limit; } @@ -134,16 +104,34 @@ public void setLimit(Integer limit) { this.limit = limit; } + public InlineResponse2007 sort(String sort) { + this.sort = sort; + return this; + } + + /** + * A comma separated list of the following form: `terminalCreationDate:desc or serialNumber or terminalUpdationDate` + * @return sort + **/ + @ApiModelProperty(value = "A comma separated list of the following form: `terminalCreationDate:desc or serialNumber or terminalUpdationDate` ") + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } + public InlineResponse2007 count(Integer count) { this.count = count; return this; } /** - * Get count + * Results for this page, this could be below the limit. * @return count **/ - @ApiModelProperty(example = "1", value = "") + @ApiModelProperty(value = "Results for this page, this could be below the limit.") public Integer getCount() { return count; } @@ -152,40 +140,30 @@ public void setCount(Integer count) { this.count = count; } - public InlineResponse2007 total(Integer total) { - this.total = total; + public InlineResponse2007 devices(List devices) { + this.devices = devices; return this; } - /** - * Get total - * @return total - **/ - @ApiModelProperty(example = "1", value = "") - public Integer getTotal() { - return total; - } - - public void setTotal(Integer total) { - this.total = total; - } - - public InlineResponse2007 embedded(InlineResponse2007Embedded embedded) { - this.embedded = embedded; + public InlineResponse2007 addDevicesItem(InlineResponse2007Devices devicesItem) { + if (this.devices == null) { + this.devices = new ArrayList(); + } + this.devices.add(devicesItem); return this; } /** - * Get embedded - * @return embedded + * A collection of devices + * @return devices **/ - @ApiModelProperty(value = "") - public InlineResponse2007Embedded getEmbedded() { - return embedded; + @ApiModelProperty(value = "A collection of devices") + public List getDevices() { + return devices; } - public void setEmbedded(InlineResponse2007Embedded embedded) { - this.embedded = embedded; + public void setDevices(List devices) { + this.devices = devices; } @@ -198,18 +176,17 @@ public boolean equals(java.lang.Object o) { return false; } InlineResponse2007 inlineResponse2007 = (InlineResponse2007) o; - return Objects.equals(this.links, inlineResponse2007.links) && - Objects.equals(this.object, inlineResponse2007.object) && + return Objects.equals(this.totalCount, inlineResponse2007.totalCount) && Objects.equals(this.offset, inlineResponse2007.offset) && Objects.equals(this.limit, inlineResponse2007.limit) && + Objects.equals(this.sort, inlineResponse2007.sort) && Objects.equals(this.count, inlineResponse2007.count) && - Objects.equals(this.total, inlineResponse2007.total) && - Objects.equals(this.embedded, inlineResponse2007.embedded); + Objects.equals(this.devices, inlineResponse2007.devices); } @Override public int hashCode() { - return Objects.hash(links, object, offset, limit, count, total, embedded); + return Objects.hash(totalCount, offset, limit, sort, count, devices); } @@ -218,13 +195,12 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class InlineResponse2007 {\n"); - if (links != null) sb.append(" links: ").append(toIndentedString(links)).append("\n"); - if (object != null) sb.append(" object: ").append(toIndentedString(object)).append("\n"); + if (totalCount != null) sb.append(" totalCount: ").append(toIndentedString(totalCount)).append("\n"); if (offset != null) sb.append(" offset: ").append(toIndentedString(offset)).append("\n"); if (limit != null) sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + if (sort != null) sb.append(" sort: ").append(toIndentedString(sort)).append("\n"); if (count != null) sb.append(" count: ").append(toIndentedString(count)).append("\n"); - if (total != null) sb.append(" total: ").append(toIndentedString(total)).append("\n"); - if (embedded != null) sb.append(" embedded: ").append(toIndentedString(embedded)).append("\n"); + if (devices != null) sb.append(" devices: ").append(toIndentedString(devices)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/Model/InlineResponse2006Devices.java b/src/main/java/Model/InlineResponse2007Devices.java similarity index 81% rename from src/main/java/Model/InlineResponse2006Devices.java rename to src/main/java/Model/InlineResponse2007Devices.java index a6c429ae..db5f7711 100644 --- a/src/main/java/Model/InlineResponse2006Devices.java +++ b/src/main/java/Model/InlineResponse2007Devices.java @@ -15,7 +15,7 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2006PaymentProcessorToTerminalMap; +import Model.InlineResponse2007PaymentProcessorToTerminalMap; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -27,10 +27,10 @@ import org.joda.time.DateTime; /** - * InlineResponse2006Devices + * InlineResponse2007Devices */ -public class InlineResponse2006Devices { +public class InlineResponse2007Devices { @SerializedName("readerId") private String readerId = null; @@ -65,9 +65,9 @@ public class InlineResponse2006Devices { private DateTime terminalUpdationDate = null; @SerializedName("paymentProcessorToTerminalMap") - private InlineResponse2006PaymentProcessorToTerminalMap paymentProcessorToTerminalMap = null; + private InlineResponse2007PaymentProcessorToTerminalMap paymentProcessorToTerminalMap = null; - public InlineResponse2006Devices readerId(String readerId) { + public InlineResponse2007Devices readerId(String readerId) { this.readerId = readerId; return this; } @@ -85,7 +85,7 @@ public void setReaderId(String readerId) { this.readerId = readerId; } - public InlineResponse2006Devices serialNumber(String serialNumber) { + public InlineResponse2007Devices serialNumber(String serialNumber) { this.serialNumber = serialNumber; return this; } @@ -103,7 +103,7 @@ public void setSerialNumber(String serialNumber) { this.serialNumber = serialNumber; } - public InlineResponse2006Devices model(String model) { + public InlineResponse2007Devices model(String model) { this.model = model; return this; } @@ -121,7 +121,7 @@ public void setModel(String model) { this.model = model; } - public InlineResponse2006Devices make(String make) { + public InlineResponse2007Devices make(String make) { this.make = make; return this; } @@ -139,7 +139,7 @@ public void setMake(String make) { this.make = make; } - public InlineResponse2006Devices hardwareRevision(String hardwareRevision) { + public InlineResponse2007Devices hardwareRevision(String hardwareRevision) { this.hardwareRevision = hardwareRevision; return this; } @@ -157,7 +157,7 @@ public void setHardwareRevision(String hardwareRevision) { this.hardwareRevision = hardwareRevision; } - public InlineResponse2006Devices status(String status) { + public InlineResponse2007Devices status(String status) { this.status = status; return this; } @@ -175,7 +175,7 @@ public void setStatus(String status) { this.status = status; } - public InlineResponse2006Devices statusChangeReason(String statusChangeReason) { + public InlineResponse2007Devices statusChangeReason(String statusChangeReason) { this.statusChangeReason = statusChangeReason; return this; } @@ -193,7 +193,7 @@ public void setStatusChangeReason(String statusChangeReason) { this.statusChangeReason = statusChangeReason; } - public InlineResponse2006Devices merchantId(String merchantId) { + public InlineResponse2007Devices merchantId(String merchantId) { this.merchantId = merchantId; return this; } @@ -211,7 +211,7 @@ public void setMerchantId(String merchantId) { this.merchantId = merchantId; } - public InlineResponse2006Devices accountId(String accountId) { + public InlineResponse2007Devices accountId(String accountId) { this.accountId = accountId; return this; } @@ -229,7 +229,7 @@ public void setAccountId(String accountId) { this.accountId = accountId; } - public InlineResponse2006Devices terminalCreationDate(DateTime terminalCreationDate) { + public InlineResponse2007Devices terminalCreationDate(DateTime terminalCreationDate) { this.terminalCreationDate = terminalCreationDate; return this; } @@ -247,7 +247,7 @@ public void setTerminalCreationDate(DateTime terminalCreationDate) { this.terminalCreationDate = terminalCreationDate; } - public InlineResponse2006Devices terminalUpdationDate(DateTime terminalUpdationDate) { + public InlineResponse2007Devices terminalUpdationDate(DateTime terminalUpdationDate) { this.terminalUpdationDate = terminalUpdationDate; return this; } @@ -265,7 +265,7 @@ public void setTerminalUpdationDate(DateTime terminalUpdationDate) { this.terminalUpdationDate = terminalUpdationDate; } - public InlineResponse2006Devices paymentProcessorToTerminalMap(InlineResponse2006PaymentProcessorToTerminalMap paymentProcessorToTerminalMap) { + public InlineResponse2007Devices paymentProcessorToTerminalMap(InlineResponse2007PaymentProcessorToTerminalMap paymentProcessorToTerminalMap) { this.paymentProcessorToTerminalMap = paymentProcessorToTerminalMap; return this; } @@ -275,11 +275,11 @@ public InlineResponse2006Devices paymentProcessorToTerminalMap(InlineResponse200 * @return paymentProcessorToTerminalMap **/ @ApiModelProperty(value = "") - public InlineResponse2006PaymentProcessorToTerminalMap getPaymentProcessorToTerminalMap() { + public InlineResponse2007PaymentProcessorToTerminalMap getPaymentProcessorToTerminalMap() { return paymentProcessorToTerminalMap; } - public void setPaymentProcessorToTerminalMap(InlineResponse2006PaymentProcessorToTerminalMap paymentProcessorToTerminalMap) { + public void setPaymentProcessorToTerminalMap(InlineResponse2007PaymentProcessorToTerminalMap paymentProcessorToTerminalMap) { this.paymentProcessorToTerminalMap = paymentProcessorToTerminalMap; } @@ -292,19 +292,19 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2006Devices inlineResponse2006Devices = (InlineResponse2006Devices) o; - return Objects.equals(this.readerId, inlineResponse2006Devices.readerId) && - Objects.equals(this.serialNumber, inlineResponse2006Devices.serialNumber) && - Objects.equals(this.model, inlineResponse2006Devices.model) && - Objects.equals(this.make, inlineResponse2006Devices.make) && - Objects.equals(this.hardwareRevision, inlineResponse2006Devices.hardwareRevision) && - Objects.equals(this.status, inlineResponse2006Devices.status) && - Objects.equals(this.statusChangeReason, inlineResponse2006Devices.statusChangeReason) && - Objects.equals(this.merchantId, inlineResponse2006Devices.merchantId) && - Objects.equals(this.accountId, inlineResponse2006Devices.accountId) && - Objects.equals(this.terminalCreationDate, inlineResponse2006Devices.terminalCreationDate) && - Objects.equals(this.terminalUpdationDate, inlineResponse2006Devices.terminalUpdationDate) && - Objects.equals(this.paymentProcessorToTerminalMap, inlineResponse2006Devices.paymentProcessorToTerminalMap); + InlineResponse2007Devices inlineResponse2007Devices = (InlineResponse2007Devices) o; + return Objects.equals(this.readerId, inlineResponse2007Devices.readerId) && + Objects.equals(this.serialNumber, inlineResponse2007Devices.serialNumber) && + Objects.equals(this.model, inlineResponse2007Devices.model) && + Objects.equals(this.make, inlineResponse2007Devices.make) && + Objects.equals(this.hardwareRevision, inlineResponse2007Devices.hardwareRevision) && + Objects.equals(this.status, inlineResponse2007Devices.status) && + Objects.equals(this.statusChangeReason, inlineResponse2007Devices.statusChangeReason) && + Objects.equals(this.merchantId, inlineResponse2007Devices.merchantId) && + Objects.equals(this.accountId, inlineResponse2007Devices.accountId) && + Objects.equals(this.terminalCreationDate, inlineResponse2007Devices.terminalCreationDate) && + Objects.equals(this.terminalUpdationDate, inlineResponse2007Devices.terminalUpdationDate) && + Objects.equals(this.paymentProcessorToTerminalMap, inlineResponse2007Devices.paymentProcessorToTerminalMap); } @Override @@ -316,7 +316,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2006Devices {\n"); + sb.append("class InlineResponse2007Devices {\n"); if (readerId != null) sb.append(" readerId: ").append(toIndentedString(readerId)).append("\n"); if (serialNumber != null) sb.append(" serialNumber: ").append(toIndentedString(serialNumber)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2006PaymentProcessorToTerminalMap.java b/src/main/java/Model/InlineResponse2007PaymentProcessorToTerminalMap.java similarity index 84% rename from src/main/java/Model/InlineResponse2006PaymentProcessorToTerminalMap.java rename to src/main/java/Model/InlineResponse2007PaymentProcessorToTerminalMap.java index 56b58c7c..393b1fb0 100644 --- a/src/main/java/Model/InlineResponse2006PaymentProcessorToTerminalMap.java +++ b/src/main/java/Model/InlineResponse2007PaymentProcessorToTerminalMap.java @@ -29,14 +29,14 @@ */ @ApiModel(description = "Mapping between processor and Terminal.") -public class InlineResponse2006PaymentProcessorToTerminalMap { +public class InlineResponse2007PaymentProcessorToTerminalMap { @SerializedName("processor") private String processor = null; @SerializedName("terminalId") private String terminalId = null; - public InlineResponse2006PaymentProcessorToTerminalMap processor(String processor) { + public InlineResponse2007PaymentProcessorToTerminalMap processor(String processor) { this.processor = processor; return this; } @@ -54,7 +54,7 @@ public void setProcessor(String processor) { this.processor = processor; } - public InlineResponse2006PaymentProcessorToTerminalMap terminalId(String terminalId) { + public InlineResponse2007PaymentProcessorToTerminalMap terminalId(String terminalId) { this.terminalId = terminalId; return this; } @@ -81,9 +81,9 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2006PaymentProcessorToTerminalMap inlineResponse2006PaymentProcessorToTerminalMap = (InlineResponse2006PaymentProcessorToTerminalMap) o; - return Objects.equals(this.processor, inlineResponse2006PaymentProcessorToTerminalMap.processor) && - Objects.equals(this.terminalId, inlineResponse2006PaymentProcessorToTerminalMap.terminalId); + InlineResponse2007PaymentProcessorToTerminalMap inlineResponse2007PaymentProcessorToTerminalMap = (InlineResponse2007PaymentProcessorToTerminalMap) o; + return Objects.equals(this.processor, inlineResponse2007PaymentProcessorToTerminalMap.processor) && + Objects.equals(this.terminalId, inlineResponse2007PaymentProcessorToTerminalMap.terminalId); } @Override @@ -95,7 +95,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2006PaymentProcessorToTerminalMap {\n"); + sb.append("class InlineResponse2007PaymentProcessorToTerminalMap {\n"); if (processor != null) sb.append(" processor: ").append(toIndentedString(processor)).append("\n"); if (terminalId != null) sb.append(" terminalId: ").append(toIndentedString(terminalId)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2008.java b/src/main/java/Model/InlineResponse2008.java index aa019a4d..5b2d3f4d 100644 --- a/src/main/java/Model/InlineResponse2008.java +++ b/src/main/java/Model/InlineResponse2008.java @@ -15,8 +15,7 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2007EmbeddedTotals; -import Model.InlineResponse2008Billing; +import Model.InlineResponse2008Embedded; import Model.InlineResponse2008Links; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; @@ -26,6 +25,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; /** * InlineResponse2008 @@ -33,213 +34,158 @@ public class InlineResponse2008 { @SerializedName("_links") - private InlineResponse2008Links links = null; + private List links = null; - @SerializedName("batchId") - private String batchId = null; + @SerializedName("object") + private String object = null; - @SerializedName("batchCreatedDate") - private String batchCreatedDate = null; + @SerializedName("offset") + private Integer offset = null; - @SerializedName("batchSource") - private String batchSource = null; + @SerializedName("limit") + private Integer limit = null; - @SerializedName("merchantReference") - private String merchantReference = null; + @SerializedName("count") + private Integer count = null; - @SerializedName("batchCaEndpoints") - private String batchCaEndpoints = null; + @SerializedName("total") + private Integer total = null; - @SerializedName("status") - private String status = null; + @SerializedName("_embedded") + private InlineResponse2008Embedded embedded = null; - @SerializedName("totals") - private InlineResponse2007EmbeddedTotals totals = null; - - @SerializedName("billing") - private InlineResponse2008Billing billing = null; - - @SerializedName("description") - private String description = null; - - public InlineResponse2008 links(InlineResponse2008Links links) { + public InlineResponse2008 links(List links) { this.links = links; return this; } + public InlineResponse2008 addLinksItem(InlineResponse2008Links linksItem) { + if (this.links == null) { + this.links = new ArrayList(); + } + this.links.add(linksItem); + return this; + } + /** * Get links * @return links **/ @ApiModelProperty(value = "") - public InlineResponse2008Links getLinks() { + public List getLinks() { return links; } - public void setLinks(InlineResponse2008Links links) { + public void setLinks(List links) { this.links = links; } - public InlineResponse2008 batchId(String batchId) { - this.batchId = batchId; - return this; - } - - /** - * Unique identification number assigned to the submitted request. - * @return batchId - **/ - @ApiModelProperty(example = "16188390061150001062041064", value = "Unique identification number assigned to the submitted request.") - public String getBatchId() { - return batchId; - } - - public void setBatchId(String batchId) { - this.batchId = batchId; - } - - public InlineResponse2008 batchCreatedDate(String batchCreatedDate) { - this.batchCreatedDate = batchCreatedDate; + public InlineResponse2008 object(String object) { + this.object = object; return this; } /** - * ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ - * @return batchCreatedDate + * Get object + * @return object **/ - @ApiModelProperty(example = "2018-05-22T14.38.57Z", value = "ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ") - public String getBatchCreatedDate() { - return batchCreatedDate; + @ApiModelProperty(example = "collection", value = "") + public String getObject() { + return object; } - public void setBatchCreatedDate(String batchCreatedDate) { - this.batchCreatedDate = batchCreatedDate; + public void setObject(String object) { + this.object = object; } - public InlineResponse2008 batchSource(String batchSource) { - this.batchSource = batchSource; + public InlineResponse2008 offset(Integer offset) { + this.offset = offset; return this; } /** - * Valid Values: * SCHEDULER * TOKEN_API * CREDIT_CARD_FILE_UPLOAD * AMEX_REGSITRY * AMEX_REGISTRY_API * AMEX_MAINTENANCE - * @return batchSource + * Get offset + * @return offset **/ - @ApiModelProperty(value = "Valid Values: * SCHEDULER * TOKEN_API * CREDIT_CARD_FILE_UPLOAD * AMEX_REGSITRY * AMEX_REGISTRY_API * AMEX_MAINTENANCE ") - public String getBatchSource() { - return batchSource; + @ApiModelProperty(example = "0", value = "") + public Integer getOffset() { + return offset; } - public void setBatchSource(String batchSource) { - this.batchSource = batchSource; + public void setOffset(Integer offset) { + this.offset = offset; } - public InlineResponse2008 merchantReference(String merchantReference) { - this.merchantReference = merchantReference; + public InlineResponse2008 limit(Integer limit) { + this.limit = limit; return this; } /** - * Reference used by merchant to identify batch. - * @return merchantReference + * Get limit + * @return limit **/ - @ApiModelProperty(example = "TC50171_3", value = "Reference used by merchant to identify batch.") - public String getMerchantReference() { - return merchantReference; + @ApiModelProperty(example = "20", value = "") + public Integer getLimit() { + return limit; } - public void setMerchantReference(String merchantReference) { - this.merchantReference = merchantReference; + public void setLimit(Integer limit) { + this.limit = limit; } - public InlineResponse2008 batchCaEndpoints(String batchCaEndpoints) { - this.batchCaEndpoints = batchCaEndpoints; + public InlineResponse2008 count(Integer count) { + this.count = count; return this; } /** - * Get batchCaEndpoints - * @return batchCaEndpoints + * Get count + * @return count **/ - @ApiModelProperty(example = "VISA,MASTERCARD", value = "") - public String getBatchCaEndpoints() { - return batchCaEndpoints; + @ApiModelProperty(example = "1", value = "") + public Integer getCount() { + return count; } - public void setBatchCaEndpoints(String batchCaEndpoints) { - this.batchCaEndpoints = batchCaEndpoints; + public void setCount(Integer count) { + this.count = count; } - public InlineResponse2008 status(String status) { - this.status = status; + public InlineResponse2008 total(Integer total) { + this.total = total; return this; } /** - * Valid Values: * REJECTED * RECEIVED * VALIDATED * DECLINED * PROCESSING * COMPLETED - * @return status + * Get total + * @return total **/ - @ApiModelProperty(value = "Valid Values: * REJECTED * RECEIVED * VALIDATED * DECLINED * PROCESSING * COMPLETED ") - public String getStatus() { - return status; + @ApiModelProperty(example = "1", value = "") + public Integer getTotal() { + return total; } - public void setStatus(String status) { - this.status = status; + public void setTotal(Integer total) { + this.total = total; } - public InlineResponse2008 totals(InlineResponse2007EmbeddedTotals totals) { - this.totals = totals; + public InlineResponse2008 embedded(InlineResponse2008Embedded embedded) { + this.embedded = embedded; return this; } /** - * Get totals - * @return totals + * Get embedded + * @return embedded **/ @ApiModelProperty(value = "") - public InlineResponse2007EmbeddedTotals getTotals() { - return totals; - } - - public void setTotals(InlineResponse2007EmbeddedTotals totals) { - this.totals = totals; - } - - public InlineResponse2008 billing(InlineResponse2008Billing billing) { - this.billing = billing; - return this; - } - - /** - * Get billing - * @return billing - **/ - @ApiModelProperty(value = "") - public InlineResponse2008Billing getBilling() { - return billing; - } - - public void setBilling(InlineResponse2008Billing billing) { - this.billing = billing; - } - - public InlineResponse2008 description(String description) { - this.description = description; - return this; - } - - /** - * Get description - * @return description - **/ - @ApiModelProperty(example = "Your batch has been received, and is being checked for errors.", value = "") - public String getDescription() { - return description; + public InlineResponse2008Embedded getEmbedded() { + return embedded; } - public void setDescription(String description) { - this.description = description; + public void setEmbedded(InlineResponse2008Embedded embedded) { + this.embedded = embedded; } @@ -253,20 +199,17 @@ public boolean equals(java.lang.Object o) { } InlineResponse2008 inlineResponse2008 = (InlineResponse2008) o; return Objects.equals(this.links, inlineResponse2008.links) && - Objects.equals(this.batchId, inlineResponse2008.batchId) && - Objects.equals(this.batchCreatedDate, inlineResponse2008.batchCreatedDate) && - Objects.equals(this.batchSource, inlineResponse2008.batchSource) && - Objects.equals(this.merchantReference, inlineResponse2008.merchantReference) && - Objects.equals(this.batchCaEndpoints, inlineResponse2008.batchCaEndpoints) && - Objects.equals(this.status, inlineResponse2008.status) && - Objects.equals(this.totals, inlineResponse2008.totals) && - Objects.equals(this.billing, inlineResponse2008.billing) && - Objects.equals(this.description, inlineResponse2008.description); + Objects.equals(this.object, inlineResponse2008.object) && + Objects.equals(this.offset, inlineResponse2008.offset) && + Objects.equals(this.limit, inlineResponse2008.limit) && + Objects.equals(this.count, inlineResponse2008.count) && + Objects.equals(this.total, inlineResponse2008.total) && + Objects.equals(this.embedded, inlineResponse2008.embedded); } @Override public int hashCode() { - return Objects.hash(links, batchId, batchCreatedDate, batchSource, merchantReference, batchCaEndpoints, status, totals, billing, description); + return Objects.hash(links, object, offset, limit, count, total, embedded); } @@ -276,15 +219,12 @@ public String toString() { sb.append("class InlineResponse2008 {\n"); if (links != null) sb.append(" links: ").append(toIndentedString(links)).append("\n"); - if (batchId != null) sb.append(" batchId: ").append(toIndentedString(batchId)).append("\n"); - if (batchCreatedDate != null) sb.append(" batchCreatedDate: ").append(toIndentedString(batchCreatedDate)).append("\n"); - if (batchSource != null) sb.append(" batchSource: ").append(toIndentedString(batchSource)).append("\n"); - if (merchantReference != null) sb.append(" merchantReference: ").append(toIndentedString(merchantReference)).append("\n"); - if (batchCaEndpoints != null) sb.append(" batchCaEndpoints: ").append(toIndentedString(batchCaEndpoints)).append("\n"); - if (status != null) sb.append(" status: ").append(toIndentedString(status)).append("\n"); - if (totals != null) sb.append(" totals: ").append(toIndentedString(totals)).append("\n"); - if (billing != null) sb.append(" billing: ").append(toIndentedString(billing)).append("\n"); - if (description != null) sb.append(" description: ").append(toIndentedString(description)).append("\n"); + if (object != null) sb.append(" object: ").append(toIndentedString(object)).append("\n"); + if (offset != null) sb.append(" offset: ").append(toIndentedString(offset)).append("\n"); + if (limit != null) sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + if (count != null) sb.append(" count: ").append(toIndentedString(count)).append("\n"); + if (total != null) sb.append(" total: ").append(toIndentedString(total)).append("\n"); + if (embedded != null) sb.append(" embedded: ").append(toIndentedString(embedded)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/Model/InlineResponse2007Embedded.java b/src/main/java/Model/InlineResponse2008Embedded.java similarity index 71% rename from src/main/java/Model/InlineResponse2007Embedded.java rename to src/main/java/Model/InlineResponse2008Embedded.java index 504161a4..e4cade7d 100644 --- a/src/main/java/Model/InlineResponse2007Embedded.java +++ b/src/main/java/Model/InlineResponse2008Embedded.java @@ -15,7 +15,7 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2007EmbeddedBatches; +import Model.InlineResponse2008EmbeddedBatches; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -28,21 +28,21 @@ import java.util.List; /** - * InlineResponse2007Embedded + * InlineResponse2008Embedded */ -public class InlineResponse2007Embedded { +public class InlineResponse2008Embedded { @SerializedName("batches") - private List batches = null; + private List batches = null; - public InlineResponse2007Embedded batches(List batches) { + public InlineResponse2008Embedded batches(List batches) { this.batches = batches; return this; } - public InlineResponse2007Embedded addBatchesItem(InlineResponse2007EmbeddedBatches batchesItem) { + public InlineResponse2008Embedded addBatchesItem(InlineResponse2008EmbeddedBatches batchesItem) { if (this.batches == null) { - this.batches = new ArrayList(); + this.batches = new ArrayList(); } this.batches.add(batchesItem); return this; @@ -53,11 +53,11 @@ public InlineResponse2007Embedded addBatchesItem(InlineResponse2007EmbeddedBatch * @return batches **/ @ApiModelProperty(value = "") - public List getBatches() { + public List getBatches() { return batches; } - public void setBatches(List batches) { + public void setBatches(List batches) { this.batches = batches; } @@ -70,8 +70,8 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2007Embedded inlineResponse2007Embedded = (InlineResponse2007Embedded) o; - return Objects.equals(this.batches, inlineResponse2007Embedded.batches); + InlineResponse2008Embedded inlineResponse2008Embedded = (InlineResponse2008Embedded) o; + return Objects.equals(this.batches, inlineResponse2008Embedded.batches); } @Override @@ -83,7 +83,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2007Embedded {\n"); + sb.append("class InlineResponse2008Embedded {\n"); if (batches != null) sb.append(" batches: ").append(toIndentedString(batches)).append("\n"); sb.append("}"); diff --git a/src/main/java/Model/InlineResponse2007EmbeddedBatches.java b/src/main/java/Model/InlineResponse2008EmbeddedBatches.java similarity index 79% rename from src/main/java/Model/InlineResponse2007EmbeddedBatches.java rename to src/main/java/Model/InlineResponse2008EmbeddedBatches.java index e770ba2d..4308c8b5 100644 --- a/src/main/java/Model/InlineResponse2007EmbeddedBatches.java +++ b/src/main/java/Model/InlineResponse2008EmbeddedBatches.java @@ -15,8 +15,8 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2007EmbeddedLinks; -import Model.InlineResponse2007EmbeddedTotals; +import Model.InlineResponse2008EmbeddedLinks; +import Model.InlineResponse2008EmbeddedTotals; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -29,12 +29,12 @@ import java.util.List; /** - * InlineResponse2007EmbeddedBatches + * InlineResponse2008EmbeddedBatches */ -public class InlineResponse2007EmbeddedBatches { +public class InlineResponse2008EmbeddedBatches { @SerializedName("_links") - private InlineResponse2007EmbeddedLinks links = null; + private InlineResponse2008EmbeddedLinks links = null; @SerializedName("batchId") private String batchId = null; @@ -61,9 +61,9 @@ public class InlineResponse2007EmbeddedBatches { private String status = null; @SerializedName("totals") - private InlineResponse2007EmbeddedTotals totals = null; + private InlineResponse2008EmbeddedTotals totals = null; - public InlineResponse2007EmbeddedBatches links(InlineResponse2007EmbeddedLinks links) { + public InlineResponse2008EmbeddedBatches links(InlineResponse2008EmbeddedLinks links) { this.links = links; return this; } @@ -73,15 +73,15 @@ public InlineResponse2007EmbeddedBatches links(InlineResponse2007EmbeddedLinks l * @return links **/ @ApiModelProperty(value = "") - public InlineResponse2007EmbeddedLinks getLinks() { + public InlineResponse2008EmbeddedLinks getLinks() { return links; } - public void setLinks(InlineResponse2007EmbeddedLinks links) { + public void setLinks(InlineResponse2008EmbeddedLinks links) { this.links = links; } - public InlineResponse2007EmbeddedBatches batchId(String batchId) { + public InlineResponse2008EmbeddedBatches batchId(String batchId) { this.batchId = batchId; return this; } @@ -99,7 +99,7 @@ public void setBatchId(String batchId) { this.batchId = batchId; } - public InlineResponse2007EmbeddedBatches batchCreatedDate(String batchCreatedDate) { + public InlineResponse2008EmbeddedBatches batchCreatedDate(String batchCreatedDate) { this.batchCreatedDate = batchCreatedDate; return this; } @@ -117,7 +117,7 @@ public void setBatchCreatedDate(String batchCreatedDate) { this.batchCreatedDate = batchCreatedDate; } - public InlineResponse2007EmbeddedBatches batchModifiedDate(String batchModifiedDate) { + public InlineResponse2008EmbeddedBatches batchModifiedDate(String batchModifiedDate) { this.batchModifiedDate = batchModifiedDate; return this; } @@ -135,7 +135,7 @@ public void setBatchModifiedDate(String batchModifiedDate) { this.batchModifiedDate = batchModifiedDate; } - public InlineResponse2007EmbeddedBatches batchSource(String batchSource) { + public InlineResponse2008EmbeddedBatches batchSource(String batchSource) { this.batchSource = batchSource; return this; } @@ -153,7 +153,7 @@ public void setBatchSource(String batchSource) { this.batchSource = batchSource; } - public InlineResponse2007EmbeddedBatches tokenSource(String tokenSource) { + public InlineResponse2008EmbeddedBatches tokenSource(String tokenSource) { this.tokenSource = tokenSource; return this; } @@ -171,7 +171,7 @@ public void setTokenSource(String tokenSource) { this.tokenSource = tokenSource; } - public InlineResponse2007EmbeddedBatches merchantReference(String merchantReference) { + public InlineResponse2008EmbeddedBatches merchantReference(String merchantReference) { this.merchantReference = merchantReference; return this; } @@ -189,12 +189,12 @@ public void setMerchantReference(String merchantReference) { this.merchantReference = merchantReference; } - public InlineResponse2007EmbeddedBatches batchCaEndpoints(List batchCaEndpoints) { + public InlineResponse2008EmbeddedBatches batchCaEndpoints(List batchCaEndpoints) { this.batchCaEndpoints = batchCaEndpoints; return this; } - public InlineResponse2007EmbeddedBatches addBatchCaEndpointsItem(String batchCaEndpointsItem) { + public InlineResponse2008EmbeddedBatches addBatchCaEndpointsItem(String batchCaEndpointsItem) { if (this.batchCaEndpoints == null) { this.batchCaEndpoints = new ArrayList(); } @@ -215,7 +215,7 @@ public void setBatchCaEndpoints(List batchCaEndpoints) { this.batchCaEndpoints = batchCaEndpoints; } - public InlineResponse2007EmbeddedBatches status(String status) { + public InlineResponse2008EmbeddedBatches status(String status) { this.status = status; return this; } @@ -233,7 +233,7 @@ public void setStatus(String status) { this.status = status; } - public InlineResponse2007EmbeddedBatches totals(InlineResponse2007EmbeddedTotals totals) { + public InlineResponse2008EmbeddedBatches totals(InlineResponse2008EmbeddedTotals totals) { this.totals = totals; return this; } @@ -243,11 +243,11 @@ public InlineResponse2007EmbeddedBatches totals(InlineResponse2007EmbeddedTotals * @return totals **/ @ApiModelProperty(value = "") - public InlineResponse2007EmbeddedTotals getTotals() { + public InlineResponse2008EmbeddedTotals getTotals() { return totals; } - public void setTotals(InlineResponse2007EmbeddedTotals totals) { + public void setTotals(InlineResponse2008EmbeddedTotals totals) { this.totals = totals; } @@ -260,17 +260,17 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2007EmbeddedBatches inlineResponse2007EmbeddedBatches = (InlineResponse2007EmbeddedBatches) o; - return Objects.equals(this.links, inlineResponse2007EmbeddedBatches.links) && - Objects.equals(this.batchId, inlineResponse2007EmbeddedBatches.batchId) && - Objects.equals(this.batchCreatedDate, inlineResponse2007EmbeddedBatches.batchCreatedDate) && - Objects.equals(this.batchModifiedDate, inlineResponse2007EmbeddedBatches.batchModifiedDate) && - Objects.equals(this.batchSource, inlineResponse2007EmbeddedBatches.batchSource) && - Objects.equals(this.tokenSource, inlineResponse2007EmbeddedBatches.tokenSource) && - Objects.equals(this.merchantReference, inlineResponse2007EmbeddedBatches.merchantReference) && - Objects.equals(this.batchCaEndpoints, inlineResponse2007EmbeddedBatches.batchCaEndpoints) && - Objects.equals(this.status, inlineResponse2007EmbeddedBatches.status) && - Objects.equals(this.totals, inlineResponse2007EmbeddedBatches.totals); + InlineResponse2008EmbeddedBatches inlineResponse2008EmbeddedBatches = (InlineResponse2008EmbeddedBatches) o; + return Objects.equals(this.links, inlineResponse2008EmbeddedBatches.links) && + Objects.equals(this.batchId, inlineResponse2008EmbeddedBatches.batchId) && + Objects.equals(this.batchCreatedDate, inlineResponse2008EmbeddedBatches.batchCreatedDate) && + Objects.equals(this.batchModifiedDate, inlineResponse2008EmbeddedBatches.batchModifiedDate) && + Objects.equals(this.batchSource, inlineResponse2008EmbeddedBatches.batchSource) && + Objects.equals(this.tokenSource, inlineResponse2008EmbeddedBatches.tokenSource) && + Objects.equals(this.merchantReference, inlineResponse2008EmbeddedBatches.merchantReference) && + Objects.equals(this.batchCaEndpoints, inlineResponse2008EmbeddedBatches.batchCaEndpoints) && + Objects.equals(this.status, inlineResponse2008EmbeddedBatches.status) && + Objects.equals(this.totals, inlineResponse2008EmbeddedBatches.totals); } @Override @@ -282,7 +282,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2007EmbeddedBatches {\n"); + sb.append("class InlineResponse2008EmbeddedBatches {\n"); if (links != null) sb.append(" links: ").append(toIndentedString(links)).append("\n"); if (batchId != null) sb.append(" batchId: ").append(toIndentedString(batchId)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2007EmbeddedLinks.java b/src/main/java/Model/InlineResponse2008EmbeddedLinks.java similarity index 70% rename from src/main/java/Model/InlineResponse2007EmbeddedLinks.java rename to src/main/java/Model/InlineResponse2008EmbeddedLinks.java index 12651682..222af25f 100644 --- a/src/main/java/Model/InlineResponse2007EmbeddedLinks.java +++ b/src/main/java/Model/InlineResponse2008EmbeddedLinks.java @@ -15,7 +15,7 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2007EmbeddedLinksReports; +import Model.InlineResponse2008EmbeddedLinksReports; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -28,21 +28,21 @@ import java.util.List; /** - * InlineResponse2007EmbeddedLinks + * InlineResponse2008EmbeddedLinks */ -public class InlineResponse2007EmbeddedLinks { +public class InlineResponse2008EmbeddedLinks { @SerializedName("reports") - private List reports = null; + private List reports = null; - public InlineResponse2007EmbeddedLinks reports(List reports) { + public InlineResponse2008EmbeddedLinks reports(List reports) { this.reports = reports; return this; } - public InlineResponse2007EmbeddedLinks addReportsItem(InlineResponse2007EmbeddedLinksReports reportsItem) { + public InlineResponse2008EmbeddedLinks addReportsItem(InlineResponse2008EmbeddedLinksReports reportsItem) { if (this.reports == null) { - this.reports = new ArrayList(); + this.reports = new ArrayList(); } this.reports.add(reportsItem); return this; @@ -53,11 +53,11 @@ public InlineResponse2007EmbeddedLinks addReportsItem(InlineResponse2007Embedded * @return reports **/ @ApiModelProperty(value = "") - public List getReports() { + public List getReports() { return reports; } - public void setReports(List reports) { + public void setReports(List reports) { this.reports = reports; } @@ -70,8 +70,8 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2007EmbeddedLinks inlineResponse2007EmbeddedLinks = (InlineResponse2007EmbeddedLinks) o; - return Objects.equals(this.reports, inlineResponse2007EmbeddedLinks.reports); + InlineResponse2008EmbeddedLinks inlineResponse2008EmbeddedLinks = (InlineResponse2008EmbeddedLinks) o; + return Objects.equals(this.reports, inlineResponse2008EmbeddedLinks.reports); } @Override @@ -83,7 +83,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2007EmbeddedLinks {\n"); + sb.append("class InlineResponse2008EmbeddedLinks {\n"); if (reports != null) sb.append(" reports: ").append(toIndentedString(reports)).append("\n"); sb.append("}"); diff --git a/src/main/java/Model/InlineResponse2007EmbeddedLinksReports.java b/src/main/java/Model/InlineResponse2008EmbeddedLinksReports.java similarity index 85% rename from src/main/java/Model/InlineResponse2007EmbeddedLinksReports.java rename to src/main/java/Model/InlineResponse2008EmbeddedLinksReports.java index 7b8c25a3..2b270a5b 100644 --- a/src/main/java/Model/InlineResponse2007EmbeddedLinksReports.java +++ b/src/main/java/Model/InlineResponse2008EmbeddedLinksReports.java @@ -29,11 +29,11 @@ */ @ApiModel(description = "Retrieve the generated report of a batch when available.") -public class InlineResponse2007EmbeddedLinksReports { +public class InlineResponse2008EmbeddedLinksReports { @SerializedName("href") private String href = null; - public InlineResponse2007EmbeddedLinksReports href(String href) { + public InlineResponse2008EmbeddedLinksReports href(String href) { this.href = href; return this; } @@ -60,8 +60,8 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2007EmbeddedLinksReports inlineResponse2007EmbeddedLinksReports = (InlineResponse2007EmbeddedLinksReports) o; - return Objects.equals(this.href, inlineResponse2007EmbeddedLinksReports.href); + InlineResponse2008EmbeddedLinksReports inlineResponse2008EmbeddedLinksReports = (InlineResponse2008EmbeddedLinksReports) o; + return Objects.equals(this.href, inlineResponse2008EmbeddedLinksReports.href); } @Override @@ -73,7 +73,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2007EmbeddedLinksReports {\n"); + sb.append("class InlineResponse2008EmbeddedLinksReports {\n"); if (href != null) sb.append(" href: ").append(toIndentedString(href)).append("\n"); sb.append("}"); diff --git a/src/main/java/Model/InlineResponse2007EmbeddedTotals.java b/src/main/java/Model/InlineResponse2008EmbeddedTotals.java similarity index 84% rename from src/main/java/Model/InlineResponse2007EmbeddedTotals.java rename to src/main/java/Model/InlineResponse2008EmbeddedTotals.java index e4de1f52..e86d744a 100644 --- a/src/main/java/Model/InlineResponse2007EmbeddedTotals.java +++ b/src/main/java/Model/InlineResponse2008EmbeddedTotals.java @@ -25,10 +25,10 @@ import java.io.IOException; /** - * InlineResponse2007EmbeddedTotals + * InlineResponse2008EmbeddedTotals */ -public class InlineResponse2007EmbeddedTotals { +public class InlineResponse2008EmbeddedTotals { @SerializedName("acceptedRecords") private Integer acceptedRecords = null; @@ -44,7 +44,7 @@ public class InlineResponse2007EmbeddedTotals { @SerializedName("caResponsesOmitted") private Integer caResponsesOmitted = null; - public InlineResponse2007EmbeddedTotals acceptedRecords(Integer acceptedRecords) { + public InlineResponse2008EmbeddedTotals acceptedRecords(Integer acceptedRecords) { this.acceptedRecords = acceptedRecords; return this; } @@ -62,7 +62,7 @@ public void setAcceptedRecords(Integer acceptedRecords) { this.acceptedRecords = acceptedRecords; } - public InlineResponse2007EmbeddedTotals rejectedRecords(Integer rejectedRecords) { + public InlineResponse2008EmbeddedTotals rejectedRecords(Integer rejectedRecords) { this.rejectedRecords = rejectedRecords; return this; } @@ -80,7 +80,7 @@ public void setRejectedRecords(Integer rejectedRecords) { this.rejectedRecords = rejectedRecords; } - public InlineResponse2007EmbeddedTotals updatedRecords(Integer updatedRecords) { + public InlineResponse2008EmbeddedTotals updatedRecords(Integer updatedRecords) { this.updatedRecords = updatedRecords; return this; } @@ -98,7 +98,7 @@ public void setUpdatedRecords(Integer updatedRecords) { this.updatedRecords = updatedRecords; } - public InlineResponse2007EmbeddedTotals caResponses(Integer caResponses) { + public InlineResponse2008EmbeddedTotals caResponses(Integer caResponses) { this.caResponses = caResponses; return this; } @@ -116,7 +116,7 @@ public void setCaResponses(Integer caResponses) { this.caResponses = caResponses; } - public InlineResponse2007EmbeddedTotals caResponsesOmitted(Integer caResponsesOmitted) { + public InlineResponse2008EmbeddedTotals caResponsesOmitted(Integer caResponsesOmitted) { this.caResponsesOmitted = caResponsesOmitted; return this; } @@ -143,12 +143,12 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2007EmbeddedTotals inlineResponse2007EmbeddedTotals = (InlineResponse2007EmbeddedTotals) o; - return Objects.equals(this.acceptedRecords, inlineResponse2007EmbeddedTotals.acceptedRecords) && - Objects.equals(this.rejectedRecords, inlineResponse2007EmbeddedTotals.rejectedRecords) && - Objects.equals(this.updatedRecords, inlineResponse2007EmbeddedTotals.updatedRecords) && - Objects.equals(this.caResponses, inlineResponse2007EmbeddedTotals.caResponses) && - Objects.equals(this.caResponsesOmitted, inlineResponse2007EmbeddedTotals.caResponsesOmitted); + InlineResponse2008EmbeddedTotals inlineResponse2008EmbeddedTotals = (InlineResponse2008EmbeddedTotals) o; + return Objects.equals(this.acceptedRecords, inlineResponse2008EmbeddedTotals.acceptedRecords) && + Objects.equals(this.rejectedRecords, inlineResponse2008EmbeddedTotals.rejectedRecords) && + Objects.equals(this.updatedRecords, inlineResponse2008EmbeddedTotals.updatedRecords) && + Objects.equals(this.caResponses, inlineResponse2008EmbeddedTotals.caResponses) && + Objects.equals(this.caResponsesOmitted, inlineResponse2008EmbeddedTotals.caResponsesOmitted); } @Override @@ -160,7 +160,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2007EmbeddedTotals {\n"); + sb.append("class InlineResponse2008EmbeddedTotals {\n"); if (acceptedRecords != null) sb.append(" acceptedRecords: ").append(toIndentedString(acceptedRecords)).append("\n"); if (rejectedRecords != null) sb.append(" rejectedRecords: ").append(toIndentedString(rejectedRecords)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2008Links.java b/src/main/java/Model/InlineResponse2008Links.java index e3f46cfa..0e3562c8 100644 --- a/src/main/java/Model/InlineResponse2008Links.java +++ b/src/main/java/Model/InlineResponse2008Links.java @@ -15,8 +15,6 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2008LinksReport; -import Model.InlineResponse202LinksStatus; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -25,62 +23,52 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; /** * InlineResponse2008Links */ public class InlineResponse2008Links { - @SerializedName("self") - private InlineResponse202LinksStatus self = null; + @SerializedName("rel") + private String rel = null; - @SerializedName("report") - private List report = null; + @SerializedName("href") + private String href = null; - public InlineResponse2008Links self(InlineResponse202LinksStatus self) { - this.self = self; + public InlineResponse2008Links rel(String rel) { + this.rel = rel; return this; } /** - * Get self - * @return self + * Valid Values: * self * first * last * prev * next + * @return rel **/ - @ApiModelProperty(value = "") - public InlineResponse202LinksStatus getSelf() { - return self; + @ApiModelProperty(value = "Valid Values: * self * first * last * prev * next ") + public String getRel() { + return rel; } - public void setSelf(InlineResponse202LinksStatus self) { - this.self = self; + public void setRel(String rel) { + this.rel = rel; } - public InlineResponse2008Links report(List report) { - this.report = report; - return this; - } - - public InlineResponse2008Links addReportItem(InlineResponse2008LinksReport reportItem) { - if (this.report == null) { - this.report = new ArrayList(); - } - this.report.add(reportItem); + public InlineResponse2008Links href(String href) { + this.href = href; return this; } /** - * Get report - * @return report + * Get href + * @return href **/ - @ApiModelProperty(value = "") - public List getReport() { - return report; + @ApiModelProperty(example = "https://api.cybersource.com/accountupdater/v1/batches?offset=0&limit=20", value = "") + public String getHref() { + return href; } - public void setReport(List report) { - this.report = report; + public void setHref(String href) { + this.href = href; } @@ -93,13 +81,13 @@ public boolean equals(java.lang.Object o) { return false; } InlineResponse2008Links inlineResponse2008Links = (InlineResponse2008Links) o; - return Objects.equals(this.self, inlineResponse2008Links.self) && - Objects.equals(this.report, inlineResponse2008Links.report); + return Objects.equals(this.rel, inlineResponse2008Links.rel) && + Objects.equals(this.href, inlineResponse2008Links.href); } @Override public int hashCode() { - return Objects.hash(self, report); + return Objects.hash(rel, href); } @@ -108,8 +96,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class InlineResponse2008Links {\n"); - if (self != null) sb.append(" self: ").append(toIndentedString(self)).append("\n"); - if (report != null) sb.append(" report: ").append(toIndentedString(report)).append("\n"); + if (rel != null) sb.append(" rel: ").append(toIndentedString(rel)).append("\n"); + if (href != null) sb.append(" href: ").append(toIndentedString(href)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/Model/InlineResponse2009.java b/src/main/java/Model/InlineResponse2009.java index ed096a07..838567c1 100644 --- a/src/main/java/Model/InlineResponse2009.java +++ b/src/main/java/Model/InlineResponse2009.java @@ -15,9 +15,9 @@ import java.util.Objects; import java.util.Arrays; -import Model.InlineResponse2007EmbeddedTotals; -import Model.InlineResponse2008Billing; -import Model.InlineResponse2009Records; +import Model.InlineResponse2008EmbeddedTotals; +import Model.InlineResponse2009Billing; +import Model.InlineResponse2009Links; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -26,78 +26,58 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; /** * InlineResponse2009 */ public class InlineResponse2009 { - @SerializedName("version") - private String version = null; - - @SerializedName("reportCreatedDate") - private String reportCreatedDate = null; + @SerializedName("_links") + private InlineResponse2009Links links = null; @SerializedName("batchId") private String batchId = null; + @SerializedName("batchCreatedDate") + private String batchCreatedDate = null; + @SerializedName("batchSource") private String batchSource = null; + @SerializedName("merchantReference") + private String merchantReference = null; + @SerializedName("batchCaEndpoints") private String batchCaEndpoints = null; - @SerializedName("batchCreatedDate") - private String batchCreatedDate = null; - - @SerializedName("merchantReference") - private String merchantReference = null; + @SerializedName("status") + private String status = null; @SerializedName("totals") - private InlineResponse2007EmbeddedTotals totals = null; + private InlineResponse2008EmbeddedTotals totals = null; @SerializedName("billing") - private InlineResponse2008Billing billing = null; + private InlineResponse2009Billing billing = null; - @SerializedName("records") - private List records = null; + @SerializedName("description") + private String description = null; - public InlineResponse2009 version(String version) { - this.version = version; + public InlineResponse2009 links(InlineResponse2009Links links) { + this.links = links; return this; } /** - * Get version - * @return version + * Get links + * @return links **/ - @ApiModelProperty(example = "1.0", value = "") - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public InlineResponse2009 reportCreatedDate(String reportCreatedDate) { - this.reportCreatedDate = reportCreatedDate; - return this; - } - - /** - * ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ - * @return reportCreatedDate - **/ - @ApiModelProperty(example = "2018-05-22T14.38.57Z", value = "ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ") - public String getReportCreatedDate() { - return reportCreatedDate; + @ApiModelProperty(value = "") + public InlineResponse2009Links getLinks() { + return links; } - public void setReportCreatedDate(String reportCreatedDate) { - this.reportCreatedDate = reportCreatedDate; + public void setLinks(InlineResponse2009Links links) { + this.links = links; } public InlineResponse2009 batchId(String batchId) { @@ -118,6 +98,24 @@ public void setBatchId(String batchId) { this.batchId = batchId; } + public InlineResponse2009 batchCreatedDate(String batchCreatedDate) { + this.batchCreatedDate = batchCreatedDate; + return this; + } + + /** + * ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ + * @return batchCreatedDate + **/ + @ApiModelProperty(example = "2018-05-22T14.38.57Z", value = "ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ") + public String getBatchCreatedDate() { + return batchCreatedDate; + } + + public void setBatchCreatedDate(String batchCreatedDate) { + this.batchCreatedDate = batchCreatedDate; + } + public InlineResponse2009 batchSource(String batchSource) { this.batchSource = batchSource; return this; @@ -136,61 +134,61 @@ public void setBatchSource(String batchSource) { this.batchSource = batchSource; } - public InlineResponse2009 batchCaEndpoints(String batchCaEndpoints) { - this.batchCaEndpoints = batchCaEndpoints; + public InlineResponse2009 merchantReference(String merchantReference) { + this.merchantReference = merchantReference; return this; } /** - * Get batchCaEndpoints - * @return batchCaEndpoints + * Reference used by merchant to identify batch. + * @return merchantReference **/ - @ApiModelProperty(example = "VISA,MASTERCARD", value = "") - public String getBatchCaEndpoints() { - return batchCaEndpoints; + @ApiModelProperty(example = "TC50171_3", value = "Reference used by merchant to identify batch.") + public String getMerchantReference() { + return merchantReference; } - public void setBatchCaEndpoints(String batchCaEndpoints) { - this.batchCaEndpoints = batchCaEndpoints; + public void setMerchantReference(String merchantReference) { + this.merchantReference = merchantReference; } - public InlineResponse2009 batchCreatedDate(String batchCreatedDate) { - this.batchCreatedDate = batchCreatedDate; + public InlineResponse2009 batchCaEndpoints(String batchCaEndpoints) { + this.batchCaEndpoints = batchCaEndpoints; return this; } /** - * ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ - * @return batchCreatedDate + * Get batchCaEndpoints + * @return batchCaEndpoints **/ - @ApiModelProperty(example = "2018-05-22T14.38.57Z", value = "ISO-8601 format: yyyy-MM-ddTHH:mm:ssZ") - public String getBatchCreatedDate() { - return batchCreatedDate; + @ApiModelProperty(example = "VISA,MASTERCARD", value = "") + public String getBatchCaEndpoints() { + return batchCaEndpoints; } - public void setBatchCreatedDate(String batchCreatedDate) { - this.batchCreatedDate = batchCreatedDate; + public void setBatchCaEndpoints(String batchCaEndpoints) { + this.batchCaEndpoints = batchCaEndpoints; } - public InlineResponse2009 merchantReference(String merchantReference) { - this.merchantReference = merchantReference; + public InlineResponse2009 status(String status) { + this.status = status; return this; } /** - * Reference used by merchant to identify batch. - * @return merchantReference + * Valid Values: * REJECTED * RECEIVED * VALIDATED * DECLINED * PROCESSING * COMPLETED + * @return status **/ - @ApiModelProperty(example = "TC50171_3", value = "Reference used by merchant to identify batch.") - public String getMerchantReference() { - return merchantReference; + @ApiModelProperty(value = "Valid Values: * REJECTED * RECEIVED * VALIDATED * DECLINED * PROCESSING * COMPLETED ") + public String getStatus() { + return status; } - public void setMerchantReference(String merchantReference) { - this.merchantReference = merchantReference; + public void setStatus(String status) { + this.status = status; } - public InlineResponse2009 totals(InlineResponse2007EmbeddedTotals totals) { + public InlineResponse2009 totals(InlineResponse2008EmbeddedTotals totals) { this.totals = totals; return this; } @@ -200,15 +198,15 @@ public InlineResponse2009 totals(InlineResponse2007EmbeddedTotals totals) { * @return totals **/ @ApiModelProperty(value = "") - public InlineResponse2007EmbeddedTotals getTotals() { + public InlineResponse2008EmbeddedTotals getTotals() { return totals; } - public void setTotals(InlineResponse2007EmbeddedTotals totals) { + public void setTotals(InlineResponse2008EmbeddedTotals totals) { this.totals = totals; } - public InlineResponse2009 billing(InlineResponse2008Billing billing) { + public InlineResponse2009 billing(InlineResponse2009Billing billing) { this.billing = billing; return this; } @@ -218,38 +216,30 @@ public InlineResponse2009 billing(InlineResponse2008Billing billing) { * @return billing **/ @ApiModelProperty(value = "") - public InlineResponse2008Billing getBilling() { + public InlineResponse2009Billing getBilling() { return billing; } - public void setBilling(InlineResponse2008Billing billing) { + public void setBilling(InlineResponse2009Billing billing) { this.billing = billing; } - public InlineResponse2009 records(List records) { - this.records = records; - return this; - } - - public InlineResponse2009 addRecordsItem(InlineResponse2009Records recordsItem) { - if (this.records == null) { - this.records = new ArrayList(); - } - this.records.add(recordsItem); + public InlineResponse2009 description(String description) { + this.description = description; return this; } /** - * Get records - * @return records + * Get description + * @return description **/ - @ApiModelProperty(value = "") - public List getRecords() { - return records; + @ApiModelProperty(example = "Your batch has been received, and is being checked for errors.", value = "") + public String getDescription() { + return description; } - public void setRecords(List records) { - this.records = records; + public void setDescription(String description) { + this.description = description; } @@ -262,21 +252,21 @@ public boolean equals(java.lang.Object o) { return false; } InlineResponse2009 inlineResponse2009 = (InlineResponse2009) o; - return Objects.equals(this.version, inlineResponse2009.version) && - Objects.equals(this.reportCreatedDate, inlineResponse2009.reportCreatedDate) && + return Objects.equals(this.links, inlineResponse2009.links) && Objects.equals(this.batchId, inlineResponse2009.batchId) && - Objects.equals(this.batchSource, inlineResponse2009.batchSource) && - Objects.equals(this.batchCaEndpoints, inlineResponse2009.batchCaEndpoints) && Objects.equals(this.batchCreatedDate, inlineResponse2009.batchCreatedDate) && + Objects.equals(this.batchSource, inlineResponse2009.batchSource) && Objects.equals(this.merchantReference, inlineResponse2009.merchantReference) && + Objects.equals(this.batchCaEndpoints, inlineResponse2009.batchCaEndpoints) && + Objects.equals(this.status, inlineResponse2009.status) && Objects.equals(this.totals, inlineResponse2009.totals) && Objects.equals(this.billing, inlineResponse2009.billing) && - Objects.equals(this.records, inlineResponse2009.records); + Objects.equals(this.description, inlineResponse2009.description); } @Override public int hashCode() { - return Objects.hash(version, reportCreatedDate, batchId, batchSource, batchCaEndpoints, batchCreatedDate, merchantReference, totals, billing, records); + return Objects.hash(links, batchId, batchCreatedDate, batchSource, merchantReference, batchCaEndpoints, status, totals, billing, description); } @@ -285,16 +275,16 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class InlineResponse2009 {\n"); - if (version != null) sb.append(" version: ").append(toIndentedString(version)).append("\n"); - if (reportCreatedDate != null) sb.append(" reportCreatedDate: ").append(toIndentedString(reportCreatedDate)).append("\n"); + if (links != null) sb.append(" links: ").append(toIndentedString(links)).append("\n"); if (batchId != null) sb.append(" batchId: ").append(toIndentedString(batchId)).append("\n"); - if (batchSource != null) sb.append(" batchSource: ").append(toIndentedString(batchSource)).append("\n"); - if (batchCaEndpoints != null) sb.append(" batchCaEndpoints: ").append(toIndentedString(batchCaEndpoints)).append("\n"); if (batchCreatedDate != null) sb.append(" batchCreatedDate: ").append(toIndentedString(batchCreatedDate)).append("\n"); + if (batchSource != null) sb.append(" batchSource: ").append(toIndentedString(batchSource)).append("\n"); if (merchantReference != null) sb.append(" merchantReference: ").append(toIndentedString(merchantReference)).append("\n"); + if (batchCaEndpoints != null) sb.append(" batchCaEndpoints: ").append(toIndentedString(batchCaEndpoints)).append("\n"); + if (status != null) sb.append(" status: ").append(toIndentedString(status)).append("\n"); if (totals != null) sb.append(" totals: ").append(toIndentedString(totals)).append("\n"); if (billing != null) sb.append(" billing: ").append(toIndentedString(billing)).append("\n"); - if (records != null) sb.append(" records: ").append(toIndentedString(records)).append("\n"); + if (description != null) sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/Model/InlineResponse2008Billing.java b/src/main/java/Model/InlineResponse2009Billing.java similarity index 81% rename from src/main/java/Model/InlineResponse2008Billing.java rename to src/main/java/Model/InlineResponse2009Billing.java index 22c2d47d..a24723e0 100644 --- a/src/main/java/Model/InlineResponse2008Billing.java +++ b/src/main/java/Model/InlineResponse2009Billing.java @@ -25,10 +25,10 @@ import java.io.IOException; /** - * InlineResponse2008Billing + * InlineResponse2009Billing */ -public class InlineResponse2008Billing { +public class InlineResponse2009Billing { @SerializedName("nan") private Integer nan = null; @@ -41,7 +41,7 @@ public class InlineResponse2008Billing { @SerializedName("cch") private Integer cch = null; - public InlineResponse2008Billing nan(Integer nan) { + public InlineResponse2009Billing nan(Integer nan) { this.nan = nan; return this; } @@ -59,7 +59,7 @@ public void setNan(Integer nan) { this.nan = nan; } - public InlineResponse2008Billing ned(Integer ned) { + public InlineResponse2009Billing ned(Integer ned) { this.ned = ned; return this; } @@ -77,7 +77,7 @@ public void setNed(Integer ned) { this.ned = ned; } - public InlineResponse2008Billing acl(Integer acl) { + public InlineResponse2009Billing acl(Integer acl) { this.acl = acl; return this; } @@ -95,7 +95,7 @@ public void setAcl(Integer acl) { this.acl = acl; } - public InlineResponse2008Billing cch(Integer cch) { + public InlineResponse2009Billing cch(Integer cch) { this.cch = cch; return this; } @@ -122,11 +122,11 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2008Billing inlineResponse2008Billing = (InlineResponse2008Billing) o; - return Objects.equals(this.nan, inlineResponse2008Billing.nan) && - Objects.equals(this.ned, inlineResponse2008Billing.ned) && - Objects.equals(this.acl, inlineResponse2008Billing.acl) && - Objects.equals(this.cch, inlineResponse2008Billing.cch); + InlineResponse2009Billing inlineResponse2009Billing = (InlineResponse2009Billing) o; + return Objects.equals(this.nan, inlineResponse2009Billing.nan) && + Objects.equals(this.ned, inlineResponse2009Billing.ned) && + Objects.equals(this.acl, inlineResponse2009Billing.acl) && + Objects.equals(this.cch, inlineResponse2009Billing.cch); } @Override @@ -138,7 +138,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2008Billing {\n"); + sb.append("class InlineResponse2009Billing {\n"); if (nan != null) sb.append(" nan: ").append(toIndentedString(nan)).append("\n"); if (ned != null) sb.append(" ned: ").append(toIndentedString(ned)).append("\n"); diff --git a/src/main/java/Model/InlineResponse2009Links.java b/src/main/java/Model/InlineResponse2009Links.java new file mode 100644 index 00000000..416ba4a6 --- /dev/null +++ b/src/main/java/Model/InlineResponse2009Links.java @@ -0,0 +1,129 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import Model.InlineResponse2009LinksReport; +import Model.InlineResponse202LinksStatus; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * InlineResponse2009Links + */ + +public class InlineResponse2009Links { + @SerializedName("self") + private InlineResponse202LinksStatus self = null; + + @SerializedName("report") + private List report = null; + + public InlineResponse2009Links self(InlineResponse202LinksStatus self) { + this.self = self; + return this; + } + + /** + * Get self + * @return self + **/ + @ApiModelProperty(value = "") + public InlineResponse202LinksStatus getSelf() { + return self; + } + + public void setSelf(InlineResponse202LinksStatus self) { + this.self = self; + } + + public InlineResponse2009Links report(List report) { + this.report = report; + return this; + } + + public InlineResponse2009Links addReportItem(InlineResponse2009LinksReport reportItem) { + if (this.report == null) { + this.report = new ArrayList(); + } + this.report.add(reportItem); + return this; + } + + /** + * Get report + * @return report + **/ + @ApiModelProperty(value = "") + public List getReport() { + return report; + } + + public void setReport(List report) { + this.report = report; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InlineResponse2009Links inlineResponse2009Links = (InlineResponse2009Links) o; + return Objects.equals(this.self, inlineResponse2009Links.self) && + Objects.equals(this.report, inlineResponse2009Links.report); + } + + @Override + public int hashCode() { + return Objects.hash(self, report); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InlineResponse2009Links {\n"); + + if (self != null) sb.append(" self: ").append(toIndentedString(self)).append("\n"); + if (report != null) sb.append(" report: ").append(toIndentedString(report)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/InlineResponse2008LinksReport.java b/src/main/java/Model/InlineResponse2009LinksReport.java similarity index 84% rename from src/main/java/Model/InlineResponse2008LinksReport.java rename to src/main/java/Model/InlineResponse2009LinksReport.java index a24f7f53..64e15d81 100644 --- a/src/main/java/Model/InlineResponse2008LinksReport.java +++ b/src/main/java/Model/InlineResponse2009LinksReport.java @@ -25,14 +25,14 @@ import java.io.IOException; /** - * InlineResponse2008LinksReport + * InlineResponse2009LinksReport */ -public class InlineResponse2008LinksReport { +public class InlineResponse2009LinksReport { @SerializedName("href") private String href = null; - public InlineResponse2008LinksReport href(String href) { + public InlineResponse2009LinksReport href(String href) { this.href = href; return this; } @@ -59,8 +59,8 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2008LinksReport inlineResponse2008LinksReport = (InlineResponse2008LinksReport) o; - return Objects.equals(this.href, inlineResponse2008LinksReport.href); + InlineResponse2009LinksReport inlineResponse2009LinksReport = (InlineResponse2009LinksReport) o; + return Objects.equals(this.href, inlineResponse2009LinksReport.href); } @Override @@ -72,7 +72,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2008LinksReport {\n"); + sb.append("class InlineResponse2009LinksReport {\n"); if (href != null) sb.append(" href: ").append(toIndentedString(href)).append("\n"); sb.append("}"); diff --git a/src/main/java/Model/PaymentsProducts.java b/src/main/java/Model/PaymentsProducts.java index c892e37e..96bf38d8 100644 --- a/src/main/java/Model/PaymentsProducts.java +++ b/src/main/java/Model/PaymentsProducts.java @@ -28,6 +28,7 @@ import Model.PaymentsProductsSecureAcceptance; import Model.PaymentsProductsServiceFee; import Model.PaymentsProductsTax; +import Model.PaymentsProductsUnifiedCheckout; import Model.PaymentsProductsVirtualTerminal; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; @@ -95,7 +96,7 @@ public class PaymentsProducts { private PaymentsProductsTax payByLink = null; @SerializedName("unifiedCheckout") - private PaymentsProductsTax unifiedCheckout = null; + private PaymentsProductsUnifiedCheckout unifiedCheckout = null; @SerializedName("receivablesManager") private PaymentsProductsTax receivablesManager = null; @@ -409,7 +410,7 @@ public void setPayByLink(PaymentsProductsTax payByLink) { this.payByLink = payByLink; } - public PaymentsProducts unifiedCheckout(PaymentsProductsTax unifiedCheckout) { + public PaymentsProducts unifiedCheckout(PaymentsProductsUnifiedCheckout unifiedCheckout) { this.unifiedCheckout = unifiedCheckout; return this; } @@ -419,11 +420,11 @@ public PaymentsProducts unifiedCheckout(PaymentsProductsTax unifiedCheckout) { * @return unifiedCheckout **/ @ApiModelProperty(value = "") - public PaymentsProductsTax getUnifiedCheckout() { + public PaymentsProductsUnifiedCheckout getUnifiedCheckout() { return unifiedCheckout; } - public void setUnifiedCheckout(PaymentsProductsTax unifiedCheckout) { + public void setUnifiedCheckout(PaymentsProductsUnifiedCheckout unifiedCheckout) { this.unifiedCheckout = unifiedCheckout; } diff --git a/src/main/java/Model/PaymentsProductsUnifiedCheckout.java b/src/main/java/Model/PaymentsProductsUnifiedCheckout.java new file mode 100644 index 00000000..d9a74b1b --- /dev/null +++ b/src/main/java/Model/PaymentsProductsUnifiedCheckout.java @@ -0,0 +1,119 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import Model.PaymentsProductsUnifiedCheckoutConfigurationInformation; +import Model.PaymentsProductsUnifiedCheckoutSubscriptionInformation; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PaymentsProductsUnifiedCheckout + */ + +public class PaymentsProductsUnifiedCheckout { + @SerializedName("subscriptionInformation") + private PaymentsProductsUnifiedCheckoutSubscriptionInformation subscriptionInformation = null; + + @SerializedName("configurationInformation") + private PaymentsProductsUnifiedCheckoutConfigurationInformation configurationInformation = null; + + public PaymentsProductsUnifiedCheckout subscriptionInformation(PaymentsProductsUnifiedCheckoutSubscriptionInformation subscriptionInformation) { + this.subscriptionInformation = subscriptionInformation; + return this; + } + + /** + * Get subscriptionInformation + * @return subscriptionInformation + **/ + @ApiModelProperty(value = "") + public PaymentsProductsUnifiedCheckoutSubscriptionInformation getSubscriptionInformation() { + return subscriptionInformation; + } + + public void setSubscriptionInformation(PaymentsProductsUnifiedCheckoutSubscriptionInformation subscriptionInformation) { + this.subscriptionInformation = subscriptionInformation; + } + + public PaymentsProductsUnifiedCheckout configurationInformation(PaymentsProductsUnifiedCheckoutConfigurationInformation configurationInformation) { + this.configurationInformation = configurationInformation; + return this; + } + + /** + * Get configurationInformation + * @return configurationInformation + **/ + @ApiModelProperty(value = "") + public PaymentsProductsUnifiedCheckoutConfigurationInformation getConfigurationInformation() { + return configurationInformation; + } + + public void setConfigurationInformation(PaymentsProductsUnifiedCheckoutConfigurationInformation configurationInformation) { + this.configurationInformation = configurationInformation; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentsProductsUnifiedCheckout paymentsProductsUnifiedCheckout = (PaymentsProductsUnifiedCheckout) o; + return Objects.equals(this.subscriptionInformation, paymentsProductsUnifiedCheckout.subscriptionInformation) && + Objects.equals(this.configurationInformation, paymentsProductsUnifiedCheckout.configurationInformation); + } + + @Override + public int hashCode() { + return Objects.hash(subscriptionInformation, configurationInformation); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentsProductsUnifiedCheckout {\n"); + + if (subscriptionInformation != null) sb.append(" subscriptionInformation: ").append(toIndentedString(subscriptionInformation)).append("\n"); + if (configurationInformation != null) sb.append(" configurationInformation: ").append(toIndentedString(configurationInformation)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/InlineResponse2007Links.java b/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformation.java similarity index 50% rename from src/main/java/Model/InlineResponse2007Links.java rename to src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformation.java index c4cbf3f0..011990d1 100644 --- a/src/main/java/Model/InlineResponse2007Links.java +++ b/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformation.java @@ -15,6 +15,7 @@ import java.util.Objects; import java.util.Arrays; +import Model.PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -25,50 +26,29 @@ import java.io.IOException; /** - * InlineResponse2007Links + * PaymentsProductsUnifiedCheckoutConfigurationInformation */ -public class InlineResponse2007Links { - @SerializedName("rel") - private String rel = null; +public class PaymentsProductsUnifiedCheckoutConfigurationInformation { + @SerializedName("configurations") + private PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations configurations = null; - @SerializedName("href") - private String href = null; - - public InlineResponse2007Links rel(String rel) { - this.rel = rel; - return this; - } - - /** - * Valid Values: * self * first * last * prev * next - * @return rel - **/ - @ApiModelProperty(value = "Valid Values: * self * first * last * prev * next ") - public String getRel() { - return rel; - } - - public void setRel(String rel) { - this.rel = rel; - } - - public InlineResponse2007Links href(String href) { - this.href = href; + public PaymentsProductsUnifiedCheckoutConfigurationInformation configurations(PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations configurations) { + this.configurations = configurations; return this; } /** - * Get href - * @return href + * Get configurations + * @return configurations **/ - @ApiModelProperty(example = "https://api.cybersource.com/accountupdater/v1/batches?offset=0&limit=20", value = "") - public String getHref() { - return href; + @ApiModelProperty(value = "") + public PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations getConfigurations() { + return configurations; } - public void setHref(String href) { - this.href = href; + public void setConfigurations(PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations configurations) { + this.configurations = configurations; } @@ -80,24 +60,22 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - InlineResponse2007Links inlineResponse2007Links = (InlineResponse2007Links) o; - return Objects.equals(this.rel, inlineResponse2007Links.rel) && - Objects.equals(this.href, inlineResponse2007Links.href); + PaymentsProductsUnifiedCheckoutConfigurationInformation paymentsProductsUnifiedCheckoutConfigurationInformation = (PaymentsProductsUnifiedCheckoutConfigurationInformation) o; + return Objects.equals(this.configurations, paymentsProductsUnifiedCheckoutConfigurationInformation.configurations); } @Override public int hashCode() { - return Objects.hash(rel, href); + return Objects.hash(configurations); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2007Links {\n"); + sb.append("class PaymentsProductsUnifiedCheckoutConfigurationInformation {\n"); - if (rel != null) sb.append(" rel: ").append(toIndentedString(rel)).append("\n"); - if (href != null) sb.append(" href: ").append(toIndentedString(href)).append("\n"); + if (configurations != null) sb.append(" configurations: ").append(toIndentedString(configurations)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.java b/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.java new file mode 100644 index 00000000..bfbe967d --- /dev/null +++ b/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.java @@ -0,0 +1,95 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import Model.PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations + */ + +public class PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations { + @SerializedName("features") + private PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures features = null; + + public PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations features(PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures features) { + this.features = features; + return this; + } + + /** + * Get features + * @return features + **/ + @ApiModelProperty(value = "") + public PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures getFeatures() { + return features; + } + + public void setFeatures(PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures features) { + this.features = features; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations paymentsProductsUnifiedCheckoutConfigurationInformationConfigurations = (PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations) o; + return Objects.equals(this.features, paymentsProductsUnifiedCheckoutConfigurationInformationConfigurations.features); + } + + @Override + public int hashCode() { + return Objects.hash(features); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurations {\n"); + + if (features != null) sb.append(" features: ").append(toIndentedString(features)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.java b/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.java new file mode 100644 index 00000000..bdcce80b --- /dev/null +++ b/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.java @@ -0,0 +1,95 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import Model.PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures + */ + +public class PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures { + @SerializedName("paze") + private PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze paze = null; + + public PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures paze(PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze paze) { + this.paze = paze; + return this; + } + + /** + * Get paze + * @return paze + **/ + @ApiModelProperty(value = "") + public PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze getPaze() { + return paze; + } + + public void setPaze(PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze paze) { + this.paze = paze; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures paymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures = (PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures) o; + return Objects.equals(this.paze, paymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures.paze); + } + + @Override + public int hashCode() { + return Objects.hash(paze); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeatures {\n"); + + if (paze != null) sb.append(" paze: ").append(toIndentedString(paze)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.java b/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.java new file mode 100644 index 00000000..c36e5bb7 --- /dev/null +++ b/src/main/java/Model/PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.java @@ -0,0 +1,141 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * Paze specific required configuration details under unified checkout + */ +@ApiModel(description = "Paze specific required configuration details under unified checkout") + +public class PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze { + @SerializedName("financialInstitution") + private String financialInstitution = null; + + @SerializedName("financialInstitutionContract") + private Boolean financialInstitutionContract = null; + + @SerializedName("pazeEnabledInProfile") + private Boolean pazeEnabledInProfile = null; + + public PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze financialInstitution(String financialInstitution) { + this.financialInstitution = financialInstitution; + return this; + } + + /** + * Indicates the financial institution with whom the contract has been signed Possible values: - BANKOFAMERICA - WELLSFARGO + * @return financialInstitution + **/ + @ApiModelProperty(value = "Indicates the financial institution with whom the contract has been signed Possible values: - BANKOFAMERICA - WELLSFARGO") + public String getFinancialInstitution() { + return financialInstitution; + } + + public void setFinancialInstitution(String financialInstitution) { + this.financialInstitution = financialInstitution; + } + + public PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze financialInstitutionContract(Boolean financialInstitutionContract) { + this.financialInstitutionContract = financialInstitutionContract; + return this; + } + + /** + * Indicates if the contract has been signed with the selected bank + * @return financialInstitutionContract + **/ + @ApiModelProperty(value = "Indicates if the contract has been signed with the selected bank") + public Boolean FinancialInstitutionContract() { + return financialInstitutionContract; + } + + public void setFinancialInstitutionContract(Boolean financialInstitutionContract) { + this.financialInstitutionContract = financialInstitutionContract; + } + + public PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze pazeEnabledInProfile(Boolean pazeEnabledInProfile) { + this.pazeEnabledInProfile = pazeEnabledInProfile; + return this; + } + + /** + * Paze enabled in the profile for the merchants + * @return pazeEnabledInProfile + **/ + @ApiModelProperty(value = "Paze enabled in the profile for the merchants") + public Boolean PazeEnabledInProfile() { + return pazeEnabledInProfile; + } + + public void setPazeEnabledInProfile(Boolean pazeEnabledInProfile) { + this.pazeEnabledInProfile = pazeEnabledInProfile; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze paymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze = (PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze) o; + return Objects.equals(this.financialInstitution, paymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.financialInstitution) && + Objects.equals(this.financialInstitutionContract, paymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.financialInstitutionContract) && + Objects.equals(this.pazeEnabledInProfile, paymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze.pazeEnabledInProfile); + } + + @Override + public int hashCode() { + return Objects.hash(financialInstitution, financialInstitutionContract, pazeEnabledInProfile); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentsProductsUnifiedCheckoutConfigurationInformationConfigurationsFeaturesPaze {\n"); + + if (financialInstitution != null) sb.append(" financialInstitution: ").append(toIndentedString(financialInstitution)).append("\n"); + if (financialInstitutionContract != null) sb.append(" financialInstitutionContract: ").append(toIndentedString(financialInstitutionContract)).append("\n"); + if (pazeEnabledInProfile != null) sb.append(" pazeEnabledInProfile: ").append(toIndentedString(pazeEnabledInProfile)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformation.java b/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformation.java new file mode 100644 index 00000000..ee757741 --- /dev/null +++ b/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformation.java @@ -0,0 +1,164 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import Model.PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PaymentsProductsUnifiedCheckoutSubscriptionInformation + */ + +public class PaymentsProductsUnifiedCheckoutSubscriptionInformation { + @SerializedName("enabled") + private Boolean enabled = null; + + @SerializedName("enablementStatus") + private String enablementStatus = "ENABLED_AND_USABLE"; + + @SerializedName("selfServiceability") + private String selfServiceability = "NOT_SELF_SERVICEABLE"; + + @SerializedName("features") + private PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures features = null; + + public PaymentsProductsUnifiedCheckoutSubscriptionInformation enabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Get enabled + * @return enabled + **/ + @ApiModelProperty(value = "") + public Boolean Enabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public PaymentsProductsUnifiedCheckoutSubscriptionInformation enablementStatus(String enablementStatus) { + this.enablementStatus = enablementStatus; + return this; + } + + /** + * Possible values: - PENDING - ENABLED_AND_USABLE - ENABLED_NOT_USABLE - DISABLED + * @return enablementStatus + **/ + @ApiModelProperty(value = "Possible values: - PENDING - ENABLED_AND_USABLE - ENABLED_NOT_USABLE - DISABLED") + public String getEnablementStatus() { + return enablementStatus; + } + + public void setEnablementStatus(String enablementStatus) { + this.enablementStatus = enablementStatus; + } + + public PaymentsProductsUnifiedCheckoutSubscriptionInformation selfServiceability(String selfServiceability) { + this.selfServiceability = selfServiceability; + return this; + } + + /** + * Indicates if the organization can enable this product using self service. Possible values: - SELF_SERVICEABLE - NOT_SELF_SERVICEABLE - SELF_SERVICE_ONLY + * @return selfServiceability + **/ + @ApiModelProperty(value = "Indicates if the organization can enable this product using self service. Possible values: - SELF_SERVICEABLE - NOT_SELF_SERVICEABLE - SELF_SERVICE_ONLY") + public String getSelfServiceability() { + return selfServiceability; + } + + public void setSelfServiceability(String selfServiceability) { + this.selfServiceability = selfServiceability; + } + + public PaymentsProductsUnifiedCheckoutSubscriptionInformation features(PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures features) { + this.features = features; + return this; + } + + /** + * Get features + * @return features + **/ + @ApiModelProperty(value = "") + public PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures getFeatures() { + return features; + } + + public void setFeatures(PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures features) { + this.features = features; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentsProductsUnifiedCheckoutSubscriptionInformation paymentsProductsUnifiedCheckoutSubscriptionInformation = (PaymentsProductsUnifiedCheckoutSubscriptionInformation) o; + return Objects.equals(this.enabled, paymentsProductsUnifiedCheckoutSubscriptionInformation.enabled) && + Objects.equals(this.enablementStatus, paymentsProductsUnifiedCheckoutSubscriptionInformation.enablementStatus) && + Objects.equals(this.selfServiceability, paymentsProductsUnifiedCheckoutSubscriptionInformation.selfServiceability) && + Objects.equals(this.features, paymentsProductsUnifiedCheckoutSubscriptionInformation.features); + } + + @Override + public int hashCode() { + return Objects.hash(enabled, enablementStatus, selfServiceability, features); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentsProductsUnifiedCheckoutSubscriptionInformation {\n"); + + if (enabled != null) sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + if (enablementStatus != null) sb.append(" enablementStatus: ").append(toIndentedString(enablementStatus)).append("\n"); + if (selfServiceability != null) sb.append(" selfServiceability: ").append(toIndentedString(selfServiceability)).append("\n"); + if (features != null) sb.append(" features: ").append(toIndentedString(features)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.java b/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.java new file mode 100644 index 00000000..18b72226 --- /dev/null +++ b/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.java @@ -0,0 +1,95 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import Model.PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures + */ + +public class PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures { + @SerializedName("pazeForUnifiedCheckout") + private PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout pazeForUnifiedCheckout = null; + + public PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures pazeForUnifiedCheckout(PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout pazeForUnifiedCheckout) { + this.pazeForUnifiedCheckout = pazeForUnifiedCheckout; + return this; + } + + /** + * Get pazeForUnifiedCheckout + * @return pazeForUnifiedCheckout + **/ + @ApiModelProperty(value = "") + public PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout getPazeForUnifiedCheckout() { + return pazeForUnifiedCheckout; + } + + public void setPazeForUnifiedCheckout(PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout pazeForUnifiedCheckout) { + this.pazeForUnifiedCheckout = pazeForUnifiedCheckout; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures paymentsProductsUnifiedCheckoutSubscriptionInformationFeatures = (PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures) o; + return Objects.equals(this.pazeForUnifiedCheckout, paymentsProductsUnifiedCheckoutSubscriptionInformationFeatures.pazeForUnifiedCheckout); + } + + @Override + public int hashCode() { + return Objects.hash(pazeForUnifiedCheckout); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentsProductsUnifiedCheckoutSubscriptionInformationFeatures {\n"); + + if (pazeForUnifiedCheckout != null) sb.append(" pazeForUnifiedCheckout: ").append(toIndentedString(pazeForUnifiedCheckout)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.java b/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.java new file mode 100644 index 00000000..19b4a95f --- /dev/null +++ b/src/main/java/Model/PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.java @@ -0,0 +1,95 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * Enabling Paze under unified checkout + */ +@ApiModel(description = "Enabling Paze under unified checkout") + +public class PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout { + @SerializedName("enabled") + private Boolean enabled = null; + + public PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout enabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Get enabled + * @return enabled + **/ + @ApiModelProperty(value = "") + public Boolean Enabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout paymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout = (PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout) o; + return Objects.equals(this.enabled, paymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout.enabled); + } + + @Override + public int hashCode() { + return Objects.hash(enabled); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaymentsProductsUnifiedCheckoutSubscriptionInformationFeaturesPazeForUnifiedCheckout {\n"); + + if (enabled != null) sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/PostDeviceSearchRequest.java b/src/main/java/Model/PostDeviceSearchRequest.java new file mode 100644 index 00000000..60eb2c03 --- /dev/null +++ b/src/main/java/Model/PostDeviceSearchRequest.java @@ -0,0 +1,163 @@ +/* + * CyberSource Merged Spec + * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + * + * OpenAPI spec version: 0.0.1 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package Model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PostDeviceSearchRequest + */ + +public class PostDeviceSearchRequest { + @SerializedName("query") + private String query = null; + + @SerializedName("sort") + private String sort = null; + + @SerializedName("offset") + private Long offset = null; + + @SerializedName("limit") + private Long limit = null; + + public PostDeviceSearchRequest query(String query) { + this.query = query; + return this; + } + + /** + * The Search Query to retrieve the Terminals(Example :- terminalSerialNumber:12345678 AND readerId:66c395ca-4f20-4b40-acac-5ff4c772d5f9 AND terminalId:T9KN88RTPE). Empty Query returns everything for the given organization. + * @return query + **/ + @ApiModelProperty(value = "The Search Query to retrieve the Terminals(Example :- terminalSerialNumber:12345678 AND readerId:66c395ca-4f20-4b40-acac-5ff4c772d5f9 AND terminalId:T9KN88RTPE). Empty Query returns everything for the given organization.") + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public PostDeviceSearchRequest sort(String sort) { + this.sort = sort; + return this; + } + + /** + * The Sort Query to order the Terminals by. By Default, It is in ascending order of last update of a device. + * @return sort + **/ + @ApiModelProperty(value = "The Sort Query to order the Terminals by. By Default, It is in ascending order of last update of a device.") + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } + + public PostDeviceSearchRequest offset(Long offset) { + this.offset = offset; + return this; + } + + /** + * The offset or page number. + * @return offset + **/ + @ApiModelProperty(value = "The offset or page number.") + public Long getOffset() { + return offset; + } + + public void setOffset(Long offset) { + this.offset = offset; + } + + public PostDeviceSearchRequest limit(Long limit) { + this.limit = limit; + return this; + } + + /** + * Number of devices to retrieve in one request. + * @return limit + **/ + @ApiModelProperty(value = "Number of devices to retrieve in one request.") + public Long getLimit() { + return limit; + } + + public void setLimit(Long limit) { + this.limit = limit; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PostDeviceSearchRequest postDeviceSearchRequest = (PostDeviceSearchRequest) o; + return Objects.equals(this.query, postDeviceSearchRequest.query) && + Objects.equals(this.sort, postDeviceSearchRequest.sort) && + Objects.equals(this.offset, postDeviceSearchRequest.offset) && + Objects.equals(this.limit, postDeviceSearchRequest.limit); + } + + @Override + public int hashCode() { + return Objects.hash(query, sort, offset, limit); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PostDeviceSearchRequest {\n"); + + if (query != null) sb.append(" query: ").append(toIndentedString(query)).append("\n"); + if (sort != null) sb.append(" sort: ").append(toIndentedString(sort)).append("\n"); + if (offset != null) sb.append(" offset: ").append(toIndentedString(offset)).append("\n"); + if (limit != null) sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + // return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/Model/Riskv1decisionsTravelInformationLegs.java b/src/main/java/Model/Riskv1decisionsTravelInformationLegs.java index b7860495..43712a7c 100644 --- a/src/main/java/Model/Riskv1decisionsTravelInformationLegs.java +++ b/src/main/java/Model/Riskv1decisionsTravelInformationLegs.java @@ -41,6 +41,9 @@ public class Riskv1decisionsTravelInformationLegs { @SerializedName("departureDate") private String departureDate = null; + @SerializedName("departureTime") + private Integer departureTime = null; + public Riskv1decisionsTravelInformationLegs origination(String origination) { this.origination = origination; return this; @@ -113,6 +116,24 @@ public void setDepartureDate(String departureDate) { this.departureDate = departureDate; } + public Riskv1decisionsTravelInformationLegs departureTime(Integer departureTime) { + this.departureTime = departureTime; + return this; + } + + /** + * Time of departure for this leg of the trip. The format is military time and HHMM: If not all zeros, then the hours must be `00-23` and the minutes must be `00-59`. Format: English characters only. Optional request field for travel legs. + * @return departureTime + **/ + @ApiModelProperty(value = "Time of departure for this leg of the trip. The format is military time and HHMM: If not all zeros, then the hours must be `00-23` and the minutes must be `00-59`. Format: English characters only. Optional request field for travel legs. ") + public Integer getDepartureTime() { + return departureTime; + } + + public void setDepartureTime(Integer departureTime) { + this.departureTime = departureTime; + } + @Override public boolean equals(java.lang.Object o) { @@ -126,12 +147,13 @@ public boolean equals(java.lang.Object o) { return Objects.equals(this.origination, riskv1decisionsTravelInformationLegs.origination) && Objects.equals(this.destination, riskv1decisionsTravelInformationLegs.destination) && Objects.equals(this.carrierCode, riskv1decisionsTravelInformationLegs.carrierCode) && - Objects.equals(this.departureDate, riskv1decisionsTravelInformationLegs.departureDate); + Objects.equals(this.departureDate, riskv1decisionsTravelInformationLegs.departureDate) && + Objects.equals(this.departureTime, riskv1decisionsTravelInformationLegs.departureTime); } @Override public int hashCode() { - return Objects.hash(origination, destination, carrierCode, departureDate); + return Objects.hash(origination, destination, carrierCode, departureDate, departureTime); } @@ -144,6 +166,7 @@ public String toString() { if (destination != null) sb.append(" destination: ").append(toIndentedString(destination)).append("\n"); if (carrierCode != null) sb.append(" carrierCode: ").append(toIndentedString(carrierCode)).append("\n"); if (departureDate != null) sb.append(" departureDate: ").append(toIndentedString(departureDate)).append("\n"); + if (departureTime != null) sb.append(" departureTime: ").append(toIndentedString(departureTime)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/Model/TssV2TransactionsGet200ResponseProcessorInformation.java b/src/main/java/Model/TssV2TransactionsGet200ResponseProcessorInformation.java index 4ac001b7..26738d35 100644 --- a/src/main/java/Model/TssV2TransactionsGet200ResponseProcessorInformation.java +++ b/src/main/java/Model/TssV2TransactionsGet200ResponseProcessorInformation.java @@ -73,6 +73,9 @@ public class TssV2TransactionsGet200ResponseProcessorInformation { @SerializedName("electronicVerificationResults") private TssV2TransactionsGet200ResponseProcessorInformationElectronicVerificationResults electronicVerificationResults = null; + @SerializedName("eventStatus") + private String eventStatus = null; + @SerializedName("systemTraceAuditNumber") private String systemTraceAuditNumber = null; @@ -306,6 +309,24 @@ public void setElectronicVerificationResults(TssV2TransactionsGet200ResponseProc this.electronicVerificationResults = electronicVerificationResults; } + public TssV2TransactionsGet200ResponseProcessorInformation eventStatus(String eventStatus) { + this.eventStatus = eventStatus; + return this; + } + + /** + * The event status. + * @return eventStatus + **/ + @ApiModelProperty(value = "The event status. ") + public String getEventStatus() { + return eventStatus; + } + + public void setEventStatus(String eventStatus) { + this.eventStatus = eventStatus; + } + public TssV2TransactionsGet200ResponseProcessorInformation systemTraceAuditNumber(String systemTraceAuditNumber) { this.systemTraceAuditNumber = systemTraceAuditNumber; return this; @@ -382,6 +403,7 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.cardVerification, tssV2TransactionsGet200ResponseProcessorInformation.cardVerification) && Objects.equals(this.achVerification, tssV2TransactionsGet200ResponseProcessorInformation.achVerification) && Objects.equals(this.electronicVerificationResults, tssV2TransactionsGet200ResponseProcessorInformation.electronicVerificationResults) && + Objects.equals(this.eventStatus, tssV2TransactionsGet200ResponseProcessorInformation.eventStatus) && Objects.equals(this.systemTraceAuditNumber, tssV2TransactionsGet200ResponseProcessorInformation.systemTraceAuditNumber) && Objects.equals(this.responseCodeSource, tssV2TransactionsGet200ResponseProcessorInformation.responseCodeSource) && Objects.equals(this.paymentAccountReferenceNumber, tssV2TransactionsGet200ResponseProcessorInformation.paymentAccountReferenceNumber); @@ -389,7 +411,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(processor, multiProcessorRouting, transactionId, networkTransactionId, retrievalReferenceNumber, responseId, approvalCode, responseCode, avs, cardVerification, achVerification, electronicVerificationResults, systemTraceAuditNumber, responseCodeSource, paymentAccountReferenceNumber); + return Objects.hash(processor, multiProcessorRouting, transactionId, networkTransactionId, retrievalReferenceNumber, responseId, approvalCode, responseCode, avs, cardVerification, achVerification, electronicVerificationResults, eventStatus, systemTraceAuditNumber, responseCodeSource, paymentAccountReferenceNumber); } @@ -410,6 +432,7 @@ public String toString() { if (cardVerification != null) sb.append(" cardVerification: ").append(toIndentedString(cardVerification)).append("\n"); if (achVerification != null) sb.append(" achVerification: ").append(toIndentedString(achVerification)).append("\n"); if (electronicVerificationResults != null) sb.append(" electronicVerificationResults: ").append(toIndentedString(electronicVerificationResults)).append("\n"); + if (eventStatus != null) sb.append(" eventStatus: ").append(toIndentedString(eventStatus)).append("\n"); if (systemTraceAuditNumber != null) sb.append(" systemTraceAuditNumber: ").append(toIndentedString(systemTraceAuditNumber)).append("\n"); if (responseCodeSource != null) sb.append(" responseCodeSource: ").append(toIndentedString(responseCodeSource)).append("\n"); if (paymentAccountReferenceNumber != null) sb.append(" paymentAccountReferenceNumber: ").append(toIndentedString(paymentAccountReferenceNumber)).append("\n"); diff --git a/src/main/java/Model/Upv1capturecontextsCaptureMandate.java b/src/main/java/Model/Upv1capturecontextsCaptureMandate.java index fe8cfa41..fc067c8f 100644 --- a/src/main/java/Model/Upv1capturecontextsCaptureMandate.java +++ b/src/main/java/Model/Upv1capturecontextsCaptureMandate.java @@ -49,6 +49,9 @@ public class Upv1capturecontextsCaptureMandate { @SerializedName("showAcceptedNetworkIcons") private Boolean showAcceptedNetworkIcons = null; + @SerializedName("showConfirmationStep") + private Boolean showConfirmationStep = null; + @SerializedName("requestSaveCard") private Boolean requestSaveCard = null; @@ -174,6 +177,24 @@ public void setShowAcceptedNetworkIcons(Boolean showAcceptedNetworkIcons) { this.showAcceptedNetworkIcons = showAcceptedNetworkIcons; } + public Upv1capturecontextsCaptureMandate showConfirmationStep(Boolean showConfirmationStep) { + this.showConfirmationStep = showConfirmationStep; + return this; + } + + /** + * Configure Unified Checkout to display the final confirmation screen when using Click to Pay.<br> Where 'BillingType'= NONE and 'requestShipping'= FALSE and the customer is using an existing Click to Pay card as their chosen payment method, a final confirmation screen can be removed allowing the customer to check out as soon as they have selected their payment method from within their Click to Pay card tray. Possible values: - True - False + * @return showConfirmationStep + **/ + @ApiModelProperty(value = "Configure Unified Checkout to display the final confirmation screen when using Click to Pay.
Where 'BillingType'= NONE and 'requestShipping'= FALSE and the customer is using an existing Click to Pay card as their chosen payment method, a final confirmation screen can be removed allowing the customer to check out as soon as they have selected their payment method from within their Click to Pay card tray. Possible values: - True - False ") + public Boolean ShowConfirmationStep() { + return showConfirmationStep; + } + + public void setShowConfirmationStep(Boolean showConfirmationStep) { + this.showConfirmationStep = showConfirmationStep; + } + public Upv1capturecontextsCaptureMandate requestSaveCard(Boolean requestSaveCard) { this.requestSaveCard = requestSaveCard; return this; @@ -244,6 +265,7 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.requestShipping, upv1capturecontextsCaptureMandate.requestShipping) && Objects.equals(this.shipToCountries, upv1capturecontextsCaptureMandate.shipToCountries) && Objects.equals(this.showAcceptedNetworkIcons, upv1capturecontextsCaptureMandate.showAcceptedNetworkIcons) && + Objects.equals(this.showConfirmationStep, upv1capturecontextsCaptureMandate.showConfirmationStep) && Objects.equals(this.requestSaveCard, upv1capturecontextsCaptureMandate.requestSaveCard) && Objects.equals(this.comboCard, upv1capturecontextsCaptureMandate.comboCard) && Objects.equals(this.CPF, upv1capturecontextsCaptureMandate.CPF); @@ -251,7 +273,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(billingType, requestEmail, requestPhone, requestShipping, shipToCountries, showAcceptedNetworkIcons, requestSaveCard, comboCard, CPF); + return Objects.hash(billingType, requestEmail, requestPhone, requestShipping, shipToCountries, showAcceptedNetworkIcons, showConfirmationStep, requestSaveCard, comboCard, CPF); } @@ -266,6 +288,7 @@ public String toString() { if (requestShipping != null) sb.append(" requestShipping: ").append(toIndentedString(requestShipping)).append("\n"); if (shipToCountries != null) sb.append(" shipToCountries: ").append(toIndentedString(shipToCountries)).append("\n"); if (showAcceptedNetworkIcons != null) sb.append(" showAcceptedNetworkIcons: ").append(toIndentedString(showAcceptedNetworkIcons)).append("\n"); + if (showConfirmationStep != null) sb.append(" showConfirmationStep: ").append(toIndentedString(showConfirmationStep)).append("\n"); if (requestSaveCard != null) sb.append(" requestSaveCard: ").append(toIndentedString(requestSaveCard)).append("\n"); if (comboCard != null) sb.append(" comboCard: ").append(toIndentedString(comboCard)).append("\n"); if (CPF != null) sb.append(" CPF: ").append(toIndentedString(CPF)).append("\n"); diff --git a/src/main/java/Model/Upv1capturecontextsCompleteMandate.java b/src/main/java/Model/Upv1capturecontextsCompleteMandate.java index c112b0f9..fbc339a2 100644 --- a/src/main/java/Model/Upv1capturecontextsCompleteMandate.java +++ b/src/main/java/Model/Upv1capturecontextsCompleteMandate.java @@ -36,16 +36,19 @@ public class Upv1capturecontextsCompleteMandate { @SerializedName("decisionManager") private Boolean decisionManager = null; + @SerializedName("consumerAuthentication") + private Boolean consumerAuthentication = null; + public Upv1capturecontextsCompleteMandate type(String type) { this.type = type; return this; } /** - * This field is used to indicate how a payment should be processed. Possible values: - AUTH: Use this value when you want to authorize a payment without capturing it immediately. Payment types that initiate an immediate transfer of funds are not allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned.<br><br> - CAPTURE: Use this value when you want to capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.<br><br> - PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. Payment types like account-to-account transfers that initiate an immediate transfer of funds are allowed and presented to the customer. If selected, an immediate transfer of funds occurs; otherwise, a final backend call is needed to capture the payment. Transactions can be AUTHORIZED, CAPTURED, or PENDING. + * This field is used to indicate how a payment should be processed. Possible values: - AUTH: Use this value when you want to authorize a payment within Unified Checkout without capturing it immediately. Payment types that initiate an immediate transfer of funds are NOT allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned. A merchant would need to perform their own capture via API where applicable.<br><br> - CAPTURE: Use this value when you want to perform a sale within Unified Checkout and capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.<br><br> - PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. It will perform a \"CAPTURE\" where an \"AUTH\" is not allowed by the payment type. Transactions can be AUTHORIZED, CAPTURED, or PENDING. If an \"AUTH\" is performed, a merchant would need to perform their own capture via API where applicable. * @return type **/ - @ApiModelProperty(example = "AUTH", value = "This field is used to indicate how a payment should be processed. Possible values: - AUTH: Use this value when you want to authorize a payment without capturing it immediately. Payment types that initiate an immediate transfer of funds are not allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned.

- CAPTURE: Use this value when you want to capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.

- PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. Payment types like account-to-account transfers that initiate an immediate transfer of funds are allowed and presented to the customer. If selected, an immediate transfer of funds occurs; otherwise, a final backend call is needed to capture the payment. Transactions can be AUTHORIZED, CAPTURED, or PENDING. ") + @ApiModelProperty(example = "AUTH", value = "This field is used to indicate how a payment should be processed. Possible values: - AUTH: Use this value when you want to authorize a payment within Unified Checkout without capturing it immediately. Payment types that initiate an immediate transfer of funds are NOT allowed. If a capture context request includes a payment type incompatible with this mode, a 400 error will be returned. A merchant would need to perform their own capture via API where applicable.

- CAPTURE: Use this value when you want to perform a sale within Unified Checkout and capture the payment immediately during the transaction. Note: Some payment types may return a PENDING status, requiring an additional status check call to determine the final outcome of the payment.

- PREFER_AUTH: Use this value to offer multiple alternative payment options during the Unified Checkout experience. This option authorizes the payment without immediate capture, where available. It will perform a \"CAPTURE\" where an \"AUTH\" is not allowed by the payment type. Transactions can be AUTHORIZED, CAPTURED, or PENDING. If an \"AUTH\" is performed, a merchant would need to perform their own capture via API where applicable. ") public String getType() { return type; } @@ -60,10 +63,10 @@ public Upv1capturecontextsCompleteMandate decisionManager(Boolean decisionManage } /** - * Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration. Possible values: - True - False<br><br> Setting this value to True indicates that device fingerprinting will be executed to add additional information for risk service Setting this value to False indicates that you do not wish to run device fingerprinting and skip decision manager services. + * Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration. Possible values: - True - False<br><br> Setting this value to True indicates that device fingerprinting will be executed to add additional information for risk service Setting this value to False (or not provided) indicates that you do not wish to run device fingerprinting and skip decision manager services. * @return decisionManager **/ - @ApiModelProperty(value = "Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration. Possible values: - True - False

Setting this value to True indicates that device fingerprinting will be executed to add additional information for risk service Setting this value to False indicates that you do not wish to run device fingerprinting and skip decision manager services. ") + @ApiModelProperty(value = "Configure Unified Checkout to determine whether Decision Manager is invoked during service orchestration. Possible values: - True - False

Setting this value to True indicates that device fingerprinting will be executed to add additional information for risk service Setting this value to False (or not provided) indicates that you do not wish to run device fingerprinting and skip decision manager services. ") public Boolean DecisionManager() { return decisionManager; } @@ -72,6 +75,24 @@ public void setDecisionManager(Boolean decisionManager) { this.decisionManager = decisionManager; } + public Upv1capturecontextsCompleteMandate consumerAuthentication(Boolean consumerAuthentication) { + this.consumerAuthentication = consumerAuthentication; + return this; + } + + /** + * Configure Unified Checkout to determine whether Consumer Authentication is invoked during service orchestration. Possible values: - True - False<br><br> Setting this value to True will attempt to perform authentication using the Payer Authentication Service. Setting this value to False (or not provided) indicates that you do not wish to perform authentication using the Payer Authentication Service. + * @return consumerAuthentication + **/ + @ApiModelProperty(value = "Configure Unified Checkout to determine whether Consumer Authentication is invoked during service orchestration. Possible values: - True - False

Setting this value to True will attempt to perform authentication using the Payer Authentication Service. Setting this value to False (or not provided) indicates that you do not wish to perform authentication using the Payer Authentication Service. ") + public Boolean ConsumerAuthentication() { + return consumerAuthentication; + } + + public void setConsumerAuthentication(Boolean consumerAuthentication) { + this.consumerAuthentication = consumerAuthentication; + } + @Override public boolean equals(java.lang.Object o) { @@ -83,12 +104,13 @@ public boolean equals(java.lang.Object o) { } Upv1capturecontextsCompleteMandate upv1capturecontextsCompleteMandate = (Upv1capturecontextsCompleteMandate) o; return Objects.equals(this.type, upv1capturecontextsCompleteMandate.type) && - Objects.equals(this.decisionManager, upv1capturecontextsCompleteMandate.decisionManager); + Objects.equals(this.decisionManager, upv1capturecontextsCompleteMandate.decisionManager) && + Objects.equals(this.consumerAuthentication, upv1capturecontextsCompleteMandate.consumerAuthentication); } @Override public int hashCode() { - return Objects.hash(type, decisionManager); + return Objects.hash(type, decisionManager, consumerAuthentication); } @@ -99,6 +121,7 @@ public String toString() { if (type != null) sb.append(" type: ").append(toIndentedString(type)).append("\n"); if (decisionManager != null) sb.append(" decisionManager: ").append(toIndentedString(decisionManager)).append("\n"); + if (consumerAuthentication != null) sb.append(" consumerAuthentication: ").append(toIndentedString(consumerAuthentication)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/utilities/JWEResponse/JWEUtility.java b/src/main/java/utilities/JWEResponse/JWEUtility.java index 1304668b..de21d4c7 100644 --- a/src/main/java/utilities/JWEResponse/JWEUtility.java +++ b/src/main/java/utilities/JWEResponse/JWEUtility.java @@ -17,7 +17,11 @@ public class JWEUtility { /** * This method has been marked as Deprecated and will be removed in coming releases. * + * @param encodedResponse The encoded response that has to be decrypted + * @param merchantConfig The merchant configuration object where the private key pem file path is provided + * @return The decrypted response as a JSON string * @deprecated use {@link #decryptJWEResponse(PrivateKey, String)} instead. + * @throws JWEException Error during decryption */ @Deprecated public static String decryptJWEResponse(String encodedResponse, MerchantConfig merchantConfig) throws JWEException { @@ -39,6 +43,13 @@ public static String decryptJWEResponse(String encodedResponse, MerchantConfig m } } + /** + * + * @param privateKey The private key to use for decrypting the encoded response + * @param encodedResponse The encoded response that has to be decrypted + * @return The decrypted response as a JSON string + * @throws JWEException Error during decryption + */ public static String decryptJWEResponse(PrivateKey privateKey, String encodedResponse) throws JWEException { try { return com.cybersource.authsdk.util.JWEUtility.decryptJWEUsingPrivateKey(privateKey, encodedResponse); diff --git a/src/test/java/Api/BatchesApiTest.java b/src/test/java/Api/BatchesApiTest.java index f1df31c9..e6538071 100644 --- a/src/test/java/Api/BatchesApiTest.java +++ b/src/test/java/Api/BatchesApiTest.java @@ -14,7 +14,7 @@ package Api; import Model.Body; -import Model.InlineResponse2007; +import Model.InlineResponse20010; import Model.InlineResponse2008; import Model.InlineResponse2009; import Model.InlineResponse202; @@ -48,7 +48,7 @@ public class BatchesApiTest { @Test public void getBatchReportTest() throws Exception { String batchId = null; - InlineResponse2009 response = api.getBatchReport(batchId); + InlineResponse20010 response = api.getBatchReport(batchId); // TODO: test validations } @@ -64,7 +64,7 @@ public void getBatchReportTest() throws Exception { @Test public void getBatchStatusTest() throws Exception { String batchId = null; - InlineResponse2008 response = api.getBatchStatus(batchId); + InlineResponse2009 response = api.getBatchStatus(batchId); // TODO: test validations } @@ -83,7 +83,7 @@ public void getBatchesListTest() throws Exception { Long limit = null; String fromDate = null; String toDate = null; - InlineResponse2007 response = api.getBatchesList(offset, limit, fromDate, toDate); + InlineResponse2008 response = api.getBatchesList(offset, limit, fromDate, toDate); // TODO: test validations } diff --git a/src/test/java/Api/DeviceDeAssociationV3ApiTest.java b/src/test/java/Api/DeviceDeAssociationApiTest.java similarity index 63% rename from src/test/java/Api/DeviceDeAssociationV3ApiTest.java rename to src/test/java/Api/DeviceDeAssociationApiTest.java index 34f3e232..1fd6df12 100644 --- a/src/test/java/Api/DeviceDeAssociationV3ApiTest.java +++ b/src/test/java/Api/DeviceDeAssociationApiTest.java @@ -13,8 +13,9 @@ package Api; +import Model.DeAssociationRequestBody; import Model.DeviceDeAssociateV3Request; -import Model.InlineResponse2005; +import Model.InlineResponse2006; import Model.InlineResponse206; import Model.InlineResponse4008; import Model.InlineResponse401; @@ -31,16 +32,32 @@ import java.util.Map; /** - * API tests for DeviceDeAssociationV3Api + * API tests for DeviceDeAssociationApi */ @Ignore -public class DeviceDeAssociationV3ApiTest { +public class DeviceDeAssociationApiTest { - private final DeviceDeAssociationV3Api api = new DeviceDeAssociationV3Api(); + private final DeviceDeAssociationApi api = new DeviceDeAssociationApi(); /** - * De-associate a device from merchant to account or reseller and from account to reseller V3 + * De-associate a device from merchant or account V2 + * + * The current association of the device will be removed and will be assigned back to parent in the hierarchy based on internal logic + * + * @throws Exception + * if the Api call fails + */ + @Test + public void deleteTerminalAssociationTest() throws Exception { + DeAssociationRequestBody deAssociationRequestBody = null; + api.deleteTerminalAssociation(deAssociationRequestBody); + + // TODO: test validations + } + + /** + * De-associate a device from merchant to account or reseller and from account to reseller * * A device will be de-associated from its current organization and moved up in the hierarchy. The device's new position will be determined by a specified destination, either an account or a portfolio. If no destination is provided, the device will default to the currently logged-in user. * @@ -50,7 +67,7 @@ public class DeviceDeAssociationV3ApiTest { @Test public void postDeAssociateV3TerminalTest() throws Exception { List deviceDeAssociateV3Request = null; - List response = api.postDeAssociateV3Terminal(deviceDeAssociateV3Request); + List response = api.postDeAssociateV3Terminal(deviceDeAssociateV3Request); // TODO: test validations } diff --git a/src/test/java/Api/DeviceSearchApiTest.java b/src/test/java/Api/DeviceSearchApiTest.java index d4c9dcbc..4f3ce305 100644 --- a/src/test/java/Api/DeviceSearchApiTest.java +++ b/src/test/java/Api/DeviceSearchApiTest.java @@ -13,12 +13,14 @@ package Api; -import Model.InlineResponse2006; +import Model.InlineResponse2005; +import Model.InlineResponse2007; import Model.InlineResponse4008; import Model.InlineResponse401; import Model.InlineResponse4032; import Model.InlineResponse4043; import Model.InlineResponse5003; +import Model.PostDeviceSearchRequest; import Model.PostDeviceSearchRequestV3; import org.junit.Test; import org.junit.Ignore; @@ -39,7 +41,23 @@ public class DeviceSearchApiTest { /** - * Retrieve List of Devices for a given search query V3 + * Retrieve List of Devices for a given search query V2 + * + * Retrieves list of terminals in paginated format. + * + * @throws Exception + * if the Api call fails + */ + @Test + public void postSearchQueryTest() throws Exception { + PostDeviceSearchRequest postDeviceSearchRequest = null; + InlineResponse2005 response = api.postSearchQuery(postDeviceSearchRequest); + + // TODO: test validations + } + + /** + * Retrieve List of Devices for a given search query * * Search for devices matching a given search query. The search query supports serialNumber, readerId, terminalId, status, statusChangeReason or organizationId Matching results are paginated. * @@ -49,7 +67,7 @@ public class DeviceSearchApiTest { @Test public void postSearchQueryV3Test() throws Exception { PostDeviceSearchRequestV3 postDeviceSearchRequestV3 = null; - InlineResponse2006 response = api.postSearchQueryV3(postDeviceSearchRequestV3); + InlineResponse2007 response = api.postSearchQueryV3(postDeviceSearchRequestV3); // TODO: test validations } diff --git a/src/test/java/Api/SubscriptionsApiTest.java b/src/test/java/Api/SubscriptionsApiTest.java index 34323aba..6b081878 100644 --- a/src/test/java/Api/SubscriptionsApiTest.java +++ b/src/test/java/Api/SubscriptionsApiTest.java @@ -48,7 +48,7 @@ public class SubscriptionsApiTest { /** * Activate a Subscription * - * Activate a `CANCELLED` Or `SUSPENDED` Subscription + * Activate a `SUSPENDED` Subscription * * @throws Exception * if the Api call fails @@ -56,7 +56,8 @@ public class SubscriptionsApiTest { @Test public void activateSubscriptionTest() throws Exception { String id = null; - ActivateSubscriptionResponse response = api.activateSubscription(id); + Boolean processSkippedPayments = null; + ActivateSubscriptionResponse response = api.activateSubscription(id, processSkippedPayments); // TODO: test validations } From bae8cf7f878c69a41a7e87d6703be0f0634ca10f Mon Sep 17 00:00:00 2001 From: gaubansa Date: Mon, 23 Jun 2025 11:58:54 +0530 Subject: [PATCH 09/11] auth version added for snapshot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ac0b3ac6..e98b7ebd 100644 --- a/pom.xml +++ b/pom.xml @@ -304,7 +304,7 @@ com.cybersource AuthenticationSdk - 0.0.35 + 0.0.36-SNAPSHOT From 1a7d9094899c05dd330d5610266475b7d9aa2b13 Mon Sep 17 00:00:00 2001 From: gaubansa Date: Tue, 1 Jul 2025 12:51:49 +0530 Subject: [PATCH 10/11] version update --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e98b7ebd..041f974a 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ cybersource-rest-client-java jar cybersource-rest-client-java - 0.0.78-SNAPSHOT + 0.0.78 http://developer.cybersource.com Cybersource Rest Client SDK @@ -304,7 +304,7 @@ com.cybersource AuthenticationSdk - 0.0.36-SNAPSHOT + 0.0.36 From e54068ba66e12a4a33fee1044ba440517436596d Mon Sep 17 00:00:00 2001 From: gaubansa Date: Tue, 1 Jul 2025 12:58:31 +0530 Subject: [PATCH 11/11] updating next version to SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 041f974a..08732aab 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ cybersource-rest-client-java jar cybersource-rest-client-java - 0.0.78 + 0.0.79-SNAPSHOT http://developer.cybersource.com Cybersource Rest Client SDK