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

org.openapitools.client.model.Account Maven / Gradle / Ivy

There is a newer version: 3.2.1
Show newest version
/*
* Quickstart API Reference
* Zuora Quickstart API is the API that helps you achieve fundamental use cases.
* It provides a much simplified object model and improved performance, enabling developers to easily learn and use.
*/

package org.openapitools.client.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;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openapitools.client.model.BillingDocumentListResponse;
import org.openapitools.client.model.BillingDocumentSettings;
import org.openapitools.client.model.Contact;
import org.openapitools.client.model.CreditMemoListResponse;
import org.openapitools.client.model.CustomObject;
import org.openapitools.client.model.DebitMemoListResponse;
import org.openapitools.client.model.InvoiceListResponse;
import org.openapitools.client.model.ListCustomObjectResponse;
import org.openapitools.client.model.ListUsageResponse;
import org.openapitools.client.model.PaymentListResponse;
import org.openapitools.client.model.PaymentMethod;
import org.openapitools.client.model.PaymentMethodListResponse;
import org.openapitools.client.model.SubscriptionListResponse;
import org.openapitools.client.model.TaxCertificate;
import org.openapitools.client.model.TaxIdentifier;
import org.openapitools.jackson.nullable.JsonNullable;
import org.threeten.bp.OffsetDateTime;

import org.openapitools.client.JSON.CustomFieldAdapter;
import org.openapitools.client.JSON.NullableFieldAdapter;
/**
 * The account data.
 */
@ApiModel(description = "The account data.")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class Account {
  public static final String SERIALIZED_NAME_ID = "id";
  @SerializedName(SERIALIZED_NAME_ID)
  private String id;

  public static final String SERIALIZED_NAME_UPDATED_BY_ID = "updated_by_id";
  @SerializedName(SERIALIZED_NAME_UPDATED_BY_ID)
  private String updatedById;

  public static final String SERIALIZED_NAME_UPDATED_TIME = "updated_time";
  @SerializedName(SERIALIZED_NAME_UPDATED_TIME)
  private OffsetDateTime updatedTime;

  public static final String SERIALIZED_NAME_CREATED_BY_ID = "created_by_id";
  @SerializedName(SERIALIZED_NAME_CREATED_BY_ID)
  private String createdById;

  public static final String SERIALIZED_NAME_CREATED_TIME = "created_time";
  @SerializedName(SERIALIZED_NAME_CREATED_TIME)
  private OffsetDateTime createdTime;

  public static final String SERIALIZED_NAME_CUSTOM_FIELDS = "custom_fields";
  @SerializedName(SERIALIZED_NAME_CUSTOM_FIELDS)
  @JsonAdapter(CustomFieldAdapter.class)
  private Map customFields = null;

  public static final String SERIALIZED_NAME_CUSTOM_OBJECTS = "custom_objects";
  @SerializedName(SERIALIZED_NAME_CUSTOM_OBJECTS)
  private Map customObjects = null;

  public static final String SERIALIZED_NAME_ACCOUNT_NUMBER = "account_number";
  @SerializedName(SERIALIZED_NAME_ACCOUNT_NUMBER)
  private String accountNumber;

  public static final String SERIALIZED_NAME_BILLING_DOCUMENT_SETTINGS = "billing_document_settings";
  @SerializedName(SERIALIZED_NAME_BILLING_DOCUMENT_SETTINGS)
  private BillingDocumentSettings billingDocumentSettings;

  public static final String SERIALIZED_NAME_BATCH = "batch";
  @SerializedName(SERIALIZED_NAME_BATCH)
  private String batch;

  public static final String SERIALIZED_NAME_BILL_CYCLE_DAY = "bill_cycle_day";
  @SerializedName(SERIALIZED_NAME_BILL_CYCLE_DAY)
  private Integer billCycleDay;

  public static final String SERIALIZED_NAME_BILL_TO = "bill_to";
  @SerializedName(SERIALIZED_NAME_BILL_TO)
  private Contact billTo;

  public static final String SERIALIZED_NAME_BILL_TO_ID = "bill_to_id";
  @SerializedName(SERIALIZED_NAME_BILL_TO_ID)
  private String billToId;

  public static final String SERIALIZED_NAME_SOLD_TO = "sold_to";
  @SerializedName(SERIALIZED_NAME_SOLD_TO)
  private Contact soldTo;

  public static final String SERIALIZED_NAME_SOLD_TO_ID = "sold_to_id";
  @SerializedName(SERIALIZED_NAME_SOLD_TO_ID)
  private String soldToId;

  public static final String SERIALIZED_NAME_COMMUNICATION_PROFILE_ID = "communication_profile_id";
  @SerializedName(SERIALIZED_NAME_COMMUNICATION_PROFILE_ID)
  private String communicationProfileId;

  public static final String SERIALIZED_NAME_CRM_ID = "crm_id";
  @SerializedName(SERIALIZED_NAME_CRM_ID)
  private String crmId;

  public static final String SERIALIZED_NAME_DEFAULT_PAYMENT_METHOD_ID = "default_payment_method_id";
  @SerializedName(SERIALIZED_NAME_DEFAULT_PAYMENT_METHOD_ID)
  private String defaultPaymentMethodId;

  public static final String SERIALIZED_NAME_NAME = "name";
  @SerializedName(SERIALIZED_NAME_NAME)
  private String name;

  public static final String SERIALIZED_NAME_DESCRIPTION = "description";
  @SerializedName(SERIALIZED_NAME_DESCRIPTION)
  private String description;

  public static final String SERIALIZED_NAME_PARENT_ACCOUNT_ID = "parent_account_id";
  @SerializedName(SERIALIZED_NAME_PARENT_ACCOUNT_ID)
  private String parentAccountId;

  public static final String SERIALIZED_NAME_PAYMENT_GATEWAY = "payment_gateway";
  @SerializedName(SERIALIZED_NAME_PAYMENT_GATEWAY)
  @JsonAdapter(NullableFieldAdapter.class)
  private String paymentGateway;

  public static final String SERIALIZED_NAME_PAYMENT_TERMS = "payment_terms";
  @SerializedName(SERIALIZED_NAME_PAYMENT_TERMS)
  private String paymentTerms;

  public static final String SERIALIZED_NAME_SEQUENCE_SET_ID = "sequence_set_id";
  @SerializedName(SERIALIZED_NAME_SEQUENCE_SET_ID)
  private String sequenceSetId;

  public static final String SERIALIZED_NAME_AUTO_PAY = "auto_pay";
  @SerializedName(SERIALIZED_NAME_AUTO_PAY)
  private Boolean autoPay;

  public static final String SERIALIZED_NAME_TAX_CERTIFICATE = "tax_certificate";
  @SerializedName(SERIALIZED_NAME_TAX_CERTIFICATE)
  private TaxCertificate taxCertificate;

  public static final String SERIALIZED_NAME_TAX_IDENTIFIER = "tax_identifier";
  @SerializedName(SERIALIZED_NAME_TAX_IDENTIFIER)
  private TaxIdentifier taxIdentifier;

  public static final String SERIALIZED_NAME_CURRENCY = "currency";
  @SerializedName(SERIALIZED_NAME_CURRENCY)
  private String currency;

  public static final String SERIALIZED_NAME_SALES_REP = "sales_rep";
  @SerializedName(SERIALIZED_NAME_SALES_REP)
  private String salesRep;

  public static final String SERIALIZED_NAME_ENABLED = "enabled";
  @SerializedName(SERIALIZED_NAME_ENABLED)
  private Boolean enabled;

  public static final String SERIALIZED_NAME_REMAINING_DEBIT_MEMO_BALANCE = "remaining_debit_memo_balance";
  @SerializedName(SERIALIZED_NAME_REMAINING_DEBIT_MEMO_BALANCE)
  private BigDecimal remainingDebitMemoBalance;

  public static final String SERIALIZED_NAME_REMAINING_INVOICE_BALANCE = "remaining_invoice_balance";
  @SerializedName(SERIALIZED_NAME_REMAINING_INVOICE_BALANCE)
  private BigDecimal remainingInvoiceBalance;

  public static final String SERIALIZED_NAME_REMAINING_CREDIT_MEMO_BALANCE = "remaining_credit_memo_balance";
  @SerializedName(SERIALIZED_NAME_REMAINING_CREDIT_MEMO_BALANCE)
  private BigDecimal remainingCreditMemoBalance;

  public static final String SERIALIZED_NAME_REMAINING_PAYMENT_BALANCE = "remaining_payment_balance";
  @SerializedName(SERIALIZED_NAME_REMAINING_PAYMENT_BALANCE)
  private BigDecimal remainingPaymentBalance;

  public static final String SERIALIZED_NAME_DEFAULT_PAYMENT_METHOD = "default_payment_method";
  @SerializedName(SERIALIZED_NAME_DEFAULT_PAYMENT_METHOD)
  private PaymentMethod defaultPaymentMethod;

  public static final String SERIALIZED_NAME_BILLING_DOCUMENTS = "billing_documents";
  @SerializedName(SERIALIZED_NAME_BILLING_DOCUMENTS)
  private BillingDocumentListResponse billingDocuments;

  public static final String SERIALIZED_NAME_PAYMENTS = "payments";
  @SerializedName(SERIALIZED_NAME_PAYMENTS)
  private PaymentListResponse payments;

  public static final String SERIALIZED_NAME_PAYMENT_METHODS = "payment_methods";
  @SerializedName(SERIALIZED_NAME_PAYMENT_METHODS)
  private PaymentMethodListResponse paymentMethods;

  public static final String SERIALIZED_NAME_SUBSCRIPTIONS = "subscriptions";
  @SerializedName(SERIALIZED_NAME_SUBSCRIPTIONS)
  private SubscriptionListResponse subscriptions;

  public static final String SERIALIZED_NAME_USAGE_RECORDS = "usage_records";
  @SerializedName(SERIALIZED_NAME_USAGE_RECORDS)
  private ListUsageResponse usageRecords;

  public static final String SERIALIZED_NAME_CREDIT_MEMOS = "credit_memos";
  @SerializedName(SERIALIZED_NAME_CREDIT_MEMOS)
  private CreditMemoListResponse creditMemos;

  public static final String SERIALIZED_NAME_DEBIT_MEMOS = "debit_memos";
  @SerializedName(SERIALIZED_NAME_DEBIT_MEMOS)
  private DebitMemoListResponse debitMemos;

  public static final String SERIALIZED_NAME_INVOICES = "invoices";
  @SerializedName(SERIALIZED_NAME_INVOICES)
  private InvoiceListResponse invoices;

  public static final String SERIALIZED_NAME_ORGANIZATION_ID = "organization_id";
  @SerializedName(SERIALIZED_NAME_ORGANIZATION_ID)
  private String organizationId;

  public Account() { 
  }

  
  public Account(
     String id, 
     String updatedById, 
     OffsetDateTime updatedTime, 
     String createdById, 
     OffsetDateTime createdTime, 
     Map customObjects, 
     Contact billTo, 
     Contact soldTo, 
     Boolean enabled, 
     BigDecimal remainingDebitMemoBalance, 
     BigDecimal remainingInvoiceBalance, 
     BigDecimal remainingCreditMemoBalance, 
     BigDecimal remainingPaymentBalance, 
     BillingDocumentListResponse billingDocuments, 
     PaymentListResponse payments, 
     PaymentMethodListResponse paymentMethods, 
     SubscriptionListResponse subscriptions, 
     ListUsageResponse usageRecords, 
     CreditMemoListResponse creditMemos, 
     DebitMemoListResponse debitMemos, 
     InvoiceListResponse invoices
  ) {
    this();
    this.id = id;
    this.updatedById = updatedById;
    this.updatedTime = updatedTime;
    this.createdById = createdById;
    this.createdTime = createdTime;
    this.customObjects = customObjects;
    this.billTo = billTo;
    this.soldTo = soldTo;
    this.enabled = enabled;
    this.remainingDebitMemoBalance = remainingDebitMemoBalance;
    this.remainingInvoiceBalance = remainingInvoiceBalance;
    this.remainingCreditMemoBalance = remainingCreditMemoBalance;
    this.remainingPaymentBalance = remainingPaymentBalance;
    this.billingDocuments = billingDocuments;
    this.payments = payments;
    this.paymentMethods = paymentMethods;
    this.subscriptions = subscriptions;
    this.usageRecords = usageRecords;
    this.creditMemos = creditMemos;
    this.debitMemos = debitMemos;
    this.invoices = invoices;
  }

   /**
   * Unique identifier for the object.
   * @return id
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Unique identifier for the object.")

  public String getId() {
    return id;
  }




   /**
   * Unique identifier of the Zuora user who last updated the object
   * @return updatedById
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Unique identifier of the Zuora user who last updated the object")

  public String getUpdatedById() {
    return updatedById;
  }




   /**
   * The date and time when the object was last updated in ISO 8601 UTC format.
   * @return updatedTime
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "The date and time when the object was last updated in ISO 8601 UTC format.")

  public OffsetDateTime getUpdatedTime() {
    return updatedTime;
  }




   /**
   * Unique identifier of the Zuora user who created the object
   * @return createdById
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Unique identifier of the Zuora user who created the object")

  public String getCreatedById() {
    return createdById;
  }




   /**
   * The date and time when the object was created in ISO 8601 UTC format.
   * @return createdTime
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "The date and time when the object was created in ISO 8601 UTC format.")

  public OffsetDateTime getCreatedTime() {
    return createdTime;
  }




  public Account customFields(Map customFields) {
    
    this.customFields = customFields;
    return this;
  }

  public Account putCustomFieldsItem(String key, String customFieldsItem) {
    if (this.customFields == null) {
      this.customFields = new HashMap();
    }
    this.customFields.put(key, customFieldsItem);
    return this;
  }

   /**
   * Set of user-defined fields associated with this object. Useful for storing additional information about the object in a structured format.
   * @return customFields
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Set of user-defined fields associated with this object. Useful for storing additional information about the object in a structured format.")

  public Map getCustomFields() {
    return customFields;
  }


  public void setCustomFields(Map customFields) {
    this.customFields = customFields;
  }


   /**
   * The custom objects associated with a Zuora standard object.
   * @return customObjects
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "The custom objects associated with a Zuora standard object.")

  public Map getCustomObjects() {
    return customObjects;
  }




  public Account accountNumber(String accountNumber) {
    
    this.accountNumber = accountNumber;
    return this;
  }

   /**
   * Human-readable identifier of the account. It can be user-supplied.
   * @return accountNumber
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "A-100001", value = "Human-readable identifier of the account. It can be user-supplied.")

  public String getAccountNumber() {
    return accountNumber;
  }


  public void setAccountNumber(String accountNumber) {
    this.accountNumber = accountNumber;
  }


  public Account billingDocumentSettings(BillingDocumentSettings billingDocumentSettings) {
    
    this.billingDocumentSettings = billingDocumentSettings;
    return this;
  }

   /**
   * Get billingDocumentSettings
   * @return billingDocumentSettings
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public BillingDocumentSettings getBillingDocumentSettings() {
    return billingDocumentSettings;
  }


  public void setBillingDocumentSettings(BillingDocumentSettings billingDocumentSettings) {
    this.billingDocumentSettings = billingDocumentSettings;
  }


  public Account batch(String batch) {
    
    this.batch = batch;
    return this;
  }

   /**
   * The identifier of a bill run batch.
   * @return batch
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "The identifier of a bill run batch.")

  public String getBatch() {
    return batch;
  }


  public void setBatch(String batch) {
    this.batch = batch;
  }


  public Account billCycleDay(Integer billCycleDay) {
    
    this.billCycleDay = billCycleDay;
    return this;
  }

   /**
   * The day of the month on which your customer will be invoiced. For month-end specify 31.
   * minimum: 0
   * maximum: 31
   * @return billCycleDay
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "The day of the month on which your customer will be invoiced. For month-end specify 31.")

  public Integer getBillCycleDay() {
    return billCycleDay;
  }


  public void setBillCycleDay(Integer billCycleDay) {
    this.billCycleDay = billCycleDay;
  }


   /**
   * Customer billing address.
   * @return billTo
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Customer billing address.")

  public Contact getBillTo() {
    return billTo;
  }




  public Account billToId(String billToId) {
    
    this.billToId = billToId;
    return this;
  }

   /**
   * Customer billing address.
   * @return billToId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2c92c0f86a8dd422016a9e7a70116b0d", value = "Customer billing address.")

  public String getBillToId() {
    return billToId;
  }


  public void setBillToId(String billToId) {
    this.billToId = billToId;
  }


   /**
   * Customer address used for calculating tax.
   * @return soldTo
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Customer address used for calculating tax.")

  public Contact getSoldTo() {
    return soldTo;
  }




  public Account soldToId(String soldToId) {
    
    this.soldToId = soldToId;
    return this;
  }

   /**
   * Customer address used for calculating tax.
   * @return soldToId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "8ad0823f8040e52d0180433026b156fe", value = "Customer address used for calculating tax.")

  public String getSoldToId() {
    return soldToId;
  }


  public void setSoldToId(String soldToId) {
    this.soldToId = soldToId;
  }


  public Account communicationProfileId(String communicationProfileId) {
    
    this.communicationProfileId = communicationProfileId;
    return this;
  }

   /**
   * Identifier of the communication profile associated with this customer.
   * @return communicationProfileId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2c92c0946a6dffc0016a7faab604299b", value = "Identifier of the communication profile associated with this customer.")

  public String getCommunicationProfileId() {
    return communicationProfileId;
  }


  public void setCommunicationProfileId(String communicationProfileId) {
    this.communicationProfileId = communicationProfileId;
  }


  public Account crmId(String crmId) {
    
    this.crmId = crmId;
    return this;
  }

   /**
   * CRM account identifier.
   * @return crmId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1a2b3c4d5e", value = "CRM account identifier.")

  public String getCrmId() {
    return crmId;
  }


  public void setCrmId(String crmId) {
    this.crmId = crmId;
  }


  public Account defaultPaymentMethodId(String defaultPaymentMethodId) {
    
    this.defaultPaymentMethodId = defaultPaymentMethodId;
    return this;
  }

   /**
   * Identifier of the default payment method on the customer account.
   * @return defaultPaymentMethodId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "8a95b1946b6aeac8718c32aab8c395f", value = "Identifier of the default payment method on the customer account.")

  public String getDefaultPaymentMethodId() {
    return defaultPaymentMethodId;
  }


  public void setDefaultPaymentMethodId(String defaultPaymentMethodId) {
    this.defaultPaymentMethodId = defaultPaymentMethodId;
  }


  public Account name(String name) {
    
    this.name = name;
    return this;
  }

   /**
   * The name of the customer account.
   * @return name
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "test account", value = "The name of the customer account.")

  public String getName() {
    return name;
  }


  public void setName(String name) {
    this.name = name;
  }


  public Account description(String description) {
    
    this.description = description;
    return this;
  }

   /**
   * An arbitrary string attached to the object. Often useful for displaying to users.
   * @return description
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "description of test account", value = "An arbitrary string attached to the object. Often useful for displaying to users.")

  public String getDescription() {
    return description;
  }


  public void setDescription(String description) {
    this.description = description;
  }


  public Account parentAccountId(String parentAccountId) {
    
    this.parentAccountId = parentAccountId;
    return this;
  }

   /**
   * Identifier of this customer's parent account, if any.
   * @return parentAccountId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "8ad093f27d6eee80017d6effd7a66759", value = "Identifier of this customer's parent account, if any.")

  public String getParentAccountId() {
    return parentAccountId;
  }


  public void setParentAccountId(String parentAccountId) {
    this.parentAccountId = parentAccountId;
  }


  public Account paymentGateway(String paymentGateway) {
    
    this.paymentGateway = paymentGateway;
    return this;
  }

   /**
   * Payment gateway name.
   * @return paymentGateway
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "adyen gateway", value = "Payment gateway name.")

  public String getPaymentGateway() {
    return paymentGateway;
  }


  public void setPaymentGateway(String paymentGateway) {
    this.paymentGateway = paymentGateway;
  }


  public Account paymentTerms(String paymentTerms) {
    
    this.paymentTerms = paymentTerms;
    return this;
  }

   /**
   * Payment terms configured in **Billing Settings > Payment Terms** of your Zuora tenant.
   * @return paymentTerms
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Net 30", value = "Payment terms configured in **Billing Settings > Payment Terms** of your Zuora tenant.")

  public String getPaymentTerms() {
    return paymentTerms;
  }


  public void setPaymentTerms(String paymentTerms) {
    this.paymentTerms = paymentTerms;
  }


  public Account sequenceSetId(String sequenceSetId) {
    
    this.sequenceSetId = sequenceSetId;
    return this;
  }

   /**
   * The identifier or the billing document sequence set that is assigned to the customer account.
   * @return sequenceSetId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2c92a4204a6dffc0016a7faab723041c", value = "The identifier or the billing document sequence set that is assigned to the customer account.")

  public String getSequenceSetId() {
    return sequenceSetId;
  }


  public void setSequenceSetId(String sequenceSetId) {
    this.sequenceSetId = sequenceSetId;
  }


  public Account autoPay(Boolean autoPay) {
    
    this.autoPay = autoPay;
    return this;
  }

   /**
   * Controls whether future payments are automatically billed when they are due.
   * @return autoPay
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "true", value = "Controls whether future payments are automatically billed when they are due.")

  public Boolean getAutoPay() {
    return autoPay;
  }


  public void setAutoPay(Boolean autoPay) {
    this.autoPay = autoPay;
  }


  public Account taxCertificate(TaxCertificate taxCertificate) {
    
    this.taxCertificate = taxCertificate;
    return this;
  }

   /**
   * Get taxCertificate
   * @return taxCertificate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public TaxCertificate getTaxCertificate() {
    return taxCertificate;
  }


  public void setTaxCertificate(TaxCertificate taxCertificate) {
    this.taxCertificate = taxCertificate;
  }


  public Account taxIdentifier(TaxIdentifier taxIdentifier) {
    
    this.taxIdentifier = taxIdentifier;
    return this;
  }

   /**
   * Get taxIdentifier
   * @return taxIdentifier
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public TaxIdentifier getTaxIdentifier() {
    return taxIdentifier;
  }


  public void setTaxIdentifier(TaxIdentifier taxIdentifier) {
    this.taxIdentifier = taxIdentifier;
  }


  public Account currency(String currency) {
    
    this.currency = currency;
    return this;
  }

   /**
   * Three-letter ISO currency code. Once the currency is set for an account, it cannot be updated.
   * @return currency
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "USD", value = "Three-letter ISO currency code. Once the currency is set for an account, it cannot be updated.")

  public String getCurrency() {
    return currency;
  }


  public void setCurrency(String currency) {
    this.currency = currency;
  }


  public Account salesRep(String salesRep) {
    
    this.salesRep = salesRep;
    return this;
  }

   /**
   * The name of the sales representative associated with this account
   * @return salesRep
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Max", value = "The name of the sales representative associated with this account")

  public String getSalesRep() {
    return salesRep;
  }


  public void setSalesRep(String salesRep) {
    this.salesRep = salesRep;
  }


   /**
   * Usually used to disable the customer account. The default is true. If false, attempts to create subscriptions for the customer account will fail.
   * @return enabled
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "true", value = "Usually used to disable the customer account. The default is true. If false, attempts to create subscriptions for the customer account will fail.")

  public Boolean getEnabled() {
    return enabled;
  }




   /**
   * Total remaining balance of all posted debit memos.
   * @return remainingDebitMemoBalance
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "10", value = "Total remaining balance of all posted debit memos.")

  public BigDecimal getRemainingDebitMemoBalance() {
    return remainingDebitMemoBalance;
  }




   /**
   * Total remaining balance of all posted invoices.
   * @return remainingInvoiceBalance
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "100", value = "Total remaining balance of all posted invoices.")

  public BigDecimal getRemainingInvoiceBalance() {
    return remainingInvoiceBalance;
  }




   /**
   * Total remaining balance of all posted credit memos.
   * @return remainingCreditMemoBalance
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "50", value = "Total remaining balance of all posted credit memos.")

  public BigDecimal getRemainingCreditMemoBalance() {
    return remainingCreditMemoBalance;
  }




   /**
   * Total remaining balance of all posted payments.
   * @return remainingPaymentBalance
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "20", value = "Total remaining balance of all posted payments.")

  public BigDecimal getRemainingPaymentBalance() {
    return remainingPaymentBalance;
  }




  public Account defaultPaymentMethod(PaymentMethod defaultPaymentMethod) {
    
    this.defaultPaymentMethod = defaultPaymentMethod;
    return this;
  }

   /**
   * The default payment method for the customer.
   * @return defaultPaymentMethod
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "The default payment method for the customer.")

  public PaymentMethod getDefaultPaymentMethod() {
    return defaultPaymentMethod;
  }


  public void setDefaultPaymentMethod(PaymentMethod defaultPaymentMethod) {
    this.defaultPaymentMethod = defaultPaymentMethod;
  }


   /**
   * List of customer billing documents.
   * @return billingDocuments
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "List of customer billing documents.")

  public BillingDocumentListResponse getBillingDocuments() {
    return billingDocuments;
  }




   /**
   * List of customer payments.
   * @return payments
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "List of customer payments.")

  public PaymentListResponse getPayments() {
    return payments;
  }




   /**
   * List of customer payment methods.
   * @return paymentMethods
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "List of customer payment methods.")

  public PaymentMethodListResponse getPaymentMethods() {
    return paymentMethods;
  }




   /**
   * List of customer subscriptions.
   * @return subscriptions
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "List of customer subscriptions.")

  public SubscriptionListResponse getSubscriptions() {
    return subscriptions;
  }




   /**
   * List of customer usages.
   * @return usageRecords
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "List of customer usages.")

  public ListUsageResponse getUsageRecords() {
    return usageRecords;
  }




   /**
   * List of credit memo
   * @return creditMemos
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "List of credit memo")

  public CreditMemoListResponse getCreditMemos() {
    return creditMemos;
  }




   /**
   * List of debit memo
   * @return debitMemos
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "List of debit memo")

  public DebitMemoListResponse getDebitMemos() {
    return debitMemos;
  }




   /**
   * List of invoices
   * @return invoices
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "List of invoices")

  public InvoiceListResponse getInvoices() {
    return invoices;
  }




  public Account organizationId(String organizationId) {
    
    this.organizationId = organizationId;
    return this;
  }

   /**
   * The organization ID of the account.
   * @return organizationId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "The organization ID of the account.")

  public String getOrganizationId() {
    return organizationId;
  }


  public void setOrganizationId(String organizationId) {
    this.organizationId = organizationId;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    Account account = (Account) o;
    return Objects.equals(this.id, account.id) &&
        Objects.equals(this.updatedById, account.updatedById) &&
        Objects.equals(this.updatedTime, account.updatedTime) &&
        Objects.equals(this.createdById, account.createdById) &&
        Objects.equals(this.createdTime, account.createdTime) &&
        Objects.equals(this.customFields, account.customFields) &&
        Objects.equals(this.customObjects, account.customObjects) &&
        Objects.equals(this.accountNumber, account.accountNumber) &&
        Objects.equals(this.billingDocumentSettings, account.billingDocumentSettings) &&
        Objects.equals(this.batch, account.batch) &&
        Objects.equals(this.billCycleDay, account.billCycleDay) &&
        Objects.equals(this.billTo, account.billTo) &&
        Objects.equals(this.billToId, account.billToId) &&
        Objects.equals(this.soldTo, account.soldTo) &&
        Objects.equals(this.soldToId, account.soldToId) &&
        Objects.equals(this.communicationProfileId, account.communicationProfileId) &&
        Objects.equals(this.crmId, account.crmId) &&
        Objects.equals(this.defaultPaymentMethodId, account.defaultPaymentMethodId) &&
        Objects.equals(this.name, account.name) &&
        Objects.equals(this.description, account.description) &&
        Objects.equals(this.parentAccountId, account.parentAccountId) &&
        Objects.equals(this.paymentGateway, account.paymentGateway) &&
        Objects.equals(this.paymentTerms, account.paymentTerms) &&
        Objects.equals(this.sequenceSetId, account.sequenceSetId) &&
        Objects.equals(this.autoPay, account.autoPay) &&
        Objects.equals(this.taxCertificate, account.taxCertificate) &&
        Objects.equals(this.taxIdentifier, account.taxIdentifier) &&
        Objects.equals(this.currency, account.currency) &&
        Objects.equals(this.salesRep, account.salesRep) &&
        Objects.equals(this.enabled, account.enabled) &&
        Objects.equals(this.remainingDebitMemoBalance, account.remainingDebitMemoBalance) &&
        Objects.equals(this.remainingInvoiceBalance, account.remainingInvoiceBalance) &&
        Objects.equals(this.remainingCreditMemoBalance, account.remainingCreditMemoBalance) &&
        Objects.equals(this.remainingPaymentBalance, account.remainingPaymentBalance) &&
        Objects.equals(this.defaultPaymentMethod, account.defaultPaymentMethod) &&
        Objects.equals(this.billingDocuments, account.billingDocuments) &&
        Objects.equals(this.payments, account.payments) &&
        Objects.equals(this.paymentMethods, account.paymentMethods) &&
        Objects.equals(this.subscriptions, account.subscriptions) &&
        Objects.equals(this.usageRecords, account.usageRecords) &&
        Objects.equals(this.creditMemos, account.creditMemos) &&
        Objects.equals(this.debitMemos, account.debitMemos) &&
        Objects.equals(this.invoices, account.invoices) &&
        Objects.equals(this.organizationId, account.organizationId);
  }

  private static  boolean equalsNullable(JsonNullable a, JsonNullable b) {
    return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get()));
  }

  @Override
  public int hashCode() {
    return Objects.hash(id, updatedById, updatedTime, createdById, createdTime, customFields, customObjects, accountNumber, billingDocumentSettings, batch, billCycleDay, billTo, billToId, soldTo, soldToId, communicationProfileId, crmId, defaultPaymentMethodId, name, description, parentAccountId, paymentGateway, paymentTerms, sequenceSetId, autoPay, taxCertificate, taxIdentifier, currency, salesRep, enabled, remainingDebitMemoBalance, remainingInvoiceBalance, remainingCreditMemoBalance, remainingPaymentBalance, defaultPaymentMethod, billingDocuments, payments, paymentMethods, subscriptions, usageRecords, creditMemos, debitMemos, invoices, organizationId);
  }

  private static  int hashCodeNullable(JsonNullable a) {
    if (a == null) {
      return 1;
    }
    return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31;
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class Account {\n");
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    updatedById: ").append(toIndentedString(updatedById)).append("\n");
    sb.append("    updatedTime: ").append(toIndentedString(updatedTime)).append("\n");
    sb.append("    createdById: ").append(toIndentedString(createdById)).append("\n");
    sb.append("    createdTime: ").append(toIndentedString(createdTime)).append("\n");
    sb.append("    customFields: ").append(toIndentedString(customFields)).append("\n");
    sb.append("    customObjects: ").append(toIndentedString(customObjects)).append("\n");
    sb.append("    accountNumber: ").append(toIndentedString(accountNumber)).append("\n");
    sb.append("    billingDocumentSettings: ").append(toIndentedString(billingDocumentSettings)).append("\n");
    sb.append("    batch: ").append(toIndentedString(batch)).append("\n");
    sb.append("    billCycleDay: ").append(toIndentedString(billCycleDay)).append("\n");
    sb.append("    billTo: ").append(toIndentedString(billTo)).append("\n");
    sb.append("    billToId: ").append(toIndentedString(billToId)).append("\n");
    sb.append("    soldTo: ").append(toIndentedString(soldTo)).append("\n");
    sb.append("    soldToId: ").append(toIndentedString(soldToId)).append("\n");
    sb.append("    communicationProfileId: ").append(toIndentedString(communicationProfileId)).append("\n");
    sb.append("    crmId: ").append(toIndentedString(crmId)).append("\n");
    sb.append("    defaultPaymentMethodId: ").append(toIndentedString(defaultPaymentMethodId)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    description: ").append(toIndentedString(description)).append("\n");
    sb.append("    parentAccountId: ").append(toIndentedString(parentAccountId)).append("\n");
    sb.append("    paymentGateway: ").append(toIndentedString(paymentGateway)).append("\n");
    sb.append("    paymentTerms: ").append(toIndentedString(paymentTerms)).append("\n");
    sb.append("    sequenceSetId: ").append(toIndentedString(sequenceSetId)).append("\n");
    sb.append("    autoPay: ").append(toIndentedString(autoPay)).append("\n");
    sb.append("    taxCertificate: ").append(toIndentedString(taxCertificate)).append("\n");
    sb.append("    taxIdentifier: ").append(toIndentedString(taxIdentifier)).append("\n");
    sb.append("    currency: ").append(toIndentedString(currency)).append("\n");
    sb.append("    salesRep: ").append(toIndentedString(salesRep)).append("\n");
    sb.append("    enabled: ").append(toIndentedString(enabled)).append("\n");
    sb.append("    remainingDebitMemoBalance: ").append(toIndentedString(remainingDebitMemoBalance)).append("\n");
    sb.append("    remainingInvoiceBalance: ").append(toIndentedString(remainingInvoiceBalance)).append("\n");
    sb.append("    remainingCreditMemoBalance: ").append(toIndentedString(remainingCreditMemoBalance)).append("\n");
    sb.append("    remainingPaymentBalance: ").append(toIndentedString(remainingPaymentBalance)).append("\n");
    sb.append("    defaultPaymentMethod: ").append(toIndentedString(defaultPaymentMethod)).append("\n");
    sb.append("    billingDocuments: ").append(toIndentedString(billingDocuments)).append("\n");
    sb.append("    payments: ").append(toIndentedString(payments)).append("\n");
    sb.append("    paymentMethods: ").append(toIndentedString(paymentMethods)).append("\n");
    sb.append("    subscriptions: ").append(toIndentedString(subscriptions)).append("\n");
    sb.append("    usageRecords: ").append(toIndentedString(usageRecords)).append("\n");
    sb.append("    creditMemos: ").append(toIndentedString(creditMemos)).append("\n");
    sb.append("    debitMemos: ").append(toIndentedString(debitMemos)).append("\n");
    sb.append("    invoices: ").append(toIndentedString(invoices)).append("\n");
    sb.append("    organizationId: ").append(toIndentedString(organizationId)).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    ");
  }

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy