paddle-python-sdk 0.1.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.
Files changed (517) hide show
  1. examples/__init__.py +0 -0
  2. examples/catalog_management.py +166 -0
  3. examples/event_polling.py +56 -0
  4. examples/get_products.py +46 -0
  5. examples/logger.py +31 -0
  6. paddle_billing/Client.py +201 -0
  7. paddle_billing/ConditionallyRemoveImportMeta.py +14 -0
  8. paddle_billing/Entities/Address.py +44 -0
  9. paddle_billing/Entities/Adjustment.py +45 -0
  10. paddle_billing/Entities/Adjustments/AdjustmentCustomerBalance.py +18 -0
  11. paddle_billing/Entities/Adjustments/AdjustmentItem.py +26 -0
  12. paddle_billing/Entities/Adjustments/__init__.py +2 -0
  13. paddle_billing/Entities/Business.py +38 -0
  14. paddle_billing/Entities/Collections/AddressCollection.py +18 -0
  15. paddle_billing/Entities/Collections/AdjustmentCollection.py +18 -0
  16. paddle_billing/Entities/Collections/BusinessCollection.py +18 -0
  17. paddle_billing/Entities/Collections/Collection.py +47 -0
  18. paddle_billing/Entities/Collections/CreditBalanceCollection.py +18 -0
  19. paddle_billing/Entities/Collections/CustomerCollection.py +18 -0
  20. paddle_billing/Entities/Collections/DiscountCollection.py +18 -0
  21. paddle_billing/Entities/Collections/EventCollection.py +18 -0
  22. paddle_billing/Entities/Collections/EventTypeCollection.py +18 -0
  23. paddle_billing/Entities/Collections/NotificationCollection.py +18 -0
  24. paddle_billing/Entities/Collections/NotificationLogCollection.py +18 -0
  25. paddle_billing/Entities/Collections/NotificationSettingCollection.py +18 -0
  26. paddle_billing/Entities/Collections/Paginator.py +29 -0
  27. paddle_billing/Entities/Collections/PriceCollection.py +18 -0
  28. paddle_billing/Entities/Collections/ProductCollection.py +18 -0
  29. paddle_billing/Entities/Collections/ReportCollection.py +18 -0
  30. paddle_billing/Entities/Collections/SubscriptionCollection.py +18 -0
  31. paddle_billing/Entities/Collections/SubscriptionPreviewCollection.py +18 -0
  32. paddle_billing/Entities/Collections/TransactionCollection.py +18 -0
  33. paddle_billing/Entities/Collections/TransactionPreviewCollection.py +18 -0
  34. paddle_billing/Entities/Collections/TransactionsDataCollection.py +18 -0
  35. paddle_billing/Entities/Collections/__init__.py +21 -0
  36. paddle_billing/Entities/CreditBalance.py +22 -0
  37. paddle_billing/Entities/Customer.py +36 -0
  38. paddle_billing/Entities/DateTime.py +43 -0
  39. paddle_billing/Entities/Discount.py +51 -0
  40. paddle_billing/Entities/Discounts/DiscountStatus.py +8 -0
  41. paddle_billing/Entities/Discounts/DiscountType.py +7 -0
  42. paddle_billing/Entities/Discounts/__init__.py +2 -0
  43. paddle_billing/Entities/Entity.py +12 -0
  44. paddle_billing/Entities/Event.py +51 -0
  45. paddle_billing/Entities/EventType.py +23 -0
  46. paddle_billing/Entities/Events/EventTypeName.py +52 -0
  47. paddle_billing/Entities/Events/__init__.py +1 -0
  48. paddle_billing/Entities/Notification.py +42 -0
  49. paddle_billing/Entities/NotificationLog.py +25 -0
  50. paddle_billing/Entities/NotificationSetting.py +34 -0
  51. paddle_billing/Entities/NotificationSettings/NotificationSettingType.py +6 -0
  52. paddle_billing/Entities/NotificationSettings/__init__.py +1 -0
  53. paddle_billing/Entities/Notifications/NotificationOrigin.py +6 -0
  54. paddle_billing/Entities/Notifications/NotificationPayout.py +24 -0
  55. paddle_billing/Entities/Notifications/NotificationPayoutStatus.py +6 -0
  56. paddle_billing/Entities/Notifications/NotificationStatus.py +8 -0
  57. paddle_billing/Entities/Notifications/__init__.py +4 -0
  58. paddle_billing/Entities/Price.py +68 -0
  59. paddle_billing/Entities/PricePreview.py +34 -0
  60. paddle_billing/Entities/PricingPreviews/PricePreviewDetails.py +15 -0
  61. paddle_billing/Entities/PricingPreviews/PricePreviewDiscounts.py +20 -0
  62. paddle_billing/Entities/PricingPreviews/PricePreviewItem.py +16 -0
  63. paddle_billing/Entities/PricingPreviews/PricePreviewLineItem.py +38 -0
  64. paddle_billing/Entities/PricingPreviews/PricePreviewTotalsFormatted.py +20 -0
  65. paddle_billing/Entities/PricingPreviews/PricePreviewUnitTotalsFormatted.py +20 -0
  66. paddle_billing/Entities/PricingPreviews/__init__.py +6 -0
  67. paddle_billing/Entities/Product.py +45 -0
  68. paddle_billing/Entities/Report.py +32 -0
  69. paddle_billing/Entities/ReportCSV.py +13 -0
  70. paddle_billing/Entities/Reports/ReportFilter.py +20 -0
  71. paddle_billing/Entities/Reports/ReportFilterName.py +17 -0
  72. paddle_billing/Entities/Reports/ReportFilterOperator.py +6 -0
  73. paddle_billing/Entities/Reports/ReportStatus.py +8 -0
  74. paddle_billing/Entities/Reports/ReportType.py +10 -0
  75. paddle_billing/Entities/Reports/__init__.py +5 -0
  76. paddle_billing/Entities/Shared/Action.py +10 -0
  77. paddle_billing/Entities/Shared/AddressPreview.py +18 -0
  78. paddle_billing/Entities/Shared/AdjustmentItemTotals.py +18 -0
  79. paddle_billing/Entities/Shared/AdjustmentProration.py +18 -0
  80. paddle_billing/Entities/Shared/AdjustmentStatus.py +8 -0
  81. paddle_billing/Entities/Shared/AdjustmentTimePeriod.py +17 -0
  82. paddle_billing/Entities/Shared/AdjustmentTotals.py +26 -0
  83. paddle_billing/Entities/Shared/AdjustmentType.py +8 -0
  84. paddle_billing/Entities/Shared/AvailablePaymentMethods.py +11 -0
  85. paddle_billing/Entities/Shared/BillingDetails.py +22 -0
  86. paddle_billing/Entities/Shared/BillingDetailsUpdate.py +22 -0
  87. paddle_billing/Entities/Shared/Card.py +24 -0
  88. paddle_billing/Entities/Shared/CatalogType.py +6 -0
  89. paddle_billing/Entities/Shared/ChargebackFee.py +18 -0
  90. paddle_billing/Entities/Shared/Checkout.py +12 -0
  91. paddle_billing/Entities/Shared/CollectionMode.py +6 -0
  92. paddle_billing/Entities/Shared/Contacts.py +16 -0
  93. paddle_billing/Entities/Shared/CountryCode.py +233 -0
  94. paddle_billing/Entities/Shared/CurrencyCode.py +34 -0
  95. paddle_billing/Entities/Shared/CurrencyCodeAdjustments.py +7 -0
  96. paddle_billing/Entities/Shared/CurrencyCodePayouts.py +17 -0
  97. paddle_billing/Entities/Shared/CustomData.py +10 -0
  98. paddle_billing/Entities/Shared/Data.py +9 -0
  99. paddle_billing/Entities/Shared/ErrorCode.py +21 -0
  100. paddle_billing/Entities/Shared/ImportMeta.py +16 -0
  101. paddle_billing/Entities/Shared/Interval.py +8 -0
  102. paddle_billing/Entities/Shared/Meta.py +7 -0
  103. paddle_billing/Entities/Shared/MetaPaginated.py +18 -0
  104. paddle_billing/Entities/Shared/MethodDetails.py +19 -0
  105. paddle_billing/Entities/Shared/Money.py +28 -0
  106. paddle_billing/Entities/Shared/Original.py +18 -0
  107. paddle_billing/Entities/Shared/Pagination.py +20 -0
  108. paddle_billing/Entities/Shared/PaymentAttemptStatus.py +13 -0
  109. paddle_billing/Entities/Shared/PaymentMethodType.py +14 -0
  110. paddle_billing/Entities/Shared/PayoutTotalsAdjustment.py +29 -0
  111. paddle_billing/Entities/Shared/PriceQuantity.py +16 -0
  112. paddle_billing/Entities/Shared/Status.py +6 -0
  113. paddle_billing/Entities/Shared/TaxCategory.py +13 -0
  114. paddle_billing/Entities/Shared/TaxMode.py +7 -0
  115. paddle_billing/Entities/Shared/TaxRatesUsed.py +18 -0
  116. paddle_billing/Entities/Shared/TimePeriod.py +18 -0
  117. paddle_billing/Entities/Shared/Totals.py +20 -0
  118. paddle_billing/Entities/Shared/TransactionDetailsPreview.py +22 -0
  119. paddle_billing/Entities/Shared/TransactionLineItemPreview.py +28 -0
  120. paddle_billing/Entities/Shared/TransactionOrigin.py +10 -0
  121. paddle_billing/Entities/Shared/TransactionPaymentAttempt.py +35 -0
  122. paddle_billing/Entities/Shared/TransactionPayoutTotals.py +36 -0
  123. paddle_billing/Entities/Shared/TransactionPayoutTotalsAdjusted.py +29 -0
  124. paddle_billing/Entities/Shared/TransactionStatus.py +11 -0
  125. paddle_billing/Entities/Shared/TransactionTotals.py +36 -0
  126. paddle_billing/Entities/Shared/TransactionTotalsAdjusted.py +28 -0
  127. paddle_billing/Entities/Shared/UnitPriceOverride.py +19 -0
  128. paddle_billing/Entities/Shared/UnitTotals.py +20 -0
  129. paddle_billing/Entities/Shared/__init__.py +56 -0
  130. paddle_billing/Entities/Subscription.py +86 -0
  131. paddle_billing/Entities/SubscriptionPreview.py +79 -0
  132. paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py +24 -0
  133. paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentPreview.py +22 -0
  134. paddle_billing/Entities/Subscriptions/SubscriptionCharge.py +18 -0
  135. paddle_billing/Entities/Subscriptions/SubscriptionCredit.py +18 -0
  136. paddle_billing/Entities/Subscriptions/SubscriptionDetails.py +34 -0
  137. paddle_billing/Entities/Subscriptions/SubscriptionDiscount.py +19 -0
  138. paddle_billing/Entities/Subscriptions/SubscriptionEffectiveFrom.py +6 -0
  139. paddle_billing/Entities/Subscriptions/SubscriptionItem.py +35 -0
  140. paddle_billing/Entities/Subscriptions/SubscriptionItemStatus.py +7 -0
  141. paddle_billing/Entities/Subscriptions/SubscriptionItems.py +20 -0
  142. paddle_billing/Entities/Subscriptions/SubscriptionItemsWithPrice.py +19 -0
  143. paddle_billing/Entities/Subscriptions/SubscriptionManagementUrls.py +16 -0
  144. paddle_billing/Entities/Subscriptions/SubscriptionNextTransaction.py +23 -0
  145. paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPrice.py +30 -0
  146. paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPriceWithProduct.py +32 -0
  147. paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogProduct.py +26 -0
  148. paddle_billing/Entities/Subscriptions/SubscriptionOnPaymentFailure.py +6 -0
  149. paddle_billing/Entities/Subscriptions/SubscriptionPreviewSubscriptionUpdateSummary.py +22 -0
  150. paddle_billing/Entities/Subscriptions/SubscriptionPrice.py +28 -0
  151. paddle_billing/Entities/Subscriptions/SubscriptionProration.py +18 -0
  152. paddle_billing/Entities/Subscriptions/SubscriptionProrationBillingMode.py +9 -0
  153. paddle_billing/Entities/Subscriptions/SubscriptionResult.py +22 -0
  154. paddle_billing/Entities/Subscriptions/SubscriptionResultAction.py +6 -0
  155. paddle_billing/Entities/Subscriptions/SubscriptionResumeEffectiveFrom.py +5 -0
  156. paddle_billing/Entities/Subscriptions/SubscriptionScheduledChange.py +21 -0
  157. paddle_billing/Entities/Subscriptions/SubscriptionScheduledChangeAction.py +7 -0
  158. paddle_billing/Entities/Subscriptions/SubscriptionStatus.py +10 -0
  159. paddle_billing/Entities/Subscriptions/SubscriptionTimePeriod.py +17 -0
  160. paddle_billing/Entities/Subscriptions/SubscriptionTransactionItem.py +23 -0
  161. paddle_billing/Entities/Subscriptions/SubscriptionTransactionLineItem.py +33 -0
  162. paddle_billing/Entities/Subscriptions/SubscriptionUpdateItem.py +16 -0
  163. paddle_billing/Entities/Subscriptions/__init__.py +31 -0
  164. paddle_billing/Entities/Transaction.py +98 -0
  165. paddle_billing/Entities/TransactionData.py +15 -0
  166. paddle_billing/Entities/TransactionPreview.py +40 -0
  167. paddle_billing/Entities/Transactions/TransactionAdjustmentsTotals.py +30 -0
  168. paddle_billing/Entities/Transactions/TransactionBreakdown.py +18 -0
  169. paddle_billing/Entities/Transactions/TransactionCardType.py +14 -0
  170. paddle_billing/Entities/Transactions/TransactionCreateItem.py +16 -0
  171. paddle_billing/Entities/Transactions/TransactionCreateItemWithPrice.py +11 -0
  172. paddle_billing/Entities/Transactions/TransactionDetails.py +32 -0
  173. paddle_billing/Entities/Transactions/TransactionItem.py +24 -0
  174. paddle_billing/Entities/Transactions/TransactionItemPreviewWithNonCatalogPrice.py +21 -0
  175. paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py +24 -0
  176. paddle_billing/Entities/Transactions/TransactionItemPreviewWithPriceId.py +18 -0
  177. paddle_billing/Entities/Transactions/TransactionLineItem.py +35 -0
  178. paddle_billing/Entities/Transactions/TransactionNonCatalogPrice.py +39 -0
  179. paddle_billing/Entities/Transactions/TransactionNonCatalogPriceWithProduct.py +41 -0
  180. paddle_billing/Entities/Transactions/TransactionNonCatalogProduct.py +25 -0
  181. paddle_billing/Entities/Transactions/TransactionProration.py +18 -0
  182. paddle_billing/Entities/Transactions/TransactionTimePeriod.py +17 -0
  183. paddle_billing/Entities/Transactions/TransactionUpdateTransactionItem.py +8 -0
  184. paddle_billing/Entities/Transactions/__init__.py +20 -0
  185. paddle_billing/Entities/__init__.py +0 -0
  186. paddle_billing/EnumStringify.py +2 -0
  187. paddle_billing/Environment.py +14 -0
  188. paddle_billing/Exceptions/ApiError.py +28 -0
  189. paddle_billing/Exceptions/ApiErrors/AddressApiError.py +5 -0
  190. paddle_billing/Exceptions/ApiErrors/AdjustmentApiError.py +5 -0
  191. paddle_billing/Exceptions/ApiErrors/BusinessApiError.py +5 -0
  192. paddle_billing/Exceptions/ApiErrors/CustomerApiError.py +5 -0
  193. paddle_billing/Exceptions/ApiErrors/DiscountApiError.py +5 -0
  194. paddle_billing/Exceptions/ApiErrors/PriceApiError.py +5 -0
  195. paddle_billing/Exceptions/ApiErrors/ProductApiError.py +5 -0
  196. paddle_billing/Exceptions/ApiErrors/SubscriptionApiError.py +5 -0
  197. paddle_billing/Exceptions/ApiErrors/TransactionApiError.py +5 -0
  198. paddle_billing/Exceptions/ApiErrors/__init__.py +0 -0
  199. paddle_billing/Exceptions/FieldError.py +8 -0
  200. paddle_billing/Exceptions/SdkException.py +2 -0
  201. paddle_billing/Exceptions/SdkExceptions/InvalidArgumentException.py +8 -0
  202. paddle_billing/Exceptions/SdkExceptions/MalformedResponse.py +7 -0
  203. paddle_billing/Exceptions/SdkExceptions/__init__.py +0 -0
  204. paddle_billing/Exceptions/__init__.py +0 -0
  205. paddle_billing/FiltersNone.py +8 -0
  206. paddle_billing/FiltersUndefined.py +11 -0
  207. paddle_billing/HasParameters.py +11 -0
  208. paddle_billing/Logger/Formatter.py +18 -0
  209. paddle_billing/Logger/NullHandler.py +6 -0
  210. paddle_billing/Logger/__init__.py +30 -0
  211. paddle_billing/Notifications/Entities/Address.py +44 -0
  212. paddle_billing/Notifications/Entities/Adjustment.py +45 -0
  213. paddle_billing/Notifications/Entities/Adjustments/AdjustmentItem.py +26 -0
  214. paddle_billing/Notifications/Entities/Adjustments/__init__.py +1 -0
  215. paddle_billing/Notifications/Entities/Business.py +39 -0
  216. paddle_billing/Notifications/Entities/Businesses/BusinessesContacts.py +16 -0
  217. paddle_billing/Notifications/Entities/Businesses/__init__.py +1 -0
  218. paddle_billing/Notifications/Entities/Customer.py +36 -0
  219. paddle_billing/Notifications/Entities/DateTime.py +43 -0
  220. paddle_billing/Notifications/Entities/Discount.py +51 -0
  221. paddle_billing/Notifications/Entities/Discounts/DiscountStatus.py +8 -0
  222. paddle_billing/Notifications/Entities/Discounts/DiscountType.py +7 -0
  223. paddle_billing/Notifications/Entities/Discounts/__init__.py +2 -0
  224. paddle_billing/Notifications/Entities/Entity.py +12 -0
  225. paddle_billing/Notifications/Entities/Payout.py +24 -0
  226. paddle_billing/Notifications/Entities/Payouts/PayoutStatus.py +6 -0
  227. paddle_billing/Notifications/Entities/Payouts/__init__.py +1 -0
  228. paddle_billing/Notifications/Entities/Price.py +66 -0
  229. paddle_billing/Notifications/Entities/Product.py +45 -0
  230. paddle_billing/Notifications/Entities/Report.py +32 -0
  231. paddle_billing/Notifications/Entities/Reports/ReportFilter.py +20 -0
  232. paddle_billing/Notifications/Entities/Reports/ReportFilterName.py +17 -0
  233. paddle_billing/Notifications/Entities/Reports/ReportFilterOperator.py +6 -0
  234. paddle_billing/Notifications/Entities/Reports/ReportStatus.py +8 -0
  235. paddle_billing/Notifications/Entities/Reports/ReportType.py +10 -0
  236. paddle_billing/Notifications/Entities/Reports/__init__.py +5 -0
  237. paddle_billing/Notifications/Entities/Shared/Action.py +10 -0
  238. paddle_billing/Notifications/Entities/Shared/AddressPreview.py +18 -0
  239. paddle_billing/Notifications/Entities/Shared/AdjustmentItemTotals.py +18 -0
  240. paddle_billing/Notifications/Entities/Shared/AdjustmentProration.py +18 -0
  241. paddle_billing/Notifications/Entities/Shared/AdjustmentStatus.py +8 -0
  242. paddle_billing/Notifications/Entities/Shared/AdjustmentTimePeriod.py +17 -0
  243. paddle_billing/Notifications/Entities/Shared/AdjustmentTotals.py +26 -0
  244. paddle_billing/Notifications/Entities/Shared/AdjustmentType.py +8 -0
  245. paddle_billing/Notifications/Entities/Shared/AvailablePaymentMethods.py +11 -0
  246. paddle_billing/Notifications/Entities/Shared/BillingDetails.py +22 -0
  247. paddle_billing/Notifications/Entities/Shared/Card.py +24 -0
  248. paddle_billing/Notifications/Entities/Shared/CatalogType.py +6 -0
  249. paddle_billing/Notifications/Entities/Shared/ChargebackFee.py +18 -0
  250. paddle_billing/Notifications/Entities/Shared/Checkout.py +12 -0
  251. paddle_billing/Notifications/Entities/Shared/CollectionMode.py +6 -0
  252. paddle_billing/Notifications/Entities/Shared/CountryCode.py +233 -0
  253. paddle_billing/Notifications/Entities/Shared/CurrencyCode.py +34 -0
  254. paddle_billing/Notifications/Entities/Shared/CurrencyCodeAdjustments.py +7 -0
  255. paddle_billing/Notifications/Entities/Shared/CurrencyCodePayouts.py +17 -0
  256. paddle_billing/Notifications/Entities/Shared/CustomData.py +10 -0
  257. paddle_billing/Notifications/Entities/Shared/Data.py +9 -0
  258. paddle_billing/Notifications/Entities/Shared/ErrorCode.py +21 -0
  259. paddle_billing/Notifications/Entities/Shared/ImportMeta.py +16 -0
  260. paddle_billing/Notifications/Entities/Shared/Interval.py +8 -0
  261. paddle_billing/Notifications/Entities/Shared/MethodDetails.py +19 -0
  262. paddle_billing/Notifications/Entities/Shared/Money.py +28 -0
  263. paddle_billing/Notifications/Entities/Shared/Original.py +18 -0
  264. paddle_billing/Notifications/Entities/Shared/PaymentAttemptStatus.py +13 -0
  265. paddle_billing/Notifications/Entities/Shared/PaymentMethodType.py +15 -0
  266. paddle_billing/Notifications/Entities/Shared/PayoutTotalsAdjustment.py +29 -0
  267. paddle_billing/Notifications/Entities/Shared/PriceQuantity.py +16 -0
  268. paddle_billing/Notifications/Entities/Shared/Status.py +6 -0
  269. paddle_billing/Notifications/Entities/Shared/TaxCategory.py +13 -0
  270. paddle_billing/Notifications/Entities/Shared/TaxMode.py +7 -0
  271. paddle_billing/Notifications/Entities/Shared/TaxRatesUsed.py +18 -0
  272. paddle_billing/Notifications/Entities/Shared/TimePeriod.py +18 -0
  273. paddle_billing/Notifications/Entities/Shared/Totals.py +20 -0
  274. paddle_billing/Notifications/Entities/Shared/TransactionOrigin.py +10 -0
  275. paddle_billing/Notifications/Entities/Shared/TransactionPaymentAttempt.py +35 -0
  276. paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotals.py +36 -0
  277. paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotalsAdjusted.py +29 -0
  278. paddle_billing/Notifications/Entities/Shared/TransactionStatus.py +11 -0
  279. paddle_billing/Notifications/Entities/Shared/TransactionTotals.py +36 -0
  280. paddle_billing/Notifications/Entities/Shared/TransactionTotalsAdjusted.py +28 -0
  281. paddle_billing/Notifications/Entities/Shared/UnitPriceOverride.py +19 -0
  282. paddle_billing/Notifications/Entities/Shared/UnitTotals.py +20 -0
  283. paddle_billing/Notifications/Entities/Shared/__init__.py +46 -0
  284. paddle_billing/Notifications/Entities/Subscription.py +76 -0
  285. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionAdjustmentItem.py +24 -0
  286. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCharge.py +18 -0
  287. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCredit.py +18 -0
  288. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionDiscount.py +19 -0
  289. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionEffectiveFrom.py +6 -0
  290. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItem.py +35 -0
  291. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItemStatus.py +7 -0
  292. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionOnPaymentFailure.py +6 -0
  293. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionPrice.py +28 -0
  294. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChange.py +21 -0
  295. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChangeAction.py +7 -0
  296. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionStatus.py +10 -0
  297. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionTimePeriod.py +17 -0
  298. paddle_billing/Notifications/Entities/Subscriptions/__init__.py +13 -0
  299. paddle_billing/Notifications/Entities/Transaction.py +75 -0
  300. paddle_billing/Notifications/Entities/Transactions/TransactionAdjustmentsTotals.py +30 -0
  301. paddle_billing/Notifications/Entities/Transactions/TransactionBreakdown.py +18 -0
  302. paddle_billing/Notifications/Entities/Transactions/TransactionCardType.py +14 -0
  303. paddle_billing/Notifications/Entities/Transactions/TransactionDetails.py +32 -0
  304. paddle_billing/Notifications/Entities/Transactions/TransactionItem.py +24 -0
  305. paddle_billing/Notifications/Entities/Transactions/TransactionLineItem.py +35 -0
  306. paddle_billing/Notifications/Entities/Transactions/TransactionProration.py +18 -0
  307. paddle_billing/Notifications/Entities/Transactions/TransactionTimePeriod.py +17 -0
  308. paddle_billing/Notifications/Entities/Transactions/__init__.py +11 -0
  309. paddle_billing/Notifications/Entities/__init__.py +0 -0
  310. paddle_billing/Notifications/Events/AddressCreated.py +17 -0
  311. paddle_billing/Notifications/Events/AddressUpdated.py +17 -0
  312. paddle_billing/Notifications/Events/AdjustmentCreated.py +17 -0
  313. paddle_billing/Notifications/Events/AdjustmentUpdated.py +17 -0
  314. paddle_billing/Notifications/Events/BusinessCreated.py +17 -0
  315. paddle_billing/Notifications/Events/BusinessUpdated.py +17 -0
  316. paddle_billing/Notifications/Events/CustomerCreated.py +17 -0
  317. paddle_billing/Notifications/Events/CustomerUpdated.py +17 -0
  318. paddle_billing/Notifications/Events/DiscountCreated.py +17 -0
  319. paddle_billing/Notifications/Events/DiscountImported.py +17 -0
  320. paddle_billing/Notifications/Events/DiscountUpdated.py +17 -0
  321. paddle_billing/Notifications/Events/PayoutCreated.py +17 -0
  322. paddle_billing/Notifications/Events/PayoutPaid.py +17 -0
  323. paddle_billing/Notifications/Events/PriceCreated.py +17 -0
  324. paddle_billing/Notifications/Events/PriceUpdated.py +17 -0
  325. paddle_billing/Notifications/Events/ProductCreated.py +17 -0
  326. paddle_billing/Notifications/Events/ProductUpdated.py +17 -0
  327. paddle_billing/Notifications/Events/ReportCreated.py +17 -0
  328. paddle_billing/Notifications/Events/ReportUpdated.py +17 -0
  329. paddle_billing/Notifications/Events/SubscriptionActivated.py +17 -0
  330. paddle_billing/Notifications/Events/SubscriptionCanceled.py +17 -0
  331. paddle_billing/Notifications/Events/SubscriptionCreated.py +17 -0
  332. paddle_billing/Notifications/Events/SubscriptionImported.py +17 -0
  333. paddle_billing/Notifications/Events/SubscriptionPastDue.py +17 -0
  334. paddle_billing/Notifications/Events/SubscriptionPaused.py +17 -0
  335. paddle_billing/Notifications/Events/SubscriptionResumed.py +17 -0
  336. paddle_billing/Notifications/Events/SubscriptionTrialing.py +17 -0
  337. paddle_billing/Notifications/Events/SubscriptionUpdated.py +17 -0
  338. paddle_billing/Notifications/Events/TransactionBilled.py +17 -0
  339. paddle_billing/Notifications/Events/TransactionCanceled.py +17 -0
  340. paddle_billing/Notifications/Events/TransactionCompleted.py +16 -0
  341. paddle_billing/Notifications/Events/TransactionCreated.py +17 -0
  342. paddle_billing/Notifications/Events/TransactionPaid.py +17 -0
  343. paddle_billing/Notifications/Events/TransactionPastDue.py +17 -0
  344. paddle_billing/Notifications/Events/TransactionPaymentFailed.py +17 -0
  345. paddle_billing/Notifications/Events/TransactionReady.py +17 -0
  346. paddle_billing/Notifications/Events/TransactionUpdated.py +17 -0
  347. paddle_billing/Notifications/Events/__init__.py +0 -0
  348. paddle_billing/Notifications/PaddleSignature.py +128 -0
  349. paddle_billing/Notifications/Secret.py +8 -0
  350. paddle_billing/Notifications/Verifier.py +55 -0
  351. paddle_billing/Notifications/__init__.py +3 -0
  352. paddle_billing/Options.py +10 -0
  353. paddle_billing/PaddleStrEnum.py +44 -0
  354. paddle_billing/RecursivelyRemoveKey.py +14 -0
  355. paddle_billing/Resources/Addresses/AddressesClient.py +58 -0
  356. paddle_billing/Resources/Addresses/Operations/CreateAddress.py +20 -0
  357. paddle_billing/Resources/Addresses/Operations/ListAddresses.py +42 -0
  358. paddle_billing/Resources/Addresses/Operations/UpdateAddress.py +21 -0
  359. paddle_billing/Resources/Addresses/Operations/__init__.py +3 -0
  360. paddle_billing/Resources/Addresses/__init__.py +0 -0
  361. paddle_billing/Resources/Adjustments/AdjustmentsClient.py +36 -0
  362. paddle_billing/Resources/Adjustments/Operations/Create/AdjustmentItem.py +11 -0
  363. paddle_billing/Resources/Adjustments/Operations/Create/__init__.py +0 -0
  364. paddle_billing/Resources/Adjustments/Operations/CreateAdjustment.py +28 -0
  365. paddle_billing/Resources/Adjustments/Operations/ListAdjustments.py +60 -0
  366. paddle_billing/Resources/Adjustments/Operations/__init__.py +3 -0
  367. paddle_billing/Resources/Adjustments/__init__.py +0 -0
  368. paddle_billing/Resources/Businesses/BusinessesClient.py +58 -0
  369. paddle_billing/Resources/Businesses/Operations/CreateBusiness.py +17 -0
  370. paddle_billing/Resources/Businesses/Operations/ListBusinesses.py +45 -0
  371. paddle_billing/Resources/Businesses/Operations/UpdateBusiness.py +18 -0
  372. paddle_billing/Resources/Businesses/Operations/__init__.py +3 -0
  373. paddle_billing/Resources/Businesses/__init__.py +0 -0
  374. paddle_billing/Resources/Customers/CustomersClient.py +65 -0
  375. paddle_billing/Resources/Customers/Operations/CreateCustomer.py +16 -0
  376. paddle_billing/Resources/Customers/Operations/ListCreditBalances.py +28 -0
  377. paddle_billing/Resources/Customers/Operations/ListCustomers.py +50 -0
  378. paddle_billing/Resources/Customers/Operations/UpdateCustomer.py +17 -0
  379. paddle_billing/Resources/Customers/Operations/__init__.py +4 -0
  380. paddle_billing/Resources/Customers/__init__.py +0 -0
  381. paddle_billing/Resources/Discounts/DiscountsClient.py +55 -0
  382. paddle_billing/Resources/Discounts/Operations/CreateDiscount.py +24 -0
  383. paddle_billing/Resources/Discounts/Operations/ListDiscounts.py +46 -0
  384. paddle_billing/Resources/Discounts/Operations/UpdateDiscount.py +25 -0
  385. paddle_billing/Resources/Discounts/Operations/__init__.py +3 -0
  386. paddle_billing/Resources/Discounts/__init__.py +0 -0
  387. paddle_billing/Resources/EventTypes/EventTypesClient.py +22 -0
  388. paddle_billing/Resources/EventTypes/__init__.py +0 -0
  389. paddle_billing/Resources/Events/EventsClient.py +26 -0
  390. paddle_billing/Resources/Events/Operations/ListEvents.py +12 -0
  391. paddle_billing/Resources/Events/Operations/__init__.py +1 -0
  392. paddle_billing/Resources/Events/__init__.py +0 -0
  393. paddle_billing/Resources/NotificationLogs/NotificationLogsClient.py +26 -0
  394. paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py +11 -0
  395. paddle_billing/Resources/NotificationLogs/Operations/__init__.py +1 -0
  396. paddle_billing/Resources/NotificationLogs/__init__.py +0 -0
  397. paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py +54 -0
  398. paddle_billing/Resources/NotificationSettings/Operations/CreateNotificationSetting.py +21 -0
  399. paddle_billing/Resources/NotificationSettings/Operations/UpdateNotificationSetting.py +20 -0
  400. paddle_billing/Resources/NotificationSettings/Operations/__init__.py +2 -0
  401. paddle_billing/Resources/NotificationSettings/__init__.py +0 -0
  402. paddle_billing/Resources/Notifications/NotificationsClient.py +44 -0
  403. paddle_billing/Resources/Notifications/Operations/ListNotifications.py +58 -0
  404. paddle_billing/Resources/Notifications/Operations/__init__.py +1 -0
  405. paddle_billing/Resources/Notifications/__init__.py +0 -0
  406. paddle_billing/Resources/Prices/Operations/CreatePrice.py +23 -0
  407. paddle_billing/Resources/Prices/Operations/List/Includes.py +5 -0
  408. paddle_billing/Resources/Prices/Operations/List/__init__.py +0 -0
  409. paddle_billing/Resources/Prices/Operations/ListPrices.py +62 -0
  410. paddle_billing/Resources/Prices/Operations/UpdatePrice.py +23 -0
  411. paddle_billing/Resources/Prices/Operations/__init__.py +4 -0
  412. paddle_billing/Resources/Prices/PricesClient.py +65 -0
  413. paddle_billing/Resources/Prices/__init__.py +0 -0
  414. paddle_billing/Resources/PricingPreviews/Operations/PreviewPrice.py +20 -0
  415. paddle_billing/Resources/PricingPreviews/Operations/__init__.py +1 -0
  416. paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py +20 -0
  417. paddle_billing/Resources/PricingPreviews/__init__.py +0 -0
  418. paddle_billing/Resources/Products/Operations/CreateProduct.py +18 -0
  419. paddle_billing/Resources/Products/Operations/List/Includes.py +5 -0
  420. paddle_billing/Resources/Products/Operations/List/__init__.py +0 -0
  421. paddle_billing/Resources/Products/Operations/ListProducts.py +59 -0
  422. paddle_billing/Resources/Products/Operations/UpdateProduct.py +19 -0
  423. paddle_billing/Resources/Products/Operations/__init__.py +4 -0
  424. paddle_billing/Resources/Products/ProductsClient.py +70 -0
  425. paddle_billing/Resources/Products/__init__.py +0 -0
  426. paddle_billing/Resources/Reports/Operations/CreateReport.py +27 -0
  427. paddle_billing/Resources/Reports/Operations/ListReports.py +35 -0
  428. paddle_billing/Resources/Reports/Operations/__init__.py +2 -0
  429. paddle_billing/Resources/Reports/ReportsClient.py +51 -0
  430. paddle_billing/Resources/Reports/__init__.py +0 -0
  431. paddle_billing/Resources/Shared/Operations/List/Comparator.py +8 -0
  432. paddle_billing/Resources/Shared/Operations/List/DateComparison.py +31 -0
  433. paddle_billing/Resources/Shared/Operations/List/OrderBy.py +21 -0
  434. paddle_billing/Resources/Shared/Operations/List/Pager.py +24 -0
  435. paddle_billing/Resources/Shared/Operations/List/__init__.py +0 -0
  436. paddle_billing/Resources/Shared/Operations/__init__.py +4 -0
  437. paddle_billing/Resources/Shared/__init__.py +0 -0
  438. paddle_billing/Resources/Subscriptions/Operations/CancelSubscription.py +12 -0
  439. paddle_billing/Resources/Subscriptions/Operations/CreateOneTimeCharge.py +22 -0
  440. paddle_billing/Resources/Subscriptions/Operations/Get/Includes.py +6 -0
  441. paddle_billing/Resources/Subscriptions/Operations/Get/__init__.py +0 -0
  442. paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py +59 -0
  443. paddle_billing/Resources/Subscriptions/Operations/PauseSubscription.py +19 -0
  444. paddle_billing/Resources/Subscriptions/Operations/PreviewOneTimeCharge.py +22 -0
  445. paddle_billing/Resources/Subscriptions/Operations/PreviewUpdateSubscription.py +37 -0
  446. paddle_billing/Resources/Subscriptions/Operations/ResumeSubscription.py +17 -0
  447. paddle_billing/Resources/Subscriptions/Operations/Update/SubscriptionDiscount.py +9 -0
  448. paddle_billing/Resources/Subscriptions/Operations/Update/__init__.py +0 -0
  449. paddle_billing/Resources/Subscriptions/Operations/UpdateSubscription.py +37 -0
  450. paddle_billing/Resources/Subscriptions/Operations/__init__.py +10 -0
  451. paddle_billing/Resources/Subscriptions/SubscriptionsClient.py +121 -0
  452. paddle_billing/Resources/Subscriptions/__init__.py +0 -0
  453. paddle_billing/Resources/Transactions/Operations/CreateTransaction.py +25 -0
  454. paddle_billing/Resources/Transactions/Operations/List/Includes.py +11 -0
  455. paddle_billing/Resources/Transactions/Operations/List/Origin.py +10 -0
  456. paddle_billing/Resources/Transactions/Operations/List/__init__.py +0 -0
  457. paddle_billing/Resources/Transactions/Operations/ListTransactions.py +86 -0
  458. paddle_billing/Resources/Transactions/Operations/PreviewTransaction.py +24 -0
  459. paddle_billing/Resources/Transactions/Operations/UpdateTransaction.py +25 -0
  460. paddle_billing/Resources/Transactions/Operations/__init__.py +6 -0
  461. paddle_billing/Resources/Transactions/TransactionsClient.py +90 -0
  462. paddle_billing/Resources/Transactions/__init__.py +0 -0
  463. paddle_billing/Resources/__init__.py +0 -0
  464. paddle_billing/ResponseParser.py +65 -0
  465. paddle_billing/Undefined.py +2 -0
  466. paddle_billing/__init__.py +4 -0
  467. paddle_python_sdk-0.1.0.dist-info/LICENSE +190 -0
  468. paddle_python_sdk-0.1.0.dist-info/METADATA +184 -0
  469. paddle_python_sdk-0.1.0.dist-info/RECORD +517 -0
  470. paddle_python_sdk-0.1.0.dist-info/WHEEL +5 -0
  471. paddle_python_sdk-0.1.0.dist-info/top_level.txt +3 -0
  472. tests/Functional/Resources/Addresses/__init__.py +0 -0
  473. tests/Functional/Resources/Addresses/test_AddressesClient.py +274 -0
  474. tests/Functional/Resources/Adjustments/__init__.py +0 -0
  475. tests/Functional/Resources/Adjustments/test_AdjustmentsClient.py +188 -0
  476. tests/Functional/Resources/Businesses/__init__.py +0 -0
  477. tests/Functional/Resources/Businesses/test_BusinessesClient.py +279 -0
  478. tests/Functional/Resources/Customers/__init__.py +0 -0
  479. tests/Functional/Resources/Customers/test_CustomersClient.py +291 -0
  480. tests/Functional/Resources/Discounts/__init__.py +0 -0
  481. tests/Functional/Resources/Discounts/test_DiscountsClient.py +280 -0
  482. tests/Functional/Resources/EventTypes/__init__.py +0 -0
  483. tests/Functional/Resources/EventTypes/test_EventTypesClient.py +43 -0
  484. tests/Functional/Resources/Events/__init__.py +0 -0
  485. tests/Functional/Resources/Events/test_EventsClient.py +64 -0
  486. tests/Functional/Resources/NotificationLogs/__init__.py +0 -0
  487. tests/Functional/Resources/NotificationLogs/test_NotificationLogsClient.py +68 -0
  488. tests/Functional/Resources/NotificationSettings/__init__.py +0 -0
  489. tests/Functional/Resources/NotificationSettings/test_NotificationSettingsClient.py +287 -0
  490. tests/Functional/Resources/Notifications/__init__.py +0 -0
  491. tests/Functional/Resources/Notifications/test_NotificationsClient.py +202 -0
  492. tests/Functional/Resources/Prices/__init__.py +0 -0
  493. tests/Functional/Resources/Prices/test_PricesClient.py +307 -0
  494. tests/Functional/Resources/PricingPreviews/__init__.py +0 -0
  495. tests/Functional/Resources/PricingPreviews/test_PricingPreviewsClient.py +92 -0
  496. tests/Functional/Resources/Products/__init__.py +0 -0
  497. tests/Functional/Resources/Products/test_ProductsClient.py +271 -0
  498. tests/Functional/Resources/Reports/__init__.py +0 -0
  499. tests/Functional/Resources/Reports/test_ReportsClient.py +197 -0
  500. tests/Functional/Resources/Subscriptions/__init__.py +0 -0
  501. tests/Functional/Resources/Subscriptions/test_SubscriptionsClient.py +758 -0
  502. tests/Functional/Resources/Transactions/__init__.py +0 -0
  503. tests/Functional/Resources/Transactions/test_TransactionsClient.py +585 -0
  504. tests/Functional/Resources/__init__.py +0 -0
  505. tests/Functional/__init__.py +0 -0
  506. tests/Unit/Logger/__init__.py +0 -0
  507. tests/Unit/Logger/test_Logger.py +10 -0
  508. tests/Unit/Notification/__init__.py +0 -0
  509. tests/Unit/Notification/test_Verifier.py +63 -0
  510. tests/Unit/PaddleStrEnum/__init__.py +0 -0
  511. tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py +52 -0
  512. tests/Unit/__init__.py +0 -0
  513. tests/Utils/FakeResponse.py +6 -0
  514. tests/Utils/ReadsFixture.py +33 -0
  515. tests/Utils/TestClient.py +48 -0
  516. tests/Utils/__init__.py +1 -0
  517. tests/__init__.py +0 -0
@@ -0,0 +1,56 @@
1
+ from paddle_billing.Entities.Shared.Action import Action
2
+ from paddle_billing.Entities.Shared.AddressPreview import AddressPreview
3
+ from paddle_billing.Entities.Shared.AdjustmentItemTotals import AdjustmentItemTotals
4
+ from paddle_billing.Entities.Shared.AdjustmentProration import AdjustmentProration
5
+ from paddle_billing.Entities.Shared.AdjustmentStatus import AdjustmentStatus
6
+ from paddle_billing.Entities.Shared.AdjustmentTimePeriod import AdjustmentTimePeriod
7
+ from paddle_billing.Entities.Shared.AdjustmentTotals import AdjustmentTotals
8
+ from paddle_billing.Entities.Shared.AdjustmentType import AdjustmentType
9
+ from paddle_billing.Entities.Shared.AvailablePaymentMethods import AvailablePaymentMethods
10
+ from paddle_billing.Entities.Shared.BillingDetails import BillingDetails
11
+ from paddle_billing.Entities.Shared.BillingDetailsUpdate import BillingDetailsUpdate
12
+ from paddle_billing.Entities.Shared.Card import Card
13
+ from paddle_billing.Entities.Shared.CatalogType import CatalogType
14
+ from paddle_billing.Entities.Shared.ChargebackFee import ChargebackFee
15
+ from paddle_billing.Entities.Shared.Checkout import Checkout
16
+ from paddle_billing.Entities.Shared.CollectionMode import CollectionMode
17
+ from paddle_billing.Entities.Shared.Contacts import Contacts
18
+ from paddle_billing.Entities.Shared.CountryCode import CountryCode
19
+ from paddle_billing.Entities.Shared.CurrencyCode import CurrencyCode
20
+ from paddle_billing.Entities.Shared.CurrencyCodeAdjustments import CurrencyCodeAdjustments
21
+ from paddle_billing.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts
22
+ from paddle_billing.Entities.Shared.CustomData import CustomData
23
+ from paddle_billing.Entities.Shared.Data import Data
24
+ from paddle_billing.Entities.Shared.ErrorCode import ErrorCode
25
+ from paddle_billing.Entities.Shared.ImportMeta import ImportMeta
26
+ from paddle_billing.Entities.Shared.Interval import Interval
27
+ from paddle_billing.Entities.Shared.Meta import Meta
28
+ from paddle_billing.Entities.Shared.MetaPaginated import MetaPaginated
29
+ from paddle_billing.Entities.Shared.MethodDetails import MethodDetails
30
+ from paddle_billing.Entities.Shared.Money import Money
31
+ from paddle_billing.Entities.Shared.Original import Original
32
+ from paddle_billing.Entities.Shared.Pagination import Pagination
33
+ from paddle_billing.Entities.Shared.PaymentAttemptStatus import PaymentAttemptStatus
34
+ from paddle_billing.Entities.Shared.PaymentMethodType import PaymentMethodType
35
+ from paddle_billing.Entities.Shared.PayoutTotalsAdjustment import PayoutTotalsAdjustment
36
+ from paddle_billing.Entities.Shared.PriceQuantity import PriceQuantity
37
+ from paddle_billing.Entities.Shared.Status import Status
38
+ from paddle_billing.Entities.Shared.TransactionStatus import TransactionStatus
39
+ from paddle_billing.Entities.Shared.TaxCategory import TaxCategory
40
+ from paddle_billing.Entities.Shared.TaxMode import TaxMode
41
+ from paddle_billing.Entities.Shared.TaxRatesUsed import TaxRatesUsed
42
+ from paddle_billing.Entities.Shared.TimePeriod import TimePeriod
43
+ from paddle_billing.Entities.Shared.Totals import Totals
44
+ from paddle_billing.Entities.Shared.TransactionOrigin import TransactionOrigin
45
+ from paddle_billing.Entities.Shared.TransactionPaymentAttempt import TransactionPaymentAttempt
46
+ from paddle_billing.Entities.Shared.TransactionPayoutTotals import TransactionPayoutTotals
47
+ from paddle_billing.Entities.Shared.TransactionPayoutTotalsAdjusted import TransactionPayoutTotalsAdjusted
48
+ from paddle_billing.Entities.Shared.TransactionTotals import TransactionTotals
49
+ from paddle_billing.Entities.Shared.TransactionTotalsAdjusted import TransactionTotalsAdjusted
50
+ from paddle_billing.Entities.Shared.UnitPriceOverride import UnitPriceOverride
51
+ from paddle_billing.Entities.Shared.UnitTotals import UnitTotals
52
+
53
+
54
+ # These two cause circular imports
55
+ # from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview
56
+ # from paddle_billing.Entities.Shared.TransactionLineItemPreview import TransactionLineItemPreview
@@ -0,0 +1,86 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+ from paddle_billing.Entities.Entity import Entity
6
+
7
+ from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview
8
+ from paddle_billing.Entities.Shared import (
9
+ BillingDetails,
10
+ CollectionMode,
11
+ CurrencyCode,
12
+ CustomData,
13
+ ImportMeta,
14
+ TimePeriod,
15
+ )
16
+
17
+ from paddle_billing.Entities.Subscriptions import (
18
+ SubscriptionDiscount,
19
+ SubscriptionItem,
20
+ SubscriptionManagementUrls,
21
+ SubscriptionNextTransaction,
22
+ SubscriptionScheduledChange,
23
+ SubscriptionStatus,
24
+ SubscriptionTimePeriod,
25
+ )
26
+
27
+
28
+ @dataclass
29
+ class Subscription(Entity):
30
+ id: str
31
+ status: SubscriptionStatus
32
+ customer_id: str
33
+ address_id: str
34
+ business_id: str | None
35
+ currency_code: CurrencyCode
36
+ created_at: datetime
37
+ updated_at: datetime
38
+ started_at: datetime | None
39
+ first_billed_at: datetime | None
40
+ next_billed_at: datetime | None
41
+ paused_at: datetime | None
42
+ canceled_at: datetime | None
43
+ discount: SubscriptionDiscount | None
44
+ collection_mode: CollectionMode
45
+ billing_details: BillingDetails | None
46
+ current_billing_period: SubscriptionTimePeriod | None
47
+ billing_cycle: TimePeriod
48
+ scheduled_change: SubscriptionScheduledChange | None
49
+ management_urls: SubscriptionManagementUrls | None
50
+ items: list[SubscriptionItem]
51
+ next_transaction: SubscriptionNextTransaction | None
52
+ recurring_transaction_details: TransactionDetailsPreview | None
53
+ import_meta: ImportMeta | None = None
54
+ custom_data: CustomData | None = None
55
+
56
+
57
+ @classmethod
58
+ def from_dict(cls, data: dict) -> Subscription:
59
+ return Subscription(
60
+ id = data['id'],
61
+ status = SubscriptionStatus(data['status']),
62
+ customer_id = data['customer_id'],
63
+ address_id = data['address_id'],
64
+ business_id = data.get('business_id'),
65
+ currency_code = CurrencyCode(data['currency_code']),
66
+ created_at = datetime.fromisoformat(data['created_at']),
67
+ updated_at = datetime.fromisoformat(data['updated_at']),
68
+ collection_mode = CollectionMode(data['collection_mode']),
69
+ billing_cycle = TimePeriod.from_dict(data['billing_cycle']),
70
+ items = [SubscriptionItem.from_dict(item) for item in data['items']],
71
+ current_billing_period = SubscriptionTimePeriod.from_dict(data['current_billing_period']) if data.get('current_billing_period') else None,
72
+ management_urls = SubscriptionManagementUrls.from_dict(data['management_urls']) if data.get('management_urls') else None,
73
+ started_at = datetime.fromisoformat(data['started_at']) if data.get('started_at') else None,
74
+ first_billed_at = datetime.fromisoformat(data['first_billed_at']) if data.get('first_billed_at') else None,
75
+ next_billed_at = datetime.fromisoformat(data['next_billed_at']) if data.get('next_billed_at') else None,
76
+ paused_at = datetime.fromisoformat(data['paused_at']) if data.get('paused_at') else None,
77
+ canceled_at = datetime.fromisoformat(data['canceled_at']) if data.get('canceled_at') else None,
78
+ discount = SubscriptionDiscount.from_dict(data['discount']) if data.get('discount') else None,
79
+ billing_details = BillingDetails.from_dict(data['billing_details']) if data.get('billing_details') else None,
80
+ scheduled_change = SubscriptionScheduledChange.from_dict(data['scheduled_change']) if data.get('scheduled_change') else None,
81
+ custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
82
+ import_meta = ImportMeta.from_dict(data['import_meta']) if data.get('import_meta') else None,
83
+ next_transaction = SubscriptionNextTransaction.from_dict(data['next_transaction']) if data.get('next_transaction') else None,
84
+
85
+ recurring_transaction_details = TransactionDetailsPreview.from_dict(data['recurring_transaction_details']) if data.get('recurring_transaction_details') else None,
86
+ )
@@ -0,0 +1,79 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+ from paddle_billing.Entities.Entity import Entity
6
+ from paddle_billing.Entities.Shared import BillingDetails, CollectionMode, CurrencyCode, CustomData, TimePeriod
7
+
8
+ from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview
9
+
10
+ from paddle_billing.Entities.Subscriptions import (
11
+ SubscriptionDiscount,
12
+ SubscriptionItem,
13
+ SubscriptionManagementUrls,
14
+ SubscriptionNextTransaction,
15
+ SubscriptionPreviewSubscriptionUpdateSummary,
16
+ SubscriptionScheduledChange,
17
+ SubscriptionStatus,
18
+ SubscriptionTimePeriod,
19
+ )
20
+
21
+
22
+ @dataclass
23
+ class SubscriptionPreview(Entity):
24
+ status: SubscriptionStatus
25
+ customer_id: str
26
+ address_id: str
27
+ business_id: str | None
28
+ currency_code: CurrencyCode
29
+ created_at: datetime
30
+ updated_at: datetime
31
+ started_at: datetime | None
32
+ first_billed_at: datetime | None
33
+ next_billed_at: datetime | None
34
+ paused_at: datetime | None
35
+ canceled_at: datetime | None
36
+ discount: SubscriptionDiscount | None
37
+ collection_mode: CollectionMode
38
+ billing_details: BillingDetails | None
39
+ current_billing_period: SubscriptionTimePeriod | None
40
+ billing_cycle: TimePeriod
41
+ scheduled_change: SubscriptionScheduledChange | None
42
+ management_urls: SubscriptionManagementUrls
43
+ items: list[SubscriptionItem]
44
+ custom_data: CustomData | None
45
+ immediate_transaction: SubscriptionNextTransaction | None
46
+ next_transaction: SubscriptionNextTransaction | None
47
+ recurring_transaction_details: TransactionDetailsPreview | None
48
+ update_summary: SubscriptionPreviewSubscriptionUpdateSummary | None
49
+
50
+
51
+ @classmethod
52
+ def from_dict(cls, data: dict) -> SubscriptionPreview:
53
+ return SubscriptionPreview(
54
+ status = SubscriptionStatus(data['status']),
55
+ customer_id = data['customer_id'],
56
+ address_id = data['address_id'],
57
+ business_id = data.get('business_id'),
58
+ currency_code = CurrencyCode(data['currency_code']),
59
+ created_at = datetime.fromisoformat(data['created_at']),
60
+ updated_at = datetime.fromisoformat(data['updated_at']),
61
+ collection_mode = CollectionMode(data['collection_mode']),
62
+ billing_cycle = TimePeriod.from_dict(data['billing_cycle']),
63
+ items = [SubscriptionItem.from_dict(item) for item in data['items']],
64
+ started_at = datetime.fromisoformat(data['started_at']) if data.get('started_at') else None,
65
+ first_billed_at = datetime.fromisoformat(data['first_billed_at']) if data.get('first_billed_at') else None,
66
+ next_billed_at = datetime.fromisoformat(data['next_billed_at']) if data.get('next_billed_at') else None,
67
+ paused_at = datetime.fromisoformat(data['paused_at']) if data.get('paused_at') else None,
68
+ canceled_at = datetime.fromisoformat(data['canceled_at']) if data.get('canceled_at') else None,
69
+ discount = SubscriptionDiscount.from_dict(data['discount']) if data.get('discount') else None,
70
+ billing_details = BillingDetails.from_dict(data['billing_details']) if data.get('billing_details') else None,
71
+ current_billing_period = SubscriptionTimePeriod.from_dict(data['current_billing_period']) if data.get('current_billing_period') else None,
72
+ scheduled_change = SubscriptionScheduledChange.from_dict(data['scheduled_change']) if data.get('scheduled_change') else None,
73
+ management_urls = SubscriptionManagementUrls.from_dict(data['management_urls']) if data.get('management_urls') else None,
74
+ custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
75
+ immediate_transaction = SubscriptionNextTransaction.from_dict(data['immediate_transaction']) if data.get('immediate_transaction') else None,
76
+ next_transaction = SubscriptionNextTransaction.from_dict(data['next_transaction']) if data.get('next_transaction') else None,
77
+ recurring_transaction_details = TransactionDetailsPreview.from_dict(data['recurring_transaction_details']) if data.get('recurring_transaction_details') else None,
78
+ update_summary = SubscriptionPreviewSubscriptionUpdateSummary.from_dict(data['update_summary']) if data.get('update_summary') else None,
79
+ )
@@ -0,0 +1,24 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared import AdjustmentItemTotals, AdjustmentProration, AdjustmentType
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionAdjustmentItem:
9
+ item_id: str
10
+ type: AdjustmentType
11
+ amount: str | None
12
+ proration: AdjustmentProration
13
+ totals: AdjustmentItemTotals
14
+
15
+
16
+ @staticmethod
17
+ def from_dict(data: dict) -> SubscriptionAdjustmentItem:
18
+ return SubscriptionAdjustmentItem(
19
+ item_id = data['item_id'],
20
+ type = AdjustmentType(data['type']),
21
+ amount = data.get('amount'),
22
+ proration = AdjustmentProration.from_dict(data['proration']),
23
+ totals = AdjustmentItemTotals.from_dict(data['totals']),
24
+ )
@@ -0,0 +1,22 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared import AdjustmentTotals
5
+
6
+ from paddle_billing.Entities.Subscriptions.SubscriptionAdjustmentItem import SubscriptionAdjustmentItem
7
+
8
+
9
+ @dataclass
10
+ class SubscriptionAdjustmentPreview:
11
+ transaction_id: str
12
+ items: list[SubscriptionAdjustmentItem]
13
+ totals: AdjustmentTotals
14
+
15
+
16
+ @staticmethod
17
+ def from_dict(data: dict) -> SubscriptionAdjustmentPreview:
18
+ return SubscriptionAdjustmentPreview(
19
+ transaction_id = data['transaction_id'],
20
+ items = [SubscriptionAdjustmentItem.from_dict(item) for item in data['items']],
21
+ totals = AdjustmentTotals.from_dict(data['totals']),
22
+ )
@@ -0,0 +1,18 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared import CurrencyCode
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionCharge:
9
+ amount: str
10
+ currency_code: CurrencyCode
11
+
12
+
13
+ @staticmethod
14
+ def from_dict(data: dict) -> SubscriptionCharge:
15
+ return SubscriptionCharge(
16
+ amount = data['amount'],
17
+ currency_code = CurrencyCode(data['currency_code']),
18
+ )
@@ -0,0 +1,18 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared import CurrencyCode
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionCredit:
9
+ amount: str
10
+ currency_code: CurrencyCode
11
+
12
+
13
+ @staticmethod
14
+ def from_dict(data: dict) -> SubscriptionCredit:
15
+ return SubscriptionCredit(
16
+ amount = data['amount'],
17
+ currency_code = CurrencyCode(data['currency_code']),
18
+ )
@@ -0,0 +1,34 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared import (
5
+ TaxRatesUsed,
6
+ TransactionPayoutTotals,
7
+ TransactionPayoutTotalsAdjusted,
8
+ TransactionTotals,
9
+ TransactionTotalsAdjusted
10
+ )
11
+
12
+ from paddle_billing.Entities.Subscriptions import SubscriptionTransactionLineItem
13
+
14
+
15
+ @dataclass
16
+ class SubscriptionDetails:
17
+ tax_rates_used: list[TaxRatesUsed]
18
+ totals: TransactionTotals
19
+ adjusted_totals: TransactionTotalsAdjusted
20
+ payout_totals: TransactionPayoutTotals
21
+ adjusted_payout_totals: TransactionPayoutTotalsAdjusted
22
+ line_items: list[SubscriptionTransactionLineItem]
23
+
24
+
25
+ @staticmethod
26
+ def from_dict(data: dict) -> SubscriptionDetails:
27
+ return SubscriptionDetails(
28
+ totals = TransactionTotals.from_dict(data['totals']),
29
+ adjusted_totals = TransactionTotalsAdjusted.from_dict(data['adjusted_totals']),
30
+ payout_totals = TransactionPayoutTotals.from_dict(data['payout_totals']),
31
+ adjusted_payout_totals = TransactionPayoutTotalsAdjusted.from_dict(data['adjusted_payout_totals']),
32
+ tax_rates_used = [TaxRatesUsed.from_dict(tax_rate) for tax_rate in data.get('tax_rates_used', [])],
33
+ line_items = [SubscriptionTransactionLineItem.from_dict(item) for item in data.get('line_items', [])],
34
+ )
@@ -0,0 +1,19 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+
6
+ @dataclass
7
+ class SubscriptionDiscount:
8
+ id: str
9
+ starts_at: datetime
10
+ ends_at: datetime
11
+
12
+
13
+ @staticmethod
14
+ def from_dict(data: dict) -> SubscriptionDiscount:
15
+ return SubscriptionDiscount(
16
+ id = data['id'],
17
+ starts_at = datetime.fromisoformat(data['starts_at']),
18
+ ends_at = datetime.fromisoformat(data['ends_at']) if data.get('ends_at') else None,
19
+ )
@@ -0,0 +1,6 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class SubscriptionEffectiveFrom(PaddleStrEnum):
5
+ NextBillingPeriod = 'next_billing_period'
6
+ Immediately = 'immediately'
@@ -0,0 +1,35 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+ from paddle_billing.Entities.Subscriptions.SubscriptionItemStatus import SubscriptionItemStatus
6
+ from paddle_billing.Entities.Subscriptions.SubscriptionPrice import SubscriptionPrice
7
+ from paddle_billing.Entities.Subscriptions.SubscriptionTimePeriod import SubscriptionTimePeriod
8
+
9
+
10
+ @dataclass
11
+ class SubscriptionItem:
12
+ status: SubscriptionItemStatus
13
+ quantity: int
14
+ recurring: bool
15
+ created_at: datetime
16
+ updated_at: datetime
17
+ previously_billed_at: datetime | None
18
+ next_billed_at: datetime | None
19
+ trial_dates: SubscriptionTimePeriod | None
20
+ price: SubscriptionPrice
21
+
22
+
23
+ @staticmethod
24
+ def from_dict(data: dict) -> SubscriptionItem:
25
+ return SubscriptionItem(
26
+ status = SubscriptionItemStatus(data['status']),
27
+ quantity = data['quantity'],
28
+ recurring = data['recurring'],
29
+ created_at = datetime.fromisoformat(data['created_at']),
30
+ updated_at = datetime.fromisoformat(data['updated_at']),
31
+ price = SubscriptionPrice.from_dict(data['price']),
32
+ previously_billed_at = datetime.fromisoformat(data['previously_billed_at']) if data.get('previously_billed_at') else None,
33
+ next_billed_at = datetime.fromisoformat(data['next_billed_at']) if data.get('next_billed_at') else None,
34
+ trial_dates = SubscriptionTimePeriod.from_dict(data['trial_dates']) if data.get('trial_dates') else None,
35
+ )
@@ -0,0 +1,7 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class SubscriptionItemStatus(PaddleStrEnum):
5
+ Active = 'active'
6
+ Inactive = 'inactive'
7
+ Trialing = 'trialing'
@@ -0,0 +1,20 @@
1
+ from __future__ import annotations
2
+ from dataclasses import asdict, dataclass
3
+
4
+
5
+ @dataclass
6
+ class SubscriptionItems:
7
+ price_id: str
8
+ quantity: int
9
+
10
+
11
+ @staticmethod
12
+ def from_dict(data: dict) -> SubscriptionItems:
13
+ return SubscriptionItems(
14
+ price_id = data['price_id'],
15
+ quantity = data['quantity'],
16
+ )
17
+
18
+
19
+ def get_parameters(self) -> dict:
20
+ return asdict(self)
@@ -0,0 +1,19 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogPrice import SubscriptionNonCatalogPrice
5
+ from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogPriceWithProduct import SubscriptionNonCatalogPriceWithProduct
6
+
7
+
8
+ @dataclass
9
+ class SubscriptionItemsWithPrice:
10
+ price: SubscriptionNonCatalogPrice | SubscriptionNonCatalogPriceWithProduct
11
+ quantity: int
12
+
13
+
14
+ @staticmethod
15
+ def from_dict(data: dict) -> SubscriptionItemsWithPrice:
16
+ return SubscriptionItemsWithPrice(
17
+ price = data['price'],
18
+ quantity = data['quantity'],
19
+ )
@@ -0,0 +1,16 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+
5
+ @dataclass
6
+ class SubscriptionManagementUrls:
7
+ update_payment_method: str | None
8
+ cancel: str
9
+
10
+
11
+ @staticmethod
12
+ def from_dict(data: dict) -> SubscriptionManagementUrls:
13
+ return SubscriptionManagementUrls(
14
+ update_payment_method = data.get('update_payment_method'),
15
+ cancel = data['cancel'],
16
+ )
@@ -0,0 +1,23 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview
5
+
6
+ from paddle_billing.Entities.Subscriptions.SubscriptionTimePeriod import SubscriptionTimePeriod
7
+ from paddle_billing.Entities.Subscriptions.SubscriptionAdjustmentPreview import SubscriptionAdjustmentPreview
8
+
9
+
10
+ @dataclass
11
+ class SubscriptionNextTransaction:
12
+ billing_period: SubscriptionTimePeriod
13
+ details: TransactionDetailsPreview
14
+ adjustments: list[SubscriptionAdjustmentPreview]
15
+
16
+
17
+ @staticmethod
18
+ def from_dict(data: dict) -> SubscriptionNextTransaction:
19
+ return SubscriptionNextTransaction(
20
+ billing_period = SubscriptionTimePeriod.from_dict(data['billing_period']),
21
+ details = TransactionDetailsPreview.from_dict(data['details']),
22
+ adjustments = [SubscriptionAdjustmentPreview.from_dict(adj) for adj in data.get('adjustments', [])],
23
+ )
@@ -0,0 +1,30 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared import CustomData, Money, PriceQuantity, TaxMode, UnitPriceOverride
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionNonCatalogPrice:
9
+ description: str
10
+ name: str | None
11
+ product_id: str
12
+ tax_mode: TaxMode
13
+ unit_price: Money
14
+ unit_price_overrides: list[UnitPriceOverride]
15
+ quantity: PriceQuantity
16
+ custom_data: CustomData | None
17
+
18
+
19
+ @staticmethod
20
+ def from_dict(data: dict) -> SubscriptionNonCatalogPrice:
21
+ return SubscriptionNonCatalogPrice(
22
+ description = data['description'],
23
+ name = data.get('name'),
24
+ product_id = data['product_id'],
25
+ tax_mode = TaxMode(data['tax_mode']),
26
+ unit_price = Money.from_dict(data['unit_price']),
27
+ unit_price_overrides = [UnitPriceOverride.from_dict(override) for override in data['unit_price_overrides']],
28
+ quantity = PriceQuantity.from_dict(data['quantity']),
29
+ custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
30
+ )
@@ -0,0 +1,32 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared import CustomData, Money, PriceQuantity, TaxMode, UnitPriceOverride
5
+
6
+ from paddle_billing.Entities.Subscriptions.SubscriptionNonCatalogProduct import SubscriptionNonCatalogProduct
7
+
8
+
9
+ @dataclass
10
+ class SubscriptionNonCatalogPriceWithProduct:
11
+ description: str
12
+ name: str | None
13
+ product: SubscriptionNonCatalogProduct
14
+ tax_mode: TaxMode
15
+ unit_price: Money
16
+ unit_price_overrides: list[UnitPriceOverride]
17
+ quantity: PriceQuantity
18
+ custom_data: CustomData | None
19
+
20
+
21
+ @staticmethod
22
+ def from_dict(data: dict) -> SubscriptionNonCatalogPriceWithProduct:
23
+ return SubscriptionNonCatalogPriceWithProduct(
24
+ description = data['description'],
25
+ name = data.get('name'),
26
+ product = SubscriptionNonCatalogProduct.from_dict(data['product']),
27
+ tax_mode = TaxMode(data['tax_mode']),
28
+ unit_price = Money.from_dict(data['unit_price']),
29
+ unit_price_overrides = [UnitPriceOverride.from_dict(override) for override in data['unit_price_overrides']],
30
+ quantity = PriceQuantity.from_dict(data['quantity']),
31
+ custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
32
+ )
@@ -0,0 +1,26 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Shared import CatalogType, CustomData, TaxCategory
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionNonCatalogProduct:
9
+ name: str
10
+ description: str | None
11
+ type: CatalogType | None
12
+ tax_category: TaxCategory
13
+ image_url: str | None
14
+ custom_data: CustomData | None
15
+
16
+
17
+ @staticmethod
18
+ def from_dict(data: dict) -> SubscriptionNonCatalogProduct:
19
+ return SubscriptionNonCatalogProduct(
20
+ name = data['name'],
21
+ description = data.get('description'),
22
+ tax_category = TaxCategory(data['tax_category']),
23
+ image_url = data.get('image_url'),
24
+ type = CatalogType(data['type']) if data.get('type') else None,
25
+ custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
26
+ )
@@ -0,0 +1,6 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class SubscriptionOnPaymentFailure(PaddleStrEnum):
5
+ PreventChange = 'prevent_change'
6
+ ApplyChange = 'apply_change'
@@ -0,0 +1,22 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Entities.Subscriptions.SubscriptionCharge import SubscriptionCharge
5
+ from paddle_billing.Entities.Subscriptions.SubscriptionCredit import SubscriptionCredit
6
+ from paddle_billing.Entities.Subscriptions.SubscriptionResult import SubscriptionResult
7
+
8
+
9
+ @dataclass
10
+ class SubscriptionPreviewSubscriptionUpdateSummary:
11
+ credit: SubscriptionCredit
12
+ charge: SubscriptionCharge
13
+ result: SubscriptionResult
14
+
15
+
16
+ @staticmethod
17
+ def from_dict(data: dict) -> SubscriptionPreviewSubscriptionUpdateSummary:
18
+ return SubscriptionPreviewSubscriptionUpdateSummary(
19
+ credit = SubscriptionCredit.from_dict(data['credit']),
20
+ charge = SubscriptionCharge.from_dict(data['charge']),
21
+ result = SubscriptionResult.from_dict(data['result']),
22
+ )