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
@@ -83,6 +83,8 @@ module Stripe
83
83
  attr_accessor :created
84
84
  # Only return subscription schedules for the given customer.
85
85
  attr_accessor :customer
86
+ # Only return subscription schedules for the given account.
87
+ attr_accessor :customer_account
86
88
  # 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.
87
89
  attr_accessor :ending_before
88
90
  # Specifies which fields in the response should be expanded.
@@ -101,6 +103,7 @@ module Stripe
101
103
  completed_at: nil,
102
104
  created: nil,
103
105
  customer: nil,
106
+ customer_account: nil,
104
107
  ending_before: nil,
105
108
  expand: nil,
106
109
  limit: nil,
@@ -112,6 +115,7 @@ module Stripe
112
115
  @completed_at = completed_at
113
116
  @created = created
114
117
  @customer = customer
118
+ @customer_account = customer_account
115
119
  @ending_before = ending_before
116
120
  @expand = expand
117
121
  @limit = limit
@@ -228,16 +232,44 @@ module Stripe
228
232
  class Phase < Stripe::RequestParams
229
233
  class AddInvoiceItem < Stripe::RequestParams
230
234
  class Discount < Stripe::RequestParams
235
+ class DiscountEnd < Stripe::RequestParams
236
+ class Duration < Stripe::RequestParams
237
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
238
+ attr_accessor :interval
239
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
240
+ attr_accessor :interval_count
241
+
242
+ def initialize(interval: nil, interval_count: nil)
243
+ @interval = interval
244
+ @interval_count = interval_count
245
+ end
246
+ end
247
+ # Time span for the redeemed discount.
248
+ attr_accessor :duration
249
+ # A precise Unix timestamp for the discount to end. Must be in the future.
250
+ attr_accessor :timestamp
251
+ # The type of calculation made to determine when the discount ends.
252
+ attr_accessor :type
253
+
254
+ def initialize(duration: nil, timestamp: nil, type: nil)
255
+ @duration = duration
256
+ @timestamp = timestamp
257
+ @type = type
258
+ end
259
+ end
231
260
  # ID of the coupon to create a new discount for.
232
261
  attr_accessor :coupon
233
262
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
234
263
  attr_accessor :discount
264
+ # Details to determine how long the discount should be applied for.
265
+ attr_accessor :discount_end
235
266
  # ID of the promotion code to create a new discount for.
236
267
  attr_accessor :promotion_code
237
268
 
238
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
269
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
239
270
  @coupon = coupon
240
271
  @discount = discount
272
+ @discount_end = discount_end
241
273
  @promotion_code = promotion_code
242
274
  end
243
275
  end
@@ -312,16 +344,44 @@ module Stripe
312
344
  end
313
345
 
314
346
  class Discount < Stripe::RequestParams
347
+ class DiscountEnd < Stripe::RequestParams
348
+ class Duration < Stripe::RequestParams
349
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
350
+ attr_accessor :interval
351
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
352
+ attr_accessor :interval_count
353
+
354
+ def initialize(interval: nil, interval_count: nil)
355
+ @interval = interval
356
+ @interval_count = interval_count
357
+ end
358
+ end
359
+ # Time span for the redeemed discount.
360
+ attr_accessor :duration
361
+ # A precise Unix timestamp for the discount to end. Must be in the future.
362
+ attr_accessor :timestamp
363
+ # The type of calculation made to determine when the discount ends.
364
+ attr_accessor :type
365
+
366
+ def initialize(duration: nil, timestamp: nil, type: nil)
367
+ @duration = duration
368
+ @timestamp = timestamp
369
+ @type = type
370
+ end
371
+ end
315
372
  # ID of the coupon to create a new discount for.
316
373
  attr_accessor :coupon
317
374
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
318
375
  attr_accessor :discount
376
+ # Details to determine how long the discount should be applied for.
377
+ attr_accessor :discount_end
319
378
  # ID of the promotion code to create a new discount for.
320
379
  attr_accessor :promotion_code
321
380
 
322
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
381
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
323
382
  @coupon = coupon
324
383
  @discount = discount
384
+ @discount_end = discount_end
325
385
  @promotion_code = promotion_code
326
386
  end
327
387
  end
@@ -354,16 +414,44 @@ module Stripe
354
414
 
355
415
  class Item < Stripe::RequestParams
356
416
  class Discount < Stripe::RequestParams
417
+ class DiscountEnd < Stripe::RequestParams
418
+ class Duration < Stripe::RequestParams
419
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
420
+ attr_accessor :interval
421
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
422
+ attr_accessor :interval_count
423
+
424
+ def initialize(interval: nil, interval_count: nil)
425
+ @interval = interval
426
+ @interval_count = interval_count
427
+ end
428
+ end
429
+ # Time span for the redeemed discount.
430
+ attr_accessor :duration
431
+ # A precise Unix timestamp for the discount to end. Must be in the future.
432
+ attr_accessor :timestamp
433
+ # The type of calculation made to determine when the discount ends.
434
+ attr_accessor :type
435
+
436
+ def initialize(duration: nil, timestamp: nil, type: nil)
437
+ @duration = duration
438
+ @timestamp = timestamp
439
+ @type = type
440
+ end
441
+ end
357
442
  # ID of the coupon to create a new discount for.
358
443
  attr_accessor :coupon
359
444
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
360
445
  attr_accessor :discount
446
+ # Details to determine how long the discount should be applied for.
447
+ attr_accessor :discount_end
361
448
  # ID of the promotion code to create a new discount for.
362
449
  attr_accessor :promotion_code
363
450
 
364
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
451
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
365
452
  @coupon = coupon
366
453
  @discount = discount
454
+ @discount_end = discount_end
367
455
  @promotion_code = promotion_code
368
456
  end
369
457
  end
@@ -409,6 +497,18 @@ module Stripe
409
497
  @unit_amount_decimal = unit_amount_decimal
410
498
  end
411
499
  end
500
+
501
+ class Trial < Stripe::RequestParams
502
+ # 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.
503
+ attr_accessor :converts_to
504
+ # Determines the type of trial for this item.
505
+ attr_accessor :type
506
+
507
+ def initialize(converts_to: nil, type: nil)
508
+ @converts_to = converts_to
509
+ @type = type
510
+ end
511
+ end
412
512
  # The coupons to redeem into discounts for the subscription item.
413
513
  attr_accessor :discounts
414
514
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a configuration item. Metadata on a configuration item will update the underlying subscription item's `metadata` when the phase is entered, adding new keys and replacing existing keys. Individual keys in the subscription item's `metadata` can be unset by posting an empty value to them in the configuration item's `metadata`. To unset all keys in the subscription item's `metadata`, update the subscription item directly or unset every key individually from the configuration item's `metadata`.
@@ -423,6 +523,8 @@ module Stripe
423
523
  attr_accessor :quantity
424
524
  # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates.
425
525
  attr_accessor :tax_rates
526
+ # Options that configure the trial on the subscription item.
527
+ attr_accessor :trial
426
528
 
427
529
  def initialize(
428
530
  discounts: nil,
@@ -431,7 +533,8 @@ module Stripe
431
533
  price: nil,
432
534
  price_data: nil,
433
535
  quantity: nil,
434
- tax_rates: nil
536
+ tax_rates: nil,
537
+ trial: nil
435
538
  )
436
539
  @discounts = discounts
437
540
  @metadata = metadata
@@ -440,6 +543,16 @@ module Stripe
440
543
  @price_data = price_data
441
544
  @quantity = quantity
442
545
  @tax_rates = tax_rates
546
+ @trial = trial
547
+ end
548
+ end
549
+
550
+ class PauseCollection < Stripe::RequestParams
551
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
552
+ attr_accessor :behavior
553
+
554
+ def initialize(behavior: nil)
555
+ @behavior = behavior
443
556
  end
444
557
  end
445
558
 
@@ -454,6 +567,23 @@ module Stripe
454
567
  @destination = destination
455
568
  end
456
569
  end
570
+
571
+ class TrialSettings < Stripe::RequestParams
572
+ class EndBehavior < Stripe::RequestParams
573
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
574
+ attr_accessor :prorate_up_front
575
+
576
+ def initialize(prorate_up_front: nil)
577
+ @prorate_up_front = prorate_up_front
578
+ end
579
+ end
580
+ # Defines how the subscription should behave when a trial ends.
581
+ attr_accessor :end_behavior
582
+
583
+ def initialize(end_behavior: nil)
584
+ @end_behavior = end_behavior
585
+ end
586
+ end
457
587
  # A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items.
458
588
  attr_accessor :add_invoice_items
459
589
  # 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. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions).
@@ -486,14 +616,20 @@ module Stripe
486
616
  attr_accessor :metadata
487
617
  # The account on behalf of which to charge, for each of the associated subscription's invoices.
488
618
  attr_accessor :on_behalf_of
619
+ # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment).
620
+ attr_accessor :pause_collection
489
621
  # Whether the subscription schedule will create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase. The default value is `create_prorations`. This setting controls prorations when a phase is started asynchronously and it is persisted as a field on the phase. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration of the current phase.
490
622
  attr_accessor :proration_behavior
491
623
  # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
492
624
  attr_accessor :transfer_data
493
625
  # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
494
626
  attr_accessor :trial
627
+ # Specify trial behavior when crossing phase boundaries
628
+ attr_accessor :trial_continuation
495
629
  # Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial`
496
630
  attr_accessor :trial_end
631
+ # Settings related to subscription trials.
632
+ attr_accessor :trial_settings
497
633
 
498
634
  def initialize(
499
635
  add_invoice_items: nil,
@@ -512,10 +648,13 @@ module Stripe
512
648
  iterations: nil,
513
649
  metadata: nil,
514
650
  on_behalf_of: nil,
651
+ pause_collection: nil,
515
652
  proration_behavior: nil,
516
653
  transfer_data: nil,
517
654
  trial: nil,
518
- trial_end: nil
655
+ trial_continuation: nil,
656
+ trial_end: nil,
657
+ trial_settings: nil
519
658
  )
520
659
  @add_invoice_items = add_invoice_items
521
660
  @application_fee_percent = application_fee_percent
@@ -533,14 +672,33 @@ module Stripe
533
672
  @iterations = iterations
534
673
  @metadata = metadata
535
674
  @on_behalf_of = on_behalf_of
675
+ @pause_collection = pause_collection
536
676
  @proration_behavior = proration_behavior
537
677
  @transfer_data = transfer_data
538
678
  @trial = trial
679
+ @trial_continuation = trial_continuation
539
680
  @trial_end = trial_end
681
+ @trial_settings = trial_settings
682
+ end
683
+ end
684
+
685
+ class Prebilling < Stripe::RequestParams
686
+ # This is used to determine the number of billing cycles to prebill.
687
+ attr_accessor :iterations
688
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
689
+ attr_accessor :update_behavior
690
+
691
+ def initialize(iterations: nil, update_behavior: nil)
692
+ @iterations = iterations
693
+ @update_behavior = update_behavior
540
694
  end
541
695
  end
696
+ # 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.
697
+ attr_accessor :billing_behavior
542
698
  # The identifier of the customer to create the subscription schedule for.
543
699
  attr_accessor :customer
700
+ # The identifier of the account to create the subscription schedule for.
701
+ attr_accessor :customer_account
544
702
  # Object representing the subscription schedule's default settings.
545
703
  attr_accessor :default_settings
546
704
  # Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription.
@@ -553,26 +711,34 @@ module Stripe
553
711
  attr_accessor :metadata
554
712
  # List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase.
555
713
  attr_accessor :phases
714
+ # If specified, the invoicing for the given billing cycle iterations will be processed now.
715
+ attr_accessor :prebilling
556
716
  # When the subscription schedule starts. We recommend using `now` so that it starts the subscription immediately. You can also use a Unix timestamp to backdate the subscription so that it starts on a past date, or set a future date for the subscription to start on.
557
717
  attr_accessor :start_date
558
718
 
559
719
  def initialize(
720
+ billing_behavior: nil,
560
721
  customer: nil,
722
+ customer_account: nil,
561
723
  default_settings: nil,
562
724
  end_behavior: nil,
563
725
  expand: nil,
564
726
  from_subscription: nil,
565
727
  metadata: nil,
566
728
  phases: nil,
729
+ prebilling: nil,
567
730
  start_date: nil
568
731
  )
732
+ @billing_behavior = billing_behavior
569
733
  @customer = customer
734
+ @customer_account = customer_account
570
735
  @default_settings = default_settings
571
736
  @end_behavior = end_behavior
572
737
  @expand = expand
573
738
  @from_subscription = from_subscription
574
739
  @metadata = metadata
575
740
  @phases = phases
741
+ @prebilling = prebilling
576
742
  @start_date = start_date
577
743
  end
578
744
  end
@@ -693,16 +859,44 @@ module Stripe
693
859
  class Phase < Stripe::RequestParams
694
860
  class AddInvoiceItem < Stripe::RequestParams
695
861
  class Discount < Stripe::RequestParams
862
+ class DiscountEnd < Stripe::RequestParams
863
+ class Duration < Stripe::RequestParams
864
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
865
+ attr_accessor :interval
866
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
867
+ attr_accessor :interval_count
868
+
869
+ def initialize(interval: nil, interval_count: nil)
870
+ @interval = interval
871
+ @interval_count = interval_count
872
+ end
873
+ end
874
+ # Time span for the redeemed discount.
875
+ attr_accessor :duration
876
+ # A precise Unix timestamp for the discount to end. Must be in the future.
877
+ attr_accessor :timestamp
878
+ # The type of calculation made to determine when the discount ends.
879
+ attr_accessor :type
880
+
881
+ def initialize(duration: nil, timestamp: nil, type: nil)
882
+ @duration = duration
883
+ @timestamp = timestamp
884
+ @type = type
885
+ end
886
+ end
696
887
  # ID of the coupon to create a new discount for.
697
888
  attr_accessor :coupon
698
889
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
699
890
  attr_accessor :discount
891
+ # Details to determine how long the discount should be applied for.
892
+ attr_accessor :discount_end
700
893
  # ID of the promotion code to create a new discount for.
701
894
  attr_accessor :promotion_code
702
895
 
703
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
896
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
704
897
  @coupon = coupon
705
898
  @discount = discount
899
+ @discount_end = discount_end
706
900
  @promotion_code = promotion_code
707
901
  end
708
902
  end
@@ -777,16 +971,44 @@ module Stripe
777
971
  end
778
972
 
779
973
  class Discount < Stripe::RequestParams
974
+ class DiscountEnd < Stripe::RequestParams
975
+ class Duration < Stripe::RequestParams
976
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
977
+ attr_accessor :interval
978
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
979
+ attr_accessor :interval_count
980
+
981
+ def initialize(interval: nil, interval_count: nil)
982
+ @interval = interval
983
+ @interval_count = interval_count
984
+ end
985
+ end
986
+ # Time span for the redeemed discount.
987
+ attr_accessor :duration
988
+ # A precise Unix timestamp for the discount to end. Must be in the future.
989
+ attr_accessor :timestamp
990
+ # The type of calculation made to determine when the discount ends.
991
+ attr_accessor :type
992
+
993
+ def initialize(duration: nil, timestamp: nil, type: nil)
994
+ @duration = duration
995
+ @timestamp = timestamp
996
+ @type = type
997
+ end
998
+ end
780
999
  # ID of the coupon to create a new discount for.
781
1000
  attr_accessor :coupon
782
1001
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
783
1002
  attr_accessor :discount
1003
+ # Details to determine how long the discount should be applied for.
1004
+ attr_accessor :discount_end
784
1005
  # ID of the promotion code to create a new discount for.
785
1006
  attr_accessor :promotion_code
786
1007
 
787
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
1008
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
788
1009
  @coupon = coupon
789
1010
  @discount = discount
1011
+ @discount_end = discount_end
790
1012
  @promotion_code = promotion_code
791
1013
  end
792
1014
  end
@@ -819,16 +1041,44 @@ module Stripe
819
1041
 
820
1042
  class Item < Stripe::RequestParams
821
1043
  class Discount < Stripe::RequestParams
1044
+ class DiscountEnd < Stripe::RequestParams
1045
+ class Duration < Stripe::RequestParams
1046
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1047
+ attr_accessor :interval
1048
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1049
+ attr_accessor :interval_count
1050
+
1051
+ def initialize(interval: nil, interval_count: nil)
1052
+ @interval = interval
1053
+ @interval_count = interval_count
1054
+ end
1055
+ end
1056
+ # Time span for the redeemed discount.
1057
+ attr_accessor :duration
1058
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1059
+ attr_accessor :timestamp
1060
+ # The type of calculation made to determine when the discount ends.
1061
+ attr_accessor :type
1062
+
1063
+ def initialize(duration: nil, timestamp: nil, type: nil)
1064
+ @duration = duration
1065
+ @timestamp = timestamp
1066
+ @type = type
1067
+ end
1068
+ end
822
1069
  # ID of the coupon to create a new discount for.
823
1070
  attr_accessor :coupon
824
1071
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
825
1072
  attr_accessor :discount
1073
+ # Details to determine how long the discount should be applied for.
1074
+ attr_accessor :discount_end
826
1075
  # ID of the promotion code to create a new discount for.
827
1076
  attr_accessor :promotion_code
828
1077
 
829
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
1078
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
830
1079
  @coupon = coupon
831
1080
  @discount = discount
1081
+ @discount_end = discount_end
832
1082
  @promotion_code = promotion_code
833
1083
  end
834
1084
  end
@@ -874,6 +1124,18 @@ module Stripe
874
1124
  @unit_amount_decimal = unit_amount_decimal
875
1125
  end
876
1126
  end
1127
+
1128
+ class Trial < Stripe::RequestParams
1129
+ # 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.
1130
+ attr_accessor :converts_to
1131
+ # Determines the type of trial for this item.
1132
+ attr_accessor :type
1133
+
1134
+ def initialize(converts_to: nil, type: nil)
1135
+ @converts_to = converts_to
1136
+ @type = type
1137
+ end
1138
+ end
877
1139
  # The coupons to redeem into discounts for the subscription item.
878
1140
  attr_accessor :discounts
879
1141
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a configuration item. Metadata on a configuration item will update the underlying subscription item's `metadata` when the phase is entered, adding new keys and replacing existing keys. Individual keys in the subscription item's `metadata` can be unset by posting an empty value to them in the configuration item's `metadata`. To unset all keys in the subscription item's `metadata`, update the subscription item directly or unset every key individually from the configuration item's `metadata`.
@@ -888,6 +1150,8 @@ module Stripe
888
1150
  attr_accessor :quantity
889
1151
  # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates.
890
1152
  attr_accessor :tax_rates
1153
+ # Options that configure the trial on the subscription item.
1154
+ attr_accessor :trial
891
1155
 
892
1156
  def initialize(
893
1157
  discounts: nil,
@@ -896,7 +1160,8 @@ module Stripe
896
1160
  price: nil,
897
1161
  price_data: nil,
898
1162
  quantity: nil,
899
- tax_rates: nil
1163
+ tax_rates: nil,
1164
+ trial: nil
900
1165
  )
901
1166
  @discounts = discounts
902
1167
  @metadata = metadata
@@ -905,6 +1170,16 @@ module Stripe
905
1170
  @price_data = price_data
906
1171
  @quantity = quantity
907
1172
  @tax_rates = tax_rates
1173
+ @trial = trial
1174
+ end
1175
+ end
1176
+
1177
+ class PauseCollection < Stripe::RequestParams
1178
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
1179
+ attr_accessor :behavior
1180
+
1181
+ def initialize(behavior: nil)
1182
+ @behavior = behavior
908
1183
  end
909
1184
  end
910
1185
 
@@ -919,6 +1194,23 @@ module Stripe
919
1194
  @destination = destination
920
1195
  end
921
1196
  end
1197
+
1198
+ class TrialSettings < Stripe::RequestParams
1199
+ class EndBehavior < Stripe::RequestParams
1200
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
1201
+ attr_accessor :prorate_up_front
1202
+
1203
+ def initialize(prorate_up_front: nil)
1204
+ @prorate_up_front = prorate_up_front
1205
+ end
1206
+ end
1207
+ # Defines how the subscription should behave when a trial ends.
1208
+ attr_accessor :end_behavior
1209
+
1210
+ def initialize(end_behavior: nil)
1211
+ @end_behavior = end_behavior
1212
+ end
1213
+ end
922
1214
  # A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items.
923
1215
  attr_accessor :add_invoice_items
924
1216
  # 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. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions).
@@ -951,6 +1243,8 @@ module Stripe
951
1243
  attr_accessor :metadata
952
1244
  # The account on behalf of which to charge, for each of the associated subscription's invoices.
953
1245
  attr_accessor :on_behalf_of
1246
+ # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment).
1247
+ attr_accessor :pause_collection
954
1248
  # Whether the subscription schedule will create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase. The default value is `create_prorations`. This setting controls prorations when a phase is started asynchronously and it is persisted as a field on the phase. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration of the current phase.
955
1249
  attr_accessor :proration_behavior
956
1250
  # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
@@ -959,8 +1253,12 @@ module Stripe
959
1253
  attr_accessor :transfer_data
960
1254
  # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
961
1255
  attr_accessor :trial
1256
+ # Specify trial behavior when crossing phase boundaries
1257
+ attr_accessor :trial_continuation
962
1258
  # Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial`
963
1259
  attr_accessor :trial_end
1260
+ # Settings related to subscription trials.
1261
+ attr_accessor :trial_settings
964
1262
 
965
1263
  def initialize(
966
1264
  add_invoice_items: nil,
@@ -979,11 +1277,14 @@ module Stripe
979
1277
  iterations: nil,
980
1278
  metadata: nil,
981
1279
  on_behalf_of: nil,
1280
+ pause_collection: nil,
982
1281
  proration_behavior: nil,
983
1282
  start_date: nil,
984
1283
  transfer_data: nil,
985
1284
  trial: nil,
986
- trial_end: nil
1285
+ trial_continuation: nil,
1286
+ trial_end: nil,
1287
+ trial_settings: nil
987
1288
  )
988
1289
  @add_invoice_items = add_invoice_items
989
1290
  @application_fee_percent = application_fee_percent
@@ -1001,13 +1302,30 @@ module Stripe
1001
1302
  @iterations = iterations
1002
1303
  @metadata = metadata
1003
1304
  @on_behalf_of = on_behalf_of
1305
+ @pause_collection = pause_collection
1004
1306
  @proration_behavior = proration_behavior
1005
1307
  @start_date = start_date
1006
1308
  @transfer_data = transfer_data
1007
1309
  @trial = trial
1310
+ @trial_continuation = trial_continuation
1008
1311
  @trial_end = trial_end
1312
+ @trial_settings = trial_settings
1313
+ end
1314
+ end
1315
+
1316
+ class Prebilling < Stripe::RequestParams
1317
+ # This is used to determine the number of billing cycles to prebill.
1318
+ attr_accessor :iterations
1319
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
1320
+ attr_accessor :update_behavior
1321
+
1322
+ def initialize(iterations: nil, update_behavior: nil)
1323
+ @iterations = iterations
1324
+ @update_behavior = update_behavior
1009
1325
  end
1010
1326
  end
1327
+ # 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.
1328
+ attr_accessor :billing_behavior
1011
1329
  # Object representing the subscription schedule's default settings.
1012
1330
  attr_accessor :default_settings
1013
1331
  # Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription.
@@ -1018,26 +1336,598 @@ module Stripe
1018
1336
  attr_accessor :metadata
1019
1337
  # List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase. Note that past phases can be omitted.
1020
1338
  attr_accessor :phases
1339
+ # If specified, the invoicing for the given billing cycle iterations will be processed now.
1340
+ attr_accessor :prebilling
1021
1341
  # If the update changes the current phase, indicates whether the changes should be prorated. The default value is `create_prorations`.
1022
1342
  attr_accessor :proration_behavior
1023
1343
 
1024
1344
  def initialize(
1345
+ billing_behavior: nil,
1025
1346
  default_settings: nil,
1026
1347
  end_behavior: nil,
1027
1348
  expand: nil,
1028
1349
  metadata: nil,
1029
1350
  phases: nil,
1351
+ prebilling: nil,
1030
1352
  proration_behavior: nil
1031
1353
  )
1354
+ @billing_behavior = billing_behavior
1032
1355
  @default_settings = default_settings
1033
1356
  @end_behavior = end_behavior
1034
1357
  @expand = expand
1035
1358
  @metadata = metadata
1036
1359
  @phases = phases
1360
+ @prebilling = prebilling
1037
1361
  @proration_behavior = proration_behavior
1038
1362
  end
1039
1363
  end
1040
1364
 
1365
+ class AmendParams < Stripe::RequestParams
1366
+ class Amendment < Stripe::RequestParams
1367
+ class AmendmentEnd < Stripe::RequestParams
1368
+ class DiscountEnd < Stripe::RequestParams
1369
+ # The ID of a specific discount.
1370
+ attr_accessor :discount
1371
+
1372
+ def initialize(discount: nil)
1373
+ @discount = discount
1374
+ end
1375
+ end
1376
+
1377
+ class Duration < Stripe::RequestParams
1378
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1379
+ attr_accessor :interval
1380
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1381
+ attr_accessor :interval_count
1382
+
1383
+ def initialize(interval: nil, interval_count: nil)
1384
+ @interval = interval
1385
+ @interval_count = interval_count
1386
+ end
1387
+ end
1388
+ # Use the `end` time of a given discount.
1389
+ attr_accessor :discount_end
1390
+ # Time span for the amendment starting from the `amendment_start`.
1391
+ attr_accessor :duration
1392
+ # A precise Unix timestamp for the amendment to end. Must be after the `amendment_start`.
1393
+ attr_accessor :timestamp
1394
+ # Select one of three ways to pass the `amendment_end`.
1395
+ attr_accessor :type
1396
+
1397
+ def initialize(discount_end: nil, duration: nil, timestamp: nil, type: nil)
1398
+ @discount_end = discount_end
1399
+ @duration = duration
1400
+ @timestamp = timestamp
1401
+ @type = type
1402
+ end
1403
+ end
1404
+
1405
+ class AmendmentStart < Stripe::RequestParams
1406
+ class AmendmentEnd < Stripe::RequestParams
1407
+ # The position of the previous amendment in the `amendments` array after which this amendment should begin. Indexes start from 0 and must be less than the index of the current amendment in the array.
1408
+ attr_accessor :index
1409
+
1410
+ def initialize(index: nil)
1411
+ @index = index
1412
+ end
1413
+ end
1414
+
1415
+ class DiscountEnd < Stripe::RequestParams
1416
+ # The ID of a specific discount.
1417
+ attr_accessor :discount
1418
+
1419
+ def initialize(discount: nil)
1420
+ @discount = discount
1421
+ end
1422
+ end
1423
+ # Details of another amendment in the same array, immediately after which this amendment should begin.
1424
+ attr_accessor :amendment_end
1425
+ # Use the `end` time of a given discount.
1426
+ attr_accessor :discount_end
1427
+ # A precise Unix timestamp for the amendment to start.
1428
+ attr_accessor :timestamp
1429
+ # Select one of three ways to pass the `amendment_start`.
1430
+ attr_accessor :type
1431
+
1432
+ def initialize(amendment_end: nil, discount_end: nil, timestamp: nil, type: nil)
1433
+ @amendment_end = amendment_end
1434
+ @discount_end = discount_end
1435
+ @timestamp = timestamp
1436
+ @type = type
1437
+ end
1438
+ end
1439
+
1440
+ class DiscountAction < Stripe::RequestParams
1441
+ class Add < Stripe::RequestParams
1442
+ class DiscountEnd < Stripe::RequestParams
1443
+ # The type of calculation made to determine when the discount ends.
1444
+ attr_accessor :type
1445
+
1446
+ def initialize(type: nil)
1447
+ @type = type
1448
+ end
1449
+ end
1450
+ # The coupon code to redeem.
1451
+ attr_accessor :coupon
1452
+ # An ID of an existing discount for a coupon that was already redeemed.
1453
+ attr_accessor :discount
1454
+ # Details to determine how long the discount should be applied for.
1455
+ attr_accessor :discount_end
1456
+ # 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.
1457
+ attr_accessor :index
1458
+ # The promotion code to redeem.
1459
+ attr_accessor :promotion_code
1460
+
1461
+ def initialize(
1462
+ coupon: nil,
1463
+ discount: nil,
1464
+ discount_end: nil,
1465
+ index: nil,
1466
+ promotion_code: nil
1467
+ )
1468
+ @coupon = coupon
1469
+ @discount = discount
1470
+ @discount_end = discount_end
1471
+ @index = index
1472
+ @promotion_code = promotion_code
1473
+ end
1474
+ end
1475
+
1476
+ class Remove < Stripe::RequestParams
1477
+ # The coupon code to remove from the `discounts` array.
1478
+ attr_accessor :coupon
1479
+ # The ID of a discount to remove from the `discounts` array.
1480
+ attr_accessor :discount
1481
+ # The ID of a promotion code to remove from the `discounts` array.
1482
+ attr_accessor :promotion_code
1483
+
1484
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
1485
+ @coupon = coupon
1486
+ @discount = discount
1487
+ @promotion_code = promotion_code
1488
+ end
1489
+ end
1490
+
1491
+ class Set < Stripe::RequestParams
1492
+ # The coupon code to replace the `discounts` array with.
1493
+ attr_accessor :coupon
1494
+ # An ID of an existing discount to replace the `discounts` array with.
1495
+ attr_accessor :discount
1496
+ # An ID of an existing promotion code to replace the `discounts` array with.
1497
+ attr_accessor :promotion_code
1498
+
1499
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
1500
+ @coupon = coupon
1501
+ @discount = discount
1502
+ @promotion_code = promotion_code
1503
+ end
1504
+ end
1505
+ # Details of the discount to add.
1506
+ attr_accessor :add
1507
+ # Details of the discount to remove.
1508
+ attr_accessor :remove
1509
+ # Details of the discount to replace the existing discounts with.
1510
+ attr_accessor :set
1511
+ # Determines the type of discount action.
1512
+ attr_accessor :type
1513
+
1514
+ def initialize(add: nil, remove: nil, set: nil, type: nil)
1515
+ @add = add
1516
+ @remove = remove
1517
+ @set = set
1518
+ @type = type
1519
+ end
1520
+ end
1521
+
1522
+ class ItemAction < Stripe::RequestParams
1523
+ class Add < Stripe::RequestParams
1524
+ class Discount < Stripe::RequestParams
1525
+ class DiscountEnd < Stripe::RequestParams
1526
+ class Duration < Stripe::RequestParams
1527
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1528
+ attr_accessor :interval
1529
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1530
+ attr_accessor :interval_count
1531
+
1532
+ def initialize(interval: nil, interval_count: nil)
1533
+ @interval = interval
1534
+ @interval_count = interval_count
1535
+ end
1536
+ end
1537
+ # Time span for the redeemed discount.
1538
+ attr_accessor :duration
1539
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1540
+ attr_accessor :timestamp
1541
+ # The type of calculation made to determine when the discount ends.
1542
+ attr_accessor :type
1543
+
1544
+ def initialize(duration: nil, timestamp: nil, type: nil)
1545
+ @duration = duration
1546
+ @timestamp = timestamp
1547
+ @type = type
1548
+ end
1549
+ end
1550
+ # ID of the coupon to create a new discount for.
1551
+ attr_accessor :coupon
1552
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1553
+ attr_accessor :discount
1554
+ # Details to determine how long the discount should be applied for.
1555
+ attr_accessor :discount_end
1556
+ # ID of the promotion code to create a new discount for.
1557
+ attr_accessor :promotion_code
1558
+
1559
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
1560
+ @coupon = coupon
1561
+ @discount = discount
1562
+ @discount_end = discount_end
1563
+ @promotion_code = promotion_code
1564
+ end
1565
+ end
1566
+
1567
+ class Trial < Stripe::RequestParams
1568
+ # 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.
1569
+ attr_accessor :converts_to
1570
+ # Determines the type of trial for this item.
1571
+ attr_accessor :type
1572
+
1573
+ def initialize(converts_to: nil, type: nil)
1574
+ @converts_to = converts_to
1575
+ @type = type
1576
+ end
1577
+ end
1578
+ # The discounts applied to the item. Subscription item discounts are applied before subscription discounts.
1579
+ attr_accessor :discounts
1580
+ # 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`.
1581
+ attr_accessor :metadata
1582
+ # The ID of the price object.
1583
+ attr_accessor :price
1584
+ # Quantity for this item.
1585
+ attr_accessor :quantity
1586
+ # 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`.
1587
+ attr_accessor :tax_rates
1588
+ # Options that configure the trial on the subscription item.
1589
+ attr_accessor :trial
1590
+
1591
+ def initialize(
1592
+ discounts: nil,
1593
+ metadata: nil,
1594
+ price: nil,
1595
+ quantity: nil,
1596
+ tax_rates: nil,
1597
+ trial: nil
1598
+ )
1599
+ @discounts = discounts
1600
+ @metadata = metadata
1601
+ @price = price
1602
+ @quantity = quantity
1603
+ @tax_rates = tax_rates
1604
+ @trial = trial
1605
+ end
1606
+ end
1607
+
1608
+ class Remove < Stripe::RequestParams
1609
+ # ID of a price to remove.
1610
+ attr_accessor :price
1611
+
1612
+ def initialize(price: nil)
1613
+ @price = price
1614
+ end
1615
+ end
1616
+
1617
+ class Set < Stripe::RequestParams
1618
+ class Discount < Stripe::RequestParams
1619
+ class DiscountEnd < Stripe::RequestParams
1620
+ class Duration < Stripe::RequestParams
1621
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1622
+ attr_accessor :interval
1623
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1624
+ attr_accessor :interval_count
1625
+
1626
+ def initialize(interval: nil, interval_count: nil)
1627
+ @interval = interval
1628
+ @interval_count = interval_count
1629
+ end
1630
+ end
1631
+ # Time span for the redeemed discount.
1632
+ attr_accessor :duration
1633
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1634
+ attr_accessor :timestamp
1635
+ # The type of calculation made to determine when the discount ends.
1636
+ attr_accessor :type
1637
+
1638
+ def initialize(duration: nil, timestamp: nil, type: nil)
1639
+ @duration = duration
1640
+ @timestamp = timestamp
1641
+ @type = type
1642
+ end
1643
+ end
1644
+ # ID of the coupon to create a new discount for.
1645
+ attr_accessor :coupon
1646
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1647
+ attr_accessor :discount
1648
+ # Details to determine how long the discount should be applied for.
1649
+ attr_accessor :discount_end
1650
+ # ID of the promotion code to create a new discount for.
1651
+ attr_accessor :promotion_code
1652
+
1653
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
1654
+ @coupon = coupon
1655
+ @discount = discount
1656
+ @discount_end = discount_end
1657
+ @promotion_code = promotion_code
1658
+ end
1659
+ end
1660
+
1661
+ class Trial < Stripe::RequestParams
1662
+ # 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.
1663
+ attr_accessor :converts_to
1664
+ # Determines the type of trial for this item.
1665
+ attr_accessor :type
1666
+
1667
+ def initialize(converts_to: nil, type: nil)
1668
+ @converts_to = converts_to
1669
+ @type = type
1670
+ end
1671
+ end
1672
+ # 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`.
1673
+ attr_accessor :discounts
1674
+ # 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`.
1675
+ attr_accessor :metadata
1676
+ # The ID of the price object.
1677
+ attr_accessor :price
1678
+ # 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`.
1679
+ attr_accessor :quantity
1680
+ # 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`.
1681
+ attr_accessor :tax_rates
1682
+ # 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`.
1683
+ attr_accessor :trial
1684
+
1685
+ def initialize(
1686
+ discounts: nil,
1687
+ metadata: nil,
1688
+ price: nil,
1689
+ quantity: nil,
1690
+ tax_rates: nil,
1691
+ trial: nil
1692
+ )
1693
+ @discounts = discounts
1694
+ @metadata = metadata
1695
+ @price = price
1696
+ @quantity = quantity
1697
+ @tax_rates = tax_rates
1698
+ @trial = trial
1699
+ end
1700
+ end
1701
+ # Details of the subscription item to add. If an item with the same `price` exists, it will be replaced by this new item. Otherwise, it adds the new item.
1702
+ attr_accessor :add
1703
+ # Details of the subscription item to remove.
1704
+ attr_accessor :remove
1705
+ # Details of the subscription item to replace the existing items with. If an item with the `set[price]` already exists, the `items` array is not cleared. Instead, all of the other `set` properties that are passed in this request will replace the existing values for the configuration item.
1706
+ attr_accessor :set
1707
+ # Determines the type of item action.
1708
+ attr_accessor :type
1709
+
1710
+ def initialize(add: nil, remove: nil, set: nil, type: nil)
1711
+ @add = add
1712
+ @remove = remove
1713
+ @set = set
1714
+ @type = type
1715
+ end
1716
+ end
1717
+
1718
+ class MetadataAction < Stripe::RequestParams
1719
+ # Key-value pairs to add to schedule phase metadata. These values will merge with existing schedule phase metadata.
1720
+ attr_accessor :add
1721
+ # Keys to remove from schedule phase metadata.
1722
+ attr_accessor :remove
1723
+ # Key-value pairs to set as schedule phase metadata. Existing schedule phase metadata will be overwritten.
1724
+ attr_accessor :set
1725
+ # Select one of three ways to update phase-level `metadata` on subscription schedules.
1726
+ attr_accessor :type
1727
+
1728
+ def initialize(add: nil, remove: nil, set: nil, type: nil)
1729
+ @add = add
1730
+ @remove = remove
1731
+ @set = set
1732
+ @type = type
1733
+ end
1734
+ end
1735
+
1736
+ class SetPauseCollection < Stripe::RequestParams
1737
+ class Set < Stripe::RequestParams
1738
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
1739
+ attr_accessor :behavior
1740
+
1741
+ def initialize(behavior: nil)
1742
+ @behavior = behavior
1743
+ end
1744
+ end
1745
+ # Details of the pause_collection behavior to apply to the amendment.
1746
+ attr_accessor :set
1747
+ # Determines the type of the pause_collection amendment.
1748
+ attr_accessor :type
1749
+
1750
+ def initialize(set: nil, type: nil)
1751
+ @set = set
1752
+ @type = type
1753
+ end
1754
+ end
1755
+
1756
+ class TrialSettings < Stripe::RequestParams
1757
+ class EndBehavior < Stripe::RequestParams
1758
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
1759
+ attr_accessor :prorate_up_front
1760
+
1761
+ def initialize(prorate_up_front: nil)
1762
+ @prorate_up_front = prorate_up_front
1763
+ end
1764
+ end
1765
+ # Defines how the subscription should behave when a trial ends.
1766
+ attr_accessor :end_behavior
1767
+
1768
+ def initialize(end_behavior: nil)
1769
+ @end_behavior = end_behavior
1770
+ end
1771
+ end
1772
+ # Details to identify the end of the time range modified by the proposed change. If not supplied, the amendment is considered a point-in-time operation that only affects the exact timestamp at `amendment_start`, and a restricted set of attributes is supported on the amendment.
1773
+ attr_accessor :amendment_end
1774
+ # Details to identify the earliest timestamp where the proposed change should take effect.
1775
+ attr_accessor :amendment_start
1776
+ # For point-in-time amendments (having no `amendment_end`), this attribute lets you set or remove whether the subscription's billing cycle anchor is reset at the `amendment_start` timestamp.For time-span based amendments (having both `amendment_start` and `amendment_end`), the only value valid is `automatic`, which removes any previously configured billing cycle anchor resets scheduled to occur during the window of time spanned by the amendment.
1777
+ attr_accessor :billing_cycle_anchor
1778
+ # Changes to the coupons being redeemed or discounts being applied during the amendment time span.
1779
+ attr_accessor :discount_actions
1780
+ # Changes to the subscription items during the amendment time span.
1781
+ attr_accessor :item_actions
1782
+ # Instructions for how to modify phase metadata
1783
+ attr_accessor :metadata_actions
1784
+ # Changes to how Stripe handles prorations during the amendment time span. Affects if and how prorations are created when a future phase starts. In cases where the amendment changes the currently active phase, it is used to determine whether or how to prorate now, at the time of the request. Also supported as a point-in-time operation when `amendment_end` is `null`.
1785
+ attr_accessor :proration_behavior
1786
+ # Defines how to pause collection for the underlying subscription throughout the duration of the amendment.
1787
+ attr_accessor :set_pause_collection
1788
+ # Ends the subscription schedule early as dictated by either the accompanying amendment's start or end.
1789
+ attr_accessor :set_schedule_end
1790
+ # Settings related to subscription trials.
1791
+ attr_accessor :trial_settings
1792
+
1793
+ def initialize(
1794
+ amendment_end: nil,
1795
+ amendment_start: nil,
1796
+ billing_cycle_anchor: nil,
1797
+ discount_actions: nil,
1798
+ item_actions: nil,
1799
+ metadata_actions: nil,
1800
+ proration_behavior: nil,
1801
+ set_pause_collection: nil,
1802
+ set_schedule_end: nil,
1803
+ trial_settings: nil
1804
+ )
1805
+ @amendment_end = amendment_end
1806
+ @amendment_start = amendment_start
1807
+ @billing_cycle_anchor = billing_cycle_anchor
1808
+ @discount_actions = discount_actions
1809
+ @item_actions = item_actions
1810
+ @metadata_actions = metadata_actions
1811
+ @proration_behavior = proration_behavior
1812
+ @set_pause_collection = set_pause_collection
1813
+ @set_schedule_end = set_schedule_end
1814
+ @trial_settings = trial_settings
1815
+ end
1816
+ end
1817
+
1818
+ class Prebilling < Stripe::RequestParams
1819
+ class BillFrom < Stripe::RequestParams
1820
+ class AmendmentStart < Stripe::RequestParams
1821
+ # The position of the amendment in the `amendments` array with which prebilling should begin. Indexes start from 0 and must be less than the total number of supplied amendments.
1822
+ attr_accessor :index
1823
+
1824
+ def initialize(index: nil)
1825
+ @index = index
1826
+ end
1827
+ end
1828
+ # Start the prebilled period when a specified amendment begins.
1829
+ attr_accessor :amendment_start
1830
+ # Start the prebilled period at a precise integer timestamp, starting from the Unix epoch.
1831
+ attr_accessor :timestamp
1832
+ # Select one of several ways to pass the `bill_from` value.
1833
+ attr_accessor :type
1834
+
1835
+ def initialize(amendment_start: nil, timestamp: nil, type: nil)
1836
+ @amendment_start = amendment_start
1837
+ @timestamp = timestamp
1838
+ @type = type
1839
+ end
1840
+ end
1841
+
1842
+ class BillUntil < Stripe::RequestParams
1843
+ class AmendmentEnd < Stripe::RequestParams
1844
+ # The position of the amendment in the `amendments` array at which prebilling should end. Indexes start from 0 and must be less than the total number of supplied amendments.
1845
+ attr_accessor :index
1846
+
1847
+ def initialize(index: nil)
1848
+ @index = index
1849
+ end
1850
+ end
1851
+
1852
+ class Duration < Stripe::RequestParams
1853
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1854
+ attr_accessor :interval
1855
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1856
+ attr_accessor :interval_count
1857
+
1858
+ def initialize(interval: nil, interval_count: nil)
1859
+ @interval = interval
1860
+ @interval_count = interval_count
1861
+ end
1862
+ end
1863
+ # End the prebilled period when a specified amendment ends.
1864
+ attr_accessor :amendment_end
1865
+ # Time span for prebilling, starting from `bill_from`.
1866
+ attr_accessor :duration
1867
+ # End the prebilled period at a precise integer timestamp, starting from the Unix epoch.
1868
+ attr_accessor :timestamp
1869
+ # Select one of several ways to pass the `bill_until` value.
1870
+ attr_accessor :type
1871
+
1872
+ def initialize(amendment_end: nil, duration: nil, timestamp: nil, type: nil)
1873
+ @amendment_end = amendment_end
1874
+ @duration = duration
1875
+ @timestamp = timestamp
1876
+ @type = type
1877
+ end
1878
+ end
1879
+ # The beginning of the prebilled time period. The default value is `now`.
1880
+ attr_accessor :bill_from
1881
+ # The end of the prebilled time period.
1882
+ attr_accessor :bill_until
1883
+ # When the prebilling invoice should be created. The default value is `now`.
1884
+ attr_accessor :invoice_at
1885
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
1886
+ attr_accessor :update_behavior
1887
+
1888
+ def initialize(bill_from: nil, bill_until: nil, invoice_at: nil, update_behavior: nil)
1889
+ @bill_from = bill_from
1890
+ @bill_until = bill_until
1891
+ @invoice_at = invoice_at
1892
+ @update_behavior = update_behavior
1893
+ end
1894
+ end
1895
+
1896
+ class ScheduleSettings < Stripe::RequestParams
1897
+ # Behavior of the subscription schedule and underlying subscription when it ends.
1898
+ attr_accessor :end_behavior
1899
+
1900
+ def initialize(end_behavior: nil)
1901
+ @end_behavior = end_behavior
1902
+ end
1903
+ end
1904
+ # Changes to apply to the phases of the subscription schedule, in the order provided.
1905
+ attr_accessor :amendments
1906
+ # Specifies which fields in the response should be expanded.
1907
+ attr_accessor :expand
1908
+ # Provide any time periods to bill in advance.
1909
+ attr_accessor :prebilling
1910
+ # In cases where the amendment changes the currently active phase,
1911
+ # specifies if and how to prorate at the time of the request.
1912
+ attr_accessor :proration_behavior
1913
+ # Changes to apply to the subscription schedule.
1914
+ attr_accessor :schedule_settings
1915
+
1916
+ def initialize(
1917
+ amendments: nil,
1918
+ expand: nil,
1919
+ prebilling: nil,
1920
+ proration_behavior: nil,
1921
+ schedule_settings: nil
1922
+ )
1923
+ @amendments = amendments
1924
+ @expand = expand
1925
+ @prebilling = prebilling
1926
+ @proration_behavior = proration_behavior
1927
+ @schedule_settings = schedule_settings
1928
+ end
1929
+ end
1930
+
1041
1931
  class CancelParams < Stripe::RequestParams
1042
1932
  # Specifies which fields in the response should be expanded.
1043
1933
  attr_accessor :expand
@@ -1065,6 +1955,17 @@ module Stripe
1065
1955
  end
1066
1956
  end
1067
1957
 
1958
+ # Amends an existing subscription schedule.
1959
+ def amend(schedule, params = {}, opts = {})
1960
+ request(
1961
+ method: :post,
1962
+ path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(schedule) }),
1963
+ params: params,
1964
+ opts: opts,
1965
+ base_address: :api
1966
+ )
1967
+ end
1968
+
1068
1969
  # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
1069
1970
  def cancel(schedule, params = {}, opts = {})
1070
1971
  request(