org.openapitools.client.model.OrderCreateRequest 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.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openapitools.client.model.AccountCreateRequest;
import org.openapitools.client.model.CustomObject;
import org.openapitools.client.model.LineItemCreateRequest;
import org.openapitools.client.model.ListCustomObjectResponse;
import org.openapitools.client.model.OrdersProcessingOption;
import org.openapitools.client.model.OrdersSchedulingOptions;
import org.openapitools.client.model.PostSubscriptionOrderRequest;
import org.openapitools.jackson.nullable.JsonNullable;
import org.threeten.bp.LocalDate;
import org.openapitools.client.JSON.CustomFieldAdapter;
import org.openapitools.client.JSON.NullableFieldAdapter;
/**
* OrderCreateRequest
*/
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class OrderCreateRequest {
/**
* Category of the order to indicate a product sale or return. Default value is `sale`.
*/
@JsonAdapter(CategoryEnum.Adapter.class)
public enum CategoryEnum {
SALE("sale"),
RETURN("return"),
UNKNOWN_DEFAULT_OPEN_API("unknown_default_open_api");
private String value;
CategoryEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return String.valueOf(value);
}
public static CategoryEnum fromValue(String value) {
for (CategoryEnum b : CategoryEnum.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 CategoryEnum enumeration) throws IOException {
jsonWriter.value(enumeration.getValue());
}
@Override
public CategoryEnum read(final JsonReader jsonReader) throws IOException {
String value = jsonReader.nextString();
return CategoryEnum.fromValue(value);
}
}
}
public static final String SERIALIZED_NAME_CATEGORY = "category";
@SerializedName(SERIALIZED_NAME_CATEGORY)
private CategoryEnum category;
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_CUSTOM_FIELDS = "custom_fields";
@SerializedName(SERIALIZED_NAME_CUSTOM_FIELDS)
@JsonAdapter(CustomFieldAdapter.class)
private Map customFields = null;
public static final String SERIALIZED_NAME_DESCRIPTION = "description";
@SerializedName(SERIALIZED_NAME_DESCRIPTION)
private String description;
public static final String SERIALIZED_NAME_ACCOUNT_NUMBER = "account_number";
@SerializedName(SERIALIZED_NAME_ACCOUNT_NUMBER)
private String accountNumber;
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_DATA = "account_data";
@SerializedName(SERIALIZED_NAME_ACCOUNT_DATA)
private AccountCreateRequest accountData;
public static final String SERIALIZED_NAME_ORDER_DATE = "order_date";
@SerializedName(SERIALIZED_NAME_ORDER_DATE)
private LocalDate orderDate;
public static final String SERIALIZED_NAME_ORDER_NUMBER = "order_number";
@SerializedName(SERIALIZED_NAME_ORDER_NUMBER)
private String orderNumber;
public static final String SERIALIZED_NAME_LINE_ITEMS = "line_items";
@SerializedName(SERIALIZED_NAME_LINE_ITEMS)
private List lineItems = null;
public static final String SERIALIZED_NAME_PROCESSING_OPTIONS = "processing_options";
@SerializedName(SERIALIZED_NAME_PROCESSING_OPTIONS)
private OrdersProcessingOption processingOptions;
public static final String SERIALIZED_NAME_SUBSCRIPTIONS = "subscriptions";
@SerializedName(SERIALIZED_NAME_SUBSCRIPTIONS)
private List subscriptions = null;
public static final String SERIALIZED_NAME_SCHEDULING_OPTIONS = "scheduling_options";
@SerializedName(SERIALIZED_NAME_SCHEDULING_OPTIONS)
private OrdersSchedulingOptions schedulingOptions;
/**
* The status of the order.
*/
@JsonAdapter(StateEnum.Adapter.class)
public enum StateEnum {
PENDING("pending"),
COMPLETE("complete"),
DRAFT("draft"),
CANCELED("canceled"),
SCHEDULED("scheduled"),
EXECUTING("executing"),
FAILED("failed"),
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 OrderCreateRequest() {
}
public OrderCreateRequest(
Map customObjects
) {
this();
this.customObjects = customObjects;
}
public OrderCreateRequest category(CategoryEnum category) {
this.category = category;
return this;
}
/**
* Category of the order to indicate a product sale or return. Default value is `sale`.
* @return category
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Category of the order to indicate a product sale or return. Default value is `sale`.")
public CategoryEnum getCategory() {
return category;
}
public void setCategory(CategoryEnum category) {
this.category = category;
}
/**
* 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 OrderCreateRequest customFields(Map customFields) {
this.customFields = customFields;
return this;
}
public OrderCreateRequest 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;
}
public OrderCreateRequest 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 OrderCreateRequest 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 OrderCreateRequest accountId(String accountId) {
this.accountId = accountId;
return this;
}
/**
* Identifier of the account.
* @return accountId
**/
@javax.annotation.Nullable
@ApiModelProperty(example = "2c92c0f86a8dd422016a9e7a70116b0d", value = "Identifier of the account.")
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public OrderCreateRequest accountData(AccountCreateRequest accountData) {
this.accountData = accountData;
return this;
}
/**
* The information of the new account that owns the subscription. The subscription owner account can be different from the invoice owner account. If you specify this field, do not specify `account_id`.
* @return accountData
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The information of the new account that owns the subscription. The subscription owner account can be different from the invoice owner account. If you specify this field, do not specify `account_id`.")
public AccountCreateRequest getAccountData() {
return accountData;
}
public void setAccountData(AccountCreateRequest accountData) {
this.accountData = accountData;
}
public OrderCreateRequest orderDate(LocalDate orderDate) {
this.orderDate = orderDate;
return this;
}
/**
* The date when the order is signed. All the order actions under this order will use this order date as the contract effective date if the contract effective date field is skipped or its value is left as null.
* @return orderDate
**/
@javax.annotation.Nullable
@ApiModelProperty(example = "Sat Jan 01 00:00:00 GMT 2022", value = "The date when the order is signed. All the order actions under this order will use this order date as the contract effective date if the contract effective date field is skipped or its value is left as null.")
public LocalDate getOrderDate() {
return orderDate;
}
public void setOrderDate(LocalDate orderDate) {
this.orderDate = orderDate;
}
public OrderCreateRequest orderNumber(String orderNumber) {
this.orderNumber = orderNumber;
return this;
}
/**
* The order number of the new order. If not provided, system will auto-generate a number for this order. Note: Ensure that the order number does not contain a slash.
* @return orderNumber
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The order number of the new order. If not provided, system will auto-generate a number for this order. Note: Ensure that the order number does not contain a slash.")
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public OrderCreateRequest lineItems(List lineItems) {
this.lineItems = lineItems;
return this;
}
public OrderCreateRequest addLineItemsItem(LineItemCreateRequest lineItemsItem) {
if (this.lineItems == null) {
this.lineItems = new ArrayList();
}
this.lineItems.add(lineItemsItem);
return this;
}
/**
* Order line items are non-subscription-based items created by an order, representing transactional charges such as one-time fees, physical goods, or professional service charges that are not sold as subscription services. By specifying this field, you can launch non-subscription and unified monetization business models in Zuora, in addition to subscription business models.
* @return lineItems
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Order line items are non-subscription-based items created by an order, representing transactional charges such as one-time fees, physical goods, or professional service charges that are not sold as subscription services. By specifying this field, you can launch non-subscription and unified monetization business models in Zuora, in addition to subscription business models.")
public List getLineItems() {
return lineItems;
}
public void setLineItems(List lineItems) {
this.lineItems = lineItems;
}
public OrderCreateRequest processingOptions(OrdersProcessingOption processingOptions) {
this.processingOptions = processingOptions;
return this;
}
/**
* Get processingOptions
* @return processingOptions
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "")
public OrdersProcessingOption getProcessingOptions() {
return processingOptions;
}
public void setProcessingOptions(OrdersProcessingOption processingOptions) {
this.processingOptions = processingOptions;
}
public OrderCreateRequest subscriptions(List subscriptions) {
this.subscriptions = subscriptions;
return this;
}
public OrderCreateRequest addSubscriptionsItem(PostSubscriptionOrderRequest subscriptionsItem) {
if (this.subscriptions == null) {
this.subscriptions = new ArrayList();
}
this.subscriptions.add(subscriptionsItem);
return this;
}
/**
* Based on the intended order action, each item should include specific fields. For example, to create a new subscription for a new account, you must specify the `account_data` and `subscription_plans` fields at a minimum.
* @return subscriptions
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "Based on the intended order action, each item should include specific fields. For example, to create a new subscription for a new account, you must specify the `account_data` and `subscription_plans` fields at a minimum.")
public List getSubscriptions() {
return subscriptions;
}
public void setSubscriptions(List subscriptions) {
this.subscriptions = subscriptions;
}
public OrderCreateRequest schedulingOptions(OrdersSchedulingOptions schedulingOptions) {
this.schedulingOptions = schedulingOptions;
return this;
}
/**
* Get schedulingOptions
* @return schedulingOptions
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "")
public OrdersSchedulingOptions getSchedulingOptions() {
return schedulingOptions;
}
public void setSchedulingOptions(OrdersSchedulingOptions schedulingOptions) {
this.schedulingOptions = schedulingOptions;
}
public OrderCreateRequest state(StateEnum state) {
this.state = state;
return this;
}
/**
* The status of the order.
* @return state
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "The status of the order.")
public StateEnum getState() {
return state;
}
public void setState(StateEnum state) {
this.state = state;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
OrderCreateRequest orderCreateRequest = (OrderCreateRequest) o;
return Objects.equals(this.category, orderCreateRequest.category) &&
Objects.equals(this.customObjects, orderCreateRequest.customObjects) &&
Objects.equals(this.customFields, orderCreateRequest.customFields) &&
Objects.equals(this.description, orderCreateRequest.description) &&
Objects.equals(this.accountNumber, orderCreateRequest.accountNumber) &&
Objects.equals(this.accountId, orderCreateRequest.accountId) &&
Objects.equals(this.accountData, orderCreateRequest.accountData) &&
Objects.equals(this.orderDate, orderCreateRequest.orderDate) &&
Objects.equals(this.orderNumber, orderCreateRequest.orderNumber) &&
Objects.equals(this.lineItems, orderCreateRequest.lineItems) &&
Objects.equals(this.processingOptions, orderCreateRequest.processingOptions) &&
Objects.equals(this.subscriptions, orderCreateRequest.subscriptions) &&
Objects.equals(this.schedulingOptions, orderCreateRequest.schedulingOptions) &&
Objects.equals(this.state, orderCreateRequest.state);
}
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(category, customObjects, customFields, description, accountNumber, accountId, accountData, orderDate, orderNumber, lineItems, processingOptions, subscriptions, schedulingOptions, state);
}
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 OrderCreateRequest {\n");
sb.append(" category: ").append(toIndentedString(category)).append("\n");
sb.append(" customObjects: ").append(toIndentedString(customObjects)).append("\n");
sb.append(" customFields: ").append(toIndentedString(customFields)).append("\n");
sb.append(" description: ").append(toIndentedString(description)).append("\n");
sb.append(" accountNumber: ").append(toIndentedString(accountNumber)).append("\n");
sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n");
sb.append(" accountData: ").append(toIndentedString(accountData)).append("\n");
sb.append(" orderDate: ").append(toIndentedString(orderDate)).append("\n");
sb.append(" orderNumber: ").append(toIndentedString(orderNumber)).append("\n");
sb.append(" lineItems: ").append(toIndentedString(lineItems)).append("\n");
sb.append(" processingOptions: ").append(toIndentedString(processingOptions)).append("\n");
sb.append(" subscriptions: ").append(toIndentedString(subscriptions)).append("\n");
sb.append(" schedulingOptions: ").append(toIndentedString(schedulingOptions)).append("\n");
sb.append(" state: ").append(toIndentedString(state)).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