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

com.adyen.model.checkout.ApplePayDetails Maven / Gradle / Ivy

There is a newer version: 38.1.0
Show newest version
/*
 * Adyen Checkout API
 *
 * The version of the OpenAPI document: 71
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package com.adyen.model.checkout;

import java.util.Objects;
import java.util.Map;
import java.util.HashMap;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.core.JsonProcessingException;


/**
 * ApplePayDetails
 */
@JsonPropertyOrder({
  ApplePayDetails.JSON_PROPERTY_APPLE_PAY_TOKEN,
  ApplePayDetails.JSON_PROPERTY_CHECKOUT_ATTEMPT_ID,
  ApplePayDetails.JSON_PROPERTY_FUNDING_SOURCE,
  ApplePayDetails.JSON_PROPERTY_RECURRING_DETAIL_REFERENCE,
  ApplePayDetails.JSON_PROPERTY_STORED_PAYMENT_METHOD_ID,
  ApplePayDetails.JSON_PROPERTY_TYPE
})

public class ApplePayDetails {
  public static final String JSON_PROPERTY_APPLE_PAY_TOKEN = "applePayToken";
  private String applePayToken;

  public static final String JSON_PROPERTY_CHECKOUT_ATTEMPT_ID = "checkoutAttemptId";
  private String checkoutAttemptId;

  /**
   * The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
   */
  public enum FundingSourceEnum {
    CREDIT(String.valueOf("credit")),
    
    DEBIT(String.valueOf("debit"));

    private String value;

    FundingSourceEnum(String value) {
      this.value = value;
    }

    @JsonValue
    public String getValue() {
      return value;
    }

    @Override
    public String toString() {
      return String.valueOf(value);
    }

    @JsonCreator
    public static FundingSourceEnum fromValue(String value) {
      for (FundingSourceEnum b : FundingSourceEnum.values()) {
        if (b.value.equals(value)) {
          return b;
        }
      }
      throw new IllegalArgumentException("Unexpected value '" + value + "'");
    }
  }

  public static final String JSON_PROPERTY_FUNDING_SOURCE = "fundingSource";
  private FundingSourceEnum fundingSource;

  public static final String JSON_PROPERTY_RECURRING_DETAIL_REFERENCE = "recurringDetailReference";
  @Deprecated // deprecated since Adyen Checkout API v49: Use `storedPaymentMethodId` instead.
  private String recurringDetailReference;

  public static final String JSON_PROPERTY_STORED_PAYMENT_METHOD_ID = "storedPaymentMethodId";
  private String storedPaymentMethodId;

  /**
   * **applepay**
   */
  public enum TypeEnum {
    APPLEPAY(String.valueOf("applepay"));

    private String value;

    TypeEnum(String value) {
      this.value = value;
    }

    @JsonValue
    public String getValue() {
      return value;
    }

    @Override
    public String toString() {
      return String.valueOf(value);
    }

    @JsonCreator
    public static TypeEnum fromValue(String value) {
      for (TypeEnum b : TypeEnum.values()) {
        if (b.value.equals(value)) {
          return b;
        }
      }
      throw new IllegalArgumentException("Unexpected value '" + value + "'");
    }
  }

  public static final String JSON_PROPERTY_TYPE = "type";
  private TypeEnum type = TypeEnum.APPLEPAY;

  public ApplePayDetails() { 
  }

  /**
   * The stringified and base64 encoded `paymentData` you retrieved from the Apple framework.
   *
   * @param applePayToken The stringified and base64 encoded `paymentData` you retrieved from the Apple framework.
   * @return the current {@code ApplePayDetails} instance, allowing for method chaining
   */
  public ApplePayDetails applePayToken(String applePayToken) {
    this.applePayToken = applePayToken;
    return this;
  }

  /**
   * The stringified and base64 encoded `paymentData` you retrieved from the Apple framework.
   * @return applePayToken The stringified and base64 encoded `paymentData` you retrieved from the Apple framework.
   */
  @JsonProperty(JSON_PROPERTY_APPLE_PAY_TOKEN)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public String getApplePayToken() {
    return applePayToken;
  }

  /**
   * The stringified and base64 encoded `paymentData` you retrieved from the Apple framework.
   *
   * @param applePayToken The stringified and base64 encoded `paymentData` you retrieved from the Apple framework.
   */
  @JsonProperty(JSON_PROPERTY_APPLE_PAY_TOKEN)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setApplePayToken(String applePayToken) {
    this.applePayToken = applePayToken;
  }

  /**
   * The checkout attempt identifier.
   *
   * @param checkoutAttemptId The checkout attempt identifier.
   * @return the current {@code ApplePayDetails} instance, allowing for method chaining
   */
  public ApplePayDetails checkoutAttemptId(String checkoutAttemptId) {
    this.checkoutAttemptId = checkoutAttemptId;
    return this;
  }

  /**
   * The checkout attempt identifier.
   * @return checkoutAttemptId The checkout attempt identifier.
   */
  @JsonProperty(JSON_PROPERTY_CHECKOUT_ATTEMPT_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public String getCheckoutAttemptId() {
    return checkoutAttemptId;
  }

  /**
   * The checkout attempt identifier.
   *
   * @param checkoutAttemptId The checkout attempt identifier.
   */
  @JsonProperty(JSON_PROPERTY_CHECKOUT_ATTEMPT_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setCheckoutAttemptId(String checkoutAttemptId) {
    this.checkoutAttemptId = checkoutAttemptId;
  }

  /**
   * The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
   *
   * @param fundingSource The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
   * @return the current {@code ApplePayDetails} instance, allowing for method chaining
   */
  public ApplePayDetails fundingSource(FundingSourceEnum fundingSource) {
    this.fundingSource = fundingSource;
    return this;
  }

  /**
   * The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
   * @return fundingSource The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
   */
  @JsonProperty(JSON_PROPERTY_FUNDING_SOURCE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public FundingSourceEnum getFundingSource() {
    return fundingSource;
  }

  /**
   * The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
   *
   * @param fundingSource The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
   */
  @JsonProperty(JSON_PROPERTY_FUNDING_SOURCE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setFundingSource(FundingSourceEnum fundingSource) {
    this.fundingSource = fundingSource;
  }

  /**
   * This is the `recurringDetailReference` returned in the response when you created the token.
   *
   * @param recurringDetailReference This is the `recurringDetailReference` returned in the response when you created the token.
   * @return the current {@code ApplePayDetails} instance, allowing for method chaining
   *
   * @deprecated since Adyen Checkout API v49
   * Use `storedPaymentMethodId` instead.
   */
  @Deprecated // deprecated since Adyen Checkout API v49: Use `storedPaymentMethodId` instead.
  public ApplePayDetails recurringDetailReference(String recurringDetailReference) {
    this.recurringDetailReference = recurringDetailReference;
    return this;
  }

  /**
   * This is the `recurringDetailReference` returned in the response when you created the token.
   * @return recurringDetailReference This is the `recurringDetailReference` returned in the response when you created the token.
   * @deprecated // deprecated since Adyen Checkout API v49: Use `storedPaymentMethodId` instead.
   */
  @Deprecated // deprecated since Adyen Checkout API v49: Use `storedPaymentMethodId` instead.
  @JsonProperty(JSON_PROPERTY_RECURRING_DETAIL_REFERENCE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public String getRecurringDetailReference() {
    return recurringDetailReference;
  }

  /**
   * This is the `recurringDetailReference` returned in the response when you created the token.
   *
   * @param recurringDetailReference This is the `recurringDetailReference` returned in the response when you created the token.
   *
   * @deprecated since Adyen Checkout API v49
   * Use `storedPaymentMethodId` instead.
   */
  @Deprecated // deprecated since Adyen Checkout API v49: Use `storedPaymentMethodId` instead.
  @JsonProperty(JSON_PROPERTY_RECURRING_DETAIL_REFERENCE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setRecurringDetailReference(String recurringDetailReference) {
    this.recurringDetailReference = recurringDetailReference;
  }

  /**
   * This is the `recurringDetailReference` returned in the response when you created the token.
   *
   * @param storedPaymentMethodId This is the `recurringDetailReference` returned in the response when you created the token.
   * @return the current {@code ApplePayDetails} instance, allowing for method chaining
   */
  public ApplePayDetails storedPaymentMethodId(String storedPaymentMethodId) {
    this.storedPaymentMethodId = storedPaymentMethodId;
    return this;
  }

  /**
   * This is the `recurringDetailReference` returned in the response when you created the token.
   * @return storedPaymentMethodId This is the `recurringDetailReference` returned in the response when you created the token.
   */
  @JsonProperty(JSON_PROPERTY_STORED_PAYMENT_METHOD_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public String getStoredPaymentMethodId() {
    return storedPaymentMethodId;
  }

  /**
   * This is the `recurringDetailReference` returned in the response when you created the token.
   *
   * @param storedPaymentMethodId This is the `recurringDetailReference` returned in the response when you created the token.
   */
  @JsonProperty(JSON_PROPERTY_STORED_PAYMENT_METHOD_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setStoredPaymentMethodId(String storedPaymentMethodId) {
    this.storedPaymentMethodId = storedPaymentMethodId;
  }

  /**
   * **applepay**
   *
   * @param type **applepay**
   * @return the current {@code ApplePayDetails} instance, allowing for method chaining
   */
  public ApplePayDetails type(TypeEnum type) {
    this.type = type;
    return this;
  }

  /**
   * **applepay**
   * @return type **applepay**
   */
  @JsonProperty(JSON_PROPERTY_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public TypeEnum getType() {
    return type;
  }

  /**
   * **applepay**
   *
   * @param type **applepay**
   */
  @JsonProperty(JSON_PROPERTY_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setType(TypeEnum type) {
    this.type = type;
  }

  /**
   * Return true if this ApplePayDetails object is equal to o.
   */
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApplePayDetails applePayDetails = (ApplePayDetails) o;
    return Objects.equals(this.applePayToken, applePayDetails.applePayToken) &&
        Objects.equals(this.checkoutAttemptId, applePayDetails.checkoutAttemptId) &&
        Objects.equals(this.fundingSource, applePayDetails.fundingSource) &&
        Objects.equals(this.recurringDetailReference, applePayDetails.recurringDetailReference) &&
        Objects.equals(this.storedPaymentMethodId, applePayDetails.storedPaymentMethodId) &&
        Objects.equals(this.type, applePayDetails.type);
  }

  @Override
  public int hashCode() {
    return Objects.hash(applePayToken, checkoutAttemptId, fundingSource, recurringDetailReference, storedPaymentMethodId, type);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApplePayDetails {\n");
    sb.append("    applePayToken: ").append(toIndentedString(applePayToken)).append("\n");
    sb.append("    checkoutAttemptId: ").append(toIndentedString(checkoutAttemptId)).append("\n");
    sb.append("    fundingSource: ").append(toIndentedString(fundingSource)).append("\n");
    sb.append("    recurringDetailReference: ").append(toIndentedString(recurringDetailReference)).append("\n");
    sb.append("    storedPaymentMethodId: ").append(toIndentedString(storedPaymentMethodId)).append("\n");
    sb.append("    type: ").append(toIndentedString(type)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

/**
   * Create an instance of ApplePayDetails given an JSON string
   *
   * @param jsonString JSON string
   * @return An instance of ApplePayDetails
   * @throws JsonProcessingException if the JSON string is invalid with respect to ApplePayDetails
   */
  public static ApplePayDetails fromJson(String jsonString) throws JsonProcessingException {
    return JSON.getMapper().readValue(jsonString, ApplePayDetails.class);
  }
/**
  * Convert an instance of ApplePayDetails to an JSON string
  *
  * @return JSON string
  */
  public String toJson() throws JsonProcessingException {
    return JSON.getMapper().writeValueAsString(this);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy