content: /*
   * Legal Entity Management API
   *
   * The version of the OpenAPI document: 4
   *
   *
   * 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.legalentitymanagement;
  
  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.*;
  
  /** Financier */
  @JsonPropertyOrder({
    Financier.JSON_PROPERTY_AMOUNT,
    Financier.JSON_PROPERTY_FIRST_NAME,
    Financier.JSON_PROPERTY_LAST_NAME,
    Financier.JSON_PROPERTY_LOCATION
  })
  public class Financier {
    public static final String JSON_PROPERTY_AMOUNT = "amount";
    private Amount amount;
  
    public static final String JSON_PROPERTY_FIRST_NAME = "firstName";
    private String firstName;
  
    public static final String JSON_PROPERTY_LAST_NAME = "lastName";
    private String lastName;
  
    public static final String JSON_PROPERTY_LOCATION = "location";
    private String location;
  
    public Financier() {}
  
    /**
     * amount
     *
     * @param amount
     * @return the current {@code Financier} instance, allowing for method chaining
     */
    public Financier amount(Amount amount) {
      this.amount = amount;
      return this;
    }
  
    /**
     * Get amount
     *
     * @return amount
     */
    @JsonProperty(JSON_PROPERTY_AMOUNT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Amount getAmount() {
      return amount;
    }
  
    /**
     * amount
     *
     * @param amount
     */
    @JsonProperty(JSON_PROPERTY_AMOUNT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setAmount(Amount amount) {
      this.amount = amount;
    }
  
    /**
     * The financier&#39;s first name.
     *
     * @param firstName The financier&#39;s first name.
     * @return the current {@code Financier} instance, allowing for method chaining
     */
    public Financier firstName(String firstName) {
      this.firstName = firstName;
      return this;
    }
  
    /**
     * The financier&#39;s first name.
     *
     * @return firstName The financier&#39;s first name.
     */
    @JsonProperty(JSON_PROPERTY_FIRST_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getFirstName() {
      return firstName;
    }
  
    /**
     * The financier&#39;s first name.
     *
     * @param firstName The financier&#39;s first name.
     */
    @JsonProperty(JSON_PROPERTY_FIRST_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setFirstName(String firstName) {
      this.firstName = firstName;
    }
  
    /**
     * The financier&#39;s last name.
     *
     * @param lastName The financier&#39;s last name.
     * @return the current {@code Financier} instance, allowing for method chaining
     */
    public Financier lastName(String lastName) {
      this.lastName = lastName;
      return this;
    }
  
    /**
     * The financier&#39;s last name.
     *
     * @return lastName The financier&#39;s last name.
     */
    @JsonProperty(JSON_PROPERTY_LAST_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getLastName() {
      return lastName;
    }
  
    /**
     * The financier&#39;s last name.
     *
     * @param lastName The financier&#39;s last name.
     */
    @JsonProperty(JSON_PROPERTY_LAST_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setLastName(String lastName) {
      this.lastName = lastName;
    }
  
    /**
     * The city and country/region where the financier is currently located. For example: Chicago, USA
     *
     * @param location The city and country/region where the financier is currently located. For
     *     example: Chicago, USA
     * @return the current {@code Financier} instance, allowing for method chaining
     */
    public Financier location(String location) {
      this.location = location;
      return this;
    }
  
    /**
     * The city and country/region where the financier is currently located. For example: Chicago, USA
     *
     * @return location The city and country/region where the financier is currently located. For
     *     example: Chicago, USA
     */
    @JsonProperty(JSON_PROPERTY_LOCATION)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getLocation() {
      return location;
    }
  
    /**
     * The city and country/region where the financier is currently located. For example: Chicago, USA
     *
     * @param location The city and country/region where the financier is currently located. For
     *     example: Chicago, USA
     */
    @JsonProperty(JSON_PROPERTY_LOCATION)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setLocation(String location) {
      this.location = location;
    }
  
    /** Return true if this Financier object is equal to o. */
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      Financier financier = (Financier) o;
      return Objects.equals(this.amount, financier.amount)
          && Objects.equals(this.firstName, financier.firstName)
          && Objects.equals(this.lastName, financier.lastName)
          && Objects.equals(this.location, financier.location);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(amount, firstName, lastName, location);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class Financier {\n");
      sb.append("    amount: ").append(toIndentedString(amount)).append("\n");
      sb.append("    firstName: ").append(toIndentedString(firstName)).append("\n");
      sb.append("    lastName: ").append(toIndentedString(lastName)).append("\n");
      sb.append("    location: ").append(toIndentedString(location)).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 Financier given an JSON string
     *
     * @param jsonString JSON string
     * @return An instance of Financier
     * @throws JsonProcessingException if the JSON string is invalid with respect to Financier
     */
    public static Financier fromJson(String jsonString) throws JsonProcessingException {
      return JSON.getMapper().readValue(jsonString, Financier.class);
    }
  
    /**
     * Convert an instance of Financier to an JSON string
     *
     * @return JSON string
     */
    public String toJson() throws JsonProcessingException {
      return JSON.getMapper().writeValueAsString(this);
    }
  }
  