stripe 13.3.0 → 13.4.0.pre.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (743) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1416 -645
  3. data/OPENAPI_VERSION +1 -1
  4. data/VERSION +1 -1
  5. data/lib/stripe/api_operations/request.rb +1 -0
  6. data/lib/stripe/api_requestor.rb +1 -0
  7. data/lib/stripe/object_types.rb +32 -0
  8. data/lib/stripe/request_params.rb +24 -0
  9. data/lib/stripe/request_signing_authenticator.rb +79 -0
  10. data/lib/stripe/resources/account.rb +5071 -0
  11. data/lib/stripe/resources/account_link.rb +54 -0
  12. data/lib/stripe/resources/account_notice.rb +132 -0
  13. data/lib/stripe/resources/account_session.rb +877 -0
  14. data/lib/stripe/resources/apple_pay_domain.rb +63 -0
  15. data/lib/stripe/resources/application.rb +20 -0
  16. data/lib/stripe/resources/application_fee.rb +96 -0
  17. data/lib/stripe/resources/application_fee_refund.rb +17 -0
  18. data/lib/stripe/resources/apps/secret.rb +141 -0
  19. data/lib/stripe/resources/balance.rb +131 -0
  20. data/lib/stripe/resources/balance_transaction.rb +112 -0
  21. data/lib/stripe/resources/bank_account.rb +84 -2
  22. data/lib/stripe/resources/billing/alert.rb +144 -0
  23. data/lib/stripe/resources/billing/alert_triggered.rb +26 -0
  24. data/lib/stripe/resources/billing/credit_balance_summary.rb +77 -0
  25. data/lib/stripe/resources/billing/credit_balance_transaction.rb +116 -0
  26. data/lib/stripe/resources/billing/credit_grant.rb +203 -0
  27. data/lib/stripe/resources/billing/meter.rb +178 -0
  28. data/lib/stripe/resources/billing/meter_error_report.rb +59 -0
  29. data/lib/stripe/resources/billing/meter_event.rb +35 -0
  30. data/lib/stripe/resources/billing/meter_event_adjustment.rb +43 -0
  31. data/lib/stripe/resources/billing/meter_event_summary.rb +15 -0
  32. data/lib/stripe/resources/billing_portal/configuration.rb +562 -0
  33. data/lib/stripe/resources/billing_portal/session.rb +271 -0
  34. data/lib/stripe/resources/capability.rb +84 -0
  35. data/lib/stripe/resources/capital/financing_offer.rb +188 -0
  36. data/lib/stripe/resources/capital/financing_summary.rb +64 -0
  37. data/lib/stripe/resources/capital/financing_transaction.rb +123 -0
  38. data/lib/stripe/resources/card.rb +79 -0
  39. data/lib/stripe/resources/cash_balance.rb +17 -0
  40. data/lib/stripe/resources/charge.rb +3026 -0
  41. data/lib/stripe/resources/checkout/session.rb +3654 -0
  42. data/lib/stripe/resources/climate/order.rb +176 -0
  43. data/lib/stripe/resources/climate/product.rb +56 -0
  44. data/lib/stripe/resources/climate/supplier.rb +54 -0
  45. data/lib/stripe/resources/confirmation_token.rb +1520 -0
  46. data/lib/stripe/resources/connect_collection_transfer.rb +24 -0
  47. data/lib/stripe/resources/country_spec.rb +63 -0
  48. data/lib/stripe/resources/coupon.rb +198 -0
  49. data/lib/stripe/resources/credit_note.rb +660 -0
  50. data/lib/stripe/resources/credit_note_line_item.rb +65 -0
  51. data/lib/stripe/resources/customer.rb +840 -0
  52. data/lib/stripe/resources/customer_balance_transaction.rb +27 -0
  53. data/lib/stripe/resources/customer_cash_balance_transaction.rb +109 -0
  54. data/lib/stripe/resources/customer_session.rb +159 -0
  55. data/lib/stripe/resources/discount.rb +29 -0
  56. data/lib/stripe/resources/dispute.rb +619 -0
  57. data/lib/stripe/resources/entitlements/active_entitlement.rb +46 -0
  58. data/lib/stripe/resources/entitlements/active_entitlement_summary.rb +23 -0
  59. data/lib/stripe/resources/entitlements/feature.rb +90 -0
  60. data/lib/stripe/resources/ephemeral_key.rb +21 -0
  61. data/lib/stripe/resources/event.rb +130 -0
  62. data/lib/stripe/resources/exchange_rate.rb +33 -0
  63. data/lib/stripe/resources/file.rb +111 -0
  64. data/lib/stripe/resources/file_link.rb +112 -0
  65. data/lib/stripe/resources/financial_connections/account.rb +260 -0
  66. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +27 -0
  67. data/lib/stripe/resources/financial_connections/account_owner.rb +17 -0
  68. data/lib/stripe/resources/financial_connections/account_ownership.rb +9 -0
  69. data/lib/stripe/resources/financial_connections/institution.rb +99 -0
  70. data/lib/stripe/resources/financial_connections/session.rb +159 -0
  71. data/lib/stripe/resources/financial_connections/transaction.rb +101 -0
  72. data/lib/stripe/resources/forwarding/request.rb +165 -0
  73. data/lib/stripe/resources/funding_instructions.rb +308 -0
  74. data/lib/stripe/resources/gift_cards/card.rb +217 -0
  75. data/lib/stripe/resources/gift_cards/transaction.rb +281 -0
  76. data/lib/stripe/resources/identity/verification_report.rb +266 -0
  77. data/lib/stripe/resources/identity/verification_session.rb +361 -0
  78. data/lib/stripe/resources/invoice.rb +8078 -0
  79. data/lib/stripe/resources/invoice_item.rb +445 -0
  80. data/lib/stripe/resources/invoice_line_item.rb +333 -0
  81. data/lib/stripe/resources/invoice_payment.rb +56 -0
  82. data/lib/stripe/resources/invoice_rendering_template.rb +67 -0
  83. data/lib/stripe/resources/issuing/authorization.rb +1117 -2
  84. data/lib/stripe/resources/issuing/card.rb +666 -0
  85. data/lib/stripe/resources/issuing/cardholder.rb +658 -0
  86. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +611 -0
  87. data/lib/stripe/resources/issuing/dispute.rb +790 -0
  88. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +84 -0
  89. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +95 -0
  90. data/lib/stripe/resources/issuing/personalization_design.rb +285 -0
  91. data/lib/stripe/resources/issuing/physical_bundle.rb +63 -0
  92. data/lib/stripe/resources/issuing/settlement.rb +49 -0
  93. data/lib/stripe/resources/issuing/token.rb +175 -0
  94. data/lib/stripe/resources/issuing/transaction.rb +927 -0
  95. data/lib/stripe/resources/line_item.rb +75 -0
  96. data/lib/stripe/resources/login_link.rb +7 -0
  97. data/lib/stripe/resources/mandate.rb +169 -0
  98. data/lib/stripe/resources/margin.rb +124 -0
  99. data/lib/stripe/resources/order.rb +2850 -0
  100. data/lib/stripe/resources/payment_attempt_record.rb +184 -0
  101. data/lib/stripe/resources/payment_intent.rb +12864 -0
  102. data/lib/stripe/resources/payment_link.rb +1563 -0
  103. data/lib/stripe/resources/payment_method.rb +1638 -0
  104. data/lib/stripe/resources/payment_method_configuration.rb +2844 -0
  105. data/lib/stripe/resources/payment_method_domain.rb +153 -0
  106. data/lib/stripe/resources/payment_record.rb +715 -0
  107. data/lib/stripe/resources/payout.rb +218 -0
  108. data/lib/stripe/resources/person.rb +263 -0
  109. data/lib/stripe/resources/plan.rb +317 -0
  110. data/lib/stripe/resources/price.rb +649 -0
  111. data/lib/stripe/resources/product.rb +536 -0
  112. data/lib/stripe/resources/product_feature.rb +12 -0
  113. data/lib/stripe/resources/promotion_code.rb +221 -0
  114. data/lib/stripe/resources/quote.rb +2946 -0
  115. data/lib/stripe/resources/quote_line.rb +274 -0
  116. data/lib/stripe/resources/quote_preview_invoice.rb +652 -0
  117. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +362 -0
  118. data/lib/stripe/resources/radar/early_fraud_warning.rb +77 -0
  119. data/lib/stripe/resources/radar/value_list.rb +125 -0
  120. data/lib/stripe/resources/radar/value_list_item.rb +95 -0
  121. data/lib/stripe/resources/refund.rb +397 -0
  122. data/lib/stripe/resources/reporting/report_run.rb +150 -0
  123. data/lib/stripe/resources/reporting/report_type.rb +36 -0
  124. data/lib/stripe/resources/reserve_transaction.rb +22 -0
  125. data/lib/stripe/resources/reversal.rb +21 -0
  126. data/lib/stripe/resources/review.rb +108 -0
  127. data/lib/stripe/resources/setup_attempt.rb +373 -0
  128. data/lib/stripe/resources/setup_intent.rb +3834 -0
  129. data/lib/stripe/resources/shipping_rate.rb +259 -0
  130. data/lib/stripe/resources/sigma/scheduled_query_run.rb +54 -0
  131. data/lib/stripe/resources/source.rb +1239 -0
  132. data/lib/stripe/resources/source_mandate_notification.rb +66 -0
  133. data/lib/stripe/resources/source_transaction.rb +85 -0
  134. data/lib/stripe/resources/subscription.rb +2057 -0
  135. data/lib/stripe/resources/subscription_item.rb +433 -0
  136. data/lib/stripe/resources/subscription_schedule.rb +2402 -0
  137. data/lib/stripe/resources/tax/association.rb +89 -0
  138. data/lib/stripe/resources/tax/calculation.rb +387 -0
  139. data/lib/stripe/resources/tax/calculation_line_item.rb +56 -0
  140. data/lib/stripe/resources/tax/form.rb +220 -0
  141. data/lib/stripe/resources/tax/registration.rb +2382 -0
  142. data/lib/stripe/resources/tax/settings.rb +126 -0
  143. data/lib/stripe/resources/tax/transaction.rb +267 -0
  144. data/lib/stripe/resources/tax/transaction_line_item.rb +31 -0
  145. data/lib/stripe/resources/tax_code.rb +35 -0
  146. data/lib/stripe/resources/tax_deducted_at_source.rb +22 -0
  147. data/lib/stripe/resources/tax_id.rb +121 -0
  148. data/lib/stripe/resources/tax_rate.rb +200 -0
  149. data/lib/stripe/resources/terminal/configuration.rb +1011 -0
  150. data/lib/stripe/resources/terminal/connection_token.rb +18 -0
  151. data/lib/stripe/resources/terminal/location.rb +175 -0
  152. data/lib/stripe/resources/terminal/reader.rb +782 -0
  153. data/lib/stripe/resources/terminal/reader_collected_data.rb +40 -0
  154. data/lib/stripe/resources/test_helpers/test_clock.rb +86 -0
  155. data/lib/stripe/resources/token.rb +1149 -0
  156. data/lib/stripe/resources/topup.rb +174 -0
  157. data/lib/stripe/resources/transfer.rb +153 -0
  158. data/lib/stripe/resources/treasury/credit_reversal.rb +92 -0
  159. data/lib/stripe/resources/treasury/debit_reversal.rb +103 -0
  160. data/lib/stripe/resources/treasury/financial_account.rb +772 -0
  161. data/lib/stripe/resources/treasury/financial_account_features.rb +191 -0
  162. data/lib/stripe/resources/treasury/inbound_transfer.rb +235 -0
  163. data/lib/stripe/resources/treasury/outbound_payment.rb +495 -0
  164. data/lib/stripe/resources/treasury/outbound_transfer.rb +387 -0
  165. data/lib/stripe/resources/treasury/received_credit.rb +283 -0
  166. data/lib/stripe/resources/treasury/received_debit.rb +244 -0
  167. data/lib/stripe/resources/treasury/transaction.rb +176 -0
  168. data/lib/stripe/resources/treasury/transaction_entry.rb +157 -0
  169. data/lib/stripe/resources/usage_record.rb +13 -0
  170. data/lib/stripe/resources/usage_record_summary.rb +21 -0
  171. data/lib/stripe/resources/v2/amount.rb +9 -0
  172. data/lib/stripe/resources/v2/billing/meter_event.rb +18 -0
  173. data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +21 -0
  174. data/lib/stripe/resources/v2/billing/meter_event_session.rb +14 -0
  175. data/lib/stripe/resources/v2/event.rb +27 -0
  176. data/lib/stripe/resources/v2/event_destination.rb +59 -0
  177. data/lib/stripe/resources/webhook_endpoint.rb +122 -0
  178. data/lib/stripe/resources.rb +31 -0
  179. data/lib/stripe/services/account_capability_service.rb +32 -0
  180. data/lib/stripe/services/account_external_account_service.rb +250 -0
  181. data/lib/stripe/services/account_link_service.rb +46 -0
  182. data/lib/stripe/services/account_login_link_service.rb +9 -0
  183. data/lib/stripe/services/account_notice_service.rb +101 -0
  184. data/lib/stripe/services/account_person_service.rb +875 -0
  185. data/lib/stripe/services/account_service.rb +4351 -0
  186. data/lib/stripe/services/account_session_service.rb +664 -0
  187. data/lib/stripe/services/apple_pay_domain_service.rb +51 -0
  188. data/lib/stripe/services/application_fee_refund_service.rb +54 -0
  189. data/lib/stripe/services/application_fee_service.rb +57 -0
  190. data/lib/stripe/services/apps/secret_service.rb +116 -0
  191. data/lib/stripe/services/balance_service.rb +9 -0
  192. data/lib/stripe/services/balance_transaction_service.rb +69 -0
  193. data/lib/stripe/services/billing/alert_service.rb +113 -0
  194. data/lib/stripe/services/billing/credit_balance_summary_service.rb +37 -0
  195. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +40 -0
  196. data/lib/stripe/services/billing/credit_grant_service.rb +151 -0
  197. data/lib/stripe/services/billing/meter_event_adjustment_service.rb +26 -0
  198. data/lib/stripe/services/billing/meter_event_service.rb +21 -0
  199. data/lib/stripe/services/billing/meter_event_summary_service.rb +39 -0
  200. data/lib/stripe/services/billing/meter_service.rb +130 -0
  201. data/lib/stripe/services/billing_portal/configuration_service.rb +444 -0
  202. data/lib/stripe/services/billing_portal/session_service.rb +173 -0
  203. data/lib/stripe/services/capital/financing_offer_service.rb +112 -0
  204. data/lib/stripe/services/capital/financing_summary_service.rb +28 -0
  205. data/lib/stripe/services/capital/financing_transaction_service.rb +79 -0
  206. data/lib/stripe/services/capital_service.rb +15 -0
  207. data/lib/stripe/services/charge_service.rb +1736 -0
  208. data/lib/stripe/services/checkout/session_line_item_service.rb +18 -0
  209. data/lib/stripe/services/checkout/session_service.rb +2465 -0
  210. data/lib/stripe/services/climate/order_service.rb +102 -0
  211. data/lib/stripe/services/climate/product_service.rb +27 -0
  212. data/lib/stripe/services/climate/supplier_service.rb +27 -0
  213. data/lib/stripe/services/confirmation_token_service.rb +9 -0
  214. data/lib/stripe/services/country_spec_service.rb +27 -0
  215. data/lib/stripe/services/coupon_service.rb +152 -0
  216. data/lib/stripe/services/credit_note_line_item_service.rb +18 -0
  217. data/lib/stripe/services/credit_note_preview_lines_service.rb +156 -0
  218. data/lib/stripe/services/credit_note_service.rb +373 -0
  219. data/lib/stripe/services/customer_balance_transaction_service.rb +63 -0
  220. data/lib/stripe/services/customer_cash_balance_service.rb +29 -0
  221. data/lib/stripe/services/customer_cash_balance_transaction_service.rb +27 -0
  222. data/lib/stripe/services/customer_funding_instructions_service.rb +42 -0
  223. data/lib/stripe/services/customer_payment_method_service.rb +40 -0
  224. data/lib/stripe/services/customer_payment_source_service.rb +179 -0
  225. data/lib/stripe/services/customer_service.rb +593 -0
  226. data/lib/stripe/services/customer_session_service.rb +96 -0
  227. data/lib/stripe/services/customer_tax_id_service.rb +45 -0
  228. data/lib/stripe/services/dispute_service.rb +374 -0
  229. data/lib/stripe/services/entitlements/active_entitlement_service.rb +36 -0
  230. data/lib/stripe/services/entitlements/feature_service.rb +76 -0
  231. data/lib/stripe/services/ephemeral_key_service.rb +36 -0
  232. data/lib/stripe/services/event_service.rb +65 -0
  233. data/lib/stripe/services/exchange_rate_service.rb +27 -0
  234. data/lib/stripe/services/file_link_service.rb +94 -0
  235. data/lib/stripe/services/file_service.rb +89 -0
  236. data/lib/stripe/services/financial_connections/account_inferred_balance_service.rb +37 -0
  237. data/lib/stripe/services/financial_connections/account_owner_service.rb +27 -0
  238. data/lib/stripe/services/financial_connections/account_service.rb +99 -1
  239. data/lib/stripe/services/financial_connections/institution_service.rb +57 -0
  240. data/lib/stripe/services/financial_connections/session_service.rb +97 -0
  241. data/lib/stripe/services/financial_connections/transaction_service.rb +70 -0
  242. data/lib/stripe/services/financial_connections_service.rb +2 -1
  243. data/lib/stripe/services/forwarding/request_service.rb +106 -0
  244. data/lib/stripe/services/gift_cards/card_service.rb +170 -0
  245. data/lib/stripe/services/gift_cards/transaction_service.rb +209 -0
  246. data/lib/stripe/services/gift_cards_service.rb +14 -0
  247. data/lib/stripe/services/identity/verification_report_service.rb +65 -0
  248. data/lib/stripe/services/identity/verification_session_service.rb +231 -0
  249. data/lib/stripe/services/invoice_item_service.rb +388 -0
  250. data/lib/stripe/services/invoice_line_item_service.rb +237 -0
  251. data/lib/stripe/services/invoice_payment_service.rb +55 -0
  252. data/lib/stripe/services/invoice_rendering_template_service.rb +51 -0
  253. data/lib/stripe/services/invoice_service.rb +5567 -1
  254. data/lib/stripe/services/invoice_upcoming_lines_service.rb +1864 -0
  255. data/lib/stripe/services/issuing/authorization_service.rb +104 -0
  256. data/lib/stripe/services/issuing/card_service.rb +455 -0
  257. data/lib/stripe/services/issuing/cardholder_service.rb +526 -0
  258. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +504 -0
  259. data/lib/stripe/services/issuing/dispute_service.rb +633 -0
  260. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +66 -0
  261. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +83 -0
  262. data/lib/stripe/services/issuing/personalization_design_service.rb +193 -0
  263. data/lib/stripe/services/issuing/physical_bundle_service.rb +40 -0
  264. data/lib/stripe/services/issuing/token_service.rb +73 -0
  265. data/lib/stripe/services/issuing/transaction_service.rb +81 -0
  266. data/lib/stripe/services/issuing_service.rb +5 -1
  267. data/lib/stripe/services/mandate_service.rb +9 -0
  268. data/lib/stripe/services/margin_service.rb +119 -0
  269. data/lib/stripe/services/order_line_item_service.rb +35 -0
  270. data/lib/stripe/services/order_service.rb +2254 -0
  271. data/lib/stripe/services/payment_attempt_record_service.rb +49 -0
  272. data/lib/stripe/services/payment_intent_service.rb +10894 -0
  273. data/lib/stripe/services/payment_link_line_item_service.rb +18 -0
  274. data/lib/stripe/services/payment_link_service.rb +1223 -0
  275. data/lib/stripe/services/payment_method_configuration_service.rb +2046 -0
  276. data/lib/stripe/services/payment_method_domain_service.rb +76 -0
  277. data/lib/stripe/services/payment_method_service.rb +864 -0
  278. data/lib/stripe/services/payment_record_service.rb +542 -0
  279. data/lib/stripe/services/payout_service.rb +159 -0
  280. data/lib/stripe/services/plan_service.rb +253 -0
  281. data/lib/stripe/services/price_service.rb +516 -0
  282. data/lib/stripe/services/product_feature_service.rb +42 -0
  283. data/lib/stripe/services/product_service.rb +459 -0
  284. data/lib/stripe/services/promotion_code_service.rb +178 -0
  285. data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +18 -0
  286. data/lib/stripe/services/quote_line_item_service.rb +18 -0
  287. data/lib/stripe/services/quote_line_service.rb +35 -0
  288. data/lib/stripe/services/quote_preview_invoice_service.rb +35 -0
  289. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +35 -0
  290. data/lib/stripe/services/quote_service.rb +2319 -1
  291. data/lib/stripe/services/radar/early_fraud_warning_service.rb +61 -0
  292. data/lib/stripe/services/radar/value_list_item_service.rb +79 -0
  293. data/lib/stripe/services/radar/value_list_service.rb +103 -0
  294. data/lib/stripe/services/refund_service.rb +137 -0
  295. data/lib/stripe/services/reporting/report_run_service.rb +106 -0
  296. data/lib/stripe/services/reporting/report_type_service.rb +18 -0
  297. data/lib/stripe/services/review_service.rb +56 -0
  298. data/lib/stripe/services/setup_attempt_service.rb +51 -0
  299. data/lib/stripe/services/setup_intent_service.rb +3476 -0
  300. data/lib/stripe/services/shipping_rate_service.rb +200 -0
  301. data/lib/stripe/services/sigma/scheduled_query_run_service.rb +27 -0
  302. data/lib/stripe/services/source_service.rb +601 -0
  303. data/lib/stripe/services/source_transaction_service.rb +18 -0
  304. data/lib/stripe/services/subscription_item_service.rb +383 -0
  305. data/lib/stripe/services/subscription_item_usage_record_service.rb +18 -0
  306. data/lib/stripe/services/subscription_item_usage_record_summary_service.rb +18 -0
  307. data/lib/stripe/services/subscription_schedule_service.rb +2053 -0
  308. data/lib/stripe/services/subscription_service.rb +1722 -0
  309. data/lib/stripe/services/tax/association_service.rb +31 -0
  310. data/lib/stripe/services/tax/calculation_line_item_service.rb +18 -0
  311. data/lib/stripe/services/tax/calculation_service.rb +205 -0
  312. data/lib/stripe/services/tax/form_service.rb +100 -0
  313. data/lib/stripe/services/tax/registration_service.rb +1564 -0
  314. data/lib/stripe/services/tax/settings_service.rb +74 -0
  315. data/lib/stripe/services/tax/transaction_line_item_service.rb +18 -0
  316. data/lib/stripe/services/tax/transaction_service.rb +111 -0
  317. data/lib/stripe/services/tax_code_service.rb +27 -0
  318. data/lib/stripe/services/tax_id_service.rb +79 -0
  319. data/lib/stripe/services/tax_rate_service.rb +155 -0
  320. data/lib/stripe/services/tax_service.rb +3 -1
  321. data/lib/stripe/services/terminal/configuration_service.rb +793 -0
  322. data/lib/stripe/services/terminal/connection_token_service.rb +12 -0
  323. data/lib/stripe/services/terminal/location_service.rb +144 -0
  324. data/lib/stripe/services/terminal/reader_collected_data_service.rb +28 -0
  325. data/lib/stripe/services/terminal/reader_service.rb +443 -0
  326. data/lib/stripe/services/terminal_service.rb +2 -1
  327. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +673 -0
  328. data/lib/stripe/services/test_helpers/customer_service.rb +18 -0
  329. data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +745 -0
  330. data/lib/stripe/services/test_helpers/issuing/card_service.rb +45 -0
  331. data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +41 -0
  332. data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +632 -0
  333. data/lib/stripe/services/test_helpers/refund_service.rb +9 -0
  334. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +44 -0
  335. data/lib/stripe/services/test_helpers/test_clock_service.rb +57 -0
  336. data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +38 -0
  337. data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +87 -0
  338. data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +87 -0
  339. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +84 -0
  340. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +84 -0
  341. data/lib/stripe/services/token_service.rb +1121 -0
  342. data/lib/stripe/services/topup_service.rb +142 -0
  343. data/lib/stripe/services/transfer_reversal_service.rb +66 -0
  344. data/lib/stripe/services/transfer_service.rb +119 -0
  345. data/lib/stripe/services/treasury/credit_reversal_service.rb +59 -0
  346. data/lib/stripe/services/treasury/debit_reversal_service.rb +63 -0
  347. data/lib/stripe/services/treasury/financial_account_features_service.rb +169 -0
  348. data/lib/stripe/services/treasury/financial_account_service.rb +509 -0
  349. data/lib/stripe/services/treasury/inbound_transfer_service.rb +88 -0
  350. data/lib/stripe/services/treasury/outbound_payment_service.rb +258 -0
  351. data/lib/stripe/services/treasury/outbound_transfer_service.rb +148 -0
  352. data/lib/stripe/services/treasury/received_credit_service.rb +52 -0
  353. data/lib/stripe/services/treasury/received_debit_service.rb +40 -0
  354. data/lib/stripe/services/treasury/transaction_entry_service.rb +87 -0
  355. data/lib/stripe/services/treasury/transaction_service.rb +95 -0
  356. data/lib/stripe/services/v1_services.rb +8 -1
  357. data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +23 -0
  358. data/lib/stripe/services/v2/billing/meter_event_service.rb +25 -0
  359. data/lib/stripe/services/v2/billing/meter_event_session_service.rb +3 -0
  360. data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +33 -0
  361. data/lib/stripe/services/v2/core/event_destination_service.rb +146 -0
  362. data/lib/stripe/services/v2/core/event_service.rb +18 -0
  363. data/lib/stripe/services/webhook_endpoint_service.rb +96 -0
  364. data/lib/stripe/services.rb +25 -0
  365. data/lib/stripe/stripe_client.rb +1 -1
  366. data/lib/stripe/stripe_configuration.rb +3 -1
  367. data/lib/stripe/stripe_object.rb +5 -0
  368. data/lib/stripe/util.rb +7 -1
  369. data/lib/stripe/version.rb +1 -1
  370. data/lib/stripe.rb +46 -0
  371. data/rbi/stripe/resources/account.rbi +5100 -0
  372. data/rbi/stripe/resources/account_link.rbi +74 -0
  373. data/rbi/stripe/resources/account_notice.rbi +139 -0
  374. data/rbi/stripe/resources/account_session.rbi +1007 -0
  375. data/rbi/stripe/resources/apple_pay_domain.rbi +97 -0
  376. data/rbi/stripe/resources/application.rbi +20 -0
  377. data/rbi/stripe/resources/application_fee.rbi +123 -0
  378. data/rbi/stripe/resources/application_fee_refund.rbi +37 -0
  379. data/rbi/stripe/resources/apps/secret.rbi +195 -0
  380. data/rbi/stripe/resources/balance.rbi +187 -0
  381. data/rbi/stripe/resources/balance_transaction.rbi +149 -0
  382. data/rbi/stripe/resources/bank_account.rbi +127 -0
  383. data/rbi/stripe/resources/billing/alert.rbi +206 -0
  384. data/rbi/stripe/resources/billing/alert_triggered.rbi +28 -0
  385. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +102 -0
  386. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +154 -0
  387. data/rbi/stripe/resources/billing/credit_grant.rbi +269 -0
  388. data/rbi/stripe/resources/billing/meter.rbi +233 -0
  389. data/rbi/stripe/resources/billing/meter_error_report.rbi +71 -0
  390. data/rbi/stripe/resources/billing/meter_event.rbi +64 -0
  391. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +64 -0
  392. data/rbi/stripe/resources/billing/meter_event_summary.rbi +33 -0
  393. data/rbi/stripe/resources/billing_portal/configuration.rbi +640 -0
  394. data/rbi/stripe/resources/billing_portal/session.rbi +341 -0
  395. data/rbi/stripe/resources/capability.rbi +125 -0
  396. data/rbi/stripe/resources/capital/financing_offer.rbi +190 -0
  397. data/rbi/stripe/resources/capital/financing_summary.rbi +74 -0
  398. data/rbi/stripe/resources/capital/financing_transaction.rbi +130 -0
  399. data/rbi/stripe/resources/card.rbi +128 -0
  400. data/rbi/stripe/resources/cash_balance.rbi +32 -0
  401. data/rbi/stripe/resources/charge.rbi +3484 -0
  402. data/rbi/stripe/resources/checkout/session.rbi +3995 -0
  403. data/rbi/stripe/resources/climate/order.rbi +250 -0
  404. data/rbi/stripe/resources/climate/product.rbi +82 -0
  405. data/rbi/stripe/resources/climate/supplier.rbi +79 -0
  406. data/rbi/stripe/resources/confirmation_token.rbi +1776 -0
  407. data/rbi/stripe/resources/connect_collection_transfer.rbi +26 -0
  408. data/rbi/stripe/resources/country_spec.rbi +92 -0
  409. data/rbi/stripe/resources/coupon.rbi +257 -0
  410. data/rbi/stripe/resources/credit_note.rbi +759 -0
  411. data/rbi/stripe/resources/credit_note_line_item.rbi +99 -0
  412. data/rbi/stripe/resources/customer.rbi +1001 -0
  413. data/rbi/stripe/resources/customer_balance_transaction.rbi +53 -0
  414. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +151 -0
  415. data/rbi/stripe/resources/customer_session.rbi +196 -0
  416. data/rbi/stripe/resources/discount.rbi +53 -0
  417. data/rbi/stripe/resources/dispute.rbi +764 -0
  418. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +65 -0
  419. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +23 -0
  420. data/rbi/stripe/resources/entitlements/feature.rbi +124 -0
  421. data/rbi/stripe/resources/ephemeral_key.rbi +44 -0
  422. data/rbi/stripe/resources/event.rbi +190 -0
  423. data/rbi/stripe/resources/exchange_rate.rbi +73 -0
  424. data/rbi/stripe/resources/file.rbi +148 -0
  425. data/rbi/stripe/resources/file_link.rbi +146 -0
  426. data/rbi/stripe/resources/financial_connections/account.rbi +358 -0
  427. data/rbi/stripe/resources/financial_connections/account_inferred_balance.rbi +27 -0
  428. data/rbi/stripe/resources/financial_connections/account_owner.rbi +35 -0
  429. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +23 -0
  430. data/rbi/stripe/resources/financial_connections/institution.rbi +99 -0
  431. data/rbi/stripe/resources/financial_connections/session.rbi +186 -0
  432. data/rbi/stripe/resources/financial_connections/transaction.rbi +127 -0
  433. data/rbi/stripe/resources/forwarding/request.rbi +219 -0
  434. data/rbi/stripe/resources/funding_instructions.rbi +437 -0
  435. data/rbi/stripe/resources/gift_cards/card.rbi +206 -0
  436. data/rbi/stripe/resources/gift_cards/transaction.rbi +257 -0
  437. data/rbi/stripe/resources/identity/verification_report.rbi +354 -0
  438. data/rbi/stripe/resources/identity/verification_session.rbi +518 -0
  439. data/rbi/stripe/resources/invoice.rbi +8928 -0
  440. data/rbi/stripe/resources/invoice_item.rbi +514 -0
  441. data/rbi/stripe/resources/invoice_line_item.rbi +400 -0
  442. data/rbi/stripe/resources/invoice_payment.rbi +70 -0
  443. data/rbi/stripe/resources/invoice_rendering_template.rbi +114 -0
  444. data/rbi/stripe/resources/issuing/authorization.rbi +1266 -0
  445. data/rbi/stripe/resources/issuing/card.rbi +738 -0
  446. data/rbi/stripe/resources/issuing/cardholder.rbi +732 -0
  447. data/rbi/stripe/resources/issuing/credit_underwriting_record.rbi +622 -0
  448. data/rbi/stripe/resources/issuing/dispute.rbi +900 -0
  449. data/rbi/stripe/resources/issuing/dispute_settlement_detail.rbi +83 -0
  450. data/rbi/stripe/resources/issuing/fraud_liability_debit.rbi +90 -0
  451. data/rbi/stripe/resources/issuing/personalization_design.rbi +333 -0
  452. data/rbi/stripe/resources/issuing/physical_bundle.rbi +86 -0
  453. data/rbi/stripe/resources/issuing/settlement.rbi +62 -0
  454. data/rbi/stripe/resources/issuing/token.rbi +231 -0
  455. data/rbi/stripe/resources/issuing/transaction.rbi +1057 -0
  456. data/rbi/stripe/resources/line_item.rbi +108 -0
  457. data/rbi/stripe/resources/login_link.rbi +18 -0
  458. data/rbi/stripe/resources/mandate.rbi +219 -0
  459. data/rbi/stripe/resources/margin.rbi +127 -0
  460. data/rbi/stripe/resources/order.rbi +3016 -0
  461. data/rbi/stripe/resources/payment_attempt_record.rbi +215 -0
  462. data/rbi/stripe/resources/payment_intent.rbi +13843 -0
  463. data/rbi/stripe/resources/payment_link.rbi +1666 -0
  464. data/rbi/stripe/resources/payment_method.rbi +1908 -0
  465. data/rbi/stripe/resources/payment_method_configuration.rbi +3171 -0
  466. data/rbi/stripe/resources/payment_method_domain.rbi +217 -0
  467. data/rbi/stripe/resources/payment_record.rbi +722 -0
  468. data/rbi/stripe/resources/payout.rbi +299 -0
  469. data/rbi/stripe/resources/person.rbi +371 -0
  470. data/rbi/stripe/resources/plan.rbi +385 -0
  471. data/rbi/stripe/resources/price.rbi +731 -0
  472. data/rbi/stripe/resources/product.rbi +615 -0
  473. data/rbi/stripe/resources/product_feature.rbi +26 -0
  474. data/rbi/stripe/resources/promotion_code.rbi +266 -0
  475. data/rbi/stripe/resources/quote.rbi +3186 -0
  476. data/rbi/stripe/resources/quote_line.rbi +350 -0
  477. data/rbi/stripe/resources/quote_preview_invoice.rbi +850 -0
  478. data/rbi/stripe/resources/quote_preview_subscription_schedule.rbi +474 -0
  479. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +101 -0
  480. data/rbi/stripe/resources/radar/value_list.rbi +175 -0
  481. data/rbi/stripe/resources/radar/value_list_item.rbi +134 -0
  482. data/rbi/stripe/resources/refund.rbi +515 -0
  483. data/rbi/stripe/resources/reporting/report_run.rbi +194 -0
  484. data/rbi/stripe/resources/reporting/report_type.rbi +64 -0
  485. data/rbi/stripe/resources/reserve_transaction.rbi +23 -0
  486. data/rbi/stripe/resources/reversal.rbi +51 -0
  487. data/rbi/stripe/resources/review.rbi +159 -0
  488. data/rbi/stripe/resources/setup_attempt.rbi +484 -0
  489. data/rbi/stripe/resources/setup_intent.rbi +4041 -0
  490. data/rbi/stripe/resources/shipping_rate.rbi +310 -0
  491. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +82 -0
  492. data/rbi/stripe/resources/source.rbi +1543 -0
  493. data/rbi/stripe/resources/source_mandate_notification.rbi +77 -0
  494. data/rbi/stripe/resources/source_transaction.rbi +127 -0
  495. data/rbi/stripe/resources/subscription.rbi +2308 -0
  496. data/rbi/stripe/resources/subscription_item.rbi +478 -0
  497. data/rbi/stripe/resources/subscription_schedule.rbi +2653 -0
  498. data/rbi/stripe/resources/tax/association.rbi +94 -0
  499. data/rbi/stripe/resources/tax/calculation.rbi +479 -0
  500. data/rbi/stripe/resources/tax/calculation_line_item.rbi +88 -0
  501. data/rbi/stripe/resources/tax/form.rbi +224 -0
  502. data/rbi/stripe/resources/tax/registration.rbi +2438 -0
  503. data/rbi/stripe/resources/tax/settings.rbi +148 -0
  504. data/rbi/stripe/resources/tax/transaction.rbi +356 -0
  505. data/rbi/stripe/resources/tax/transaction_line_item.rbi +54 -0
  506. data/rbi/stripe/resources/tax_code.rbi +51 -0
  507. data/rbi/stripe/resources/tax_deducted_at_source.rbi +23 -0
  508. data/rbi/stripe/resources/tax_id.rbi +174 -0
  509. data/rbi/stripe/resources/tax_rate.rbi +244 -0
  510. data/rbi/stripe/resources/terminal/configuration.rbi +1091 -0
  511. data/rbi/stripe/resources/terminal/connection_token.rbi +37 -0
  512. data/rbi/stripe/resources/terminal/location.rbi +231 -0
  513. data/rbi/stripe/resources/terminal/reader.rbi +952 -0
  514. data/rbi/stripe/resources/terminal/reader_collected_data.rbi +41 -0
  515. data/rbi/stripe/resources/test_helpers/test_clock.rbi +139 -0
  516. data/rbi/stripe/resources/token.rbi +1175 -0
  517. data/rbi/stripe/resources/topup.rbi +225 -0
  518. data/rbi/stripe/resources/transfer.rbi +204 -0
  519. data/rbi/stripe/resources/treasury/credit_reversal.rbi +126 -0
  520. data/rbi/stripe/resources/treasury/debit_reversal.rbi +138 -0
  521. data/rbi/stripe/resources/treasury/financial_account.rbi +870 -0
  522. data/rbi/stripe/resources/treasury/financial_account_features.rbi +263 -0
  523. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +302 -0
  524. data/rbi/stripe/resources/treasury/outbound_payment.rbi +589 -0
  525. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +473 -0
  526. data/rbi/stripe/resources/treasury/received_credit.rbi +348 -0
  527. data/rbi/stripe/resources/treasury/received_debit.rbi +305 -0
  528. data/rbi/stripe/resources/treasury/transaction.rbi +216 -0
  529. data/rbi/stripe/resources/treasury/transaction_entry.rbi +193 -0
  530. data/rbi/stripe/resources/usage_record.rbi +32 -0
  531. data/rbi/stripe/resources/usage_record_summary.rbi +38 -0
  532. data/rbi/stripe/resources/v2/amount.rbi +14 -0
  533. data/rbi/stripe/resources/v2/billing/meter_event.rbi +37 -0
  534. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +41 -0
  535. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +31 -0
  536. data/rbi/stripe/resources/v2/event.rbi +47 -0
  537. data/rbi/stripe/resources/v2/event_destination.rbi +90 -0
  538. data/rbi/stripe/resources/webhook_endpoint.rbi +177 -0
  539. data/rbi/stripe/services/account_capability_service.rbi +51 -0
  540. data/rbi/stripe/services/account_external_account_service.rbi +306 -0
  541. data/rbi/stripe/services/account_link_service.rbi +58 -0
  542. data/rbi/stripe/services/account_login_link_service.rbi +22 -0
  543. data/rbi/stripe/services/account_notice_service.rbi +90 -0
  544. data/rbi/stripe/services/account_person_service.rbi +903 -0
  545. data/rbi/stripe/services/account_service.rbi +4185 -0
  546. data/rbi/stripe/services/account_session_service.rbi +757 -0
  547. data/rbi/stripe/services/apple_pay_domain_service.rbi +78 -0
  548. data/rbi/stripe/services/application_fee_refund_service.rbi +91 -0
  549. data/rbi/stripe/services/application_fee_service.rbi +74 -0
  550. data/rbi/stripe/services/apps/secret_service.rbi +151 -0
  551. data/rbi/stripe/services/apps_service.rbi +9 -0
  552. data/rbi/stripe/services/balance_service.rbi +21 -0
  553. data/rbi/stripe/services/balance_transaction_service.rbi +89 -0
  554. data/rbi/stripe/services/billing/alert_service.rbi +152 -0
  555. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +54 -0
  556. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +59 -0
  557. data/rbi/stripe/services/billing/credit_grant_service.rbi +191 -0
  558. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +40 -0
  559. data/rbi/stripe/services/billing/meter_event_service.rbi +42 -0
  560. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +54 -0
  561. data/rbi/stripe/services/billing/meter_service.rbi +163 -0
  562. data/rbi/stripe/services/billing_portal/configuration_service.rbi +497 -0
  563. data/rbi/stripe/services/billing_portal/session_service.rbi +202 -0
  564. data/rbi/stripe/services/billing_portal_service.rbi +10 -0
  565. data/rbi/stripe/services/billing_service.rbi +15 -0
  566. data/rbi/stripe/services/capital/financing_offer_service.rbi +95 -0
  567. data/rbi/stripe/services/capital/financing_summary_service.rbi +22 -0
  568. data/rbi/stripe/services/capital/financing_transaction_service.rbi +68 -0
  569. data/rbi/stripe/services/capital_service.rbi +11 -0
  570. data/rbi/stripe/services/charge_service.rbi +1816 -0
  571. data/rbi/stripe/services/checkout/session_line_item_service.rbi +33 -0
  572. data/rbi/stripe/services/checkout/session_service.rbi +2582 -0
  573. data/rbi/stripe/services/checkout_service.rbi +9 -0
  574. data/rbi/stripe/services/climate/order_service.rbi +140 -0
  575. data/rbi/stripe/services/climate/product_service.rbi +46 -0
  576. data/rbi/stripe/services/climate/supplier_service.rbi +46 -0
  577. data/rbi/stripe/services/climate_service.rbi +11 -0
  578. data/rbi/stripe/services/confirmation_token_service.rbi +20 -0
  579. data/rbi/stripe/services/country_spec_service.rbi +44 -0
  580. data/rbi/stripe/services/coupon_service.rbi +190 -0
  581. data/rbi/stripe/services/credit_note_line_item_service.rbi +31 -0
  582. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +167 -0
  583. data/rbi/stripe/services/credit_note_service.rbi +420 -0
  584. data/rbi/stripe/services/customer_balance_transaction_service.rbi +92 -0
  585. data/rbi/stripe/services/customer_cash_balance_service.rbi +45 -0
  586. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +44 -0
  587. data/rbi/stripe/services/customer_funding_instructions_service.rbi +59 -0
  588. data/rbi/stripe/services/customer_payment_method_service.rbi +57 -0
  589. data/rbi/stripe/services/customer_payment_source_service.rbi +228 -0
  590. data/rbi/stripe/services/customer_service.rbi +647 -0
  591. data/rbi/stripe/services/customer_session_service.rbi +110 -0
  592. data/rbi/stripe/services/customer_tax_id_service.rbi +72 -0
  593. data/rbi/stripe/services/dispute_service.rbi +422 -0
  594. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +55 -0
  595. data/rbi/stripe/services/entitlements/feature_service.rbi +107 -0
  596. data/rbi/stripe/services/entitlements_service.rbi +10 -0
  597. data/rbi/stripe/services/ephemeral_key_service.rbi +53 -0
  598. data/rbi/stripe/services/event_service.rbi +81 -0
  599. data/rbi/stripe/services/exchange_rate_service.rbi +44 -0
  600. data/rbi/stripe/services/file_link_service.rbi +122 -0
  601. data/rbi/stripe/services/file_service.rbi +114 -0
  602. data/rbi/stripe/services/financial_connections/account_inferred_balance_service.rbi +33 -0
  603. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +42 -0
  604. data/rbi/stripe/services/financial_connections/account_service.rbi +132 -0
  605. data/rbi/stripe/services/financial_connections/institution_service.rbi +46 -0
  606. data/rbi/stripe/services/financial_connections/session_service.rbi +111 -0
  607. data/rbi/stripe/services/financial_connections/transaction_service.rbi +90 -0
  608. data/rbi/stripe/services/financial_connections_service.rbi +12 -0
  609. data/rbi/stripe/services/forwarding/request_service.rbi +132 -0
  610. data/rbi/stripe/services/forwarding_service.rbi +9 -0
  611. data/rbi/stripe/services/gift_cards/card_service.rbi +142 -0
  612. data/rbi/stripe/services/gift_cards/transaction_service.rbi +174 -0
  613. data/rbi/stripe/services/gift_cards_service.rbi +10 -0
  614. data/rbi/stripe/services/identity/verification_report_service.rbi +85 -0
  615. data/rbi/stripe/services/identity/verification_session_service.rbi +317 -0
  616. data/rbi/stripe/services/identity_service.rbi +10 -0
  617. data/rbi/stripe/services/invoice_item_service.rbi +424 -0
  618. data/rbi/stripe/services/invoice_line_item_service.rbi +270 -0
  619. data/rbi/stripe/services/invoice_payment_service.rbi +44 -0
  620. data/rbi/stripe/services/invoice_rendering_template_service.rbi +82 -0
  621. data/rbi/stripe/services/invoice_service.rbi +6040 -0
  622. data/rbi/stripe/services/invoice_upcoming_lines_service.rbi +2023 -0
  623. data/rbi/stripe/services/issuing/authorization_service.rbi +140 -0
  624. data/rbi/stripe/services/issuing/card_service.rbi +479 -0
  625. data/rbi/stripe/services/issuing/cardholder_service.rbi +568 -0
  626. data/rbi/stripe/services/issuing/credit_underwriting_record_service.rbi +498 -0
  627. data/rbi/stripe/services/issuing/dispute_service.rbi +701 -0
  628. data/rbi/stripe/services/issuing/dispute_settlement_detail_service.rbi +55 -0
  629. data/rbi/stripe/services/issuing/fraud_liability_debit_service.rbi +73 -0
  630. data/rbi/stripe/services/issuing/personalization_design_service.rbi +233 -0
  631. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +59 -0
  632. data/rbi/stripe/services/issuing/token_service.rbi +95 -0
  633. data/rbi/stripe/services/issuing/transaction_service.rbi +103 -0
  634. data/rbi/stripe/services/issuing_service.rbi +19 -0
  635. data/rbi/stripe/services/mandate_service.rbi +20 -0
  636. data/rbi/stripe/services/margin_service.rbi +104 -0
  637. data/rbi/stripe/services/order_line_item_service.rbi +31 -0
  638. data/rbi/stripe/services/order_service.rbi +2306 -0
  639. data/rbi/stripe/services/payment_attempt_record_service.rbi +36 -0
  640. data/rbi/stripe/services/payment_intent_service.rbi +11429 -0
  641. data/rbi/stripe/services/payment_link_line_item_service.rbi +31 -0
  642. data/rbi/stripe/services/payment_link_service.rbi +1250 -0
  643. data/rbi/stripe/services/payment_method_configuration_service.rbi +2171 -0
  644. data/rbi/stripe/services/payment_method_domain_service.rbi +110 -0
  645. data/rbi/stripe/services/payment_method_service.rbi +883 -0
  646. data/rbi/stripe/services/payment_record_service.rbi +521 -0
  647. data/rbi/stripe/services/payout_service.rbi +197 -0
  648. data/rbi/stripe/services/plan_service.rbi +286 -0
  649. data/rbi/stripe/services/price_service.rbi +551 -0
  650. data/rbi/stripe/services/product_feature_service.rbi +69 -0
  651. data/rbi/stripe/services/product_service.rbi +503 -0
  652. data/rbi/stripe/services/promotion_code_service.rbi +210 -0
  653. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +31 -0
  654. data/rbi/stripe/services/quote_line_item_service.rbi +31 -0
  655. data/rbi/stripe/services/quote_line_service.rbi +31 -0
  656. data/rbi/stripe/services/quote_preview_invoice_service.rbi +31 -0
  657. data/rbi/stripe/services/quote_preview_subscription_schedule_service.rbi +31 -0
  658. data/rbi/stripe/services/quote_service.rbi +2390 -0
  659. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +83 -0
  660. data/rbi/stripe/services/radar/value_list_item_service.rbi +107 -0
  661. data/rbi/stripe/services/radar/value_list_service.rbi +139 -0
  662. data/rbi/stripe/services/radar_service.rbi +11 -0
  663. data/rbi/stripe/services/refund_service.rbi +181 -0
  664. data/rbi/stripe/services/reporting/report_run_service.rbi +131 -0
  665. data/rbi/stripe/services/reporting/report_type_service.rbi +35 -0
  666. data/rbi/stripe/services/reporting_service.rbi +10 -0
  667. data/rbi/stripe/services/review_service.rbi +82 -0
  668. data/rbi/stripe/services/setup_attempt_service.rbi +63 -0
  669. data/rbi/stripe/services/setup_intent_service.rbi +3609 -0
  670. data/rbi/stripe/services/shipping_rate_service.rbi +235 -0
  671. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +46 -0
  672. data/rbi/stripe/services/sigma_service.rbi +9 -0
  673. data/rbi/stripe/services/source_service.rbi +647 -0
  674. data/rbi/stripe/services/source_transaction_service.rbi +31 -0
  675. data/rbi/stripe/services/subscription_item_service.rbi +422 -0
  676. data/rbi/stripe/services/subscription_item_usage_record_service.rbi +37 -0
  677. data/rbi/stripe/services/subscription_item_usage_record_summary_service.rbi +33 -0
  678. data/rbi/stripe/services/subscription_schedule_service.rbi +2208 -0
  679. data/rbi/stripe/services/subscription_service.rbi +1870 -0
  680. data/rbi/stripe/services/tax/association_service.rbi +25 -0
  681. data/rbi/stripe/services/tax/calculation_line_item_service.rbi +33 -0
  682. data/rbi/stripe/services/tax/calculation_service.rbi +228 -0
  683. data/rbi/stripe/services/tax/form_service.rbi +85 -0
  684. data/rbi/stripe/services/tax/registration_service.rbi +1517 -0
  685. data/rbi/stripe/services/tax/settings_service.rbi +93 -0
  686. data/rbi/stripe/services/tax/transaction_line_item_service.rbi +33 -0
  687. data/rbi/stripe/services/tax/transaction_service.rbi +142 -0
  688. data/rbi/stripe/services/tax_code_service.rbi +44 -0
  689. data/rbi/stripe/services/tax_id_service.rbi +112 -0
  690. data/rbi/stripe/services/tax_rate_service.rbi +183 -0
  691. data/rbi/stripe/services/tax_service.rbi +14 -0
  692. data/rbi/stripe/services/terminal/configuration_service.rbi +822 -0
  693. data/rbi/stripe/services/terminal/connection_token_service.rbi +25 -0
  694. data/rbi/stripe/services/terminal/location_service.rbi +184 -0
  695. data/rbi/stripe/services/terminal/reader_collected_data_service.rbi +22 -0
  696. data/rbi/stripe/services/terminal/reader_service.rbi +513 -0
  697. data/rbi/stripe/services/terminal_service.rbi +13 -0
  698. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +778 -0
  699. data/rbi/stripe/services/test_helpers/customer_service.rbi +33 -0
  700. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +836 -0
  701. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +76 -0
  702. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +67 -0
  703. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +705 -0
  704. data/rbi/stripe/services/test_helpers/issuing_service.rbi +14 -0
  705. data/rbi/stripe/services/test_helpers/refund_service.rbi +22 -0
  706. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +62 -0
  707. data/rbi/stripe/services/test_helpers/terminal_service.rbi +11 -0
  708. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +90 -0
  709. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +64 -0
  710. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +123 -0
  711. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +123 -0
  712. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +114 -0
  713. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +114 -0
  714. data/rbi/stripe/services/test_helpers/treasury_service.rbi +15 -0
  715. data/rbi/stripe/services/test_helpers_service.rbi +15 -0
  716. data/rbi/stripe/services/token_service.rbi +1136 -0
  717. data/rbi/stripe/services/topup_service.rbi +172 -0
  718. data/rbi/stripe/services/transfer_reversal_service.rbi +99 -0
  719. data/rbi/stripe/services/transfer_service.rbi +150 -0
  720. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +84 -0
  721. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +88 -0
  722. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +201 -0
  723. data/rbi/stripe/services/treasury/financial_account_service.rbi +566 -0
  724. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +117 -0
  725. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +300 -0
  726. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +182 -0
  727. data/rbi/stripe/services/treasury/received_credit_service.rbi +70 -0
  728. data/rbi/stripe/services/treasury/received_debit_service.rbi +59 -0
  729. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +107 -0
  730. data/rbi/stripe/services/treasury/transaction_service.rbi +114 -0
  731. data/rbi/stripe/services/treasury_service.rbi +18 -0
  732. data/rbi/stripe/services/v1_services.rbi +83 -0
  733. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +39 -0
  734. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +42 -0
  735. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +20 -0
  736. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +55 -0
  737. data/rbi/stripe/services/v2/billing_service.rbi +14 -0
  738. data/rbi/stripe/services/v2/core/event_destination_service.rbi +203 -0
  739. data/rbi/stripe/services/v2/core/event_service.rbi +39 -0
  740. data/rbi/stripe/services/v2/core_service.rbi +12 -0
  741. data/rbi/stripe/services/v2_services.rbi +10 -0
  742. data/rbi/stripe/services/webhook_endpoint_service.rbi +131 -0
  743. metadata +435 -4
@@ -0,0 +1,2653 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ # typed: true
5
+ module Stripe
6
+ # A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.
7
+ #
8
+ # Related guide: [Subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules)
9
+ class SubscriptionSchedule < APIResource
10
+ class CurrentPhase < Stripe::StripeObject
11
+ # The end of this phase of the subscription schedule.
12
+ sig { returns(Integer) }
13
+ attr_reader :end_date
14
+ # The start of this phase of the subscription schedule.
15
+ sig { returns(Integer) }
16
+ attr_reader :start_date
17
+ end
18
+ class DefaultSettings < Stripe::StripeObject
19
+ class AutomaticTax < Stripe::StripeObject
20
+ class Liability < Stripe::StripeObject
21
+ # The connected account being referenced when `type` is `account`.
22
+ sig { returns(T.any(String, Stripe::Account)) }
23
+ attr_reader :account
24
+ # Type of the account referenced.
25
+ sig { returns(String) }
26
+ attr_reader :type
27
+ end
28
+ # If Stripe disabled automatic tax, this enum describes why.
29
+ sig { returns(T.nilable(String)) }
30
+ attr_reader :disabled_reason
31
+ # Whether Stripe automatically computes tax on invoices created during this phase.
32
+ sig { returns(T::Boolean) }
33
+ attr_reader :enabled
34
+ # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
35
+ sig { returns(T.nilable(Liability)) }
36
+ attr_reader :liability
37
+ end
38
+ class BillingThresholds < Stripe::StripeObject
39
+ # Monetary threshold that triggers the subscription to create an invoice
40
+ sig { returns(T.nilable(Integer)) }
41
+ attr_reader :amount_gte
42
+ # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`.
43
+ sig { returns(T.nilable(T::Boolean)) }
44
+ attr_reader :reset_billing_cycle_anchor
45
+ end
46
+ class InvoiceSettings < Stripe::StripeObject
47
+ class Issuer < Stripe::StripeObject
48
+ # The connected account being referenced when `type` is `account`.
49
+ sig { returns(T.any(String, Stripe::Account)) }
50
+ attr_reader :account
51
+ # Type of the account referenced.
52
+ sig { returns(String) }
53
+ attr_reader :type
54
+ end
55
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
56
+ sig { returns(T.nilable(T::Array[T.any(String, Stripe::TaxId)])) }
57
+ attr_reader :account_tax_ids
58
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.
59
+ sig { returns(T.nilable(Integer)) }
60
+ attr_reader :days_until_due
61
+ # Attribute for field issuer
62
+ sig { returns(Issuer) }
63
+ attr_reader :issuer
64
+ end
65
+ class TransferData < Stripe::StripeObject
66
+ # 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 destination account. By default, the entire amount is transferred to the destination.
67
+ sig { returns(T.nilable(Float)) }
68
+ attr_reader :amount_percent
69
+ # The account where funds from the payment will be transferred to upon payment success.
70
+ sig { returns(T.any(String, Stripe::Account)) }
71
+ attr_reader :destination
72
+ end
73
+ # 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 during this phase of the schedule.
74
+ sig { returns(T.nilable(Float)) }
75
+ attr_reader :application_fee_percent
76
+ # Attribute for field automatic_tax
77
+ sig { returns(AutomaticTax) }
78
+ attr_reader :automatic_tax
79
+ # Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
80
+ sig { returns(String) }
81
+ attr_reader :billing_cycle_anchor
82
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
83
+ sig { returns(T.nilable(BillingThresholds)) }
84
+ attr_reader :billing_thresholds
85
+ # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`.
86
+ sig { returns(T.nilable(String)) }
87
+ attr_reader :collection_method
88
+ # ID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
89
+ sig { returns(T.nilable(T.any(String, Stripe::PaymentMethod))) }
90
+ attr_reader :default_payment_method
91
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
92
+ sig { returns(T.nilable(String)) }
93
+ attr_reader :description
94
+ # Attribute for field invoice_settings
95
+ sig { returns(InvoiceSettings) }
96
+ attr_reader :invoice_settings
97
+ # The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details.
98
+ sig { returns(T.nilable(T.any(String, Stripe::Account))) }
99
+ attr_reader :on_behalf_of
100
+ # The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
101
+ sig { returns(T.nilable(TransferData)) }
102
+ attr_reader :transfer_data
103
+ end
104
+ class LastPriceMigrationError < Stripe::StripeObject
105
+ class FailedTransition < Stripe::StripeObject
106
+ # The original price to be migrated.
107
+ sig { returns(String) }
108
+ attr_reader :source_price
109
+ # The intended resulting price of the migration.
110
+ sig { returns(String) }
111
+ attr_reader :target_price
112
+ end
113
+ # The time at which the price migration encountered an error.
114
+ sig { returns(Integer) }
115
+ attr_reader :errored_at
116
+ # The involved price pairs in each failed transition.
117
+ sig { returns(T::Array[FailedTransition]) }
118
+ attr_reader :failed_transitions
119
+ # The type of error encountered by the price migration.
120
+ sig { returns(String) }
121
+ attr_reader :type
122
+ end
123
+ class Phase < Stripe::StripeObject
124
+ class AddInvoiceItem < Stripe::StripeObject
125
+ class Discount < Stripe::StripeObject
126
+ class DiscountEnd < Stripe::StripeObject
127
+ # The discount end timestamp.
128
+ sig { returns(T.nilable(Integer)) }
129
+ attr_reader :timestamp
130
+ # The discount end type.
131
+ sig { returns(String) }
132
+ attr_reader :type
133
+ end
134
+ # ID of the coupon to create a new discount for.
135
+ sig { returns(T.nilable(T.any(String, Stripe::Coupon))) }
136
+ attr_reader :coupon
137
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
138
+ sig { returns(T.nilable(T.any(String, Stripe::Discount))) }
139
+ attr_reader :discount
140
+ # Details to determine how long the discount should be applied for.
141
+ sig { returns(T.nilable(DiscountEnd)) }
142
+ attr_reader :discount_end
143
+ # ID of the promotion code to create a new discount for.
144
+ sig { returns(T.nilable(T.any(String, Stripe::PromotionCode))) }
145
+ attr_reader :promotion_code
146
+ end
147
+ # The stackable discounts that will be applied to the item.
148
+ sig { returns(T::Array[Discount]) }
149
+ attr_reader :discounts
150
+ # ID of the price used to generate the invoice item.
151
+ sig { returns(T.any(String, Stripe::Price)) }
152
+ attr_reader :price
153
+ # The quantity of the invoice item.
154
+ sig { returns(T.nilable(Integer)) }
155
+ attr_reader :quantity
156
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
157
+ sig { returns(T.nilable(T::Array[Stripe::TaxRate])) }
158
+ attr_reader :tax_rates
159
+ end
160
+ class AutomaticTax < Stripe::StripeObject
161
+ class Liability < Stripe::StripeObject
162
+ # The connected account being referenced when `type` is `account`.
163
+ sig { returns(T.any(String, Stripe::Account)) }
164
+ attr_reader :account
165
+ # Type of the account referenced.
166
+ sig { returns(String) }
167
+ attr_reader :type
168
+ end
169
+ # If Stripe disabled automatic tax, this enum describes why.
170
+ sig { returns(T.nilable(String)) }
171
+ attr_reader :disabled_reason
172
+ # Whether Stripe automatically computes tax on invoices created during this phase.
173
+ sig { returns(T::Boolean) }
174
+ attr_reader :enabled
175
+ # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
176
+ sig { returns(T.nilable(Liability)) }
177
+ attr_reader :liability
178
+ end
179
+ class BillingThresholds < Stripe::StripeObject
180
+ # Monetary threshold that triggers the subscription to create an invoice
181
+ sig { returns(T.nilable(Integer)) }
182
+ attr_reader :amount_gte
183
+ # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`.
184
+ sig { returns(T.nilable(T::Boolean)) }
185
+ attr_reader :reset_billing_cycle_anchor
186
+ end
187
+ class Discount < Stripe::StripeObject
188
+ class DiscountEnd < Stripe::StripeObject
189
+ # The discount end timestamp.
190
+ sig { returns(T.nilable(Integer)) }
191
+ attr_reader :timestamp
192
+ # The discount end type.
193
+ sig { returns(String) }
194
+ attr_reader :type
195
+ end
196
+ # ID of the coupon to create a new discount for.
197
+ sig { returns(T.nilable(T.any(String, Stripe::Coupon))) }
198
+ attr_reader :coupon
199
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
200
+ sig { returns(T.nilable(T.any(String, Stripe::Discount))) }
201
+ attr_reader :discount
202
+ # Details to determine how long the discount should be applied for.
203
+ sig { returns(T.nilable(DiscountEnd)) }
204
+ attr_reader :discount_end
205
+ # ID of the promotion code to create a new discount for.
206
+ sig { returns(T.nilable(T.any(String, Stripe::PromotionCode))) }
207
+ attr_reader :promotion_code
208
+ end
209
+ class InvoiceSettings < Stripe::StripeObject
210
+ class Issuer < Stripe::StripeObject
211
+ # The connected account being referenced when `type` is `account`.
212
+ sig { returns(T.any(String, Stripe::Account)) }
213
+ attr_reader :account
214
+ # Type of the account referenced.
215
+ sig { returns(String) }
216
+ attr_reader :type
217
+ end
218
+ # The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule.
219
+ sig { returns(T.nilable(T::Array[T.any(String, Stripe::TaxId)])) }
220
+ attr_reader :account_tax_ids
221
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.
222
+ sig { returns(T.nilable(Integer)) }
223
+ attr_reader :days_until_due
224
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
225
+ sig { returns(T.nilable(Issuer)) }
226
+ attr_reader :issuer
227
+ end
228
+ class Item < Stripe::StripeObject
229
+ class BillingThresholds < Stripe::StripeObject
230
+ # Usage threshold that triggers the subscription to create an invoice
231
+ sig { returns(T.nilable(Integer)) }
232
+ attr_reader :usage_gte
233
+ end
234
+ class Discount < Stripe::StripeObject
235
+ class DiscountEnd < Stripe::StripeObject
236
+ # The discount end timestamp.
237
+ sig { returns(T.nilable(Integer)) }
238
+ attr_reader :timestamp
239
+ # The discount end type.
240
+ sig { returns(String) }
241
+ attr_reader :type
242
+ end
243
+ # ID of the coupon to create a new discount for.
244
+ sig { returns(T.nilable(T.any(String, Stripe::Coupon))) }
245
+ attr_reader :coupon
246
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
247
+ sig { returns(T.nilable(T.any(String, Stripe::Discount))) }
248
+ attr_reader :discount
249
+ # Details to determine how long the discount should be applied for.
250
+ sig { returns(T.nilable(DiscountEnd)) }
251
+ attr_reader :discount_end
252
+ # ID of the promotion code to create a new discount for.
253
+ sig { returns(T.nilable(T.any(String, Stripe::PromotionCode))) }
254
+ attr_reader :promotion_code
255
+ end
256
+ class Trial < Stripe::StripeObject
257
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial.
258
+ sig { returns(T.nilable(T::Array[String])) }
259
+ attr_reader :converts_to
260
+ # Determines the type of trial for this item.
261
+ sig { returns(String) }
262
+ attr_reader :type
263
+ end
264
+ # Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period
265
+ sig { returns(T.nilable(BillingThresholds)) }
266
+ attr_reader :billing_thresholds
267
+ # The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount.
268
+ sig { returns(T::Array[Discount]) }
269
+ attr_reader :discounts
270
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an item. Metadata on this item will update the underlying subscription item's `metadata` when the phase is entered.
271
+ sig { returns(T.nilable(T::Hash[String, String])) }
272
+ attr_reader :metadata
273
+ # ID of the plan to which the customer should be subscribed.
274
+ sig { returns(T.any(String, Stripe::Plan)) }
275
+ attr_reader :plan
276
+ # ID of the price to which the customer should be subscribed.
277
+ sig { returns(T.any(String, Stripe::Price)) }
278
+ attr_reader :price
279
+ # Quantity of the plan to which the customer should be subscribed.
280
+ sig { returns(Integer) }
281
+ attr_reader :quantity
282
+ # The tax rates which apply to this `phase_item`. When set, the `default_tax_rates` on the phase do not apply to this `phase_item`.
283
+ sig { returns(T.nilable(T::Array[Stripe::TaxRate])) }
284
+ attr_reader :tax_rates
285
+ # Options that configure the trial on the subscription item.
286
+ sig { returns(T.nilable(Trial)) }
287
+ attr_reader :trial
288
+ end
289
+ class PauseCollection < Stripe::StripeObject
290
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
291
+ sig { returns(String) }
292
+ attr_reader :behavior
293
+ end
294
+ class TransferData < Stripe::StripeObject
295
+ # 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 destination account. By default, the entire amount is transferred to the destination.
296
+ sig { returns(T.nilable(Float)) }
297
+ attr_reader :amount_percent
298
+ # The account where funds from the payment will be transferred to upon payment success.
299
+ sig { returns(T.any(String, Stripe::Account)) }
300
+ attr_reader :destination
301
+ end
302
+ class TrialSettings < Stripe::StripeObject
303
+ class EndBehavior < Stripe::StripeObject
304
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
305
+ sig { returns(T.nilable(String)) }
306
+ attr_reader :prorate_up_front
307
+ end
308
+ # Defines how the subscription should behave when a trial ends.
309
+ sig { returns(T.nilable(EndBehavior)) }
310
+ attr_reader :end_behavior
311
+ end
312
+ # A list of prices and quantities that will generate invoice items appended to the next invoice for this phase.
313
+ sig { returns(T::Array[AddInvoiceItem]) }
314
+ attr_reader :add_invoice_items
315
+ # 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 during this phase of the schedule.
316
+ sig { returns(T.nilable(Float)) }
317
+ attr_reader :application_fee_percent
318
+ # Attribute for field automatic_tax
319
+ sig { returns(AutomaticTax) }
320
+ attr_reader :automatic_tax
321
+ # Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
322
+ sig { returns(T.nilable(String)) }
323
+ attr_reader :billing_cycle_anchor
324
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
325
+ sig { returns(T.nilable(BillingThresholds)) }
326
+ attr_reader :billing_thresholds
327
+ # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`.
328
+ sig { returns(T.nilable(String)) }
329
+ attr_reader :collection_method
330
+ # ID of the coupon to use during this phase of the subscription schedule.
331
+ sig { returns(T.nilable(T.any(String, Stripe::Coupon))) }
332
+ attr_reader :coupon
333
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
334
+ sig { returns(String) }
335
+ attr_reader :currency
336
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
337
+ sig { returns(T.nilable(T.any(String, Stripe::PaymentMethod))) }
338
+ attr_reader :default_payment_method
339
+ # The default tax rates to apply to the subscription during this phase of the subscription schedule.
340
+ sig { returns(T.nilable(T::Array[Stripe::TaxRate])) }
341
+ attr_reader :default_tax_rates
342
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
343
+ sig { returns(T.nilable(String)) }
344
+ attr_reader :description
345
+ # The stackable discounts that will be applied to the subscription on this phase. Subscription item discounts are applied before subscription discounts.
346
+ sig { returns(T::Array[Discount]) }
347
+ attr_reader :discounts
348
+ # The end of this phase of the subscription schedule.
349
+ sig { returns(Integer) }
350
+ attr_reader :end_date
351
+ # The invoice settings applicable during this phase.
352
+ sig { returns(T.nilable(InvoiceSettings)) }
353
+ attr_reader :invoice_settings
354
+ # Subscription items to configure the subscription to during this phase of the subscription schedule.
355
+ sig { returns(T::Array[Item]) }
356
+ attr_reader :items
357
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered. Updating the underlying subscription's `metadata` directly will not affect the current phase's `metadata`.
358
+ sig { returns(T.nilable(T::Hash[String, String])) }
359
+ attr_reader :metadata
360
+ # The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details.
361
+ sig { returns(T.nilable(T.any(String, Stripe::Account))) }
362
+ attr_reader :on_behalf_of
363
+ # 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).
364
+ sig { returns(T.nilable(PauseCollection)) }
365
+ attr_reader :pause_collection
366
+ # If the subscription schedule will prorate when transitioning to this phase. Possible values are `create_prorations` and `none`.
367
+ sig { returns(String) }
368
+ attr_reader :proration_behavior
369
+ # The start of this phase of the subscription schedule.
370
+ sig { returns(Integer) }
371
+ attr_reader :start_date
372
+ # The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
373
+ sig { returns(T.nilable(TransferData)) }
374
+ attr_reader :transfer_data
375
+ # Specify behavior of the trial when crossing schedule phase boundaries
376
+ sig { returns(T.nilable(String)) }
377
+ attr_reader :trial_continuation
378
+ # When the trial ends within the phase.
379
+ sig { returns(T.nilable(Integer)) }
380
+ attr_reader :trial_end
381
+ # Settings related to any trials on the subscription during this phase.
382
+ sig { returns(T.nilable(TrialSettings)) }
383
+ attr_reader :trial_settings
384
+ end
385
+ class Prebilling < Stripe::StripeObject
386
+ # ID of the prebilling invoice.
387
+ sig { returns(T.any(String, Stripe::Invoice)) }
388
+ attr_reader :invoice
389
+ # The end of the last period for which the invoice pre-bills.
390
+ sig { returns(Integer) }
391
+ attr_reader :period_end
392
+ # The start of the first period for which the invoice pre-bills.
393
+ sig { returns(Integer) }
394
+ attr_reader :period_start
395
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period.
396
+ sig { returns(String) }
397
+ attr_reader :update_behavior
398
+ end
399
+ # ID of the Connect Application that created the schedule.
400
+ sig { returns(T.nilable(T.any(String, Stripe::Application))) }
401
+ attr_reader :application
402
+ # 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.
403
+ sig { returns(String) }
404
+ attr_reader :billing_behavior
405
+ # Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch.
406
+ sig { returns(T.nilable(Integer)) }
407
+ attr_reader :canceled_at
408
+ # Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch.
409
+ sig { returns(T.nilable(Integer)) }
410
+ attr_reader :completed_at
411
+ # Time at which the object was created. Measured in seconds since the Unix epoch.
412
+ sig { returns(Integer) }
413
+ attr_reader :created
414
+ # Object representing the start and end dates for the current phase of the subscription schedule, if it is `active`.
415
+ sig { returns(T.nilable(CurrentPhase)) }
416
+ attr_reader :current_phase
417
+ # ID of the customer who owns the subscription schedule.
418
+ sig { returns(T.any(String, Stripe::Customer)) }
419
+ attr_reader :customer
420
+ # Attribute for field default_settings
421
+ sig { returns(DefaultSettings) }
422
+ attr_reader :default_settings
423
+ # 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.
424
+ sig { returns(String) }
425
+ attr_reader :end_behavior
426
+ # Unique identifier for the object.
427
+ sig { returns(String) }
428
+ attr_reader :id
429
+ # Details of the most recent price migration that failed for the subscription schedule.
430
+ sig { returns(T.nilable(LastPriceMigrationError)) }
431
+ attr_reader :last_price_migration_error
432
+ # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
433
+ sig { returns(T::Boolean) }
434
+ attr_reader :livemode
435
+ # 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.
436
+ sig { returns(T.nilable(T::Hash[String, String])) }
437
+ attr_reader :metadata
438
+ # String representing the object's type. Objects of the same type share the same value.
439
+ sig { returns(String) }
440
+ attr_reader :object
441
+ # Configuration for the subscription schedule's phases.
442
+ sig { returns(T::Array[Phase]) }
443
+ attr_reader :phases
444
+ # Time period and invoice for a Subscription billed in advance.
445
+ sig { returns(T.nilable(Prebilling)) }
446
+ attr_reader :prebilling
447
+ # Time at which the subscription schedule was released. Measured in seconds since the Unix epoch.
448
+ sig { returns(T.nilable(Integer)) }
449
+ attr_reader :released_at
450
+ # ID of the subscription once managed by the subscription schedule (if it is released).
451
+ sig { returns(T.nilable(String)) }
452
+ attr_reader :released_subscription
453
+ # The present status of the subscription schedule. Possible values are `not_started`, `active`, `completed`, `released`, and `canceled`. You can read more about the different states in our [behavior guide](https://stripe.com/docs/billing/subscriptions/subscription-schedules).
454
+ sig { returns(String) }
455
+ attr_reader :status
456
+ # ID of the subscription managed by the subscription schedule.
457
+ sig { returns(T.nilable(T.any(String, Stripe::Subscription))) }
458
+ attr_reader :subscription
459
+ # ID of the test clock this subscription schedule belongs to.
460
+ sig { returns(T.nilable(T.any(String, Stripe::TestHelpers::TestClock))) }
461
+ attr_reader :test_clock
462
+ class ListParams < Stripe::RequestParams
463
+ class CanceledAt < Stripe::RequestParams
464
+ # Minimum value to filter by (exclusive)
465
+ sig { returns(Integer) }
466
+ attr_accessor :gt
467
+ # Minimum value to filter by (inclusive)
468
+ sig { returns(Integer) }
469
+ attr_accessor :gte
470
+ # Maximum value to filter by (exclusive)
471
+ sig { returns(Integer) }
472
+ attr_accessor :lt
473
+ # Maximum value to filter by (inclusive)
474
+ sig { returns(Integer) }
475
+ attr_accessor :lte
476
+ sig { params(gt: Integer, gte: Integer, lt: Integer, lte: Integer).void }
477
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
478
+ end
479
+ class CompletedAt < Stripe::RequestParams
480
+ # Minimum value to filter by (exclusive)
481
+ sig { returns(Integer) }
482
+ attr_accessor :gt
483
+ # Minimum value to filter by (inclusive)
484
+ sig { returns(Integer) }
485
+ attr_accessor :gte
486
+ # Maximum value to filter by (exclusive)
487
+ sig { returns(Integer) }
488
+ attr_accessor :lt
489
+ # Maximum value to filter by (inclusive)
490
+ sig { returns(Integer) }
491
+ attr_accessor :lte
492
+ sig { params(gt: Integer, gte: Integer, lt: Integer, lte: Integer).void }
493
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
494
+ end
495
+ class Created < Stripe::RequestParams
496
+ # Minimum value to filter by (exclusive)
497
+ sig { returns(Integer) }
498
+ attr_accessor :gt
499
+ # Minimum value to filter by (inclusive)
500
+ sig { returns(Integer) }
501
+ attr_accessor :gte
502
+ # Maximum value to filter by (exclusive)
503
+ sig { returns(Integer) }
504
+ attr_accessor :lt
505
+ # Maximum value to filter by (inclusive)
506
+ sig { returns(Integer) }
507
+ attr_accessor :lte
508
+ sig { params(gt: Integer, gte: Integer, lt: Integer, lte: Integer).void }
509
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
510
+ end
511
+ class ReleasedAt < Stripe::RequestParams
512
+ # Minimum value to filter by (exclusive)
513
+ sig { returns(Integer) }
514
+ attr_accessor :gt
515
+ # Minimum value to filter by (inclusive)
516
+ sig { returns(Integer) }
517
+ attr_accessor :gte
518
+ # Maximum value to filter by (exclusive)
519
+ sig { returns(Integer) }
520
+ attr_accessor :lt
521
+ # Maximum value to filter by (inclusive)
522
+ sig { returns(Integer) }
523
+ attr_accessor :lte
524
+ sig { params(gt: Integer, gte: Integer, lt: Integer, lte: Integer).void }
525
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
526
+ end
527
+ # Only return subscription schedules that were created canceled the given date interval.
528
+ sig { returns(T.any(::Stripe::SubscriptionSchedule::ListParams::CanceledAt, Integer)) }
529
+ attr_accessor :canceled_at
530
+ # Only return subscription schedules that completed during the given date interval.
531
+ sig { returns(T.any(::Stripe::SubscriptionSchedule::ListParams::CompletedAt, Integer)) }
532
+ attr_accessor :completed_at
533
+ # Only return subscription schedules that were created during the given date interval.
534
+ sig { returns(T.any(::Stripe::SubscriptionSchedule::ListParams::Created, Integer)) }
535
+ attr_accessor :created
536
+ # Only return subscription schedules for the given customer.
537
+ sig { returns(String) }
538
+ attr_accessor :customer
539
+ # 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.
540
+ sig { returns(String) }
541
+ attr_accessor :ending_before
542
+ # Specifies which fields in the response should be expanded.
543
+ sig { returns(T::Array[String]) }
544
+ attr_accessor :expand
545
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
546
+ sig { returns(Integer) }
547
+ attr_accessor :limit
548
+ # Only return subscription schedules that were released during the given date interval.
549
+ sig { returns(T.any(::Stripe::SubscriptionSchedule::ListParams::ReleasedAt, Integer)) }
550
+ attr_accessor :released_at
551
+ # Only return subscription schedules that have not started yet.
552
+ sig { returns(T::Boolean) }
553
+ attr_accessor :scheduled
554
+ # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
555
+ sig { returns(String) }
556
+ attr_accessor :starting_after
557
+ sig {
558
+ params(canceled_at: T.any(::Stripe::SubscriptionSchedule::ListParams::CanceledAt, Integer), completed_at: T.any(::Stripe::SubscriptionSchedule::ListParams::CompletedAt, Integer), created: T.any(::Stripe::SubscriptionSchedule::ListParams::Created, Integer), customer: String, ending_before: String, expand: T::Array[String], limit: Integer, released_at: T.any(::Stripe::SubscriptionSchedule::ListParams::ReleasedAt, Integer), scheduled: T::Boolean, starting_after: String).void
559
+ }
560
+ def initialize(
561
+ canceled_at: nil,
562
+ completed_at: nil,
563
+ created: nil,
564
+ customer: nil,
565
+ ending_before: nil,
566
+ expand: nil,
567
+ limit: nil,
568
+ released_at: nil,
569
+ scheduled: nil,
570
+ starting_after: nil
571
+ ); end
572
+ end
573
+ class CreateParams < Stripe::RequestParams
574
+ class DefaultSettings < Stripe::RequestParams
575
+ class AutomaticTax < Stripe::RequestParams
576
+ class Liability < Stripe::RequestParams
577
+ # The connected account being referenced when `type` is `account`.
578
+ sig { returns(String) }
579
+ attr_accessor :account
580
+ # Type of the account referenced in the request.
581
+ sig { returns(String) }
582
+ attr_accessor :type
583
+ sig { params(account: String, type: String).void }
584
+ def initialize(account: nil, type: nil); end
585
+ end
586
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
587
+ sig { returns(T::Boolean) }
588
+ attr_accessor :enabled
589
+ # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
590
+ sig {
591
+ returns(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::AutomaticTax::Liability)
592
+ }
593
+ attr_accessor :liability
594
+ sig {
595
+ params(enabled: T::Boolean, liability: ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::AutomaticTax::Liability).void
596
+ }
597
+ def initialize(enabled: nil, liability: nil); end
598
+ end
599
+ class BillingThresholds < Stripe::RequestParams
600
+ # Monetary threshold that triggers the subscription to advance to a new billing period
601
+ sig { returns(Integer) }
602
+ attr_accessor :amount_gte
603
+ # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged.
604
+ sig { returns(T::Boolean) }
605
+ attr_accessor :reset_billing_cycle_anchor
606
+ sig { params(amount_gte: Integer, reset_billing_cycle_anchor: T::Boolean).void }
607
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
608
+ end
609
+ class InvoiceSettings < Stripe::RequestParams
610
+ class Issuer < Stripe::RequestParams
611
+ # The connected account being referenced when `type` is `account`.
612
+ sig { returns(String) }
613
+ attr_accessor :account
614
+ # Type of the account referenced in the request.
615
+ sig { returns(String) }
616
+ attr_accessor :type
617
+ sig { params(account: String, type: String).void }
618
+ def initialize(account: nil, type: nil); end
619
+ end
620
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
621
+ sig { returns(T.nilable(T::Array[String])) }
622
+ attr_accessor :account_tax_ids
623
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `collection_method=charge_automatically`.
624
+ sig { returns(Integer) }
625
+ attr_accessor :days_until_due
626
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
627
+ sig {
628
+ returns(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::InvoiceSettings::Issuer)
629
+ }
630
+ attr_accessor :issuer
631
+ sig {
632
+ params(account_tax_ids: T.nilable(T::Array[String]), days_until_due: Integer, issuer: ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::InvoiceSettings::Issuer).void
633
+ }
634
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
635
+ end
636
+ class TransferData < Stripe::RequestParams
637
+ # 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 destination account. By default, the entire amount is transferred to the destination.
638
+ sig { returns(Float) }
639
+ attr_accessor :amount_percent
640
+ # ID of an existing, connected Stripe account.
641
+ sig { returns(String) }
642
+ attr_accessor :destination
643
+ sig { params(amount_percent: Float, destination: String).void }
644
+ def initialize(amount_percent: nil, destination: nil); end
645
+ end
646
+ # 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).
647
+ sig { returns(Float) }
648
+ attr_accessor :application_fee_percent
649
+ # Default settings for automatic tax computation.
650
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::AutomaticTax) }
651
+ attr_accessor :automatic_tax
652
+ # Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
653
+ sig { returns(String) }
654
+ attr_accessor :billing_cycle_anchor
655
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds.
656
+ sig {
657
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::BillingThresholds))
658
+ }
659
+ attr_accessor :billing_thresholds
660
+ # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation.
661
+ sig { returns(String) }
662
+ attr_accessor :collection_method
663
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
664
+ sig { returns(String) }
665
+ attr_accessor :default_payment_method
666
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
667
+ sig { returns(T.nilable(String)) }
668
+ attr_accessor :description
669
+ # All invoices will be billed using the specified settings.
670
+ sig {
671
+ returns(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::InvoiceSettings)
672
+ }
673
+ attr_accessor :invoice_settings
674
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
675
+ sig { returns(T.nilable(String)) }
676
+ attr_accessor :on_behalf_of
677
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
678
+ sig {
679
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::TransferData))
680
+ }
681
+ attr_accessor :transfer_data
682
+ sig {
683
+ params(application_fee_percent: Float, automatic_tax: ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::AutomaticTax, billing_cycle_anchor: String, billing_thresholds: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::BillingThresholds), collection_method: String, default_payment_method: String, description: T.nilable(String), invoice_settings: ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::InvoiceSettings, on_behalf_of: T.nilable(String), transfer_data: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::TransferData)).void
684
+ }
685
+ def initialize(
686
+ application_fee_percent: nil,
687
+ automatic_tax: nil,
688
+ billing_cycle_anchor: nil,
689
+ billing_thresholds: nil,
690
+ collection_method: nil,
691
+ default_payment_method: nil,
692
+ description: nil,
693
+ invoice_settings: nil,
694
+ on_behalf_of: nil,
695
+ transfer_data: nil
696
+ ); end
697
+ end
698
+ class Phase < Stripe::RequestParams
699
+ class AddInvoiceItem < Stripe::RequestParams
700
+ class Discount < Stripe::RequestParams
701
+ class DiscountEnd < Stripe::RequestParams
702
+ class Duration < Stripe::RequestParams
703
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
704
+ sig { returns(String) }
705
+ attr_accessor :interval
706
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
707
+ sig { returns(Integer) }
708
+ attr_accessor :interval_count
709
+ sig { params(interval: String, interval_count: Integer).void }
710
+ def initialize(interval: nil, interval_count: nil); end
711
+ end
712
+ # Time span for the redeemed discount.
713
+ sig {
714
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::Discount::DiscountEnd::Duration)
715
+ }
716
+ attr_accessor :duration
717
+ # A precise Unix timestamp for the discount to end. Must be in the future.
718
+ sig { returns(Integer) }
719
+ attr_accessor :timestamp
720
+ # The type of calculation made to determine when the discount ends.
721
+ sig { returns(String) }
722
+ attr_accessor :type
723
+ sig {
724
+ params(duration: ::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
725
+ }
726
+ def initialize(duration: nil, timestamp: nil, type: nil); end
727
+ end
728
+ # ID of the coupon to create a new discount for.
729
+ sig { returns(String) }
730
+ attr_accessor :coupon
731
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
732
+ sig { returns(String) }
733
+ attr_accessor :discount
734
+ # Details to determine how long the discount should be applied for.
735
+ sig {
736
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::Discount::DiscountEnd)
737
+ }
738
+ attr_accessor :discount_end
739
+ # ID of the promotion code to create a new discount for.
740
+ sig { returns(String) }
741
+ attr_accessor :promotion_code
742
+ sig {
743
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::Discount::DiscountEnd, promotion_code: String).void
744
+ }
745
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
746
+ end
747
+ class PriceData < Stripe::RequestParams
748
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
749
+ sig { returns(String) }
750
+ attr_accessor :currency
751
+ # The ID of the product that this price will belong to.
752
+ sig { returns(String) }
753
+ attr_accessor :product
754
+ # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.
755
+ sig { returns(String) }
756
+ attr_accessor :tax_behavior
757
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer.
758
+ sig { returns(Integer) }
759
+ attr_accessor :unit_amount
760
+ # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
761
+ sig { returns(String) }
762
+ attr_accessor :unit_amount_decimal
763
+ sig {
764
+ params(currency: String, product: String, tax_behavior: String, unit_amount: Integer, unit_amount_decimal: String).void
765
+ }
766
+ def initialize(
767
+ currency: nil,
768
+ product: nil,
769
+ tax_behavior: nil,
770
+ unit_amount: nil,
771
+ unit_amount_decimal: nil
772
+ ); end
773
+ end
774
+ # The coupons to redeem into discounts for the item.
775
+ sig {
776
+ returns(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::Discount])
777
+ }
778
+ attr_accessor :discounts
779
+ # The ID of the price object. One of `price` or `price_data` is required.
780
+ sig { returns(String) }
781
+ attr_accessor :price
782
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
783
+ sig {
784
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::PriceData)
785
+ }
786
+ attr_accessor :price_data
787
+ # Quantity for this item. Defaults to 1.
788
+ sig { returns(Integer) }
789
+ attr_accessor :quantity
790
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
791
+ sig { returns(T.nilable(T::Array[String])) }
792
+ attr_accessor :tax_rates
793
+ sig {
794
+ params(discounts: T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::Discount], price: String, price_data: ::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::PriceData, quantity: Integer, tax_rates: T.nilable(T::Array[String])).void
795
+ }
796
+ def initialize(
797
+ discounts: nil,
798
+ price: nil,
799
+ price_data: nil,
800
+ quantity: nil,
801
+ tax_rates: nil
802
+ ); end
803
+ end
804
+ class AutomaticTax < Stripe::RequestParams
805
+ class Liability < Stripe::RequestParams
806
+ # The connected account being referenced when `type` is `account`.
807
+ sig { returns(String) }
808
+ attr_accessor :account
809
+ # Type of the account referenced in the request.
810
+ sig { returns(String) }
811
+ attr_accessor :type
812
+ sig { params(account: String, type: String).void }
813
+ def initialize(account: nil, type: nil); end
814
+ end
815
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
816
+ sig { returns(T::Boolean) }
817
+ attr_accessor :enabled
818
+ # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
819
+ sig {
820
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::AutomaticTax::Liability)
821
+ }
822
+ attr_accessor :liability
823
+ sig {
824
+ params(enabled: T::Boolean, liability: ::Stripe::SubscriptionSchedule::CreateParams::Phase::AutomaticTax::Liability).void
825
+ }
826
+ def initialize(enabled: nil, liability: nil); end
827
+ end
828
+ class BillingThresholds < Stripe::RequestParams
829
+ # Monetary threshold that triggers the subscription to advance to a new billing period
830
+ sig { returns(Integer) }
831
+ attr_accessor :amount_gte
832
+ # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged.
833
+ sig { returns(T::Boolean) }
834
+ attr_accessor :reset_billing_cycle_anchor
835
+ sig { params(amount_gte: Integer, reset_billing_cycle_anchor: T::Boolean).void }
836
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
837
+ end
838
+ class Discount < Stripe::RequestParams
839
+ class DiscountEnd < Stripe::RequestParams
840
+ class Duration < Stripe::RequestParams
841
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
842
+ sig { returns(String) }
843
+ attr_accessor :interval
844
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
845
+ sig { returns(Integer) }
846
+ attr_accessor :interval_count
847
+ sig { params(interval: String, interval_count: Integer).void }
848
+ def initialize(interval: nil, interval_count: nil); end
849
+ end
850
+ # Time span for the redeemed discount.
851
+ sig {
852
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::Discount::DiscountEnd::Duration)
853
+ }
854
+ attr_accessor :duration
855
+ # A precise Unix timestamp for the discount to end. Must be in the future.
856
+ sig { returns(Integer) }
857
+ attr_accessor :timestamp
858
+ # The type of calculation made to determine when the discount ends.
859
+ sig { returns(String) }
860
+ attr_accessor :type
861
+ sig {
862
+ params(duration: ::Stripe::SubscriptionSchedule::CreateParams::Phase::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
863
+ }
864
+ def initialize(duration: nil, timestamp: nil, type: nil); end
865
+ end
866
+ # ID of the coupon to create a new discount for.
867
+ sig { returns(String) }
868
+ attr_accessor :coupon
869
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
870
+ sig { returns(String) }
871
+ attr_accessor :discount
872
+ # Details to determine how long the discount should be applied for.
873
+ sig {
874
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::Discount::DiscountEnd)
875
+ }
876
+ attr_accessor :discount_end
877
+ # ID of the promotion code to create a new discount for.
878
+ sig { returns(String) }
879
+ attr_accessor :promotion_code
880
+ sig {
881
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::CreateParams::Phase::Discount::DiscountEnd, promotion_code: String).void
882
+ }
883
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
884
+ end
885
+ class InvoiceSettings < Stripe::RequestParams
886
+ class Issuer < Stripe::RequestParams
887
+ # The connected account being referenced when `type` is `account`.
888
+ sig { returns(String) }
889
+ attr_accessor :account
890
+ # Type of the account referenced in the request.
891
+ sig { returns(String) }
892
+ attr_accessor :type
893
+ sig { params(account: String, type: String).void }
894
+ def initialize(account: nil, type: nil); end
895
+ end
896
+ # The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule.
897
+ sig { returns(T.nilable(T::Array[String])) }
898
+ attr_accessor :account_tax_ids
899
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.
900
+ sig { returns(Integer) }
901
+ attr_accessor :days_until_due
902
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
903
+ sig {
904
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::InvoiceSettings::Issuer)
905
+ }
906
+ attr_accessor :issuer
907
+ sig {
908
+ params(account_tax_ids: T.nilable(T::Array[String]), days_until_due: Integer, issuer: ::Stripe::SubscriptionSchedule::CreateParams::Phase::InvoiceSettings::Issuer).void
909
+ }
910
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
911
+ end
912
+ class Item < Stripe::RequestParams
913
+ class BillingThresholds < Stripe::RequestParams
914
+ # Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte))
915
+ sig { returns(Integer) }
916
+ attr_accessor :usage_gte
917
+ sig { params(usage_gte: Integer).void }
918
+ def initialize(usage_gte: nil); end
919
+ end
920
+ class Discount < Stripe::RequestParams
921
+ class DiscountEnd < Stripe::RequestParams
922
+ class Duration < Stripe::RequestParams
923
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
924
+ sig { returns(String) }
925
+ attr_accessor :interval
926
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
927
+ sig { returns(Integer) }
928
+ attr_accessor :interval_count
929
+ sig { params(interval: String, interval_count: Integer).void }
930
+ def initialize(interval: nil, interval_count: nil); end
931
+ end
932
+ # Time span for the redeemed discount.
933
+ sig {
934
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Discount::DiscountEnd::Duration)
935
+ }
936
+ attr_accessor :duration
937
+ # A precise Unix timestamp for the discount to end. Must be in the future.
938
+ sig { returns(Integer) }
939
+ attr_accessor :timestamp
940
+ # The type of calculation made to determine when the discount ends.
941
+ sig { returns(String) }
942
+ attr_accessor :type
943
+ sig {
944
+ params(duration: ::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
945
+ }
946
+ def initialize(duration: nil, timestamp: nil, type: nil); end
947
+ end
948
+ # ID of the coupon to create a new discount for.
949
+ sig { returns(String) }
950
+ attr_accessor :coupon
951
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
952
+ sig { returns(String) }
953
+ attr_accessor :discount
954
+ # Details to determine how long the discount should be applied for.
955
+ sig {
956
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Discount::DiscountEnd)
957
+ }
958
+ attr_accessor :discount_end
959
+ # ID of the promotion code to create a new discount for.
960
+ sig { returns(String) }
961
+ attr_accessor :promotion_code
962
+ sig {
963
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Discount::DiscountEnd, promotion_code: String).void
964
+ }
965
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
966
+ end
967
+ class PriceData < Stripe::RequestParams
968
+ class Recurring < Stripe::RequestParams
969
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
970
+ sig { returns(String) }
971
+ attr_accessor :interval
972
+ # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).
973
+ sig { returns(Integer) }
974
+ attr_accessor :interval_count
975
+ sig { params(interval: String, interval_count: Integer).void }
976
+ def initialize(interval: nil, interval_count: nil); end
977
+ end
978
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
979
+ sig { returns(String) }
980
+ attr_accessor :currency
981
+ # The ID of the product that this price will belong to.
982
+ sig { returns(String) }
983
+ attr_accessor :product
984
+ # The recurring components of a price such as `interval` and `interval_count`.
985
+ sig {
986
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::PriceData::Recurring)
987
+ }
988
+ attr_accessor :recurring
989
+ # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.
990
+ sig { returns(String) }
991
+ attr_accessor :tax_behavior
992
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
993
+ sig { returns(Integer) }
994
+ attr_accessor :unit_amount
995
+ # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
996
+ sig { returns(String) }
997
+ attr_accessor :unit_amount_decimal
998
+ sig {
999
+ params(currency: String, product: String, recurring: ::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::PriceData::Recurring, tax_behavior: String, unit_amount: Integer, unit_amount_decimal: String).void
1000
+ }
1001
+ def initialize(
1002
+ currency: nil,
1003
+ product: nil,
1004
+ recurring: nil,
1005
+ tax_behavior: nil,
1006
+ unit_amount: nil,
1007
+ unit_amount_decimal: nil
1008
+ ); end
1009
+ end
1010
+ class Trial < Stripe::RequestParams
1011
+ # 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.
1012
+ sig { returns(T::Array[String]) }
1013
+ attr_accessor :converts_to
1014
+ # Determines the type of trial for this item.
1015
+ sig { returns(String) }
1016
+ attr_accessor :type
1017
+ sig { params(converts_to: T::Array[String], type: String).void }
1018
+ def initialize(converts_to: nil, type: nil); end
1019
+ end
1020
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds.
1021
+ sig {
1022
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::BillingThresholds))
1023
+ }
1024
+ attr_accessor :billing_thresholds
1025
+ # The coupons to redeem into discounts for the subscription item.
1026
+ sig {
1027
+ returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Discount]))
1028
+ }
1029
+ attr_accessor :discounts
1030
+ # 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`.
1031
+ sig { returns(T::Hash[String, String]) }
1032
+ attr_accessor :metadata
1033
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
1034
+ sig { returns(String) }
1035
+ attr_accessor :plan
1036
+ # The ID of the price object.
1037
+ sig { returns(String) }
1038
+ attr_accessor :price
1039
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
1040
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::PriceData) }
1041
+ attr_accessor :price_data
1042
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
1043
+ sig { returns(Integer) }
1044
+ attr_accessor :quantity
1045
+ # 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.
1046
+ sig { returns(T.nilable(T::Array[String])) }
1047
+ attr_accessor :tax_rates
1048
+ # Options that configure the trial on the subscription item.
1049
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Trial) }
1050
+ attr_accessor :trial
1051
+ sig {
1052
+ params(billing_thresholds: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::BillingThresholds), discounts: T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Discount]), metadata: T::Hash[String, String], plan: String, price: String, price_data: ::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::PriceData, quantity: Integer, tax_rates: T.nilable(T::Array[String]), trial: ::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Trial).void
1053
+ }
1054
+ def initialize(
1055
+ billing_thresholds: nil,
1056
+ discounts: nil,
1057
+ metadata: nil,
1058
+ plan: nil,
1059
+ price: nil,
1060
+ price_data: nil,
1061
+ quantity: nil,
1062
+ tax_rates: nil,
1063
+ trial: nil
1064
+ ); end
1065
+ end
1066
+ class PauseCollection < Stripe::RequestParams
1067
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
1068
+ sig { returns(String) }
1069
+ attr_accessor :behavior
1070
+ sig { params(behavior: String).void }
1071
+ def initialize(behavior: nil); end
1072
+ end
1073
+ class TransferData < Stripe::RequestParams
1074
+ # 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 destination account. By default, the entire amount is transferred to the destination.
1075
+ sig { returns(Float) }
1076
+ attr_accessor :amount_percent
1077
+ # ID of an existing, connected Stripe account.
1078
+ sig { returns(String) }
1079
+ attr_accessor :destination
1080
+ sig { params(amount_percent: Float, destination: String).void }
1081
+ def initialize(amount_percent: nil, destination: nil); end
1082
+ end
1083
+ class TrialSettings < Stripe::RequestParams
1084
+ class EndBehavior < Stripe::RequestParams
1085
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
1086
+ sig { returns(String) }
1087
+ attr_accessor :prorate_up_front
1088
+ sig { params(prorate_up_front: String).void }
1089
+ def initialize(prorate_up_front: nil); end
1090
+ end
1091
+ # Defines how the subscription should behave when a trial ends.
1092
+ sig {
1093
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::TrialSettings::EndBehavior)
1094
+ }
1095
+ attr_accessor :end_behavior
1096
+ sig {
1097
+ params(end_behavior: ::Stripe::SubscriptionSchedule::CreateParams::Phase::TrialSettings::EndBehavior).void
1098
+ }
1099
+ def initialize(end_behavior: nil); end
1100
+ end
1101
+ # 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.
1102
+ sig {
1103
+ returns(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem])
1104
+ }
1105
+ attr_accessor :add_invoice_items
1106
+ # 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).
1107
+ sig { returns(Float) }
1108
+ attr_accessor :application_fee_percent
1109
+ # Automatic tax settings for this phase.
1110
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::AutomaticTax) }
1111
+ attr_accessor :automatic_tax
1112
+ # Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
1113
+ sig { returns(String) }
1114
+ attr_accessor :billing_cycle_anchor
1115
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds.
1116
+ sig {
1117
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::BillingThresholds))
1118
+ }
1119
+ attr_accessor :billing_thresholds
1120
+ # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation.
1121
+ sig { returns(String) }
1122
+ attr_accessor :collection_method
1123
+ # The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.
1124
+ sig { returns(String) }
1125
+ attr_accessor :coupon
1126
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
1127
+ sig { returns(String) }
1128
+ attr_accessor :currency
1129
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
1130
+ sig { returns(String) }
1131
+ attr_accessor :default_payment_method
1132
+ # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will set the Subscription's [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates), which means they will be the Invoice's [`default_tax_rates`](https://stripe.com/docs/api/invoices/create#create_invoice-default_tax_rates) for any Invoices issued by the Subscription during this Phase.
1133
+ sig { returns(T.nilable(T::Array[String])) }
1134
+ attr_accessor :default_tax_rates
1135
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
1136
+ sig { returns(T.nilable(String)) }
1137
+ attr_accessor :description
1138
+ # The coupons to redeem into discounts for the schedule phase. If not specified, inherits the discount from the subscription's customer. Pass an empty string to avoid inheriting any discounts.
1139
+ sig {
1140
+ returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Discount]))
1141
+ }
1142
+ attr_accessor :discounts
1143
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
1144
+ sig { returns(Integer) }
1145
+ attr_accessor :end_date
1146
+ # All invoices will be billed using the specified settings.
1147
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::InvoiceSettings) }
1148
+ attr_accessor :invoice_settings
1149
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
1150
+ sig { returns(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Item]) }
1151
+ attr_accessor :items
1152
+ # Integer representing the multiplier applied to the price interval. For example, `iterations=2` applied to a price with `interval=month` and `interval_count=3` results in a phase of duration `2 * 3 months = 6 months`. If set, `end_date` must not be set.
1153
+ sig { returns(Integer) }
1154
+ attr_accessor :iterations
1155
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`.
1156
+ sig { returns(T::Hash[String, String]) }
1157
+ attr_accessor :metadata
1158
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
1159
+ sig { returns(String) }
1160
+ attr_accessor :on_behalf_of
1161
+ # 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).
1162
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::PauseCollection) }
1163
+ attr_accessor :pause_collection
1164
+ # 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.
1165
+ sig { returns(String) }
1166
+ attr_accessor :proration_behavior
1167
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
1168
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::TransferData) }
1169
+ attr_accessor :transfer_data
1170
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
1171
+ sig { returns(T::Boolean) }
1172
+ attr_accessor :trial
1173
+ # Specify trial behavior when crossing phase boundaries
1174
+ sig { returns(String) }
1175
+ attr_accessor :trial_continuation
1176
+ # 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`
1177
+ sig { returns(Integer) }
1178
+ attr_accessor :trial_end
1179
+ # Settings related to subscription trials.
1180
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::TrialSettings) }
1181
+ attr_accessor :trial_settings
1182
+ sig {
1183
+ params(add_invoice_items: T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem], application_fee_percent: Float, automatic_tax: ::Stripe::SubscriptionSchedule::CreateParams::Phase::AutomaticTax, billing_cycle_anchor: String, billing_thresholds: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::BillingThresholds), collection_method: String, coupon: String, currency: String, default_payment_method: String, default_tax_rates: T.nilable(T::Array[String]), description: T.nilable(String), discounts: T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Discount]), end_date: Integer, invoice_settings: ::Stripe::SubscriptionSchedule::CreateParams::Phase::InvoiceSettings, items: T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Item], iterations: Integer, metadata: T::Hash[String, String], on_behalf_of: String, pause_collection: ::Stripe::SubscriptionSchedule::CreateParams::Phase::PauseCollection, proration_behavior: String, transfer_data: ::Stripe::SubscriptionSchedule::CreateParams::Phase::TransferData, trial: T::Boolean, trial_continuation: String, trial_end: Integer, trial_settings: ::Stripe::SubscriptionSchedule::CreateParams::Phase::TrialSettings).void
1184
+ }
1185
+ def initialize(
1186
+ add_invoice_items: nil,
1187
+ application_fee_percent: nil,
1188
+ automatic_tax: nil,
1189
+ billing_cycle_anchor: nil,
1190
+ billing_thresholds: nil,
1191
+ collection_method: nil,
1192
+ coupon: nil,
1193
+ currency: nil,
1194
+ default_payment_method: nil,
1195
+ default_tax_rates: nil,
1196
+ description: nil,
1197
+ discounts: nil,
1198
+ end_date: nil,
1199
+ invoice_settings: nil,
1200
+ items: nil,
1201
+ iterations: nil,
1202
+ metadata: nil,
1203
+ on_behalf_of: nil,
1204
+ pause_collection: nil,
1205
+ proration_behavior: nil,
1206
+ transfer_data: nil,
1207
+ trial: nil,
1208
+ trial_continuation: nil,
1209
+ trial_end: nil,
1210
+ trial_settings: nil
1211
+ ); end
1212
+ end
1213
+ class Prebilling < Stripe::RequestParams
1214
+ # This is used to determine the number of billing cycles to prebill.
1215
+ sig { returns(Integer) }
1216
+ attr_accessor :iterations
1217
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
1218
+ sig { returns(String) }
1219
+ attr_accessor :update_behavior
1220
+ sig { params(iterations: Integer, update_behavior: String).void }
1221
+ def initialize(iterations: nil, update_behavior: nil); end
1222
+ end
1223
+ # 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.
1224
+ sig { returns(String) }
1225
+ attr_accessor :billing_behavior
1226
+ # The identifier of the customer to create the subscription schedule for.
1227
+ sig { returns(String) }
1228
+ attr_accessor :customer
1229
+ # Object representing the subscription schedule's default settings.
1230
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings) }
1231
+ attr_accessor :default_settings
1232
+ # 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.
1233
+ sig { returns(String) }
1234
+ attr_accessor :end_behavior
1235
+ # Specifies which fields in the response should be expanded.
1236
+ sig { returns(T::Array[String]) }
1237
+ attr_accessor :expand
1238
+ # Migrate an existing subscription to be managed by a subscription schedule. If this parameter is set, a subscription schedule will be created using the subscription's item(s), set to auto-renew using the subscription's interval. When using this parameter, other parameters (such as phase values) cannot be set. To create a subscription schedule with other modifications, we recommend making two separate API calls.
1239
+ sig { returns(String) }
1240
+ attr_accessor :from_subscription
1241
+ # 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`.
1242
+ sig { returns(T.nilable(T::Hash[String, String])) }
1243
+ attr_accessor :metadata
1244
+ # 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.
1245
+ sig { returns(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase]) }
1246
+ attr_accessor :phases
1247
+ # If specified, the invoicing for the given billing cycle iterations will be processed now.
1248
+ sig { returns(::Stripe::SubscriptionSchedule::CreateParams::Prebilling) }
1249
+ attr_accessor :prebilling
1250
+ # 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.
1251
+ sig { returns(T.any(Integer, String)) }
1252
+ attr_accessor :start_date
1253
+ sig {
1254
+ params(billing_behavior: String, customer: String, default_settings: ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings, end_behavior: String, expand: T::Array[String], from_subscription: String, metadata: T.nilable(T::Hash[String, String]), phases: T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase], prebilling: ::Stripe::SubscriptionSchedule::CreateParams::Prebilling, start_date: T.any(Integer, String)).void
1255
+ }
1256
+ def initialize(
1257
+ billing_behavior: nil,
1258
+ customer: nil,
1259
+ default_settings: nil,
1260
+ end_behavior: nil,
1261
+ expand: nil,
1262
+ from_subscription: nil,
1263
+ metadata: nil,
1264
+ phases: nil,
1265
+ prebilling: nil,
1266
+ start_date: nil
1267
+ ); end
1268
+ end
1269
+ class RetrieveParams < Stripe::RequestParams
1270
+ # Specifies which fields in the response should be expanded.
1271
+ sig { returns(T::Array[String]) }
1272
+ attr_accessor :expand
1273
+ sig { params(expand: T::Array[String]).void }
1274
+ def initialize(expand: nil); end
1275
+ end
1276
+ class UpdateParams < Stripe::RequestParams
1277
+ class DefaultSettings < Stripe::RequestParams
1278
+ class AutomaticTax < Stripe::RequestParams
1279
+ class Liability < Stripe::RequestParams
1280
+ # The connected account being referenced when `type` is `account`.
1281
+ sig { returns(String) }
1282
+ attr_accessor :account
1283
+ # Type of the account referenced in the request.
1284
+ sig { returns(String) }
1285
+ attr_accessor :type
1286
+ sig { params(account: String, type: String).void }
1287
+ def initialize(account: nil, type: nil); end
1288
+ end
1289
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
1290
+ sig { returns(T::Boolean) }
1291
+ attr_accessor :enabled
1292
+ # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
1293
+ sig {
1294
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::AutomaticTax::Liability)
1295
+ }
1296
+ attr_accessor :liability
1297
+ sig {
1298
+ params(enabled: T::Boolean, liability: ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::AutomaticTax::Liability).void
1299
+ }
1300
+ def initialize(enabled: nil, liability: nil); end
1301
+ end
1302
+ class BillingThresholds < Stripe::RequestParams
1303
+ # Monetary threshold that triggers the subscription to advance to a new billing period
1304
+ sig { returns(Integer) }
1305
+ attr_accessor :amount_gte
1306
+ # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged.
1307
+ sig { returns(T::Boolean) }
1308
+ attr_accessor :reset_billing_cycle_anchor
1309
+ sig { params(amount_gte: Integer, reset_billing_cycle_anchor: T::Boolean).void }
1310
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
1311
+ end
1312
+ class InvoiceSettings < Stripe::RequestParams
1313
+ class Issuer < Stripe::RequestParams
1314
+ # The connected account being referenced when `type` is `account`.
1315
+ sig { returns(String) }
1316
+ attr_accessor :account
1317
+ # Type of the account referenced in the request.
1318
+ sig { returns(String) }
1319
+ attr_accessor :type
1320
+ sig { params(account: String, type: String).void }
1321
+ def initialize(account: nil, type: nil); end
1322
+ end
1323
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
1324
+ sig { returns(T.nilable(T::Array[String])) }
1325
+ attr_accessor :account_tax_ids
1326
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `collection_method=charge_automatically`.
1327
+ sig { returns(Integer) }
1328
+ attr_accessor :days_until_due
1329
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
1330
+ sig {
1331
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::InvoiceSettings::Issuer)
1332
+ }
1333
+ attr_accessor :issuer
1334
+ sig {
1335
+ params(account_tax_ids: T.nilable(T::Array[String]), days_until_due: Integer, issuer: ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::InvoiceSettings::Issuer).void
1336
+ }
1337
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
1338
+ end
1339
+ class TransferData < Stripe::RequestParams
1340
+ # 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 destination account. By default, the entire amount is transferred to the destination.
1341
+ sig { returns(Float) }
1342
+ attr_accessor :amount_percent
1343
+ # ID of an existing, connected Stripe account.
1344
+ sig { returns(String) }
1345
+ attr_accessor :destination
1346
+ sig { params(amount_percent: Float, destination: String).void }
1347
+ def initialize(amount_percent: nil, destination: nil); end
1348
+ end
1349
+ # 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).
1350
+ sig { returns(Float) }
1351
+ attr_accessor :application_fee_percent
1352
+ # Default settings for automatic tax computation.
1353
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::AutomaticTax) }
1354
+ attr_accessor :automatic_tax
1355
+ # Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
1356
+ sig { returns(String) }
1357
+ attr_accessor :billing_cycle_anchor
1358
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds.
1359
+ sig {
1360
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::BillingThresholds))
1361
+ }
1362
+ attr_accessor :billing_thresholds
1363
+ # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation.
1364
+ sig { returns(String) }
1365
+ attr_accessor :collection_method
1366
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
1367
+ sig { returns(String) }
1368
+ attr_accessor :default_payment_method
1369
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
1370
+ sig { returns(T.nilable(String)) }
1371
+ attr_accessor :description
1372
+ # All invoices will be billed using the specified settings.
1373
+ sig {
1374
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::InvoiceSettings)
1375
+ }
1376
+ attr_accessor :invoice_settings
1377
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
1378
+ sig { returns(T.nilable(String)) }
1379
+ attr_accessor :on_behalf_of
1380
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
1381
+ sig {
1382
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::TransferData))
1383
+ }
1384
+ attr_accessor :transfer_data
1385
+ sig {
1386
+ params(application_fee_percent: Float, automatic_tax: ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::AutomaticTax, billing_cycle_anchor: String, billing_thresholds: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::BillingThresholds), collection_method: String, default_payment_method: String, description: T.nilable(String), invoice_settings: ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::InvoiceSettings, on_behalf_of: T.nilable(String), transfer_data: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::TransferData)).void
1387
+ }
1388
+ def initialize(
1389
+ application_fee_percent: nil,
1390
+ automatic_tax: nil,
1391
+ billing_cycle_anchor: nil,
1392
+ billing_thresholds: nil,
1393
+ collection_method: nil,
1394
+ default_payment_method: nil,
1395
+ description: nil,
1396
+ invoice_settings: nil,
1397
+ on_behalf_of: nil,
1398
+ transfer_data: nil
1399
+ ); end
1400
+ end
1401
+ class Phase < Stripe::RequestParams
1402
+ class AddInvoiceItem < Stripe::RequestParams
1403
+ class Discount < Stripe::RequestParams
1404
+ class DiscountEnd < Stripe::RequestParams
1405
+ class Duration < Stripe::RequestParams
1406
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1407
+ sig { returns(String) }
1408
+ attr_accessor :interval
1409
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1410
+ sig { returns(Integer) }
1411
+ attr_accessor :interval_count
1412
+ sig { params(interval: String, interval_count: Integer).void }
1413
+ def initialize(interval: nil, interval_count: nil); end
1414
+ end
1415
+ # Time span for the redeemed discount.
1416
+ sig {
1417
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::Discount::DiscountEnd::Duration)
1418
+ }
1419
+ attr_accessor :duration
1420
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1421
+ sig { returns(Integer) }
1422
+ attr_accessor :timestamp
1423
+ # The type of calculation made to determine when the discount ends.
1424
+ sig { returns(String) }
1425
+ attr_accessor :type
1426
+ sig {
1427
+ params(duration: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
1428
+ }
1429
+ def initialize(duration: nil, timestamp: nil, type: nil); end
1430
+ end
1431
+ # ID of the coupon to create a new discount for.
1432
+ sig { returns(String) }
1433
+ attr_accessor :coupon
1434
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1435
+ sig { returns(String) }
1436
+ attr_accessor :discount
1437
+ # Details to determine how long the discount should be applied for.
1438
+ sig {
1439
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::Discount::DiscountEnd)
1440
+ }
1441
+ attr_accessor :discount_end
1442
+ # ID of the promotion code to create a new discount for.
1443
+ sig { returns(String) }
1444
+ attr_accessor :promotion_code
1445
+ sig {
1446
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::Discount::DiscountEnd, promotion_code: String).void
1447
+ }
1448
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
1449
+ end
1450
+ class PriceData < Stripe::RequestParams
1451
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
1452
+ sig { returns(String) }
1453
+ attr_accessor :currency
1454
+ # The ID of the product that this price will belong to.
1455
+ sig { returns(String) }
1456
+ attr_accessor :product
1457
+ # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.
1458
+ sig { returns(String) }
1459
+ attr_accessor :tax_behavior
1460
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer.
1461
+ sig { returns(Integer) }
1462
+ attr_accessor :unit_amount
1463
+ # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
1464
+ sig { returns(String) }
1465
+ attr_accessor :unit_amount_decimal
1466
+ sig {
1467
+ params(currency: String, product: String, tax_behavior: String, unit_amount: Integer, unit_amount_decimal: String).void
1468
+ }
1469
+ def initialize(
1470
+ currency: nil,
1471
+ product: nil,
1472
+ tax_behavior: nil,
1473
+ unit_amount: nil,
1474
+ unit_amount_decimal: nil
1475
+ ); end
1476
+ end
1477
+ # The coupons to redeem into discounts for the item.
1478
+ sig {
1479
+ returns(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::Discount])
1480
+ }
1481
+ attr_accessor :discounts
1482
+ # The ID of the price object. One of `price` or `price_data` is required.
1483
+ sig { returns(String) }
1484
+ attr_accessor :price
1485
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
1486
+ sig {
1487
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::PriceData)
1488
+ }
1489
+ attr_accessor :price_data
1490
+ # Quantity for this item. Defaults to 1.
1491
+ sig { returns(Integer) }
1492
+ attr_accessor :quantity
1493
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
1494
+ sig { returns(T.nilable(T::Array[String])) }
1495
+ attr_accessor :tax_rates
1496
+ sig {
1497
+ params(discounts: T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::Discount], price: String, price_data: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::PriceData, quantity: Integer, tax_rates: T.nilable(T::Array[String])).void
1498
+ }
1499
+ def initialize(
1500
+ discounts: nil,
1501
+ price: nil,
1502
+ price_data: nil,
1503
+ quantity: nil,
1504
+ tax_rates: nil
1505
+ ); end
1506
+ end
1507
+ class AutomaticTax < Stripe::RequestParams
1508
+ class Liability < Stripe::RequestParams
1509
+ # The connected account being referenced when `type` is `account`.
1510
+ sig { returns(String) }
1511
+ attr_accessor :account
1512
+ # Type of the account referenced in the request.
1513
+ sig { returns(String) }
1514
+ attr_accessor :type
1515
+ sig { params(account: String, type: String).void }
1516
+ def initialize(account: nil, type: nil); end
1517
+ end
1518
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
1519
+ sig { returns(T::Boolean) }
1520
+ attr_accessor :enabled
1521
+ # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
1522
+ sig {
1523
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AutomaticTax::Liability)
1524
+ }
1525
+ attr_accessor :liability
1526
+ sig {
1527
+ params(enabled: T::Boolean, liability: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::AutomaticTax::Liability).void
1528
+ }
1529
+ def initialize(enabled: nil, liability: nil); end
1530
+ end
1531
+ class BillingThresholds < Stripe::RequestParams
1532
+ # Monetary threshold that triggers the subscription to advance to a new billing period
1533
+ sig { returns(Integer) }
1534
+ attr_accessor :amount_gte
1535
+ # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged.
1536
+ sig { returns(T::Boolean) }
1537
+ attr_accessor :reset_billing_cycle_anchor
1538
+ sig { params(amount_gte: Integer, reset_billing_cycle_anchor: T::Boolean).void }
1539
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
1540
+ end
1541
+ class Discount < Stripe::RequestParams
1542
+ class DiscountEnd < Stripe::RequestParams
1543
+ class Duration < Stripe::RequestParams
1544
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1545
+ sig { returns(String) }
1546
+ attr_accessor :interval
1547
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1548
+ sig { returns(Integer) }
1549
+ attr_accessor :interval_count
1550
+ sig { params(interval: String, interval_count: Integer).void }
1551
+ def initialize(interval: nil, interval_count: nil); end
1552
+ end
1553
+ # Time span for the redeemed discount.
1554
+ sig {
1555
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Discount::DiscountEnd::Duration)
1556
+ }
1557
+ attr_accessor :duration
1558
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1559
+ sig { returns(Integer) }
1560
+ attr_accessor :timestamp
1561
+ # The type of calculation made to determine when the discount ends.
1562
+ sig { returns(String) }
1563
+ attr_accessor :type
1564
+ sig {
1565
+ params(duration: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
1566
+ }
1567
+ def initialize(duration: nil, timestamp: nil, type: nil); end
1568
+ end
1569
+ # ID of the coupon to create a new discount for.
1570
+ sig { returns(String) }
1571
+ attr_accessor :coupon
1572
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1573
+ sig { returns(String) }
1574
+ attr_accessor :discount
1575
+ # Details to determine how long the discount should be applied for.
1576
+ sig {
1577
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Discount::DiscountEnd)
1578
+ }
1579
+ attr_accessor :discount_end
1580
+ # ID of the promotion code to create a new discount for.
1581
+ sig { returns(String) }
1582
+ attr_accessor :promotion_code
1583
+ sig {
1584
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Discount::DiscountEnd, promotion_code: String).void
1585
+ }
1586
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
1587
+ end
1588
+ class InvoiceSettings < Stripe::RequestParams
1589
+ class Issuer < Stripe::RequestParams
1590
+ # The connected account being referenced when `type` is `account`.
1591
+ sig { returns(String) }
1592
+ attr_accessor :account
1593
+ # Type of the account referenced in the request.
1594
+ sig { returns(String) }
1595
+ attr_accessor :type
1596
+ sig { params(account: String, type: String).void }
1597
+ def initialize(account: nil, type: nil); end
1598
+ end
1599
+ # The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule.
1600
+ sig { returns(T.nilable(T::Array[String])) }
1601
+ attr_accessor :account_tax_ids
1602
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.
1603
+ sig { returns(Integer) }
1604
+ attr_accessor :days_until_due
1605
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
1606
+ sig {
1607
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::InvoiceSettings::Issuer)
1608
+ }
1609
+ attr_accessor :issuer
1610
+ sig {
1611
+ params(account_tax_ids: T.nilable(T::Array[String]), days_until_due: Integer, issuer: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::InvoiceSettings::Issuer).void
1612
+ }
1613
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
1614
+ end
1615
+ class Item < Stripe::RequestParams
1616
+ class BillingThresholds < Stripe::RequestParams
1617
+ # Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte))
1618
+ sig { returns(Integer) }
1619
+ attr_accessor :usage_gte
1620
+ sig { params(usage_gte: Integer).void }
1621
+ def initialize(usage_gte: nil); end
1622
+ end
1623
+ class Discount < Stripe::RequestParams
1624
+ class DiscountEnd < Stripe::RequestParams
1625
+ class Duration < Stripe::RequestParams
1626
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1627
+ sig { returns(String) }
1628
+ attr_accessor :interval
1629
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1630
+ sig { returns(Integer) }
1631
+ attr_accessor :interval_count
1632
+ sig { params(interval: String, interval_count: Integer).void }
1633
+ def initialize(interval: nil, interval_count: nil); end
1634
+ end
1635
+ # Time span for the redeemed discount.
1636
+ sig {
1637
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Discount::DiscountEnd::Duration)
1638
+ }
1639
+ attr_accessor :duration
1640
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1641
+ sig { returns(Integer) }
1642
+ attr_accessor :timestamp
1643
+ # The type of calculation made to determine when the discount ends.
1644
+ sig { returns(String) }
1645
+ attr_accessor :type
1646
+ sig {
1647
+ params(duration: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
1648
+ }
1649
+ def initialize(duration: nil, timestamp: nil, type: nil); end
1650
+ end
1651
+ # ID of the coupon to create a new discount for.
1652
+ sig { returns(String) }
1653
+ attr_accessor :coupon
1654
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1655
+ sig { returns(String) }
1656
+ attr_accessor :discount
1657
+ # Details to determine how long the discount should be applied for.
1658
+ sig {
1659
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Discount::DiscountEnd)
1660
+ }
1661
+ attr_accessor :discount_end
1662
+ # ID of the promotion code to create a new discount for.
1663
+ sig { returns(String) }
1664
+ attr_accessor :promotion_code
1665
+ sig {
1666
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Discount::DiscountEnd, promotion_code: String).void
1667
+ }
1668
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
1669
+ end
1670
+ class PriceData < Stripe::RequestParams
1671
+ class Recurring < Stripe::RequestParams
1672
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
1673
+ sig { returns(String) }
1674
+ attr_accessor :interval
1675
+ # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).
1676
+ sig { returns(Integer) }
1677
+ attr_accessor :interval_count
1678
+ sig { params(interval: String, interval_count: Integer).void }
1679
+ def initialize(interval: nil, interval_count: nil); end
1680
+ end
1681
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
1682
+ sig { returns(String) }
1683
+ attr_accessor :currency
1684
+ # The ID of the product that this price will belong to.
1685
+ sig { returns(String) }
1686
+ attr_accessor :product
1687
+ # The recurring components of a price such as `interval` and `interval_count`.
1688
+ sig {
1689
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::PriceData::Recurring)
1690
+ }
1691
+ attr_accessor :recurring
1692
+ # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.
1693
+ sig { returns(String) }
1694
+ attr_accessor :tax_behavior
1695
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
1696
+ sig { returns(Integer) }
1697
+ attr_accessor :unit_amount
1698
+ # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
1699
+ sig { returns(String) }
1700
+ attr_accessor :unit_amount_decimal
1701
+ sig {
1702
+ params(currency: String, product: String, recurring: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::PriceData::Recurring, tax_behavior: String, unit_amount: Integer, unit_amount_decimal: String).void
1703
+ }
1704
+ def initialize(
1705
+ currency: nil,
1706
+ product: nil,
1707
+ recurring: nil,
1708
+ tax_behavior: nil,
1709
+ unit_amount: nil,
1710
+ unit_amount_decimal: nil
1711
+ ); end
1712
+ end
1713
+ class Trial < Stripe::RequestParams
1714
+ # 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.
1715
+ sig { returns(T::Array[String]) }
1716
+ attr_accessor :converts_to
1717
+ # Determines the type of trial for this item.
1718
+ sig { returns(String) }
1719
+ attr_accessor :type
1720
+ sig { params(converts_to: T::Array[String], type: String).void }
1721
+ def initialize(converts_to: nil, type: nil); end
1722
+ end
1723
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds.
1724
+ sig {
1725
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::BillingThresholds))
1726
+ }
1727
+ attr_accessor :billing_thresholds
1728
+ # The coupons to redeem into discounts for the subscription item.
1729
+ sig {
1730
+ returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Discount]))
1731
+ }
1732
+ attr_accessor :discounts
1733
+ # 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`.
1734
+ sig { returns(T::Hash[String, String]) }
1735
+ attr_accessor :metadata
1736
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
1737
+ sig { returns(String) }
1738
+ attr_accessor :plan
1739
+ # The ID of the price object.
1740
+ sig { returns(String) }
1741
+ attr_accessor :price
1742
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
1743
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::PriceData) }
1744
+ attr_accessor :price_data
1745
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
1746
+ sig { returns(Integer) }
1747
+ attr_accessor :quantity
1748
+ # 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.
1749
+ sig { returns(T.nilable(T::Array[String])) }
1750
+ attr_accessor :tax_rates
1751
+ # Options that configure the trial on the subscription item.
1752
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Trial) }
1753
+ attr_accessor :trial
1754
+ sig {
1755
+ params(billing_thresholds: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::BillingThresholds), discounts: T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Discount]), metadata: T::Hash[String, String], plan: String, price: String, price_data: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::PriceData, quantity: Integer, tax_rates: T.nilable(T::Array[String]), trial: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Trial).void
1756
+ }
1757
+ def initialize(
1758
+ billing_thresholds: nil,
1759
+ discounts: nil,
1760
+ metadata: nil,
1761
+ plan: nil,
1762
+ price: nil,
1763
+ price_data: nil,
1764
+ quantity: nil,
1765
+ tax_rates: nil,
1766
+ trial: nil
1767
+ ); end
1768
+ end
1769
+ class PauseCollection < Stripe::RequestParams
1770
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
1771
+ sig { returns(String) }
1772
+ attr_accessor :behavior
1773
+ sig { params(behavior: String).void }
1774
+ def initialize(behavior: nil); end
1775
+ end
1776
+ class TransferData < Stripe::RequestParams
1777
+ # 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 destination account. By default, the entire amount is transferred to the destination.
1778
+ sig { returns(Float) }
1779
+ attr_accessor :amount_percent
1780
+ # ID of an existing, connected Stripe account.
1781
+ sig { returns(String) }
1782
+ attr_accessor :destination
1783
+ sig { params(amount_percent: Float, destination: String).void }
1784
+ def initialize(amount_percent: nil, destination: nil); end
1785
+ end
1786
+ class TrialSettings < Stripe::RequestParams
1787
+ class EndBehavior < Stripe::RequestParams
1788
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
1789
+ sig { returns(String) }
1790
+ attr_accessor :prorate_up_front
1791
+ sig { params(prorate_up_front: String).void }
1792
+ def initialize(prorate_up_front: nil); end
1793
+ end
1794
+ # Defines how the subscription should behave when a trial ends.
1795
+ sig {
1796
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::TrialSettings::EndBehavior)
1797
+ }
1798
+ attr_accessor :end_behavior
1799
+ sig {
1800
+ params(end_behavior: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::TrialSettings::EndBehavior).void
1801
+ }
1802
+ def initialize(end_behavior: nil); end
1803
+ end
1804
+ # 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.
1805
+ sig {
1806
+ returns(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem])
1807
+ }
1808
+ attr_accessor :add_invoice_items
1809
+ # 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).
1810
+ sig { returns(Float) }
1811
+ attr_accessor :application_fee_percent
1812
+ # Automatic tax settings for this phase.
1813
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AutomaticTax) }
1814
+ attr_accessor :automatic_tax
1815
+ # Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
1816
+ sig { returns(String) }
1817
+ attr_accessor :billing_cycle_anchor
1818
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds.
1819
+ sig {
1820
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::BillingThresholds))
1821
+ }
1822
+ attr_accessor :billing_thresholds
1823
+ # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation.
1824
+ sig { returns(String) }
1825
+ attr_accessor :collection_method
1826
+ # The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.
1827
+ sig { returns(String) }
1828
+ attr_accessor :coupon
1829
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
1830
+ sig { returns(String) }
1831
+ attr_accessor :currency
1832
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
1833
+ sig { returns(String) }
1834
+ attr_accessor :default_payment_method
1835
+ # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will set the Subscription's [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates), which means they will be the Invoice's [`default_tax_rates`](https://stripe.com/docs/api/invoices/create#create_invoice-default_tax_rates) for any Invoices issued by the Subscription during this Phase.
1836
+ sig { returns(T.nilable(T::Array[String])) }
1837
+ attr_accessor :default_tax_rates
1838
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
1839
+ sig { returns(T.nilable(String)) }
1840
+ attr_accessor :description
1841
+ # The coupons to redeem into discounts for the schedule phase. If not specified, inherits the discount from the subscription's customer. Pass an empty string to avoid inheriting any discounts.
1842
+ sig {
1843
+ returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Discount]))
1844
+ }
1845
+ attr_accessor :discounts
1846
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
1847
+ sig { returns(T.any(Integer, String)) }
1848
+ attr_accessor :end_date
1849
+ # All invoices will be billed using the specified settings.
1850
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::InvoiceSettings) }
1851
+ attr_accessor :invoice_settings
1852
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
1853
+ sig { returns(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item]) }
1854
+ attr_accessor :items
1855
+ # Integer representing the multiplier applied to the price interval. For example, `iterations=2` applied to a price with `interval=month` and `interval_count=3` results in a phase of duration `2 * 3 months = 6 months`. If set, `end_date` must not be set.
1856
+ sig { returns(Integer) }
1857
+ attr_accessor :iterations
1858
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`.
1859
+ sig { returns(T::Hash[String, String]) }
1860
+ attr_accessor :metadata
1861
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
1862
+ sig { returns(String) }
1863
+ attr_accessor :on_behalf_of
1864
+ # 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).
1865
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::PauseCollection) }
1866
+ attr_accessor :pause_collection
1867
+ # 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.
1868
+ sig { returns(String) }
1869
+ attr_accessor :proration_behavior
1870
+ # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
1871
+ sig { returns(T.any(Integer, String)) }
1872
+ attr_accessor :start_date
1873
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
1874
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::TransferData) }
1875
+ attr_accessor :transfer_data
1876
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
1877
+ sig { returns(T::Boolean) }
1878
+ attr_accessor :trial
1879
+ # Specify trial behavior when crossing phase boundaries
1880
+ sig { returns(String) }
1881
+ attr_accessor :trial_continuation
1882
+ # 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`
1883
+ sig { returns(T.any(Integer, String)) }
1884
+ attr_accessor :trial_end
1885
+ # Settings related to subscription trials.
1886
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::TrialSettings) }
1887
+ attr_accessor :trial_settings
1888
+ sig {
1889
+ params(add_invoice_items: T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem], application_fee_percent: Float, automatic_tax: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::AutomaticTax, billing_cycle_anchor: String, billing_thresholds: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::BillingThresholds), collection_method: String, coupon: String, currency: String, default_payment_method: String, default_tax_rates: T.nilable(T::Array[String]), description: T.nilable(String), discounts: T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Discount]), end_date: T.any(Integer, String), invoice_settings: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::InvoiceSettings, items: T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item], iterations: Integer, metadata: T::Hash[String, String], on_behalf_of: String, pause_collection: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::PauseCollection, proration_behavior: String, start_date: T.any(Integer, String), transfer_data: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::TransferData, trial: T::Boolean, trial_continuation: String, trial_end: T.any(Integer, String), trial_settings: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::TrialSettings).void
1890
+ }
1891
+ def initialize(
1892
+ add_invoice_items: nil,
1893
+ application_fee_percent: nil,
1894
+ automatic_tax: nil,
1895
+ billing_cycle_anchor: nil,
1896
+ billing_thresholds: nil,
1897
+ collection_method: nil,
1898
+ coupon: nil,
1899
+ currency: nil,
1900
+ default_payment_method: nil,
1901
+ default_tax_rates: nil,
1902
+ description: nil,
1903
+ discounts: nil,
1904
+ end_date: nil,
1905
+ invoice_settings: nil,
1906
+ items: nil,
1907
+ iterations: nil,
1908
+ metadata: nil,
1909
+ on_behalf_of: nil,
1910
+ pause_collection: nil,
1911
+ proration_behavior: nil,
1912
+ start_date: nil,
1913
+ transfer_data: nil,
1914
+ trial: nil,
1915
+ trial_continuation: nil,
1916
+ trial_end: nil,
1917
+ trial_settings: nil
1918
+ ); end
1919
+ end
1920
+ class Prebilling < Stripe::RequestParams
1921
+ # This is used to determine the number of billing cycles to prebill.
1922
+ sig { returns(Integer) }
1923
+ attr_accessor :iterations
1924
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
1925
+ sig { returns(String) }
1926
+ attr_accessor :update_behavior
1927
+ sig { params(iterations: Integer, update_behavior: String).void }
1928
+ def initialize(iterations: nil, update_behavior: nil); end
1929
+ end
1930
+ # 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.
1931
+ sig { returns(String) }
1932
+ attr_accessor :billing_behavior
1933
+ # Object representing the subscription schedule's default settings.
1934
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings) }
1935
+ attr_accessor :default_settings
1936
+ # 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.
1937
+ sig { returns(String) }
1938
+ attr_accessor :end_behavior
1939
+ # Specifies which fields in the response should be expanded.
1940
+ sig { returns(T::Array[String]) }
1941
+ attr_accessor :expand
1942
+ # 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`.
1943
+ sig { returns(T.nilable(T::Hash[String, String])) }
1944
+ attr_accessor :metadata
1945
+ # 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.
1946
+ sig { returns(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase]) }
1947
+ attr_accessor :phases
1948
+ # If specified, the invoicing for the given billing cycle iterations will be processed now.
1949
+ sig { returns(::Stripe::SubscriptionSchedule::UpdateParams::Prebilling) }
1950
+ attr_accessor :prebilling
1951
+ # If the update changes the current phase, indicates whether the changes should be prorated. The default value is `create_prorations`.
1952
+ sig { returns(String) }
1953
+ attr_accessor :proration_behavior
1954
+ sig {
1955
+ params(billing_behavior: String, default_settings: ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings, end_behavior: String, expand: T::Array[String], metadata: T.nilable(T::Hash[String, String]), phases: T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase], prebilling: ::Stripe::SubscriptionSchedule::UpdateParams::Prebilling, proration_behavior: String).void
1956
+ }
1957
+ def initialize(
1958
+ billing_behavior: nil,
1959
+ default_settings: nil,
1960
+ end_behavior: nil,
1961
+ expand: nil,
1962
+ metadata: nil,
1963
+ phases: nil,
1964
+ prebilling: nil,
1965
+ proration_behavior: nil
1966
+ ); end
1967
+ end
1968
+ class AmendParams < Stripe::RequestParams
1969
+ class Amendment < Stripe::RequestParams
1970
+ class AmendmentEnd < Stripe::RequestParams
1971
+ class DiscountEnd < Stripe::RequestParams
1972
+ # The ID of a specific discount.
1973
+ sig { returns(String) }
1974
+ attr_accessor :discount
1975
+ sig { params(discount: String).void }
1976
+ def initialize(discount: nil); end
1977
+ end
1978
+ class Duration < Stripe::RequestParams
1979
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1980
+ sig { returns(String) }
1981
+ attr_accessor :interval
1982
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1983
+ sig { returns(Integer) }
1984
+ attr_accessor :interval_count
1985
+ sig { params(interval: String, interval_count: Integer).void }
1986
+ def initialize(interval: nil, interval_count: nil); end
1987
+ end
1988
+ # Use the `end` time of a given discount.
1989
+ sig {
1990
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentEnd::DiscountEnd)
1991
+ }
1992
+ attr_accessor :discount_end
1993
+ # Time span for the amendment starting from the `amendment_start`.
1994
+ sig {
1995
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentEnd::Duration)
1996
+ }
1997
+ attr_accessor :duration
1998
+ # A precise Unix timestamp for the amendment to end. Must be after the `amendment_start`.
1999
+ sig { returns(Integer) }
2000
+ attr_accessor :timestamp
2001
+ # Select one of three ways to pass the `amendment_end`.
2002
+ sig { returns(String) }
2003
+ attr_accessor :type
2004
+ sig {
2005
+ params(discount_end: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentEnd::DiscountEnd, duration: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentEnd::Duration, timestamp: Integer, type: String).void
2006
+ }
2007
+ def initialize(discount_end: nil, duration: nil, timestamp: nil, type: nil); end
2008
+ end
2009
+ class AmendmentStart < Stripe::RequestParams
2010
+ class AmendmentEnd < Stripe::RequestParams
2011
+ # 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.
2012
+ sig { returns(Integer) }
2013
+ attr_accessor :index
2014
+ sig { params(index: Integer).void }
2015
+ def initialize(index: nil); end
2016
+ end
2017
+ class DiscountEnd < Stripe::RequestParams
2018
+ # The ID of a specific discount.
2019
+ sig { returns(String) }
2020
+ attr_accessor :discount
2021
+ sig { params(discount: String).void }
2022
+ def initialize(discount: nil); end
2023
+ end
2024
+ # Details of another amendment in the same array, immediately after which this amendment should begin.
2025
+ sig {
2026
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentStart::AmendmentEnd)
2027
+ }
2028
+ attr_accessor :amendment_end
2029
+ # Use the `end` time of a given discount.
2030
+ sig {
2031
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentStart::DiscountEnd)
2032
+ }
2033
+ attr_accessor :discount_end
2034
+ # A precise Unix timestamp for the amendment to start.
2035
+ sig { returns(Integer) }
2036
+ attr_accessor :timestamp
2037
+ # Select one of three ways to pass the `amendment_start`.
2038
+ sig { returns(String) }
2039
+ attr_accessor :type
2040
+ sig {
2041
+ params(amendment_end: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentStart::AmendmentEnd, discount_end: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentStart::DiscountEnd, timestamp: Integer, type: String).void
2042
+ }
2043
+ def initialize(amendment_end: nil, discount_end: nil, timestamp: nil, type: nil); end
2044
+ end
2045
+ class DiscountAction < Stripe::RequestParams
2046
+ class Add < Stripe::RequestParams
2047
+ class DiscountEnd < Stripe::RequestParams
2048
+ # The type of calculation made to determine when the discount ends.
2049
+ sig { returns(String) }
2050
+ attr_accessor :type
2051
+ sig { params(type: String).void }
2052
+ def initialize(type: nil); end
2053
+ end
2054
+ # The coupon code to redeem.
2055
+ sig { returns(String) }
2056
+ attr_accessor :coupon
2057
+ # An ID of an existing discount for a coupon that was already redeemed.
2058
+ sig { returns(String) }
2059
+ attr_accessor :discount
2060
+ # Details to determine how long the discount should be applied for.
2061
+ sig {
2062
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction::Add::DiscountEnd)
2063
+ }
2064
+ attr_accessor :discount_end
2065
+ # 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.
2066
+ sig { returns(Integer) }
2067
+ attr_accessor :index
2068
+ # The promotion code to redeem.
2069
+ sig { returns(String) }
2070
+ attr_accessor :promotion_code
2071
+ sig {
2072
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction::Add::DiscountEnd, index: Integer, promotion_code: String).void
2073
+ }
2074
+ def initialize(
2075
+ coupon: nil,
2076
+ discount: nil,
2077
+ discount_end: nil,
2078
+ index: nil,
2079
+ promotion_code: nil
2080
+ ); end
2081
+ end
2082
+ class Remove < Stripe::RequestParams
2083
+ # The coupon code to remove from the `discounts` array.
2084
+ sig { returns(String) }
2085
+ attr_accessor :coupon
2086
+ # The ID of a discount to remove from the `discounts` array.
2087
+ sig { returns(String) }
2088
+ attr_accessor :discount
2089
+ # The ID of a promotion code to remove from the `discounts` array.
2090
+ sig { returns(String) }
2091
+ attr_accessor :promotion_code
2092
+ sig { params(coupon: String, discount: String, promotion_code: String).void }
2093
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
2094
+ end
2095
+ class Set < Stripe::RequestParams
2096
+ # The coupon code to replace the `discounts` array with.
2097
+ sig { returns(String) }
2098
+ attr_accessor :coupon
2099
+ # An ID of an existing discount to replace the `discounts` array with.
2100
+ sig { returns(String) }
2101
+ attr_accessor :discount
2102
+ # An ID of an existing promotion code to replace the `discounts` array with.
2103
+ sig { returns(String) }
2104
+ attr_accessor :promotion_code
2105
+ sig { params(coupon: String, discount: String, promotion_code: String).void }
2106
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
2107
+ end
2108
+ # Details of the discount to add.
2109
+ sig {
2110
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction::Add)
2111
+ }
2112
+ attr_accessor :add
2113
+ # Details of the discount to remove.
2114
+ sig {
2115
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction::Remove)
2116
+ }
2117
+ attr_accessor :remove
2118
+ # Details of the discount to replace the existing discounts with.
2119
+ sig {
2120
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction::Set)
2121
+ }
2122
+ attr_accessor :set
2123
+ # Determines the type of discount action.
2124
+ sig { returns(String) }
2125
+ attr_accessor :type
2126
+ sig {
2127
+ params(add: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction::Add, remove: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction::Remove, set: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction::Set, type: String).void
2128
+ }
2129
+ def initialize(add: nil, remove: nil, set: nil, type: nil); end
2130
+ end
2131
+ class ItemAction < Stripe::RequestParams
2132
+ class Add < Stripe::RequestParams
2133
+ class Discount < Stripe::RequestParams
2134
+ class DiscountEnd < Stripe::RequestParams
2135
+ class Duration < Stripe::RequestParams
2136
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2137
+ sig { returns(String) }
2138
+ attr_accessor :interval
2139
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2140
+ sig { returns(Integer) }
2141
+ attr_accessor :interval_count
2142
+ sig { params(interval: String, interval_count: Integer).void }
2143
+ def initialize(interval: nil, interval_count: nil); end
2144
+ end
2145
+ # Time span for the redeemed discount.
2146
+ sig {
2147
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add::Discount::DiscountEnd::Duration)
2148
+ }
2149
+ attr_accessor :duration
2150
+ # A precise Unix timestamp for the discount to end. Must be in the future.
2151
+ sig { returns(Integer) }
2152
+ attr_accessor :timestamp
2153
+ # The type of calculation made to determine when the discount ends.
2154
+ sig { returns(String) }
2155
+ attr_accessor :type
2156
+ sig {
2157
+ params(duration: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
2158
+ }
2159
+ def initialize(duration: nil, timestamp: nil, type: nil); end
2160
+ end
2161
+ # ID of the coupon to create a new discount for.
2162
+ sig { returns(String) }
2163
+ attr_accessor :coupon
2164
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
2165
+ sig { returns(String) }
2166
+ attr_accessor :discount
2167
+ # Details to determine how long the discount should be applied for.
2168
+ sig {
2169
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add::Discount::DiscountEnd)
2170
+ }
2171
+ attr_accessor :discount_end
2172
+ # ID of the promotion code to create a new discount for.
2173
+ sig { returns(String) }
2174
+ attr_accessor :promotion_code
2175
+ sig {
2176
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add::Discount::DiscountEnd, promotion_code: String).void
2177
+ }
2178
+ def initialize(
2179
+ coupon: nil,
2180
+ discount: nil,
2181
+ discount_end: nil,
2182
+ promotion_code: nil
2183
+ ); end
2184
+ end
2185
+ class Trial < Stripe::RequestParams
2186
+ # 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.
2187
+ sig { returns(T::Array[String]) }
2188
+ attr_accessor :converts_to
2189
+ # Determines the type of trial for this item.
2190
+ sig { returns(String) }
2191
+ attr_accessor :type
2192
+ sig { params(converts_to: T::Array[String], type: String).void }
2193
+ def initialize(converts_to: nil, type: nil); end
2194
+ end
2195
+ # The discounts applied to the item. Subscription item discounts are applied before subscription discounts.
2196
+ sig {
2197
+ returns(T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add::Discount])
2198
+ }
2199
+ attr_accessor :discounts
2200
+ # 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`.
2201
+ sig { returns(T::Hash[String, String]) }
2202
+ attr_accessor :metadata
2203
+ # The ID of the price object.
2204
+ sig { returns(String) }
2205
+ attr_accessor :price
2206
+ # Quantity for this item.
2207
+ sig { returns(Integer) }
2208
+ attr_accessor :quantity
2209
+ # 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`.
2210
+ sig { returns(T::Array[String]) }
2211
+ attr_accessor :tax_rates
2212
+ # Options that configure the trial on the subscription item.
2213
+ sig {
2214
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add::Trial)
2215
+ }
2216
+ attr_accessor :trial
2217
+ sig {
2218
+ params(discounts: T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add::Discount], metadata: T::Hash[String, String], price: String, quantity: Integer, tax_rates: T::Array[String], trial: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add::Trial).void
2219
+ }
2220
+ def initialize(
2221
+ discounts: nil,
2222
+ metadata: nil,
2223
+ price: nil,
2224
+ quantity: nil,
2225
+ tax_rates: nil,
2226
+ trial: nil
2227
+ ); end
2228
+ end
2229
+ class Remove < Stripe::RequestParams
2230
+ # ID of a price to remove.
2231
+ sig { returns(String) }
2232
+ attr_accessor :price
2233
+ sig { params(price: String).void }
2234
+ def initialize(price: nil); end
2235
+ end
2236
+ class Set < Stripe::RequestParams
2237
+ class Discount < Stripe::RequestParams
2238
+ class DiscountEnd < Stripe::RequestParams
2239
+ class Duration < Stripe::RequestParams
2240
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2241
+ sig { returns(String) }
2242
+ attr_accessor :interval
2243
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2244
+ sig { returns(Integer) }
2245
+ attr_accessor :interval_count
2246
+ sig { params(interval: String, interval_count: Integer).void }
2247
+ def initialize(interval: nil, interval_count: nil); end
2248
+ end
2249
+ # Time span for the redeemed discount.
2250
+ sig {
2251
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set::Discount::DiscountEnd::Duration)
2252
+ }
2253
+ attr_accessor :duration
2254
+ # A precise Unix timestamp for the discount to end. Must be in the future.
2255
+ sig { returns(Integer) }
2256
+ attr_accessor :timestamp
2257
+ # The type of calculation made to determine when the discount ends.
2258
+ sig { returns(String) }
2259
+ attr_accessor :type
2260
+ sig {
2261
+ params(duration: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
2262
+ }
2263
+ def initialize(duration: nil, timestamp: nil, type: nil); end
2264
+ end
2265
+ # ID of the coupon to create a new discount for.
2266
+ sig { returns(String) }
2267
+ attr_accessor :coupon
2268
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
2269
+ sig { returns(String) }
2270
+ attr_accessor :discount
2271
+ # Details to determine how long the discount should be applied for.
2272
+ sig {
2273
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set::Discount::DiscountEnd)
2274
+ }
2275
+ attr_accessor :discount_end
2276
+ # ID of the promotion code to create a new discount for.
2277
+ sig { returns(String) }
2278
+ attr_accessor :promotion_code
2279
+ sig {
2280
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set::Discount::DiscountEnd, promotion_code: String).void
2281
+ }
2282
+ def initialize(
2283
+ coupon: nil,
2284
+ discount: nil,
2285
+ discount_end: nil,
2286
+ promotion_code: nil
2287
+ ); end
2288
+ end
2289
+ class Trial < Stripe::RequestParams
2290
+ # 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.
2291
+ sig { returns(T::Array[String]) }
2292
+ attr_accessor :converts_to
2293
+ # Determines the type of trial for this item.
2294
+ sig { returns(String) }
2295
+ attr_accessor :type
2296
+ sig { params(converts_to: T::Array[String], type: String).void }
2297
+ def initialize(converts_to: nil, type: nil); end
2298
+ end
2299
+ # 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`.
2300
+ sig {
2301
+ returns(T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set::Discount])
2302
+ }
2303
+ attr_accessor :discounts
2304
+ # 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`.
2305
+ sig { returns(T::Hash[String, String]) }
2306
+ attr_accessor :metadata
2307
+ # The ID of the price object.
2308
+ sig { returns(String) }
2309
+ attr_accessor :price
2310
+ # 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`.
2311
+ sig { returns(Integer) }
2312
+ attr_accessor :quantity
2313
+ # 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`.
2314
+ sig { returns(T::Array[String]) }
2315
+ attr_accessor :tax_rates
2316
+ # 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`.
2317
+ sig {
2318
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set::Trial)
2319
+ }
2320
+ attr_accessor :trial
2321
+ sig {
2322
+ params(discounts: T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set::Discount], metadata: T::Hash[String, String], price: String, quantity: Integer, tax_rates: T::Array[String], trial: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set::Trial).void
2323
+ }
2324
+ def initialize(
2325
+ discounts: nil,
2326
+ metadata: nil,
2327
+ price: nil,
2328
+ quantity: nil,
2329
+ tax_rates: nil,
2330
+ trial: nil
2331
+ ); end
2332
+ end
2333
+ # 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.
2334
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add) }
2335
+ attr_accessor :add
2336
+ # Details of the subscription item to remove.
2337
+ sig {
2338
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Remove)
2339
+ }
2340
+ attr_accessor :remove
2341
+ # 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.
2342
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set) }
2343
+ attr_accessor :set
2344
+ # Determines the type of item action.
2345
+ sig { returns(String) }
2346
+ attr_accessor :type
2347
+ sig {
2348
+ params(add: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Add, remove: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Remove, set: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction::Set, type: String).void
2349
+ }
2350
+ def initialize(add: nil, remove: nil, set: nil, type: nil); end
2351
+ end
2352
+ class MetadataAction < Stripe::RequestParams
2353
+ # Key-value pairs to add to schedule phase metadata. These values will merge with existing schedule phase metadata.
2354
+ sig { returns(T::Hash[String, String]) }
2355
+ attr_accessor :add
2356
+ # Keys to remove from schedule phase metadata.
2357
+ sig { returns(T::Array[String]) }
2358
+ attr_accessor :remove
2359
+ # Key-value pairs to set as schedule phase metadata. Existing schedule phase metadata will be overwritten.
2360
+ sig { returns(T.nilable(T::Hash[String, String])) }
2361
+ attr_accessor :set
2362
+ # Select one of three ways to update phase-level `metadata` on subscription schedules.
2363
+ sig { returns(String) }
2364
+ attr_accessor :type
2365
+ sig {
2366
+ params(add: T::Hash[String, String], remove: T::Array[String], set: T.nilable(T::Hash[String, String]), type: String).void
2367
+ }
2368
+ def initialize(add: nil, remove: nil, set: nil, type: nil); end
2369
+ end
2370
+ class SetPauseCollection < Stripe::RequestParams
2371
+ class Set < Stripe::RequestParams
2372
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
2373
+ sig { returns(String) }
2374
+ attr_accessor :behavior
2375
+ sig { params(behavior: String).void }
2376
+ def initialize(behavior: nil); end
2377
+ end
2378
+ # Details of the pause_collection behavior to apply to the amendment.
2379
+ sig {
2380
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::SetPauseCollection::Set)
2381
+ }
2382
+ attr_accessor :set
2383
+ # Determines the type of the pause_collection amendment.
2384
+ sig { returns(String) }
2385
+ attr_accessor :type
2386
+ sig {
2387
+ params(set: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::SetPauseCollection::Set, type: String).void
2388
+ }
2389
+ def initialize(set: nil, type: nil); end
2390
+ end
2391
+ class TrialSettings < Stripe::RequestParams
2392
+ class EndBehavior < Stripe::RequestParams
2393
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
2394
+ sig { returns(String) }
2395
+ attr_accessor :prorate_up_front
2396
+ sig { params(prorate_up_front: String).void }
2397
+ def initialize(prorate_up_front: nil); end
2398
+ end
2399
+ # Defines how the subscription should behave when a trial ends.
2400
+ sig {
2401
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::TrialSettings::EndBehavior)
2402
+ }
2403
+ attr_accessor :end_behavior
2404
+ sig {
2405
+ params(end_behavior: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::TrialSettings::EndBehavior).void
2406
+ }
2407
+ def initialize(end_behavior: nil); end
2408
+ end
2409
+ # 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.
2410
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentEnd) }
2411
+ attr_accessor :amendment_end
2412
+ # Details to identify the earliest timestamp where the proposed change should take effect.
2413
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentStart) }
2414
+ attr_accessor :amendment_start
2415
+ # 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.
2416
+ sig { returns(String) }
2417
+ attr_accessor :billing_cycle_anchor
2418
+ # Changes to the coupons being redeemed or discounts being applied during the amendment time span.
2419
+ sig {
2420
+ returns(T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction])
2421
+ }
2422
+ attr_accessor :discount_actions
2423
+ # Changes to the subscription items during the amendment time span.
2424
+ sig {
2425
+ returns(T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction])
2426
+ }
2427
+ attr_accessor :item_actions
2428
+ # Instructions for how to modify phase metadata
2429
+ sig {
2430
+ returns(T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::MetadataAction])
2431
+ }
2432
+ attr_accessor :metadata_actions
2433
+ # 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`.
2434
+ sig { returns(String) }
2435
+ attr_accessor :proration_behavior
2436
+ # Defines how to pause collection for the underlying subscription throughout the duration of the amendment.
2437
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::SetPauseCollection) }
2438
+ attr_accessor :set_pause_collection
2439
+ # Ends the subscription schedule early as dictated by either the accompanying amendment's start or end.
2440
+ sig { returns(String) }
2441
+ attr_accessor :set_schedule_end
2442
+ # Settings related to subscription trials.
2443
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::Amendment::TrialSettings) }
2444
+ attr_accessor :trial_settings
2445
+ sig {
2446
+ params(amendment_end: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentEnd, amendment_start: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::AmendmentStart, billing_cycle_anchor: String, discount_actions: T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::DiscountAction], item_actions: T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::ItemAction], metadata_actions: T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment::MetadataAction], proration_behavior: String, set_pause_collection: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::SetPauseCollection, set_schedule_end: String, trial_settings: ::Stripe::SubscriptionSchedule::AmendParams::Amendment::TrialSettings).void
2447
+ }
2448
+ def initialize(
2449
+ amendment_end: nil,
2450
+ amendment_start: nil,
2451
+ billing_cycle_anchor: nil,
2452
+ discount_actions: nil,
2453
+ item_actions: nil,
2454
+ metadata_actions: nil,
2455
+ proration_behavior: nil,
2456
+ set_pause_collection: nil,
2457
+ set_schedule_end: nil,
2458
+ trial_settings: nil
2459
+ ); end
2460
+ end
2461
+ class Prebilling < Stripe::RequestParams
2462
+ class BillFrom < Stripe::RequestParams
2463
+ class AmendmentStart < Stripe::RequestParams
2464
+ # 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.
2465
+ sig { returns(Integer) }
2466
+ attr_accessor :index
2467
+ sig { params(index: Integer).void }
2468
+ def initialize(index: nil); end
2469
+ end
2470
+ # Start the prebilled period when a specified amendment begins.
2471
+ sig {
2472
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillFrom::AmendmentStart)
2473
+ }
2474
+ attr_accessor :amendment_start
2475
+ # Start the prebilled period at a precise integer timestamp, starting from the Unix epoch.
2476
+ sig { returns(Integer) }
2477
+ attr_accessor :timestamp
2478
+ # Select one of several ways to pass the `bill_from` value.
2479
+ sig { returns(String) }
2480
+ attr_accessor :type
2481
+ sig {
2482
+ params(amendment_start: ::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillFrom::AmendmentStart, timestamp: Integer, type: String).void
2483
+ }
2484
+ def initialize(amendment_start: nil, timestamp: nil, type: nil); end
2485
+ end
2486
+ class BillUntil < Stripe::RequestParams
2487
+ class AmendmentEnd < Stripe::RequestParams
2488
+ # 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.
2489
+ sig { returns(Integer) }
2490
+ attr_accessor :index
2491
+ sig { params(index: Integer).void }
2492
+ def initialize(index: nil); end
2493
+ end
2494
+ class Duration < Stripe::RequestParams
2495
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2496
+ sig { returns(String) }
2497
+ attr_accessor :interval
2498
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2499
+ sig { returns(Integer) }
2500
+ attr_accessor :interval_count
2501
+ sig { params(interval: String, interval_count: Integer).void }
2502
+ def initialize(interval: nil, interval_count: nil); end
2503
+ end
2504
+ # End the prebilled period when a specified amendment ends.
2505
+ sig {
2506
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillUntil::AmendmentEnd)
2507
+ }
2508
+ attr_accessor :amendment_end
2509
+ # Time span for prebilling, starting from `bill_from`.
2510
+ sig {
2511
+ returns(::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillUntil::Duration)
2512
+ }
2513
+ attr_accessor :duration
2514
+ # End the prebilled period at a precise integer timestamp, starting from the Unix epoch.
2515
+ sig { returns(Integer) }
2516
+ attr_accessor :timestamp
2517
+ # Select one of several ways to pass the `bill_until` value.
2518
+ sig { returns(String) }
2519
+ attr_accessor :type
2520
+ sig {
2521
+ params(amendment_end: ::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillUntil::AmendmentEnd, duration: ::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillUntil::Duration, timestamp: Integer, type: String).void
2522
+ }
2523
+ def initialize(amendment_end: nil, duration: nil, timestamp: nil, type: nil); end
2524
+ end
2525
+ # The beginning of the prebilled time period. The default value is `now`.
2526
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillFrom) }
2527
+ attr_accessor :bill_from
2528
+ # The end of the prebilled time period.
2529
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillUntil) }
2530
+ attr_accessor :bill_until
2531
+ # When the prebilling invoice should be created. The default value is `now`.
2532
+ sig { returns(String) }
2533
+ attr_accessor :invoice_at
2534
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
2535
+ sig { returns(String) }
2536
+ attr_accessor :update_behavior
2537
+ sig {
2538
+ params(bill_from: ::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillFrom, bill_until: ::Stripe::SubscriptionSchedule::AmendParams::Prebilling::BillUntil, invoice_at: String, update_behavior: String).void
2539
+ }
2540
+ def initialize(bill_from: nil, bill_until: nil, invoice_at: nil, update_behavior: nil); end
2541
+ end
2542
+ class ScheduleSettings < Stripe::RequestParams
2543
+ # Behavior of the subscription schedule and underlying subscription when it ends.
2544
+ sig { returns(String) }
2545
+ attr_accessor :end_behavior
2546
+ sig { params(end_behavior: String).void }
2547
+ def initialize(end_behavior: nil); end
2548
+ end
2549
+ # Changes to apply to the phases of the subscription schedule, in the order provided.
2550
+ sig { returns(T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment]) }
2551
+ attr_accessor :amendments
2552
+ # Specifies which fields in the response should be expanded.
2553
+ sig { returns(T::Array[String]) }
2554
+ attr_accessor :expand
2555
+ # Provide any time periods to bill in advance.
2556
+ sig { returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::AmendParams::Prebilling])) }
2557
+ attr_accessor :prebilling
2558
+ # In cases where the amendment changes the currently active phase,
2559
+ # specifies if and how to prorate at the time of the request.
2560
+ sig { returns(String) }
2561
+ attr_accessor :proration_behavior
2562
+ # Changes to apply to the subscription schedule.
2563
+ sig { returns(::Stripe::SubscriptionSchedule::AmendParams::ScheduleSettings) }
2564
+ attr_accessor :schedule_settings
2565
+ sig {
2566
+ params(amendments: T::Array[::Stripe::SubscriptionSchedule::AmendParams::Amendment], expand: T::Array[String], prebilling: T.nilable(T::Array[::Stripe::SubscriptionSchedule::AmendParams::Prebilling]), proration_behavior: String, schedule_settings: ::Stripe::SubscriptionSchedule::AmendParams::ScheduleSettings).void
2567
+ }
2568
+ def initialize(
2569
+ amendments: nil,
2570
+ expand: nil,
2571
+ prebilling: nil,
2572
+ proration_behavior: nil,
2573
+ schedule_settings: nil
2574
+ ); end
2575
+ end
2576
+ class CancelParams < Stripe::RequestParams
2577
+ # Specifies which fields in the response should be expanded.
2578
+ sig { returns(T::Array[String]) }
2579
+ attr_accessor :expand
2580
+ # If the subscription schedule is `active`, indicates if a final invoice will be generated that contains any un-invoiced metered usage and new/pending proration invoice items. Defaults to `true`.
2581
+ sig { returns(T::Boolean) }
2582
+ attr_accessor :invoice_now
2583
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true`.
2584
+ sig { returns(T::Boolean) }
2585
+ attr_accessor :prorate
2586
+ sig { params(expand: T::Array[String], invoice_now: T::Boolean, prorate: T::Boolean).void }
2587
+ def initialize(expand: nil, invoice_now: nil, prorate: nil); end
2588
+ end
2589
+ class ReleaseParams < Stripe::RequestParams
2590
+ # Specifies which fields in the response should be expanded.
2591
+ sig { returns(T::Array[String]) }
2592
+ attr_accessor :expand
2593
+ # Keep any cancellation on the subscription that the schedule has set
2594
+ sig { returns(T::Boolean) }
2595
+ attr_accessor :preserve_cancel_date
2596
+ sig { params(expand: T::Array[String], preserve_cancel_date: T::Boolean).void }
2597
+ def initialize(expand: nil, preserve_cancel_date: nil); end
2598
+ end
2599
+ # Amends an existing subscription schedule.
2600
+ sig {
2601
+ params(params: T.any(::Stripe::SubscriptionSchedule::AmendParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2602
+ }
2603
+ def amend(params = {}, opts = {}); end
2604
+
2605
+ # Amends an existing subscription schedule.
2606
+ sig {
2607
+ params(schedule: String, params: T.any(::Stripe::SubscriptionSchedule::AmendParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2608
+ }
2609
+ def self.amend(schedule, params = {}, opts = {}); end
2610
+
2611
+ # 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.
2612
+ sig {
2613
+ params(params: T.any(::Stripe::SubscriptionSchedule::CancelParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2614
+ }
2615
+ def cancel(params = {}, opts = {}); end
2616
+
2617
+ # 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.
2618
+ sig {
2619
+ params(schedule: String, params: T.any(::Stripe::SubscriptionSchedule::CancelParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2620
+ }
2621
+ def self.cancel(schedule, params = {}, opts = {}); end
2622
+
2623
+ # Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.
2624
+ sig {
2625
+ params(params: T.any(::Stripe::SubscriptionSchedule::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2626
+ }
2627
+ def self.create(params = {}, opts = {}); end
2628
+
2629
+ # Retrieves the list of your subscription schedules.
2630
+ sig {
2631
+ params(params: T.any(::Stripe::SubscriptionSchedule::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject)
2632
+ }
2633
+ def self.list(params = {}, opts = {}); end
2634
+
2635
+ # Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.
2636
+ sig {
2637
+ params(params: T.any(::Stripe::SubscriptionSchedule::ReleaseParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2638
+ }
2639
+ def release(params = {}, opts = {}); end
2640
+
2641
+ # Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.
2642
+ sig {
2643
+ params(schedule: String, params: T.any(::Stripe::SubscriptionSchedule::ReleaseParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2644
+ }
2645
+ def self.release(schedule, params = {}, opts = {}); end
2646
+
2647
+ # Updates an existing subscription schedule.
2648
+ sig {
2649
+ params(id: String, params: T.any(::Stripe::SubscriptionSchedule::UpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2650
+ }
2651
+ def self.update(id, params = {}, opts = {}); end
2652
+ end
2653
+ end