dodopayments 1.39.0__py3-none-any.whl → 1.43.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dodopayments might be problematic. Click here for more details.

dodopayments/_models.py CHANGED
@@ -208,14 +208,18 @@ class BaseModel(pydantic.BaseModel):
208
208
  else:
209
209
  fields_values[name] = field_get_default(field)
210
210
 
211
+ extra_field_type = _get_extra_fields_type(__cls)
212
+
211
213
  _extra = {}
212
214
  for key, value in values.items():
213
215
  if key not in model_fields:
216
+ parsed = construct_type(value=value, type_=extra_field_type) if extra_field_type is not None else value
217
+
214
218
  if PYDANTIC_V2:
215
- _extra[key] = value
219
+ _extra[key] = parsed
216
220
  else:
217
221
  _fields_set.add(key)
218
- fields_values[key] = value
222
+ fields_values[key] = parsed
219
223
 
220
224
  object.__setattr__(m, "__dict__", fields_values)
221
225
 
@@ -370,6 +374,23 @@ def _construct_field(value: object, field: FieldInfo, key: str) -> object:
370
374
  return construct_type(value=value, type_=type_, metadata=getattr(field, "metadata", None))
371
375
 
372
376
 
377
+ def _get_extra_fields_type(cls: type[pydantic.BaseModel]) -> type | None:
378
+ if not PYDANTIC_V2:
379
+ # TODO
380
+ return None
381
+
382
+ schema = cls.__pydantic_core_schema__
383
+ if schema["type"] == "model":
384
+ fields = schema["schema"]
385
+ if fields["type"] == "model-fields":
386
+ extras = fields.get("extras_schema")
387
+ if extras and "cls" in extras:
388
+ # mypy can't narrow the type
389
+ return extras["cls"] # type: ignore[no-any-return]
390
+
391
+ return None
392
+
393
+
373
394
  def is_basemodel(type_: type) -> bool:
374
395
  """Returns whether or not the given type is either a `BaseModel` or a union of `BaseModel`"""
375
396
  if is_union(type_):
@@ -439,7 +460,7 @@ def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]
439
460
  type_ = type_.__value__ # type: ignore[unreachable]
440
461
 
441
462
  # unwrap `Annotated[T, ...]` -> `T`
442
- if metadata is not None:
463
+ if metadata is not None and len(metadata) > 0:
443
464
  meta: tuple[Any, ...] = tuple(metadata)
444
465
  elif is_annotated_type(type_):
445
466
  meta = get_args(type_)[1:]
dodopayments/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "dodopayments"
4
- __version__ = "1.39.0" # x-release-please-version
4
+ __version__ = "1.43.0" # x-release-please-version
@@ -17,11 +17,9 @@ from .._response import (
17
17
  async_to_raw_response_wrapper,
18
18
  async_to_streamed_response_wrapper,
19
19
  )
20
+ from ..types.brand import Brand
20
21
  from .._base_client import make_request_options
21
22
  from ..types.brand_list_response import BrandListResponse
22
- from ..types.brand_create_response import BrandCreateResponse
23
- from ..types.brand_update_response import BrandUpdateResponse
24
- from ..types.brand_retrieve_response import BrandRetrieveResponse
25
23
  from ..types.brand_update_images_response import BrandUpdateImagesResponse
26
24
 
27
25
  __all__ = ["BrandsResource", "AsyncBrandsResource"]
@@ -61,7 +59,7 @@ class BrandsResource(SyncAPIResource):
61
59
  extra_query: Query | None = None,
62
60
  extra_body: Body | None = None,
63
61
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
64
- ) -> BrandCreateResponse:
62
+ ) -> Brand:
65
63
  """
66
64
  Args:
67
65
  extra_headers: Send extra headers
@@ -87,7 +85,7 @@ class BrandsResource(SyncAPIResource):
87
85
  options=make_request_options(
88
86
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
89
87
  ),
90
- cast_to=BrandCreateResponse,
88
+ cast_to=Brand,
91
89
  )
92
90
 
93
91
  def retrieve(
@@ -100,7 +98,7 @@ class BrandsResource(SyncAPIResource):
100
98
  extra_query: Query | None = None,
101
99
  extra_body: Body | None = None,
102
100
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
103
- ) -> BrandRetrieveResponse:
101
+ ) -> Brand:
104
102
  """
105
103
  Thin handler just calls `get_brand` and wraps in `Json(...)`
106
104
 
@@ -120,7 +118,7 @@ class BrandsResource(SyncAPIResource):
120
118
  options=make_request_options(
121
119
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
122
120
  ),
123
- cast_to=BrandRetrieveResponse,
121
+ cast_to=Brand,
124
122
  )
125
123
 
126
124
  def update(
@@ -137,7 +135,7 @@ class BrandsResource(SyncAPIResource):
137
135
  extra_query: Query | None = None,
138
136
  extra_body: Body | None = None,
139
137
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
140
- ) -> BrandUpdateResponse:
138
+ ) -> Brand:
141
139
  """
142
140
  Args:
143
141
  image_id: The UUID you got back from the presigned‐upload call
@@ -166,7 +164,7 @@ class BrandsResource(SyncAPIResource):
166
164
  options=make_request_options(
167
165
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
168
166
  ),
169
- cast_to=BrandUpdateResponse,
167
+ cast_to=Brand,
170
168
  )
171
169
 
172
170
  def list(
@@ -253,7 +251,7 @@ class AsyncBrandsResource(AsyncAPIResource):
253
251
  extra_query: Query | None = None,
254
252
  extra_body: Body | None = None,
255
253
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
256
- ) -> BrandCreateResponse:
254
+ ) -> Brand:
257
255
  """
258
256
  Args:
259
257
  extra_headers: Send extra headers
@@ -279,7 +277,7 @@ class AsyncBrandsResource(AsyncAPIResource):
279
277
  options=make_request_options(
280
278
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
281
279
  ),
282
- cast_to=BrandCreateResponse,
280
+ cast_to=Brand,
283
281
  )
284
282
 
285
283
  async def retrieve(
@@ -292,7 +290,7 @@ class AsyncBrandsResource(AsyncAPIResource):
292
290
  extra_query: Query | None = None,
293
291
  extra_body: Body | None = None,
294
292
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
295
- ) -> BrandRetrieveResponse:
293
+ ) -> Brand:
296
294
  """
297
295
  Thin handler just calls `get_brand` and wraps in `Json(...)`
298
296
 
@@ -312,7 +310,7 @@ class AsyncBrandsResource(AsyncAPIResource):
312
310
  options=make_request_options(
313
311
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
314
312
  ),
315
- cast_to=BrandRetrieveResponse,
313
+ cast_to=Brand,
316
314
  )
317
315
 
318
316
  async def update(
@@ -329,7 +327,7 @@ class AsyncBrandsResource(AsyncAPIResource):
329
327
  extra_query: Query | None = None,
330
328
  extra_body: Body | None = None,
331
329
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
332
- ) -> BrandUpdateResponse:
330
+ ) -> Brand:
333
331
  """
334
332
  Args:
335
333
  image_id: The UUID you got back from the presigned‐upload call
@@ -358,7 +356,7 @@ class AsyncBrandsResource(AsyncAPIResource):
358
356
  options=make_request_options(
359
357
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
360
358
  ),
361
- cast_to=BrandUpdateResponse,
359
+ cast_to=Brand,
362
360
  )
363
361
 
364
362
  async def list(
@@ -21,8 +21,8 @@ from .._response import (
21
21
  )
22
22
  from ..pagination import SyncDefaultPageNumberPagination, AsyncDefaultPageNumberPagination
23
23
  from .._base_client import AsyncPaginator, make_request_options
24
+ from ..types.get_dispute import GetDispute
24
25
  from ..types.dispute_list_response import DisputeListResponse
25
- from ..types.dispute_retrieve_response import DisputeRetrieveResponse
26
26
 
27
27
  __all__ = ["DisputesResource", "AsyncDisputesResource"]
28
28
 
@@ -57,7 +57,7 @@ class DisputesResource(SyncAPIResource):
57
57
  extra_query: Query | None = None,
58
58
  extra_body: Body | None = None,
59
59
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
60
- ) -> DisputeRetrieveResponse:
60
+ ) -> GetDispute:
61
61
  """
62
62
  Args:
63
63
  extra_headers: Send extra headers
@@ -75,7 +75,7 @@ class DisputesResource(SyncAPIResource):
75
75
  options=make_request_options(
76
76
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
77
77
  ),
78
- cast_to=DisputeRetrieveResponse,
78
+ cast_to=GetDispute,
79
79
  )
80
80
 
81
81
  def list(
@@ -183,7 +183,7 @@ class AsyncDisputesResource(AsyncAPIResource):
183
183
  extra_query: Query | None = None,
184
184
  extra_body: Body | None = None,
185
185
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
186
- ) -> DisputeRetrieveResponse:
186
+ ) -> GetDispute:
187
187
  """
188
188
  Args:
189
189
  extra_headers: Send extra headers
@@ -201,7 +201,7 @@ class AsyncDisputesResource(AsyncAPIResource):
201
201
  options=make_request_options(
202
202
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
203
203
  ),
204
- cast_to=DisputeRetrieveResponse,
204
+ cast_to=GetDispute,
205
205
  )
206
206
 
207
207
  def list(
@@ -23,6 +23,7 @@ from ..pagination import SyncDefaultPageNumberPagination, AsyncDefaultPageNumber
23
23
  from .._base_client import AsyncPaginator, make_request_options
24
24
  from ..types.payment import Payment
25
25
  from ..types.currency import Currency
26
+ from ..types.payment_method_types import PaymentMethodTypes
26
27
  from ..types.billing_address_param import BillingAddressParam
27
28
  from ..types.payment_list_response import PaymentListResponse
28
29
  from ..types.customer_request_param import CustomerRequestParam
@@ -59,31 +60,7 @@ class PaymentsResource(SyncAPIResource):
59
60
  billing: BillingAddressParam,
60
61
  customer: CustomerRequestParam,
61
62
  product_cart: Iterable[OneTimeProductCartItemParam],
62
- allowed_payment_method_types: Optional[
63
- List[
64
- Literal[
65
- "credit",
66
- "debit",
67
- "upi_collect",
68
- "upi_intent",
69
- "apple_pay",
70
- "cashapp",
71
- "google_pay",
72
- "multibanco",
73
- "bancontact_card",
74
- "eps",
75
- "ideal",
76
- "przelewy24",
77
- "affirm",
78
- "klarna",
79
- "sepa",
80
- "ach",
81
- "amazon_pay",
82
- "afterpay_clearpay",
83
- ]
84
- ]
85
- ]
86
- | NotGiven = NOT_GIVEN,
63
+ allowed_payment_method_types: Optional[List[PaymentMethodTypes]] | NotGiven = NOT_GIVEN,
87
64
  billing_currency: Optional[Currency] | NotGiven = NOT_GIVEN,
88
65
  discount_code: Optional[str] | NotGiven = NOT_GIVEN,
89
66
  metadata: Dict[str, str] | NotGiven = NOT_GIVEN,
@@ -334,31 +311,7 @@ class AsyncPaymentsResource(AsyncAPIResource):
334
311
  billing: BillingAddressParam,
335
312
  customer: CustomerRequestParam,
336
313
  product_cart: Iterable[OneTimeProductCartItemParam],
337
- allowed_payment_method_types: Optional[
338
- List[
339
- Literal[
340
- "credit",
341
- "debit",
342
- "upi_collect",
343
- "upi_intent",
344
- "apple_pay",
345
- "cashapp",
346
- "google_pay",
347
- "multibanco",
348
- "bancontact_card",
349
- "eps",
350
- "ideal",
351
- "przelewy24",
352
- "affirm",
353
- "klarna",
354
- "sepa",
355
- "ach",
356
- "amazon_pay",
357
- "afterpay_clearpay",
358
- ]
359
- ]
360
- ]
361
- | NotGiven = NOT_GIVEN,
314
+ allowed_payment_method_types: Optional[List[PaymentMethodTypes]] | NotGiven = NOT_GIVEN,
362
315
  billing_currency: Optional[Currency] | NotGiven = NOT_GIVEN,
363
316
  discount_code: Optional[str] | NotGiven = NOT_GIVEN,
364
317
  metadata: Dict[str, str] | NotGiven = NOT_GIVEN,
@@ -31,7 +31,9 @@ from ..pagination import SyncDefaultPageNumberPagination, AsyncDefaultPageNumber
31
31
  from .._base_client import AsyncPaginator, make_request_options
32
32
  from ..types.currency import Currency
33
33
  from ..types.subscription import Subscription
34
+ from ..types.attach_addon_param import AttachAddonParam
34
35
  from ..types.subscription_status import SubscriptionStatus
36
+ from ..types.payment_method_types import PaymentMethodTypes
35
37
  from ..types.billing_address_param import BillingAddressParam
36
38
  from ..types.customer_request_param import CustomerRequestParam
37
39
  from ..types.subscription_list_response import SubscriptionListResponse
@@ -68,32 +70,8 @@ class SubscriptionsResource(SyncAPIResource):
68
70
  customer: CustomerRequestParam,
69
71
  product_id: str,
70
72
  quantity: int,
71
- addons: Optional[Iterable[subscription_create_params.Addon]] | NotGiven = NOT_GIVEN,
72
- allowed_payment_method_types: Optional[
73
- List[
74
- Literal[
75
- "credit",
76
- "debit",
77
- "upi_collect",
78
- "upi_intent",
79
- "apple_pay",
80
- "cashapp",
81
- "google_pay",
82
- "multibanco",
83
- "bancontact_card",
84
- "eps",
85
- "ideal",
86
- "przelewy24",
87
- "affirm",
88
- "klarna",
89
- "sepa",
90
- "ach",
91
- "amazon_pay",
92
- "afterpay_clearpay",
93
- ]
94
- ]
95
- ]
96
- | NotGiven = NOT_GIVEN,
73
+ addons: Optional[Iterable[AttachAddonParam]] | NotGiven = NOT_GIVEN,
74
+ allowed_payment_method_types: Optional[List[PaymentMethodTypes]] | NotGiven = NOT_GIVEN,
97
75
  billing_currency: Optional[Currency] | NotGiven = NOT_GIVEN,
98
76
  discount_code: Optional[str] | NotGiven = NOT_GIVEN,
99
77
  metadata: Dict[str, str] | NotGiven = NOT_GIVEN,
@@ -336,7 +314,7 @@ class SubscriptionsResource(SyncAPIResource):
336
314
  product_id: str,
337
315
  proration_billing_mode: Literal["prorated_immediately", "full_immediately"],
338
316
  quantity: int,
339
- addons: Optional[Iterable[subscription_change_plan_params.Addon]] | NotGiven = NOT_GIVEN,
317
+ addons: Optional[Iterable[AttachAddonParam]] | NotGiven = NOT_GIVEN,
340
318
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
341
319
  # The extra values given here take precedence over values defined on the client or passed to this method.
342
320
  extra_headers: Headers | None = None,
@@ -391,6 +369,7 @@ class SubscriptionsResource(SyncAPIResource):
391
369
  adaptive_currency_fees_inclusive: Optional[bool] | NotGiven = NOT_GIVEN,
392
370
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
393
371
  product_currency: Optional[Currency] | NotGiven = NOT_GIVEN,
372
+ product_description: Optional[str] | NotGiven = NOT_GIVEN,
394
373
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
395
374
  # The extra values given here take precedence over values defined on the client or passed to this method.
396
375
  extra_headers: Headers | None = None,
@@ -414,6 +393,9 @@ class SubscriptionsResource(SyncAPIResource):
414
393
  product_currency: Optional currency of the product price. If not specified, defaults to the
415
394
  currency of the product.
416
395
 
396
+ product_description: Optional product description override for billing and line items. If not
397
+ specified, the stored description of the product will be used.
398
+
417
399
  extra_headers: Send extra headers
418
400
 
419
401
  extra_query: Add additional query parameters to the request
@@ -432,6 +414,7 @@ class SubscriptionsResource(SyncAPIResource):
432
414
  "adaptive_currency_fees_inclusive": adaptive_currency_fees_inclusive,
433
415
  "metadata": metadata,
434
416
  "product_currency": product_currency,
417
+ "product_description": product_description,
435
418
  },
436
419
  subscription_charge_params.SubscriptionChargeParams,
437
420
  ),
@@ -469,32 +452,8 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
469
452
  customer: CustomerRequestParam,
470
453
  product_id: str,
471
454
  quantity: int,
472
- addons: Optional[Iterable[subscription_create_params.Addon]] | NotGiven = NOT_GIVEN,
473
- allowed_payment_method_types: Optional[
474
- List[
475
- Literal[
476
- "credit",
477
- "debit",
478
- "upi_collect",
479
- "upi_intent",
480
- "apple_pay",
481
- "cashapp",
482
- "google_pay",
483
- "multibanco",
484
- "bancontact_card",
485
- "eps",
486
- "ideal",
487
- "przelewy24",
488
- "affirm",
489
- "klarna",
490
- "sepa",
491
- "ach",
492
- "amazon_pay",
493
- "afterpay_clearpay",
494
- ]
495
- ]
496
- ]
497
- | NotGiven = NOT_GIVEN,
455
+ addons: Optional[Iterable[AttachAddonParam]] | NotGiven = NOT_GIVEN,
456
+ allowed_payment_method_types: Optional[List[PaymentMethodTypes]] | NotGiven = NOT_GIVEN,
498
457
  billing_currency: Optional[Currency] | NotGiven = NOT_GIVEN,
499
458
  discount_code: Optional[str] | NotGiven = NOT_GIVEN,
500
459
  metadata: Dict[str, str] | NotGiven = NOT_GIVEN,
@@ -737,7 +696,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
737
696
  product_id: str,
738
697
  proration_billing_mode: Literal["prorated_immediately", "full_immediately"],
739
698
  quantity: int,
740
- addons: Optional[Iterable[subscription_change_plan_params.Addon]] | NotGiven = NOT_GIVEN,
699
+ addons: Optional[Iterable[AttachAddonParam]] | NotGiven = NOT_GIVEN,
741
700
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
742
701
  # The extra values given here take precedence over values defined on the client or passed to this method.
743
702
  extra_headers: Headers | None = None,
@@ -792,6 +751,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
792
751
  adaptive_currency_fees_inclusive: Optional[bool] | NotGiven = NOT_GIVEN,
793
752
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
794
753
  product_currency: Optional[Currency] | NotGiven = NOT_GIVEN,
754
+ product_description: Optional[str] | NotGiven = NOT_GIVEN,
795
755
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
796
756
  # The extra values given here take precedence over values defined on the client or passed to this method.
797
757
  extra_headers: Headers | None = None,
@@ -815,6 +775,9 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
815
775
  product_currency: Optional currency of the product price. If not specified, defaults to the
816
776
  currency of the product.
817
777
 
778
+ product_description: Optional product description override for billing and line items. If not
779
+ specified, the stored description of the product will be used.
780
+
818
781
  extra_headers: Send extra headers
819
782
 
820
783
  extra_query: Add additional query parameters to the request
@@ -833,6 +796,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
833
796
  "adaptive_currency_fees_inclusive": adaptive_currency_fees_inclusive,
834
797
  "metadata": metadata,
835
798
  "product_currency": product_currency,
799
+ "product_description": product_description,
836
800
  },
837
801
  subscription_charge_params.SubscriptionChargeParams,
838
802
  ),
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from .brand import Brand as Brand
5
6
  from .price import Price as Price
6
7
  from .refund import Refund as Refund
7
8
  from .dispute import Dispute as Dispute
@@ -10,6 +11,7 @@ from .product import Product as Product
10
11
  from .currency import Currency as Currency
11
12
  from .customer import Customer as Customer
12
13
  from .discount import Discount as Discount
14
+ from .get_dispute import GetDispute as GetDispute
13
15
  from .license_key import LicenseKey as LicenseKey
14
16
  from .price_param import PriceParam as PriceParam
15
17
  from .country_code import CountryCode as CountryCode
@@ -25,6 +27,7 @@ from .addon_response import AddonResponse as AddonResponse
25
27
  from .dispute_status import DisputeStatus as DisputeStatus
26
28
  from .billing_address import BillingAddress as BillingAddress
27
29
  from .addon_list_params import AddonListParams as AddonListParams
30
+ from .attach_addon_param import AttachAddonParam as AttachAddonParam
28
31
  from .license_key_status import LicenseKeyStatus as LicenseKeyStatus
29
32
  from .payout_list_params import PayoutListParams as PayoutListParams
30
33
  from .refund_list_params import RefundListParams as RefundListParams
@@ -42,11 +45,10 @@ from .customer_list_params import CustomerListParams as CustomerListParams
42
45
  from .discount_list_params import DiscountListParams as DiscountListParams
43
46
  from .license_key_duration import LicenseKeyDuration as LicenseKeyDuration
44
47
  from .license_key_instance import LicenseKeyInstance as LicenseKeyInstance
48
+ from .payment_method_types import PaymentMethodTypes as PaymentMethodTypes
45
49
  from .payout_list_response import PayoutListResponse as PayoutListResponse
46
50
  from .refund_create_params import RefundCreateParams as RefundCreateParams
47
51
  from .billing_address_param import BillingAddressParam as BillingAddressParam
48
- from .brand_create_response import BrandCreateResponse as BrandCreateResponse
49
- from .brand_update_response import BrandUpdateResponse as BrandUpdateResponse
50
52
  from .dispute_list_response import DisputeListResponse as DisputeListResponse
51
53
  from .payment_create_params import PaymentCreateParams as PaymentCreateParams
52
54
  from .payment_list_response import PaymentListResponse as PaymentListResponse
@@ -58,7 +60,6 @@ from .customer_request_param import CustomerRequestParam as CustomerRequestParam
58
60
  from .customer_update_params import CustomerUpdateParams as CustomerUpdateParams
59
61
  from .discount_create_params import DiscountCreateParams as DiscountCreateParams
60
62
  from .discount_update_params import DiscountUpdateParams as DiscountUpdateParams
61
- from .brand_retrieve_response import BrandRetrieveResponse as BrandRetrieveResponse
62
63
  from .customer_portal_session import CustomerPortalSession as CustomerPortalSession
63
64
  from .license_activate_params import LicenseActivateParams as LicenseActivateParams
64
65
  from .license_key_list_params import LicenseKeyListParams as LicenseKeyListParams
@@ -68,7 +69,6 @@ from .addon_cart_response_item import AddonCartResponseItem as AddonCartResponse
68
69
  from .customer_limited_details import CustomerLimitedDetails as CustomerLimitedDetails
69
70
  from .subscription_list_params import SubscriptionListParams as SubscriptionListParams
70
71
  from .create_new_customer_param import CreateNewCustomerParam as CreateNewCustomerParam
71
- from .dispute_retrieve_response import DisputeRetrieveResponse as DisputeRetrieveResponse
72
72
  from .license_deactivate_params import LicenseDeactivateParams as LicenseDeactivateParams
73
73
  from .license_key_update_params import LicenseKeyUpdateParams as LicenseKeyUpdateParams
74
74
  from .license_validate_response import LicenseValidateResponse as LicenseValidateResponse
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, TypedDict
6
+
7
+ __all__ = ["AttachAddonParam"]
8
+
9
+
10
+ class AttachAddonParam(TypedDict, total=False):
11
+ addon_id: Required[str]
12
+
13
+ quantity: Required[int]
@@ -5,10 +5,10 @@ from typing_extensions import Literal
5
5
 
6
6
  from .._models import BaseModel
7
7
 
8
- __all__ = ["BrandCreateResponse"]
8
+ __all__ = ["Brand"]
9
9
 
10
10
 
11
- class BrandCreateResponse(BaseModel):
11
+ class Brand(BaseModel):
12
12
  brand_id: str
13
13
 
14
14
  business_id: str
@@ -1,40 +1,13 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List, Optional
4
- from typing_extensions import Literal
3
+ from typing import List
5
4
 
5
+ from .brand import Brand
6
6
  from .._models import BaseModel
7
7
 
8
- __all__ = ["BrandListResponse", "Item"]
9
-
10
-
11
- class Item(BaseModel):
12
- brand_id: str
13
-
14
- business_id: str
15
-
16
- enabled: bool
17
-
18
- statement_descriptor: str
19
-
20
- verification_enabled: bool
21
-
22
- verification_status: Literal["Success", "Fail", "Review", "Hold"]
23
-
24
- description: Optional[str] = None
25
-
26
- image: Optional[str] = None
27
-
28
- name: Optional[str] = None
29
-
30
- reason_for_hold: Optional[str] = None
31
- """Incase the brand verification fails or is put on hold"""
32
-
33
- support_email: Optional[str] = None
34
-
35
- url: Optional[str] = None
8
+ __all__ = ["BrandListResponse"]
36
9
 
37
10
 
38
11
  class BrandListResponse(BaseModel):
39
- items: List[Item]
12
+ items: List[Brand]
40
13
  """List of brands for this business"""
@@ -8,10 +8,10 @@ from .dispute_stage import DisputeStage
8
8
  from .dispute_status import DisputeStatus
9
9
  from .customer_limited_details import CustomerLimitedDetails
10
10
 
11
- __all__ = ["DisputeRetrieveResponse"]
11
+ __all__ = ["GetDispute"]
12
12
 
13
13
 
14
- class DisputeRetrieveResponse(BaseModel):
14
+ class GetDispute(BaseModel):
15
15
  amount: str
16
16
  """
17
17
  The amount involved in the dispute, represented as a string to accommodate
@@ -3,9 +3,10 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Dict, List, Iterable, Optional
6
- from typing_extensions import Literal, Required, TypedDict
6
+ from typing_extensions import Required, TypedDict
7
7
 
8
8
  from .currency import Currency
9
+ from .payment_method_types import PaymentMethodTypes
9
10
  from .billing_address_param import BillingAddressParam
10
11
  from .customer_request_param import CustomerRequestParam
11
12
  from .one_time_product_cart_item_param import OneTimeProductCartItemParam
@@ -23,30 +24,7 @@ class PaymentCreateParams(TypedDict, total=False):
23
24
  product_cart: Required[Iterable[OneTimeProductCartItemParam]]
24
25
  """List of products in the cart. Must contain at least 1 and at most 100 items."""
25
26
 
26
- allowed_payment_method_types: Optional[
27
- List[
28
- Literal[
29
- "credit",
30
- "debit",
31
- "upi_collect",
32
- "upi_intent",
33
- "apple_pay",
34
- "cashapp",
35
- "google_pay",
36
- "multibanco",
37
- "bancontact_card",
38
- "eps",
39
- "ideal",
40
- "przelewy24",
41
- "affirm",
42
- "klarna",
43
- "sepa",
44
- "ach",
45
- "amazon_pay",
46
- "afterpay_clearpay",
47
- ]
48
- ]
49
- ]
27
+ allowed_payment_method_types: Optional[List[PaymentMethodTypes]]
50
28
  """List of payment methods allowed during checkout.
51
29
 
52
30
  Customers will **never** see payment methods that are **not** in this list.
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["PaymentMethodTypes"]
6
+
7
+ PaymentMethodTypes: TypeAlias = Literal[
8
+ "credit",
9
+ "debit",
10
+ "upi_collect",
11
+ "upi_intent",
12
+ "apple_pay",
13
+ "cashapp",
14
+ "google_pay",
15
+ "multibanco",
16
+ "bancontact_card",
17
+ "eps",
18
+ "ideal",
19
+ "przelewy24",
20
+ "affirm",
21
+ "klarna",
22
+ "sepa",
23
+ "ach",
24
+ "amazon_pay",
25
+ "afterpay_clearpay",
26
+ ]
@@ -5,7 +5,9 @@ from __future__ import annotations
5
5
  from typing import Iterable, Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
- __all__ = ["SubscriptionChangePlanParams", "Addon"]
8
+ from .attach_addon_param import AttachAddonParam
9
+
10
+ __all__ = ["SubscriptionChangePlanParams"]
9
11
 
10
12
 
11
13
  class SubscriptionChangePlanParams(TypedDict, total=False):
@@ -18,14 +20,8 @@ class SubscriptionChangePlanParams(TypedDict, total=False):
18
20
  quantity: Required[int]
19
21
  """Number of units to subscribe for. Must be at least 1."""
20
22
 
21
- addons: Optional[Iterable[Addon]]
23
+ addons: Optional[Iterable[AttachAddonParam]]
22
24
  """
23
25
  Addons for the new plan. Note : Leaving this empty would remove any existing
24
26
  addons
25
27
  """
26
-
27
-
28
- class Addon(TypedDict, total=False):
29
- addon_id: Required[str]
30
-
31
- quantity: Required[int]
@@ -36,3 +36,9 @@ class SubscriptionChargeParams(TypedDict, total=False):
36
36
 
37
37
  If not specified, defaults to the currency of the product.
38
38
  """
39
+
40
+ product_description: Optional[str]
41
+ """
42
+ Optional product description override for billing and line items. If not
43
+ specified, the stored description of the product will be used.
44
+ """
@@ -3,13 +3,15 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Dict, List, Iterable, Optional
6
- from typing_extensions import Literal, Required, TypedDict
6
+ from typing_extensions import Required, TypedDict
7
7
 
8
8
  from .currency import Currency
9
+ from .attach_addon_param import AttachAddonParam
10
+ from .payment_method_types import PaymentMethodTypes
9
11
  from .billing_address_param import BillingAddressParam
10
12
  from .customer_request_param import CustomerRequestParam
11
13
 
12
- __all__ = ["SubscriptionCreateParams", "Addon", "OnDemand"]
14
+ __all__ = ["SubscriptionCreateParams", "OnDemand"]
13
15
 
14
16
 
15
17
  class SubscriptionCreateParams(TypedDict, total=False):
@@ -25,33 +27,10 @@ class SubscriptionCreateParams(TypedDict, total=False):
25
27
  quantity: Required[int]
26
28
  """Number of units to subscribe for. Must be at least 1."""
27
29
 
28
- addons: Optional[Iterable[Addon]]
30
+ addons: Optional[Iterable[AttachAddonParam]]
29
31
  """Attach addons to this subscription"""
30
32
 
31
- allowed_payment_method_types: Optional[
32
- List[
33
- Literal[
34
- "credit",
35
- "debit",
36
- "upi_collect",
37
- "upi_intent",
38
- "apple_pay",
39
- "cashapp",
40
- "google_pay",
41
- "multibanco",
42
- "bancontact_card",
43
- "eps",
44
- "ideal",
45
- "przelewy24",
46
- "affirm",
47
- "klarna",
48
- "sepa",
49
- "ach",
50
- "amazon_pay",
51
- "afterpay_clearpay",
52
- ]
53
- ]
54
- ]
33
+ allowed_payment_method_types: Optional[List[PaymentMethodTypes]]
55
34
  """List of payment methods allowed during checkout.
56
35
 
57
36
  Customers will **never** see payment methods that are **not** in this list.
@@ -96,12 +75,6 @@ class SubscriptionCreateParams(TypedDict, total=False):
96
75
  """
97
76
 
98
77
 
99
- class Addon(TypedDict, total=False):
100
- addon_id: Required[str]
101
-
102
- quantity: Required[int]
103
-
104
-
105
78
  class OnDemand(TypedDict, total=False):
106
79
  mandate_only: Required[bool]
107
80
  """
@@ -122,6 +95,12 @@ class OnDemand(TypedDict, total=False):
122
95
  If not specified, defaults to the currency of the product.
123
96
  """
124
97
 
98
+ product_description: Optional[str]
99
+ """
100
+ Optional product description override for billing and line items. If not
101
+ specified, the stored description of the product will be used.
102
+ """
103
+
125
104
  product_price: Optional[int]
126
105
  """
127
106
  Product price for the initial charge to customer If not specified the stored
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dodopayments
3
- Version: 1.39.0
3
+ Version: 1.43.0
4
4
  Summary: The official Python library for the Dodo Payments API
5
5
  Project-URL: Homepage, https://github.com/dodopayments/dodopayments-python
6
6
  Project-URL: Repository, https://github.com/dodopayments/dodopayments-python
@@ -5,13 +5,13 @@ dodopayments/_compat.py,sha256=VWemUKbj6DDkQ-O4baSpHVLJafotzeXmCQGJugfVTIw,6580
5
5
  dodopayments/_constants.py,sha256=S14PFzyN9-I31wiV7SmIlL5Ga0MLHxdvegInGdXH7tM,462
6
6
  dodopayments/_exceptions.py,sha256=NgI0bxilB8xXOfjBWCzr-Y7t1aIJGMqCQRXvSyy29cM,3232
7
7
  dodopayments/_files.py,sha256=mf4dOgL4b0ryyZlbqLhggD3GVgDf6XxdGFAgce01ugE,3549
8
- dodopayments/_models.py,sha256=viD5E6aDMhxslcFHDYvkHaKzE8YLcNmsPsMe8STixvs,29294
8
+ dodopayments/_models.py,sha256=KvjsMfb88XZlFUKVoOxr8OyDj47MhoH2OKqWNEbBhk4,30010
9
9
  dodopayments/_qs.py,sha256=AOkSz4rHtK4YI3ZU_kzea-zpwBUgEY8WniGmTPyEimc,4846
10
10
  dodopayments/_resource.py,sha256=Jfh17Q3kKzAhO-dlfIwYlueN9t1edaaY_vmnC9vErpA,1136
11
11
  dodopayments/_response.py,sha256=PDvrSN3E3IkXVw2GvyOCTNB8ch0Xn9yaWQz4w1nHZEQ,28854
12
12
  dodopayments/_streaming.py,sha256=U4D6MhotaUaGaHz32lBt0XM98IOPIpPbKHUfbb0HGCk,10124
13
13
  dodopayments/_types.py,sha256=gP0yR7AIegimhmZ6rYIjSHFCr9YWzvh-jZabbVcgtio,6203
14
- dodopayments/_version.py,sha256=HUd-HpPpVlOZ71OaqZA-vSBvGh3k01m-Mx3NlyeGE6E,165
14
+ dodopayments/_version.py,sha256=aZ0PRVNWVJex9uek6oSZbMnXvrtzMMtdU0sf3AZUlk8,165
15
15
  dodopayments/pagination.py,sha256=WYDrAWHvGL58Fe6X2yYZyYTAFvzWOR63JAsKURk2ti4,1308
16
16
  dodopayments/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  dodopayments/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
@@ -27,17 +27,17 @@ dodopayments/_utils/_utils.py,sha256=ts4CiiuNpFiGB6YMdkQRh2SZvYvsl7mAF-JWHCcLDf4
27
27
  dodopayments/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
28
28
  dodopayments/resources/__init__.py,sha256=slKzesz4GxU0aA1gYESOGCrpFtLYX_maRsoT6RK425M,7930
29
29
  dodopayments/resources/addons.py,sha256=apKpyfdtajQNxSKUnj-tkFB-6Xgj7kMnpQ8q_1LbcB4,21902
30
- dodopayments/resources/brands.py,sha256=oUFCJoBNjLl_uFZ5_5Nhk8e6spwKlnh0UTGntvmvXOg,19120
30
+ dodopayments/resources/brands.py,sha256=EH0Meg4duOJO9ZSvzv4IxBazA7OrdS6_gdOOJkQMSGo,18786
31
31
  dodopayments/resources/discounts.py,sha256=2f2QTIlTufEuDLRmniS9ieB5vcuXQ8wB1nlLxhVyeTw,25206
32
- dodopayments/resources/disputes.py,sha256=0W6Z_A5pQHdV8hplIdpriP5wMsj1j7umrQ4W-kEAN3g,12342
32
+ dodopayments/resources/disputes.py,sha256=pnRGAyvRvQdXntqq8PTnCxpaFjKRkukbq7CzlRkG-kg,12263
33
33
  dodopayments/resources/license_key_instances.py,sha256=oCgJ-D6JVP_Fte_IjRHnykqhAynN6rDJphrkg6hyxjE,14082
34
34
  dodopayments/resources/license_keys.py,sha256=N4CKnjzEx3JoAmGZ72hU30ENVT5NegGwvP-ILaTu04U,15838
35
35
  dodopayments/resources/licenses.py,sha256=S7cNB9k82pJBiHfdRjmNdvEfDaYUGNUigLBJPgUyg-E,13150
36
36
  dodopayments/resources/misc.py,sha256=BRPUna3lLIrJ-gMGOOQL1-xYx_oMwVDzKL4d498C7pI,5081
37
- dodopayments/resources/payments.py,sha256=avEt18R5HifFiI-xaNzYKBBiMsfxC_Px9PeRpq2lehY,25767
37
+ dodopayments/resources/payments.py,sha256=8VNZCDvtjjUyj_yETzF-nx19gqWzfca9Za5zb2dwfMA,24533
38
38
  dodopayments/resources/payouts.py,sha256=llIbNwI3vQZYf2HsgYL5Irfl6BBoQc1g4aLPWwY09Uo,6926
39
39
  dodopayments/resources/refunds.py,sha256=BS9PcxZhEmBZveZTRo4__WmgVwKpqEEHQDp7tuMh7tQ,15045
40
- dodopayments/resources/subscriptions.py,sha256=DoOZK7asqgNqiuvbaX5Kc2sHwR7NnqIUub1BqSHl0Po,39036
40
+ dodopayments/resources/subscriptions.py,sha256=eLCIUjf7I0utZ3mHYcSIDZVWPAjDtu9Bh-E27lW7GM4,38410
41
41
  dodopayments/resources/webhook_events.py,sha256=4pzAMk5TDzkMZv-9tGAevDpsh62XKqb5nOqwI27y6HQ,12803
42
42
  dodopayments/resources/customers/__init__.py,sha256=RIP1WYqO_PIq9b57tDaJWf9zIRxG_iFeFkOVhe3apAo,1146
43
43
  dodopayments/resources/customers/customer_portal.py,sha256=f74AYBYOb0yIffh4jLmIB3igrcfaHnCS0oAbACmGlyA,6961
@@ -48,23 +48,22 @@ dodopayments/resources/invoices/payments.py,sha256=Kq32Cpzca3YuPdk8XjmF6wkRi6_BQ
48
48
  dodopayments/resources/products/__init__.py,sha256=GKmDlI7Pw4UnnCRlnhb5WBh2Y3UYhqme7RqC35aztGo,1028
49
49
  dodopayments/resources/products/images.py,sha256=7pl2ZFMB3Y_ltwAOiyC0tif31tAXSf_MkQ8-kjrlrKE,6339
50
50
  dodopayments/resources/products/products.py,sha256=0KRYNbqODjfokZAJvuGNWuSd-t1qG3jK_qoc3Gv5FOM,38376
51
- dodopayments/types/__init__.py,sha256=IfA5zOkp2DqC6ZTT8MygnY0XqLkLo4u3p1juGm9VOWc,6989
51
+ dodopayments/types/__init__.py,sha256=x0ddabpf1TCrO86P0k7KxugttWvm9N9BTzha13MrSWs,6887
52
52
  dodopayments/types/addon_cart_response_item.py,sha256=R-I8Zd2HJKn0DmXmv6Oyu4oo-oEC1-dud0Q6_yqDB7k,235
53
53
  dodopayments/types/addon_create_params.py,sha256=a1bKexuFdJcWUPzvPodeeTjqYvCyOwTdp8b2es2ygx8,695
54
54
  dodopayments/types/addon_list_params.py,sha256=Vwp_bhaf6F4E4Xe2N5YcuaOr9SdyIWK_w-KXB1JwKss,364
55
55
  dodopayments/types/addon_response.py,sha256=7EKoB8AwfGSPlnNEFrL8tZESJXPa5kZcfnNa04H4qXI,907
56
56
  dodopayments/types/addon_update_images_response.py,sha256=uvY0AQkPV83AgVjM9hpCzq0vU91D9sKXVIy3qhZClZ0,238
57
57
  dodopayments/types/addon_update_params.py,sha256=Jhn28L508Db5XpQU9oj_QJ7QAEdTbdpHmrH747ItRHY,840
58
+ dodopayments/types/attach_addon_param.py,sha256=QIPeUUe55ITGgLjQHRig2G9FY_ZkEw8gEu6cdtKO4o8,312
58
59
  dodopayments/types/attach_existing_customer_param.py,sha256=PspDgaJFjw415GT6cpEZ88uSuC2A8HRBECmxIVrcucg,308
59
60
  dodopayments/types/billing_address.py,sha256=YgoZEsmLgfB_84-LR-Q2ooNxgIGtauygng-_aKWvnPk,540
60
61
  dodopayments/types/billing_address_param.py,sha256=ijSnP1vOX-aDUnIZPxew0Gt7mTV7aXuxFBqjuK-uZ2I,668
62
+ dodopayments/types/brand.py,sha256=llRzQrCrBXHn0-d1MeE4Jg98pcIvyNsTBLMCIrBB5Is,709
61
63
  dodopayments/types/brand_create_params.py,sha256=13_JT-ln66wgbGLhFrWyzaM9-FG3-fPRrhJnJ4CyZGs,430
62
- dodopayments/types/brand_create_response.py,sha256=uNOLtPbUngAMGBg-0IUya9GzjZXjVyoQy6NbMDWbxXU,737
63
- dodopayments/types/brand_list_response.py,sha256=2FcNAvk2iUSlawYAJfe8s27qJIt1yVjpBAPuVru7xEI,837
64
- dodopayments/types/brand_retrieve_response.py,sha256=rHtzcHbijnIQR9BzBG_7Sf4l1_-3NqLNOON2Uy4DNQc,741
64
+ dodopayments/types/brand_list_response.py,sha256=UTjYrMm32TaMtVR61jWJMCi2-JKY0FHJjhctYOtzDNk,306
65
65
  dodopayments/types/brand_update_images_response.py,sha256=QEt_87f6YTRqgN1Wu0NL_zJ96jl6SeUSiBLh8Hpc0pw,350
66
66
  dodopayments/types/brand_update_params.py,sha256=S7qu2_IYkxxBbNuz5G12sujyW9gyte8cxw3jVsm1V4Y,468
67
- dodopayments/types/brand_update_response.py,sha256=lVB90xYjcRxjJ1HvHpq0HWX4HW90-WyprYJA52fGVjg,737
68
67
  dodopayments/types/country_code.py,sha256=aKc-CApHuQUg8xWGKxS2pnYvwUOz7G59qv4H7NOOHEo,2690
69
68
  dodopayments/types/create_new_customer_param.py,sha256=QAl3yonE2iPWRQY3LOPwyjkLqN9lJW6TjgLJGCitG4k,599
70
69
  dodopayments/types/currency.py,sha256=Cv-x2wYCXupjzRgWHgtepd3ANbB6DrygxJVVxLpjEJY,1789
@@ -83,9 +82,9 @@ dodopayments/types/discount_update_params.py,sha256=Uv2gxqZIa0j6jlN3aUfUYSxw6fas
83
82
  dodopayments/types/dispute.py,sha256=RR8uLulYlDRgC4IWlhEIwVweTVnn5Swk_3hLwx2F9t0,1115
84
83
  dodopayments/types/dispute_list_params.py,sha256=px9NuKB4ABAV4jGWs_4dPkpfEToQUQpcEiLzWf4HDHA,1158
85
84
  dodopayments/types/dispute_list_response.py,sha256=-2iimail29OzhGJFXev4_yDlLifMl3zpiNO2nSo5NT8,1058
86
- dodopayments/types/dispute_retrieve_response.py,sha256=sTCfwAN6e_ez3KezAFqSAgAtnITo7FCvXHmvntPNtqc,1358
87
85
  dodopayments/types/dispute_stage.py,sha256=OFaSeVXItONcrIoxGx37qccFVD_dvTeerPJ-d7pPwo8,244
88
86
  dodopayments/types/dispute_status.py,sha256=tBDzobNwCiCmlwT08Y8h3R-IuRPCn_M0IKEpQk-wPXA,363
87
+ dodopayments/types/get_dispute.py,sha256=26tVlqDoddB27yrS4p1Ve5B1OOhdTCe8AYAcVeaOzUg,1332
89
88
  dodopayments/types/intent_status.py,sha256=0aP3OxHiMfZDXQFOOXNbTSZz1vZkLjBFm3ryT0sT4Z8,483
90
89
  dodopayments/types/license_activate_params.py,sha256=LM3_sHiPdco8kuYlKXmSzXu9OyU9okrZW7Drl63GRZU,321
91
90
  dodopayments/types/license_deactivate_params.py,sha256=F6A7vZfdkCsfQi4ibECL3SFzwjjOyr8ZR_RrNRVsCMo,344
@@ -104,10 +103,11 @@ dodopayments/types/misc_list_supported_countries_response.py,sha256=Imr7f0CAjq04
104
103
  dodopayments/types/one_time_product_cart_item.py,sha256=3l7J3KEE-SCXgArN25qKIXbIIu44Q2kxqd7jf73AGto,544
105
104
  dodopayments/types/one_time_product_cart_item_param.py,sha256=JydRYPBnLhON1pCQPRpQzKLaGJTSrDn1IRVCcMK8iAE,633
106
105
  dodopayments/types/payment.py,sha256=UNlKp_uXhFmQtL5_sMvOBgmvNsWz9IVViuzCo-YfA7o,3796
107
- dodopayments/types/payment_create_params.py,sha256=4IseNmBly2xMpKg2HU4ycvM78J1wUFETGo9pv_al3hI,2766
106
+ dodopayments/types/payment_create_params.py,sha256=8Tcvw__GD1LavNJFNOAgMgoDyrca4HNUiPO3qh2WoNw,2263
108
107
  dodopayments/types/payment_create_response.py,sha256=Kx70m87jA_WlNtdkzGN8ArzjmfrPZC0gneeov5gXtrM,1276
109
108
  dodopayments/types/payment_list_params.py,sha256=CH6z3MqKkQsoWzuSnsxxEj60HBrAsUKwQ_9iLm4uZJc,1283
110
109
  dodopayments/types/payment_list_response.py,sha256=I4X52FokitP_OzrR7qQSnIrswyIDOI8E1gu1h4vyDHA,784
110
+ dodopayments/types/payment_method_types.py,sha256=_Kp6SGsquALvZ7WRboxDsTdFhJxtgQtlpOmBtp-bMfM,505
111
111
  dodopayments/types/payment_retrieve_line_items_response.py,sha256=Cxfq-BNHw0AyoLzZ6-5JAcQLkHsKWHg0e0a3yBfzRXU,513
112
112
  dodopayments/types/payout_list_params.py,sha256=xI5mSD5hlbXTSWSw5pMeiMyyTamh4NzVGodmzPGOaK4,366
113
113
  dodopayments/types/payout_list_response.py,sha256=6SDDeP3J2OemGMujl-nsrvpt50evfP2FwX5nM32nAIg,1661
@@ -125,10 +125,10 @@ dodopayments/types/refund_create_params.py,sha256=hua-rUlW_5ZfKaPsh8O06yPgsj0gH7
125
125
  dodopayments/types/refund_list_params.py,sha256=iz4MPgquP4K3AlYPV5_bbt5jHzGFT__RTpGjT4QXnPs,883
126
126
  dodopayments/types/refund_status.py,sha256=ftnBnLvslfMYcUg8t7nEvb6-m5NWyVVnNcgyVu9eZto,243
127
127
  dodopayments/types/subscription.py,sha256=RvYAopmSsBmNAbTLpSFPHJitQGDQbrQQ6cfT0y4fzEk,2762
128
- dodopayments/types/subscription_change_plan_params.py,sha256=7gm16ttHM7URMjTWQIv0CHrk_wuEY3TfsRc16sTrgig,884
129
- dodopayments/types/subscription_charge_params.py,sha256=4waxdE1jsE2PFCcMrR6x07-CRfUFpUOs2Vt7LxSZc34,1102
128
+ dodopayments/types/subscription_change_plan_params.py,sha256=zk1Ux7oJNOIpcaNyT4mHRD5yHcv1pjcPgbk1lUq-2qA,840
129
+ dodopayments/types/subscription_charge_params.py,sha256=b7KPBp8Jv5U0srxqi4AgJbrL1PWkZ6VhDObigAuph0M,1302
130
130
  dodopayments/types/subscription_charge_response.py,sha256=aDFuOKqqQ-_v1szx9oUT89QaeM3nvwrlAExzZhF0O-Q,228
131
- dodopayments/types/subscription_create_params.py,sha256=AcXBbl_2jsNrf5sA7_SOh8PFYgkaiEKxYSlD7kEaKC4,4039
131
+ dodopayments/types/subscription_create_params.py,sha256=PJgyhH0WJmOqIcDdRZ14YBIWwxh05bkfit83BvlHnkg,3691
132
132
  dodopayments/types/subscription_create_response.py,sha256=Equ-ycrO3A3mOVElW6BjoBH8sqc5wwKS8ED9fHvTza0,1372
133
133
  dodopayments/types/subscription_list_params.py,sha256=nNOBUT4N2p6SpXODpuLw05_KU3dln8HkEMI6S6voy3k,975
134
134
  dodopayments/types/subscription_list_response.py,sha256=bL-2inf-DRW7lfrHXxkJFPTIJlkzZFjuCq0bSjj98zc,2628
@@ -145,7 +145,7 @@ dodopayments/types/invoices/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekD
145
145
  dodopayments/types/products/__init__.py,sha256=-W2ETtkni8cZpsC4Eg1aRwuLg1plV1U429JFOR1U4Rw,273
146
146
  dodopayments/types/products/image_update_params.py,sha256=xyF5fRudD8wct8KKx6wc8F7bbMzVBQPOMKnX5bTiRDQ,270
147
147
  dodopayments/types/products/image_update_response.py,sha256=TcJyXjoJlONpwwR6yZdIuBTu2VNyLRZFELfstD9_V-o,273
148
- dodopayments-1.39.0.dist-info/METADATA,sha256=LnGQmcnYtLr1H_YElIecpfJHwMbN84sIvGfQhTbo7xE,18832
149
- dodopayments-1.39.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
150
- dodopayments-1.39.0.dist-info/licenses/LICENSE,sha256=3_sqrBb5J3AT3FsjMKEOBRZhweWVsl_s_RjFlclm1vQ,11343
151
- dodopayments-1.39.0.dist-info/RECORD,,
148
+ dodopayments-1.43.0.dist-info/METADATA,sha256=fCsQuVMmxUq-NsX3m8Bl6hqrhafDyI3M1zuuOM_CNvA,18832
149
+ dodopayments-1.43.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
150
+ dodopayments-1.43.0.dist-info/licenses/LICENSE,sha256=3_sqrBb5J3AT3FsjMKEOBRZhweWVsl_s_RjFlclm1vQ,11343
151
+ dodopayments-1.43.0.dist-info/RECORD,,
@@ -1,35 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import Optional
4
- from typing_extensions import Literal
5
-
6
- from .._models import BaseModel
7
-
8
- __all__ = ["BrandRetrieveResponse"]
9
-
10
-
11
- class BrandRetrieveResponse(BaseModel):
12
- brand_id: str
13
-
14
- business_id: str
15
-
16
- enabled: bool
17
-
18
- statement_descriptor: str
19
-
20
- verification_enabled: bool
21
-
22
- verification_status: Literal["Success", "Fail", "Review", "Hold"]
23
-
24
- description: Optional[str] = None
25
-
26
- image: Optional[str] = None
27
-
28
- name: Optional[str] = None
29
-
30
- reason_for_hold: Optional[str] = None
31
- """Incase the brand verification fails or is put on hold"""
32
-
33
- support_email: Optional[str] = None
34
-
35
- url: Optional[str] = None
@@ -1,35 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import Optional
4
- from typing_extensions import Literal
5
-
6
- from .._models import BaseModel
7
-
8
- __all__ = ["BrandUpdateResponse"]
9
-
10
-
11
- class BrandUpdateResponse(BaseModel):
12
- brand_id: str
13
-
14
- business_id: str
15
-
16
- enabled: bool
17
-
18
- statement_descriptor: str
19
-
20
- verification_enabled: bool
21
-
22
- verification_status: Literal["Success", "Fail", "Review", "Hold"]
23
-
24
- description: Optional[str] = None
25
-
26
- image: Optional[str] = None
27
-
28
- name: Optional[str] = None
29
-
30
- reason_for_hold: Optional[str] = None
31
- """Incase the brand verification fails or is put on hold"""
32
-
33
- support_email: Optional[str] = None
34
-
35
- url: Optional[str] = None