stripe 14.0.0 → 14.1.0.pre.beta.1

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 (567) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1513 -670
  3. data/OPENAPI_VERSION +1 -1
  4. data/VERSION +1 -1
  5. data/lib/stripe/api_requestor.rb +28 -0
  6. data/lib/stripe/api_version.rb +1 -1
  7. data/lib/stripe/errors.rb +54 -0
  8. data/lib/stripe/event_types.rb +75 -0
  9. data/lib/stripe/events/v2_core_account_including_configuration_customer_capability_status_updated_event.rb +23 -0
  10. data/lib/stripe/events/v2_core_account_including_configuration_customer_updated_event.rb +21 -0
  11. data/lib/stripe/events/v2_core_account_including_configuration_merchant_capability_status_updated_event.rb +23 -0
  12. data/lib/stripe/events/v2_core_account_including_configuration_merchant_updated_event.rb +21 -0
  13. data/lib/stripe/events/v2_core_account_including_configuration_recipient_capability_status_updated_event.rb +23 -0
  14. data/lib/stripe/events/v2_core_account_including_configuration_recipient_updated_event.rb +21 -0
  15. data/lib/stripe/events/v2_core_account_including_identity_updated_event.rb +21 -0
  16. data/lib/stripe/events/v2_core_account_including_requirements_updated_event.rb +21 -0
  17. data/lib/stripe/events/v2_core_account_link_completed_event.rb +13 -0
  18. data/lib/stripe/events/v2_core_account_person_created_event.rb +23 -0
  19. data/lib/stripe/events/v2_core_account_person_deleted_event.rb +23 -0
  20. data/lib/stripe/events/v2_core_account_person_updated_event.rb +23 -0
  21. data/lib/stripe/events/v2_money_management_financial_account_created_event.rb +21 -0
  22. data/lib/stripe/events/v2_money_management_financial_address_activated_event.rb +21 -0
  23. data/lib/stripe/events/v2_money_management_financial_address_failed_event.rb +21 -0
  24. data/lib/stripe/events/v2_money_management_inbound_transfer_available_event.rb +23 -0
  25. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_failed_event.rb +21 -0
  26. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_processing_event.rb +21 -0
  27. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_queued_event.rb +21 -0
  28. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_returned_event.rb +21 -0
  29. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_succeeded_event.rb +21 -0
  30. data/lib/stripe/events/v2_money_management_outbound_payment_canceled_event.rb +21 -0
  31. data/lib/stripe/events/v2_money_management_outbound_payment_created_event.rb +21 -0
  32. data/lib/stripe/events/v2_money_management_outbound_payment_failed_event.rb +21 -0
  33. data/lib/stripe/events/v2_money_management_outbound_payment_posted_event.rb +21 -0
  34. data/lib/stripe/events/v2_money_management_outbound_payment_returned_event.rb +21 -0
  35. data/lib/stripe/events/v2_money_management_outbound_transfer_canceled_event.rb +21 -0
  36. data/lib/stripe/events/v2_money_management_outbound_transfer_created_event.rb +21 -0
  37. data/lib/stripe/events/v2_money_management_outbound_transfer_failed_event.rb +21 -0
  38. data/lib/stripe/events/v2_money_management_outbound_transfer_posted_event.rb +21 -0
  39. data/lib/stripe/events/v2_money_management_outbound_transfer_returned_event.rb +21 -0
  40. data/lib/stripe/events/v2_money_management_received_credit_available_event.rb +23 -0
  41. data/lib/stripe/events/v2_money_management_received_credit_failed_event.rb +21 -0
  42. data/lib/stripe/events/v2_money_management_received_credit_returned_event.rb +21 -0
  43. data/lib/stripe/events/v2_money_management_received_credit_succeeded_event.rb +21 -0
  44. data/lib/stripe/events/v2_money_management_received_debit_canceled_event.rb +21 -0
  45. data/lib/stripe/events/v2_money_management_received_debit_failed_event.rb +21 -0
  46. data/lib/stripe/events/v2_money_management_received_debit_pending_event.rb +21 -0
  47. data/lib/stripe/events/v2_money_management_received_debit_succeeded_event.rb +21 -0
  48. data/lib/stripe/events/v2_money_management_received_debit_updated_event.rb +21 -0
  49. data/lib/stripe/object_types.rb +48 -0
  50. data/lib/stripe/request_signing_authenticator.rb +79 -0
  51. data/lib/stripe/resources/account.rb +653 -1
  52. data/lib/stripe/resources/account_notice.rb +123 -0
  53. data/lib/stripe/resources/account_session.rb +247 -1
  54. data/lib/stripe/resources/balance_settings.rb +101 -0
  55. data/lib/stripe/resources/billing/credit_balance_summary.rb +2 -0
  56. data/lib/stripe/resources/billing/credit_balance_transaction.rb +4 -0
  57. data/lib/stripe/resources/billing/credit_grant.rb +10 -0
  58. data/lib/stripe/resources/billing/meter_error_report.rb +59 -0
  59. data/lib/stripe/resources/billing_portal/session.rb +6 -0
  60. data/lib/stripe/resources/capital/financing_offer.rb +179 -0
  61. data/lib/stripe/resources/capital/financing_summary.rb +55 -0
  62. data/lib/stripe/resources/capital/financing_transaction.rb +114 -0
  63. data/lib/stripe/resources/card.rb +2 -0
  64. data/lib/stripe/resources/cash_balance.rb +2 -0
  65. data/lib/stripe/resources/charge.rb +1454 -0
  66. data/lib/stripe/resources/checkout/session.rb +260 -4
  67. data/lib/stripe/resources/confirmation_token.rb +234 -0
  68. data/lib/stripe/resources/coupon.rb +1 -1
  69. data/lib/stripe/resources/credit_note.rb +10 -0
  70. data/lib/stripe/resources/credit_note_line_item.rb +9 -0
  71. data/lib/stripe/resources/customer.rb +2 -0
  72. data/lib/stripe/resources/customer_balance_transaction.rb +2 -0
  73. data/lib/stripe/resources/customer_cash_balance_transaction.rb +2 -0
  74. data/lib/stripe/resources/customer_session.rb +6 -1
  75. data/lib/stripe/resources/discount.rb +2 -0
  76. data/lib/stripe/resources/event.rb +33 -0
  77. data/lib/stripe/resources/financial_connections/account.rb +20 -1
  78. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +27 -0
  79. data/lib/stripe/resources/financial_connections/institution.rb +90 -0
  80. data/lib/stripe/resources/financial_connections/session.rb +62 -2
  81. data/lib/stripe/resources/gift_cards/card.rb +208 -0
  82. data/lib/stripe/resources/gift_cards/transaction.rb +272 -0
  83. data/lib/stripe/resources/identity/verification_session.rb +10 -0
  84. data/lib/stripe/resources/invoice.rb +1176 -16
  85. data/lib/stripe/resources/invoice_item.rb +78 -2
  86. data/lib/stripe/resources/invoice_line_item.rb +55 -1
  87. data/lib/stripe/resources/invoice_payment.rb +2 -53
  88. data/lib/stripe/resources/issuing/cardholder.rb +2 -1
  89. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +602 -0
  90. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +82 -0
  91. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +86 -0
  92. data/lib/stripe/resources/issuing/settlement.rb +53 -0
  93. data/lib/stripe/resources/issuing/transaction.rb +6 -0
  94. data/lib/stripe/resources/line_item.rb +37 -0
  95. data/lib/stripe/resources/mandate.rb +24 -0
  96. data/lib/stripe/resources/margin.rb +115 -0
  97. data/lib/stripe/resources/order.rb +2859 -0
  98. data/lib/stripe/resources/payment_attempt_record.rb +1078 -0
  99. data/lib/stripe/resources/payment_intent.rb +5233 -431
  100. data/lib/stripe/resources/payment_method.rb +196 -1
  101. data/lib/stripe/resources/payment_method_configuration.rb +295 -0
  102. data/lib/stripe/resources/payment_record.rb +1607 -0
  103. data/lib/stripe/resources/payout.rb +6 -0
  104. data/lib/stripe/resources/price.rb +30 -0
  105. data/lib/stripe/resources/product.rb +59 -0
  106. data/lib/stripe/resources/promotion_code.rb +10 -0
  107. data/lib/stripe/resources/quote.rb +2042 -6
  108. data/lib/stripe/resources/quote_line.rb +274 -0
  109. data/lib/stripe/resources/quote_preview_invoice.rb +663 -0
  110. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +337 -0
  111. data/lib/stripe/resources/refund.rb +9 -0
  112. data/lib/stripe/resources/setup_attempt.rb +21 -0
  113. data/lib/stripe/resources/setup_intent.rb +596 -9
  114. data/lib/stripe/resources/source.rb +29 -0
  115. data/lib/stripe/resources/subscription.rb +292 -9
  116. data/lib/stripe/resources/subscription_item.rb +84 -3
  117. data/lib/stripe/resources/subscription_schedule.rb +1007 -10
  118. data/lib/stripe/resources/tax/association.rb +89 -0
  119. data/lib/stripe/resources/tax/form.rb +211 -0
  120. data/lib/stripe/resources/tax_id.rb +12 -2
  121. data/lib/stripe/resources/terminal/reader.rb +406 -0
  122. data/lib/stripe/resources/terminal/reader_collected_data.rb +31 -0
  123. data/lib/stripe/resources/treasury/financial_account.rb +22 -3
  124. data/lib/stripe/resources/treasury/financial_account_features.rb +2 -0
  125. data/lib/stripe/resources/treasury/outbound_transfer.rb +37 -0
  126. data/lib/stripe/resources/treasury/received_credit.rb +38 -1
  127. data/lib/stripe/resources/treasury/received_debit.rb +40 -1
  128. data/lib/stripe/resources/v2/core/account.rb +1715 -0
  129. data/lib/stripe/resources/v2/core/account_link.rb +54 -0
  130. data/lib/stripe/resources/v2/core/person.rb +272 -0
  131. data/lib/stripe/resources/v2/core/vault/gb_bank_account.rb +72 -0
  132. data/lib/stripe/resources/v2/core/vault/us_bank_account.rb +37 -0
  133. data/lib/stripe/resources/v2/financial_address_credit_simulation.rb +18 -0
  134. data/lib/stripe/resources/v2/financial_address_generated_microdeposits.rb +20 -0
  135. data/lib/stripe/resources/v2/money_management/adjustment.rb +49 -0
  136. data/lib/stripe/resources/v2/money_management/financial_account.rb +56 -0
  137. data/lib/stripe/resources/v2/money_management/financial_address.rb +66 -0
  138. data/lib/stripe/resources/v2/money_management/inbound_transfer.rb +92 -0
  139. data/lib/stripe/resources/v2/money_management/outbound_payment.rb +127 -0
  140. data/lib/stripe/resources/v2/money_management/outbound_payment_quote.rb +74 -0
  141. data/lib/stripe/resources/v2/money_management/outbound_setup_intent.rb +43 -0
  142. data/lib/stripe/resources/v2/money_management/outbound_transfer.rb +115 -0
  143. data/lib/stripe/resources/v2/money_management/payout_method.rb +73 -0
  144. data/lib/stripe/resources/v2/money_management/payout_methods_bank_account_spec.rb +47 -0
  145. data/lib/stripe/resources/v2/money_management/received_credit.rb +134 -0
  146. data/lib/stripe/resources/v2/money_management/received_debit.rb +106 -0
  147. data/lib/stripe/resources/v2/money_management/transaction.rb +76 -0
  148. data/lib/stripe/resources/v2/money_management/transaction_entry.rb +66 -0
  149. data/lib/stripe/resources.rb +85 -0
  150. data/lib/stripe/services/account_notice_service.rb +101 -0
  151. data/lib/stripe/services/account_service.rb +562 -1
  152. data/lib/stripe/services/account_session_service.rb +217 -1
  153. data/lib/stripe/services/balance_settings_service.rb +96 -0
  154. data/lib/stripe/services/billing/credit_balance_summary_service.rb +4 -1
  155. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +4 -0
  156. data/lib/stripe/services/billing/credit_grant_service.rb +8 -0
  157. data/lib/stripe/services/billing_portal/session_service.rb +4 -0
  158. data/lib/stripe/services/capital/financing_offer_service.rb +112 -0
  159. data/lib/stripe/services/capital/financing_summary_service.rb +28 -0
  160. data/lib/stripe/services/capital/financing_transaction_service.rb +79 -0
  161. data/lib/stripe/services/capital_service.rb +15 -0
  162. data/lib/stripe/services/charge_service.rb +1334 -0
  163. data/lib/stripe/services/checkout/session_service.rb +172 -2
  164. data/lib/stripe/services/credit_note_service.rb +4 -0
  165. data/lib/stripe/services/customer_session_service.rb +4 -1
  166. data/lib/stripe/services/external_account_service.rb +206 -0
  167. data/{rbi/stripe/services/tax/transaction_line_item_service.rbi → lib/stripe/services/financial_connections/account_inferred_balance_service.rb} +21 -17
  168. data/lib/stripe/services/financial_connections/account_service.rb +7 -2
  169. data/{rbi/stripe/services/climate/supplier_service.rbi → lib/stripe/services/financial_connections/institution_service.rb} +36 -25
  170. data/lib/stripe/services/financial_connections/session_service.rb +34 -2
  171. data/lib/stripe/services/financial_connections_service.rb +2 -1
  172. data/lib/stripe/services/gift_cards/card_service.rb +170 -0
  173. data/lib/stripe/services/gift_cards/transaction_service.rb +209 -0
  174. data/lib/stripe/services/gift_cards_service.rb +14 -0
  175. data/lib/stripe/services/identity/verification_session_service.rb +8 -0
  176. data/lib/stripe/services/invoice_item_service.rb +74 -2
  177. data/lib/stripe/services/invoice_line_item_service.rb +33 -1
  178. data/lib/stripe/services/invoice_payment_service.rb +5 -33
  179. data/lib/stripe/services/invoice_service.rb +1088 -17
  180. data/lib/stripe/services/issuing/cardholder_service.rb +2 -1
  181. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +504 -0
  182. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +66 -0
  183. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +83 -0
  184. data/lib/stripe/services/issuing/transaction_service.rb +4 -0
  185. data/lib/stripe/services/issuing_service.rb +5 -1
  186. data/lib/stripe/services/margin_service.rb +119 -0
  187. data/{rbi/stripe/services/source_transaction_service.rbi → lib/stripe/services/order_line_item_service.rb} +20 -16
  188. data/lib/stripe/services/order_service.rb +2268 -0
  189. data/lib/stripe/services/payment_attempt_record_service.rb +49 -0
  190. data/lib/stripe/services/payment_intent_service.rb +4625 -252
  191. data/lib/stripe/services/payment_method_configuration_service.rb +210 -0
  192. data/lib/stripe/services/payment_method_service.rb +126 -1
  193. data/lib/stripe/services/payment_record_service.rb +542 -0
  194. data/lib/stripe/services/payout_service.rb +4 -0
  195. data/lib/stripe/services/price_service.rb +19 -0
  196. data/lib/stripe/services/product_service.rb +38 -0
  197. data/lib/stripe/services/promotion_code_service.rb +8 -0
  198. data/{rbi/stripe/services/quote_line_item_service.rbi → lib/stripe/services/quote_line_service.rb} +20 -16
  199. data/{rbi/stripe/services/credit_note_line_item_service.rbi → lib/stripe/services/quote_preview_invoice_service.rb} +20 -16
  200. data/{rbi/stripe/services/payment_link_line_item_service.rbi → lib/stripe/services/quote_preview_subscription_schedule_service.rb} +20 -16
  201. data/lib/stripe/services/quote_service.rb +1726 -7
  202. data/lib/stripe/services/setup_intent_service.rb +556 -9
  203. data/lib/stripe/services/subscription_item_service.rb +75 -3
  204. data/lib/stripe/services/subscription_schedule_service.rb +911 -10
  205. data/lib/stripe/services/subscription_service.rb +253 -9
  206. data/lib/stripe/services/tax/association_service.rb +31 -0
  207. data/lib/stripe/services/tax/form_service.rb +100 -0
  208. data/lib/stripe/services/tax_id_service.rb +8 -2
  209. data/lib/stripe/services/tax_service.rb +3 -1
  210. data/lib/stripe/services/terminal/reader_collected_data_service.rb +28 -0
  211. data/lib/stripe/services/terminal/reader_service.rb +180 -0
  212. data/lib/stripe/services/terminal_service.rb +2 -1
  213. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +148 -0
  214. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +43 -0
  215. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +25 -1
  216. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +25 -1
  217. data/lib/stripe/services/treasury/financial_account_features_service.rb +4 -1
  218. data/lib/stripe/services/treasury/financial_account_service.rb +16 -2
  219. data/lib/stripe/services/treasury/outbound_transfer_service.rb +24 -0
  220. data/lib/stripe/services/v1_services.rb +10 -2
  221. data/lib/stripe/services/v2/core/account_link_service.rb +76 -0
  222. data/lib/stripe/services/v2/core/account_service.rb +4130 -0
  223. data/lib/stripe/services/v2/core/accounts/person_service.rb +1040 -0
  224. data/lib/stripe/services/v2/core/vault/gb_bank_account_service.rb +135 -0
  225. data/lib/stripe/services/v2/core/vault/us_bank_account_service.rb +109 -0
  226. data/lib/stripe/services/v2/core/vault_service.rb +18 -0
  227. data/lib/stripe/services/v2/core_service.rb +4 -1
  228. data/lib/stripe/services/v2/money_management/adjustment_service.rb +75 -0
  229. data/lib/stripe/services/v2/money_management/financial_account_service.rb +44 -0
  230. data/lib/stripe/services/v2/money_management/financial_address_service.rb +81 -0
  231. data/lib/stripe/services/v2/money_management/inbound_transfer_service.rb +126 -0
  232. data/lib/stripe/services/v2/money_management/outbound_payment_quote_service.rb +80 -0
  233. data/lib/stripe/services/v2/money_management/outbound_payment_service.rb +202 -0
  234. data/lib/stripe/services/v2/money_management/outbound_setup_intent_service.rb +237 -0
  235. data/lib/stripe/services/v2/money_management/outbound_transfer_service.rb +174 -0
  236. data/lib/stripe/services/v2/money_management/payout_method_service.rb +95 -0
  237. data/lib/stripe/services/v2/money_management/payout_methods_bank_account_spec_service.rb +32 -0
  238. data/lib/stripe/services/v2/money_management/received_credit_service.rb +71 -0
  239. data/lib/stripe/services/v2/money_management/received_debit_service.rb +44 -0
  240. data/lib/stripe/services/v2/money_management/transaction_entry_service.rb +70 -0
  241. data/lib/stripe/services/v2/money_management/transaction_service.rb +74 -0
  242. data/lib/stripe/services/v2/money_management_service.rb +31 -0
  243. data/lib/stripe/services/v2/test_helper_service.rb +15 -0
  244. data/lib/stripe/services/v2/test_helpers/financial_address_service.rb +50 -0
  245. data/lib/stripe/services/v2_services.rb +4 -2
  246. data/lib/stripe/services.rb +49 -0
  247. data/lib/stripe/stripe_configuration.rb +3 -1
  248. data/lib/stripe/util.rb +7 -1
  249. data/lib/stripe/version.rb +1 -1
  250. data/lib/stripe.rb +55 -0
  251. data/rbi/stripe.rbi +189274 -0
  252. data/stripe.gemspec +4 -1
  253. metadata +140 -324
  254. data/rbi/stripe/resources/account.rbi +0 -4840
  255. data/rbi/stripe/resources/account_link.rbi +0 -74
  256. data/rbi/stripe/resources/account_session.rbi +0 -894
  257. data/rbi/stripe/resources/apple_pay_domain.rbi +0 -90
  258. data/rbi/stripe/resources/application.rbi +0 -20
  259. data/rbi/stripe/resources/application_fee.rbi +0 -118
  260. data/rbi/stripe/resources/application_fee_refund.rbi +0 -37
  261. data/rbi/stripe/resources/apps/secret.rbi +0 -195
  262. data/rbi/stripe/resources/balance.rbi +0 -180
  263. data/rbi/stripe/resources/balance_transaction.rbi +0 -144
  264. data/rbi/stripe/resources/bank_account.rbi +0 -127
  265. data/rbi/stripe/resources/billing/alert.rbi +0 -201
  266. data/rbi/stripe/resources/billing/alert_triggered.rbi +0 -28
  267. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +0 -63
  268. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +0 -147
  269. data/rbi/stripe/resources/billing/credit_grant.rbi +0 -291
  270. data/rbi/stripe/resources/billing/meter.rbi +0 -226
  271. data/rbi/stripe/resources/billing/meter_event.rbi +0 -64
  272. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +0 -64
  273. data/rbi/stripe/resources/billing/meter_event_summary.rbi +0 -35
  274. data/rbi/stripe/resources/billing_portal/configuration.rbi +0 -645
  275. data/rbi/stripe/resources/billing_portal/session.rbi +0 -345
  276. data/rbi/stripe/resources/capability.rbi +0 -125
  277. data/rbi/stripe/resources/card.rbi +0 -125
  278. data/rbi/stripe/resources/cash_balance.rbi +0 -32
  279. data/rbi/stripe/resources/charge.rbi +0 -2054
  280. data/rbi/stripe/resources/checkout/session.rbi +0 -3951
  281. data/rbi/stripe/resources/climate/order.rbi +0 -245
  282. data/rbi/stripe/resources/climate/product.rbi +0 -75
  283. data/rbi/stripe/resources/climate/supplier.rbi +0 -72
  284. data/rbi/stripe/resources/confirmation_token.rbi +0 -1793
  285. data/rbi/stripe/resources/connect_collection_transfer.rbi +0 -26
  286. data/rbi/stripe/resources/country_spec.rbi +0 -85
  287. data/rbi/stripe/resources/coupon.rbi +0 -252
  288. data/rbi/stripe/resources/credit_note.rbi +0 -747
  289. data/rbi/stripe/resources/credit_note_line_item.rbi +0 -101
  290. data/rbi/stripe/resources/customer.rbi +0 -1009
  291. data/rbi/stripe/resources/customer_balance_transaction.rbi +0 -56
  292. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +0 -151
  293. data/rbi/stripe/resources/customer_session.rbi +0 -200
  294. data/rbi/stripe/resources/discount.rbi +0 -53
  295. data/rbi/stripe/resources/dispute.rbi +0 -761
  296. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +0 -58
  297. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +0 -23
  298. data/rbi/stripe/resources/entitlements/feature.rbi +0 -117
  299. data/rbi/stripe/resources/ephemeral_key.rbi +0 -44
  300. data/rbi/stripe/resources/event.rbi +0 -146
  301. data/rbi/stripe/resources/exchange_rate.rbi +0 -66
  302. data/rbi/stripe/resources/file.rbi +0 -143
  303. data/rbi/stripe/resources/file_link.rbi +0 -141
  304. data/rbi/stripe/resources/financial_connections/account.rbi +0 -339
  305. data/rbi/stripe/resources/financial_connections/account_owner.rbi +0 -35
  306. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +0 -23
  307. data/rbi/stripe/resources/financial_connections/session.rbi +0 -123
  308. data/rbi/stripe/resources/financial_connections/transaction.rbi +0 -124
  309. data/rbi/stripe/resources/forwarding/request.rbi +0 -216
  310. data/rbi/stripe/resources/funding_instructions.rbi +0 -437
  311. data/rbi/stripe/resources/identity/verification_report.rbi +0 -351
  312. data/rbi/stripe/resources/identity/verification_session.rbi +0 -517
  313. data/rbi/stripe/resources/invoice.rbi +0 -3733
  314. data/rbi/stripe/resources/invoice_item.rbi +0 -475
  315. data/rbi/stripe/resources/invoice_line_item.rbi +0 -432
  316. data/rbi/stripe/resources/invoice_payment.rbi +0 -114
  317. data/rbi/stripe/resources/invoice_rendering_template.rbi +0 -104
  318. data/rbi/stripe/resources/issuing/authorization.rbi +0 -1283
  319. data/rbi/stripe/resources/issuing/card.rbi +0 -741
  320. data/rbi/stripe/resources/issuing/cardholder.rbi +0 -744
  321. data/rbi/stripe/resources/issuing/dispute.rbi +0 -913
  322. data/rbi/stripe/resources/issuing/personalization_design.rbi +0 -338
  323. data/rbi/stripe/resources/issuing/physical_bundle.rbi +0 -79
  324. data/rbi/stripe/resources/issuing/token.rbi +0 -226
  325. data/rbi/stripe/resources/issuing/transaction.rbi +0 -1061
  326. data/rbi/stripe/resources/line_item.rbi +0 -72
  327. data/rbi/stripe/resources/login_link.rbi +0 -18
  328. data/rbi/stripe/resources/mandate.rbi +0 -187
  329. data/rbi/stripe/resources/payment_intent.rbi +0 -9731
  330. data/rbi/stripe/resources/payment_link.rbi +0 -1801
  331. data/rbi/stripe/resources/payment_method.rbi +0 -1822
  332. data/rbi/stripe/resources/payment_method_configuration.rbi +0 -3154
  333. data/rbi/stripe/resources/payment_method_domain.rbi +0 -212
  334. data/rbi/stripe/resources/payout.rbi +0 -300
  335. data/rbi/stripe/resources/person.rbi +0 -371
  336. data/rbi/stripe/resources/plan.rbi +0 -373
  337. data/rbi/stripe/resources/price.rbi +0 -694
  338. data/rbi/stripe/resources/product.rbi +0 -557
  339. data/rbi/stripe/resources/product_feature.rbi +0 -26
  340. data/rbi/stripe/resources/promotion_code.rbi +0 -261
  341. data/rbi/stripe/resources/quote.rbi +0 -1123
  342. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +0 -98
  343. data/rbi/stripe/resources/radar/value_list.rbi +0 -170
  344. data/rbi/stripe/resources/radar/value_list_item.rbi +0 -131
  345. data/rbi/stripe/resources/refund.rbi +0 -516
  346. data/rbi/stripe/resources/reporting/report_run.rbi +0 -191
  347. data/rbi/stripe/resources/reporting/report_type.rbi +0 -57
  348. data/rbi/stripe/resources/reserve_transaction.rbi +0 -23
  349. data/rbi/stripe/resources/reversal.rbi +0 -51
  350. data/rbi/stripe/resources/review.rbi +0 -154
  351. data/rbi/stripe/resources/setup_attempt.rbi +0 -477
  352. data/rbi/stripe/resources/setup_intent.rbi +0 -3860
  353. data/rbi/stripe/resources/shipping_rate.rbi +0 -305
  354. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +0 -75
  355. data/rbi/stripe/resources/source.rbi +0 -1496
  356. data/rbi/stripe/resources/source_mandate_notification.rbi +0 -77
  357. data/rbi/stripe/resources/source_transaction.rbi +0 -127
  358. data/rbi/stripe/resources/subscription.rbi +0 -1964
  359. data/rbi/stripe/resources/subscription_item.rbi +0 -370
  360. data/rbi/stripe/resources/subscription_schedule.rbi +0 -1495
  361. data/rbi/stripe/resources/tax/calculation.rbi +0 -474
  362. data/rbi/stripe/resources/tax/calculation_line_item.rbi +0 -88
  363. data/rbi/stripe/resources/tax/registration.rbi +0 -2485
  364. data/rbi/stripe/resources/tax/settings.rbi +0 -141
  365. data/rbi/stripe/resources/tax/transaction.rbi +0 -351
  366. data/rbi/stripe/resources/tax/transaction_line_item.rbi +0 -54
  367. data/rbi/stripe/resources/tax_code.rbi +0 -44
  368. data/rbi/stripe/resources/tax_deducted_at_source.rbi +0 -23
  369. data/rbi/stripe/resources/tax_id.rbi +0 -167
  370. data/rbi/stripe/resources/tax_rate.rbi +0 -239
  371. data/rbi/stripe/resources/terminal/configuration.rbi +0 -1388
  372. data/rbi/stripe/resources/terminal/connection_token.rbi +0 -37
  373. data/rbi/stripe/resources/terminal/location.rbi +0 -224
  374. data/rbi/stripe/resources/terminal/reader.rbi +0 -587
  375. data/rbi/stripe/resources/test_helpers/test_clock.rbi +0 -134
  376. data/rbi/stripe/resources/token.rbi +0 -1217
  377. data/rbi/stripe/resources/topup.rbi +0 -222
  378. data/rbi/stripe/resources/transfer.rbi +0 -199
  379. data/rbi/stripe/resources/treasury/credit_reversal.rbi +0 -119
  380. data/rbi/stripe/resources/treasury/debit_reversal.rbi +0 -131
  381. data/rbi/stripe/resources/treasury/financial_account.rbi +0 -865
  382. data/rbi/stripe/resources/treasury/financial_account_features.rbi +0 -260
  383. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +0 -295
  384. data/rbi/stripe/resources/treasury/outbound_payment.rbi +0 -592
  385. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +0 -431
  386. data/rbi/stripe/resources/treasury/received_credit.rbi +0 -302
  387. data/rbi/stripe/resources/treasury/received_debit.rbi +0 -256
  388. data/rbi/stripe/resources/treasury/transaction.rbi +0 -215
  389. data/rbi/stripe/resources/treasury/transaction_entry.rbi +0 -192
  390. data/rbi/stripe/resources/v2/amount.rbi +0 -14
  391. data/rbi/stripe/resources/v2/billing/meter_event.rbi +0 -37
  392. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +0 -41
  393. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +0 -31
  394. data/rbi/stripe/resources/v2/event.rbi +0 -48
  395. data/rbi/stripe/resources/v2/event_destination.rbi +0 -91
  396. data/rbi/stripe/resources/webhook_endpoint.rbi +0 -170
  397. data/rbi/stripe/services/account_capability_service.rbi +0 -51
  398. data/rbi/stripe/services/account_external_account_service.rbi +0 -306
  399. data/rbi/stripe/services/account_link_service.rbi +0 -58
  400. data/rbi/stripe/services/account_login_link_service.rbi +0 -22
  401. data/rbi/stripe/services/account_person_service.rbi +0 -923
  402. data/rbi/stripe/services/account_service.rbi +0 -4143
  403. data/rbi/stripe/services/account_session_service.rbi +0 -572
  404. data/rbi/stripe/services/apple_pay_domain_service.rbi +0 -78
  405. data/rbi/stripe/services/application_fee_refund_service.rbi +0 -93
  406. data/rbi/stripe/services/application_fee_service.rbi +0 -78
  407. data/rbi/stripe/services/apps/secret_service.rbi +0 -151
  408. data/rbi/stripe/services/apps_service.rbi +0 -9
  409. data/rbi/stripe/services/balance_service.rbi +0 -21
  410. data/rbi/stripe/services/balance_transaction_service.rbi +0 -93
  411. data/rbi/stripe/services/billing/alert_service.rbi +0 -152
  412. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +0 -68
  413. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +0 -59
  414. data/rbi/stripe/services/billing/credit_grant_service.rbi +0 -211
  415. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +0 -42
  416. data/rbi/stripe/services/billing/meter_event_service.rbi +0 -42
  417. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +0 -54
  418. data/rbi/stripe/services/billing/meter_service.rbi +0 -163
  419. data/rbi/stripe/services/billing_portal/configuration_service.rbi +0 -511
  420. data/rbi/stripe/services/billing_portal/session_service.rbi +0 -204
  421. data/rbi/stripe/services/billing_portal_service.rbi +0 -10
  422. data/rbi/stripe/services/billing_service.rbi +0 -15
  423. data/rbi/stripe/services/charge_service.rbi +0 -448
  424. data/rbi/stripe/services/checkout/session_line_item_service.rbi +0 -33
  425. data/rbi/stripe/services/checkout/session_service.rbi +0 -2585
  426. data/rbi/stripe/services/checkout_service.rbi +0 -9
  427. data/rbi/stripe/services/climate/order_service.rbi +0 -142
  428. data/rbi/stripe/services/climate/product_service.rbi +0 -46
  429. data/rbi/stripe/services/climate_service.rbi +0 -11
  430. data/rbi/stripe/services/confirmation_token_service.rbi +0 -20
  431. data/rbi/stripe/services/country_spec_service.rbi +0 -44
  432. data/rbi/stripe/services/coupon_service.rbi +0 -196
  433. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +0 -167
  434. data/rbi/stripe/services/credit_note_service.rbi +0 -416
  435. data/rbi/stripe/services/customer_balance_transaction_service.rbi +0 -92
  436. data/rbi/stripe/services/customer_cash_balance_service.rbi +0 -45
  437. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +0 -44
  438. data/rbi/stripe/services/customer_funding_instructions_service.rbi +0 -59
  439. data/rbi/stripe/services/customer_payment_method_service.rbi +0 -57
  440. data/rbi/stripe/services/customer_payment_source_service.rbi +0 -232
  441. data/rbi/stripe/services/customer_service.rbi +0 -651
  442. data/rbi/stripe/services/customer_session_service.rbi +0 -116
  443. data/rbi/stripe/services/customer_tax_id_service.rbi +0 -72
  444. data/rbi/stripe/services/dispute_service.rbi +0 -424
  445. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +0 -55
  446. data/rbi/stripe/services/entitlements/feature_service.rbi +0 -107
  447. data/rbi/stripe/services/entitlements_service.rbi +0 -10
  448. data/rbi/stripe/services/ephemeral_key_service.rbi +0 -53
  449. data/rbi/stripe/services/event_service.rbi +0 -83
  450. data/rbi/stripe/services/exchange_rate_service.rbi +0 -44
  451. data/rbi/stripe/services/file_link_service.rbi +0 -124
  452. data/rbi/stripe/services/file_service.rbi +0 -116
  453. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +0 -42
  454. data/rbi/stripe/services/financial_connections/account_service.rbi +0 -133
  455. data/rbi/stripe/services/financial_connections/session_service.rbi +0 -88
  456. data/rbi/stripe/services/financial_connections/transaction_service.rbi +0 -92
  457. data/rbi/stripe/services/financial_connections_service.rbi +0 -11
  458. data/rbi/stripe/services/forwarding/request_service.rbi +0 -134
  459. data/rbi/stripe/services/forwarding_service.rbi +0 -9
  460. data/rbi/stripe/services/identity/verification_report_service.rbi +0 -87
  461. data/rbi/stripe/services/identity/verification_session_service.rbi +0 -323
  462. data/rbi/stripe/services/identity_service.rbi +0 -10
  463. data/rbi/stripe/services/invoice_item_service.rbi +0 -368
  464. data/rbi/stripe/services/invoice_line_item_service.rbi +0 -259
  465. data/rbi/stripe/services/invoice_payment_service.rbi +0 -71
  466. data/rbi/stripe/services/invoice_rendering_template_service.rbi +0 -82
  467. data/rbi/stripe/services/invoice_service.rbi +0 -2920
  468. data/rbi/stripe/services/issuing/authorization_service.rbi +0 -146
  469. data/rbi/stripe/services/issuing/card_service.rbi +0 -495
  470. data/rbi/stripe/services/issuing/cardholder_service.rbi +0 -587
  471. data/rbi/stripe/services/issuing/dispute_service.rbi +0 -707
  472. data/rbi/stripe/services/issuing/personalization_design_service.rbi +0 -243
  473. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +0 -59
  474. data/rbi/stripe/services/issuing/token_service.rbi +0 -99
  475. data/rbi/stripe/services/issuing/transaction_service.rbi +0 -105
  476. data/rbi/stripe/services/issuing_service.rbi +0 -16
  477. data/rbi/stripe/services/mandate_service.rbi +0 -20
  478. data/rbi/stripe/services/payment_intent_service.rbi +0 -7759
  479. data/rbi/stripe/services/payment_link_service.rbi +0 -1352
  480. data/rbi/stripe/services/payment_method_configuration_service.rbi +0 -2211
  481. data/rbi/stripe/services/payment_method_domain_service.rbi +0 -112
  482. data/rbi/stripe/services/payment_method_service.rbi +0 -840
  483. data/rbi/stripe/services/payout_service.rbi +0 -205
  484. data/rbi/stripe/services/plan_service.rbi +0 -284
  485. data/rbi/stripe/services/price_service.rbi +0 -546
  486. data/rbi/stripe/services/product_feature_service.rbi +0 -69
  487. data/rbi/stripe/services/product_service.rbi +0 -479
  488. data/rbi/stripe/services/promotion_code_service.rbi +0 -214
  489. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +0 -31
  490. data/rbi/stripe/services/quote_service.rbi +0 -686
  491. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +0 -85
  492. data/rbi/stripe/services/radar/value_list_item_service.rbi +0 -111
  493. data/rbi/stripe/services/radar/value_list_service.rbi +0 -143
  494. data/rbi/stripe/services/radar_service.rbi +0 -11
  495. data/rbi/stripe/services/refund_service.rbi +0 -185
  496. data/rbi/stripe/services/reporting/report_run_service.rbi +0 -135
  497. data/rbi/stripe/services/reporting/report_type_service.rbi +0 -35
  498. data/rbi/stripe/services/reporting_service.rbi +0 -10
  499. data/rbi/stripe/services/review_service.rbi +0 -84
  500. data/rbi/stripe/services/setup_attempt_service.rbi +0 -65
  501. data/rbi/stripe/services/setup_intent_service.rbi +0 -3596
  502. data/rbi/stripe/services/shipping_rate_service.rbi +0 -241
  503. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +0 -46
  504. data/rbi/stripe/services/sigma_service.rbi +0 -9
  505. data/rbi/stripe/services/source_service.rbi +0 -663
  506. data/rbi/stripe/services/subscription_item_service.rbi +0 -324
  507. data/rbi/stripe/services/subscription_schedule_service.rbi +0 -1192
  508. data/rbi/stripe/services/subscription_service.rbi +0 -1596
  509. data/rbi/stripe/services/tax/calculation_line_item_service.rbi +0 -33
  510. data/rbi/stripe/services/tax/calculation_service.rbi +0 -230
  511. data/rbi/stripe/services/tax/registration_service.rbi +0 -1689
  512. data/rbi/stripe/services/tax/settings_service.rbi +0 -93
  513. data/rbi/stripe/services/tax/transaction_service.rbi +0 -146
  514. data/rbi/stripe/services/tax_code_service.rbi +0 -44
  515. data/rbi/stripe/services/tax_id_service.rbi +0 -112
  516. data/rbi/stripe/services/tax_rate_service.rbi +0 -185
  517. data/rbi/stripe/services/tax_service.rbi +0 -12
  518. data/rbi/stripe/services/terminal/configuration_service.rbi +0 -1120
  519. data/rbi/stripe/services/terminal/connection_token_service.rbi +0 -25
  520. data/rbi/stripe/services/terminal/location_service.rbi +0 -184
  521. data/rbi/stripe/services/terminal/reader_service.rbi +0 -344
  522. data/rbi/stripe/services/terminal_service.rbi +0 -12
  523. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +0 -746
  524. data/rbi/stripe/services/test_helpers/customer_service.rbi +0 -33
  525. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +0 -848
  526. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +0 -76
  527. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +0 -69
  528. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +0 -711
  529. data/rbi/stripe/services/test_helpers/issuing_service.rbi +0 -14
  530. data/rbi/stripe/services/test_helpers/refund_service.rbi +0 -22
  531. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +0 -62
  532. data/rbi/stripe/services/test_helpers/terminal_service.rbi +0 -11
  533. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +0 -92
  534. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +0 -64
  535. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +0 -125
  536. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +0 -125
  537. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +0 -87
  538. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +0 -87
  539. data/rbi/stripe/services/test_helpers/treasury_service.rbi +0 -15
  540. data/rbi/stripe/services/test_helpers_service.rbi +0 -15
  541. data/rbi/stripe/services/token_service.rbi +0 -1189
  542. data/rbi/stripe/services/topup_service.rbi +0 -176
  543. data/rbi/stripe/services/transfer_reversal_service.rbi +0 -101
  544. data/rbi/stripe/services/transfer_service.rbi +0 -152
  545. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +0 -84
  546. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +0 -88
  547. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +0 -198
  548. data/rbi/stripe/services/treasury/financial_account_service.rbi +0 -562
  549. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +0 -117
  550. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +0 -304
  551. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +0 -157
  552. data/rbi/stripe/services/treasury/received_credit_service.rbi +0 -72
  553. data/rbi/stripe/services/treasury/received_debit_service.rbi +0 -59
  554. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +0 -111
  555. data/rbi/stripe/services/treasury/transaction_service.rbi +0 -122
  556. data/rbi/stripe/services/treasury_service.rbi +0 -18
  557. data/rbi/stripe/services/v1_services.rbi +0 -77
  558. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +0 -39
  559. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +0 -42
  560. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +0 -20
  561. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +0 -55
  562. data/rbi/stripe/services/v2/billing_service.rbi +0 -14
  563. data/rbi/stripe/services/v2/core/event_destination_service.rbi +0 -200
  564. data/rbi/stripe/services/v2/core/event_service.rbi +0 -36
  565. data/rbi/stripe/services/v2/core_service.rbi +0 -12
  566. data/rbi/stripe/services/v2_services.rbi +0 -10
  567. data/rbi/stripe/services/webhook_endpoint_service.rbi +0 -131
@@ -3,10 +3,14 @@
3
3
 
4
4
  module Stripe
5
5
  class QuoteService < StripeService
6
- attr_reader :line_items, :computed_upfront_line_items
6
+ attr_reader :preview_invoices, :preview_subscription_schedules, :lines, :line_items, :computed_upfront_line_items
7
7
 
8
8
  def initialize(requestor)
9
9
  super(requestor)
10
+ @preview_invoices = Stripe::QuotePreviewInvoiceService.new(@requestor)
11
+ @preview_subscription_schedules = Stripe::QuotePreviewSubscriptionScheduleService
12
+ .new(@requestor)
13
+ @lines = Stripe::QuoteLineService.new(@requestor)
10
14
  @line_items = Stripe::QuoteLineItemService.new(@requestor)
11
15
  @computed_upfront_line_items = Stripe::QuoteComputedUpfrontLineItemsService.new(@requestor)
12
16
  end
@@ -14,10 +18,14 @@ module Stripe
14
18
  class ListParams < Stripe::RequestParams
15
19
  # The ID of the customer whose quotes will be retrieved.
16
20
  attr_accessor :customer
21
+ # The ID of the account whose quotes will be retrieved.
22
+ attr_accessor :customer_account
17
23
  # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
18
24
  attr_accessor :ending_before
19
25
  # Specifies which fields in the response should be expanded.
20
26
  attr_accessor :expand
27
+ # The subscription which the quote updates.
28
+ attr_accessor :from_subscription
21
29
  # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
22
30
  attr_accessor :limit
23
31
  # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
@@ -29,16 +37,20 @@ module Stripe
29
37
 
30
38
  def initialize(
31
39
  customer: nil,
40
+ customer_account: nil,
32
41
  ending_before: nil,
33
42
  expand: nil,
43
+ from_subscription: nil,
34
44
  limit: nil,
35
45
  starting_after: nil,
36
46
  status: nil,
37
47
  test_clock: nil
38
48
  )
39
49
  @customer = customer
50
+ @customer_account = customer_account
40
51
  @ending_before = ending_before
41
52
  @expand = expand
53
+ @from_subscription = from_subscription
42
54
  @limit = limit
43
55
  @starting_after = starting_after
44
56
  @status = status
@@ -71,16 +83,44 @@ module Stripe
71
83
  end
72
84
 
73
85
  class Discount < Stripe::RequestParams
86
+ class DiscountEnd < Stripe::RequestParams
87
+ class Duration < Stripe::RequestParams
88
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
89
+ attr_accessor :interval
90
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
91
+ attr_accessor :interval_count
92
+
93
+ def initialize(interval: nil, interval_count: nil)
94
+ @interval = interval
95
+ @interval_count = interval_count
96
+ end
97
+ end
98
+ # Time span for the redeemed discount.
99
+ attr_accessor :duration
100
+ # A precise Unix timestamp for the discount to end. Must be in the future.
101
+ attr_accessor :timestamp
102
+ # The type of calculation made to determine when the discount ends.
103
+ attr_accessor :type
104
+
105
+ def initialize(duration: nil, timestamp: nil, type: nil)
106
+ @duration = duration
107
+ @timestamp = timestamp
108
+ @type = type
109
+ end
110
+ end
74
111
  # ID of the coupon to create a new discount for.
75
112
  attr_accessor :coupon
76
113
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
77
114
  attr_accessor :discount
115
+ # Details to determine how long the discount should be applied for.
116
+ attr_accessor :discount_end
78
117
  # ID of the promotion code to create a new discount for.
79
118
  attr_accessor :promotion_code
80
119
 
81
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
120
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
82
121
  @coupon = coupon
83
122
  @discount = discount
123
+ @discount_end = discount_end
84
124
  @promotion_code = promotion_code
85
125
  end
86
126
  end
@@ -120,18 +160,522 @@ module Stripe
120
160
  end
121
161
  end
122
162
 
163
+ class Line < Stripe::RequestParams
164
+ class Action < Stripe::RequestParams
165
+ class AddDiscount < Stripe::RequestParams
166
+ class DiscountEnd < Stripe::RequestParams
167
+ # The type of calculation made to determine when the discount ends.
168
+ attr_accessor :type
169
+
170
+ def initialize(type: nil)
171
+ @type = type
172
+ end
173
+ end
174
+ # The coupon code to redeem.
175
+ attr_accessor :coupon
176
+ # An ID of an existing discount for a coupon that was already redeemed.
177
+ attr_accessor :discount
178
+ # Details to determine how long the discount should be applied for.
179
+ attr_accessor :discount_end
180
+ # The index, starting at 0, at which to position the new discount. When not supplied, Stripe defaults to appending the discount to the end of the `discounts` array.
181
+ attr_accessor :index
182
+ # The promotion code to redeem.
183
+ attr_accessor :promotion_code
184
+
185
+ def initialize(
186
+ coupon: nil,
187
+ discount: nil,
188
+ discount_end: nil,
189
+ index: nil,
190
+ promotion_code: nil
191
+ )
192
+ @coupon = coupon
193
+ @discount = discount
194
+ @discount_end = discount_end
195
+ @index = index
196
+ @promotion_code = promotion_code
197
+ end
198
+ end
199
+
200
+ class AddItem < Stripe::RequestParams
201
+ class Discount < Stripe::RequestParams
202
+ class DiscountEnd < Stripe::RequestParams
203
+ class Duration < Stripe::RequestParams
204
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
205
+ attr_accessor :interval
206
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
207
+ attr_accessor :interval_count
208
+
209
+ def initialize(interval: nil, interval_count: nil)
210
+ @interval = interval
211
+ @interval_count = interval_count
212
+ end
213
+ end
214
+ # Time span for the redeemed discount.
215
+ attr_accessor :duration
216
+ # A precise Unix timestamp for the discount to end. Must be in the future.
217
+ attr_accessor :timestamp
218
+ # The type of calculation made to determine when the discount ends.
219
+ attr_accessor :type
220
+
221
+ def initialize(duration: nil, timestamp: nil, type: nil)
222
+ @duration = duration
223
+ @timestamp = timestamp
224
+ @type = type
225
+ end
226
+ end
227
+ # ID of the coupon to create a new discount for.
228
+ attr_accessor :coupon
229
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
230
+ attr_accessor :discount
231
+ # Details to determine how long the discount should be applied for.
232
+ attr_accessor :discount_end
233
+ # ID of the promotion code to create a new discount for.
234
+ attr_accessor :promotion_code
235
+
236
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
237
+ @coupon = coupon
238
+ @discount = discount
239
+ @discount_end = discount_end
240
+ @promotion_code = promotion_code
241
+ end
242
+ end
243
+
244
+ class Trial < Stripe::RequestParams
245
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
246
+ attr_accessor :converts_to
247
+ # Determines the type of trial for this item.
248
+ attr_accessor :type
249
+
250
+ def initialize(converts_to: nil, type: nil)
251
+ @converts_to = converts_to
252
+ @type = type
253
+ end
254
+ end
255
+ # The discounts applied to the item. Subscription item discounts are applied before subscription discounts.
256
+ attr_accessor :discounts
257
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
258
+ attr_accessor :metadata
259
+ # The ID of the price object.
260
+ attr_accessor :price
261
+ # Quantity for this item.
262
+ attr_accessor :quantity
263
+ # The tax rates that apply to this subscription item. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item`.
264
+ attr_accessor :tax_rates
265
+ # Options that configure the trial on the subscription item.
266
+ attr_accessor :trial
267
+
268
+ def initialize(
269
+ discounts: nil,
270
+ metadata: nil,
271
+ price: nil,
272
+ quantity: nil,
273
+ tax_rates: nil,
274
+ trial: nil
275
+ )
276
+ @discounts = discounts
277
+ @metadata = metadata
278
+ @price = price
279
+ @quantity = quantity
280
+ @tax_rates = tax_rates
281
+ @trial = trial
282
+ end
283
+ end
284
+
285
+ class RemoveDiscount < Stripe::RequestParams
286
+ # The coupon code to remove from the `discounts` array.
287
+ attr_accessor :coupon
288
+ # The ID of a discount to remove from the `discounts` array.
289
+ attr_accessor :discount
290
+ # The ID of a promotion code to remove from the `discounts` array.
291
+ attr_accessor :promotion_code
292
+
293
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
294
+ @coupon = coupon
295
+ @discount = discount
296
+ @promotion_code = promotion_code
297
+ end
298
+ end
299
+
300
+ class RemoveItem < Stripe::RequestParams
301
+ # ID of a price to remove.
302
+ attr_accessor :price
303
+
304
+ def initialize(price: nil)
305
+ @price = price
306
+ end
307
+ end
308
+
309
+ class SetDiscount < Stripe::RequestParams
310
+ # The coupon code to replace the `discounts` array with.
311
+ attr_accessor :coupon
312
+ # An ID of an existing discount to replace the `discounts` array with.
313
+ attr_accessor :discount
314
+ # An ID of an existing promotion code to replace the `discounts` array with.
315
+ attr_accessor :promotion_code
316
+
317
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
318
+ @coupon = coupon
319
+ @discount = discount
320
+ @promotion_code = promotion_code
321
+ end
322
+ end
323
+
324
+ class SetItem < Stripe::RequestParams
325
+ class Discount < Stripe::RequestParams
326
+ class DiscountEnd < Stripe::RequestParams
327
+ class Duration < Stripe::RequestParams
328
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
329
+ attr_accessor :interval
330
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
331
+ attr_accessor :interval_count
332
+
333
+ def initialize(interval: nil, interval_count: nil)
334
+ @interval = interval
335
+ @interval_count = interval_count
336
+ end
337
+ end
338
+ # Time span for the redeemed discount.
339
+ attr_accessor :duration
340
+ # A precise Unix timestamp for the discount to end. Must be in the future.
341
+ attr_accessor :timestamp
342
+ # The type of calculation made to determine when the discount ends.
343
+ attr_accessor :type
344
+
345
+ def initialize(duration: nil, timestamp: nil, type: nil)
346
+ @duration = duration
347
+ @timestamp = timestamp
348
+ @type = type
349
+ end
350
+ end
351
+ # ID of the coupon to create a new discount for.
352
+ attr_accessor :coupon
353
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
354
+ attr_accessor :discount
355
+ # Details to determine how long the discount should be applied for.
356
+ attr_accessor :discount_end
357
+ # ID of the promotion code to create a new discount for.
358
+ attr_accessor :promotion_code
359
+
360
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
361
+ @coupon = coupon
362
+ @discount = discount
363
+ @discount_end = discount_end
364
+ @promotion_code = promotion_code
365
+ end
366
+ end
367
+
368
+ class Trial < Stripe::RequestParams
369
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
370
+ attr_accessor :converts_to
371
+ # Determines the type of trial for this item.
372
+ attr_accessor :type
373
+
374
+ def initialize(converts_to: nil, type: nil)
375
+ @converts_to = converts_to
376
+ @type = type
377
+ end
378
+ end
379
+ # If an item with the `price` already exists, passing this will override the `discounts` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `discounts`.
380
+ attr_accessor :discounts
381
+ # If an item with the `price` already exists, passing this will override the `metadata` on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `metadata`.
382
+ attr_accessor :metadata
383
+ # The ID of the price object.
384
+ attr_accessor :price
385
+ # If an item with the `price` already exists, passing this will override the quantity on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `quantity`.
386
+ attr_accessor :quantity
387
+ # If an item with the `price` already exists, passing this will override the `tax_rates` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `tax_rates`.
388
+ attr_accessor :tax_rates
389
+ # If an item with the `price` already exists, passing this will override the `trial` configuration on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `trial`.
390
+ attr_accessor :trial
391
+
392
+ def initialize(
393
+ discounts: nil,
394
+ metadata: nil,
395
+ price: nil,
396
+ quantity: nil,
397
+ tax_rates: nil,
398
+ trial: nil
399
+ )
400
+ @discounts = discounts
401
+ @metadata = metadata
402
+ @price = price
403
+ @quantity = quantity
404
+ @tax_rates = tax_rates
405
+ @trial = trial
406
+ end
407
+ end
408
+ # Details for the `add_discount` type.
409
+ attr_accessor :add_discount
410
+ # Details for the `add_item` type.
411
+ attr_accessor :add_item
412
+ # Details for the `add_metadata` type: specify a hash of key-value pairs.
413
+ attr_accessor :add_metadata
414
+ # Details for the `remove_discount` type.
415
+ attr_accessor :remove_discount
416
+ # Details for the `remove_item` type.
417
+ attr_accessor :remove_item
418
+ # Details for the `remove_metadata` type: specify an array of metadata keys.
419
+ attr_accessor :remove_metadata
420
+ # Details for the `set_discounts` type.
421
+ attr_accessor :set_discounts
422
+ # Details for the `set_items` type.
423
+ attr_accessor :set_items
424
+ # Details for the `set_metadata` type: specify an array of key-value pairs.
425
+ attr_accessor :set_metadata
426
+ # The type of action the quote line performs.
427
+ attr_accessor :type
428
+
429
+ def initialize(
430
+ add_discount: nil,
431
+ add_item: nil,
432
+ add_metadata: nil,
433
+ remove_discount: nil,
434
+ remove_item: nil,
435
+ remove_metadata: nil,
436
+ set_discounts: nil,
437
+ set_items: nil,
438
+ set_metadata: nil,
439
+ type: nil
440
+ )
441
+ @add_discount = add_discount
442
+ @add_item = add_item
443
+ @add_metadata = add_metadata
444
+ @remove_discount = remove_discount
445
+ @remove_item = remove_item
446
+ @remove_metadata = remove_metadata
447
+ @set_discounts = set_discounts
448
+ @set_items = set_items
449
+ @set_metadata = set_metadata
450
+ @type = type
451
+ end
452
+ end
453
+
454
+ class AppliesTo < Stripe::RequestParams
455
+ # A custom string that identifies a new subscription schedule being created upon quote acceptance. All quote lines with the same `new_reference` field will be applied to the creation of a new subscription schedule.
456
+ attr_accessor :new_reference
457
+ # The ID of the schedule the line applies to.
458
+ attr_accessor :subscription_schedule
459
+ # Describes whether the quote line is affecting a new schedule or an existing schedule.
460
+ attr_accessor :type
461
+
462
+ def initialize(new_reference: nil, subscription_schedule: nil, type: nil)
463
+ @new_reference = new_reference
464
+ @subscription_schedule = subscription_schedule
465
+ @type = type
466
+ end
467
+ end
468
+
469
+ class CancelSubscriptionSchedule < Stripe::RequestParams
470
+ # Timestamp helper to cancel the underlying schedule on the accompanying line's start date. Must be set to `line_starts_at`.
471
+ attr_accessor :cancel_at
472
+ # If the subscription schedule is `active`, indicates if a final invoice will be generated that contains any un-invoiced metered usage and new/pending proration invoice items. Boolean that defaults to `true`.
473
+ attr_accessor :invoice_now
474
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Boolean that defaults to `true`.
475
+ attr_accessor :prorate
476
+
477
+ def initialize(cancel_at: nil, invoice_now: nil, prorate: nil)
478
+ @cancel_at = cancel_at
479
+ @invoice_now = invoice_now
480
+ @prorate = prorate
481
+ end
482
+ end
483
+
484
+ class EndsAt < Stripe::RequestParams
485
+ class DiscountEnd < Stripe::RequestParams
486
+ # The ID of a specific discount.
487
+ attr_accessor :discount
488
+
489
+ def initialize(discount: nil)
490
+ @discount = discount
491
+ end
492
+ end
493
+
494
+ class Duration < Stripe::RequestParams
495
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
496
+ attr_accessor :interval
497
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
498
+ attr_accessor :interval_count
499
+
500
+ def initialize(interval: nil, interval_count: nil)
501
+ @interval = interval
502
+ @interval_count = interval_count
503
+ end
504
+ end
505
+ # Use the `end` time of a given discount.
506
+ attr_accessor :discount_end
507
+ # Time span for the quote line starting from the `starts_at` date.
508
+ attr_accessor :duration
509
+ # A precise Unix timestamp.
510
+ attr_accessor :timestamp
511
+ # Select a way to pass in `ends_at`.
512
+ attr_accessor :type
513
+
514
+ def initialize(discount_end: nil, duration: nil, timestamp: nil, type: nil)
515
+ @discount_end = discount_end
516
+ @duration = duration
517
+ @timestamp = timestamp
518
+ @type = type
519
+ end
520
+ end
521
+
522
+ class SetPauseCollection < Stripe::RequestParams
523
+ class Set < Stripe::RequestParams
524
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
525
+ attr_accessor :behavior
526
+
527
+ def initialize(behavior: nil)
528
+ @behavior = behavior
529
+ end
530
+ end
531
+ # Details of the pause_collection behavior to apply to the amendment.
532
+ attr_accessor :set
533
+ # Determines the type of the pause_collection amendment.
534
+ attr_accessor :type
535
+
536
+ def initialize(set: nil, type: nil)
537
+ @set = set
538
+ @type = type
539
+ end
540
+ end
541
+
542
+ class StartsAt < Stripe::RequestParams
543
+ class DiscountEnd < Stripe::RequestParams
544
+ # The ID of a specific discount.
545
+ attr_accessor :discount
546
+
547
+ def initialize(discount: nil)
548
+ @discount = discount
549
+ end
550
+ end
551
+
552
+ class LineEndsAt < Stripe::RequestParams
553
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
554
+ attr_accessor :index
555
+
556
+ def initialize(index: nil)
557
+ @index = index
558
+ end
559
+ end
560
+ # Use the `end` time of a given discount.
561
+ attr_accessor :discount_end
562
+ # The timestamp the given line ends at.
563
+ attr_accessor :line_ends_at
564
+ # A precise Unix timestamp.
565
+ attr_accessor :timestamp
566
+ # Select a way to pass in `starts_at`.
567
+ attr_accessor :type
568
+
569
+ def initialize(discount_end: nil, line_ends_at: nil, timestamp: nil, type: nil)
570
+ @discount_end = discount_end
571
+ @line_ends_at = line_ends_at
572
+ @timestamp = timestamp
573
+ @type = type
574
+ end
575
+ end
576
+
577
+ class TrialSettings < Stripe::RequestParams
578
+ class EndBehavior < Stripe::RequestParams
579
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
580
+ attr_accessor :prorate_up_front
581
+
582
+ def initialize(prorate_up_front: nil)
583
+ @prorate_up_front = prorate_up_front
584
+ end
585
+ end
586
+ # Defines how the subscription should behave when a trial ends.
587
+ attr_accessor :end_behavior
588
+
589
+ def initialize(end_behavior: nil)
590
+ @end_behavior = end_behavior
591
+ end
592
+ end
593
+ # An array of operations the quote line performs.
594
+ attr_accessor :actions
595
+ # Details to identify the subscription schedule the quote line applies to.
596
+ attr_accessor :applies_to
597
+ # For point-in-time quote lines (having no `ends_at` timestamp), this attribute lets you set or remove whether the subscription's billing cycle anchor is reset at the Quote Line `starts_at` timestamp.For time-span based quote lines (having both `starts_at` and `ends_at`), the only valid value is `automatic`, which removes any previously configured billing cycle anchor resets during the window of time spanning the quote line.
598
+ attr_accessor :billing_cycle_anchor
599
+ # A point-in-time operation that cancels an existing subscription schedule at the line's starts_at timestamp. Currently only compatible with `quote_acceptance_date` for `starts_at`. When using cancel_subscription_schedule, the subscription schedule on the quote remains unalterable, except for modifications to the metadata, collection_method or invoice_settings.
600
+ attr_accessor :cancel_subscription_schedule
601
+ # Details to identify the end of the time range modified by the proposed change. If not supplied, the quote line is considered a point-in-time operation that only affects the exact timestamp at `starts_at`, and a restricted set of attributes is supported on the quote line.
602
+ attr_accessor :ends_at
603
+ # Changes to how Stripe handles prorations during the quote line's time span. Affects if and how prorations are created when a future phase starts.
604
+ attr_accessor :proration_behavior
605
+ # Defines how to pause collection for the underlying subscription throughout the duration of the amendment.
606
+ attr_accessor :set_pause_collection
607
+ # Timestamp helper to end the underlying schedule early, based on the acompanying line's start or end date.
608
+ attr_accessor :set_schedule_end
609
+ # Details to identify the earliest timestamp where the proposed change should take effect.
610
+ attr_accessor :starts_at
611
+ # Settings related to subscription trials.
612
+ attr_accessor :trial_settings
613
+
614
+ def initialize(
615
+ actions: nil,
616
+ applies_to: nil,
617
+ billing_cycle_anchor: nil,
618
+ cancel_subscription_schedule: nil,
619
+ ends_at: nil,
620
+ proration_behavior: nil,
621
+ set_pause_collection: nil,
622
+ set_schedule_end: nil,
623
+ starts_at: nil,
624
+ trial_settings: nil
625
+ )
626
+ @actions = actions
627
+ @applies_to = applies_to
628
+ @billing_cycle_anchor = billing_cycle_anchor
629
+ @cancel_subscription_schedule = cancel_subscription_schedule
630
+ @ends_at = ends_at
631
+ @proration_behavior = proration_behavior
632
+ @set_pause_collection = set_pause_collection
633
+ @set_schedule_end = set_schedule_end
634
+ @starts_at = starts_at
635
+ @trial_settings = trial_settings
636
+ end
637
+ end
638
+
123
639
  class LineItem < Stripe::RequestParams
124
640
  class Discount < Stripe::RequestParams
641
+ class DiscountEnd < Stripe::RequestParams
642
+ class Duration < Stripe::RequestParams
643
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
644
+ attr_accessor :interval
645
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
646
+ attr_accessor :interval_count
647
+
648
+ def initialize(interval: nil, interval_count: nil)
649
+ @interval = interval
650
+ @interval_count = interval_count
651
+ end
652
+ end
653
+ # Time span for the redeemed discount.
654
+ attr_accessor :duration
655
+ # A precise Unix timestamp for the discount to end. Must be in the future.
656
+ attr_accessor :timestamp
657
+ # The type of calculation made to determine when the discount ends.
658
+ attr_accessor :type
659
+
660
+ def initialize(duration: nil, timestamp: nil, type: nil)
661
+ @duration = duration
662
+ @timestamp = timestamp
663
+ @type = type
664
+ end
665
+ end
125
666
  # ID of the coupon to create a new discount for.
126
667
  attr_accessor :coupon
127
668
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
128
669
  attr_accessor :discount
670
+ # Details to determine how long the discount should be applied for.
671
+ attr_accessor :discount_end
129
672
  # ID of the promotion code to create a new discount for.
130
673
  attr_accessor :promotion_code
131
674
 
132
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
675
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
133
676
  @coupon = coupon
134
677
  @discount = discount
678
+ @discount_end = discount_end
135
679
  @promotion_code = promotion_code
136
680
  end
137
681
  end
@@ -198,23 +742,281 @@ module Stripe
198
742
  end
199
743
 
200
744
  class SubscriptionData < Stripe::RequestParams
745
+ class BillOnAcceptance < Stripe::RequestParams
746
+ class BillFrom < Stripe::RequestParams
747
+ class LineStartsAt < Stripe::RequestParams
748
+ # The ID of a quote line.
749
+ attr_accessor :id
750
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
751
+ attr_accessor :index
752
+
753
+ def initialize(id: nil, index: nil)
754
+ @id = id
755
+ @index = index
756
+ end
757
+ end
758
+ # Details of a Quote line to start the bill period from.
759
+ attr_accessor :line_starts_at
760
+ # A precise Unix timestamp.
761
+ attr_accessor :timestamp
762
+ # The type of method to specify the `bill_from` time.
763
+ attr_accessor :type
764
+
765
+ def initialize(line_starts_at: nil, timestamp: nil, type: nil)
766
+ @line_starts_at = line_starts_at
767
+ @timestamp = timestamp
768
+ @type = type
769
+ end
770
+ end
771
+
772
+ class BillUntil < Stripe::RequestParams
773
+ class Duration < Stripe::RequestParams
774
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
775
+ attr_accessor :interval
776
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
777
+ attr_accessor :interval_count
778
+
779
+ def initialize(interval: nil, interval_count: nil)
780
+ @interval = interval
781
+ @interval_count = interval_count
782
+ end
783
+ end
784
+
785
+ class LineEndsAt < Stripe::RequestParams
786
+ # The ID of a quote line.
787
+ attr_accessor :id
788
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
789
+ attr_accessor :index
790
+
791
+ def initialize(id: nil, index: nil)
792
+ @id = id
793
+ @index = index
794
+ end
795
+ end
796
+ # Details of the duration over which to bill.
797
+ attr_accessor :duration
798
+ # Details of a Quote line item from which to bill until.
799
+ attr_accessor :line_ends_at
800
+ # A precise Unix timestamp.
801
+ attr_accessor :timestamp
802
+ # The type of method to specify the `bill_until` time.
803
+ attr_accessor :type
804
+
805
+ def initialize(duration: nil, line_ends_at: nil, timestamp: nil, type: nil)
806
+ @duration = duration
807
+ @line_ends_at = line_ends_at
808
+ @timestamp = timestamp
809
+ @type = type
810
+ end
811
+ end
812
+ # The start of the period to bill from when the Quote is accepted.
813
+ attr_accessor :bill_from
814
+ # The end of the period to bill until when the Quote is accepted.
815
+ attr_accessor :bill_until
816
+
817
+ def initialize(bill_from: nil, bill_until: nil)
818
+ @bill_from = bill_from
819
+ @bill_until = bill_until
820
+ end
821
+ end
822
+
823
+ class Prebilling < Stripe::RequestParams
824
+ # This is used to determine the number of billing cycles to prebill.
825
+ attr_accessor :iterations
826
+
827
+ def initialize(iterations: nil)
828
+ @iterations = iterations
829
+ end
830
+ end
831
+ # Describes the period to bill for upon accepting the quote.
832
+ attr_accessor :bill_on_acceptance
833
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
834
+ attr_accessor :billing_behavior
835
+ # When specified as `reset`, the subscription will always start a new billing period when the quote is accepted.
836
+ attr_accessor :billing_cycle_anchor
201
837
  # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
202
838
  attr_accessor :description
203
839
  # When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. When updating a subscription, the date of which the subscription will be updated using a subscription schedule. The special value `current_period_end` can be provided to update a subscription at the end of its current period. The `effective_date` is ignored if it is in the past when the quote is accepted.
204
840
  attr_accessor :effective_date
841
+ # Behavior of the subscription schedule and underlying subscription when it ends.
842
+ attr_accessor :end_behavior
843
+ # The id of a subscription that the quote will update. By default, the quote will contain the state of the subscription (such as line items, collection method and billing thresholds) unless overridden.
844
+ attr_accessor :from_subscription
205
845
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values.
206
846
  attr_accessor :metadata
847
+ # If specified, the invoicing for the given billing cycle iterations will be processed when the quote is accepted. Cannot be used with `effective_date`.
848
+ attr_accessor :prebilling
849
+ # Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations). When creating a subscription, valid values are `create_prorations` or `none`.
850
+ #
851
+ # When updating a subscription, valid values are `create_prorations`, `none`, or `always_invoice`.
852
+ #
853
+ # Passing `create_prorations` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://stripe.com/docs/subscriptions/upgrading-downgrading#immediate-payment). In order to always invoice immediately for prorations, pass `always_invoice`.
854
+ #
855
+ # Prorations can be disabled by passing `none`.
856
+ attr_accessor :proration_behavior
207
857
  # Integer representing the number of trial period days before the customer is charged for the first time.
208
858
  attr_accessor :trial_period_days
209
859
 
210
- def initialize(description: nil, effective_date: nil, metadata: nil, trial_period_days: nil)
860
+ def initialize(
861
+ bill_on_acceptance: nil,
862
+ billing_behavior: nil,
863
+ billing_cycle_anchor: nil,
864
+ description: nil,
865
+ effective_date: nil,
866
+ end_behavior: nil,
867
+ from_subscription: nil,
868
+ metadata: nil,
869
+ prebilling: nil,
870
+ proration_behavior: nil,
871
+ trial_period_days: nil
872
+ )
873
+ @bill_on_acceptance = bill_on_acceptance
874
+ @billing_behavior = billing_behavior
875
+ @billing_cycle_anchor = billing_cycle_anchor
211
876
  @description = description
212
877
  @effective_date = effective_date
878
+ @end_behavior = end_behavior
879
+ @from_subscription = from_subscription
213
880
  @metadata = metadata
881
+ @prebilling = prebilling
882
+ @proration_behavior = proration_behavior
214
883
  @trial_period_days = trial_period_days
215
884
  end
216
885
  end
217
886
 
887
+ class SubscriptionDataOverride < Stripe::RequestParams
888
+ class AppliesTo < Stripe::RequestParams
889
+ # A custom string that identifies a new subscription schedule being created upon quote acceptance. All quote lines with the same `new_reference` field will be applied to the creation of a new subscription schedule.
890
+ attr_accessor :new_reference
891
+ # The ID of the schedule the line applies to.
892
+ attr_accessor :subscription_schedule
893
+ # Describes whether the quote line is affecting a new schedule or an existing schedule.
894
+ attr_accessor :type
895
+
896
+ def initialize(new_reference: nil, subscription_schedule: nil, type: nil)
897
+ @new_reference = new_reference
898
+ @subscription_schedule = subscription_schedule
899
+ @type = type
900
+ end
901
+ end
902
+
903
+ class BillOnAcceptance < Stripe::RequestParams
904
+ class BillFrom < Stripe::RequestParams
905
+ class LineStartsAt < Stripe::RequestParams
906
+ # The ID of a quote line.
907
+ attr_accessor :id
908
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
909
+ attr_accessor :index
910
+
911
+ def initialize(id: nil, index: nil)
912
+ @id = id
913
+ @index = index
914
+ end
915
+ end
916
+ # Details of a Quote line to start the bill period from.
917
+ attr_accessor :line_starts_at
918
+ # A precise Unix timestamp.
919
+ attr_accessor :timestamp
920
+ # The type of method to specify the `bill_from` time.
921
+ attr_accessor :type
922
+
923
+ def initialize(line_starts_at: nil, timestamp: nil, type: nil)
924
+ @line_starts_at = line_starts_at
925
+ @timestamp = timestamp
926
+ @type = type
927
+ end
928
+ end
929
+
930
+ class BillUntil < Stripe::RequestParams
931
+ class Duration < Stripe::RequestParams
932
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
933
+ attr_accessor :interval
934
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
935
+ attr_accessor :interval_count
936
+
937
+ def initialize(interval: nil, interval_count: nil)
938
+ @interval = interval
939
+ @interval_count = interval_count
940
+ end
941
+ end
942
+
943
+ class LineEndsAt < Stripe::RequestParams
944
+ # The ID of a quote line.
945
+ attr_accessor :id
946
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
947
+ attr_accessor :index
948
+
949
+ def initialize(id: nil, index: nil)
950
+ @id = id
951
+ @index = index
952
+ end
953
+ end
954
+ # Details of the duration over which to bill.
955
+ attr_accessor :duration
956
+ # Details of a Quote line item from which to bill until.
957
+ attr_accessor :line_ends_at
958
+ # A precise Unix timestamp.
959
+ attr_accessor :timestamp
960
+ # The type of method to specify the `bill_until` time.
961
+ attr_accessor :type
962
+
963
+ def initialize(duration: nil, line_ends_at: nil, timestamp: nil, type: nil)
964
+ @duration = duration
965
+ @line_ends_at = line_ends_at
966
+ @timestamp = timestamp
967
+ @type = type
968
+ end
969
+ end
970
+ # The start of the period to bill from when the Quote is accepted.
971
+ attr_accessor :bill_from
972
+ # The end of the period to bill until when the Quote is accepted.
973
+ attr_accessor :bill_until
974
+
975
+ def initialize(bill_from: nil, bill_until: nil)
976
+ @bill_from = bill_from
977
+ @bill_until = bill_until
978
+ end
979
+ end
980
+ # Whether the override applies to an existing Subscription Schedule or a new Subscription Schedule.
981
+ attr_accessor :applies_to
982
+ # Describes the period to bill for upon accepting the quote.
983
+ attr_accessor :bill_on_acceptance
984
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
985
+ attr_accessor :billing_behavior
986
+ # The customer the Subscription Data override applies to. This is only relevant when `applies_to.type=new_reference`.
987
+ attr_accessor :customer
988
+ # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
989
+ attr_accessor :description
990
+ # Behavior of the subscription schedule and underlying subscription when it ends.
991
+ attr_accessor :end_behavior
992
+ # Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations). When creating a subscription, valid values are `create_prorations` or `none`.
993
+ #
994
+ # When updating a subscription, valid values are `create_prorations`, `none`, or `always_invoice`.
995
+ #
996
+ # Passing `create_prorations` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://stripe.com/docs/subscriptions/upgrading-downgrading#immediate-payment). In order to always invoice immediately for prorations, pass `always_invoice`.
997
+ #
998
+ # Prorations can be disabled by passing `none`.
999
+ attr_accessor :proration_behavior
1000
+
1001
+ def initialize(
1002
+ applies_to: nil,
1003
+ bill_on_acceptance: nil,
1004
+ billing_behavior: nil,
1005
+ customer: nil,
1006
+ description: nil,
1007
+ end_behavior: nil,
1008
+ proration_behavior: nil
1009
+ )
1010
+ @applies_to = applies_to
1011
+ @bill_on_acceptance = bill_on_acceptance
1012
+ @billing_behavior = billing_behavior
1013
+ @customer = customer
1014
+ @description = description
1015
+ @end_behavior = end_behavior
1016
+ @proration_behavior = proration_behavior
1017
+ end
1018
+ end
1019
+
218
1020
  class TransferData < Stripe::RequestParams
219
1021
  # The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. There cannot be any line items with recurring prices when using this field.
220
1022
  attr_accessor :amount
@@ -229,6 +1031,8 @@ module Stripe
229
1031
  @destination = destination
230
1032
  end
231
1033
  end
1034
+ # Set to true to allow quote lines to have `starts_at` in the past if collection is paused between `starts_at` and now.
1035
+ attr_accessor :allow_backdated_lines
232
1036
  # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field.
233
1037
  attr_accessor :application_fee_amount
234
1038
  # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field.
@@ -239,6 +1043,8 @@ module Stripe
239
1043
  attr_accessor :collection_method
240
1044
  # The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.
241
1045
  attr_accessor :customer
1046
+ # The account for which this quote belongs to. A customer or account is required before finalizing the quote. Once specified, it cannot be changed.
1047
+ attr_accessor :customer_account
242
1048
  # The tax rates that will apply to any line item that does not have `tax_rates` set.
243
1049
  attr_accessor :default_tax_rates
244
1050
  # A description that will be displayed on the quote PDF. If no value is passed, the default description configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used.
@@ -259,23 +1065,29 @@ module Stripe
259
1065
  attr_accessor :invoice_settings
260
1066
  # A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost.
261
1067
  attr_accessor :line_items
1068
+ # A list of [quote lines](https://docs.stripe.com/api/quote_lines) on the quote. These lines describe changes, in the order provided, that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
1069
+ attr_accessor :lines
262
1070
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
263
1071
  attr_accessor :metadata
264
1072
  # The account on behalf of which to charge.
265
1073
  attr_accessor :on_behalf_of
266
1074
  # When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created.
267
1075
  attr_accessor :subscription_data
1076
+ # List representing overrides for `subscription_data` configurations for specific subscription schedules.
1077
+ attr_accessor :subscription_data_overrides
268
1078
  # ID of the test clock to attach to the quote.
269
1079
  attr_accessor :test_clock
270
1080
  # The data with which to automatically create a Transfer for each of the invoices.
271
1081
  attr_accessor :transfer_data
272
1082
 
273
1083
  def initialize(
1084
+ allow_backdated_lines: nil,
274
1085
  application_fee_amount: nil,
275
1086
  application_fee_percent: nil,
276
1087
  automatic_tax: nil,
277
1088
  collection_method: nil,
278
1089
  customer: nil,
1090
+ customer_account: nil,
279
1091
  default_tax_rates: nil,
280
1092
  description: nil,
281
1093
  discounts: nil,
@@ -286,17 +1098,21 @@ module Stripe
286
1098
  header: nil,
287
1099
  invoice_settings: nil,
288
1100
  line_items: nil,
1101
+ lines: nil,
289
1102
  metadata: nil,
290
1103
  on_behalf_of: nil,
291
1104
  subscription_data: nil,
1105
+ subscription_data_overrides: nil,
292
1106
  test_clock: nil,
293
1107
  transfer_data: nil
294
1108
  )
1109
+ @allow_backdated_lines = allow_backdated_lines
295
1110
  @application_fee_amount = application_fee_amount
296
1111
  @application_fee_percent = application_fee_percent
297
1112
  @automatic_tax = automatic_tax
298
1113
  @collection_method = collection_method
299
1114
  @customer = customer
1115
+ @customer_account = customer_account
300
1116
  @default_tax_rates = default_tax_rates
301
1117
  @description = description
302
1118
  @discounts = discounts
@@ -307,9 +1123,11 @@ module Stripe
307
1123
  @header = header
308
1124
  @invoice_settings = invoice_settings
309
1125
  @line_items = line_items
1126
+ @lines = lines
310
1127
  @metadata = metadata
311
1128
  @on_behalf_of = on_behalf_of
312
1129
  @subscription_data = subscription_data
1130
+ @subscription_data_overrides = subscription_data_overrides
313
1131
  @test_clock = test_clock
314
1132
  @transfer_data = transfer_data
315
1133
  end
@@ -349,16 +1167,44 @@ module Stripe
349
1167
  end
350
1168
 
351
1169
  class Discount < Stripe::RequestParams
1170
+ class DiscountEnd < Stripe::RequestParams
1171
+ class Duration < Stripe::RequestParams
1172
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1173
+ attr_accessor :interval
1174
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1175
+ attr_accessor :interval_count
1176
+
1177
+ def initialize(interval: nil, interval_count: nil)
1178
+ @interval = interval
1179
+ @interval_count = interval_count
1180
+ end
1181
+ end
1182
+ # Time span for the redeemed discount.
1183
+ attr_accessor :duration
1184
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1185
+ attr_accessor :timestamp
1186
+ # The type of calculation made to determine when the discount ends.
1187
+ attr_accessor :type
1188
+
1189
+ def initialize(duration: nil, timestamp: nil, type: nil)
1190
+ @duration = duration
1191
+ @timestamp = timestamp
1192
+ @type = type
1193
+ end
1194
+ end
352
1195
  # ID of the coupon to create a new discount for.
353
1196
  attr_accessor :coupon
354
1197
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
355
1198
  attr_accessor :discount
1199
+ # Details to determine how long the discount should be applied for.
1200
+ attr_accessor :discount_end
356
1201
  # ID of the promotion code to create a new discount for.
357
1202
  attr_accessor :promotion_code
358
1203
 
359
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
1204
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
360
1205
  @coupon = coupon
361
1206
  @discount = discount
1207
+ @discount_end = discount_end
362
1208
  @promotion_code = promotion_code
363
1209
  end
364
1210
  end
@@ -386,18 +1232,529 @@ module Stripe
386
1232
  end
387
1233
  end
388
1234
 
1235
+ class Line < Stripe::RequestParams
1236
+ class Action < Stripe::RequestParams
1237
+ class AddDiscount < Stripe::RequestParams
1238
+ class DiscountEnd < Stripe::RequestParams
1239
+ # The type of calculation made to determine when the discount ends.
1240
+ attr_accessor :type
1241
+
1242
+ def initialize(type: nil)
1243
+ @type = type
1244
+ end
1245
+ end
1246
+ # The coupon code to redeem.
1247
+ attr_accessor :coupon
1248
+ # An ID of an existing discount for a coupon that was already redeemed.
1249
+ attr_accessor :discount
1250
+ # Details to determine how long the discount should be applied for.
1251
+ attr_accessor :discount_end
1252
+ # The index, starting at 0, at which to position the new discount. When not supplied, Stripe defaults to appending the discount to the end of the `discounts` array.
1253
+ attr_accessor :index
1254
+ # The promotion code to redeem.
1255
+ attr_accessor :promotion_code
1256
+
1257
+ def initialize(
1258
+ coupon: nil,
1259
+ discount: nil,
1260
+ discount_end: nil,
1261
+ index: nil,
1262
+ promotion_code: nil
1263
+ )
1264
+ @coupon = coupon
1265
+ @discount = discount
1266
+ @discount_end = discount_end
1267
+ @index = index
1268
+ @promotion_code = promotion_code
1269
+ end
1270
+ end
1271
+
1272
+ class AddItem < Stripe::RequestParams
1273
+ class Discount < Stripe::RequestParams
1274
+ class DiscountEnd < Stripe::RequestParams
1275
+ class Duration < Stripe::RequestParams
1276
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1277
+ attr_accessor :interval
1278
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1279
+ attr_accessor :interval_count
1280
+
1281
+ def initialize(interval: nil, interval_count: nil)
1282
+ @interval = interval
1283
+ @interval_count = interval_count
1284
+ end
1285
+ end
1286
+ # Time span for the redeemed discount.
1287
+ attr_accessor :duration
1288
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1289
+ attr_accessor :timestamp
1290
+ # The type of calculation made to determine when the discount ends.
1291
+ attr_accessor :type
1292
+
1293
+ def initialize(duration: nil, timestamp: nil, type: nil)
1294
+ @duration = duration
1295
+ @timestamp = timestamp
1296
+ @type = type
1297
+ end
1298
+ end
1299
+ # ID of the coupon to create a new discount for.
1300
+ attr_accessor :coupon
1301
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1302
+ attr_accessor :discount
1303
+ # Details to determine how long the discount should be applied for.
1304
+ attr_accessor :discount_end
1305
+ # ID of the promotion code to create a new discount for.
1306
+ attr_accessor :promotion_code
1307
+
1308
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
1309
+ @coupon = coupon
1310
+ @discount = discount
1311
+ @discount_end = discount_end
1312
+ @promotion_code = promotion_code
1313
+ end
1314
+ end
1315
+
1316
+ class Trial < Stripe::RequestParams
1317
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
1318
+ attr_accessor :converts_to
1319
+ # Determines the type of trial for this item.
1320
+ attr_accessor :type
1321
+
1322
+ def initialize(converts_to: nil, type: nil)
1323
+ @converts_to = converts_to
1324
+ @type = type
1325
+ end
1326
+ end
1327
+ # The discounts applied to the item. Subscription item discounts are applied before subscription discounts.
1328
+ attr_accessor :discounts
1329
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
1330
+ attr_accessor :metadata
1331
+ # The ID of the price object.
1332
+ attr_accessor :price
1333
+ # Quantity for this item.
1334
+ attr_accessor :quantity
1335
+ # The tax rates that apply to this subscription item. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item`.
1336
+ attr_accessor :tax_rates
1337
+ # Options that configure the trial on the subscription item.
1338
+ attr_accessor :trial
1339
+
1340
+ def initialize(
1341
+ discounts: nil,
1342
+ metadata: nil,
1343
+ price: nil,
1344
+ quantity: nil,
1345
+ tax_rates: nil,
1346
+ trial: nil
1347
+ )
1348
+ @discounts = discounts
1349
+ @metadata = metadata
1350
+ @price = price
1351
+ @quantity = quantity
1352
+ @tax_rates = tax_rates
1353
+ @trial = trial
1354
+ end
1355
+ end
1356
+
1357
+ class RemoveDiscount < Stripe::RequestParams
1358
+ # The coupon code to remove from the `discounts` array.
1359
+ attr_accessor :coupon
1360
+ # The ID of a discount to remove from the `discounts` array.
1361
+ attr_accessor :discount
1362
+ # The ID of a promotion code to remove from the `discounts` array.
1363
+ attr_accessor :promotion_code
1364
+
1365
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
1366
+ @coupon = coupon
1367
+ @discount = discount
1368
+ @promotion_code = promotion_code
1369
+ end
1370
+ end
1371
+
1372
+ class RemoveItem < Stripe::RequestParams
1373
+ # ID of a price to remove.
1374
+ attr_accessor :price
1375
+
1376
+ def initialize(price: nil)
1377
+ @price = price
1378
+ end
1379
+ end
1380
+
1381
+ class SetDiscount < Stripe::RequestParams
1382
+ # The coupon code to replace the `discounts` array with.
1383
+ attr_accessor :coupon
1384
+ # An ID of an existing discount to replace the `discounts` array with.
1385
+ attr_accessor :discount
1386
+ # An ID of an existing promotion code to replace the `discounts` array with.
1387
+ attr_accessor :promotion_code
1388
+
1389
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
1390
+ @coupon = coupon
1391
+ @discount = discount
1392
+ @promotion_code = promotion_code
1393
+ end
1394
+ end
1395
+
1396
+ class SetItem < Stripe::RequestParams
1397
+ class Discount < Stripe::RequestParams
1398
+ class DiscountEnd < Stripe::RequestParams
1399
+ class Duration < Stripe::RequestParams
1400
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1401
+ attr_accessor :interval
1402
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1403
+ attr_accessor :interval_count
1404
+
1405
+ def initialize(interval: nil, interval_count: nil)
1406
+ @interval = interval
1407
+ @interval_count = interval_count
1408
+ end
1409
+ end
1410
+ # Time span for the redeemed discount.
1411
+ attr_accessor :duration
1412
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1413
+ attr_accessor :timestamp
1414
+ # The type of calculation made to determine when the discount ends.
1415
+ attr_accessor :type
1416
+
1417
+ def initialize(duration: nil, timestamp: nil, type: nil)
1418
+ @duration = duration
1419
+ @timestamp = timestamp
1420
+ @type = type
1421
+ end
1422
+ end
1423
+ # ID of the coupon to create a new discount for.
1424
+ attr_accessor :coupon
1425
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1426
+ attr_accessor :discount
1427
+ # Details to determine how long the discount should be applied for.
1428
+ attr_accessor :discount_end
1429
+ # ID of the promotion code to create a new discount for.
1430
+ attr_accessor :promotion_code
1431
+
1432
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
1433
+ @coupon = coupon
1434
+ @discount = discount
1435
+ @discount_end = discount_end
1436
+ @promotion_code = promotion_code
1437
+ end
1438
+ end
1439
+
1440
+ class Trial < Stripe::RequestParams
1441
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
1442
+ attr_accessor :converts_to
1443
+ # Determines the type of trial for this item.
1444
+ attr_accessor :type
1445
+
1446
+ def initialize(converts_to: nil, type: nil)
1447
+ @converts_to = converts_to
1448
+ @type = type
1449
+ end
1450
+ end
1451
+ # If an item with the `price` already exists, passing this will override the `discounts` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `discounts`.
1452
+ attr_accessor :discounts
1453
+ # If an item with the `price` already exists, passing this will override the `metadata` on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `metadata`.
1454
+ attr_accessor :metadata
1455
+ # The ID of the price object.
1456
+ attr_accessor :price
1457
+ # If an item with the `price` already exists, passing this will override the quantity on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `quantity`.
1458
+ attr_accessor :quantity
1459
+ # If an item with the `price` already exists, passing this will override the `tax_rates` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `tax_rates`.
1460
+ attr_accessor :tax_rates
1461
+ # If an item with the `price` already exists, passing this will override the `trial` configuration on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `trial`.
1462
+ attr_accessor :trial
1463
+
1464
+ def initialize(
1465
+ discounts: nil,
1466
+ metadata: nil,
1467
+ price: nil,
1468
+ quantity: nil,
1469
+ tax_rates: nil,
1470
+ trial: nil
1471
+ )
1472
+ @discounts = discounts
1473
+ @metadata = metadata
1474
+ @price = price
1475
+ @quantity = quantity
1476
+ @tax_rates = tax_rates
1477
+ @trial = trial
1478
+ end
1479
+ end
1480
+ # Details for the `add_discount` type.
1481
+ attr_accessor :add_discount
1482
+ # Details for the `add_item` type.
1483
+ attr_accessor :add_item
1484
+ # Details for the `add_metadata` type: specify a hash of key-value pairs.
1485
+ attr_accessor :add_metadata
1486
+ # Details for the `remove_discount` type.
1487
+ attr_accessor :remove_discount
1488
+ # Details for the `remove_item` type.
1489
+ attr_accessor :remove_item
1490
+ # Details for the `remove_metadata` type: specify an array of metadata keys.
1491
+ attr_accessor :remove_metadata
1492
+ # Details for the `set_discounts` type.
1493
+ attr_accessor :set_discounts
1494
+ # Details for the `set_items` type.
1495
+ attr_accessor :set_items
1496
+ # Details for the `set_metadata` type: specify an array of key-value pairs.
1497
+ attr_accessor :set_metadata
1498
+ # The type of action the quote line performs.
1499
+ attr_accessor :type
1500
+
1501
+ def initialize(
1502
+ add_discount: nil,
1503
+ add_item: nil,
1504
+ add_metadata: nil,
1505
+ remove_discount: nil,
1506
+ remove_item: nil,
1507
+ remove_metadata: nil,
1508
+ set_discounts: nil,
1509
+ set_items: nil,
1510
+ set_metadata: nil,
1511
+ type: nil
1512
+ )
1513
+ @add_discount = add_discount
1514
+ @add_item = add_item
1515
+ @add_metadata = add_metadata
1516
+ @remove_discount = remove_discount
1517
+ @remove_item = remove_item
1518
+ @remove_metadata = remove_metadata
1519
+ @set_discounts = set_discounts
1520
+ @set_items = set_items
1521
+ @set_metadata = set_metadata
1522
+ @type = type
1523
+ end
1524
+ end
1525
+
1526
+ class AppliesTo < Stripe::RequestParams
1527
+ # A custom string that identifies a new subscription schedule being created upon quote acceptance. All quote lines with the same `new_reference` field will be applied to the creation of a new subscription schedule.
1528
+ attr_accessor :new_reference
1529
+ # The ID of the schedule the line applies to.
1530
+ attr_accessor :subscription_schedule
1531
+ # Describes whether the quote line is affecting a new schedule or an existing schedule.
1532
+ attr_accessor :type
1533
+
1534
+ def initialize(new_reference: nil, subscription_schedule: nil, type: nil)
1535
+ @new_reference = new_reference
1536
+ @subscription_schedule = subscription_schedule
1537
+ @type = type
1538
+ end
1539
+ end
1540
+
1541
+ class CancelSubscriptionSchedule < Stripe::RequestParams
1542
+ # Timestamp helper to cancel the underlying schedule on the accompanying line's start date. Must be set to `line_starts_at`.
1543
+ attr_accessor :cancel_at
1544
+ # If the subscription schedule is `active`, indicates if a final invoice will be generated that contains any un-invoiced metered usage and new/pending proration invoice items. Boolean that defaults to `true`.
1545
+ attr_accessor :invoice_now
1546
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Boolean that defaults to `true`.
1547
+ attr_accessor :prorate
1548
+
1549
+ def initialize(cancel_at: nil, invoice_now: nil, prorate: nil)
1550
+ @cancel_at = cancel_at
1551
+ @invoice_now = invoice_now
1552
+ @prorate = prorate
1553
+ end
1554
+ end
1555
+
1556
+ class EndsAt < Stripe::RequestParams
1557
+ class DiscountEnd < Stripe::RequestParams
1558
+ # The ID of a specific discount.
1559
+ attr_accessor :discount
1560
+
1561
+ def initialize(discount: nil)
1562
+ @discount = discount
1563
+ end
1564
+ end
1565
+
1566
+ class Duration < Stripe::RequestParams
1567
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1568
+ attr_accessor :interval
1569
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1570
+ attr_accessor :interval_count
1571
+
1572
+ def initialize(interval: nil, interval_count: nil)
1573
+ @interval = interval
1574
+ @interval_count = interval_count
1575
+ end
1576
+ end
1577
+ # Use the `end` time of a given discount.
1578
+ attr_accessor :discount_end
1579
+ # Time span for the quote line starting from the `starts_at` date.
1580
+ attr_accessor :duration
1581
+ # A precise Unix timestamp.
1582
+ attr_accessor :timestamp
1583
+ # Select a way to pass in `ends_at`.
1584
+ attr_accessor :type
1585
+
1586
+ def initialize(discount_end: nil, duration: nil, timestamp: nil, type: nil)
1587
+ @discount_end = discount_end
1588
+ @duration = duration
1589
+ @timestamp = timestamp
1590
+ @type = type
1591
+ end
1592
+ end
1593
+
1594
+ class SetPauseCollection < Stripe::RequestParams
1595
+ class Set < Stripe::RequestParams
1596
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
1597
+ attr_accessor :behavior
1598
+
1599
+ def initialize(behavior: nil)
1600
+ @behavior = behavior
1601
+ end
1602
+ end
1603
+ # Details of the pause_collection behavior to apply to the amendment.
1604
+ attr_accessor :set
1605
+ # Determines the type of the pause_collection amendment.
1606
+ attr_accessor :type
1607
+
1608
+ def initialize(set: nil, type: nil)
1609
+ @set = set
1610
+ @type = type
1611
+ end
1612
+ end
1613
+
1614
+ class StartsAt < Stripe::RequestParams
1615
+ class DiscountEnd < Stripe::RequestParams
1616
+ # The ID of a specific discount.
1617
+ attr_accessor :discount
1618
+
1619
+ def initialize(discount: nil)
1620
+ @discount = discount
1621
+ end
1622
+ end
1623
+
1624
+ class LineEndsAt < Stripe::RequestParams
1625
+ # The ID of a quote line.
1626
+ attr_accessor :id
1627
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
1628
+ attr_accessor :index
1629
+
1630
+ def initialize(id: nil, index: nil)
1631
+ @id = id
1632
+ @index = index
1633
+ end
1634
+ end
1635
+ # Use the `end` time of a given discount.
1636
+ attr_accessor :discount_end
1637
+ # The timestamp the given line ends at.
1638
+ attr_accessor :line_ends_at
1639
+ # A precise Unix timestamp.
1640
+ attr_accessor :timestamp
1641
+ # Select a way to pass in `starts_at`.
1642
+ attr_accessor :type
1643
+
1644
+ def initialize(discount_end: nil, line_ends_at: nil, timestamp: nil, type: nil)
1645
+ @discount_end = discount_end
1646
+ @line_ends_at = line_ends_at
1647
+ @timestamp = timestamp
1648
+ @type = type
1649
+ end
1650
+ end
1651
+
1652
+ class TrialSettings < Stripe::RequestParams
1653
+ class EndBehavior < Stripe::RequestParams
1654
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
1655
+ attr_accessor :prorate_up_front
1656
+
1657
+ def initialize(prorate_up_front: nil)
1658
+ @prorate_up_front = prorate_up_front
1659
+ end
1660
+ end
1661
+ # Defines how the subscription should behave when a trial ends.
1662
+ attr_accessor :end_behavior
1663
+
1664
+ def initialize(end_behavior: nil)
1665
+ @end_behavior = end_behavior
1666
+ end
1667
+ end
1668
+ # An array of operations the quote line performs.
1669
+ attr_accessor :actions
1670
+ # Details to identify the subscription schedule the quote line applies to.
1671
+ attr_accessor :applies_to
1672
+ # For point-in-time quote lines (having no `ends_at` timestamp), this attribute lets you set or remove whether the subscription's billing cycle anchor is reset at the Quote Line `starts_at` timestamp.For time-span based quote lines (having both `starts_at` and `ends_at`), the only valid value is `automatic`, which removes any previously configured billing cycle anchor resets during the window of time spanning the quote line.
1673
+ attr_accessor :billing_cycle_anchor
1674
+ # A point-in-time operation that cancels an existing subscription schedule at the line's starts_at timestamp. Currently only compatible with `quote_acceptance_date` for `starts_at`. When using cancel_subscription_schedule, the subscription schedule on the quote remains unalterable, except for modifications to the metadata, collection_method or invoice_settings.
1675
+ attr_accessor :cancel_subscription_schedule
1676
+ # Details to identify the end of the time range modified by the proposed change. If not supplied, the quote line is considered a point-in-time operation that only affects the exact timestamp at `starts_at`, and a restricted set of attributes is supported on the quote line.
1677
+ attr_accessor :ends_at
1678
+ # The ID of an existing line on the quote.
1679
+ attr_accessor :id
1680
+ # Changes to how Stripe handles prorations during the quote line's time span. Affects if and how prorations are created when a future phase starts.
1681
+ attr_accessor :proration_behavior
1682
+ # Defines how to pause collection for the underlying subscription throughout the duration of the amendment.
1683
+ attr_accessor :set_pause_collection
1684
+ # Timestamp helper to end the underlying schedule early, based on the acompanying line's start or end date.
1685
+ attr_accessor :set_schedule_end
1686
+ # Details to identify the earliest timestamp where the proposed change should take effect.
1687
+ attr_accessor :starts_at
1688
+ # Settings related to subscription trials.
1689
+ attr_accessor :trial_settings
1690
+
1691
+ def initialize(
1692
+ actions: nil,
1693
+ applies_to: nil,
1694
+ billing_cycle_anchor: nil,
1695
+ cancel_subscription_schedule: nil,
1696
+ ends_at: nil,
1697
+ id: nil,
1698
+ proration_behavior: nil,
1699
+ set_pause_collection: nil,
1700
+ set_schedule_end: nil,
1701
+ starts_at: nil,
1702
+ trial_settings: nil
1703
+ )
1704
+ @actions = actions
1705
+ @applies_to = applies_to
1706
+ @billing_cycle_anchor = billing_cycle_anchor
1707
+ @cancel_subscription_schedule = cancel_subscription_schedule
1708
+ @ends_at = ends_at
1709
+ @id = id
1710
+ @proration_behavior = proration_behavior
1711
+ @set_pause_collection = set_pause_collection
1712
+ @set_schedule_end = set_schedule_end
1713
+ @starts_at = starts_at
1714
+ @trial_settings = trial_settings
1715
+ end
1716
+ end
1717
+
389
1718
  class LineItem < Stripe::RequestParams
390
1719
  class Discount < Stripe::RequestParams
1720
+ class DiscountEnd < Stripe::RequestParams
1721
+ class Duration < Stripe::RequestParams
1722
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1723
+ attr_accessor :interval
1724
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1725
+ attr_accessor :interval_count
1726
+
1727
+ def initialize(interval: nil, interval_count: nil)
1728
+ @interval = interval
1729
+ @interval_count = interval_count
1730
+ end
1731
+ end
1732
+ # Time span for the redeemed discount.
1733
+ attr_accessor :duration
1734
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1735
+ attr_accessor :timestamp
1736
+ # The type of calculation made to determine when the discount ends.
1737
+ attr_accessor :type
1738
+
1739
+ def initialize(duration: nil, timestamp: nil, type: nil)
1740
+ @duration = duration
1741
+ @timestamp = timestamp
1742
+ @type = type
1743
+ end
1744
+ end
391
1745
  # ID of the coupon to create a new discount for.
392
1746
  attr_accessor :coupon
393
1747
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
394
1748
  attr_accessor :discount
1749
+ # Details to determine how long the discount should be applied for.
1750
+ attr_accessor :discount_end
395
1751
  # ID of the promotion code to create a new discount for.
396
1752
  attr_accessor :promotion_code
397
1753
 
398
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
1754
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
399
1755
  @coupon = coupon
400
1756
  @discount = discount
1757
+ @discount_end = discount_end
401
1758
  @promotion_code = promotion_code
402
1759
  end
403
1760
  end
@@ -474,23 +1831,277 @@ module Stripe
474
1831
  end
475
1832
 
476
1833
  class SubscriptionData < Stripe::RequestParams
1834
+ class BillOnAcceptance < Stripe::RequestParams
1835
+ class BillFrom < Stripe::RequestParams
1836
+ class LineStartsAt < Stripe::RequestParams
1837
+ # The ID of a quote line.
1838
+ attr_accessor :id
1839
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
1840
+ attr_accessor :index
1841
+
1842
+ def initialize(id: nil, index: nil)
1843
+ @id = id
1844
+ @index = index
1845
+ end
1846
+ end
1847
+ # Details of a Quote line to start the bill period from.
1848
+ attr_accessor :line_starts_at
1849
+ # A precise Unix timestamp.
1850
+ attr_accessor :timestamp
1851
+ # The type of method to specify the `bill_from` time.
1852
+ attr_accessor :type
1853
+
1854
+ def initialize(line_starts_at: nil, timestamp: nil, type: nil)
1855
+ @line_starts_at = line_starts_at
1856
+ @timestamp = timestamp
1857
+ @type = type
1858
+ end
1859
+ end
1860
+
1861
+ class BillUntil < Stripe::RequestParams
1862
+ class Duration < Stripe::RequestParams
1863
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1864
+ attr_accessor :interval
1865
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1866
+ attr_accessor :interval_count
1867
+
1868
+ def initialize(interval: nil, interval_count: nil)
1869
+ @interval = interval
1870
+ @interval_count = interval_count
1871
+ end
1872
+ end
1873
+
1874
+ class LineEndsAt < Stripe::RequestParams
1875
+ # The ID of a quote line.
1876
+ attr_accessor :id
1877
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
1878
+ attr_accessor :index
1879
+
1880
+ def initialize(id: nil, index: nil)
1881
+ @id = id
1882
+ @index = index
1883
+ end
1884
+ end
1885
+ # Details of the duration over which to bill.
1886
+ attr_accessor :duration
1887
+ # Details of a Quote line item from which to bill until.
1888
+ attr_accessor :line_ends_at
1889
+ # A precise Unix timestamp.
1890
+ attr_accessor :timestamp
1891
+ # The type of method to specify the `bill_until` time.
1892
+ attr_accessor :type
1893
+
1894
+ def initialize(duration: nil, line_ends_at: nil, timestamp: nil, type: nil)
1895
+ @duration = duration
1896
+ @line_ends_at = line_ends_at
1897
+ @timestamp = timestamp
1898
+ @type = type
1899
+ end
1900
+ end
1901
+ # The start of the period to bill from when the Quote is accepted.
1902
+ attr_accessor :bill_from
1903
+ # The end of the period to bill until when the Quote is accepted.
1904
+ attr_accessor :bill_until
1905
+
1906
+ def initialize(bill_from: nil, bill_until: nil)
1907
+ @bill_from = bill_from
1908
+ @bill_until = bill_until
1909
+ end
1910
+ end
1911
+
1912
+ class Prebilling < Stripe::RequestParams
1913
+ # This is used to determine the number of billing cycles to prebill.
1914
+ attr_accessor :iterations
1915
+
1916
+ def initialize(iterations: nil)
1917
+ @iterations = iterations
1918
+ end
1919
+ end
1920
+ # Describes the period to bill for upon accepting the quote.
1921
+ attr_accessor :bill_on_acceptance
1922
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
1923
+ attr_accessor :billing_behavior
1924
+ # When specified as `reset`, the subscription will always start a new billing period when the quote is accepted.
1925
+ attr_accessor :billing_cycle_anchor
477
1926
  # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
478
1927
  attr_accessor :description
479
1928
  # When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. When updating a subscription, the date of which the subscription will be updated using a subscription schedule. The special value `current_period_end` can be provided to update a subscription at the end of its current period. The `effective_date` is ignored if it is in the past when the quote is accepted.
480
1929
  attr_accessor :effective_date
1930
+ # Behavior of the subscription schedule and underlying subscription when it ends.
1931
+ attr_accessor :end_behavior
481
1932
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values.
482
1933
  attr_accessor :metadata
1934
+ # If specified, the invoicing for the given billing cycle iterations will be processed when the quote is accepted. Cannot be used with `effective_date`.
1935
+ attr_accessor :prebilling
1936
+ # Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations). When creating a subscription, valid values are `create_prorations` or `none`.
1937
+ #
1938
+ # When updating a subscription, valid values are `create_prorations`, `none`, or `always_invoice`.
1939
+ #
1940
+ # Passing `create_prorations` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://stripe.com/docs/subscriptions/upgrading-downgrading#immediate-payment). In order to always invoice immediately for prorations, pass `always_invoice`.
1941
+ #
1942
+ # Prorations can be disabled by passing `none`.
1943
+ attr_accessor :proration_behavior
483
1944
  # Integer representing the number of trial period days before the customer is charged for the first time.
484
1945
  attr_accessor :trial_period_days
485
1946
 
486
- def initialize(description: nil, effective_date: nil, metadata: nil, trial_period_days: nil)
1947
+ def initialize(
1948
+ bill_on_acceptance: nil,
1949
+ billing_behavior: nil,
1950
+ billing_cycle_anchor: nil,
1951
+ description: nil,
1952
+ effective_date: nil,
1953
+ end_behavior: nil,
1954
+ metadata: nil,
1955
+ prebilling: nil,
1956
+ proration_behavior: nil,
1957
+ trial_period_days: nil
1958
+ )
1959
+ @bill_on_acceptance = bill_on_acceptance
1960
+ @billing_behavior = billing_behavior
1961
+ @billing_cycle_anchor = billing_cycle_anchor
487
1962
  @description = description
488
1963
  @effective_date = effective_date
1964
+ @end_behavior = end_behavior
489
1965
  @metadata = metadata
1966
+ @prebilling = prebilling
1967
+ @proration_behavior = proration_behavior
490
1968
  @trial_period_days = trial_period_days
491
1969
  end
492
1970
  end
493
1971
 
1972
+ class SubscriptionDataOverride < Stripe::RequestParams
1973
+ class AppliesTo < Stripe::RequestParams
1974
+ # A custom string that identifies a new subscription schedule being created upon quote acceptance. All quote lines with the same `new_reference` field will be applied to the creation of a new subscription schedule.
1975
+ attr_accessor :new_reference
1976
+ # The ID of the schedule the line applies to.
1977
+ attr_accessor :subscription_schedule
1978
+ # Describes whether the quote line is affecting a new schedule or an existing schedule.
1979
+ attr_accessor :type
1980
+
1981
+ def initialize(new_reference: nil, subscription_schedule: nil, type: nil)
1982
+ @new_reference = new_reference
1983
+ @subscription_schedule = subscription_schedule
1984
+ @type = type
1985
+ end
1986
+ end
1987
+
1988
+ class BillOnAcceptance < Stripe::RequestParams
1989
+ class BillFrom < Stripe::RequestParams
1990
+ class LineStartsAt < Stripe::RequestParams
1991
+ # The ID of a quote line.
1992
+ attr_accessor :id
1993
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
1994
+ attr_accessor :index
1995
+
1996
+ def initialize(id: nil, index: nil)
1997
+ @id = id
1998
+ @index = index
1999
+ end
2000
+ end
2001
+ # Details of a Quote line to start the bill period from.
2002
+ attr_accessor :line_starts_at
2003
+ # A precise Unix timestamp.
2004
+ attr_accessor :timestamp
2005
+ # The type of method to specify the `bill_from` time.
2006
+ attr_accessor :type
2007
+
2008
+ def initialize(line_starts_at: nil, timestamp: nil, type: nil)
2009
+ @line_starts_at = line_starts_at
2010
+ @timestamp = timestamp
2011
+ @type = type
2012
+ end
2013
+ end
2014
+
2015
+ class BillUntil < Stripe::RequestParams
2016
+ class Duration < Stripe::RequestParams
2017
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2018
+ attr_accessor :interval
2019
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2020
+ attr_accessor :interval_count
2021
+
2022
+ def initialize(interval: nil, interval_count: nil)
2023
+ @interval = interval
2024
+ @interval_count = interval_count
2025
+ end
2026
+ end
2027
+
2028
+ class LineEndsAt < Stripe::RequestParams
2029
+ # The ID of a quote line.
2030
+ attr_accessor :id
2031
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
2032
+ attr_accessor :index
2033
+
2034
+ def initialize(id: nil, index: nil)
2035
+ @id = id
2036
+ @index = index
2037
+ end
2038
+ end
2039
+ # Details of the duration over which to bill.
2040
+ attr_accessor :duration
2041
+ # Details of a Quote line item from which to bill until.
2042
+ attr_accessor :line_ends_at
2043
+ # A precise Unix timestamp.
2044
+ attr_accessor :timestamp
2045
+ # The type of method to specify the `bill_until` time.
2046
+ attr_accessor :type
2047
+
2048
+ def initialize(duration: nil, line_ends_at: nil, timestamp: nil, type: nil)
2049
+ @duration = duration
2050
+ @line_ends_at = line_ends_at
2051
+ @timestamp = timestamp
2052
+ @type = type
2053
+ end
2054
+ end
2055
+ # The start of the period to bill from when the Quote is accepted.
2056
+ attr_accessor :bill_from
2057
+ # The end of the period to bill until when the Quote is accepted.
2058
+ attr_accessor :bill_until
2059
+
2060
+ def initialize(bill_from: nil, bill_until: nil)
2061
+ @bill_from = bill_from
2062
+ @bill_until = bill_until
2063
+ end
2064
+ end
2065
+ # Whether the override applies to an existing Subscription Schedule or a new Subscription Schedule.
2066
+ attr_accessor :applies_to
2067
+ # Describes the period to bill for upon accepting the quote.
2068
+ attr_accessor :bill_on_acceptance
2069
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
2070
+ attr_accessor :billing_behavior
2071
+ # The customer the Subscription Data override applies to.
2072
+ attr_accessor :customer
2073
+ # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
2074
+ attr_accessor :description
2075
+ # Behavior of the subscription schedule and underlying subscription when it ends.
2076
+ attr_accessor :end_behavior
2077
+ # Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations). When creating a subscription, valid values are `create_prorations` or `none`.
2078
+ #
2079
+ # When updating a subscription, valid values are `create_prorations`, `none`, or `always_invoice`.
2080
+ #
2081
+ # Passing `create_prorations` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://stripe.com/docs/subscriptions/upgrading-downgrading#immediate-payment). In order to always invoice immediately for prorations, pass `always_invoice`.
2082
+ #
2083
+ # Prorations can be disabled by passing `none`.
2084
+ attr_accessor :proration_behavior
2085
+
2086
+ def initialize(
2087
+ applies_to: nil,
2088
+ bill_on_acceptance: nil,
2089
+ billing_behavior: nil,
2090
+ customer: nil,
2091
+ description: nil,
2092
+ end_behavior: nil,
2093
+ proration_behavior: nil
2094
+ )
2095
+ @applies_to = applies_to
2096
+ @bill_on_acceptance = bill_on_acceptance
2097
+ @billing_behavior = billing_behavior
2098
+ @customer = customer
2099
+ @description = description
2100
+ @end_behavior = end_behavior
2101
+ @proration_behavior = proration_behavior
2102
+ end
2103
+ end
2104
+
494
2105
  class TransferData < Stripe::RequestParams
495
2106
  # The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. There cannot be any line items with recurring prices when using this field.
496
2107
  attr_accessor :amount
@@ -505,6 +2116,8 @@ module Stripe
505
2116
  @destination = destination
506
2117
  end
507
2118
  end
2119
+ # Set to true to allow quote lines to have `starts_at` in the past if collection is paused between `starts_at` and now.
2120
+ attr_accessor :allow_backdated_lines
508
2121
  # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field.
509
2122
  attr_accessor :application_fee_amount
510
2123
  # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field.
@@ -515,6 +2128,8 @@ module Stripe
515
2128
  attr_accessor :collection_method
516
2129
  # The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.
517
2130
  attr_accessor :customer
2131
+ # The account for which this quote belongs to. A customer or account is required before finalizing the quote. Once specified, it cannot be changed.
2132
+ attr_accessor :customer_account
518
2133
  # The tax rates that will apply to any line item that does not have `tax_rates` set.
519
2134
  attr_accessor :default_tax_rates
520
2135
  # A description that will be displayed on the quote PDF.
@@ -533,21 +2148,27 @@ module Stripe
533
2148
  attr_accessor :invoice_settings
534
2149
  # A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost.
535
2150
  attr_accessor :line_items
2151
+ # A list of [quote lines](https://docs.stripe.com/api/quote_lines) on the quote. These lines describe changes, in the order provided, that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
2152
+ attr_accessor :lines
536
2153
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
537
2154
  attr_accessor :metadata
538
2155
  # The account on behalf of which to charge.
539
2156
  attr_accessor :on_behalf_of
540
2157
  # When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created.
541
2158
  attr_accessor :subscription_data
2159
+ # List representing overrides for `subscription_data` configurations for specific subscription schedules.
2160
+ attr_accessor :subscription_data_overrides
542
2161
  # The data with which to automatically create a Transfer for each of the invoices.
543
2162
  attr_accessor :transfer_data
544
2163
 
545
2164
  def initialize(
2165
+ allow_backdated_lines: nil,
546
2166
  application_fee_amount: nil,
547
2167
  application_fee_percent: nil,
548
2168
  automatic_tax: nil,
549
2169
  collection_method: nil,
550
2170
  customer: nil,
2171
+ customer_account: nil,
551
2172
  default_tax_rates: nil,
552
2173
  description: nil,
553
2174
  discounts: nil,
@@ -557,16 +2178,20 @@ module Stripe
557
2178
  header: nil,
558
2179
  invoice_settings: nil,
559
2180
  line_items: nil,
2181
+ lines: nil,
560
2182
  metadata: nil,
561
2183
  on_behalf_of: nil,
562
2184
  subscription_data: nil,
2185
+ subscription_data_overrides: nil,
563
2186
  transfer_data: nil
564
2187
  )
2188
+ @allow_backdated_lines = allow_backdated_lines
565
2189
  @application_fee_amount = application_fee_amount
566
2190
  @application_fee_percent = application_fee_percent
567
2191
  @automatic_tax = automatic_tax
568
2192
  @collection_method = collection_method
569
2193
  @customer = customer
2194
+ @customer_account = customer_account
570
2195
  @default_tax_rates = default_tax_rates
571
2196
  @description = description
572
2197
  @discounts = discounts
@@ -576,9 +2201,11 @@ module Stripe
576
2201
  @header = header
577
2202
  @invoice_settings = invoice_settings
578
2203
  @line_items = line_items
2204
+ @lines = lines
579
2205
  @metadata = metadata
580
2206
  @on_behalf_of = on_behalf_of
581
2207
  @subscription_data = subscription_data
2208
+ @subscription_data_overrides = subscription_data_overrides
582
2209
  @transfer_data = transfer_data
583
2210
  end
584
2211
  end
@@ -613,6 +2240,36 @@ module Stripe
613
2240
  end
614
2241
  end
615
2242
 
2243
+ class MarkDraftParams < Stripe::RequestParams
2244
+ # Specifies which fields in the response should be expanded.
2245
+ attr_accessor :expand
2246
+
2247
+ def initialize(expand: nil)
2248
+ @expand = expand
2249
+ end
2250
+ end
2251
+
2252
+ class MarkStaleParams < Stripe::RequestParams
2253
+ # Specifies which fields in the response should be expanded.
2254
+ attr_accessor :expand
2255
+ # Reason the Quote is being marked stale.
2256
+ attr_accessor :reason
2257
+
2258
+ def initialize(expand: nil, reason: nil)
2259
+ @expand = expand
2260
+ @reason = reason
2261
+ end
2262
+ end
2263
+
2264
+ class ReestimateParams < Stripe::RequestParams
2265
+ # Specifies which fields in the response should be expanded.
2266
+ attr_accessor :expand
2267
+
2268
+ def initialize(expand: nil)
2269
+ @expand = expand
2270
+ end
2271
+ end
2272
+
616
2273
  class PdfParams < Stripe::RequestParams
617
2274
  # Specifies which fields in the response should be expanded.
618
2275
  attr_accessor :expand
@@ -622,6 +2279,24 @@ module Stripe
622
2279
  end
623
2280
  end
624
2281
 
2282
+ class ListPreviewInvoiceLinesParams < Stripe::RequestParams
2283
+ # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
2284
+ attr_accessor :ending_before
2285
+ # Specifies which fields in the response should be expanded.
2286
+ attr_accessor :expand
2287
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
2288
+ attr_accessor :limit
2289
+ # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
2290
+ attr_accessor :starting_after
2291
+
2292
+ def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil)
2293
+ @ending_before = ending_before
2294
+ @expand = expand
2295
+ @limit = limit
2296
+ @starting_after = starting_after
2297
+ end
2298
+ end
2299
+
625
2300
  # Accepts the specified quote.
626
2301
  def accept(quote, params = {}, opts = {})
627
2302
  request(
@@ -665,6 +2340,39 @@ module Stripe
665
2340
  request(method: :get, path: "/v1/quotes", params: params, opts: opts, base_address: :api)
666
2341
  end
667
2342
 
2343
+ # Preview the invoice line items that would be generated by accepting the quote.
2344
+ def list_preview_invoice_lines(quote, preview_invoice, params = {}, opts = {})
2345
+ request(
2346
+ method: :get,
2347
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
2348
+ params: params,
2349
+ opts: opts,
2350
+ base_address: :api
2351
+ )
2352
+ end
2353
+
2354
+ # Converts a stale quote to draft.
2355
+ def mark_draft(quote, params = {}, opts = {})
2356
+ request(
2357
+ method: :post,
2358
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
2359
+ params: params,
2360
+ opts: opts,
2361
+ base_address: :api
2362
+ )
2363
+ end
2364
+
2365
+ # Converts a draft or open quote to stale.
2366
+ def mark_stale(quote, params = {}, opts = {})
2367
+ request(
2368
+ method: :post,
2369
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
2370
+ params: params,
2371
+ opts: opts,
2372
+ base_address: :api
2373
+ )
2374
+ end
2375
+
668
2376
  # Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf)
669
2377
  def pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
670
2378
  opts = { api_base: APIRequestor.active_requestor.config.uploads_base }.merge(opts)
@@ -678,6 +2386,17 @@ module Stripe
678
2386
  )
679
2387
  end
680
2388
 
2389
+ # Recompute the upcoming invoice estimate for the quote.
2390
+ def reestimate(quote, params = {}, opts = {})
2391
+ request(
2392
+ method: :post,
2393
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
2394
+ params: params,
2395
+ opts: opts,
2396
+ base_address: :api
2397
+ )
2398
+ end
2399
+
681
2400
  # Retrieves the quote with the given ID.
682
2401
  def retrieve(quote, params = {}, opts = {})
683
2402
  request(