From 73f526292c447d8923d4878e7044bc48c0b167c7 Mon Sep 17 00:00:00 2001 From: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com> Date: Thu, 16 Nov 2023 19:14:05 +0000 Subject: [PATCH 1/3] Update generated code for v668 --- OPENAPI_VERSION | 2 +- .../param/checkout/SessionListParams.java | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index 4f79f809489..f522f139dee 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v667 \ No newline at end of file +v668 \ No newline at end of file diff --git a/src/main/java/com/stripe/param/checkout/SessionListParams.java b/src/main/java/com/stripe/param/checkout/SessionListParams.java index ddabf018e8c..647c993ede1 100644 --- a/src/main/java/com/stripe/param/checkout/SessionListParams.java +++ b/src/main/java/com/stripe/param/checkout/SessionListParams.java @@ -65,6 +65,10 @@ public class SessionListParams extends ApiRequestParams { @SerializedName("starting_after") String startingAfter; + /** Only return the Checkout Sessions matching the given status. */ + @SerializedName("status") + Status status; + /** Only return the Checkout Session for the subscription specified. */ @SerializedName("subscription") String subscription; @@ -79,6 +83,7 @@ private SessionListParams( String paymentIntent, String paymentLink, String startingAfter, + Status status, String subscription) { this.customer = customer; this.customerDetails = customerDetails; @@ -89,6 +94,7 @@ private SessionListParams( this.paymentIntent = paymentIntent; this.paymentLink = paymentLink; this.startingAfter = startingAfter; + this.status = status; this.subscription = subscription; } @@ -115,6 +121,8 @@ public static class Builder { private String startingAfter; + private Status status; + private String subscription; /** Finalize and obtain parameter instance from this builder. */ @@ -129,6 +137,7 @@ public SessionListParams build() { this.paymentIntent, this.paymentLink, this.startingAfter, + this.status, this.subscription); } @@ -239,6 +248,12 @@ public Builder setStartingAfter(String startingAfter) { return this; } + /** Only return the Checkout Sessions matching the given status. */ + public Builder setStatus(SessionListParams.Status status) { + this.status = status; + return this; + } + /** Only return the Checkout Session for the subscription specified. */ public Builder setSubscription(String subscription) { this.subscription = subscription; @@ -313,4 +328,22 @@ public Builder putAllExtraParam(Map map) { } } } + + public enum Status implements ApiRequestParams.EnumParam { + @SerializedName("complete") + COMPLETE("complete"), + + @SerializedName("expired") + EXPIRED("expired"), + + @SerializedName("open") + OPEN("open"); + + @Getter(onMethod_ = {@Override}) + private final String value; + + Status(String value) { + this.value = value; + } + } } From f5eb9e7402b68fccfe51d6e7c771588d1eb509d3 Mon Sep 17 00:00:00 2001 From: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com> Date: Thu, 16 Nov 2023 23:24:22 +0000 Subject: [PATCH 2/3] Update generated code for v669 --- OPENAPI_VERSION | 2 +- .../com/stripe/model/InvoiceLineItem.java | 94 +- .../param/InvoiceLineItemUpdateParams.java | 1590 ----------------- .../service/InvoiceLineItemService.java | 58 - 4 files changed, 2 insertions(+), 1742 deletions(-) delete mode 100644 src/main/java/com/stripe/param/InvoiceLineItemUpdateParams.java diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index f522f139dee..d491c28018d 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v668 \ No newline at end of file +v669 \ No newline at end of file diff --git a/src/main/java/com/stripe/model/InvoiceLineItem.java b/src/main/java/com/stripe/model/InvoiceLineItem.java index 0f27aa961b8..011e4b30a70 100644 --- a/src/main/java/com/stripe/model/InvoiceLineItem.java +++ b/src/main/java/com/stripe/model/InvoiceLineItem.java @@ -2,14 +2,7 @@ package com.stripe.model; import com.google.gson.annotations.SerializedName; -import com.stripe.exception.StripeException; -import com.stripe.net.ApiMode; -import com.stripe.net.ApiRequestParams; import com.stripe.net.ApiResource; -import com.stripe.net.BaseAddress; -import com.stripe.net.RequestOptions; -import com.stripe.net.StripeResponseGetter; -import com.stripe.param.InvoiceLineItemUpdateParams; import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -21,7 +14,7 @@ @Getter @Setter @EqualsAndHashCode(callSuper = false) -public class InvoiceLineItem extends ApiResource implements HasId { +public class InvoiceLineItem extends StripeObject implements HasId { /** The amount, in cents (or local equivalent). */ @SerializedName("amount") Long amount; @@ -256,79 +249,6 @@ public void setDiscountObjects(List objs) { : null; } - /** - * Updates an invoice’s line item. Some fields, such as {@code tax_amounts}, only live on the - * invoice line item, so they can only be updated through this endpoint. Other fields, such as - * {@code amount}, live on both the invoice item and the invoice line item, so updates on this - * endpoint will propagate to the invoice item as well. Updating an invoice’s line item is only - * possible before the invoice is finalized. - */ - public InvoiceLineItem update(String invoice, Map params) throws StripeException { - return update(invoice, params, (RequestOptions) null); - } - - /** - * Updates an invoice’s line item. Some fields, such as {@code tax_amounts}, only live on the - * invoice line item, so they can only be updated through this endpoint. Other fields, such as - * {@code amount}, live on both the invoice item and the invoice line item, so updates on this - * endpoint will propagate to the invoice item as well. Updating an invoice’s line item is only - * possible before the invoice is finalized. - */ - public InvoiceLineItem update(String invoice, Map params, RequestOptions options) - throws StripeException { - String path = - String.format( - "/v1/invoices/%s/lines/%s", - ApiResource.urlEncodeId(invoice), ApiResource.urlEncodeId(this.getId())); - return getResponseGetter() - .request( - BaseAddress.API, - ApiResource.RequestMethod.POST, - path, - params, - InvoiceLineItem.class, - options, - ApiMode.V1); - } - - /** - * Updates an invoice’s line item. Some fields, such as {@code tax_amounts}, only live on the - * invoice line item, so they can only be updated through this endpoint. Other fields, such as - * {@code amount}, live on both the invoice item and the invoice line item, so updates on this - * endpoint will propagate to the invoice item as well. Updating an invoice’s line item is only - * possible before the invoice is finalized. - */ - public InvoiceLineItem update(String invoice, InvoiceLineItemUpdateParams params) - throws StripeException { - return update(invoice, params, (RequestOptions) null); - } - - /** - * Updates an invoice’s line item. Some fields, such as {@code tax_amounts}, only live on the - * invoice line item, so they can only be updated through this endpoint. Other fields, such as - * {@code amount}, live on both the invoice item and the invoice line item, so updates on this - * endpoint will propagate to the invoice item as well. Updating an invoice’s line item is only - * possible before the invoice is finalized. - */ - public InvoiceLineItem update( - String invoice, InvoiceLineItemUpdateParams params, RequestOptions options) - throws StripeException { - String path = - String.format( - "/v1/invoices/%s/lines/%s", - ApiResource.urlEncodeId(invoice), ApiResource.urlEncodeId(this.getId())); - ApiResource.checkNullTypedParams(path, params); - return getResponseGetter() - .request( - BaseAddress.API, - ApiResource.RequestMethod.POST, - path, - ApiRequestParams.paramsToMap(params), - InvoiceLineItem.class, - options, - ApiMode.V1); - } - @Getter @Setter @EqualsAndHashCode(callSuper = false) @@ -456,16 +376,4 @@ public void setTaxRateObject(TaxRate expandableObject) { this.taxRate = new ExpandableField(expandableObject.getId(), expandableObject); } } - - @Override - public void setResponseGetter(StripeResponseGetter responseGetter) { - super.setResponseGetter(responseGetter); - trySetResponseGetter(invoiceItem, responseGetter); - trySetResponseGetter(period, responseGetter); - trySetResponseGetter(plan, responseGetter); - trySetResponseGetter(price, responseGetter); - trySetResponseGetter(prorationDetails, responseGetter); - trySetResponseGetter(subscription, responseGetter); - trySetResponseGetter(subscriptionItem, responseGetter); - } } diff --git a/src/main/java/com/stripe/param/InvoiceLineItemUpdateParams.java b/src/main/java/com/stripe/param/InvoiceLineItemUpdateParams.java deleted file mode 100644 index a0bc54f9bdc..00000000000 --- a/src/main/java/com/stripe/param/InvoiceLineItemUpdateParams.java +++ /dev/null @@ -1,1590 +0,0 @@ -// File generated from our OpenAPI spec -package com.stripe.param; - -import com.google.gson.annotations.SerializedName; -import com.stripe.net.ApiRequestParams; -import com.stripe.param.common.EmptyParam; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import lombok.Getter; - -@Getter -public class InvoiceLineItemUpdateParams extends ApiRequestParams { - /** - * The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming - * invoice. If you want to apply a credit to the customer's account, pass a negative amount. - */ - @SerializedName("amount") - Long amount; - - /** - * An arbitrary string which you can attach to the invoice item. The description is displayed in - * the invoice for easy tracking. - */ - @SerializedName("description") - Object description; - - /** - * Controls whether discounts apply to this line item. Defaults to false for prorations or - * negative line items, and true for all other line items. Cannot be set to true for prorations. - */ - @SerializedName("discountable") - Boolean discountable; - - /** - * The coupons & existing discounts which apply to the line item. Item discounts are applied - * before invoice discounts. Pass an empty string to remove previously-defined discounts. - */ - @SerializedName("discounts") - Object discounts; - - /** Specifies which fields in the response should be expanded. */ - @SerializedName("expand") - List expand; - - /** - * Map of extra parameters for custom features not available in this client library. The content - * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each - * key/value pair is serialized as if the key is a root-level field (serialized) name in this - * param object. Effectively, this map is flattened to its parent instance. - */ - @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) - Map extraParams; - - /** - * Set of key-value pairs that you can attach - * to an object. This can be useful for storing additional information about the object in a - * structured format. Individual keys can be unset by posting an empty value to them. All keys can - * be unset by posting an empty value to {@code metadata}. - */ - @SerializedName("metadata") - Object metadata; - - /** - * The period associated with this invoice item. When set to different values, the period will be - * rendered on the invoice. If you have Stripe Revenue Recognition enabled, the - * period will be used to recognize and defer revenue. See the Revenue - * Recognition documentation for details. - */ - @SerializedName("period") - Period period; - - /** The ID of the price object. */ - @SerializedName("price") - Object price; - - /** - * Data used to generate a new Price object - * inline. - */ - @SerializedName("price_data") - PriceData priceData; - - /** Non-negative integer. The quantity of units for the line item. */ - @SerializedName("quantity") - Long quantity; - - /** - * A list of up to 10 tax amounts for this line item. This can be useful if you calculate taxes on - * your own or use a third-party to calculate them. You cannot set tax amounts if any line item - * has tax_rates - * or if the invoice has default_tax_rates - * or uses automatic tax. Pass an empty string - * to remove previously defined tax amounts. - */ - @SerializedName("tax_amounts") - Object taxAmounts; - - /** - * The tax rates which apply to the line item. When set, the {@code default_tax_rates} on the - * invoice do not apply to this line item. Pass an empty string to remove previously-defined tax - * rates. - */ - @SerializedName("tax_rates") - Object taxRates; - - private InvoiceLineItemUpdateParams( - Long amount, - Object description, - Boolean discountable, - Object discounts, - List expand, - Map extraParams, - Object metadata, - Period period, - Object price, - PriceData priceData, - Long quantity, - Object taxAmounts, - Object taxRates) { - this.amount = amount; - this.description = description; - this.discountable = discountable; - this.discounts = discounts; - this.expand = expand; - this.extraParams = extraParams; - this.metadata = metadata; - this.period = period; - this.price = price; - this.priceData = priceData; - this.quantity = quantity; - this.taxAmounts = taxAmounts; - this.taxRates = taxRates; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - private Long amount; - - private Object description; - - private Boolean discountable; - - private Object discounts; - - private List expand; - - private Map extraParams; - - private Object metadata; - - private Period period; - - private Object price; - - private PriceData priceData; - - private Long quantity; - - private Object taxAmounts; - - private Object taxRates; - - /** Finalize and obtain parameter instance from this builder. */ - public InvoiceLineItemUpdateParams build() { - return new InvoiceLineItemUpdateParams( - this.amount, - this.description, - this.discountable, - this.discounts, - this.expand, - this.extraParams, - this.metadata, - this.period, - this.price, - this.priceData, - this.quantity, - this.taxAmounts, - this.taxRates); - } - - /** - * The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming - * invoice. If you want to apply a credit to the customer's account, pass a negative amount. - */ - public Builder setAmount(Long amount) { - this.amount = amount; - return this; - } - - /** - * An arbitrary string which you can attach to the invoice item. The description is displayed in - * the invoice for easy tracking. - */ - public Builder setDescription(String description) { - this.description = description; - return this; - } - - /** - * An arbitrary string which you can attach to the invoice item. The description is displayed in - * the invoice for easy tracking. - */ - public Builder setDescription(EmptyParam description) { - this.description = description; - return this; - } - - /** - * Controls whether discounts apply to this line item. Defaults to false for prorations or - * negative line items, and true for all other line items. Cannot be set to true for prorations. - */ - public Builder setDiscountable(Boolean discountable) { - this.discountable = discountable; - return this; - } - - /** - * Add an element to `discounts` list. A list is initialized for the first `add/addAll` call, - * and subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams#discounts} for the field documentation. - */ - @SuppressWarnings("unchecked") - public Builder addDiscount(InvoiceLineItemUpdateParams.Discount element) { - if (this.discounts == null || this.discounts instanceof EmptyParam) { - this.discounts = new ArrayList(); - } - ((List) this.discounts).add(element); - return this; - } - - /** - * Add all elements to `discounts` list. A list is initialized for the first `add/addAll` call, - * and subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams#discounts} for the field documentation. - */ - @SuppressWarnings("unchecked") - public Builder addAllDiscount(List elements) { - if (this.discounts == null || this.discounts instanceof EmptyParam) { - this.discounts = new ArrayList(); - } - ((List) this.discounts).addAll(elements); - return this; - } - - /** - * The coupons & existing discounts which apply to the line item. Item discounts are applied - * before invoice discounts. Pass an empty string to remove previously-defined discounts. - */ - public Builder setDiscounts(EmptyParam discounts) { - this.discounts = discounts; - return this; - } - - /** - * The coupons & existing discounts which apply to the line item. Item discounts are applied - * before invoice discounts. Pass an empty string to remove previously-defined discounts. - */ - public Builder setDiscounts(List discounts) { - this.discounts = discounts; - return this; - } - - /** - * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and - * subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams#expand} for the field documentation. - */ - public Builder addExpand(String element) { - if (this.expand == null) { - this.expand = new ArrayList<>(); - } - this.expand.add(element); - return this; - } - - /** - * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and - * subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams#expand} for the field documentation. - */ - public Builder addAllExpand(List elements) { - if (this.expand == null) { - this.expand = new ArrayList<>(); - } - this.expand.addAll(elements); - return this; - } - - /** - * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` - * call, and subsequent calls add additional key/value pairs to the original map. See {@link - * InvoiceLineItemUpdateParams#extraParams} for the field documentation. - */ - public Builder putExtraParam(String key, Object value) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. - * See {@link InvoiceLineItemUpdateParams#extraParams} for the field documentation. - */ - public Builder putAllExtraParam(Map map) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.putAll(map); - return this; - } - - /** - * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call, - * and subsequent calls add additional key/value pairs to the original map. See {@link - * InvoiceLineItemUpdateParams#metadata} for the field documentation. - */ - @SuppressWarnings("unchecked") - public Builder putMetadata(String key, String value) { - if (this.metadata == null || this.metadata instanceof EmptyParam) { - this.metadata = new HashMap(); - } - ((Map) this.metadata).put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `metadata` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. - * See {@link InvoiceLineItemUpdateParams#metadata} for the field documentation. - */ - @SuppressWarnings("unchecked") - public Builder putAllMetadata(Map map) { - if (this.metadata == null || this.metadata instanceof EmptyParam) { - this.metadata = new HashMap(); - } - ((Map) this.metadata).putAll(map); - return this; - } - - /** - * Set of key-value pairs that you can attach - * to an object. This can be useful for storing additional information about the object in a - * structured format. Individual keys can be unset by posting an empty value to them. All keys - * can be unset by posting an empty value to {@code metadata}. - */ - public Builder setMetadata(EmptyParam metadata) { - this.metadata = metadata; - return this; - } - - /** - * Set of key-value pairs that you can attach - * to an object. This can be useful for storing additional information about the object in a - * structured format. Individual keys can be unset by posting an empty value to them. All keys - * can be unset by posting an empty value to {@code metadata}. - */ - public Builder setMetadata(Map metadata) { - this.metadata = metadata; - return this; - } - - /** - * The period associated with this invoice item. When set to different values, the period will - * be rendered on the invoice. If you have Stripe Revenue Recognition enabled, - * the period will be used to recognize and defer revenue. See the Revenue - * Recognition documentation for details. - */ - public Builder setPeriod(InvoiceLineItemUpdateParams.Period period) { - this.period = period; - return this; - } - - /** The ID of the price object. */ - public Builder setPrice(String price) { - this.price = price; - return this; - } - - /** The ID of the price object. */ - public Builder setPrice(EmptyParam price) { - this.price = price; - return this; - } - - /** - * Data used to generate a new Price object - * inline. - */ - public Builder setPriceData(InvoiceLineItemUpdateParams.PriceData priceData) { - this.priceData = priceData; - return this; - } - - /** Non-negative integer. The quantity of units for the line item. */ - public Builder setQuantity(Long quantity) { - this.quantity = quantity; - return this; - } - - /** - * Add an element to `taxAmounts` list. A list is initialized for the first `add/addAll` call, - * and subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams#taxAmounts} for the field documentation. - */ - @SuppressWarnings("unchecked") - public Builder addTaxAmount(InvoiceLineItemUpdateParams.TaxAmount element) { - if (this.taxAmounts == null || this.taxAmounts instanceof EmptyParam) { - this.taxAmounts = new ArrayList(); - } - ((List) this.taxAmounts).add(element); - return this; - } - - /** - * Add all elements to `taxAmounts` list. A list is initialized for the first `add/addAll` call, - * and subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams#taxAmounts} for the field documentation. - */ - @SuppressWarnings("unchecked") - public Builder addAllTaxAmount(List elements) { - if (this.taxAmounts == null || this.taxAmounts instanceof EmptyParam) { - this.taxAmounts = new ArrayList(); - } - ((List) this.taxAmounts).addAll(elements); - return this; - } - - /** - * A list of up to 10 tax amounts for this line item. This can be useful if you calculate taxes - * on your own or use a third-party to calculate them. You cannot set tax amounts if any line - * item has tax_rates - * or if the invoice has default_tax_rates - * or uses automatic tax. Pass an empty - * string to remove previously defined tax amounts. - */ - public Builder setTaxAmounts(EmptyParam taxAmounts) { - this.taxAmounts = taxAmounts; - return this; - } - - /** - * A list of up to 10 tax amounts for this line item. This can be useful if you calculate taxes - * on your own or use a third-party to calculate them. You cannot set tax amounts if any line - * item has tax_rates - * or if the invoice has default_tax_rates - * or uses automatic tax. Pass an empty - * string to remove previously defined tax amounts. - */ - public Builder setTaxAmounts(List taxAmounts) { - this.taxAmounts = taxAmounts; - return this; - } - - /** - * Add an element to `taxRates` list. A list is initialized for the first `add/addAll` call, and - * subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams#taxRates} for the field documentation. - */ - @SuppressWarnings("unchecked") - public Builder addTaxRate(String element) { - if (this.taxRates == null || this.taxRates instanceof EmptyParam) { - this.taxRates = new ArrayList(); - } - ((List) this.taxRates).add(element); - return this; - } - - /** - * Add all elements to `taxRates` list. A list is initialized for the first `add/addAll` call, - * and subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams#taxRates} for the field documentation. - */ - @SuppressWarnings("unchecked") - public Builder addAllTaxRate(List elements) { - if (this.taxRates == null || this.taxRates instanceof EmptyParam) { - this.taxRates = new ArrayList(); - } - ((List) this.taxRates).addAll(elements); - return this; - } - - /** - * The tax rates which apply to the line item. When set, the {@code default_tax_rates} on the - * invoice do not apply to this line item. Pass an empty string to remove previously-defined tax - * rates. - */ - public Builder setTaxRates(EmptyParam taxRates) { - this.taxRates = taxRates; - return this; - } - - /** - * The tax rates which apply to the line item. When set, the {@code default_tax_rates} on the - * invoice do not apply to this line item. Pass an empty string to remove previously-defined tax - * rates. - */ - public Builder setTaxRates(List taxRates) { - this.taxRates = taxRates; - return this; - } - } - - @Getter - public static class Discount { - /** ID of the coupon to create a new discount for. */ - @SerializedName("coupon") - Object coupon; - - /** ID of an existing discount on the object (or one of its ancestors) to reuse. */ - @SerializedName("discount") - Object discount; - - /** - * Map of extra parameters for custom features not available in this client library. The content - * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each - * key/value pair is serialized as if the key is a root-level field (serialized) name in this - * param object. Effectively, this map is flattened to its parent instance. - */ - @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) - Map extraParams; - - private Discount(Object coupon, Object discount, Map extraParams) { - this.coupon = coupon; - this.discount = discount; - this.extraParams = extraParams; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - private Object coupon; - - private Object discount; - - private Map extraParams; - - /** Finalize and obtain parameter instance from this builder. */ - public InvoiceLineItemUpdateParams.Discount build() { - return new InvoiceLineItemUpdateParams.Discount( - this.coupon, this.discount, this.extraParams); - } - - /** ID of the coupon to create a new discount for. */ - public Builder setCoupon(String coupon) { - this.coupon = coupon; - return this; - } - - /** ID of the coupon to create a new discount for. */ - public Builder setCoupon(EmptyParam coupon) { - this.coupon = coupon; - return this; - } - - /** ID of an existing discount on the object (or one of its ancestors) to reuse. */ - public Builder setDiscount(String discount) { - this.discount = discount; - return this; - } - - /** ID of an existing discount on the object (or one of its ancestors) to reuse. */ - public Builder setDiscount(EmptyParam discount) { - this.discount = discount; - return this; - } - - /** - * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` - * call, and subsequent calls add additional key/value pairs to the original map. See {@link - * InvoiceLineItemUpdateParams.Discount#extraParams} for the field documentation. - */ - public Builder putExtraParam(String key, Object value) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. - * See {@link InvoiceLineItemUpdateParams.Discount#extraParams} for the field documentation. - */ - public Builder putAllExtraParam(Map map) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.putAll(map); - return this; - } - } - } - - @Getter - public static class Period { - /** - * Required. The end of the period, which must be greater than or equal to the - * start. This value is inclusive. - */ - @SerializedName("end") - Long end; - - /** - * Map of extra parameters for custom features not available in this client library. The content - * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each - * key/value pair is serialized as if the key is a root-level field (serialized) name in this - * param object. Effectively, this map is flattened to its parent instance. - */ - @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) - Map extraParams; - - /** Required. The start of the period. This value is inclusive. */ - @SerializedName("start") - Long start; - - private Period(Long end, Map extraParams, Long start) { - this.end = end; - this.extraParams = extraParams; - this.start = start; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - private Long end; - - private Map extraParams; - - private Long start; - - /** Finalize and obtain parameter instance from this builder. */ - public InvoiceLineItemUpdateParams.Period build() { - return new InvoiceLineItemUpdateParams.Period(this.end, this.extraParams, this.start); - } - - /** - * Required. The end of the period, which must be greater than or equal to - * the start. This value is inclusive. - */ - public Builder setEnd(Long end) { - this.end = end; - return this; - } - - /** - * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` - * call, and subsequent calls add additional key/value pairs to the original map. See {@link - * InvoiceLineItemUpdateParams.Period#extraParams} for the field documentation. - */ - public Builder putExtraParam(String key, Object value) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. - * See {@link InvoiceLineItemUpdateParams.Period#extraParams} for the field documentation. - */ - public Builder putAllExtraParam(Map map) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.putAll(map); - return this; - } - - /** Required. The start of the period. This value is inclusive. */ - public Builder setStart(Long start) { - this.start = start; - return this; - } - } - } - - @Getter - public static class PriceData { - /** - * Required. Three-letter ISO currency code, in lowercase. - * Must be a supported currency. - */ - @SerializedName("currency") - Object currency; - - /** - * Map of extra parameters for custom features not available in this client library. The content - * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each - * key/value pair is serialized as if the key is a root-level field (serialized) name in this - * param object. Effectively, this map is flattened to its parent instance. - */ - @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) - Map extraParams; - - /** - * The ID of the product that this price will belong to. One of {@code product} or {@code - * product_data} is required. - */ - @SerializedName("product") - Object product; - - /** - * Data used to generate a new product object inline. One of {@code product} or {@code - * product_data} is required. - */ - @SerializedName("product_data") - ProductData productData; - - /** - * Only required if a default - * tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is - * considered inclusive of taxes or exclusive of taxes. One of {@code inclusive}, {@code - * exclusive}, or {@code unspecified}. Once specified as either {@code inclusive} or {@code - * exclusive}, it cannot be changed. - */ - @SerializedName("tax_behavior") - TaxBehavior taxBehavior; - - /** - * A non-negative integer in cents (or local equivalent) representing how much to charge. One of - * {@code unit_amount} or {@code unit_amount_decimal} is required. - */ - @SerializedName("unit_amount") - Long unitAmount; - - /** - * Same as {@code unit_amount}, but accepts a decimal value in cents (or local equivalent) with - * at most 12 decimal places. Only one of {@code unit_amount} and {@code unit_amount_decimal} - * can be set. - */ - @SerializedName("unit_amount_decimal") - Object unitAmountDecimal; - - private PriceData( - Object currency, - Map extraParams, - Object product, - ProductData productData, - TaxBehavior taxBehavior, - Long unitAmount, - Object unitAmountDecimal) { - this.currency = currency; - this.extraParams = extraParams; - this.product = product; - this.productData = productData; - this.taxBehavior = taxBehavior; - this.unitAmount = unitAmount; - this.unitAmountDecimal = unitAmountDecimal; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - private Object currency; - - private Map extraParams; - - private Object product; - - private ProductData productData; - - private TaxBehavior taxBehavior; - - private Long unitAmount; - - private Object unitAmountDecimal; - - /** Finalize and obtain parameter instance from this builder. */ - public InvoiceLineItemUpdateParams.PriceData build() { - return new InvoiceLineItemUpdateParams.PriceData( - this.currency, - this.extraParams, - this.product, - this.productData, - this.taxBehavior, - this.unitAmount, - this.unitAmountDecimal); - } - - /** - * Required. Three-letter ISO currency code, in - * lowercase. Must be a supported currency. - */ - public Builder setCurrency(String currency) { - this.currency = currency; - return this; - } - - /** - * Required. Three-letter ISO currency code, in - * lowercase. Must be a supported currency. - */ - public Builder setCurrency(EmptyParam currency) { - this.currency = currency; - return this; - } - - /** - * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` - * call, and subsequent calls add additional key/value pairs to the original map. See {@link - * InvoiceLineItemUpdateParams.PriceData#extraParams} for the field documentation. - */ - public Builder putExtraParam(String key, Object value) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. - * See {@link InvoiceLineItemUpdateParams.PriceData#extraParams} for the field documentation. - */ - public Builder putAllExtraParam(Map map) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.putAll(map); - return this; - } - - /** - * The ID of the product that this price will belong to. One of {@code product} or {@code - * product_data} is required. - */ - public Builder setProduct(String product) { - this.product = product; - return this; - } - - /** - * The ID of the product that this price will belong to. One of {@code product} or {@code - * product_data} is required. - */ - public Builder setProduct(EmptyParam product) { - this.product = product; - return this; - } - - /** - * Data used to generate a new product object inline. One of {@code product} or {@code - * product_data} is required. - */ - public Builder setProductData(InvoiceLineItemUpdateParams.PriceData.ProductData productData) { - this.productData = productData; - return this; - } - - /** - * Only required if a default - * tax behavior was not provided in the Stripe Tax settings. Specifies whether the price - * is considered inclusive of taxes or exclusive of taxes. One of {@code inclusive}, {@code - * exclusive}, or {@code unspecified}. Once specified as either {@code inclusive} or {@code - * exclusive}, it cannot be changed. - */ - public Builder setTaxBehavior(InvoiceLineItemUpdateParams.PriceData.TaxBehavior taxBehavior) { - this.taxBehavior = taxBehavior; - return this; - } - - /** - * A non-negative integer in cents (or local equivalent) representing how much to charge. One - * of {@code unit_amount} or {@code unit_amount_decimal} is required. - */ - public Builder setUnitAmount(Long unitAmount) { - this.unitAmount = unitAmount; - return this; - } - - /** - * Same as {@code unit_amount}, but accepts a decimal value in cents (or local equivalent) - * with at most 12 decimal places. Only one of {@code unit_amount} and {@code - * unit_amount_decimal} can be set. - */ - public Builder setUnitAmountDecimal(BigDecimal unitAmountDecimal) { - this.unitAmountDecimal = unitAmountDecimal; - return this; - } - - /** - * Same as {@code unit_amount}, but accepts a decimal value in cents (or local equivalent) - * with at most 12 decimal places. Only one of {@code unit_amount} and {@code - * unit_amount_decimal} can be set. - */ - public Builder setUnitAmountDecimal(EmptyParam unitAmountDecimal) { - this.unitAmountDecimal = unitAmountDecimal; - return this; - } - } - - @Getter - public static class ProductData { - /** - * The product's description, meant to be displayable to the customer. Use this field to - * optionally store a long form explanation of the product being sold for your own rendering - * purposes. - */ - @SerializedName("description") - Object description; - - /** - * Map of extra parameters for custom features not available in this client library. The - * content in this map is not serialized under this field's {@code @SerializedName} value. - * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) - * name in this param object. Effectively, this map is flattened to its parent instance. - */ - @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) - Map extraParams; - - /** - * A list of up to 8 URLs of images for this product, meant to be displayable to the customer. - */ - @SerializedName("images") - List images; - - /** - * Set of key-value pairs that you can - * attach to an object. This can be useful for storing additional information about the object - * in a structured format. Individual keys can be unset by posting an empty value to them. All - * keys can be unset by posting an empty value to {@code metadata}. - */ - @SerializedName("metadata") - Map metadata; - - /** Required. The product's name, meant to be displayable to the customer. */ - @SerializedName("name") - Object name; - - /** A tax code ID. */ - @SerializedName("tax_code") - Object taxCode; - - private ProductData( - Object description, - Map extraParams, - List images, - Map metadata, - Object name, - Object taxCode) { - this.description = description; - this.extraParams = extraParams; - this.images = images; - this.metadata = metadata; - this.name = name; - this.taxCode = taxCode; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - private Object description; - - private Map extraParams; - - private List images; - - private Map metadata; - - private Object name; - - private Object taxCode; - - /** Finalize and obtain parameter instance from this builder. */ - public InvoiceLineItemUpdateParams.PriceData.ProductData build() { - return new InvoiceLineItemUpdateParams.PriceData.ProductData( - this.description, - this.extraParams, - this.images, - this.metadata, - this.name, - this.taxCode); - } - - /** - * The product's description, meant to be displayable to the customer. Use this field to - * optionally store a long form explanation of the product being sold for your own rendering - * purposes. - */ - public Builder setDescription(String description) { - this.description = description; - return this; - } - - /** - * The product's description, meant to be displayable to the customer. Use this field to - * optionally store a long form explanation of the product being sold for your own rendering - * purposes. - */ - public Builder setDescription(EmptyParam description) { - this.description = description; - return this; - } - - /** - * Add a key/value pair to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original - * map. See {@link InvoiceLineItemUpdateParams.PriceData.ProductData#extraParams} for the - * field documentation. - */ - public Builder putExtraParam(String key, Object value) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original - * map. See {@link InvoiceLineItemUpdateParams.PriceData.ProductData#extraParams} for the - * field documentation. - */ - public Builder putAllExtraParam(Map map) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.putAll(map); - return this; - } - - /** - * Add an element to `images` list. A list is initialized for the first `add/addAll` call, - * and subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams.PriceData.ProductData#images} for the field documentation. - */ - public Builder addImage(String element) { - if (this.images == null) { - this.images = new ArrayList<>(); - } - this.images.add(element); - return this; - } - - /** - * Add all elements to `images` list. A list is initialized for the first `add/addAll` call, - * and subsequent calls adds additional elements to the original list. See {@link - * InvoiceLineItemUpdateParams.PriceData.ProductData#images} for the field documentation. - */ - public Builder addAllImage(List elements) { - if (this.images == null) { - this.images = new ArrayList<>(); - } - this.images.addAll(elements); - return this; - } - - /** - * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` - * call, and subsequent calls add additional key/value pairs to the original map. See {@link - * InvoiceLineItemUpdateParams.PriceData.ProductData#metadata} for the field documentation. - */ - public Builder putMetadata(String key, String value) { - if (this.metadata == null) { - this.metadata = new HashMap<>(); - } - this.metadata.put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `metadata` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original - * map. See {@link InvoiceLineItemUpdateParams.PriceData.ProductData#metadata} for the field - * documentation. - */ - public Builder putAllMetadata(Map map) { - if (this.metadata == null) { - this.metadata = new HashMap<>(); - } - this.metadata.putAll(map); - return this; - } - - /** - * Required. The product's name, meant to be displayable to the customer. - */ - public Builder setName(String name) { - this.name = name; - return this; - } - - /** - * Required. The product's name, meant to be displayable to the customer. - */ - public Builder setName(EmptyParam name) { - this.name = name; - return this; - } - - /** A tax code ID. */ - public Builder setTaxCode(String taxCode) { - this.taxCode = taxCode; - return this; - } - - /** A tax code ID. */ - public Builder setTaxCode(EmptyParam taxCode) { - this.taxCode = taxCode; - return this; - } - } - } - - public enum TaxBehavior implements ApiRequestParams.EnumParam { - @SerializedName("exclusive") - EXCLUSIVE("exclusive"), - - @SerializedName("inclusive") - INCLUSIVE("inclusive"), - - @SerializedName("unspecified") - UNSPECIFIED("unspecified"); - - @Getter(onMethod_ = {@Override}) - private final String value; - - TaxBehavior(String value) { - this.value = value; - } - } - } - - @Getter - public static class TaxAmount { - /** Required. The amount, in cents (or local equivalent), of the tax. */ - @SerializedName("amount") - Long amount; - - /** - * Map of extra parameters for custom features not available in this client library. The content - * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each - * key/value pair is serialized as if the key is a root-level field (serialized) name in this - * param object. Effectively, this map is flattened to its parent instance. - */ - @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) - Map extraParams; - - /** - * Required. Data to find or create a TaxRate object. - * - *

Stripe automatically creates or reuses a TaxRate object for each tax amount. If the {@code - * tax_rate_data} exactly matches a previous value, Stripe will reuse the TaxRate object. - * TaxRate objects created automatically by Stripe are immediately archived, do not appear in - * the line item’s {@code tax_rates}, and cannot be directly added to invoices, payments, or - * line items. - */ - @SerializedName("tax_rate_data") - TaxRateData taxRateData; - - /** - * Required. The amount on which tax is calculated, in cents (or local - * equivalent). - */ - @SerializedName("taxable_amount") - Long taxableAmount; - - private TaxAmount( - Long amount, Map extraParams, TaxRateData taxRateData, Long taxableAmount) { - this.amount = amount; - this.extraParams = extraParams; - this.taxRateData = taxRateData; - this.taxableAmount = taxableAmount; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - private Long amount; - - private Map extraParams; - - private TaxRateData taxRateData; - - private Long taxableAmount; - - /** Finalize and obtain parameter instance from this builder. */ - public InvoiceLineItemUpdateParams.TaxAmount build() { - return new InvoiceLineItemUpdateParams.TaxAmount( - this.amount, this.extraParams, this.taxRateData, this.taxableAmount); - } - - /** Required. The amount, in cents (or local equivalent), of the tax. */ - public Builder setAmount(Long amount) { - this.amount = amount; - return this; - } - - /** - * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` - * call, and subsequent calls add additional key/value pairs to the original map. See {@link - * InvoiceLineItemUpdateParams.TaxAmount#extraParams} for the field documentation. - */ - public Builder putExtraParam(String key, Object value) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. - * See {@link InvoiceLineItemUpdateParams.TaxAmount#extraParams} for the field documentation. - */ - public Builder putAllExtraParam(Map map) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.putAll(map); - return this; - } - - /** - * Required. Data to find or create a TaxRate object. - * - *

Stripe automatically creates or reuses a TaxRate object for each tax amount. If the - * {@code tax_rate_data} exactly matches a previous value, Stripe will reuse the TaxRate - * object. TaxRate objects created automatically by Stripe are immediately archived, do not - * appear in the line item’s {@code tax_rates}, and cannot be directly added to invoices, - * payments, or line items. - */ - public Builder setTaxRateData(InvoiceLineItemUpdateParams.TaxAmount.TaxRateData taxRateData) { - this.taxRateData = taxRateData; - return this; - } - - /** - * Required. The amount on which tax is calculated, in cents (or local - * equivalent). - */ - public Builder setTaxableAmount(Long taxableAmount) { - this.taxableAmount = taxableAmount; - return this; - } - } - - @Getter - public static class TaxRateData { - /** - * Two-letter country code (ISO - * 3166-1 alpha-2). - */ - @SerializedName("country") - Object country; - - /** - * An arbitrary string attached to the tax rate for your internal use only. It will not be - * visible to your customers. - */ - @SerializedName("description") - Object description; - - /** - * Required. The display name of the tax rate, which will be shown to users. - */ - @SerializedName("display_name") - Object displayName; - - /** - * Map of extra parameters for custom features not available in this client library. The - * content in this map is not serialized under this field's {@code @SerializedName} value. - * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) - * name in this param object. Effectively, this map is flattened to its parent instance. - */ - @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) - Map extraParams; - - /** Required. This specifies if the tax rate is inclusive or exclusive. */ - @SerializedName("inclusive") - Boolean inclusive; - - /** - * The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. - * It also appears on your customer’s invoice. - */ - @SerializedName("jurisdiction") - Object jurisdiction; - - /** - * Required. The statutory tax rate percent. This field accepts decimal - * values between 0 and 100 inclusive with at most 4 decimal places. To accommodate - * fixed-amount taxes, set the percentage to zero. Stripe will not display zero percentages on - * the invoice unless the {@code amount} of the tax is also zero. - */ - @SerializedName("percentage") - BigDecimal percentage; - - /** - * ISO 3166-2 subdivision code, - * without country prefix. For example, "NY" for New York, United States. - */ - @SerializedName("state") - Object state; - - /** The high-level tax type, such as {@code vat} or {@code sales_tax}. */ - @SerializedName("tax_type") - TaxType taxType; - - private TaxRateData( - Object country, - Object description, - Object displayName, - Map extraParams, - Boolean inclusive, - Object jurisdiction, - BigDecimal percentage, - Object state, - TaxType taxType) { - this.country = country; - this.description = description; - this.displayName = displayName; - this.extraParams = extraParams; - this.inclusive = inclusive; - this.jurisdiction = jurisdiction; - this.percentage = percentage; - this.state = state; - this.taxType = taxType; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - private Object country; - - private Object description; - - private Object displayName; - - private Map extraParams; - - private Boolean inclusive; - - private Object jurisdiction; - - private BigDecimal percentage; - - private Object state; - - private TaxType taxType; - - /** Finalize and obtain parameter instance from this builder. */ - public InvoiceLineItemUpdateParams.TaxAmount.TaxRateData build() { - return new InvoiceLineItemUpdateParams.TaxAmount.TaxRateData( - this.country, - this.description, - this.displayName, - this.extraParams, - this.inclusive, - this.jurisdiction, - this.percentage, - this.state, - this.taxType); - } - - /** - * Two-letter country code (ISO - * 3166-1 alpha-2). - */ - public Builder setCountry(String country) { - this.country = country; - return this; - } - - /** - * Two-letter country code (ISO - * 3166-1 alpha-2). - */ - public Builder setCountry(EmptyParam country) { - this.country = country; - return this; - } - - /** - * An arbitrary string attached to the tax rate for your internal use only. It will not be - * visible to your customers. - */ - public Builder setDescription(String description) { - this.description = description; - return this; - } - - /** - * An arbitrary string attached to the tax rate for your internal use only. It will not be - * visible to your customers. - */ - public Builder setDescription(EmptyParam description) { - this.description = description; - return this; - } - - /** - * Required. The display name of the tax rate, which will be shown to - * users. - */ - public Builder setDisplayName(String displayName) { - this.displayName = displayName; - return this; - } - - /** - * Required. The display name of the tax rate, which will be shown to - * users. - */ - public Builder setDisplayName(EmptyParam displayName) { - this.displayName = displayName; - return this; - } - - /** - * Add a key/value pair to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original - * map. See {@link InvoiceLineItemUpdateParams.TaxAmount.TaxRateData#extraParams} for the - * field documentation. - */ - public Builder putExtraParam(String key, Object value) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.put(key, value); - return this; - } - - /** - * Add all map key/value pairs to `extraParams` map. A map is initialized for the first - * `put/putAll` call, and subsequent calls add additional key/value pairs to the original - * map. See {@link InvoiceLineItemUpdateParams.TaxAmount.TaxRateData#extraParams} for the - * field documentation. - */ - public Builder putAllExtraParam(Map map) { - if (this.extraParams == null) { - this.extraParams = new HashMap<>(); - } - this.extraParams.putAll(map); - return this; - } - - /** Required. This specifies if the tax rate is inclusive or exclusive. */ - public Builder setInclusive(Boolean inclusive) { - this.inclusive = inclusive; - return this; - } - - /** - * The jurisdiction for the tax rate. You can use this label field for tax reporting - * purposes. It also appears on your customer’s invoice. - */ - public Builder setJurisdiction(String jurisdiction) { - this.jurisdiction = jurisdiction; - return this; - } - - /** - * The jurisdiction for the tax rate. You can use this label field for tax reporting - * purposes. It also appears on your customer’s invoice. - */ - public Builder setJurisdiction(EmptyParam jurisdiction) { - this.jurisdiction = jurisdiction; - return this; - } - - /** - * Required. The statutory tax rate percent. This field accepts decimal - * values between 0 and 100 inclusive with at most 4 decimal places. To accommodate - * fixed-amount taxes, set the percentage to zero. Stripe will not display zero percentages - * on the invoice unless the {@code amount} of the tax is also zero. - */ - public Builder setPercentage(BigDecimal percentage) { - this.percentage = percentage; - return this; - } - - /** - * ISO 3166-2 subdivision code, - * without country prefix. For example, "NY" for New York, United States. - */ - public Builder setState(String state) { - this.state = state; - return this; - } - - /** - * ISO 3166-2 subdivision code, - * without country prefix. For example, "NY" for New York, United States. - */ - public Builder setState(EmptyParam state) { - this.state = state; - return this; - } - - /** The high-level tax type, such as {@code vat} or {@code sales_tax}. */ - public Builder setTaxType( - InvoiceLineItemUpdateParams.TaxAmount.TaxRateData.TaxType taxType) { - this.taxType = taxType; - return this; - } - } - - public enum TaxType implements ApiRequestParams.EnumParam { - @SerializedName("amusement_tax") - AMUSEMENT_TAX("amusement_tax"), - - @SerializedName("communications_tax") - COMMUNICATIONS_TAX("communications_tax"), - - @SerializedName("gst") - GST("gst"), - - @SerializedName("hst") - HST("hst"), - - @SerializedName("igst") - IGST("igst"), - - @SerializedName("jct") - JCT("jct"), - - @SerializedName("lease_tax") - LEASE_TAX("lease_tax"), - - @SerializedName("pst") - PST("pst"), - - @SerializedName("qst") - QST("qst"), - - @SerializedName("rst") - RST("rst"), - - @SerializedName("sales_tax") - SALES_TAX("sales_tax"), - - @SerializedName("service_tax") - SERVICE_TAX("service_tax"), - - @SerializedName("vat") - VAT("vat"); - - @Getter(onMethod_ = {@Override}) - private final String value; - - TaxType(String value) { - this.value = value; - } - } - } - } -} diff --git a/src/main/java/com/stripe/service/InvoiceLineItemService.java b/src/main/java/com/stripe/service/InvoiceLineItemService.java index 6e3b149c6f4..b1dc41dd745 100644 --- a/src/main/java/com/stripe/service/InvoiceLineItemService.java +++ b/src/main/java/com/stripe/service/InvoiceLineItemService.java @@ -13,7 +13,6 @@ import com.stripe.net.RequestOptions; import com.stripe.net.StripeResponseGetter; import com.stripe.param.InvoiceLineItemListParams; -import com.stripe.param.InvoiceLineItemUpdateParams; public final class InvoiceLineItemService extends ApiService { public InvoiceLineItemService(StripeResponseGetter responseGetter) { @@ -65,61 +64,4 @@ public StripeCollection list( options, ApiMode.V1); } - /** - * Updates an invoice’s line item. Some fields, such as {@code tax_amounts}, only live on the - * invoice line item, so they can only be updated through this endpoint. Other fields, such as - * {@code amount}, live on both the invoice item and the invoice line item, so updates on this - * endpoint will propagate to the invoice item as well. Updating an invoice’s line item is only - * possible before the invoice is finalized. - */ - public InvoiceLineItem update( - String invoice, String lineItemId, InvoiceLineItemUpdateParams params) - throws StripeException { - return update(invoice, lineItemId, params, (RequestOptions) null); - } - /** - * Updates an invoice’s line item. Some fields, such as {@code tax_amounts}, only live on the - * invoice line item, so they can only be updated through this endpoint. Other fields, such as - * {@code amount}, live on both the invoice item and the invoice line item, so updates on this - * endpoint will propagate to the invoice item as well. Updating an invoice’s line item is only - * possible before the invoice is finalized. - */ - public InvoiceLineItem update(String invoice, String lineItemId, RequestOptions options) - throws StripeException { - return update(invoice, lineItemId, (InvoiceLineItemUpdateParams) null, options); - } - /** - * Updates an invoice’s line item. Some fields, such as {@code tax_amounts}, only live on the - * invoice line item, so they can only be updated through this endpoint. Other fields, such as - * {@code amount}, live on both the invoice item and the invoice line item, so updates on this - * endpoint will propagate to the invoice item as well. Updating an invoice’s line item is only - * possible before the invoice is finalized. - */ - public InvoiceLineItem update(String invoice, String lineItemId) throws StripeException { - return update(invoice, lineItemId, (InvoiceLineItemUpdateParams) null, (RequestOptions) null); - } - /** - * Updates an invoice’s line item. Some fields, such as {@code tax_amounts}, only live on the - * invoice line item, so they can only be updated through this endpoint. Other fields, such as - * {@code amount}, live on both the invoice item and the invoice line item, so updates on this - * endpoint will propagate to the invoice item as well. Updating an invoice’s line item is only - * possible before the invoice is finalized. - */ - public InvoiceLineItem update( - String invoice, String lineItemId, InvoiceLineItemUpdateParams params, RequestOptions options) - throws StripeException { - String path = - String.format( - "/v1/invoices/%s/lines/%s", - ApiResource.urlEncodeId(invoice), ApiResource.urlEncodeId(lineItemId)); - return getResponseGetter() - .request( - BaseAddress.API, - ApiResource.RequestMethod.POST, - path, - ApiRequestParams.paramsToMap(params), - InvoiceLineItem.class, - options, - ApiMode.V1); - } } From 0da067f0adf64354868c8ebb84e65ab7f0a6bfbc Mon Sep 17 00:00:00 2001 From: anniel-stripe <97691964+anniel-stripe@users.noreply.github.com> Date: Thu, 16 Nov 2023 15:39:37 -0800 Subject: [PATCH 3/3] Revert "Handle InvoiceLineItem update case in test (#1684)" (#1688) This reverts commit 6122eb2dd89f7a1b1d134666d3e4b2a145572513. --- src/test/java/com/stripe/model/StandardizationTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/test/java/com/stripe/model/StandardizationTest.java b/src/test/java/com/stripe/model/StandardizationTest.java index e941dda3a33..d66c924f6c1 100644 --- a/src/test/java/com/stripe/model/StandardizationTest.java +++ b/src/test/java/com/stripe/model/StandardizationTest.java @@ -95,14 +95,6 @@ public void allNonDeprecatedMethodsTakeOptions() throws IOException, NoSuchMetho continue; } - // Skip the `public InvoiceLineItem update(String invoice, ... params) {...` overloads - // on InvoiceLineItem. - if (String.class.equals(parameters.get(0).getType().getRawType()) - && parameters.size() == 2 - && "update".equals(method.getName())) { - continue; - } - if (RequestOptions.class.isAssignableFrom(finalParamType)) { continue; }