content: /*
   * Management API
   *
   * The version of the OpenAPI document: 3
   *
   *
   * 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.management;
  
  import com.fasterxml.jackson.annotation.JsonInclude;
  import com.fasterxml.jackson.annotation.JsonProperty;
  import com.fasterxml.jackson.annotation.JsonPropertyOrder;
  import com.fasterxml.jackson.core.JsonProcessingException;
  import java.util.*;
  import java.util.ArrayList;
  import java.util.List;
  
  /** TerminalSettings */
  @JsonPropertyOrder({
    TerminalSettings.JSON_PROPERTY_CARDHOLDER_RECEIPT,
    TerminalSettings.JSON_PROPERTY_CONNECTIVITY,
    TerminalSettings.JSON_PROPERTY_GRATUITIES,
    TerminalSettings.JSON_PROPERTY_HARDWARE,
    TerminalSettings.JSON_PROPERTY_LOCALIZATION,
    TerminalSettings.JSON_PROPERTY_NEXO,
    TerminalSettings.JSON_PROPERTY_OFFLINE_PROCESSING,
    TerminalSettings.JSON_PROPERTY_OPI,
    TerminalSettings.JSON_PROPERTY_PASSCODES,
    TerminalSettings.JSON_PROPERTY_PAY_AT_TABLE,
    TerminalSettings.JSON_PROPERTY_PAYMENT,
    TerminalSettings.JSON_PROPERTY_RECEIPT_OPTIONS,
    TerminalSettings.JSON_PROPERTY_RECEIPT_PRINTING,
    TerminalSettings.JSON_PROPERTY_REFUNDS,
    TerminalSettings.JSON_PROPERTY_SIGNATURE,
    TerminalSettings.JSON_PROPERTY_STANDALONE,
    TerminalSettings.JSON_PROPERTY_STORE_AND_FORWARD,
    TerminalSettings.JSON_PROPERTY_SURCHARGE,
    TerminalSettings.JSON_PROPERTY_TAP_TO_PAY,
    TerminalSettings.JSON_PROPERTY_TERMINAL_INSTRUCTIONS,
    TerminalSettings.JSON_PROPERTY_TIMEOUTS,
    TerminalSettings.JSON_PROPERTY_WIFI_PROFILES
  })
  public class TerminalSettings {
    public static final String JSON_PROPERTY_CARDHOLDER_RECEIPT = "cardholderReceipt";
    private CardholderReceipt cardholderReceipt;
  
    public static final String JSON_PROPERTY_CONNECTIVITY = "connectivity";
    private Connectivity connectivity;
  
    public static final String JSON_PROPERTY_GRATUITIES = "gratuities";
    private List<Gratuity> gratuities;
  
    public static final String JSON_PROPERTY_HARDWARE = "hardware";
    private Hardware hardware;
  
    public static final String JSON_PROPERTY_LOCALIZATION = "localization";
    private Localization localization;
  
    public static final String JSON_PROPERTY_NEXO = "nexo";
    private Nexo nexo;
  
    public static final String JSON_PROPERTY_OFFLINE_PROCESSING = "offlineProcessing";
    private OfflineProcessing offlineProcessing;
  
    public static final String JSON_PROPERTY_OPI = "opi";
    private Opi opi;
  
    public static final String JSON_PROPERTY_PASSCODES = "passcodes";
    private Passcodes passcodes;
  
    public static final String JSON_PROPERTY_PAY_AT_TABLE = "payAtTable";
    private PayAtTable payAtTable;
  
    public static final String JSON_PROPERTY_PAYMENT = "payment";
    private Payment payment;
  
    public static final String JSON_PROPERTY_RECEIPT_OPTIONS = "receiptOptions";
    private ReceiptOptions receiptOptions;
  
    public static final String JSON_PROPERTY_RECEIPT_PRINTING = "receiptPrinting";
    private ReceiptPrinting receiptPrinting;
  
    public static final String JSON_PROPERTY_REFUNDS = "refunds";
    private Refunds refunds;
  
    public static final String JSON_PROPERTY_SIGNATURE = "signature";
    private Signature signature;
  
    public static final String JSON_PROPERTY_STANDALONE = "standalone";
    private Standalone standalone;
  
    public static final String JSON_PROPERTY_STORE_AND_FORWARD = "storeAndForward";
    private StoreAndForward storeAndForward;
  
    public static final String JSON_PROPERTY_SURCHARGE = "surcharge";
    private Surcharge surcharge;
  
    public static final String JSON_PROPERTY_TAP_TO_PAY = "tapToPay";
    private TapToPay tapToPay;
  
    public static final String JSON_PROPERTY_TERMINAL_INSTRUCTIONS = "terminalInstructions";
    private TerminalInstructions terminalInstructions;
  
    public static final String JSON_PROPERTY_TIMEOUTS = "timeouts";
    private Timeouts timeouts;
  
    public static final String JSON_PROPERTY_WIFI_PROFILES = "wifiProfiles";
    private WifiProfiles wifiProfiles;
  
    public TerminalSettings() {}
  
    /**
     * cardholderReceipt
     *
     * @param cardholderReceipt
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings cardholderReceipt(CardholderReceipt cardholderReceipt) {
      this.cardholderReceipt = cardholderReceipt;
      return this;
    }
  
    /**
     * Get cardholderReceipt
     *
     * @return cardholderReceipt
     */
    @JsonProperty(JSON_PROPERTY_CARDHOLDER_RECEIPT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public CardholderReceipt getCardholderReceipt() {
      return cardholderReceipt;
    }
  
    /**
     * cardholderReceipt
     *
     * @param cardholderReceipt
     */
    @JsonProperty(JSON_PROPERTY_CARDHOLDER_RECEIPT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setCardholderReceipt(CardholderReceipt cardholderReceipt) {
      this.cardholderReceipt = cardholderReceipt;
    }
  
    /**
     * connectivity
     *
     * @param connectivity
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings connectivity(Connectivity connectivity) {
      this.connectivity = connectivity;
      return this;
    }
  
    /**
     * Get connectivity
     *
     * @return connectivity
     */
    @JsonProperty(JSON_PROPERTY_CONNECTIVITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Connectivity getConnectivity() {
      return connectivity;
    }
  
    /**
     * connectivity
     *
     * @param connectivity
     */
    @JsonProperty(JSON_PROPERTY_CONNECTIVITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setConnectivity(Connectivity connectivity) {
      this.connectivity = connectivity;
    }
  
    /**
     * Settings for tipping with or without predefined options to choose from. The maximum number of
     * predefined options is four, or three plus the option to enter a custom tip.
     *
     * @param gratuities Settings for tipping with or without predefined options to choose from. The
     *     maximum number of predefined options is four, or three plus the option to enter a custom
     *     tip.
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings gratuities(List<Gratuity> gratuities) {
      this.gratuities = gratuities;
      return this;
    }
  
    public TerminalSettings addGratuitiesItem(Gratuity gratuitiesItem) {
      if (this.gratuities == null) {
        this.gratuities = new ArrayList<>();
      }
      this.gratuities.add(gratuitiesItem);
      return this;
    }
  
    /**
     * Settings for tipping with or without predefined options to choose from. The maximum number of
     * predefined options is four, or three plus the option to enter a custom tip.
     *
     * @return gratuities Settings for tipping with or without predefined options to choose from. The
     *     maximum number of predefined options is four, or three plus the option to enter a custom
     *     tip.
     */
    @JsonProperty(JSON_PROPERTY_GRATUITIES)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public List<Gratuity> getGratuities() {
      return gratuities;
    }
  
    /**
     * Settings for tipping with or without predefined options to choose from. The maximum number of
     * predefined options is four, or three plus the option to enter a custom tip.
     *
     * @param gratuities Settings for tipping with or without predefined options to choose from. The
     *     maximum number of predefined options is four, or three plus the option to enter a custom
     *     tip.
     */
    @JsonProperty(JSON_PROPERTY_GRATUITIES)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setGratuities(List<Gratuity> gratuities) {
      this.gratuities = gratuities;
    }
  
    /**
     * hardware
     *
     * @param hardware
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings hardware(Hardware hardware) {
      this.hardware = hardware;
      return this;
    }
  
    /**
     * Get hardware
     *
     * @return hardware
     */
    @JsonProperty(JSON_PROPERTY_HARDWARE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Hardware getHardware() {
      return hardware;
    }
  
    /**
     * hardware
     *
     * @param hardware
     */
    @JsonProperty(JSON_PROPERTY_HARDWARE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setHardware(Hardware hardware) {
      this.hardware = hardware;
    }
  
    /**
     * localization
     *
     * @param localization
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings localization(Localization localization) {
      this.localization = localization;
      return this;
    }
  
    /**
     * Get localization
     *
     * @return localization
     */
    @JsonProperty(JSON_PROPERTY_LOCALIZATION)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Localization getLocalization() {
      return localization;
    }
  
    /**
     * localization
     *
     * @param localization
     */
    @JsonProperty(JSON_PROPERTY_LOCALIZATION)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setLocalization(Localization localization) {
      this.localization = localization;
    }
  
    /**
     * nexo
     *
     * @param nexo
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings nexo(Nexo nexo) {
      this.nexo = nexo;
      return this;
    }
  
    /**
     * Get nexo
     *
     * @return nexo
     */
    @JsonProperty(JSON_PROPERTY_NEXO)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Nexo getNexo() {
      return nexo;
    }
  
    /**
     * nexo
     *
     * @param nexo
     */
    @JsonProperty(JSON_PROPERTY_NEXO)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setNexo(Nexo nexo) {
      this.nexo = nexo;
    }
  
    /**
     * offlineProcessing
     *
     * @param offlineProcessing
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings offlineProcessing(OfflineProcessing offlineProcessing) {
      this.offlineProcessing = offlineProcessing;
      return this;
    }
  
    /**
     * Get offlineProcessing
     *
     * @return offlineProcessing
     */
    @JsonProperty(JSON_PROPERTY_OFFLINE_PROCESSING)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public OfflineProcessing getOfflineProcessing() {
      return offlineProcessing;
    }
  
    /**
     * offlineProcessing
     *
     * @param offlineProcessing
     */
    @JsonProperty(JSON_PROPERTY_OFFLINE_PROCESSING)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOfflineProcessing(OfflineProcessing offlineProcessing) {
      this.offlineProcessing = offlineProcessing;
    }
  
    /**
     * opi
     *
     * @param opi
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings opi(Opi opi) {
      this.opi = opi;
      return this;
    }
  
    /**
     * Get opi
     *
     * @return opi
     */
    @JsonProperty(JSON_PROPERTY_OPI)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Opi getOpi() {
      return opi;
    }
  
    /**
     * opi
     *
     * @param opi
     */
    @JsonProperty(JSON_PROPERTY_OPI)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOpi(Opi opi) {
      this.opi = opi;
    }
  
    /**
     * passcodes
     *
     * @param passcodes
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings passcodes(Passcodes passcodes) {
      this.passcodes = passcodes;
      return this;
    }
  
    /**
     * Get passcodes
     *
     * @return passcodes
     */
    @JsonProperty(JSON_PROPERTY_PASSCODES)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Passcodes getPasscodes() {
      return passcodes;
    }
  
    /**
     * passcodes
     *
     * @param passcodes
     */
    @JsonProperty(JSON_PROPERTY_PASSCODES)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setPasscodes(Passcodes passcodes) {
      this.passcodes = passcodes;
    }
  
    /**
     * payAtTable
     *
     * @param payAtTable
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings payAtTable(PayAtTable payAtTable) {
      this.payAtTable = payAtTable;
      return this;
    }
  
    /**
     * Get payAtTable
     *
     * @return payAtTable
     */
    @JsonProperty(JSON_PROPERTY_PAY_AT_TABLE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public PayAtTable getPayAtTable() {
      return payAtTable;
    }
  
    /**
     * payAtTable
     *
     * @param payAtTable
     */
    @JsonProperty(JSON_PROPERTY_PAY_AT_TABLE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setPayAtTable(PayAtTable payAtTable) {
      this.payAtTable = payAtTable;
    }
  
    /**
     * payment
     *
     * @param payment
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings payment(Payment payment) {
      this.payment = payment;
      return this;
    }
  
    /**
     * Get payment
     *
     * @return payment
     */
    @JsonProperty(JSON_PROPERTY_PAYMENT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Payment getPayment() {
      return payment;
    }
  
    /**
     * payment
     *
     * @param payment
     */
    @JsonProperty(JSON_PROPERTY_PAYMENT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setPayment(Payment payment) {
      this.payment = payment;
    }
  
    /**
     * receiptOptions
     *
     * @param receiptOptions
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings receiptOptions(ReceiptOptions receiptOptions) {
      this.receiptOptions = receiptOptions;
      return this;
    }
  
    /**
     * Get receiptOptions
     *
     * @return receiptOptions
     */
    @JsonProperty(JSON_PROPERTY_RECEIPT_OPTIONS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public ReceiptOptions getReceiptOptions() {
      return receiptOptions;
    }
  
    /**
     * receiptOptions
     *
     * @param receiptOptions
     */
    @JsonProperty(JSON_PROPERTY_RECEIPT_OPTIONS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setReceiptOptions(ReceiptOptions receiptOptions) {
      this.receiptOptions = receiptOptions;
    }
  
    /**
     * receiptPrinting
     *
     * @param receiptPrinting
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings receiptPrinting(ReceiptPrinting receiptPrinting) {
      this.receiptPrinting = receiptPrinting;
      return this;
    }
  
    /**
     * Get receiptPrinting
     *
     * @return receiptPrinting
     */
    @JsonProperty(JSON_PROPERTY_RECEIPT_PRINTING)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public ReceiptPrinting getReceiptPrinting() {
      return receiptPrinting;
    }
  
    /**
     * receiptPrinting
     *
     * @param receiptPrinting
     */
    @JsonProperty(JSON_PROPERTY_RECEIPT_PRINTING)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setReceiptPrinting(ReceiptPrinting receiptPrinting) {
      this.receiptPrinting = receiptPrinting;
    }
  
    /**
     * refunds
     *
     * @param refunds
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings refunds(Refunds refunds) {
      this.refunds = refunds;
      return this;
    }
  
    /**
     * Get refunds
     *
     * @return refunds
     */
    @JsonProperty(JSON_PROPERTY_REFUNDS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Refunds getRefunds() {
      return refunds;
    }
  
    /**
     * refunds
     *
     * @param refunds
     */
    @JsonProperty(JSON_PROPERTY_REFUNDS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setRefunds(Refunds refunds) {
      this.refunds = refunds;
    }
  
    /**
     * signature
     *
     * @param signature
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings signature(Signature signature) {
      this.signature = signature;
      return this;
    }
  
    /**
     * Get signature
     *
     * @return signature
     */
    @JsonProperty(JSON_PROPERTY_SIGNATURE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Signature getSignature() {
      return signature;
    }
  
    /**
     * signature
     *
     * @param signature
     */
    @JsonProperty(JSON_PROPERTY_SIGNATURE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setSignature(Signature signature) {
      this.signature = signature;
    }
  
    /**
     * standalone
     *
     * @param standalone
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings standalone(Standalone standalone) {
      this.standalone = standalone;
      return this;
    }
  
    /**
     * Get standalone
     *
     * @return standalone
     */
    @JsonProperty(JSON_PROPERTY_STANDALONE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Standalone getStandalone() {
      return standalone;
    }
  
    /**
     * standalone
     *
     * @param standalone
     */
    @JsonProperty(JSON_PROPERTY_STANDALONE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setStandalone(Standalone standalone) {
      this.standalone = standalone;
    }
  
    /**
     * storeAndForward
     *
     * @param storeAndForward
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings storeAndForward(StoreAndForward storeAndForward) {
      this.storeAndForward = storeAndForward;
      return this;
    }
  
    /**
     * Get storeAndForward
     *
     * @return storeAndForward
     */
    @JsonProperty(JSON_PROPERTY_STORE_AND_FORWARD)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public StoreAndForward getStoreAndForward() {
      return storeAndForward;
    }
  
    /**
     * storeAndForward
     *
     * @param storeAndForward
     */
    @JsonProperty(JSON_PROPERTY_STORE_AND_FORWARD)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setStoreAndForward(StoreAndForward storeAndForward) {
      this.storeAndForward = storeAndForward;
    }
  
    /**
     * surcharge
     *
     * @param surcharge
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings surcharge(Surcharge surcharge) {
      this.surcharge = surcharge;
      return this;
    }
  
    /**
     * Get surcharge
     *
     * @return surcharge
     */
    @JsonProperty(JSON_PROPERTY_SURCHARGE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Surcharge getSurcharge() {
      return surcharge;
    }
  
    /**
     * surcharge
     *
     * @param surcharge
     */
    @JsonProperty(JSON_PROPERTY_SURCHARGE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setSurcharge(Surcharge surcharge) {
      this.surcharge = surcharge;
    }
  
    /**
     * tapToPay
     *
     * @param tapToPay
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings tapToPay(TapToPay tapToPay) {
      this.tapToPay = tapToPay;
      return this;
    }
  
    /**
     * Get tapToPay
     *
     * @return tapToPay
     */
    @JsonProperty(JSON_PROPERTY_TAP_TO_PAY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public TapToPay getTapToPay() {
      return tapToPay;
    }
  
    /**
     * tapToPay
     *
     * @param tapToPay
     */
    @JsonProperty(JSON_PROPERTY_TAP_TO_PAY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setTapToPay(TapToPay tapToPay) {
      this.tapToPay = tapToPay;
    }
  
    /**
     * terminalInstructions
     *
     * @param terminalInstructions
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings terminalInstructions(TerminalInstructions terminalInstructions) {
      this.terminalInstructions = terminalInstructions;
      return this;
    }
  
    /**
     * Get terminalInstructions
     *
     * @return terminalInstructions
     */
    @JsonProperty(JSON_PROPERTY_TERMINAL_INSTRUCTIONS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public TerminalInstructions getTerminalInstructions() {
      return terminalInstructions;
    }
  
    /**
     * terminalInstructions
     *
     * @param terminalInstructions
     */
    @JsonProperty(JSON_PROPERTY_TERMINAL_INSTRUCTIONS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setTerminalInstructions(TerminalInstructions terminalInstructions) {
      this.terminalInstructions = terminalInstructions;
    }
  
    /**
     * timeouts
     *
     * @param timeouts
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings timeouts(Timeouts timeouts) {
      this.timeouts = timeouts;
      return this;
    }
  
    /**
     * Get timeouts
     *
     * @return timeouts
     */
    @JsonProperty(JSON_PROPERTY_TIMEOUTS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Timeouts getTimeouts() {
      return timeouts;
    }
  
    /**
     * timeouts
     *
     * @param timeouts
     */
    @JsonProperty(JSON_PROPERTY_TIMEOUTS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setTimeouts(Timeouts timeouts) {
      this.timeouts = timeouts;
    }
  
    /**
     * wifiProfiles
     *
     * @param wifiProfiles
     * @return the current {@code TerminalSettings} instance, allowing for method chaining
     */
    public TerminalSettings wifiProfiles(WifiProfiles wifiProfiles) {
      this.wifiProfiles = wifiProfiles;
      return this;
    }
  
    /**
     * Get wifiProfiles
     *
     * @return wifiProfiles
     */
    @JsonProperty(JSON_PROPERTY_WIFI_PROFILES)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public WifiProfiles getWifiProfiles() {
      return wifiProfiles;
    }
  
    /**
     * wifiProfiles
     *
     * @param wifiProfiles
     */
    @JsonProperty(JSON_PROPERTY_WIFI_PROFILES)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setWifiProfiles(WifiProfiles wifiProfiles) {
      this.wifiProfiles = wifiProfiles;
    }
  
    /** Return true if this TerminalSettings object is equal to o. */
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      TerminalSettings terminalSettings = (TerminalSettings) o;
      return Objects.equals(this.cardholderReceipt, terminalSettings.cardholderReceipt)
          && Objects.equals(this.connectivity, terminalSettings.connectivity)
          && Objects.equals(this.gratuities, terminalSettings.gratuities)
          && Objects.equals(this.hardware, terminalSettings.hardware)
          && Objects.equals(this.localization, terminalSettings.localization)
          && Objects.equals(this.nexo, terminalSettings.nexo)
          && Objects.equals(this.offlineProcessing, terminalSettings.offlineProcessing)
          && Objects.equals(this.opi, terminalSettings.opi)
          && Objects.equals(this.passcodes, terminalSettings.passcodes)
          && Objects.equals(this.payAtTable, terminalSettings.payAtTable)
          && Objects.equals(this.payment, terminalSettings.payment)
          && Objects.equals(this.receiptOptions, terminalSettings.receiptOptions)
          && Objects.equals(this.receiptPrinting, terminalSettings.receiptPrinting)
          && Objects.equals(this.refunds, terminalSettings.refunds)
          && Objects.equals(this.signature, terminalSettings.signature)
          && Objects.equals(this.standalone, terminalSettings.standalone)
          && Objects.equals(this.storeAndForward, terminalSettings.storeAndForward)
          && Objects.equals(this.surcharge, terminalSettings.surcharge)
          && Objects.equals(this.tapToPay, terminalSettings.tapToPay)
          && Objects.equals(this.terminalInstructions, terminalSettings.terminalInstructions)
          && Objects.equals(this.timeouts, terminalSettings.timeouts)
          && Objects.equals(this.wifiProfiles, terminalSettings.wifiProfiles);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(
          cardholderReceipt,
          connectivity,
          gratuities,
          hardware,
          localization,
          nexo,
          offlineProcessing,
          opi,
          passcodes,
          payAtTable,
          payment,
          receiptOptions,
          receiptPrinting,
          refunds,
          signature,
          standalone,
          storeAndForward,
          surcharge,
          tapToPay,
          terminalInstructions,
          timeouts,
          wifiProfiles);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class TerminalSettings {\n");
      sb.append("    cardholderReceipt: ").append(toIndentedString(cardholderReceipt)).append("\n");
      sb.append("    connectivity: ").append(toIndentedString(connectivity)).append("\n");
      sb.append("    gratuities: ").append(toIndentedString(gratuities)).append("\n");
      sb.append("    hardware: ").append(toIndentedString(hardware)).append("\n");
      sb.append("    localization: ").append(toIndentedString(localization)).append("\n");
      sb.append("    nexo: ").append(toIndentedString(nexo)).append("\n");
      sb.append("    offlineProcessing: ").append(toIndentedString(offlineProcessing)).append("\n");
      sb.append("    opi: ").append(toIndentedString(opi)).append("\n");
      sb.append("    passcodes: ").append(toIndentedString(passcodes)).append("\n");
      sb.append("    payAtTable: ").append(toIndentedString(payAtTable)).append("\n");
      sb.append("    payment: ").append(toIndentedString(payment)).append("\n");
      sb.append("    receiptOptions: ").append(toIndentedString(receiptOptions)).append("\n");
      sb.append("    receiptPrinting: ").append(toIndentedString(receiptPrinting)).append("\n");
      sb.append("    refunds: ").append(toIndentedString(refunds)).append("\n");
      sb.append("    signature: ").append(toIndentedString(signature)).append("\n");
      sb.append("    standalone: ").append(toIndentedString(standalone)).append("\n");
      sb.append("    storeAndForward: ").append(toIndentedString(storeAndForward)).append("\n");
      sb.append("    surcharge: ").append(toIndentedString(surcharge)).append("\n");
      sb.append("    tapToPay: ").append(toIndentedString(tapToPay)).append("\n");
      sb.append("    terminalInstructions: ")
          .append(toIndentedString(terminalInstructions))
          .append("\n");
      sb.append("    timeouts: ").append(toIndentedString(timeouts)).append("\n");
      sb.append("    wifiProfiles: ").append(toIndentedString(wifiProfiles)).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 TerminalSettings given an JSON string
     *
     * @param jsonString JSON string
     * @return An instance of TerminalSettings
     * @throws JsonProcessingException if the JSON string is invalid with respect to TerminalSettings
     */
    public static TerminalSettings fromJson(String jsonString) throws JsonProcessingException {
      return JSON.getMapper().readValue(jsonString, TerminalSettings.class);
    }
  
    /**
     * Convert an instance of TerminalSettings to an JSON string
     *
     * @return JSON string
     */
    public String toJson() throws JsonProcessingException {
      return JSON.getMapper().writeValueAsString(this);
    }
  }
  