org.openapitools.client.model.PaymentSchedule Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of zuora-sdk-java Show documentation
Show all versions of zuora-sdk-java Show documentation
The SDK of JAVA language for Zuora pricing system
/*
* 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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openapitools.client.model.CustomObject;
import org.openapitools.client.model.ListCustomObjectResponse;
import org.openapitools.client.model.PaymentScheduleBillingDocumentResponse;
import org.openapitools.client.model.PaymentScheduleItem;
import org.openapitools.client.model.PaymentSchedulePaymentOptionRequest;
import org.openapitools.jackson.nullable.JsonNullable;
import org.threeten.bp.LocalDate;
import org.threeten.bp.OffsetDateTime;
import org.openapitools.client.JSON.CustomFieldAdapter;
import org.openapitools.client.JSON.NullableFieldAdapter;
/**
* PaymentSchedule
*/
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class PaymentSchedule {
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_ID = "account_id";
@SerializedName(SERIALIZED_NAME_ACCOUNT_ID)
private String accountId;
public static final String SERIALIZED_NAME_ACCOUNT_NUMBER = "account_number";
@SerializedName(SERIALIZED_NAME_ACCOUNT_NUMBER)
private String accountNumber;
public static final String SERIALIZED_NAME_AMOUNT = "amount";
@SerializedName(SERIALIZED_NAME_AMOUNT)
private BigDecimal amount;
/**
* Unit in which term duration is defined. One of week or month.
*/
@JsonAdapter(PeriodEnum.Adapter.class)
public enum PeriodEnum {
WEEK("week"),
MONTH("month"),
BIWEEKLY("biweekly"),
UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
private String value;
PeriodEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return String.valueOf(value);
}
public static PeriodEnum fromValue(String value) {
for (PeriodEnum b : PeriodEnum.values()) {
if (b.value.equals(value)) {
return b;
}
}
throw new IllegalArgumentException("Unexpected value '" + value + "'");
}
public static class Adapter extends TypeAdapter {
@Override
public void write(final JsonWriter jsonWriter, final PeriodEnum enumeration) throws IOException {
jsonWriter.value(enumeration.getValue());
}
@Override
public PeriodEnum read(final JsonReader jsonReader) throws IOException {
String value = jsonReader.nextString();
return PeriodEnum.fromValue(value);
}
}
}
public static final String SERIALIZED_NAME_PERIOD = "period";
@SerializedName(SERIALIZED_NAME_PERIOD)
private PeriodEnum period;
public static final String SERIALIZED_NAME_BILLING_DOCUMENT = "billing_document";
@SerializedName(SERIALIZED_NAME_BILLING_DOCUMENT)
private PaymentScheduleBillingDocumentResponse billingDocument;
public static final String SERIALIZED_NAME_CURRENCY = "currency";
@SerializedName(SERIALIZED_NAME_CURRENCY)
private String currency;
public static final String SERIALIZED_NAME_DESCRIPTION = "description";
@SerializedName(SERIALIZED_NAME_DESCRIPTION)
private String description;
public static final String SERIALIZED_NAME_ITEMS = "items";
@SerializedName(SERIALIZED_NAME_ITEMS)
private List items = null;
public static final String SERIALIZED_NAME_NUMBER_OF_PAYMENTS = "number_of_payments";
@SerializedName(SERIALIZED_NAME_NUMBER_OF_PAYMENTS)
private Integer numberOfPayments;
public static final String SERIALIZED_NAME_PAYMENT_GATEWAY_ID = "payment_gateway_id";
@SerializedName(SERIALIZED_NAME_PAYMENT_GATEWAY_ID)
private String paymentGatewayId;
public static final String SERIALIZED_NAME_PAYMENT_METHOD_ID = "payment_method_id";
@SerializedName(SERIALIZED_NAME_PAYMENT_METHOD_ID)
private String paymentMethodId;
public static final String SERIALIZED_NAME_PAYMENT_SCHEDULE_NUMBER = "payment_schedule_number";
@SerializedName(SERIALIZED_NAME_PAYMENT_SCHEDULE_NUMBER)
private String paymentScheduleNumber;
public static final String SERIALIZED_NAME_RUN_HOUR = "run_hour";
@SerializedName(SERIALIZED_NAME_RUN_HOUR)
private Integer runHour;
public static final String SERIALIZED_NAME_STANDALONE = "standalone";
@SerializedName(SERIALIZED_NAME_STANDALONE)
private Boolean standalone;
public static final String SERIALIZED_NAME_START_DATE = "start_date";
@SerializedName(SERIALIZED_NAME_START_DATE)
private LocalDate startDate;
public static final String SERIALIZED_NAME_TOTAL_AMOUNT = "total_amount";
@SerializedName(SERIALIZED_NAME_TOTAL_AMOUNT)
private BigDecimal totalAmount;
public static final String SERIALIZED_NAME_CUSTOM = "custom";
@SerializedName(SERIALIZED_NAME_CUSTOM)
private Boolean custom;
public static final String SERIALIZED_NAME_NEXT_PAYMENT_DATE = "next_payment_date";
@SerializedName(SERIALIZED_NAME_NEXT_PAYMENT_DATE)
private LocalDate nextPaymentDate;
public static final String SERIALIZED_NAME_RECENT_PAYMENT_DATE = "recent_payment_date";
@SerializedName(SERIALIZED_NAME_RECENT_PAYMENT_DATE)
private LocalDate recentPaymentDate;
/**
* The status of the payment schedule. active: there are unprocessed payment schedule items. canceled: the payment schedule has been canceled. complete: the payment schedule is complete and all items have been processed.
*/
@JsonAdapter(StateEnum.Adapter.class)
public enum StateEnum {
ACTIVE("active"),
CANCELED("canceled"),
COMPLETE("complete"),
UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
private String value;
StateEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return String.valueOf(value);
}
public static StateEnum fromValue(String value) {
for (StateEnum b : StateEnum.values()) {
if (b.value.equals(value)) {
return b;
}
}
throw new IllegalArgumentException("Unexpected value '" + value + "'");
}
public static class Adapter extends TypeAdapter {
@Override
public void write(final JsonWriter jsonWriter, final StateEnum enumeration) throws IOException {
jsonWriter.value(enumeration.getValue());
}
@Override
public StateEnum read(final JsonReader jsonReader) throws IOException {
String value = jsonReader.nextString();
return StateEnum.fromValue(value);
}
}
}
public static final String SERIALIZED_NAME_STATE = "state";
@SerializedName(SERIALIZED_NAME_STATE)
private StateEnum state;
public static final String SERIALIZED_NAME_TOTAL_PAYMENTS_ERRORED = "total_payments_errored";
@SerializedName(SERIALIZED_NAME_TOTAL_PAYMENTS_ERRORED)
private Integer totalPaymentsErrored;
public static final String SERIALIZED_NAME_TOTAL_PAYMENTS_PROCESSED = "total_payments_processed";
@SerializedName(SERIALIZED_NAME_TOTAL_PAYMENTS_PROCESSED)
private Integer totalPaymentsProcessed;
public static final String SERIALIZED_NAME_PAYMENT_OPTIONS = "payment_options";
@SerializedName(SERIALIZED_NAME_PAYMENT_OPTIONS)
private List paymentOptions = null;
public static final String SERIALIZED_NAME_PREPAYMENT = "prepayment";
@SerializedName(SERIALIZED_NAME_PREPAYMENT)
private Boolean prepayment;
public PaymentSchedule() {
}
public PaymentSchedule(
String id,
String updatedById,
OffsetDateTime updatedTime,
String createdById,
OffsetDateTime createdTime,
Map customObjects
) {
this();
this.id = id;
this.updatedById = updatedById;
this.updatedTime = updatedTime;
this.createdById = createdById;
this.createdTime = createdTime;
this.customObjects = customObjects;
}
/**
* 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 PaymentSchedule customFields(Map customFields) {
this.customFields = customFields;
return this;
}
public PaymentSchedule 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 PaymentSchedule accountId(String accountId) {
this.accountId = accountId;
return this;
}
/**
* Unique identifier of the customer account the payment schedule belongs to.
* @return accountId
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Unique identifier of the customer account the payment schedule belongs to.")
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public PaymentSchedule accountNumber(String accountNumber) {
this.accountNumber = accountNumber;
return this;
}
/**
* Account number of the customer account the payment schedule belongs to.
* @return accountNumber
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Account number of the customer account the payment schedule belongs to.")
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public PaymentSchedule amount(BigDecimal amount) {
this.amount = amount;
return this;
}
/**
* The amount of each payment schedule item in the payment schedule.
* @return amount
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The amount of each payment schedule item in the payment schedule.")
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public PaymentSchedule period(PeriodEnum period) {
this.period = period;
return this;
}
/**
* Unit in which term duration is defined. One of week or month.
* @return period
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Unit in which term duration is defined. One of week or month.")
public PeriodEnum getPeriod() {
return period;
}
public void setPeriod(PeriodEnum period) {
this.period = period;
}
public PaymentSchedule billingDocument(PaymentScheduleBillingDocumentResponse billingDocument) {
this.billingDocument = billingDocument;
return this;
}
/**
* The billing document with which the payment schedule is associated. Note: This field is optional. If you have the Standalone Payment feature enabled, you can leave this field blank and set standalone to true to create standalone payments. You can also choose to create unapplied payments by leaving this object blank and setting standalone to false. If Standalone Payment is not enabled, leaving this object unspecified will create unapplied payments.
* @return billingDocument
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The billing document with which the payment schedule is associated. Note: This field is optional. If you have the Standalone Payment feature enabled, you can leave this field blank and set standalone to true to create standalone payments. You can also choose to create unapplied payments by leaving this object blank and setting standalone to false. If Standalone Payment is not enabled, leaving this object unspecified will create unapplied payments.")
public PaymentScheduleBillingDocumentResponse getBillingDocument() {
return billingDocument;
}
public void setBillingDocument(PaymentScheduleBillingDocumentResponse billingDocument) {
this.billingDocument = billingDocument;
}
public PaymentSchedule currency(String currency) {
this.currency = currency;
return this;
}
/**
* Currency of the payment schedule. Note: This field is optional. The default value is the account's default currency. This field will be ignored when items is specified.
* @return currency
**/
@javax.annotation.Nullable
@ApiModelProperty(example = "USD", value = "Currency of the payment schedule. Note: This field is optional. The default value is the account's default currency. This field will be ignored when items is specified.")
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public PaymentSchedule 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 PaymentSchedule items(List items) {
this.items = items;
return this;
}
public PaymentSchedule addItemsItem(PaymentScheduleItem itemsItem) {
if (this.items == null) {
this.items = new ArrayList();
}
this.items.add(itemsItem);
return this;
}
/**
* Get items
* @return items
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "")
public List getItems() {
return items;
}
public void setItems(List items) {
this.items = items;
}
public PaymentSchedule numberOfPayments(Integer numberOfPayments) {
this.numberOfPayments = numberOfPayments;
return this;
}
/**
* The number of payment schedule items to be created for this payment schedule.
* @return numberOfPayments
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The number of payment schedule items to be created for this payment schedule.")
public Integer getNumberOfPayments() {
return numberOfPayments;
}
public void setNumberOfPayments(Integer numberOfPayments) {
this.numberOfPayments = numberOfPayments;
}
public PaymentSchedule paymentGatewayId(String paymentGatewayId) {
this.paymentGatewayId = paymentGatewayId;
return this;
}
/**
* ID of the payment gateway used to collect payments. Note: This field is optional. The default value is the account's default payment gateway ID. If no payment gateway ID is found on the customer account level, the default value will be the tenant's default payment gateway ID. This field will be ignored when items is specified.
* @return paymentGatewayId
**/
@javax.annotation.Nullable
@ApiModelProperty(example = "8ad093f27d6eee80017d6effd7a66759", value = "ID of the payment gateway used to collect payments. Note: This field is optional. The default value is the account's default payment gateway ID. If no payment gateway ID is found on the customer account level, the default value will be the tenant's default payment gateway ID. This field will be ignored when items is specified.")
public String getPaymentGatewayId() {
return paymentGatewayId;
}
public void setPaymentGatewayId(String paymentGatewayId) {
this.paymentGatewayId = paymentGatewayId;
}
public PaymentSchedule paymentMethodId(String paymentMethodId) {
this.paymentMethodId = paymentMethodId;
return this;
}
/**
* ID of the payment method. Note: This field is optional. The default value is the account's default payment method ID. This field will be ignored when items is specified.
* @return paymentMethodId
**/
@javax.annotation.Nullable
@ApiModelProperty(example = "8a95b1946b6aeac8718c32aab8c395f", value = "ID of the payment method. Note: This field is optional. The default value is the account's default payment method ID. This field will be ignored when items is specified.")
public String getPaymentMethodId() {
return paymentMethodId;
}
public void setPaymentMethodId(String paymentMethodId) {
this.paymentMethodId = paymentMethodId;
}
public PaymentSchedule paymentScheduleNumber(String paymentScheduleNumber) {
this.paymentScheduleNumber = paymentScheduleNumber;
return this;
}
/**
* Number of the payment schedule.
* @return paymentScheduleNumber
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Number of the payment schedule.")
public String getPaymentScheduleNumber() {
return paymentScheduleNumber;
}
public void setPaymentScheduleNumber(String paymentScheduleNumber) {
this.paymentScheduleNumber = paymentScheduleNumber;
}
public PaymentSchedule runHour(Integer runHour) {
this.runHour = runHour;
return this;
}
/**
* At which hour in the day in the tenant's timezone this payment will be collected. Available values:[0,1,2,~,22,23]. If the time difference between your tenant’s timezone and the timezone where Zuora servers are located is not in full hours, for example, 2.5 hours, the payment schedule items will be triggered half an hour later than your scheduled time. The default value is 0. If the payment run_hour and scheduled_date are backdated, the system will collect the payment when the next run_hour occurs.
* minimum: 0
* maximum: 23
* @return runHour
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "At which hour in the day in the tenant's timezone this payment will be collected. Available values:[0,1,2,~,22,23]. If the time difference between your tenant’s timezone and the timezone where Zuora servers are located is not in full hours, for example, 2.5 hours, the payment schedule items will be triggered half an hour later than your scheduled time. The default value is 0. If the payment run_hour and scheduled_date are backdated, the system will collect the payment when the next run_hour occurs.")
public Integer getRunHour() {
return runHour;
}
public void setRunHour(Integer runHour) {
this.runHour = runHour;
}
public PaymentSchedule standalone(Boolean standalone) {
this.standalone = standalone;
return this;
}
/**
* Indicates whether the payments created by the payment schedule are standalone payments or not. When setting to `true`, standalone payments will be created. When setting to `false`, you can either specify a billing document, or not specifying any billing documents. In the latter case, unapplied payments will be created. If set to `null`, standalone payments will be created. **Note**: This parameter is only available if standalone payments are enabled in your tenant. The default value is `true` if standalone payments are enabled in your tenant.
* @return standalone
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Indicates whether the payments created by the payment schedule are standalone payments or not. When setting to `true`, standalone payments will be created. When setting to `false`, you can either specify a billing document, or not specifying any billing documents. In the latter case, unapplied payments will be created. If set to `null`, standalone payments will be created. **Note**: This parameter is only available if standalone payments are enabled in your tenant. The default value is `true` if standalone payments are enabled in your tenant.")
public Boolean getStandalone() {
return standalone;
}
public void setStandalone(Boolean standalone) {
this.standalone = standalone;
}
public PaymentSchedule startDate(LocalDate startDate) {
this.startDate = startDate;
return this;
}
/**
* The date of the first scheduled payment collection. Note: This parameter is required when `items` is not specified. This parameter will be ignored when `items` is specified.
* @return startDate
**/
@javax.annotation.Nullable
@ApiModelProperty(example = "Sun Jan 01 00:00:00 GMT 2023", value = "The date of the first scheduled payment collection. Note: This parameter is required when `items` is not specified. This parameter will be ignored when `items` is specified.")
public LocalDate getStartDate() {
return startDate;
}
public void setStartDate(LocalDate startDate) {
this.startDate = startDate;
}
public PaymentSchedule totalAmount(BigDecimal totalAmount) {
this.totalAmount = totalAmount;
return this;
}
/**
* The total amount to be collected by the payment schedule.
* @return totalAmount
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The total amount to be collected by the payment schedule.")
public BigDecimal getTotalAmount() {
return totalAmount;
}
public void setTotalAmount(BigDecimal totalAmount) {
this.totalAmount = totalAmount;
}
public PaymentSchedule custom(Boolean custom) {
this.custom = custom;
return this;
}
/**
* If it is set to `true`, the payment schedule is a custom payment schedule.
* @return custom
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "If it is set to `true`, the payment schedule is a custom payment schedule.")
public Boolean getCustom() {
return custom;
}
public void setCustom(Boolean custom) {
this.custom = custom;
}
public PaymentSchedule nextPaymentDate(LocalDate nextPaymentDate) {
this.nextPaymentDate = nextPaymentDate;
return this;
}
/**
* The date of the next scheduled payment.
* @return nextPaymentDate
**/
@javax.annotation.Nullable
@ApiModelProperty(example = "Sat Jan 01 00:00:00 GMT 2022", value = "The date of the next scheduled payment.")
public LocalDate getNextPaymentDate() {
return nextPaymentDate;
}
public void setNextPaymentDate(LocalDate nextPaymentDate) {
this.nextPaymentDate = nextPaymentDate;
}
public PaymentSchedule recentPaymentDate(LocalDate recentPaymentDate) {
this.recentPaymentDate = recentPaymentDate;
return this;
}
/**
* The date of the most recent scheduled payment.
* @return recentPaymentDate
**/
@javax.annotation.Nullable
@ApiModelProperty(example = "Sat Jan 01 00:00:00 GMT 2022", value = "The date of the most recent scheduled payment.")
public LocalDate getRecentPaymentDate() {
return recentPaymentDate;
}
public void setRecentPaymentDate(LocalDate recentPaymentDate) {
this.recentPaymentDate = recentPaymentDate;
}
public PaymentSchedule state(StateEnum state) {
this.state = state;
return this;
}
/**
* The status of the payment schedule. active: there are unprocessed payment schedule items. canceled: the payment schedule has been canceled. complete: the payment schedule is complete and all items have been processed.
* @return state
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The status of the payment schedule. active: there are unprocessed payment schedule items. canceled: the payment schedule has been canceled. complete: the payment schedule is complete and all items have been processed.")
public StateEnum getState() {
return state;
}
public void setState(StateEnum state) {
this.state = state;
}
public PaymentSchedule totalPaymentsErrored(Integer totalPaymentsErrored) {
this.totalPaymentsErrored = totalPaymentsErrored;
return this;
}
/**
* The total number of failed payments.
* @return totalPaymentsErrored
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The total number of failed payments.")
public Integer getTotalPaymentsErrored() {
return totalPaymentsErrored;
}
public void setTotalPaymentsErrored(Integer totalPaymentsErrored) {
this.totalPaymentsErrored = totalPaymentsErrored;
}
public PaymentSchedule totalPaymentsProcessed(Integer totalPaymentsProcessed) {
this.totalPaymentsProcessed = totalPaymentsProcessed;
return this;
}
/**
* The total number of payments processed.
* @return totalPaymentsProcessed
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The total number of payments processed.")
public Integer getTotalPaymentsProcessed() {
return totalPaymentsProcessed;
}
public void setTotalPaymentsProcessed(Integer totalPaymentsProcessed) {
this.totalPaymentsProcessed = totalPaymentsProcessed;
}
public PaymentSchedule paymentOptions(List paymentOptions) {
this.paymentOptions = paymentOptions;
return this;
}
public PaymentSchedule addPaymentOptionsItem(PaymentSchedulePaymentOptionRequest paymentOptionsItem) {
if (this.paymentOptions == null) {
this.paymentOptions = new ArrayList();
}
this.paymentOptions.add(paymentOptionsItem);
return this;
}
/**
* Container for the payment options, which describe the transactional level rules for processing payments. Currently, only the gateway_options type is supported. Payment schedule payment_options take precedence over payment schedule item payment_options.
* @return paymentOptions
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Container for the payment options, which describe the transactional level rules for processing payments. Currently, only the gateway_options type is supported. Payment schedule payment_options take precedence over payment schedule item payment_options.")
public List getPaymentOptions() {
return paymentOptions;
}
public void setPaymentOptions(List paymentOptions) {
this.paymentOptions = paymentOptions;
}
public PaymentSchedule prepayment(Boolean prepayment) {
this.prepayment = prepayment;
return this;
}
/**
* Indicates whether the payments created by the payment schedule will be used as reserved payments. This field will only be available if the prepaid cash drawdown permission is enabled. See <a href=\"https://knowledgecenter.zuora.com/Zuora_Billing/Bill_your_customers/Bill_for_usage_or_prepaid_products/Advanced_Consumption_Billing/Prepaid_with_Drawdown\" target=\"_blank\">Prepaid Cash with Drawdown for more information.</a>
* @return prepayment
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Indicates whether the payments created by the payment schedule will be used as reserved payments. This field will only be available if the prepaid cash drawdown permission is enabled. See Prepaid Cash with Drawdown for more information.")
public Boolean getPrepayment() {
return prepayment;
}
public void setPrepayment(Boolean prepayment) {
this.prepayment = prepayment;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
PaymentSchedule paymentSchedule = (PaymentSchedule) o;
return Objects.equals(this.id, paymentSchedule.id) &&
Objects.equals(this.updatedById, paymentSchedule.updatedById) &&
Objects.equals(this.updatedTime, paymentSchedule.updatedTime) &&
Objects.equals(this.createdById, paymentSchedule.createdById) &&
Objects.equals(this.createdTime, paymentSchedule.createdTime) &&
Objects.equals(this.customFields, paymentSchedule.customFields) &&
Objects.equals(this.customObjects, paymentSchedule.customObjects) &&
Objects.equals(this.accountId, paymentSchedule.accountId) &&
Objects.equals(this.accountNumber, paymentSchedule.accountNumber) &&
Objects.equals(this.amount, paymentSchedule.amount) &&
Objects.equals(this.period, paymentSchedule.period) &&
Objects.equals(this.billingDocument, paymentSchedule.billingDocument) &&
Objects.equals(this.currency, paymentSchedule.currency) &&
Objects.equals(this.description, paymentSchedule.description) &&
Objects.equals(this.items, paymentSchedule.items) &&
Objects.equals(this.numberOfPayments, paymentSchedule.numberOfPayments) &&
Objects.equals(this.paymentGatewayId, paymentSchedule.paymentGatewayId) &&
Objects.equals(this.paymentMethodId, paymentSchedule.paymentMethodId) &&
Objects.equals(this.paymentScheduleNumber, paymentSchedule.paymentScheduleNumber) &&
Objects.equals(this.runHour, paymentSchedule.runHour) &&
Objects.equals(this.standalone, paymentSchedule.standalone) &&
Objects.equals(this.startDate, paymentSchedule.startDate) &&
Objects.equals(this.totalAmount, paymentSchedule.totalAmount) &&
Objects.equals(this.custom, paymentSchedule.custom) &&
Objects.equals(this.nextPaymentDate, paymentSchedule.nextPaymentDate) &&
Objects.equals(this.recentPaymentDate, paymentSchedule.recentPaymentDate) &&
Objects.equals(this.state, paymentSchedule.state) &&
Objects.equals(this.totalPaymentsErrored, paymentSchedule.totalPaymentsErrored) &&
Objects.equals(this.totalPaymentsProcessed, paymentSchedule.totalPaymentsProcessed) &&
Objects.equals(this.paymentOptions, paymentSchedule.paymentOptions) &&
Objects.equals(this.prepayment, paymentSchedule.prepayment);
}
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, accountId, accountNumber, amount, period, billingDocument, currency, description, items, numberOfPayments, paymentGatewayId, paymentMethodId, paymentScheduleNumber, runHour, standalone, startDate, totalAmount, custom, nextPaymentDate, recentPaymentDate, state, totalPaymentsErrored, totalPaymentsProcessed, paymentOptions, prepayment);
}
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 PaymentSchedule {\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(" accountId: ").append(toIndentedString(accountId)).append("\n");
sb.append(" accountNumber: ").append(toIndentedString(accountNumber)).append("\n");
sb.append(" amount: ").append(toIndentedString(amount)).append("\n");
sb.append(" period: ").append(toIndentedString(period)).append("\n");
sb.append(" billingDocument: ").append(toIndentedString(billingDocument)).append("\n");
sb.append(" currency: ").append(toIndentedString(currency)).append("\n");
sb.append(" description: ").append(toIndentedString(description)).append("\n");
sb.append(" items: ").append(toIndentedString(items)).append("\n");
sb.append(" numberOfPayments: ").append(toIndentedString(numberOfPayments)).append("\n");
sb.append(" paymentGatewayId: ").append(toIndentedString(paymentGatewayId)).append("\n");
sb.append(" paymentMethodId: ").append(toIndentedString(paymentMethodId)).append("\n");
sb.append(" paymentScheduleNumber: ").append(toIndentedString(paymentScheduleNumber)).append("\n");
sb.append(" runHour: ").append(toIndentedString(runHour)).append("\n");
sb.append(" standalone: ").append(toIndentedString(standalone)).append("\n");
sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n");
sb.append(" totalAmount: ").append(toIndentedString(totalAmount)).append("\n");
sb.append(" custom: ").append(toIndentedString(custom)).append("\n");
sb.append(" nextPaymentDate: ").append(toIndentedString(nextPaymentDate)).append("\n");
sb.append(" recentPaymentDate: ").append(toIndentedString(recentPaymentDate)).append("\n");
sb.append(" state: ").append(toIndentedString(state)).append("\n");
sb.append(" totalPaymentsErrored: ").append(toIndentedString(totalPaymentsErrored)).append("\n");
sb.append(" totalPaymentsProcessed: ").append(toIndentedString(totalPaymentsProcessed)).append("\n");
sb.append(" paymentOptions: ").append(toIndentedString(paymentOptions)).append("\n");
sb.append(" prepayment: ").append(toIndentedString(prepayment)).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