diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index eaf5acec6..de4ec3f3b 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v212 \ No newline at end of file +v214 \ No newline at end of file diff --git a/stripe/api_resources/__init__.py b/stripe/api_resources/__init__.py index a143d4fd4..62d96516a 100644 --- a/stripe/api_resources/__init__.py +++ b/stripe/api_resources/__init__.py @@ -84,9 +84,11 @@ from stripe.api_resources.subscription import Subscription from stripe.api_resources.subscription_item import SubscriptionItem from stripe.api_resources.subscription_schedule import SubscriptionSchedule +from stripe.api_resources.tax_calculation import TaxCalculation from stripe.api_resources.tax_code import TaxCode from stripe.api_resources.tax_id import TaxId from stripe.api_resources.tax_rate import TaxRate +from stripe.api_resources.tax_transaction import TaxTransaction from stripe.api_resources.token import Token from stripe.api_resources.topup import Topup from stripe.api_resources.transfer import Transfer diff --git a/stripe/api_resources/quote.py b/stripe/api_resources/quote.py index 26a567359..c7a6d11d5 100644 --- a/stripe/api_resources/quote.py +++ b/stripe/api_resources/quote.py @@ -77,6 +77,35 @@ def cancel(self, idempotency_key=None, **params): params=params, ) + @classmethod + def _cls_draft_quote( + cls, + quote, + api_key=None, + stripe_version=None, + stripe_account=None, + **params + ): + return cls._static_request( + "post", + "/v1/quotes/{quote}/draft".format(quote=util.sanitize_id(quote)), + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + params=params, + ) + + @util.class_method_variant("_cls_draft_quote") + def draft_quote(self, idempotency_key=None, **params): + return self._request( + "post", + "/v1/quotes/{quote}/draft".format( + quote=util.sanitize_id(self.get("id")) + ), + idempotency_key=idempotency_key, + params=params, + ) + @classmethod def _cls_finalize_quote( cls, @@ -170,6 +199,159 @@ def list_line_items(self, idempotency_key=None, **params): params=params, ) + @classmethod + def _cls_list_lines( + cls, + quote, + api_key=None, + stripe_version=None, + stripe_account=None, + **params + ): + return cls._static_request( + "get", + "/v1/quotes/{quote}/lines".format(quote=util.sanitize_id(quote)), + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + params=params, + ) + + @util.class_method_variant("_cls_list_lines") + def list_lines(self, idempotency_key=None, **params): + return self._request( + "get", + "/v1/quotes/{quote}/lines".format( + quote=util.sanitize_id(self.get("id")) + ), + idempotency_key=idempotency_key, + params=params, + ) + + @classmethod + def _cls_preview_invoice_lines( + cls, + quote, + api_key=None, + stripe_version=None, + stripe_account=None, + **params + ): + return cls._static_request( + "get", + "/v1/quotes/{quote}/preview_invoice_lines".format( + quote=util.sanitize_id(quote) + ), + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + params=params, + ) + + @util.class_method_variant("_cls_preview_invoice_lines") + def preview_invoice_lines(self, idempotency_key=None, **params): + return self._request( + "get", + "/v1/quotes/{quote}/preview_invoice_lines".format( + quote=util.sanitize_id(self.get("id")) + ), + idempotency_key=idempotency_key, + params=params, + ) + + @classmethod + def _cls_preview_invoices( + cls, + quote, + api_key=None, + stripe_version=None, + stripe_account=None, + **params + ): + return cls._static_request( + "get", + "/v1/quotes/{quote}/preview_invoices".format( + quote=util.sanitize_id(quote) + ), + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + params=params, + ) + + @util.class_method_variant("_cls_preview_invoices") + def preview_invoices(self, idempotency_key=None, **params): + return self._request( + "get", + "/v1/quotes/{quote}/preview_invoices".format( + quote=util.sanitize_id(self.get("id")) + ), + idempotency_key=idempotency_key, + params=params, + ) + + @classmethod + def _cls_preview_subscription_schedules( + cls, + quote, + api_key=None, + stripe_version=None, + stripe_account=None, + **params + ): + return cls._static_request( + "get", + "/v1/quotes/{quote}/preview_subscription_schedules".format( + quote=util.sanitize_id(quote) + ), + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + params=params, + ) + + @util.class_method_variant("_cls_preview_subscription_schedules") + def preview_subscription_schedules(self, idempotency_key=None, **params): + return self._request( + "get", + "/v1/quotes/{quote}/preview_subscription_schedules".format( + quote=util.sanitize_id(self.get("id")) + ), + idempotency_key=idempotency_key, + params=params, + ) + + @classmethod + def _cls_reestimate( + cls, + quote, + api_key=None, + stripe_version=None, + stripe_account=None, + **params + ): + return cls._static_request( + "post", + "/v1/quotes/{quote}/reestimate".format( + quote=util.sanitize_id(quote) + ), + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + params=params, + ) + + @util.class_method_variant("_cls_reestimate") + def reestimate(self, idempotency_key=None, **params): + return self._request( + "post", + "/v1/quotes/{quote}/reestimate".format( + quote=util.sanitize_id(self.get("id")) + ), + idempotency_key=idempotency_key, + params=params, + ) + @classmethod def _cls_pdf( cls, diff --git a/stripe/api_resources/tax_calculation.py b/stripe/api_resources/tax_calculation.py new file mode 100644 index 000000000..50bd1cd13 --- /dev/null +++ b/stripe/api_resources/tax_calculation.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from __future__ import absolute_import, division, print_function + +from stripe import util +from stripe.api_resources.abstract import CreateableAPIResource + + +class TaxCalculation(CreateableAPIResource): + """ + A Tax `Calculation` allows you to calculate the tax to collect from your customer. + """ + + OBJECT_NAME = "tax.calculation" + + @classmethod + def _cls_list_line_items( + cls, + calculation, + api_key=None, + stripe_version=None, + stripe_account=None, + **params + ): + return cls._static_request( + "get", + "/v1/tax/calculations/{calculation}/line_items".format( + calculation=util.sanitize_id(calculation) + ), + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + params=params, + ) + + @util.class_method_variant("_cls_list_line_items") + def list_line_items(self, idempotency_key=None, **params): + return self._request( + "get", + "/v1/tax/calculations/{calculation}/line_items".format( + calculation=util.sanitize_id(self.get("id")) + ), + idempotency_key=idempotency_key, + params=params, + ) diff --git a/stripe/api_resources/tax_transaction.py b/stripe/api_resources/tax_transaction.py new file mode 100644 index 000000000..75b13eeab --- /dev/null +++ b/stripe/api_resources/tax_transaction.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from __future__ import absolute_import, division, print_function + +from stripe.api_resources.abstract import CreateableAPIResource + + +class TaxTransaction(CreateableAPIResource): + """ + A Tax `Transaction` records the tax collected from or refunded to your customer. + """ + + OBJECT_NAME = "tax.transaction" + + @classmethod + def create_reversal( + cls, api_key=None, stripe_version=None, stripe_account=None, **params + ): + return cls._static_request( + "post", + "/v1/tax/transactions/create_reversal", + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + params=params, + ) diff --git a/stripe/object_classes.py b/stripe/object_classes.py index 254c99235..bc83b05a8 100644 --- a/stripe/object_classes.py +++ b/stripe/object_classes.py @@ -93,9 +93,11 @@ api_resources.Subscription.OBJECT_NAME: api_resources.Subscription, api_resources.SubscriptionItem.OBJECT_NAME: api_resources.SubscriptionItem, api_resources.SubscriptionSchedule.OBJECT_NAME: api_resources.SubscriptionSchedule, + api_resources.TaxCalculation.OBJECT_NAME: api_resources.TaxCalculation, api_resources.TaxCode.OBJECT_NAME: api_resources.TaxCode, api_resources.TaxId.OBJECT_NAME: api_resources.TaxId, api_resources.TaxRate.OBJECT_NAME: api_resources.TaxRate, + api_resources.TaxTransaction.OBJECT_NAME: api_resources.TaxTransaction, api_resources.terminal.Configuration.OBJECT_NAME: api_resources.terminal.Configuration, api_resources.terminal.ConnectionToken.OBJECT_NAME: api_resources.terminal.ConnectionToken, api_resources.terminal.Location.OBJECT_NAME: api_resources.terminal.Location, diff --git a/tox.ini b/tox.ini index 9c027f830..a8ad1cef9 100644 --- a/tox.ini +++ b/tox.ini @@ -46,7 +46,7 @@ commands = pytest --cov {posargs:-n auto} --ignore stripe # by passing the following flags: # LDFLAGS="-L$(brew --prefix openssl@1.1)/lib" # CFLAGS="-I$(brew --prefix openssl@1.1)/include" -passenv = LDFLAGS CFLAGS +passenv = LDFLAGS,CFLAGS [testenv:fmt] description = run code formatting using black