mega-pure-kit 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1044) hide show
  1. checksums.yaml +7 -0
  2. data/mega-pure-kit.gemspec +12 -0
  3. data/stripe-19.3.0/exe/stripe-console +16 -0
  4. data/stripe-19.3.0/lib/data/ca-certificates.crt +3511 -0
  5. data/stripe-19.3.0/lib/stripe/api_operations/create.rb +16 -0
  6. data/stripe-19.3.0/lib/stripe/api_operations/delete.rb +44 -0
  7. data/stripe-19.3.0/lib/stripe/api_operations/list.rb +16 -0
  8. data/stripe-19.3.0/lib/stripe/api_operations/nested_resource.rb +101 -0
  9. data/stripe-19.3.0/lib/stripe/api_operations/request.rb +94 -0
  10. data/stripe-19.3.0/lib/stripe/api_operations/save.rb +107 -0
  11. data/stripe-19.3.0/lib/stripe/api_operations/search.rb +21 -0
  12. data/stripe-19.3.0/lib/stripe/api_operations/singleton_save.rb +90 -0
  13. data/stripe-19.3.0/lib/stripe/api_requestor.rb +1168 -0
  14. data/stripe-19.3.0/lib/stripe/api_resource.rb +145 -0
  15. data/stripe-19.3.0/lib/stripe/api_resource_test_helpers.rb +53 -0
  16. data/stripe-19.3.0/lib/stripe/api_version.rb +9 -0
  17. data/stripe-19.3.0/lib/stripe/connection_manager.rb +196 -0
  18. data/stripe-19.3.0/lib/stripe/error_object.rb +93 -0
  19. data/stripe-19.3.0/lib/stripe/errors.rb +171 -0
  20. data/stripe-19.3.0/lib/stripe/event_types.rb +106 -0
  21. data/stripe-19.3.0/lib/stripe/events/unknown_event_notification.rb +19 -0
  22. data/stripe-19.3.0/lib/stripe/events/v1_billing_meter_error_report_triggered_event.rb +123 -0
  23. data/stripe-19.3.0/lib/stripe/events/v1_billing_meter_no_meter_found_event.rb +100 -0
  24. data/stripe-19.3.0/lib/stripe/events/v2_commerce_product_catalog_imports_failed_event.rb +44 -0
  25. data/stripe-19.3.0/lib/stripe/events/v2_commerce_product_catalog_imports_processing_event.rb +44 -0
  26. data/stripe-19.3.0/lib/stripe/events/v2_commerce_product_catalog_imports_succeeded_event.rb +44 -0
  27. data/stripe-19.3.0/lib/stripe/events/v2_commerce_product_catalog_imports_succeeded_with_errors_event.rb +44 -0
  28. data/stripe-19.3.0/lib/stripe/events/v2_core_account_closed_event.rb +44 -0
  29. data/stripe-19.3.0/lib/stripe/events/v2_core_account_created_event.rb +44 -0
  30. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_configuration_customer_capability_status_updated_event.rb +63 -0
  31. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_configuration_customer_updated_event.rb +44 -0
  32. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_configuration_merchant_capability_status_updated_event.rb +63 -0
  33. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_configuration_merchant_updated_event.rb +44 -0
  34. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_configuration_recipient_capability_status_updated_event.rb +63 -0
  35. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_configuration_recipient_updated_event.rb +44 -0
  36. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_defaults_updated_event.rb +44 -0
  37. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_future_requirements_updated_event.rb +44 -0
  38. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_identity_updated_event.rb +44 -0
  39. data/stripe-19.3.0/lib/stripe/events/v2_core_account_including_requirements_updated_event.rb +44 -0
  40. data/stripe-19.3.0/lib/stripe/events/v2_core_account_link_returned_event.rb +42 -0
  41. data/stripe-19.3.0/lib/stripe/events/v2_core_account_person_created_event.rb +61 -0
  42. data/stripe-19.3.0/lib/stripe/events/v2_core_account_person_deleted_event.rb +61 -0
  43. data/stripe-19.3.0/lib/stripe/events/v2_core_account_person_updated_event.rb +61 -0
  44. data/stripe-19.3.0/lib/stripe/events/v2_core_account_updated_event.rb +44 -0
  45. data/stripe-19.3.0/lib/stripe/events/v2_core_event_destination_ping_event.rb +44 -0
  46. data/stripe-19.3.0/lib/stripe/instrumentation.rb +106 -0
  47. data/stripe-19.3.0/lib/stripe/list_object.rb +141 -0
  48. data/stripe-19.3.0/lib/stripe/multipart_encoder.rb +131 -0
  49. data/stripe-19.3.0/lib/stripe/oauth.rb +58 -0
  50. data/stripe-19.3.0/lib/stripe/object_types.rb +189 -0
  51. data/stripe-19.3.0/lib/stripe/params/account_capability_list_params.rb +13 -0
  52. data/stripe-19.3.0/lib/stripe/params/account_capability_retrieve_params.rb +13 -0
  53. data/stripe-19.3.0/lib/stripe/params/account_capability_update_params.rb +18 -0
  54. data/stripe-19.3.0/lib/stripe/params/account_create_params.rb +2202 -0
  55. data/stripe-19.3.0/lib/stripe/params/account_delete_params.rb +6 -0
  56. data/stripe-19.3.0/lib/stripe/params/account_external_account_create_params.rb +134 -0
  57. data/stripe-19.3.0/lib/stripe/params/account_external_account_delete_params.rb +6 -0
  58. data/stripe-19.3.0/lib/stripe/params/account_external_account_list_params.rb +25 -0
  59. data/stripe-19.3.0/lib/stripe/params/account_external_account_retrieve_params.rb +13 -0
  60. data/stripe-19.3.0/lib/stripe/params/account_external_account_update_params.rb +91 -0
  61. data/stripe-19.3.0/lib/stripe/params/account_link_create_params.rb +52 -0
  62. data/stripe-19.3.0/lib/stripe/params/account_list_params.rb +42 -0
  63. data/stripe-19.3.0/lib/stripe/params/account_login_link_create_params.rb +13 -0
  64. data/stripe-19.3.0/lib/stripe/params/account_person_create_params.rb +435 -0
  65. data/stripe-19.3.0/lib/stripe/params/account_person_delete_params.rb +6 -0
  66. data/stripe-19.3.0/lib/stripe/params/account_person_list_params.rb +61 -0
  67. data/stripe-19.3.0/lib/stripe/params/account_person_retrieve_params.rb +13 -0
  68. data/stripe-19.3.0/lib/stripe/params/account_person_update_params.rb +435 -0
  69. data/stripe-19.3.0/lib/stripe/params/account_persons_params.rb +61 -0
  70. data/stripe-19.3.0/lib/stripe/params/account_reject_params.rb +16 -0
  71. data/stripe-19.3.0/lib/stripe/params/account_retrieve_current_params.rb +13 -0
  72. data/stripe-19.3.0/lib/stripe/params/account_retrieve_params.rb +13 -0
  73. data/stripe-19.3.0/lib/stripe/params/account_session_create_params.rb +632 -0
  74. data/stripe-19.3.0/lib/stripe/params/account_update_params.rb +2149 -0
  75. data/stripe-19.3.0/lib/stripe/params/apple_pay_domain_create_params.rb +16 -0
  76. data/stripe-19.3.0/lib/stripe/params/apple_pay_domain_delete_params.rb +6 -0
  77. data/stripe-19.3.0/lib/stripe/params/apple_pay_domain_list_params.rb +31 -0
  78. data/stripe-19.3.0/lib/stripe/params/apple_pay_domain_retrieve_params.rb +13 -0
  79. data/stripe-19.3.0/lib/stripe/params/application_fee_list_params.rb +52 -0
  80. data/stripe-19.3.0/lib/stripe/params/application_fee_refund_create_params.rb +19 -0
  81. data/stripe-19.3.0/lib/stripe/params/application_fee_refund_list_params.rb +22 -0
  82. data/stripe-19.3.0/lib/stripe/params/application_fee_refund_retrieve_params.rb +13 -0
  83. data/stripe-19.3.0/lib/stripe/params/application_fee_refund_update_params.rb +16 -0
  84. data/stripe-19.3.0/lib/stripe/params/application_fee_retrieve_params.rb +13 -0
  85. data/stripe-19.3.0/lib/stripe/params/apps/secret_create_params.rb +38 -0
  86. data/stripe-19.3.0/lib/stripe/params/apps/secret_delete_where_params.rb +32 -0
  87. data/stripe-19.3.0/lib/stripe/params/apps/secret_find_params.rb +32 -0
  88. data/stripe-19.3.0/lib/stripe/params/apps/secret_list_params.rb +38 -0
  89. data/stripe-19.3.0/lib/stripe/params/balance_retrieve_params.rb +13 -0
  90. data/stripe-19.3.0/lib/stripe/params/balance_settings_retrieve_params.rb +13 -0
  91. data/stripe-19.3.0/lib/stripe/params/balance_settings_update_params.rb +107 -0
  92. data/stripe-19.3.0/lib/stripe/params/balance_transaction_list_params.rb +64 -0
  93. data/stripe-19.3.0/lib/stripe/params/balance_transaction_retrieve_params.rb +13 -0
  94. data/stripe-19.3.0/lib/stripe/params/billing/alert_activate_params.rb +15 -0
  95. data/stripe-19.3.0/lib/stripe/params/billing/alert_archive_params.rb +15 -0
  96. data/stripe-19.3.0/lib/stripe/params/billing/alert_create_params.rb +52 -0
  97. data/stripe-19.3.0/lib/stripe/params/billing/alert_deactivate_params.rb +15 -0
  98. data/stripe-19.3.0/lib/stripe/params/billing/alert_list_params.rb +37 -0
  99. data/stripe-19.3.0/lib/stripe/params/billing/alert_retrieve_params.rb +15 -0
  100. data/stripe-19.3.0/lib/stripe/params/billing/credit_balance_summary_retrieve_params.rb +57 -0
  101. data/stripe-19.3.0/lib/stripe/params/billing/credit_balance_transaction_list_params.rb +41 -0
  102. data/stripe-19.3.0/lib/stripe/params/billing/credit_balance_transaction_retrieve_params.rb +15 -0
  103. data/stripe-19.3.0/lib/stripe/params/billing/credit_grant_create_params.rb +107 -0
  104. data/stripe-19.3.0/lib/stripe/params/billing/credit_grant_expire_params.rb +15 -0
  105. data/stripe-19.3.0/lib/stripe/params/billing/credit_grant_list_params.rb +37 -0
  106. data/stripe-19.3.0/lib/stripe/params/billing/credit_grant_retrieve_params.rb +15 -0
  107. data/stripe-19.3.0/lib/stripe/params/billing/credit_grant_update_params.rb +21 -0
  108. data/stripe-19.3.0/lib/stripe/params/billing/credit_grant_void_grant_params.rb +15 -0
  109. data/stripe-19.3.0/lib/stripe/params/billing/meter_create_params.rb +70 -0
  110. data/stripe-19.3.0/lib/stripe/params/billing/meter_deactivate_params.rb +15 -0
  111. data/stripe-19.3.0/lib/stripe/params/billing/meter_event_adjustment_create_params.rb +32 -0
  112. data/stripe-19.3.0/lib/stripe/params/billing/meter_event_create_params.rb +27 -0
  113. data/stripe-19.3.0/lib/stripe/params/billing/meter_event_summary_list_params.rb +45 -0
  114. data/stripe-19.3.0/lib/stripe/params/billing/meter_list_params.rb +27 -0
  115. data/stripe-19.3.0/lib/stripe/params/billing/meter_reactivate_params.rb +15 -0
  116. data/stripe-19.3.0/lib/stripe/params/billing/meter_retrieve_params.rb +15 -0
  117. data/stripe-19.3.0/lib/stripe/params/billing/meter_update_params.rb +18 -0
  118. data/stripe-19.3.0/lib/stripe/params/billing_portal/configuration_create_params.rb +232 -0
  119. data/stripe-19.3.0/lib/stripe/params/billing_portal/configuration_list_params.rb +37 -0
  120. data/stripe-19.3.0/lib/stripe/params/billing_portal/configuration_retrieve_params.rb +15 -0
  121. data/stripe-19.3.0/lib/stripe/params/billing_portal/configuration_update_params.rb +238 -0
  122. data/stripe-19.3.0/lib/stripe/params/billing_portal/session_create_params.rb +183 -0
  123. data/stripe-19.3.0/lib/stripe/params/charge_capture_params.rb +57 -0
  124. data/stripe-19.3.0/lib/stripe/params/charge_create_params.rb +175 -0
  125. data/stripe-19.3.0/lib/stripe/params/charge_list_params.rb +60 -0
  126. data/stripe-19.3.0/lib/stripe/params/charge_retrieve_params.rb +13 -0
  127. data/stripe-19.3.0/lib/stripe/params/charge_search_params.rb +22 -0
  128. data/stripe-19.3.0/lib/stripe/params/charge_update_params.rb +102 -0
  129. data/stripe-19.3.0/lib/stripe/params/checkout/session_create_params.rb +2740 -0
  130. data/stripe-19.3.0/lib/stripe/params/checkout/session_expire_params.rb +15 -0
  131. data/stripe-19.3.0/lib/stripe/params/checkout/session_line_item_list_params.rb +24 -0
  132. data/stripe-19.3.0/lib/stripe/params/checkout/session_list_line_items_params.rb +24 -0
  133. data/stripe-19.3.0/lib/stripe/params/checkout/session_list_params.rb +87 -0
  134. data/stripe-19.3.0/lib/stripe/params/checkout/session_retrieve_params.rb +15 -0
  135. data/stripe-19.3.0/lib/stripe/params/checkout/session_update_params.rb +348 -0
  136. data/stripe-19.3.0/lib/stripe/params/climate/order_cancel_params.rb +15 -0
  137. data/stripe-19.3.0/lib/stripe/params/climate/order_create_params.rb +53 -0
  138. data/stripe-19.3.0/lib/stripe/params/climate/order_list_params.rb +24 -0
  139. data/stripe-19.3.0/lib/stripe/params/climate/order_retrieve_params.rb +15 -0
  140. data/stripe-19.3.0/lib/stripe/params/climate/order_update_params.rb +29 -0
  141. data/stripe-19.3.0/lib/stripe/params/climate/product_list_params.rb +24 -0
  142. data/stripe-19.3.0/lib/stripe/params/climate/product_retrieve_params.rb +15 -0
  143. data/stripe-19.3.0/lib/stripe/params/climate/supplier_list_params.rb +24 -0
  144. data/stripe-19.3.0/lib/stripe/params/climate/supplier_retrieve_params.rb +15 -0
  145. data/stripe-19.3.0/lib/stripe/params/confirmation_token_create_params.rb +715 -0
  146. data/stripe-19.3.0/lib/stripe/params/confirmation_token_retrieve_params.rb +13 -0
  147. data/stripe-19.3.0/lib/stripe/params/country_spec_list_params.rb +22 -0
  148. data/stripe-19.3.0/lib/stripe/params/country_spec_retrieve_params.rb +13 -0
  149. data/stripe-19.3.0/lib/stripe/params/coupon_create_params.rb +80 -0
  150. data/stripe-19.3.0/lib/stripe/params/coupon_delete_params.rb +6 -0
  151. data/stripe-19.3.0/lib/stripe/params/coupon_list_params.rb +42 -0
  152. data/stripe-19.3.0/lib/stripe/params/coupon_retrieve_params.rb +13 -0
  153. data/stripe-19.3.0/lib/stripe/params/coupon_update_params.rb +30 -0
  154. data/stripe-19.3.0/lib/stripe/params/credit_note_create_params.rb +178 -0
  155. data/stripe-19.3.0/lib/stripe/params/credit_note_line_item_list_params.rb +22 -0
  156. data/stripe-19.3.0/lib/stripe/params/credit_note_list_params.rb +60 -0
  157. data/stripe-19.3.0/lib/stripe/params/credit_note_list_preview_line_items_params.rb +190 -0
  158. data/stripe-19.3.0/lib/stripe/params/credit_note_preview_lines_list_params.rb +190 -0
  159. data/stripe-19.3.0/lib/stripe/params/credit_note_preview_params.rb +178 -0
  160. data/stripe-19.3.0/lib/stripe/params/credit_note_retrieve_params.rb +13 -0
  161. data/stripe-19.3.0/lib/stripe/params/credit_note_update_params.rb +19 -0
  162. data/stripe-19.3.0/lib/stripe/params/credit_note_void_credit_note_params.rb +13 -0
  163. data/stripe-19.3.0/lib/stripe/params/customer_balance_transaction_create_params.rb +25 -0
  164. data/stripe-19.3.0/lib/stripe/params/customer_balance_transaction_list_params.rb +52 -0
  165. data/stripe-19.3.0/lib/stripe/params/customer_balance_transaction_retrieve_params.rb +13 -0
  166. data/stripe-19.3.0/lib/stripe/params/customer_balance_transaction_update_params.rb +19 -0
  167. data/stripe-19.3.0/lib/stripe/params/customer_cash_balance_retrieve_params.rb +13 -0
  168. data/stripe-19.3.0/lib/stripe/params/customer_cash_balance_transaction_list_params.rb +22 -0
  169. data/stripe-19.3.0/lib/stripe/params/customer_cash_balance_transaction_retrieve_params.rb +13 -0
  170. data/stripe-19.3.0/lib/stripe/params/customer_cash_balance_update_params.rb +24 -0
  171. data/stripe-19.3.0/lib/stripe/params/customer_create_funding_instructions_params.rb +46 -0
  172. data/stripe-19.3.0/lib/stripe/params/customer_create_params.rb +259 -0
  173. data/stripe-19.3.0/lib/stripe/params/customer_delete_discount_params.rb +6 -0
  174. data/stripe-19.3.0/lib/stripe/params/customer_delete_params.rb +6 -0
  175. data/stripe-19.3.0/lib/stripe/params/customer_fund_cash_balance_params.rb +22 -0
  176. data/stripe-19.3.0/lib/stripe/params/customer_funding_instructions_create_params.rb +46 -0
  177. data/stripe-19.3.0/lib/stripe/params/customer_list_params.rb +56 -0
  178. data/stripe-19.3.0/lib/stripe/params/customer_list_payment_methods_params.rb +35 -0
  179. data/stripe-19.3.0/lib/stripe/params/customer_payment_method_list_params.rb +35 -0
  180. data/stripe-19.3.0/lib/stripe/params/customer_payment_method_retrieve_params.rb +13 -0
  181. data/stripe-19.3.0/lib/stripe/params/customer_payment_source_create_params.rb +22 -0
  182. data/stripe-19.3.0/lib/stripe/params/customer_payment_source_delete_params.rb +13 -0
  183. data/stripe-19.3.0/lib/stripe/params/customer_payment_source_list_params.rb +25 -0
  184. data/stripe-19.3.0/lib/stripe/params/customer_payment_source_retrieve_params.rb +13 -0
  185. data/stripe-19.3.0/lib/stripe/params/customer_payment_source_update_params.rb +114 -0
  186. data/stripe-19.3.0/lib/stripe/params/customer_payment_source_verify_params.rb +16 -0
  187. data/stripe-19.3.0/lib/stripe/params/customer_retrieve_params.rb +13 -0
  188. data/stripe-19.3.0/lib/stripe/params/customer_retrieve_payment_method_params.rb +13 -0
  189. data/stripe-19.3.0/lib/stripe/params/customer_search_params.rb +22 -0
  190. data/stripe-19.3.0/lib/stripe/params/customer_session_create_params.rb +188 -0
  191. data/stripe-19.3.0/lib/stripe/params/customer_tax_id_create_params.rb +19 -0
  192. data/stripe-19.3.0/lib/stripe/params/customer_tax_id_delete_params.rb +6 -0
  193. data/stripe-19.3.0/lib/stripe/params/customer_tax_id_list_params.rb +22 -0
  194. data/stripe-19.3.0/lib/stripe/params/customer_tax_id_retrieve_params.rb +13 -0
  195. data/stripe-19.3.0/lib/stripe/params/customer_update_params.rb +243 -0
  196. data/stripe-19.3.0/lib/stripe/params/dispute_close_params.rb +13 -0
  197. data/stripe-19.3.0/lib/stripe/params/dispute_list_params.rb +56 -0
  198. data/stripe-19.3.0/lib/stripe/params/dispute_retrieve_params.rb +13 -0
  199. data/stripe-19.3.0/lib/stripe/params/dispute_update_params.rb +324 -0
  200. data/stripe-19.3.0/lib/stripe/params/entitlements/active_entitlement_list_params.rb +33 -0
  201. data/stripe-19.3.0/lib/stripe/params/entitlements/active_entitlement_retrieve_params.rb +15 -0
  202. data/stripe-19.3.0/lib/stripe/params/entitlements/feature_create_params.rb +24 -0
  203. data/stripe-19.3.0/lib/stripe/params/entitlements/feature_list_params.rb +37 -0
  204. data/stripe-19.3.0/lib/stripe/params/entitlements/feature_retrieve_params.rb +15 -0
  205. data/stripe-19.3.0/lib/stripe/params/entitlements/feature_update_params.rb +24 -0
  206. data/stripe-19.3.0/lib/stripe/params/ephemeral_key_create_params.rb +31 -0
  207. data/stripe-19.3.0/lib/stripe/params/ephemeral_key_delete_params.rb +13 -0
  208. data/stripe-19.3.0/lib/stripe/params/event_list_params.rb +60 -0
  209. data/stripe-19.3.0/lib/stripe/params/event_retrieve_params.rb +13 -0
  210. data/stripe-19.3.0/lib/stripe/params/exchange_rate_list_params.rb +22 -0
  211. data/stripe-19.3.0/lib/stripe/params/exchange_rate_retrieve_params.rb +13 -0
  212. data/stripe-19.3.0/lib/stripe/params/file_create_params.rb +36 -0
  213. data/stripe-19.3.0/lib/stripe/params/file_link_create_params.rb +22 -0
  214. data/stripe-19.3.0/lib/stripe/params/file_link_list_params.rb +56 -0
  215. data/stripe-19.3.0/lib/stripe/params/file_link_retrieve_params.rb +13 -0
  216. data/stripe-19.3.0/lib/stripe/params/file_link_update_params.rb +19 -0
  217. data/stripe-19.3.0/lib/stripe/params/file_list_params.rb +52 -0
  218. data/stripe-19.3.0/lib/stripe/params/file_retrieve_params.rb +13 -0
  219. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_disconnect_params.rb +15 -0
  220. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_list_owners_params.rb +33 -0
  221. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_list_params.rb +51 -0
  222. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_owner_list_params.rb +33 -0
  223. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_refresh_account_params.rb +18 -0
  224. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_refresh_params.rb +18 -0
  225. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_retrieve_params.rb +15 -0
  226. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_subscribe_params.rb +18 -0
  227. data/stripe-19.3.0/lib/stripe/params/financial_connections/account_unsubscribe_params.rb +18 -0
  228. data/stripe-19.3.0/lib/stripe/params/financial_connections/session_create_params.rb +68 -0
  229. data/stripe-19.3.0/lib/stripe/params/financial_connections/session_retrieve_params.rb +15 -0
  230. data/stripe-19.3.0/lib/stripe/params/financial_connections/transaction_list_params.rb +67 -0
  231. data/stripe-19.3.0/lib/stripe/params/financial_connections/transaction_retrieve_params.rb +15 -0
  232. data/stripe-19.3.0/lib/stripe/params/forwarding/request_create_params.rb +59 -0
  233. data/stripe-19.3.0/lib/stripe/params/forwarding/request_list_params.rb +44 -0
  234. data/stripe-19.3.0/lib/stripe/params/forwarding/request_retrieve_params.rb +15 -0
  235. data/stripe-19.3.0/lib/stripe/params/identity/verification_report_list_params.rb +62 -0
  236. data/stripe-19.3.0/lib/stripe/params/identity/verification_report_retrieve_params.rb +15 -0
  237. data/stripe-19.3.0/lib/stripe/params/identity/verification_session_cancel_params.rb +15 -0
  238. data/stripe-19.3.0/lib/stripe/params/identity/verification_session_create_params.rb +111 -0
  239. data/stripe-19.3.0/lib/stripe/params/identity/verification_session_list_params.rb +66 -0
  240. data/stripe-19.3.0/lib/stripe/params/identity/verification_session_redact_params.rb +15 -0
  241. data/stripe-19.3.0/lib/stripe/params/identity/verification_session_retrieve_params.rb +15 -0
  242. data/stripe-19.3.0/lib/stripe/params/identity/verification_session_update_params.rb +69 -0
  243. data/stripe-19.3.0/lib/stripe/params/invoice_add_lines_params.rb +261 -0
  244. data/stripe-19.3.0/lib/stripe/params/invoice_attach_payment_params.rb +19 -0
  245. data/stripe-19.3.0/lib/stripe/params/invoice_create_params.rb +664 -0
  246. data/stripe-19.3.0/lib/stripe/params/invoice_create_preview_params.rb +1230 -0
  247. data/stripe-19.3.0/lib/stripe/params/invoice_delete_params.rb +6 -0
  248. data/stripe-19.3.0/lib/stripe/params/invoice_finalize_invoice_params.rb +16 -0
  249. data/stripe-19.3.0/lib/stripe/params/invoice_item_create_params.rb +165 -0
  250. data/stripe-19.3.0/lib/stripe/params/invoice_item_delete_params.rb +6 -0
  251. data/stripe-19.3.0/lib/stripe/params/invoice_item_list_params.rb +64 -0
  252. data/stripe-19.3.0/lib/stripe/params/invoice_item_retrieve_params.rb +13 -0
  253. data/stripe-19.3.0/lib/stripe/params/invoice_item_update_params.rb +145 -0
  254. data/stripe-19.3.0/lib/stripe/params/invoice_line_item_list_params.rb +22 -0
  255. data/stripe-19.3.0/lib/stripe/params/invoice_line_item_update_params.rb +232 -0
  256. data/stripe-19.3.0/lib/stripe/params/invoice_list_params.rb +90 -0
  257. data/stripe-19.3.0/lib/stripe/params/invoice_mark_uncollectible_params.rb +13 -0
  258. data/stripe-19.3.0/lib/stripe/params/invoice_pay_params.rb +41 -0
  259. data/stripe-19.3.0/lib/stripe/params/invoice_payment_list_params.rb +75 -0
  260. data/stripe-19.3.0/lib/stripe/params/invoice_payment_retrieve_params.rb +13 -0
  261. data/stripe-19.3.0/lib/stripe/params/invoice_remove_lines_params.rb +30 -0
  262. data/stripe-19.3.0/lib/stripe/params/invoice_rendering_template_archive_params.rb +13 -0
  263. data/stripe-19.3.0/lib/stripe/params/invoice_rendering_template_list_params.rb +25 -0
  264. data/stripe-19.3.0/lib/stripe/params/invoice_rendering_template_retrieve_params.rb +16 -0
  265. data/stripe-19.3.0/lib/stripe/params/invoice_rendering_template_unarchive_params.rb +13 -0
  266. data/stripe-19.3.0/lib/stripe/params/invoice_retrieve_params.rb +13 -0
  267. data/stripe-19.3.0/lib/stripe/params/invoice_search_params.rb +22 -0
  268. data/stripe-19.3.0/lib/stripe/params/invoice_send_invoice_params.rb +13 -0
  269. data/stripe-19.3.0/lib/stripe/params/invoice_update_lines_params.rb +261 -0
  270. data/stripe-19.3.0/lib/stripe/params/invoice_update_params.rb +628 -0
  271. data/stripe-19.3.0/lib/stripe/params/invoice_void_invoice_params.rb +13 -0
  272. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_approve_params.rb +21 -0
  273. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_capture_params.rb +390 -0
  274. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_create_params.rb +452 -0
  275. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_decline_params.rb +18 -0
  276. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_expire_params.rb +15 -0
  277. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_finalize_amount_params.rb +223 -0
  278. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_increment_params.rb +21 -0
  279. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_list_params.rb +62 -0
  280. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_respond_params.rb +18 -0
  281. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_retrieve_params.rb +15 -0
  282. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_reverse_params.rb +18 -0
  283. data/stripe-19.3.0/lib/stripe/params/issuing/authorization_update_params.rb +18 -0
  284. data/stripe-19.3.0/lib/stripe/params/issuing/card_create_params.rb +242 -0
  285. data/stripe-19.3.0/lib/stripe/params/issuing/card_deliver_card_params.rb +15 -0
  286. data/stripe-19.3.0/lib/stripe/params/issuing/card_fail_card_params.rb +15 -0
  287. data/stripe-19.3.0/lib/stripe/params/issuing/card_list_params.rb +78 -0
  288. data/stripe-19.3.0/lib/stripe/params/issuing/card_retrieve_params.rb +15 -0
  289. data/stripe-19.3.0/lib/stripe/params/issuing/card_return_card_params.rb +15 -0
  290. data/stripe-19.3.0/lib/stripe/params/issuing/card_ship_card_params.rb +15 -0
  291. data/stripe-19.3.0/lib/stripe/params/issuing/card_submit_card_params.rb +15 -0
  292. data/stripe-19.3.0/lib/stripe/params/issuing/card_update_params.rb +189 -0
  293. data/stripe-19.3.0/lib/stripe/params/issuing/cardholder_create_params.rb +246 -0
  294. data/stripe-19.3.0/lib/stripe/params/issuing/cardholder_list_params.rb +66 -0
  295. data/stripe-19.3.0/lib/stripe/params/issuing/cardholder_retrieve_params.rb +15 -0
  296. data/stripe-19.3.0/lib/stripe/params/issuing/cardholder_update_params.rb +238 -0
  297. data/stripe-19.3.0/lib/stripe/params/issuing/dispute_create_params.rb +297 -0
  298. data/stripe-19.3.0/lib/stripe/params/issuing/dispute_list_params.rb +58 -0
  299. data/stripe-19.3.0/lib/stripe/params/issuing/dispute_retrieve_params.rb +15 -0
  300. data/stripe-19.3.0/lib/stripe/params/issuing/dispute_submit_params.rb +18 -0
  301. data/stripe-19.3.0/lib/stripe/params/issuing/dispute_update_params.rb +275 -0
  302. data/stripe-19.3.0/lib/stripe/params/issuing/personalization_design_activate_params.rb +15 -0
  303. data/stripe-19.3.0/lib/stripe/params/issuing/personalization_design_create_params.rb +75 -0
  304. data/stripe-19.3.0/lib/stripe/params/issuing/personalization_design_deactivate_params.rb +15 -0
  305. data/stripe-19.3.0/lib/stripe/params/issuing/personalization_design_list_params.rb +52 -0
  306. data/stripe-19.3.0/lib/stripe/params/issuing/personalization_design_reject_params.rb +29 -0
  307. data/stripe-19.3.0/lib/stripe/params/issuing/personalization_design_retrieve_params.rb +15 -0
  308. data/stripe-19.3.0/lib/stripe/params/issuing/personalization_design_update_params.rb +75 -0
  309. data/stripe-19.3.0/lib/stripe/params/issuing/physical_bundle_list_params.rb +37 -0
  310. data/stripe-19.3.0/lib/stripe/params/issuing/physical_bundle_retrieve_params.rb +15 -0
  311. data/stripe-19.3.0/lib/stripe/params/issuing/token_list_params.rb +58 -0
  312. data/stripe-19.3.0/lib/stripe/params/issuing/token_retrieve_params.rb +15 -0
  313. data/stripe-19.3.0/lib/stripe/params/issuing/token_update_params.rb +18 -0
  314. data/stripe-19.3.0/lib/stripe/params/issuing/transaction_create_force_capture_params.rb +441 -0
  315. data/stripe-19.3.0/lib/stripe/params/issuing/transaction_create_unlinked_refund_params.rb +441 -0
  316. data/stripe-19.3.0/lib/stripe/params/issuing/transaction_list_params.rb +62 -0
  317. data/stripe-19.3.0/lib/stripe/params/issuing/transaction_refund_params.rb +18 -0
  318. data/stripe-19.3.0/lib/stripe/params/issuing/transaction_retrieve_params.rb +15 -0
  319. data/stripe-19.3.0/lib/stripe/params/issuing/transaction_update_params.rb +18 -0
  320. data/stripe-19.3.0/lib/stripe/params/mandate_retrieve_params.rb +13 -0
  321. data/stripe-19.3.0/lib/stripe/params/payment_attempt_record_list_params.rb +22 -0
  322. data/stripe-19.3.0/lib/stripe/params/payment_attempt_record_retrieve_params.rb +13 -0
  323. data/stripe-19.3.0/lib/stripe/params/payment_intent_amount_details_line_item_list_params.rb +22 -0
  324. data/stripe-19.3.0/lib/stripe/params/payment_intent_apply_customer_balance_params.rb +23 -0
  325. data/stripe-19.3.0/lib/stripe/params/payment_intent_cancel_params.rb +16 -0
  326. data/stripe-19.3.0/lib/stripe/params/payment_intent_capture_params.rb +291 -0
  327. data/stripe-19.3.0/lib/stripe/params/payment_intent_confirm_params.rb +2878 -0
  328. data/stripe-19.3.0/lib/stripe/params/payment_intent_create_params.rb +3009 -0
  329. data/stripe-19.3.0/lib/stripe/params/payment_intent_increment_authorization_params.rb +285 -0
  330. data/stripe-19.3.0/lib/stripe/params/payment_intent_list_params.rb +56 -0
  331. data/stripe-19.3.0/lib/stripe/params/payment_intent_retrieve_params.rb +16 -0
  332. data/stripe-19.3.0/lib/stripe/params/payment_intent_search_params.rb +22 -0
  333. data/stripe-19.3.0/lib/stripe/params/payment_intent_update_params.rb +2876 -0
  334. data/stripe-19.3.0/lib/stripe/params/payment_intent_verify_microdeposits_params.rb +19 -0
  335. data/stripe-19.3.0/lib/stripe/params/payment_link_create_params.rb +879 -0
  336. data/stripe-19.3.0/lib/stripe/params/payment_link_line_item_list_params.rb +22 -0
  337. data/stripe-19.3.0/lib/stripe/params/payment_link_list_line_items_params.rb +22 -0
  338. data/stripe-19.3.0/lib/stripe/params/payment_link_list_params.rb +25 -0
  339. data/stripe-19.3.0/lib/stripe/params/payment_link_retrieve_params.rb +13 -0
  340. data/stripe-19.3.0/lib/stripe/params/payment_link_update_params.rb +667 -0
  341. data/stripe-19.3.0/lib/stripe/params/payment_method_attach_params.rb +19 -0
  342. data/stripe-19.3.0/lib/stripe/params/payment_method_configuration_create_params.rb +1282 -0
  343. data/stripe-19.3.0/lib/stripe/params/payment_method_configuration_list_params.rb +35 -0
  344. data/stripe-19.3.0/lib/stripe/params/payment_method_configuration_retrieve_params.rb +13 -0
  345. data/stripe-19.3.0/lib/stripe/params/payment_method_configuration_update_params.rb +1282 -0
  346. data/stripe-19.3.0/lib/stripe/params/payment_method_create_params.rb +662 -0
  347. data/stripe-19.3.0/lib/stripe/params/payment_method_detach_params.rb +13 -0
  348. data/stripe-19.3.0/lib/stripe/params/payment_method_domain_create_params.rb +19 -0
  349. data/stripe-19.3.0/lib/stripe/params/payment_method_domain_list_params.rb +35 -0
  350. data/stripe-19.3.0/lib/stripe/params/payment_method_domain_retrieve_params.rb +13 -0
  351. data/stripe-19.3.0/lib/stripe/params/payment_method_domain_update_params.rb +16 -0
  352. data/stripe-19.3.0/lib/stripe/params/payment_method_domain_validate_params.rb +13 -0
  353. data/stripe-19.3.0/lib/stripe/params/payment_method_list_params.rb +43 -0
  354. data/stripe-19.3.0/lib/stripe/params/payment_method_retrieve_params.rb +13 -0
  355. data/stripe-19.3.0/lib/stripe/params/payment_method_update_params.rb +139 -0
  356. data/stripe-19.3.0/lib/stripe/params/payment_record_report_payment_attempt_canceled_params.rb +19 -0
  357. data/stripe-19.3.0/lib/stripe/params/payment_record_report_payment_attempt_failed_params.rb +19 -0
  358. data/stripe-19.3.0/lib/stripe/params/payment_record_report_payment_attempt_guaranteed_params.rb +19 -0
  359. data/stripe-19.3.0/lib/stripe/params/payment_record_report_payment_attempt_informational_params.rb +93 -0
  360. data/stripe-19.3.0/lib/stripe/params/payment_record_report_payment_attempt_params.rb +186 -0
  361. data/stripe-19.3.0/lib/stripe/params/payment_record_report_payment_params.rb +252 -0
  362. data/stripe-19.3.0/lib/stripe/params/payment_record_report_refund_params.rb +79 -0
  363. data/stripe-19.3.0/lib/stripe/params/payment_record_retrieve_params.rb +13 -0
  364. data/stripe-19.3.0/lib/stripe/params/payout_cancel_params.rb +13 -0
  365. data/stripe-19.3.0/lib/stripe/params/payout_create_params.rb +51 -0
  366. data/stripe-19.3.0/lib/stripe/params/payout_list_params.rb +78 -0
  367. data/stripe-19.3.0/lib/stripe/params/payout_retrieve_params.rb +13 -0
  368. data/stripe-19.3.0/lib/stripe/params/payout_reverse_params.rb +16 -0
  369. data/stripe-19.3.0/lib/stripe/params/payout_update_params.rb +16 -0
  370. data/stripe-19.3.0/lib/stripe/params/plan_create_params.rb +178 -0
  371. data/stripe-19.3.0/lib/stripe/params/plan_delete_params.rb +6 -0
  372. data/stripe-19.3.0/lib/stripe/params/plan_list_params.rb +56 -0
  373. data/stripe-19.3.0/lib/stripe/params/plan_retrieve_params.rb +13 -0
  374. data/stripe-19.3.0/lib/stripe/params/plan_update_params.rb +35 -0
  375. data/stripe-19.3.0/lib/stripe/params/price_create_params.rb +318 -0
  376. data/stripe-19.3.0/lib/stripe/params/price_list_params.rb +87 -0
  377. data/stripe-19.3.0/lib/stripe/params/price_retrieve_params.rb +13 -0
  378. data/stripe-19.3.0/lib/stripe/params/price_search_params.rb +22 -0
  379. data/stripe-19.3.0/lib/stripe/params/price_update_params.rb +133 -0
  380. data/stripe-19.3.0/lib/stripe/params/product_create_params.rb +276 -0
  381. data/stripe-19.3.0/lib/stripe/params/product_delete_params.rb +6 -0
  382. data/stripe-19.3.0/lib/stripe/params/product_feature_create_params.rb +16 -0
  383. data/stripe-19.3.0/lib/stripe/params/product_feature_delete_params.rb +6 -0
  384. data/stripe-19.3.0/lib/stripe/params/product_feature_list_params.rb +22 -0
  385. data/stripe-19.3.0/lib/stripe/params/product_feature_retrieve_params.rb +13 -0
  386. data/stripe-19.3.0/lib/stripe/params/product_list_params.rb +68 -0
  387. data/stripe-19.3.0/lib/stripe/params/product_retrieve_params.rb +13 -0
  388. data/stripe-19.3.0/lib/stripe/params/product_search_params.rb +22 -0
  389. data/stripe-19.3.0/lib/stripe/params/product_update_params.rb +96 -0
  390. data/stripe-19.3.0/lib/stripe/params/promotion_code_create_params.rb +95 -0
  391. data/stripe-19.3.0/lib/stripe/params/promotion_code_list_params.rb +68 -0
  392. data/stripe-19.3.0/lib/stripe/params/promotion_code_retrieve_params.rb +13 -0
  393. data/stripe-19.3.0/lib/stripe/params/promotion_code_update_params.rb +38 -0
  394. data/stripe-19.3.0/lib/stripe/params/quote_accept_params.rb +13 -0
  395. data/stripe-19.3.0/lib/stripe/params/quote_cancel_params.rb +13 -0
  396. data/stripe-19.3.0/lib/stripe/params/quote_computed_upfront_line_items_list_params.rb +22 -0
  397. data/stripe-19.3.0/lib/stripe/params/quote_create_params.rb +327 -0
  398. data/stripe-19.3.0/lib/stripe/params/quote_finalize_quote_params.rb +16 -0
  399. data/stripe-19.3.0/lib/stripe/params/quote_line_item_list_params.rb +22 -0
  400. data/stripe-19.3.0/lib/stripe/params/quote_list_computed_upfront_line_items_params.rb +22 -0
  401. data/stripe-19.3.0/lib/stripe/params/quote_list_line_items_params.rb +22 -0
  402. data/stripe-19.3.0/lib/stripe/params/quote_list_params.rb +43 -0
  403. data/stripe-19.3.0/lib/stripe/params/quote_pdf_params.rb +13 -0
  404. data/stripe-19.3.0/lib/stripe/params/quote_retrieve_params.rb +13 -0
  405. data/stripe-19.3.0/lib/stripe/params/quote_update_params.rb +289 -0
  406. data/stripe-19.3.0/lib/stripe/params/radar/early_fraud_warning_list_params.rb +58 -0
  407. data/stripe-19.3.0/lib/stripe/params/radar/early_fraud_warning_retrieve_params.rb +15 -0
  408. data/stripe-19.3.0/lib/stripe/params/radar/payment_evaluation_create_params.rb +223 -0
  409. data/stripe-19.3.0/lib/stripe/params/radar/value_list_create_params.rb +27 -0
  410. data/stripe-19.3.0/lib/stripe/params/radar/value_list_delete_params.rb +8 -0
  411. data/stripe-19.3.0/lib/stripe/params/radar/value_list_item_create_params.rb +21 -0
  412. data/stripe-19.3.0/lib/stripe/params/radar/value_list_item_delete_params.rb +8 -0
  413. data/stripe-19.3.0/lib/stripe/params/radar/value_list_item_list_params.rb +58 -0
  414. data/stripe-19.3.0/lib/stripe/params/radar/value_list_item_retrieve_params.rb +15 -0
  415. data/stripe-19.3.0/lib/stripe/params/radar/value_list_list_params.rb +58 -0
  416. data/stripe-19.3.0/lib/stripe/params/radar/value_list_retrieve_params.rb +15 -0
  417. data/stripe-19.3.0/lib/stripe/params/radar/value_list_update_params.rb +24 -0
  418. data/stripe-19.3.0/lib/stripe/params/refund_cancel_params.rb +13 -0
  419. data/stripe-19.3.0/lib/stripe/params/refund_create_params.rb +59 -0
  420. data/stripe-19.3.0/lib/stripe/params/refund_expire_params.rb +13 -0
  421. data/stripe-19.3.0/lib/stripe/params/refund_list_params.rb +56 -0
  422. data/stripe-19.3.0/lib/stripe/params/refund_retrieve_params.rb +13 -0
  423. data/stripe-19.3.0/lib/stripe/params/refund_update_params.rb +16 -0
  424. data/stripe-19.3.0/lib/stripe/params/reporting/report_run_create_params.rb +59 -0
  425. data/stripe-19.3.0/lib/stripe/params/reporting/report_run_list_params.rb +44 -0
  426. data/stripe-19.3.0/lib/stripe/params/reporting/report_run_retrieve_params.rb +15 -0
  427. data/stripe-19.3.0/lib/stripe/params/reporting/report_type_list_params.rb +15 -0
  428. data/stripe-19.3.0/lib/stripe/params/reporting/report_type_retrieve_params.rb +15 -0
  429. data/stripe-19.3.0/lib/stripe/params/review_approve_params.rb +13 -0
  430. data/stripe-19.3.0/lib/stripe/params/review_list_params.rb +42 -0
  431. data/stripe-19.3.0/lib/stripe/params/review_retrieve_params.rb +13 -0
  432. data/stripe-19.3.0/lib/stripe/params/setup_attempt_list_params.rb +55 -0
  433. data/stripe-19.3.0/lib/stripe/params/setup_intent_cancel_params.rb +16 -0
  434. data/stripe-19.3.0/lib/stripe/params/setup_intent_confirm_params.rb +1252 -0
  435. data/stripe-19.3.0/lib/stripe/params/setup_intent_create_params.rb +1342 -0
  436. data/stripe-19.3.0/lib/stripe/params/setup_intent_list_params.rb +66 -0
  437. data/stripe-19.3.0/lib/stripe/params/setup_intent_retrieve_params.rb +16 -0
  438. data/stripe-19.3.0/lib/stripe/params/setup_intent_update_params.rb +1237 -0
  439. data/stripe-19.3.0/lib/stripe/params/setup_intent_verify_microdeposits_params.rb +19 -0
  440. data/stripe-19.3.0/lib/stripe/params/shipping_rate_create_params.rb +103 -0
  441. data/stripe-19.3.0/lib/stripe/params/shipping_rate_list_params.rb +56 -0
  442. data/stripe-19.3.0/lib/stripe/params/shipping_rate_retrieve_params.rb +13 -0
  443. data/stripe-19.3.0/lib/stripe/params/shipping_rate_update_params.rb +44 -0
  444. data/stripe-19.3.0/lib/stripe/params/sigma/scheduled_query_run_list_params.rb +24 -0
  445. data/stripe-19.3.0/lib/stripe/params/sigma/scheduled_query_run_retrieve_params.rb +15 -0
  446. data/stripe-19.3.0/lib/stripe/params/source_create_params.rb +317 -0
  447. data/stripe-19.3.0/lib/stripe/params/source_detach_params.rb +13 -0
  448. data/stripe-19.3.0/lib/stripe/params/source_retrieve_params.rb +16 -0
  449. data/stripe-19.3.0/lib/stripe/params/source_transaction_list_params.rb +22 -0
  450. data/stripe-19.3.0/lib/stripe/params/source_update_params.rb +259 -0
  451. data/stripe-19.3.0/lib/stripe/params/source_verify_params.rb +16 -0
  452. data/stripe-19.3.0/lib/stripe/params/subscription_cancel_params.rb +33 -0
  453. data/stripe-19.3.0/lib/stripe/params/subscription_create_params.rb +917 -0
  454. data/stripe-19.3.0/lib/stripe/params/subscription_delete_discount_params.rb +6 -0
  455. data/stripe-19.3.0/lib/stripe/params/subscription_item_create_params.rb +138 -0
  456. data/stripe-19.3.0/lib/stripe/params/subscription_item_delete_params.rb +27 -0
  457. data/stripe-19.3.0/lib/stripe/params/subscription_item_list_params.rb +31 -0
  458. data/stripe-19.3.0/lib/stripe/params/subscription_item_retrieve_params.rb +13 -0
  459. data/stripe-19.3.0/lib/stripe/params/subscription_item_update_params.rb +138 -0
  460. data/stripe-19.3.0/lib/stripe/params/subscription_list_params.rb +133 -0
  461. data/stripe-19.3.0/lib/stripe/params/subscription_migrate_params.rb +35 -0
  462. data/stripe-19.3.0/lib/stripe/params/subscription_resume_params.rb +27 -0
  463. data/stripe-19.3.0/lib/stripe/params/subscription_retrieve_params.rb +13 -0
  464. data/stripe-19.3.0/lib/stripe/params/subscription_schedule_cancel_params.rb +19 -0
  465. data/stripe-19.3.0/lib/stripe/params/subscription_schedule_create_params.rb +668 -0
  466. data/stripe-19.3.0/lib/stripe/params/subscription_schedule_list_params.rb +126 -0
  467. data/stripe-19.3.0/lib/stripe/params/subscription_schedule_release_params.rb +16 -0
  468. data/stripe-19.3.0/lib/stripe/params/subscription_schedule_retrieve_params.rb +13 -0
  469. data/stripe-19.3.0/lib/stripe/params/subscription_schedule_update_params.rb +636 -0
  470. data/stripe-19.3.0/lib/stripe/params/subscription_search_params.rb +22 -0
  471. data/stripe-19.3.0/lib/stripe/params/subscription_update_params.rb +896 -0
  472. data/stripe-19.3.0/lib/stripe/params/tax/association_find_params.rb +18 -0
  473. data/stripe-19.3.0/lib/stripe/params/tax/calculation_create_params.rb +206 -0
  474. data/stripe-19.3.0/lib/stripe/params/tax/calculation_line_item_list_params.rb +24 -0
  475. data/stripe-19.3.0/lib/stripe/params/tax/calculation_list_line_items_params.rb +24 -0
  476. data/stripe-19.3.0/lib/stripe/params/tax/calculation_retrieve_params.rb +15 -0
  477. data/stripe-19.3.0/lib/stripe/params/tax/registration_create_params.rb +2044 -0
  478. data/stripe-19.3.0/lib/stripe/params/tax/registration_list_params.rb +27 -0
  479. data/stripe-19.3.0/lib/stripe/params/tax/registration_retrieve_params.rb +15 -0
  480. data/stripe-19.3.0/lib/stripe/params/tax/registration_update_params.rb +21 -0
  481. data/stripe-19.3.0/lib/stripe/params/tax/settings_retrieve_params.rb +15 -0
  482. data/stripe-19.3.0/lib/stripe/params/tax/settings_update_params.rb +71 -0
  483. data/stripe-19.3.0/lib/stripe/params/tax/transaction_create_from_calculation_params.rb +27 -0
  484. data/stripe-19.3.0/lib/stripe/params/tax/transaction_create_reversal_params.rb +87 -0
  485. data/stripe-19.3.0/lib/stripe/params/tax/transaction_line_item_list_params.rb +24 -0
  486. data/stripe-19.3.0/lib/stripe/params/tax/transaction_list_line_items_params.rb +24 -0
  487. data/stripe-19.3.0/lib/stripe/params/tax/transaction_retrieve_params.rb +15 -0
  488. data/stripe-19.3.0/lib/stripe/params/tax_code_list_params.rb +22 -0
  489. data/stripe-19.3.0/lib/stripe/params/tax_code_retrieve_params.rb +13 -0
  490. data/stripe-19.3.0/lib/stripe/params/tax_id_create_params.rb +39 -0
  491. data/stripe-19.3.0/lib/stripe/params/tax_id_delete_params.rb +6 -0
  492. data/stripe-19.3.0/lib/stripe/params/tax_id_list_params.rb +42 -0
  493. data/stripe-19.3.0/lib/stripe/params/tax_id_retrieve_params.rb +13 -0
  494. data/stripe-19.3.0/lib/stripe/params/tax_rate_create_params.rb +55 -0
  495. data/stripe-19.3.0/lib/stripe/params/tax_rate_list_params.rb +56 -0
  496. data/stripe-19.3.0/lib/stripe/params/tax_rate_retrieve_params.rb +13 -0
  497. data/stripe-19.3.0/lib/stripe/params/tax_rate_update_params.rb +47 -0
  498. data/stripe-19.3.0/lib/stripe/params/terminal/configuration_create_params.rb +671 -0
  499. data/stripe-19.3.0/lib/stripe/params/terminal/configuration_delete_params.rb +8 -0
  500. data/stripe-19.3.0/lib/stripe/params/terminal/configuration_list_params.rb +33 -0
  501. data/stripe-19.3.0/lib/stripe/params/terminal/configuration_retrieve_params.rb +15 -0
  502. data/stripe-19.3.0/lib/stripe/params/terminal/configuration_update_params.rb +671 -0
  503. data/stripe-19.3.0/lib/stripe/params/terminal/connection_token_create_params.rb +18 -0
  504. data/stripe-19.3.0/lib/stripe/params/terminal/location_create_params.rb +153 -0
  505. data/stripe-19.3.0/lib/stripe/params/terminal/location_delete_params.rb +8 -0
  506. data/stripe-19.3.0/lib/stripe/params/terminal/location_list_params.rb +24 -0
  507. data/stripe-19.3.0/lib/stripe/params/terminal/location_retrieve_params.rb +15 -0
  508. data/stripe-19.3.0/lib/stripe/params/terminal/location_update_params.rb +153 -0
  509. data/stripe-19.3.0/lib/stripe/params/terminal/onboarding_link_create_params.rb +43 -0
  510. data/stripe-19.3.0/lib/stripe/params/terminal/reader_cancel_action_params.rb +15 -0
  511. data/stripe-19.3.0/lib/stripe/params/terminal/reader_collect_inputs_params.rb +96 -0
  512. data/stripe-19.3.0/lib/stripe/params/terminal/reader_collect_payment_method_params.rb +51 -0
  513. data/stripe-19.3.0/lib/stripe/params/terminal/reader_confirm_payment_intent_params.rb +29 -0
  514. data/stripe-19.3.0/lib/stripe/params/terminal/reader_create_params.rb +27 -0
  515. data/stripe-19.3.0/lib/stripe/params/terminal/reader_delete_params.rb +8 -0
  516. data/stripe-19.3.0/lib/stripe/params/terminal/reader_list_params.rb +45 -0
  517. data/stripe-19.3.0/lib/stripe/params/terminal/reader_present_payment_method_params.rb +72 -0
  518. data/stripe-19.3.0/lib/stripe/params/terminal/reader_process_payment_intent_params.rb +55 -0
  519. data/stripe-19.3.0/lib/stripe/params/terminal/reader_process_setup_intent_params.rb +32 -0
  520. data/stripe-19.3.0/lib/stripe/params/terminal/reader_refund_payment_params.rb +53 -0
  521. data/stripe-19.3.0/lib/stripe/params/terminal/reader_retrieve_params.rb +15 -0
  522. data/stripe-19.3.0/lib/stripe/params/terminal/reader_set_reader_display_params.rb +52 -0
  523. data/stripe-19.3.0/lib/stripe/params/terminal/reader_succeed_input_collection_params.rb +18 -0
  524. data/stripe-19.3.0/lib/stripe/params/terminal/reader_timeout_input_collection_params.rb +15 -0
  525. data/stripe-19.3.0/lib/stripe/params/terminal/reader_update_params.rb +21 -0
  526. data/stripe-19.3.0/lib/stripe/params/test_helpers/confirmation_token_create_params.rb +717 -0
  527. data/stripe-19.3.0/lib/stripe/params/test_helpers/customer_fund_cash_balance_params.rb +24 -0
  528. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/authorization_capture_params.rb +395 -0
  529. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/authorization_create_params.rb +457 -0
  530. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/authorization_expire_params.rb +17 -0
  531. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/authorization_finalize_amount_params.rb +228 -0
  532. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/authorization_increment_params.rb +23 -0
  533. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/authorization_respond_params.rb +20 -0
  534. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/authorization_reverse_params.rb +20 -0
  535. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/card_deliver_card_params.rb +17 -0
  536. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/card_fail_card_params.rb +17 -0
  537. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/card_return_card_params.rb +17 -0
  538. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/card_ship_card_params.rb +17 -0
  539. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/card_submit_card_params.rb +17 -0
  540. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/personalization_design_activate_params.rb +17 -0
  541. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/personalization_design_deactivate_params.rb +17 -0
  542. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/personalization_design_reject_params.rb +31 -0
  543. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/transaction_create_force_capture_params.rb +446 -0
  544. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/transaction_create_unlinked_refund_params.rb +446 -0
  545. data/stripe-19.3.0/lib/stripe/params/test_helpers/issuing/transaction_refund_params.rb +20 -0
  546. data/stripe-19.3.0/lib/stripe/params/test_helpers/refund_expire_params.rb +15 -0
  547. data/stripe-19.3.0/lib/stripe/params/test_helpers/terminal/reader_present_payment_method_params.rb +74 -0
  548. data/stripe-19.3.0/lib/stripe/params/test_helpers/terminal/reader_succeed_input_collection_params.rb +20 -0
  549. data/stripe-19.3.0/lib/stripe/params/test_helpers/terminal/reader_timeout_input_collection_params.rb +17 -0
  550. data/stripe-19.3.0/lib/stripe/params/test_helpers/test_clock_advance_params.rb +18 -0
  551. data/stripe-19.3.0/lib/stripe/params/test_helpers/test_clock_create_params.rb +24 -0
  552. data/stripe-19.3.0/lib/stripe/params/test_helpers/test_clock_delete_params.rb +8 -0
  553. data/stripe-19.3.0/lib/stripe/params/test_helpers/test_clock_list_params.rb +24 -0
  554. data/stripe-19.3.0/lib/stripe/params/test_helpers/test_clock_retrieve_params.rb +15 -0
  555. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/inbound_transfer_fail_params.rb +28 -0
  556. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/inbound_transfer_return_inbound_transfer_params.rb +17 -0
  557. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/inbound_transfer_succeed_params.rb +17 -0
  558. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/outbound_payment_fail_params.rb +17 -0
  559. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/outbound_payment_post_params.rb +17 -0
  560. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/outbound_payment_return_outbound_payment_params.rb +28 -0
  561. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/outbound_payment_update_params.rb +57 -0
  562. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/outbound_transfer_fail_params.rb +17 -0
  563. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/outbound_transfer_post_params.rb +17 -0
  564. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/outbound_transfer_return_outbound_transfer_params.rb +28 -0
  565. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/outbound_transfer_update_params.rb +57 -0
  566. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/received_credit_create_params.rb +68 -0
  567. data/stripe-19.3.0/lib/stripe/params/test_helpers/treasury/received_debit_create_params.rb +68 -0
  568. data/stripe-19.3.0/lib/stripe/params/token_create_params.rb +1210 -0
  569. data/stripe-19.3.0/lib/stripe/params/token_retrieve_params.rb +13 -0
  570. data/stripe-19.3.0/lib/stripe/params/topup_cancel_params.rb +13 -0
  571. data/stripe-19.3.0/lib/stripe/params/topup_create_params.rb +67 -0
  572. data/stripe-19.3.0/lib/stripe/params/topup_list_params.rb +74 -0
  573. data/stripe-19.3.0/lib/stripe/params/topup_retrieve_params.rb +13 -0
  574. data/stripe-19.3.0/lib/stripe/params/topup_update_params.rb +19 -0
  575. data/stripe-19.3.0/lib/stripe/params/transfer_create_params.rb +47 -0
  576. data/stripe-19.3.0/lib/stripe/params/transfer_list_params.rb +56 -0
  577. data/stripe-19.3.0/lib/stripe/params/transfer_retrieve_params.rb +13 -0
  578. data/stripe-19.3.0/lib/stripe/params/transfer_reversal_create_params.rb +31 -0
  579. data/stripe-19.3.0/lib/stripe/params/transfer_reversal_list_params.rb +22 -0
  580. data/stripe-19.3.0/lib/stripe/params/transfer_reversal_retrieve_params.rb +13 -0
  581. data/stripe-19.3.0/lib/stripe/params/transfer_reversal_update_params.rb +16 -0
  582. data/stripe-19.3.0/lib/stripe/params/transfer_update_params.rb +19 -0
  583. data/stripe-19.3.0/lib/stripe/params/treasury/credit_reversal_create_params.rb +21 -0
  584. data/stripe-19.3.0/lib/stripe/params/treasury/credit_reversal_list_params.rb +41 -0
  585. data/stripe-19.3.0/lib/stripe/params/treasury/credit_reversal_retrieve_params.rb +15 -0
  586. data/stripe-19.3.0/lib/stripe/params/treasury/debit_reversal_create_params.rb +21 -0
  587. data/stripe-19.3.0/lib/stripe/params/treasury/debit_reversal_list_params.rb +45 -0
  588. data/stripe-19.3.0/lib/stripe/params/treasury/debit_reversal_retrieve_params.rb +15 -0
  589. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_close_params.rb +32 -0
  590. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_create_params.rb +201 -0
  591. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_features_retrieve_params.rb +15 -0
  592. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_features_update_params.rb +163 -0
  593. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_list_params.rb +54 -0
  594. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_retrieve_features_params.rb +15 -0
  595. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_retrieve_params.rb +15 -0
  596. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_update_features_params.rb +163 -0
  597. data/stripe-19.3.0/lib/stripe/params/treasury/financial_account_update_params.rb +216 -0
  598. data/stripe-19.3.0/lib/stripe/params/treasury/inbound_transfer_cancel_params.rb +15 -0
  599. data/stripe-19.3.0/lib/stripe/params/treasury/inbound_transfer_create_params.rb +45 -0
  600. data/stripe-19.3.0/lib/stripe/params/treasury/inbound_transfer_fail_params.rb +26 -0
  601. data/stripe-19.3.0/lib/stripe/params/treasury/inbound_transfer_list_params.rb +37 -0
  602. data/stripe-19.3.0/lib/stripe/params/treasury/inbound_transfer_retrieve_params.rb +15 -0
  603. data/stripe-19.3.0/lib/stripe/params/treasury/inbound_transfer_return_inbound_transfer_params.rb +15 -0
  604. data/stripe-19.3.0/lib/stripe/params/treasury/inbound_transfer_succeed_params.rb +15 -0
  605. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_payment_cancel_params.rb +15 -0
  606. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_payment_create_params.rb +190 -0
  607. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_payment_fail_params.rb +15 -0
  608. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_payment_list_params.rb +62 -0
  609. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_payment_post_params.rb +15 -0
  610. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_payment_retrieve_params.rb +15 -0
  611. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_payment_return_outbound_payment_params.rb +26 -0
  612. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_payment_update_params.rb +55 -0
  613. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_transfer_cancel_params.rb +15 -0
  614. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_transfer_create_params.rb +81 -0
  615. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_transfer_fail_params.rb +15 -0
  616. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_transfer_list_params.rb +37 -0
  617. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_transfer_post_params.rb +15 -0
  618. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_transfer_retrieve_params.rb +15 -0
  619. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_transfer_return_outbound_transfer_params.rb +26 -0
  620. data/stripe-19.3.0/lib/stripe/params/treasury/outbound_transfer_update_params.rb +55 -0
  621. data/stripe-19.3.0/lib/stripe/params/treasury/received_credit_create_params.rb +66 -0
  622. data/stripe-19.3.0/lib/stripe/params/treasury/received_credit_list_params.rb +49 -0
  623. data/stripe-19.3.0/lib/stripe/params/treasury/received_credit_retrieve_params.rb +15 -0
  624. data/stripe-19.3.0/lib/stripe/params/treasury/received_debit_create_params.rb +66 -0
  625. data/stripe-19.3.0/lib/stripe/params/treasury/received_debit_list_params.rb +37 -0
  626. data/stripe-19.3.0/lib/stripe/params/treasury/received_debit_retrieve_params.rb +15 -0
  627. data/stripe-19.3.0/lib/stripe/params/treasury/transaction_entry_list_params.rb +84 -0
  628. data/stripe-19.3.0/lib/stripe/params/treasury/transaction_entry_retrieve_params.rb +15 -0
  629. data/stripe-19.3.0/lib/stripe/params/treasury/transaction_list_params.rb +92 -0
  630. data/stripe-19.3.0/lib/stripe/params/treasury/transaction_retrieve_params.rb +15 -0
  631. data/stripe-19.3.0/lib/stripe/params/v2/billing/meter_event_adjustment_create_params.rb +31 -0
  632. data/stripe-19.3.0/lib/stripe/params/v2/billing/meter_event_create_params.rb +33 -0
  633. data/stripe-19.3.0/lib/stripe/params/v2/billing/meter_event_session_create_params.rb +10 -0
  634. data/stripe-19.3.0/lib/stripe/params/v2/billing/meter_event_stream_create_params.rb +41 -0
  635. data/stripe-19.3.0/lib/stripe/params/v2/commerce/product_catalog/import_create_params.rb +25 -0
  636. data/stripe-19.3.0/lib/stripe/params/v2/commerce/product_catalog/import_list_params.rb +54 -0
  637. data/stripe-19.3.0/lib/stripe/params/v2/commerce/product_catalog/import_retrieve_params.rb +12 -0
  638. data/stripe-19.3.0/lib/stripe/params/v2/core/account_close_params.rb +17 -0
  639. data/stripe-19.3.0/lib/stripe/params/v2/core/account_create_params.rb +2189 -0
  640. data/stripe-19.3.0/lib/stripe/params/v2/core/account_link_create_params.rb +101 -0
  641. data/stripe-19.3.0/lib/stripe/params/v2/core/account_list_params.rb +23 -0
  642. data/stripe-19.3.0/lib/stripe/params/v2/core/account_retrieve_params.rb +17 -0
  643. data/stripe-19.3.0/lib/stripe/params/v2/core/account_token_create_params.rb +1070 -0
  644. data/stripe-19.3.0/lib/stripe/params/v2/core/account_token_retrieve_params.rb +10 -0
  645. data/stripe-19.3.0/lib/stripe/params/v2/core/account_update_params.rb +2242 -0
  646. data/stripe-19.3.0/lib/stripe/params/v2/core/accounts/person_create_params.rb +507 -0
  647. data/stripe-19.3.0/lib/stripe/params/v2/core/accounts/person_delete_params.rb +12 -0
  648. data/stripe-19.3.0/lib/stripe/params/v2/core/accounts/person_list_params.rb +19 -0
  649. data/stripe-19.3.0/lib/stripe/params/v2/core/accounts/person_retrieve_params.rb +12 -0
  650. data/stripe-19.3.0/lib/stripe/params/v2/core/accounts/person_token_create_params.rb +497 -0
  651. data/stripe-19.3.0/lib/stripe/params/v2/core/accounts/person_token_retrieve_params.rb +12 -0
  652. data/stripe-19.3.0/lib/stripe/params/v2/core/accounts/person_update_params.rb +507 -0
  653. data/stripe-19.3.0/lib/stripe/params/v2/core/event_destination_create_params.rb +106 -0
  654. data/stripe-19.3.0/lib/stripe/params/v2/core/event_destination_delete_params.rb +10 -0
  655. data/stripe-19.3.0/lib/stripe/params/v2/core/event_destination_disable_params.rb +10 -0
  656. data/stripe-19.3.0/lib/stripe/params/v2/core/event_destination_enable_params.rb +10 -0
  657. data/stripe-19.3.0/lib/stripe/params/v2/core/event_destination_list_params.rb +20 -0
  658. data/stripe-19.3.0/lib/stripe/params/v2/core/event_destination_ping_params.rb +10 -0
  659. data/stripe-19.3.0/lib/stripe/params/v2/core/event_destination_retrieve_params.rb +17 -0
  660. data/stripe-19.3.0/lib/stripe/params/v2/core/event_destination_update_params.rb +47 -0
  661. data/stripe-19.3.0/lib/stripe/params/v2/core/event_list_params.rb +45 -0
  662. data/stripe-19.3.0/lib/stripe/params/v2/core/event_retrieve_params.rb +10 -0
  663. data/stripe-19.3.0/lib/stripe/params/webhook_endpoint_create_params.rb +39 -0
  664. data/stripe-19.3.0/lib/stripe/params/webhook_endpoint_delete_params.rb +6 -0
  665. data/stripe-19.3.0/lib/stripe/params/webhook_endpoint_list_params.rb +22 -0
  666. data/stripe-19.3.0/lib/stripe/params/webhook_endpoint_retrieve_params.rb +13 -0
  667. data/stripe-19.3.0/lib/stripe/params/webhook_endpoint_update_params.rb +35 -0
  668. data/stripe-19.3.0/lib/stripe/params.rb +1345 -0
  669. data/stripe-19.3.0/lib/stripe/railtie.rb +8 -0
  670. data/stripe-19.3.0/lib/stripe/request_options.rb +138 -0
  671. data/stripe-19.3.0/lib/stripe/request_params.rb +140 -0
  672. data/stripe-19.3.0/lib/stripe/resources/account.rb +1295 -0
  673. data/stripe-19.3.0/lib/stripe/resources/account_link.rb +39 -0
  674. data/stripe-19.3.0/lib/stripe/resources/account_session.rb +737 -0
  675. data/stripe-19.3.0/lib/stripe/resources/apple_pay_domain.rb +76 -0
  676. data/stripe-19.3.0/lib/stripe/resources/application.rb +28 -0
  677. data/stripe-19.3.0/lib/stripe/resources/application_fee.rb +76 -0
  678. data/stripe-19.3.0/lib/stripe/resources/application_fee_refund.rb +63 -0
  679. data/stripe-19.3.0/lib/stripe/resources/apps/secret.rb +96 -0
  680. data/stripe-19.3.0/lib/stripe/resources/balance.rb +340 -0
  681. data/stripe-19.3.0/lib/stripe/resources/balance_settings.rb +132 -0
  682. data/stripe-19.3.0/lib/stripe/resources/balance_transaction.rb +90 -0
  683. data/stripe-19.3.0/lib/stripe/resources/bank_account.rb +214 -0
  684. data/stripe-19.3.0/lib/stripe/resources/billing/alert.rb +142 -0
  685. data/stripe-19.3.0/lib/stripe/resources/billing/alert_triggered.rb +34 -0
  686. data/stripe-19.3.0/lib/stripe/resources/billing/credit_balance_summary.rb +104 -0
  687. data/stripe-19.3.0/lib/stripe/resources/billing/credit_balance_transaction.rb +177 -0
  688. data/stripe-19.3.0/lib/stripe/resources/billing/credit_grant.rb +200 -0
  689. data/stripe-19.3.0/lib/stripe/resources/billing/meter.rb +178 -0
  690. data/stripe-19.3.0/lib/stripe/resources/billing/meter_event.rb +49 -0
  691. data/stripe-19.3.0/lib/stripe/resources/billing/meter_event_adjustment.rb +59 -0
  692. data/stripe-19.3.0/lib/stripe/resources/billing/meter_event_summary.rb +40 -0
  693. data/stripe-19.3.0/lib/stripe/resources/billing_portal/configuration.rb +306 -0
  694. data/stripe-19.3.0/lib/stripe/resources/billing_portal/session.rb +240 -0
  695. data/stripe-19.3.0/lib/stripe/resources/capability.rb +179 -0
  696. data/stripe-19.3.0/lib/stripe/resources/card.rb +162 -0
  697. data/stripe-19.3.0/lib/stripe/resources/cash_balance.rb +61 -0
  698. data/stripe-19.3.0/lib/stripe/resources/charge.rb +2418 -0
  699. data/stripe-19.3.0/lib/stripe/resources/checkout/session.rb +2541 -0
  700. data/stripe-19.3.0/lib/stripe/resources/climate/order.rb +177 -0
  701. data/stripe-19.3.0/lib/stripe/resources/climate/product.rb +76 -0
  702. data/stripe-19.3.0/lib/stripe/resources/climate/supplier.rb +69 -0
  703. data/stripe-19.3.0/lib/stripe/resources/confirmation_token.rb +1808 -0
  704. data/stripe-19.3.0/lib/stripe/resources/connect_collection_transfer.rb +32 -0
  705. data/stripe-19.3.0/lib/stripe/resources/country_spec.rb +92 -0
  706. data/stripe-19.3.0/lib/stripe/resources/coupon.rb +131 -0
  707. data/stripe-19.3.0/lib/stripe/resources/credit_note.rb +317 -0
  708. data/stripe-19.3.0/lib/stripe/resources/credit_note_line_item.rb +129 -0
  709. data/stripe-19.3.0/lib/stripe/resources/customer.rb +450 -0
  710. data/stripe-19.3.0/lib/stripe/resources/customer_balance_transaction.rb +78 -0
  711. data/stripe-19.3.0/lib/stripe/resources/customer_cash_balance_transaction.rb +234 -0
  712. data/stripe-19.3.0/lib/stripe/resources/customer_session.rb +228 -0
  713. data/stripe-19.3.0/lib/stripe/resources/discount.rb +66 -0
  714. data/stripe-19.3.0/lib/stripe/resources/dispute.rb +496 -0
  715. data/stripe-19.3.0/lib/stripe/resources/entitlements/active_entitlement.rb +45 -0
  716. data/stripe-19.3.0/lib/stripe/resources/entitlements/active_entitlement_summary.rb +31 -0
  717. data/stripe-19.3.0/lib/stripe/resources/entitlements/feature.rb +72 -0
  718. data/stripe-19.3.0/lib/stripe/resources/ephemeral_key.rb +64 -0
  719. data/stripe-19.3.0/lib/stripe/resources/event.rb +96 -0
  720. data/stripe-19.3.0/lib/stripe/resources/exchange_rate.rb +69 -0
  721. data/stripe-19.3.0/lib/stripe/resources/file.rb +89 -0
  722. data/stripe-19.3.0/lib/stripe/resources/file_link.rb +65 -0
  723. data/stripe-19.3.0/lib/stripe/resources/financial_connections/account.rb +375 -0
  724. data/stripe-19.3.0/lib/stripe/resources/financial_connections/account_owner.rb +39 -0
  725. data/stripe-19.3.0/lib/stripe/resources/financial_connections/account_ownership.rb +31 -0
  726. data/stripe-19.3.0/lib/stripe/resources/financial_connections/session.rb +88 -0
  727. data/stripe-19.3.0/lib/stripe/resources/financial_connections/transaction.rb +73 -0
  728. data/stripe-19.3.0/lib/stripe/resources/forwarding/request.rb +163 -0
  729. data/stripe-19.3.0/lib/stripe/resources/funding_instructions.rb +525 -0
  730. data/stripe-19.3.0/lib/stripe/resources/identity/verification_report.rb +408 -0
  731. data/stripe-19.3.0/lib/stripe/resources/identity/verification_session.rb +428 -0
  732. data/stripe-19.3.0/lib/stripe/resources/invoice.rb +1361 -0
  733. data/stripe-19.3.0/lib/stripe/resources/invoice_item.rb +271 -0
  734. data/stripe-19.3.0/lib/stripe/resources/invoice_line_item.rb +321 -0
  735. data/stripe-19.3.0/lib/stripe/resources/invoice_payment.rb +92 -0
  736. data/stripe-19.3.0/lib/stripe/resources/invoice_rendering_template.rb +90 -0
  737. data/stripe-19.3.0/lib/stripe/resources/issuing/authorization.rb +762 -0
  738. data/stripe-19.3.0/lib/stripe/resources/issuing/card.rb +463 -0
  739. data/stripe-19.3.0/lib/stripe/resources/issuing/cardholder.rb +296 -0
  740. data/stripe-19.3.0/lib/stripe/resources/issuing/dispute.rb +324 -0
  741. data/stripe-19.3.0/lib/stripe/resources/issuing/personalization_design.rb +206 -0
  742. data/stripe-19.3.0/lib/stripe/resources/issuing/physical_bundle.rb +65 -0
  743. data/stripe-19.3.0/lib/stripe/resources/issuing/token.rb +195 -0
  744. data/stripe-19.3.0/lib/stripe/resources/issuing/transaction.rb +571 -0
  745. data/stripe-19.3.0/lib/stripe/resources/line_item.rb +108 -0
  746. data/stripe-19.3.0/lib/stripe/resources/login_link.rb +35 -0
  747. data/stripe-19.3.0/lib/stripe/resources/mandate.rb +468 -0
  748. data/stripe-19.3.0/lib/stripe/resources/payment_attempt_record.rb +2060 -0
  749. data/stripe-19.3.0/lib/stripe/resources/payment_intent.rb +3456 -0
  750. data/stripe-19.3.0/lib/stripe/resources/payment_intent_amount_details_line_item.rb +138 -0
  751. data/stripe-19.3.0/lib/stripe/resources/payment_link.rb +849 -0
  752. data/stripe-19.3.0/lib/stripe/resources/payment_method.rb +1754 -0
  753. data/stripe-19.3.0/lib/stripe/resources/payment_method_configuration.rb +2056 -0
  754. data/stripe-19.3.0/lib/stripe/resources/payment_method_domain.rb +280 -0
  755. data/stripe-19.3.0/lib/stripe/resources/payment_record.rb +2190 -0
  756. data/stripe-19.3.0/lib/stripe/resources/payout.rb +168 -0
  757. data/stripe-19.3.0/lib/stripe/resources/person.rb +506 -0
  758. data/stripe-19.3.0/lib/stripe/resources/plan.rb +170 -0
  759. data/stripe-19.3.0/lib/stripe/resources/price.rb +280 -0
  760. data/stripe-19.3.0/lib/stripe/resources/product.rb +159 -0
  761. data/stripe-19.3.0/lib/stripe/resources/product_feature.rb +33 -0
  762. data/stripe-19.3.0/lib/stripe/resources/promotion_code.rb +122 -0
  763. data/stripe-19.3.0/lib/stripe/resources/quote.rb +675 -0
  764. data/stripe-19.3.0/lib/stripe/resources/radar/early_fraud_warning.rb +54 -0
  765. data/stripe-19.3.0/lib/stripe/resources/radar/payment_evaluation.rb +497 -0
  766. data/stripe-19.3.0/lib/stripe/resources/radar/value_list.rb +102 -0
  767. data/stripe-19.3.0/lib/stripe/resources/radar/value_list_item.rb +85 -0
  768. data/stripe-19.3.0/lib/stripe/resources/refund.rb +781 -0
  769. data/stripe-19.3.0/lib/stripe/resources/reporting/report_run.rb +104 -0
  770. data/stripe-19.3.0/lib/stripe/resources/reporting/report_type.rb +60 -0
  771. data/stripe-19.3.0/lib/stripe/resources/reserve/hold.rb +84 -0
  772. data/stripe-19.3.0/lib/stripe/resources/reserve/plan.rb +78 -0
  773. data/stripe-19.3.0/lib/stripe/resources/reserve/release.rb +65 -0
  774. data/stripe-19.3.0/lib/stripe/resources/reserve_transaction.rb +30 -0
  775. data/stripe-19.3.0/lib/stripe/resources/reversal.rb +74 -0
  776. data/stripe-19.3.0/lib/stripe/resources/review.rb +118 -0
  777. data/stripe-19.3.0/lib/stripe/resources/setup_attempt.rb +683 -0
  778. data/stripe-19.3.0/lib/stripe/resources/setup_intent.rb +942 -0
  779. data/stripe-19.3.0/lib/stripe/resources/shipping_rate.rb +144 -0
  780. data/stripe-19.3.0/lib/stripe/resources/sigma/scheduled_query_run.rb +76 -0
  781. data/stripe-19.3.0/lib/stripe/resources/source.rb +972 -0
  782. data/stripe-19.3.0/lib/stripe/resources/source_mandate_notification.rb +98 -0
  783. data/stripe-19.3.0/lib/stripe/resources/source_transaction.rb +154 -0
  784. data/stripe-19.3.0/lib/stripe/resources/subscription.rb +975 -0
  785. data/stripe-19.3.0/lib/stripe/resources/subscription_item.rb +131 -0
  786. data/stripe-19.3.0/lib/stripe/resources/subscription_schedule.rb +618 -0
  787. data/stripe-19.3.0/lib/stripe/resources/tax/association.rb +86 -0
  788. data/stripe-19.3.0/lib/stripe/resources/tax/calculation.rb +321 -0
  789. data/stripe-19.3.0/lib/stripe/resources/tax/calculation_line_item.rb +103 -0
  790. data/stripe-19.3.0/lib/stripe/resources/tax/registration.rb +2275 -0
  791. data/stripe-19.3.0/lib/stripe/resources/tax/settings.rb +131 -0
  792. data/stripe-19.3.0/lib/stripe/resources/tax/transaction.rb +287 -0
  793. data/stripe-19.3.0/lib/stripe/resources/tax/transaction_line_item.rb +60 -0
  794. data/stripe-19.3.0/lib/stripe/resources/tax_code.rb +36 -0
  795. data/stripe-19.3.0/lib/stripe/resources/tax_deducted_at_source.rb +30 -0
  796. data/stripe-19.3.0/lib/stripe/resources/tax_id.rb +119 -0
  797. data/stripe-19.3.0/lib/stripe/resources/tax_rate.rb +99 -0
  798. data/stripe-19.3.0/lib/stripe/resources/terminal/configuration.rb +799 -0
  799. data/stripe-19.3.0/lib/stripe/resources/terminal/connection_token.rb +43 -0
  800. data/stripe-19.3.0/lib/stripe/resources/terminal/location.rb +183 -0
  801. data/stripe-19.3.0/lib/stripe/resources/terminal/onboarding_link.rb +71 -0
  802. data/stripe-19.3.0/lib/stripe/resources/terminal/reader.rb +925 -0
  803. data/stripe-19.3.0/lib/stripe/resources/test_helpers/test_clock.rb +133 -0
  804. data/stripe-19.3.0/lib/stripe/resources/token.rb +76 -0
  805. data/stripe-19.3.0/lib/stripe/resources/topup.rb +101 -0
  806. data/stripe-19.3.0/lib/stripe/resources/transfer.rb +93 -0
  807. data/stripe-19.3.0/lib/stripe/resources/treasury/credit_reversal.rb +86 -0
  808. data/stripe-19.3.0/lib/stripe/resources/treasury/debit_reversal.rb +101 -0
  809. data/stripe-19.3.0/lib/stripe/resources/treasury/financial_account.rb +253 -0
  810. data/stripe-19.3.0/lib/stripe/resources/treasury/financial_account_features.rb +396 -0
  811. data/stripe-19.3.0/lib/stripe/resources/treasury/inbound_transfer.rb +308 -0
  812. data/stripe-19.3.0/lib/stripe/resources/treasury/outbound_payment.rb +408 -0
  813. data/stripe-19.3.0/lib/stripe/resources/treasury/outbound_transfer.rb +388 -0
  814. data/stripe-19.3.0/lib/stripe/resources/treasury/received_credit.rb +261 -0
  815. data/stripe-19.3.0/lib/stripe/resources/treasury/received_debit.rb +226 -0
  816. data/stripe-19.3.0/lib/stripe/resources/treasury/transaction.rb +143 -0
  817. data/stripe-19.3.0/lib/stripe/resources/treasury/transaction_entry.rb +124 -0
  818. data/stripe-19.3.0/lib/stripe/resources/v2/amount.rb +9 -0
  819. data/stripe-19.3.0/lib/stripe/resources/v2/billing/meter_event.rb +43 -0
  820. data/stripe-19.3.0/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +53 -0
  821. data/stripe-19.3.0/lib/stripe/resources/v2/billing/meter_event_session.rb +38 -0
  822. data/stripe-19.3.0/lib/stripe/resources/v2/commerce/product_catalog_import.rb +276 -0
  823. data/stripe-19.3.0/lib/stripe/resources/v2/core/account.rb +3645 -0
  824. data/stripe-19.3.0/lib/stripe/resources/v2/core/account_link.rb +123 -0
  825. data/stripe-19.3.0/lib/stripe/resources/v2/core/account_person.rb +487 -0
  826. data/stripe-19.3.0/lib/stripe/resources/v2/core/account_person_token.rb +37 -0
  827. data/stripe-19.3.0/lib/stripe/resources/v2/core/account_token.rb +37 -0
  828. data/stripe-19.3.0/lib/stripe/resources/v2/core/event.rb +70 -0
  829. data/stripe-19.3.0/lib/stripe/resources/v2/core/event_destination.rb +147 -0
  830. data/stripe-19.3.0/lib/stripe/resources/v2/core/event_notification.rb +63 -0
  831. data/stripe-19.3.0/lib/stripe/resources/v2/deleted_object.rb +21 -0
  832. data/stripe-19.3.0/lib/stripe/resources/webhook_endpoint.rb +103 -0
  833. data/stripe-19.3.0/lib/stripe/resources.rb +503 -0
  834. data/stripe-19.3.0/lib/stripe/search_result_object.rb +89 -0
  835. data/stripe-19.3.0/lib/stripe/services/account_capability_service.rb +39 -0
  836. data/stripe-19.3.0/lib/stripe/services/account_external_account_service.rb +68 -0
  837. data/stripe-19.3.0/lib/stripe/services/account_link_service.rb +17 -0
  838. data/stripe-19.3.0/lib/stripe/services/account_login_link_service.rb +19 -0
  839. data/stripe-19.3.0/lib/stripe/services/account_person_service.rb +61 -0
  840. data/stripe-19.3.0/lib/stripe/services/account_service.rb +100 -0
  841. data/stripe-19.3.0/lib/stripe/services/account_session_service.rb +17 -0
  842. data/stripe-19.3.0/lib/stripe/services/apple_pay_domain_service.rb +50 -0
  843. data/stripe-19.3.0/lib/stripe/services/application_fee_refund_service.rb +60 -0
  844. data/stripe-19.3.0/lib/stripe/services/application_fee_service.rb +35 -0
  845. data/stripe-19.3.0/lib/stripe/services/apps/secret_service.rb +52 -0
  846. data/stripe-19.3.0/lib/stripe/services/apps_service.rb +13 -0
  847. data/stripe-19.3.0/lib/stripe/services/balance_service.rb +12 -0
  848. data/stripe-19.3.0/lib/stripe/services/balance_settings_service.rb +30 -0
  849. data/stripe-19.3.0/lib/stripe/services/balance_transaction_service.rb +32 -0
  850. data/stripe-19.3.0/lib/stripe/services/billing/alert_service.rb +74 -0
  851. data/stripe-19.3.0/lib/stripe/services/billing/credit_balance_summary_service.rb +19 -0
  852. data/stripe-19.3.0/lib/stripe/services/billing/credit_balance_transaction_service.rb +30 -0
  853. data/stripe-19.3.0/lib/stripe/services/billing/credit_grant_service.rb +74 -0
  854. data/stripe-19.3.0/lib/stripe/services/billing/meter_event_adjustment_service.rb +19 -0
  855. data/stripe-19.3.0/lib/stripe/services/billing/meter_event_service.rb +19 -0
  856. data/stripe-19.3.0/lib/stripe/services/billing/meter_event_summary_service.rb +19 -0
  857. data/stripe-19.3.0/lib/stripe/services/billing/meter_service.rb +81 -0
  858. data/stripe-19.3.0/lib/stripe/services/billing_portal/configuration_service.rb +52 -0
  859. data/stripe-19.3.0/lib/stripe/services/billing_portal/session_service.rb +19 -0
  860. data/stripe-19.3.0/lib/stripe/services/billing_portal_service.rb +14 -0
  861. data/stripe-19.3.0/lib/stripe/services/billing_service.rb +20 -0
  862. data/stripe-19.3.0/lib/stripe/services/charge_service.rb +69 -0
  863. data/stripe-19.3.0/lib/stripe/services/checkout/session_line_item_service.rb +19 -0
  864. data/stripe-19.3.0/lib/stripe/services/checkout/session_service.rb +82 -0
  865. data/stripe-19.3.0/lib/stripe/services/checkout_service.rb +13 -0
  866. data/stripe-19.3.0/lib/stripe/services/climate/order_service.rb +70 -0
  867. data/stripe-19.3.0/lib/stripe/services/climate/product_service.rb +30 -0
  868. data/stripe-19.3.0/lib/stripe/services/climate/supplier_service.rb +30 -0
  869. data/stripe-19.3.0/lib/stripe/services/climate_service.rb +15 -0
  870. data/stripe-19.3.0/lib/stripe/services/confirmation_token_service.rb +17 -0
  871. data/stripe-19.3.0/lib/stripe/services/country_spec_service.rb +28 -0
  872. data/stripe-19.3.0/lib/stripe/services/coupon_service.rb +51 -0
  873. data/stripe-19.3.0/lib/stripe/services/credit_note_line_item_service.rb +17 -0
  874. data/stripe-19.3.0/lib/stripe/services/credit_note_preview_lines_service.rb +21 -0
  875. data/stripe-19.3.0/lib/stripe/services/credit_note_service.rb +98 -0
  876. data/stripe-19.3.0/lib/stripe/services/customer_balance_transaction_service.rb +50 -0
  877. data/stripe-19.3.0/lib/stripe/services/customer_cash_balance_service.rb +28 -0
  878. data/stripe-19.3.0/lib/stripe/services/customer_cash_balance_transaction_service.rb +28 -0
  879. data/stripe-19.3.0/lib/stripe/services/customer_funding_instructions_service.rb +19 -0
  880. data/stripe-19.3.0/lib/stripe/services/customer_payment_method_service.rb +28 -0
  881. data/stripe-19.3.0/lib/stripe/services/customer_payment_source_service.rb +76 -0
  882. data/stripe-19.3.0/lib/stripe/services/customer_service.rb +89 -0
  883. data/stripe-19.3.0/lib/stripe/services/customer_session_service.rb +17 -0
  884. data/stripe-19.3.0/lib/stripe/services/customer_tax_id_service.rb +50 -0
  885. data/stripe-19.3.0/lib/stripe/services/dispute_service.rb +48 -0
  886. data/stripe-19.3.0/lib/stripe/services/entitlements/active_entitlement_service.rb +30 -0
  887. data/stripe-19.3.0/lib/stripe/services/entitlements/feature_service.rb +52 -0
  888. data/stripe-19.3.0/lib/stripe/services/entitlements_service.rb +14 -0
  889. data/stripe-19.3.0/lib/stripe/services/ephemeral_key_service.rb +28 -0
  890. data/stripe-19.3.0/lib/stripe/services/event_service.rb +22 -0
  891. data/stripe-19.3.0/lib/stripe/services/exchange_rate_service.rb +32 -0
  892. data/stripe-19.3.0/lib/stripe/services/file_link_service.rb +38 -0
  893. data/stripe-19.3.0/lib/stripe/services/file_service.rb +35 -0
  894. data/stripe-19.3.0/lib/stripe/services/financial_connections/account_owner_service.rb +19 -0
  895. data/stripe-19.3.0/lib/stripe/services/financial_connections/account_service.rb +81 -0
  896. data/stripe-19.3.0/lib/stripe/services/financial_connections/session_service.rb +30 -0
  897. data/stripe-19.3.0/lib/stripe/services/financial_connections/transaction_service.rb +30 -0
  898. data/stripe-19.3.0/lib/stripe/services/financial_connections_service.rb +15 -0
  899. data/stripe-19.3.0/lib/stripe/services/forwarding/request_service.rb +41 -0
  900. data/stripe-19.3.0/lib/stripe/services/forwarding_service.rb +13 -0
  901. data/stripe-19.3.0/lib/stripe/services/identity/verification_report_service.rb +30 -0
  902. data/stripe-19.3.0/lib/stripe/services/identity/verification_session_service.rb +106 -0
  903. data/stripe-19.3.0/lib/stripe/services/identity_service.rb +14 -0
  904. data/stripe-19.3.0/lib/stripe/services/invoice_item_service.rb +65 -0
  905. data/stripe-19.3.0/lib/stripe/services/invoice_line_item_service.rb +33 -0
  906. data/stripe-19.3.0/lib/stripe/services/invoice_payment_service.rb +28 -0
  907. data/stripe-19.3.0/lib/stripe/services/invoice_rendering_template_service.rb +50 -0
  908. data/stripe-19.3.0/lib/stripe/services/invoice_service.rb +212 -0
  909. data/stripe-19.3.0/lib/stripe/services/issuing/authorization_service.rb +65 -0
  910. data/stripe-19.3.0/lib/stripe/services/issuing/card_service.rb +52 -0
  911. data/stripe-19.3.0/lib/stripe/services/issuing/cardholder_service.rb +52 -0
  912. data/stripe-19.3.0/lib/stripe/services/issuing/dispute_service.rb +63 -0
  913. data/stripe-19.3.0/lib/stripe/services/issuing/personalization_design_service.rb +52 -0
  914. data/stripe-19.3.0/lib/stripe/services/issuing/physical_bundle_service.rb +30 -0
  915. data/stripe-19.3.0/lib/stripe/services/issuing/token_service.rb +41 -0
  916. data/stripe-19.3.0/lib/stripe/services/issuing/transaction_service.rb +41 -0
  917. data/stripe-19.3.0/lib/stripe/services/issuing_service.rb +20 -0
  918. data/stripe-19.3.0/lib/stripe/services/mandate_service.rb +17 -0
  919. data/stripe-19.3.0/lib/stripe/services/oauth_service.rb +63 -0
  920. data/stripe-19.3.0/lib/stripe/services/payment_attempt_record_service.rb +28 -0
  921. data/stripe-19.3.0/lib/stripe/services/payment_intent_amount_details_line_item_service.rb +17 -0
  922. data/stripe-19.3.0/lib/stripe/services/payment_intent_service.rb +218 -0
  923. data/stripe-19.3.0/lib/stripe/services/payment_link_line_item_service.rb +17 -0
  924. data/stripe-19.3.0/lib/stripe/services/payment_link_service.rb +59 -0
  925. data/stripe-19.3.0/lib/stripe/services/payment_method_configuration_service.rb +50 -0
  926. data/stripe-19.3.0/lib/stripe/services/payment_method_domain_service.rb +66 -0
  927. data/stripe-19.3.0/lib/stripe/services/payment_method_service.rb +86 -0
  928. data/stripe-19.3.0/lib/stripe/services/payment_record_service.rb +101 -0
  929. data/stripe-19.3.0/lib/stripe/services/payout_service.rb +66 -0
  930. data/stripe-19.3.0/lib/stripe/services/plan_service.rb +51 -0
  931. data/stripe-19.3.0/lib/stripe/services/price_service.rb +54 -0
  932. data/stripe-19.3.0/lib/stripe/services/product_feature_service.rb +50 -0
  933. data/stripe-19.3.0/lib/stripe/services/product_service.rb +72 -0
  934. data/stripe-19.3.0/lib/stripe/services/promotion_code_service.rb +50 -0
  935. data/stripe-19.3.0/lib/stripe/services/quote_computed_upfront_line_items_service.rb +17 -0
  936. data/stripe-19.3.0/lib/stripe/services/quote_line_item_service.rb +17 -0
  937. data/stripe-19.3.0/lib/stripe/services/quote_service.rb +96 -0
  938. data/stripe-19.3.0/lib/stripe/services/radar/early_fraud_warning_service.rb +32 -0
  939. data/stripe-19.3.0/lib/stripe/services/radar/payment_evaluation_service.rb +19 -0
  940. data/stripe-19.3.0/lib/stripe/services/radar/value_list_item_service.rb +52 -0
  941. data/stripe-19.3.0/lib/stripe/services/radar/value_list_service.rb +63 -0
  942. data/stripe-19.3.0/lib/stripe/services/radar_service.rb +16 -0
  943. data/stripe-19.3.0/lib/stripe/services/refund_service.rb +63 -0
  944. data/stripe-19.3.0/lib/stripe/services/reporting/report_run_service.rb +41 -0
  945. data/stripe-19.3.0/lib/stripe/services/reporting/report_type_service.rb +30 -0
  946. data/stripe-19.3.0/lib/stripe/services/reporting_service.rb +14 -0
  947. data/stripe-19.3.0/lib/stripe/services/review_service.rb +33 -0
  948. data/stripe-19.3.0/lib/stripe/services/setup_attempt_service.rb +17 -0
  949. data/stripe-19.3.0/lib/stripe/services/setup_intent_service.rb +105 -0
  950. data/stripe-19.3.0/lib/stripe/services/shipping_rate_service.rb +50 -0
  951. data/stripe-19.3.0/lib/stripe/services/sigma/scheduled_query_run_service.rb +30 -0
  952. data/stripe-19.3.0/lib/stripe/services/sigma_service.rb +13 -0
  953. data/stripe-19.3.0/lib/stripe/services/source_service.rb +64 -0
  954. data/stripe-19.3.0/lib/stripe/services/source_transaction_service.rb +17 -0
  955. data/stripe-19.3.0/lib/stripe/services/subscription_item_service.rb +65 -0
  956. data/stripe-19.3.0/lib/stripe/services/subscription_schedule_service.rb +80 -0
  957. data/stripe-19.3.0/lib/stripe/services/subscription_service.rb +142 -0
  958. data/stripe-19.3.0/lib/stripe/services/tax/association_service.rb +19 -0
  959. data/stripe-19.3.0/lib/stripe/services/tax/calculation_line_item_service.rb +19 -0
  960. data/stripe-19.3.0/lib/stripe/services/tax/calculation_service.rb +37 -0
  961. data/stripe-19.3.0/lib/stripe/services/tax/registration_service.rb +54 -0
  962. data/stripe-19.3.0/lib/stripe/services/tax/settings_service.rb +30 -0
  963. data/stripe-19.3.0/lib/stripe/services/tax/transaction_line_item_service.rb +19 -0
  964. data/stripe-19.3.0/lib/stripe/services/tax/transaction_service.rb +48 -0
  965. data/stripe-19.3.0/lib/stripe/services/tax_code_service.rb +22 -0
  966. data/stripe-19.3.0/lib/stripe/services/tax_id_service.rb +38 -0
  967. data/stripe-19.3.0/lib/stripe/services/tax_rate_service.rb +38 -0
  968. data/stripe-19.3.0/lib/stripe/services/tax_service.rb +17 -0
  969. data/stripe-19.3.0/lib/stripe/services/terminal/configuration_service.rb +63 -0
  970. data/stripe-19.3.0/lib/stripe/services/terminal/connection_token_service.rb +19 -0
  971. data/stripe-19.3.0/lib/stripe/services/terminal/location_service.rb +64 -0
  972. data/stripe-19.3.0/lib/stripe/services/terminal/onboarding_link_service.rb +19 -0
  973. data/stripe-19.3.0/lib/stripe/services/terminal/reader_service.rb +151 -0
  974. data/stripe-19.3.0/lib/stripe/services/terminal_service.rb +17 -0
  975. data/stripe-19.3.0/lib/stripe/services/test_helpers/confirmation_token_service.rb +19 -0
  976. data/stripe-19.3.0/lib/stripe/services/test_helpers/customer_service.rb +19 -0
  977. data/stripe-19.3.0/lib/stripe/services/test_helpers/issuing/authorization_service.rb +99 -0
  978. data/stripe-19.3.0/lib/stripe/services/test_helpers/issuing/card_service.rb +65 -0
  979. data/stripe-19.3.0/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +43 -0
  980. data/stripe-19.3.0/lib/stripe/services/test_helpers/issuing/transaction_service.rb +51 -0
  981. data/stripe-19.3.0/lib/stripe/services/test_helpers/issuing_service.rb +19 -0
  982. data/stripe-19.3.0/lib/stripe/services/test_helpers/refund_service.rb +19 -0
  983. data/stripe-19.3.0/lib/stripe/services/test_helpers/terminal/reader_service.rb +43 -0
  984. data/stripe-19.3.0/lib/stripe/services/test_helpers/terminal_service.rb +15 -0
  985. data/stripe-19.3.0/lib/stripe/services/test_helpers/test_clock_service.rb +63 -0
  986. data/stripe-19.3.0/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +43 -0
  987. data/stripe-19.3.0/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +54 -0
  988. data/stripe-19.3.0/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +54 -0
  989. data/stripe-19.3.0/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +21 -0
  990. data/stripe-19.3.0/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +21 -0
  991. data/stripe-19.3.0/lib/stripe/services/test_helpers/treasury_service.rb +19 -0
  992. data/stripe-19.3.0/lib/stripe/services/test_helpers_service.rb +19 -0
  993. data/stripe-19.3.0/lib/stripe/services/token_service.rb +23 -0
  994. data/stripe-19.3.0/lib/stripe/services/topup_service.rb +49 -0
  995. data/stripe-19.3.0/lib/stripe/services/transfer_reversal_service.rb +56 -0
  996. data/stripe-19.3.0/lib/stripe/services/transfer_service.rb +47 -0
  997. data/stripe-19.3.0/lib/stripe/services/treasury/credit_reversal_service.rb +41 -0
  998. data/stripe-19.3.0/lib/stripe/services/treasury/debit_reversal_service.rb +41 -0
  999. data/stripe-19.3.0/lib/stripe/services/treasury/financial_account_features_service.rb +30 -0
  1000. data/stripe-19.3.0/lib/stripe/services/treasury/financial_account_service.rb +70 -0
  1001. data/stripe-19.3.0/lib/stripe/services/treasury/inbound_transfer_service.rb +52 -0
  1002. data/stripe-19.3.0/lib/stripe/services/treasury/outbound_payment_service.rb +52 -0
  1003. data/stripe-19.3.0/lib/stripe/services/treasury/outbound_transfer_service.rb +52 -0
  1004. data/stripe-19.3.0/lib/stripe/services/treasury/received_credit_service.rb +30 -0
  1005. data/stripe-19.3.0/lib/stripe/services/treasury/received_debit_service.rb +30 -0
  1006. data/stripe-19.3.0/lib/stripe/services/treasury/transaction_entry_service.rb +30 -0
  1007. data/stripe-19.3.0/lib/stripe/services/treasury/transaction_service.rb +30 -0
  1008. data/stripe-19.3.0/lib/stripe/services/treasury_service.rb +22 -0
  1009. data/stripe-19.3.0/lib/stripe/services/v1_services.rb +93 -0
  1010. data/stripe-19.3.0/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +21 -0
  1011. data/stripe-19.3.0/lib/stripe/services/v2/billing/meter_event_service.rb +21 -0
  1012. data/stripe-19.3.0/lib/stripe/services/v2/billing/meter_event_session_service.rb +21 -0
  1013. data/stripe-19.3.0/lib/stripe/services/v2/billing/meter_event_stream_service.rb +23 -0
  1014. data/stripe-19.3.0/lib/stripe/services/v2/billing_service.rb +18 -0
  1015. data/stripe-19.3.0/lib/stripe/services/v2/commerce/product_catalog/import_service.rb +45 -0
  1016. data/stripe-19.3.0/lib/stripe/services/v2/commerce/product_catalog_service.rb +17 -0
  1017. data/stripe-19.3.0/lib/stripe/services/v2/commerce_service.rb +15 -0
  1018. data/stripe-19.3.0/lib/stripe/services/v2/core/account_link_service.rb +23 -0
  1019. data/stripe-19.3.0/lib/stripe/services/v2/core/account_service.rb +91 -0
  1020. data/stripe-19.3.0/lib/stripe/services/v2/core/account_token_service.rb +44 -0
  1021. data/stripe-19.3.0/lib/stripe/services/v2/core/accounts/person_service.rb +85 -0
  1022. data/stripe-19.3.0/lib/stripe/services/v2/core/accounts/person_token_service.rb +43 -0
  1023. data/stripe-19.3.0/lib/stripe/services/v2/core/event_destination_service.rb +98 -0
  1024. data/stripe-19.3.0/lib/stripe/services/v2/core/event_service.rb +33 -0
  1025. data/stripe-19.3.0/lib/stripe/services/v2/core_service.rb +19 -0
  1026. data/stripe-19.3.0/lib/stripe/services/v2_services.rb +15 -0
  1027. data/stripe-19.3.0/lib/stripe/services/webhook_endpoint_service.rb +61 -0
  1028. data/stripe-19.3.0/lib/stripe/services.rb +472 -0
  1029. data/stripe-19.3.0/lib/stripe/singleton_api_resource.rb +26 -0
  1030. data/stripe-19.3.0/lib/stripe/stripe_client.rb +97 -0
  1031. data/stripe-19.3.0/lib/stripe/stripe_configuration.rb +210 -0
  1032. data/stripe-19.3.0/lib/stripe/stripe_context.rb +68 -0
  1033. data/stripe-19.3.0/lib/stripe/stripe_object.rb +692 -0
  1034. data/stripe-19.3.0/lib/stripe/stripe_response.rb +108 -0
  1035. data/stripe-19.3.0/lib/stripe/stripe_service.rb +34 -0
  1036. data/stripe-19.3.0/lib/stripe/util.rb +490 -0
  1037. data/stripe-19.3.0/lib/stripe/v2_list_object.rb +84 -0
  1038. data/stripe-19.3.0/lib/stripe/version.rb +5 -0
  1039. data/stripe-19.3.0/lib/stripe/webhook.rb +129 -0
  1040. data/stripe-19.3.0/lib/stripe.rb +185 -0
  1041. data/stripe-19.3.0/rbi/stripe/resources/v2/core/event_notification.rbi +43 -0
  1042. data/stripe-19.3.0/rbi/stripe/stripe_client.rbi +17 -0
  1043. data/stripe-19.3.0/rbi/stripe.rbi +170441 -0
  1044. metadata +1083 -0
@@ -0,0 +1,1168 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "digest"
4
+ require "socket"
5
+ require "stripe/instrumentation"
6
+
7
+ module Stripe
8
+ # APIRequestor executes requests against the Stripe API and allows a user to
9
+ # recover both a resource a call returns as well as a response object that
10
+ # contains information on the HTTP call.
11
+ class APIRequestor
12
+ # A set of all known thread contexts across all threads and a mutex to
13
+ # synchronize global access to them.
14
+ @thread_contexts_with_connection_managers = Set.new
15
+ @thread_contexts_with_connection_managers_mutex = Mutex.new
16
+ @last_connection_manager_gc = Util.monotonic_time
17
+
18
+ # Initializes a new APIRequestor
19
+ def initialize(config_arg = {})
20
+ @last_request_metrics = Queue.new
21
+
22
+ @config = case config_arg
23
+ when Hash
24
+ StripeConfiguration.new.reverse_duplicate_merge(config_arg)
25
+ when Stripe::StripeConfiguration
26
+ config_arg
27
+ when String
28
+ StripeConfiguration.new.reverse_duplicate_merge(
29
+ { api_key: config_arg }
30
+ )
31
+ else
32
+ raise ArgumentError, "Can't handle argument: #{config_arg}"
33
+ end
34
+ end
35
+
36
+ attr_reader :config, :options
37
+
38
+ # Gets a currently active `APIRequestor`. Set for the current thread when
39
+ # `APIRequestor#request` is being run so that API operations being executed
40
+ # inside of that block can find the currently active requestor. It's reset to
41
+ # the original value (hopefully `nil`) after the block ends.
42
+ #
43
+ # For internal use only. Does not provide a stable API and may be broken
44
+ # with future non-major changes.
45
+ def self.active_requestor
46
+ current_thread_context.active_requestor || default_requestor
47
+ end
48
+
49
+ # Finishes any active connections by closing their TCP connection and
50
+ # clears them from internal tracking in all connection managers across all
51
+ # threads.
52
+ #
53
+ # If passed a `config` object, only clear connection managers for that
54
+ # particular configuration.
55
+ #
56
+ # For internal use only. Does not provide a stable API and may be broken
57
+ # with future non-major changes.
58
+ def self.clear_all_connection_managers(config: nil)
59
+ # Just a quick path for when configuration is being set for the first
60
+ # time before any connections have been opened. There is technically some
61
+ # potential for thread raciness here, but not in a practical sense.
62
+ return if @thread_contexts_with_connection_managers.empty?
63
+
64
+ @thread_contexts_with_connection_managers_mutex.synchronize do
65
+ pruned_contexts = Set.new
66
+
67
+ @thread_contexts_with_connection_managers.each do |thread_context|
68
+ # Note that the thread context itself is not destroyed, but we clear
69
+ # its connection manager and remove our reference to it. If it ever
70
+ # makes a new request we'll give it a new connection manager and
71
+ # it'll go back into `@thread_contexts_with_connection_managers`.
72
+ thread_context.default_connection_managers.reject! do |cm_config, cm|
73
+ if config.nil? || config.key == cm_config
74
+ cm.clear
75
+ true
76
+ end
77
+ end
78
+
79
+ pruned_contexts << thread_context if thread_context.default_connection_managers.empty?
80
+ end
81
+
82
+ @thread_contexts_with_connection_managers.subtract(pruned_contexts)
83
+ end
84
+ end
85
+
86
+ # A default requestor for the current thread.
87
+ def self.default_requestor
88
+ current_thread_context.default_requestor ||= APIRequestor.new(Stripe.config)
89
+ end
90
+
91
+ # A default connection manager for the current thread scoped to the
92
+ # configuration object that may be provided.
93
+ def self.default_connection_manager(config = Stripe.config)
94
+ current_thread_context.default_connection_managers[config.key] ||= begin
95
+ connection_manager = ConnectionManager.new(config)
96
+
97
+ @thread_contexts_with_connection_managers_mutex.synchronize do
98
+ maybe_gc_connection_managers
99
+ @thread_contexts_with_connection_managers << current_thread_context
100
+ end
101
+
102
+ connection_manager
103
+ end
104
+ end
105
+
106
+ # Checks if an error is a problem that we should retry on. This includes
107
+ # both socket errors that may represent an intermittent problem and some
108
+ # special HTTP statuses.
109
+ def self.should_retry?(error,
110
+ num_retries:, config: Stripe.config)
111
+ return false if num_retries >= config.max_network_retries
112
+
113
+ case error
114
+ when Net::OpenTimeout, Net::ReadTimeout, Net::HTTPFatalError
115
+ # Retry on timeout-related problems (either on open or read).
116
+ true
117
+ when EOFError, Errno::ECONNREFUSED, Errno::ECONNRESET, # rubocop:todo Lint/DuplicateBranch
118
+ Errno::EHOSTUNREACH, Errno::ETIMEDOUT, SocketError
119
+ # Destination refused the connection, the connection was reset, or a
120
+ # variety of other connection failures. This could occur from a single
121
+ # saturated server, so retry in case it's intermittent.
122
+ true
123
+ when Stripe::StripeError
124
+ # The API may ask us not to retry (e.g. if doing so would be a no-op),
125
+ # or advise us to retry (e.g. in cases of lock timeouts). Defer to
126
+ # those instructions if given.
127
+ return false if error.http_headers["stripe-should-retry"] == "false"
128
+ return true if error.http_headers["stripe-should-retry"] == "true"
129
+
130
+ # 409 Conflict
131
+ return true if error.http_status == 409
132
+
133
+ # 429 Too Many Requests
134
+ #
135
+ # There are a few different problems that can lead to a 429. The most
136
+ # common is rate limiting, on which we *don't* want to retry because
137
+ # that'd likely contribute to more contention problems. However, some
138
+ # 429s are lock timeouts, which is when a request conflicted with
139
+ # another request or an internal process on some particular object.
140
+ # These 429s are safe to retry.
141
+ return true if error.http_status == 429 && error.code == "lock_timeout"
142
+
143
+ # Retry on 500, 503, and other internal errors.
144
+ #
145
+ # Note that we expect the stripe-should-retry header to be false
146
+ # in most cases when a 500 is returned, since our idempotency framework
147
+ # would typically replay it anyway.
148
+ true if error.http_status >= 500
149
+ else
150
+ false
151
+ end
152
+ end
153
+
154
+ def self.sleep_time(num_retries, config: Stripe.config)
155
+ # Apply exponential backoff with initial_network_retry_delay on the
156
+ # number of num_retries so far as inputs. Do not allow the number to
157
+ # exceed max_network_retry_delay.
158
+ sleep_seconds = [
159
+ config.initial_network_retry_delay * (2**(num_retries - 1)),
160
+ config.max_network_retry_delay,
161
+ ].min
162
+
163
+ # Apply some jitter by randomizing the value in the range of
164
+ # (sleep_seconds / 2) to (sleep_seconds).
165
+ sleep_seconds *= (0.5 * (1 + rand))
166
+
167
+ # But never sleep less than the base sleep seconds.
168
+ [config.initial_network_retry_delay, sleep_seconds].max
169
+ end
170
+
171
+ # Executes the API call within the given block. Usage looks like:
172
+ #
173
+ # client = APIRequestor.new
174
+ # charge, resp = client.request { Charge.create }
175
+ #
176
+ def request
177
+ old_api_requestor = self.class.current_thread_context.active_requestor
178
+ self.class.current_thread_context.active_requestor = self
179
+
180
+ if self.class.current_thread_context.last_responses&.key?(object_id)
181
+ raise "calls to APIRequestor#request cannot be nested within a thread"
182
+ end
183
+
184
+ self.class.current_thread_context.last_responses ||= {}
185
+ self.class.current_thread_context.last_responses[object_id] = nil
186
+
187
+ begin
188
+ res = yield
189
+ [res, self.class.current_thread_context.last_responses[object_id]]
190
+ ensure
191
+ self.class.current_thread_context.active_requestor = old_api_requestor
192
+ self.class.current_thread_context.last_responses.delete(object_id)
193
+ end
194
+ end
195
+ extend Gem::Deprecate
196
+ deprecate :request, "StripeClient#raw_request", 2024, 9
197
+
198
+ def execute_request(method, path, base_address,
199
+ params: {}, opts: {}, usage: [])
200
+ params = params.to_h if params.is_a?(RequestParams)
201
+ http_resp, req_opts = execute_request_internal(
202
+ method, path, base_address, params, opts, usage
203
+ )
204
+ req_opts = RequestOptions.extract_opts_from_hash(req_opts)
205
+
206
+ notice = http_resp["stripe-notice"]
207
+ warn("WARNING: #{notice}") if notice
208
+
209
+ resp = interpret_response(http_resp)
210
+
211
+ # If being called from `APIRequestor#request`, put the last response in
212
+ # thread-local memory so that it can be returned to the user. Don't store
213
+ # anything otherwise so that we don't leak memory.
214
+ store_last_response(object_id, resp)
215
+
216
+ api_mode = Util.get_api_mode(path)
217
+ Util.convert_to_stripe_object_with_params(resp.data, params, RequestOptions.persistable(req_opts), resp,
218
+ api_mode: api_mode, requestor: self,
219
+ v2_deleted_object: method == :delete && api_mode == :v2)
220
+ end
221
+
222
+ # Execute request without instantiating a new object if the relevant object's name matches the class
223
+ #
224
+ # For internal use only. Does not provide a stable API and may be broken
225
+ # with future non-major changes.
226
+ def execute_request_initialize_from(method, path, base_address, object,
227
+ params: {}, opts: {}, usage: [])
228
+ opts = RequestOptions.combine_opts(object.instance_variable_get(:@opts) || {}, opts)
229
+ opts = Util.normalize_opts(opts)
230
+
231
+ params = params.to_h if params.is_a?(RequestParams)
232
+
233
+ http_resp, req_opts = execute_request_internal(
234
+ method, path, base_address, params, opts, usage
235
+ )
236
+ req_opts = RequestOptions.extract_opts_from_hash(req_opts)
237
+
238
+ resp = interpret_response(http_resp)
239
+
240
+ # If being called from `APIRequestor#request`, put the last response in
241
+ # thread-local memory so that it can be returned to the user. Don't store
242
+ # anything otherwise so that we don't leak memory.
243
+ store_last_response(object_id, resp)
244
+
245
+ if Util.object_name_matches_class?(resp.data[:object], object.class)
246
+ object.send(:initialize_from,
247
+ resp.data, RequestOptions.persistable(req_opts), resp,
248
+ api_mode: :v1, requestor: self)
249
+ else
250
+ Util.convert_to_stripe_object_with_params(resp.data, params,
251
+ RequestOptions.persistable(req_opts),
252
+ resp, api_mode: :v1, requestor: self)
253
+ end
254
+ end
255
+
256
+ def interpret_response(http_resp)
257
+ StripeResponse.from_net_http(http_resp)
258
+ rescue JSON::ParserError
259
+ raise general_api_error(http_resp.code.to_i, http_resp.body)
260
+ end
261
+
262
+ # Executes a request and returns the body as a stream instead of converting
263
+ # it to a StripeObject. This should be used for any request where we expect
264
+ # an arbitrary binary response.
265
+ #
266
+ # A `read_body_chunk` block can be passed, which will be called repeatedly
267
+ # with the body chunks read from the socket.
268
+ #
269
+ # If a block is passed, a StripeHeadersOnlyResponse is returned as the
270
+ # block is expected to do all the necessary body processing. If no block is
271
+ # passed, then a StripeStreamResponse is returned containing an IO stream
272
+ # with the response body.
273
+ def execute_request_stream(method, path,
274
+ base_address,
275
+ params: {}, opts: {}, usage: [],
276
+ &read_body_chunk_block)
277
+ unless block_given?
278
+ raise ArgumentError,
279
+ "execute_request_stream requires a read_body_chunk_block"
280
+ end
281
+
282
+ params = params.to_h if params.is_a?(RequestParams)
283
+ http_resp, api_key = execute_request_internal(
284
+ method, path, base_address, params, opts, usage, &read_body_chunk_block
285
+ )
286
+
287
+ # When the read_body_chunk_block is given, we no longer have access to the
288
+ # response body at this point and so return a response object containing
289
+ # only the headers. This is because the body was consumed by the block.
290
+ resp = StripeHeadersOnlyResponse.from_net_http(http_resp)
291
+
292
+ [resp, api_key]
293
+ end
294
+
295
+ def store_last_response(object_id, resp)
296
+ return unless last_response_has_key?(object_id)
297
+
298
+ self.class.current_thread_context.last_responses[object_id] = resp
299
+ end
300
+
301
+ def last_response_has_key?(object_id)
302
+ self.class.current_thread_context.last_responses&.key?(object_id)
303
+ end
304
+
305
+ #
306
+ # private
307
+ #
308
+
309
+ # Time (in seconds) that a connection manager has not been used before it's
310
+ # eligible for garbage collection.
311
+ CONNECTION_MANAGER_GC_LAST_USED_EXPIRY = 120
312
+
313
+ # How often to check (in seconds) for connection managers that haven't been
314
+ # used in a long time and which should be garbage collected.
315
+ CONNECTION_MANAGER_GC_PERIOD = 60
316
+
317
+ ERROR_MESSAGE_CONNECTION =
318
+ "Unexpected error communicating when trying to connect to " \
319
+ "Stripe (%s). You may be seeing this message because your DNS is not " \
320
+ "working or you don't have an internet connection. To check, try " \
321
+ "running `host stripe.com` from the command line."
322
+ ERROR_MESSAGE_SSL =
323
+ "Could not establish a secure connection to Stripe (%s), you " \
324
+ "may need to upgrade your OpenSSL version. To check, try running " \
325
+ "`openssl s_client -connect api.stripe.com:443` from the command " \
326
+ "line."
327
+
328
+ # Common error suffix sared by both connect and read timeout messages.
329
+ ERROR_MESSAGE_TIMEOUT_SUFFIX =
330
+ "Please check your internet connection and try again. " \
331
+ "If this problem persists, you should check Stripe's service " \
332
+ "status at https://status.stripe.com, or let us know at " \
333
+ "support@stripe.com."
334
+
335
+ ERROR_MESSAGE_TIMEOUT_CONNECT = (
336
+ "Timed out connecting to Stripe (%s). " +
337
+ ERROR_MESSAGE_TIMEOUT_SUFFIX
338
+ ).freeze
339
+
340
+ ERROR_MESSAGE_TIMEOUT_READ = (
341
+ "Timed out communicating with Stripe (%s). " +
342
+ ERROR_MESSAGE_TIMEOUT_SUFFIX
343
+ ).freeze
344
+
345
+ # Maps types of exceptions that we're likely to see during a network
346
+ # request to more user-friendly messages that we put in front of people.
347
+ # The original error message is also appended onto the final exception for
348
+ # full transparency.
349
+ NETWORK_ERROR_MESSAGES_MAP = {
350
+ EOFError => ERROR_MESSAGE_CONNECTION,
351
+ Errno::ECONNREFUSED => ERROR_MESSAGE_CONNECTION,
352
+ Errno::ECONNRESET => ERROR_MESSAGE_CONNECTION,
353
+ Errno::EHOSTUNREACH => ERROR_MESSAGE_CONNECTION,
354
+ Errno::ETIMEDOUT => ERROR_MESSAGE_TIMEOUT_CONNECT,
355
+ SocketError => ERROR_MESSAGE_CONNECTION,
356
+
357
+ Net::HTTPFatalError => ERROR_MESSAGE_CONNECTION,
358
+ Net::OpenTimeout => ERROR_MESSAGE_TIMEOUT_CONNECT,
359
+ Net::ReadTimeout => ERROR_MESSAGE_TIMEOUT_READ,
360
+
361
+ OpenSSL::SSL::SSLError => ERROR_MESSAGE_SSL,
362
+ }.freeze
363
+ private_constant :NETWORK_ERROR_MESSAGES_MAP
364
+
365
+ # A record representing any data that `APIRequestor` puts into
366
+ # `Thread.current`. Making it a class likes this gives us a little extra
367
+ # type safety and lets us document what each field does.
368
+ #
369
+ # For internal use only. Does not provide a stable API and may be broken
370
+ # with future non-major changes.
371
+ class ThreadContext
372
+ # A `APIRequestor` that's been flagged as currently active within a
373
+ # thread by `APIRequestor#request`. A requestor stays active until the
374
+ # completion of the request block.
375
+ attr_accessor :active_requestor
376
+
377
+ # A default `APIRequestor` object for the thread. Used in all cases where
378
+ # the user hasn't specified their own.
379
+ attr_accessor :default_requestor
380
+
381
+ # A temporary map of object IDs to responses from last executed API
382
+ # calls. Used to return a responses from calls to `APIRequestor#request`.
383
+ #
384
+ # Stored in the thread data to make the use of a single `APIRequestor`
385
+ # object safe across multiple threads. Stored as a map so that multiple
386
+ # `APIRequestor` objects can run concurrently on the same thread.
387
+ #
388
+ # Responses are only left in as long as they're needed, which means
389
+ # they're removed as soon as a call leaves `APIRequestor#request`, and
390
+ # because that's wrapped in an `ensure` block, they should never leave
391
+ # garbage in `Thread.current`.
392
+ attr_accessor :last_responses
393
+
394
+ # A map of connection mangers for the thread. Normally shared between
395
+ # all `APIRequestor` objects on a particular thread, and created so as to
396
+ # minimize the number of open connections that an application needs.
397
+ def default_connection_managers
398
+ @default_connection_managers ||= {}
399
+ end
400
+
401
+ def reset_connection_managers
402
+ @default_connection_managers = {}
403
+ end
404
+ end
405
+
406
+ # Access data stored for `APIRequestor` within the thread's current
407
+ # context. Returns `ThreadContext`.
408
+ #
409
+ # For internal use only. Does not provide a stable API and may be broken
410
+ # with future non-major changes.
411
+ def self.current_thread_context
412
+ Thread.current[:api_requestor__internal_use_only] ||= ThreadContext.new
413
+ end
414
+
415
+ # Garbage collects connection managers that haven't been used in some time,
416
+ # with the idea being that we want to remove old connection managers that
417
+ # belong to dead threads and the like.
418
+ #
419
+ # Prefixed with `maybe_` because garbage collection will only run
420
+ # periodically so that we're not constantly engaged in busy work. If
421
+ # connection managers live a little passed their useful age it's not
422
+ # harmful, so it's not necessary to get them right away.
423
+ #
424
+ # For testability, returns `nil` if it didn't run and the number of
425
+ # connection managers that were garbage collected otherwise.
426
+ #
427
+ # IMPORTANT: This method is not thread-safe and expects to be called inside
428
+ # a lock on `@thread_contexts_with_connection_managers_mutex`.
429
+ #
430
+ # For internal use only. Does not provide a stable API and may be broken
431
+ # with future non-major changes.
432
+ def self.maybe_gc_connection_managers
433
+ next_gc_time = @last_connection_manager_gc + CONNECTION_MANAGER_GC_PERIOD
434
+ return nil if next_gc_time > Util.monotonic_time
435
+
436
+ last_used_threshold =
437
+ Util.monotonic_time - CONNECTION_MANAGER_GC_LAST_USED_EXPIRY
438
+
439
+ pruned_contexts = []
440
+ @thread_contexts_with_connection_managers.each do |thread_context|
441
+ thread_context
442
+ .default_connection_managers
443
+ .each do |config_key, connection_manager|
444
+ next if connection_manager.last_used > last_used_threshold
445
+
446
+ connection_manager.clear
447
+ thread_context.default_connection_managers.delete(config_key)
448
+ end
449
+ end
450
+
451
+ @thread_contexts_with_connection_managers.each do |thread_context|
452
+ next unless thread_context.default_connection_managers.empty?
453
+
454
+ pruned_contexts << thread_context
455
+ end
456
+
457
+ @thread_contexts_with_connection_managers -= pruned_contexts
458
+ @last_connection_manager_gc = Util.monotonic_time
459
+
460
+ pruned_contexts.count
461
+ end
462
+
463
+ private def execute_request_internal(method, path,
464
+ base_address, params, opts, usage,
465
+ &read_body_chunk_block)
466
+ api_mode = Util.get_api_mode(path)
467
+ opts = RequestOptions.merge_config_and_opts(config, opts)
468
+
469
+ raise ArgumentError, "method should be a symbol" \
470
+ unless method.is_a?(Symbol)
471
+ raise ArgumentError, "path should be a string" \
472
+ unless path.is_a?(String)
473
+
474
+ base_url ||= config.base_addresses[base_address]
475
+
476
+ raise ArgumentError, "api_base cannot be empty" if base_url.nil? || base_url.empty?
477
+
478
+ api_key ||= opts[:api_key]
479
+
480
+ check_api_key!(api_key)
481
+
482
+ body_params = nil
483
+ query_params = nil
484
+ case method
485
+ when :get, :head, :delete
486
+ query_params = Util.objects_to_ids(params)
487
+ else
488
+ # For v2 body params, serialize nil values to preserve explicit nulls
489
+ body_params = Util.objects_to_ids(params, serialize_empty: api_mode == :v2)
490
+ end
491
+
492
+ query_params, path = merge_query_params(query_params, path)
493
+
494
+ headers = request_headers(method, api_mode, opts)
495
+ url = api_url(path, base_url)
496
+
497
+ # Merge given query parameters with any already encoded in the path.
498
+ query = query_params ? Util.encode_parameters(query_params, api_mode) : nil
499
+
500
+ # Encoding body parameters is a little more complex because we may have
501
+ # to send a multipart-encoded body. `body_log` is produced separately as
502
+ # a log-friendly variant of the encoded form. File objects are displayed
503
+ # as such instead of as their file contents.
504
+ body, body_log =
505
+ body_params ? encode_body(body_params, headers, api_mode) : [nil, nil]
506
+
507
+ # stores information on the request we're about to make so that we don't
508
+ # have to pass as many parameters around for logging.
509
+ context = RequestLogContext.new
510
+ context.account = headers["Stripe-Account"]
511
+ context.api_key = api_key
512
+ context.api_version = headers["Stripe-Version"]
513
+ context.body = body_log
514
+ context.idempotency_key = headers["Idempotency-Key"]
515
+ context.method = method
516
+ context.path = path
517
+ context.query = query
518
+
519
+ # A block can be passed in to read the content directly from the response.
520
+ # We want to execute this block only when the response was actually
521
+ # successful. When it wasn't, we defer to the standard error handling as
522
+ # we have to read the body and parse the error JSON.
523
+ response_block =
524
+ if block_given?
525
+ lambda do |response|
526
+ response.read_body(&read_body_chunk_block) unless should_handle_as_error(response.code.to_i)
527
+ end
528
+ end
529
+
530
+ http_resp =
531
+ execute_request_with_rescues(base_url, headers, api_mode, usage, context) do
532
+ self.class
533
+ .default_connection_manager(config)
534
+ .execute_request(method, url,
535
+ body: body,
536
+ headers: headers,
537
+ query: query,
538
+ &response_block)
539
+ end
540
+
541
+ [http_resp, opts]
542
+ end
543
+
544
+ private def api_url(url, base_url)
545
+ base_url + url
546
+ end
547
+
548
+ private def check_api_key!(api_key)
549
+ unless api_key
550
+ raise AuthenticationError, "No API key provided. " \
551
+ 'Set your API key using "Stripe.api_key = <API-KEY>". ' \
552
+ "You can generate API keys from the Stripe web interface. " \
553
+ "See https://stripe.com/api for details, or email " \
554
+ "support@stripe.com if you have any questions."
555
+ end
556
+
557
+ return unless api_key =~ /\s/
558
+
559
+ raise AuthenticationError, "Your API key is invalid, as it contains " \
560
+ "whitespace. (HINT: You can double-check your API key from the " \
561
+ "Stripe web interface. See https://stripe.com/api for details, or " \
562
+ "email support@stripe.com if you have any questions.)"
563
+ end
564
+
565
+ # Encodes a set of body parameters using multipart if `Content-Type` is set
566
+ # for that, or standard form-encoding otherwise. Returns the encoded body
567
+ # and a version of the encoded body that's safe to be logged.
568
+ private def encode_body(body_params, headers, api_mode)
569
+ body = nil
570
+ flattened_params = Util.flatten_params(body_params, api_mode)
571
+
572
+ if headers["Content-Type"] == MultipartEncoder::MULTIPART_FORM_DATA
573
+ body, content_type = MultipartEncoder.encode(flattened_params)
574
+
575
+ # Set a new content type that also includes the multipart boundary.
576
+ # See `MultipartEncoder` for details.
577
+ headers["Content-Type"] = content_type
578
+
579
+ # `#to_s` any complex objects like files and the like to build output
580
+ # that's more conducive to logging.
581
+ flattened_params =
582
+ # https://go/j/RUN_DEVSDK-1956 - this is probably a bug
583
+ # once fixed, you can remove the exclusions referencing this ticket in .rubocop.yml
584
+ flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
585
+
586
+ elsif api_mode == :v2
587
+ body = JSON.generate(body_params)
588
+ headers["Content-Type"] = "application/json"
589
+ else
590
+ body = Util.encode_parameters(body_params, api_mode)
591
+ headers["Content-Type"] = "application/x-www-form-urlencoded"
592
+ end
593
+
594
+ body_log = if api_mode == :v2
595
+ body
596
+ else
597
+ # We don't use `Util.encode_parameters` partly as an optimization (to
598
+ # not redo work we've already done), and partly because the encoded
599
+ # forms of certain characters introduce a lot of visual noise and it's
600
+ # nice to have a clearer format for logs.
601
+ flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
602
+ end
603
+
604
+ [body, body_log]
605
+ end
606
+
607
+ private def should_handle_as_error(http_status)
608
+ http_status >= 400
609
+ end
610
+
611
+ private def execute_request_with_rescues(base_url, headers, api_mode, usage, context)
612
+ num_retries = 0
613
+
614
+ begin
615
+ request_start = nil
616
+ user_data = nil
617
+
618
+ log_request(context, num_retries)
619
+ user_data = notify_request_begin(context)
620
+
621
+ request_start = Util.monotonic_time
622
+ resp = yield
623
+ request_duration = Util.monotonic_time - request_start
624
+
625
+ http_status = resp.code.to_i
626
+ context = context.dup_from_response_headers(resp)
627
+
628
+ handle_error_response(resp, context, api_mode) if should_handle_as_error(http_status)
629
+
630
+ log_response(context, request_start, http_status, resp.body, resp)
631
+ notify_request_end(context, request_duration, http_status,
632
+ num_retries, user_data, resp, headers)
633
+
634
+ if config.enable_telemetry? && context.request_id
635
+ request_duration_ms = (request_duration * 1000).to_i
636
+ @last_request_metrics << StripeRequestMetrics.new(context.request_id, request_duration_ms, usage: usage)
637
+ end
638
+
639
+ # We rescue all exceptions from a request so that we have an easy spot to
640
+ # implement our retry logic across the board. We'll re-raise if it's a
641
+ # type of exception that we didn't expect to handle.
642
+ rescue StandardError => e
643
+ # If we modify context we copy it into a new variable so as not to
644
+ # taint the original on a retry.
645
+ error_context = context
646
+ http_status = nil
647
+ request_duration = Util.monotonic_time - request_start if request_start
648
+
649
+ if e.is_a?(Stripe::StripeError)
650
+ error_context = context.dup_from_response_headers(e.http_headers)
651
+ http_status = resp.code.to_i
652
+ log_response(error_context, request_start,
653
+ e.http_status, e.http_body, resp)
654
+ else
655
+ log_response_error(error_context, request_start, e)
656
+ end
657
+ notify_request_end(context, request_duration, http_status, num_retries,
658
+ user_data, resp, headers)
659
+
660
+ if self.class.should_retry?(e,
661
+ num_retries: num_retries,
662
+ config: config)
663
+ num_retries += 1
664
+ sleep self.class.sleep_time(num_retries, config: config)
665
+ retry
666
+ end
667
+
668
+ case e
669
+ when Stripe::StripeError
670
+ raise
671
+ when *NETWORK_ERROR_MESSAGES_MAP.keys
672
+ handle_network_error(e, error_context, num_retries, base_url)
673
+
674
+ # Only handle errors when we know we can do so, and re-raise otherwise.
675
+ # This should be pretty infrequent.
676
+ else # rubocop:todo Lint/DuplicateBranch
677
+ raise
678
+ end
679
+ end
680
+
681
+ resp
682
+ end
683
+
684
+ private def notify_request_begin(context)
685
+ return unless Instrumentation.any_subscribers?(:request_begin)
686
+
687
+ event = Instrumentation::RequestBeginEvent.new(
688
+ method: context.method,
689
+ path: context.path,
690
+ user_data: {}
691
+ )
692
+ Stripe::Instrumentation.notify(:request_begin, event)
693
+
694
+ # This field may be set in the `request_begin` callback. If so, we'll
695
+ # forward it onto `request_end`.
696
+ event.user_data
697
+ end
698
+
699
+ private def notify_request_end(context, duration, http_status, num_retries,
700
+ user_data, resp, headers)
701
+ return if !Instrumentation.any_subscribers?(:request_end) &&
702
+ !Instrumentation.any_subscribers?(:request)
703
+
704
+ request_context = Stripe::Instrumentation::RequestContext.new(
705
+ duration: duration,
706
+ context: context,
707
+ header: headers
708
+ )
709
+ response_context = Stripe::Instrumentation::ResponseContext.new(
710
+ http_status: http_status,
711
+ response: resp
712
+ )
713
+
714
+ event = Instrumentation::RequestEndEvent.new(
715
+ request_context: request_context,
716
+ response_context: response_context,
717
+ num_retries: num_retries,
718
+ user_data: user_data || {}
719
+ )
720
+ Stripe::Instrumentation.notify(:request_end, event)
721
+
722
+ # The name before `request_begin` was also added. Provided for backwards
723
+ # compatibility.
724
+ Stripe::Instrumentation.notify(:request, event)
725
+ end
726
+
727
+ private def general_api_error(status, body)
728
+ APIError.new("Invalid response object from API: #{body.inspect} " \
729
+ "(HTTP response code was #{status})",
730
+ http_status: status, http_body: body)
731
+ end
732
+
733
+ # Formats a plugin "app info" hash into a string that we can tack onto the
734
+ # end of a User-Agent string where it'll be fairly prominent in places like
735
+ # the Dashboard. Note that this formatting has been implemented to match
736
+ # other libraries, and shouldn't be changed without universal consensus.
737
+ private def format_app_info(info)
738
+ str = info[:name]
739
+ str = "#{str}/#{info[:version]}" unless info[:version].nil?
740
+ str = "#{str} (#{info[:url]})" unless info[:url].nil?
741
+ str
742
+ end
743
+
744
+ private def handle_error_response(http_resp, context, api_mode)
745
+ begin
746
+ resp = StripeResponse.from_net_http(http_resp)
747
+ error_data = resp.data[:error]
748
+
749
+ raise StripeError, "Indeterminate error" unless error_data
750
+ rescue JSON::ParserError, StripeError
751
+ raise general_api_error(http_resp.code.to_i, http_resp.body)
752
+ end
753
+
754
+ error = if error_data.is_a?(String)
755
+ specific_oauth_error(resp, error_data, context)
756
+ elsif api_mode == :v2
757
+ specific_v2_api_error(resp, error_data, context)
758
+ else
759
+ specific_api_error(resp, error_data, context)
760
+ end
761
+
762
+ error.response = resp
763
+ raise(error)
764
+ end
765
+
766
+ # Works around an edge case where we end up with both query parameters from
767
+ # parameteers and query parameters that were appended onto the end of the
768
+ # given path.
769
+ #
770
+ # Decode any parameters that were added onto the end of a path and add them
771
+ # to a unified query parameter hash so that all parameters end up in one
772
+ # place and all of them are correctly included in the final request.
773
+ private def merge_query_params(query_params, path)
774
+ u = URI.parse(path)
775
+
776
+ # Return original results if there was nothing to be found.
777
+ return query_params, path if u.query.nil?
778
+
779
+ query_params ||= {}
780
+ query_params = Hash[URI.decode_www_form(u.query)].merge(query_params)
781
+
782
+ # Reset the path minus any query parameters that were specified.
783
+ path = u.path
784
+
785
+ [query_params, path]
786
+ end
787
+
788
+ private def specific_api_error(resp, error_data, context)
789
+ Util.log_error("Stripe API error",
790
+ status: resp.http_status,
791
+ error_code: error_data[:code],
792
+ error_message: error_data[:message],
793
+ error_param: error_data[:param],
794
+ error_type: error_data[:type],
795
+ idempotency_key: context.idempotency_key,
796
+ request_id: context.request_id,
797
+ config: config)
798
+
799
+ # The standard set of arguments that can be used to initialize most of
800
+ # the exceptions.
801
+ opts = {
802
+ http_body: resp.http_body,
803
+ http_headers: resp.http_headers,
804
+ http_status: resp.http_status,
805
+ json_body: resp.data,
806
+ code: error_data[:code],
807
+ }
808
+
809
+ case resp.http_status
810
+ when 400, 404
811
+ case error_data[:type]
812
+ when "idempotency_error"
813
+ IdempotencyError.new(error_data[:message], **opts)
814
+ else
815
+ InvalidRequestError.new(
816
+ error_data[:message], error_data[:param],
817
+ **opts
818
+ )
819
+ end
820
+ when 401
821
+ AuthenticationError.new(error_data[:message], **opts)
822
+ when 402
823
+ CardError.new(
824
+ error_data[:message], error_data[:param],
825
+ **opts
826
+ )
827
+ when 403
828
+ PermissionError.new(error_data[:message], **opts)
829
+ when 429
830
+ RateLimitError.new(error_data[:message], **opts)
831
+ else
832
+ APIError.new(error_data[:message], **opts)
833
+ end
834
+ end
835
+
836
+ private def specific_v2_api_error(resp, error_data, context)
837
+ Util.log_error("Stripe v2 API error",
838
+ status: resp.http_status,
839
+ error_code: error_data[:code],
840
+ error_message: error_data[:message],
841
+ error_param: error_data[:param],
842
+ error_type: error_data[:type],
843
+ idempotency_key: context.idempotency_key,
844
+ request_id: context.request_id,
845
+ config: config)
846
+
847
+ # The standard set of arguments that can be used to initialize most of
848
+ # the exceptions.
849
+ opts = {
850
+ http_body: resp.http_body,
851
+ http_headers: resp.http_headers,
852
+ http_status: resp.http_status,
853
+ json_body: resp.data,
854
+ code: error_data[:code],
855
+ }
856
+
857
+ case error_data[:type]
858
+ when "idempotency_error"
859
+ IdempotencyError.new(error_data[:message], **opts)
860
+ # switch cases: The beginning of the section generated from our OpenAPI spec
861
+ when "rate_limit"
862
+ RateLimitError.new(error_data[:message], **opts)
863
+ when "temporary_session_expired"
864
+ TemporarySessionExpiredError.new(error_data[:message], **opts)
865
+ # switch cases: The end of the section generated from our OpenAPI spec
866
+ else
867
+ specific_api_error(resp, error_data, context)
868
+ end
869
+ end
870
+
871
+ # Attempts to look at a response's error code and return an OAuth error if
872
+ # one matches. Will return `nil` if the code isn't recognized.
873
+ private def specific_oauth_error(resp, error_code, context)
874
+ description = resp.data[:error_description] || error_code
875
+
876
+ Util.log_error("Stripe OAuth error",
877
+ status: resp.http_status,
878
+ error_code: error_code,
879
+ error_description: description,
880
+ idempotency_key: context.idempotency_key,
881
+ request_id: context.request_id,
882
+ config: config)
883
+
884
+ args = {
885
+ http_status: resp.http_status, http_body: resp.http_body,
886
+ json_body: resp.data, http_headers: resp.http_headers,
887
+ }
888
+
889
+ case error_code
890
+ when "invalid_client"
891
+ OAuth::InvalidClientError.new(error_code, description, **args)
892
+ when "invalid_grant"
893
+ OAuth::InvalidGrantError.new(error_code, description, **args)
894
+ when "invalid_request"
895
+ OAuth::InvalidRequestError.new(error_code, description, **args)
896
+ when "invalid_scope"
897
+ OAuth::InvalidScopeError.new(error_code, description, **args)
898
+ when "unsupported_grant_type"
899
+ OAuth::UnsupportedGrantTypeError.new(error_code, description, **args)
900
+ when "unsupported_response_type"
901
+ OAuth::UnsupportedResponseTypeError.new(error_code, description, **args)
902
+ else
903
+ # We'd prefer that all errors are typed, but we create a generic
904
+ # OAuthError in case we run into a code that we don't recognize.
905
+ OAuth::OAuthError.new(error_code, description, **args)
906
+ end
907
+ end
908
+
909
+ private def handle_network_error(error, context, num_retries,
910
+ base_url)
911
+ Util.log_error("Stripe network error",
912
+ error_message: error.message,
913
+ idempotency_key: context.idempotency_key,
914
+ request_id: context.request_id,
915
+ config: config)
916
+
917
+ errors, message = NETWORK_ERROR_MESSAGES_MAP.detect do |(e, _)|
918
+ error.is_a?(e)
919
+ end
920
+
921
+ if errors.nil?
922
+ message = "Unexpected error #{error.class.name} communicating " \
923
+ "with Stripe. Please let us know at support@stripe.com."
924
+ end
925
+
926
+ message %= base_url
927
+
928
+ message += " Request was retried #{num_retries} times." if num_retries > 0
929
+
930
+ raise APIConnectionError,
931
+ message + "\n\n(Network error: #{error.message})"
932
+ end
933
+
934
+ private def request_headers(method, api_mode, req_opts)
935
+ user_agent = "Stripe/#{api_mode} RubyBindings/#{Stripe::VERSION}"
936
+ user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
937
+
938
+ ai_agent = SystemProfiler.detect_ai_agent
939
+ user_agent += " AIAgent/#{ai_agent}" unless ai_agent.empty?
940
+
941
+ headers = {
942
+ "User-Agent" => user_agent,
943
+ "Authorization" => "Bearer #{req_opts[:api_key]}",
944
+ }
945
+
946
+ if config.enable_telemetry?
947
+ begin
948
+ headers["X-Stripe-Client-Telemetry"] = JSON.generate(
949
+ last_request_metrics: @last_request_metrics.pop(true)&.payload
950
+ )
951
+ rescue ThreadError
952
+ # last_request_metrics is best effort, ignore failures when queue
953
+ # is empty. should fail if this is the first request ever sent
954
+ # on a requestor
955
+ end
956
+ end
957
+
958
+ headers["Idempotency-Key"] = req_opts[:idempotency_key] if req_opts[:idempotency_key]
959
+ # It is only safe to retry network failures on post and delete
960
+ # requests if we add an Idempotency-Key header
961
+ if %i[post delete].include?(method) && (api_mode == :v2 || config.max_network_retries > 0)
962
+ headers["Idempotency-Key"] ||= SecureRandom.uuid
963
+ end
964
+
965
+ headers["Stripe-Version"] = req_opts[:stripe_version] if req_opts[:stripe_version]
966
+ headers["Stripe-Account"] = req_opts[:stripe_account] if req_opts[:stripe_account]
967
+ headers["Stripe-Context"] = req_opts[:stripe_context] if req_opts[:stripe_context]
968
+
969
+ user_agent = SystemProfiler.user_agent
970
+ begin
971
+ headers.update(
972
+ "X-Stripe-Client-User-Agent" => JSON.generate(user_agent)
973
+ )
974
+ rescue StandardError => e
975
+ headers.update(
976
+ "X-Stripe-Client-Raw-User-Agent" => user_agent.inspect,
977
+ :error => "#{e} (#{e.class})"
978
+ )
979
+ end
980
+
981
+ headers.update(req_opts[:headers])
982
+ end
983
+
984
+ private def log_request(context, num_retries)
985
+ Util.log_info("Request to Stripe API",
986
+ account: context.account,
987
+ api_version: context.api_version,
988
+ idempotency_key: context.idempotency_key,
989
+ method: context.method,
990
+ num_retries: num_retries,
991
+ path: context.path,
992
+ config: config)
993
+ Util.log_debug("Request details",
994
+ body: context.body,
995
+ idempotency_key: context.idempotency_key,
996
+ query: context.query,
997
+ config: config,
998
+ process_id: Process.pid,
999
+ thread_object_id: Thread.current.object_id,
1000
+ log_timestamp: Util.monotonic_time)
1001
+ end
1002
+
1003
+ private def log_response(context, request_start, status, body, resp)
1004
+ Util.log_info("Response from Stripe API",
1005
+ account: context.account,
1006
+ api_version: context.api_version,
1007
+ elapsed: Util.monotonic_time - request_start,
1008
+ idempotency_key: context.idempotency_key,
1009
+ method: context.method,
1010
+ path: context.path,
1011
+ request_id: context.request_id,
1012
+ status: status,
1013
+ config: config)
1014
+ Util.log_debug("Response details",
1015
+ body: body,
1016
+ idempotency_key: context.idempotency_key,
1017
+ request_id: context.request_id,
1018
+ config: config,
1019
+ process_id: Process.pid,
1020
+ thread_object_id: Thread.current.object_id,
1021
+ response_object_id: resp.object_id,
1022
+ log_timestamp: Util.monotonic_time)
1023
+
1024
+ return unless context.request_id
1025
+
1026
+ Util.log_debug("Dashboard link for request",
1027
+ idempotency_key: context.idempotency_key,
1028
+ request_id: context.request_id,
1029
+ url: Util.request_id_dashboard_url(context.request_id,
1030
+ context.api_key),
1031
+ config: config)
1032
+ end
1033
+
1034
+ private def log_response_error(context, request_start, error)
1035
+ elapsed = request_start ? Util.monotonic_time - request_start : nil
1036
+ Util.log_error("Request error",
1037
+ elapsed: elapsed,
1038
+ error_message: error.message,
1039
+ idempotency_key: context.idempotency_key,
1040
+ method: context.method,
1041
+ path: context.path,
1042
+ config: config)
1043
+ end
1044
+
1045
+ # RequestLogContext stores information about a request that's begin made so
1046
+ # that we can log certain information. It's useful because it means that we
1047
+ # don't have to pass around as many parameters.
1048
+ class RequestLogContext
1049
+ attr_accessor :body, :account, :api_key, :api_version, :idempotency_key, :method, :path, :query, :request_id
1050
+
1051
+ # The idea with this method is that we might want to update some of
1052
+ # context information because a response that we've received from the API
1053
+ # contains information that's more authoritative than what we started
1054
+ # with for a request. For example, we should trust whatever came back in
1055
+ # a `Stripe-Version` header beyond what configuration information that we
1056
+ # might have had available.
1057
+ def dup_from_response_headers(headers)
1058
+ context = dup
1059
+ context.account = headers["Stripe-Account"]
1060
+ context.api_version = headers["Stripe-Version"]
1061
+ context.idempotency_key = headers["Idempotency-Key"]
1062
+ context.request_id = headers["Request-Id"]
1063
+ context
1064
+ end
1065
+ end
1066
+
1067
+ # SystemProfiler extracts information about the system that we're running
1068
+ # in so that we can generate a rich user agent header to help debug
1069
+ # integrations.
1070
+ class SystemProfiler
1071
+ UNAME_HASH = begin
1072
+ parts = []
1073
+ parts << if RUBY_PLATFORM.match?(/mswin|mingw|cygwin/)
1074
+ begin
1075
+ `ver 2>NUL`.strip
1076
+ rescue StandardError
1077
+ ""
1078
+ end
1079
+ else
1080
+ begin
1081
+ `uname -a 2>/dev/null`.strip
1082
+ rescue StandardError
1083
+ ""
1084
+ end
1085
+ end
1086
+ parts << begin
1087
+ Socket.gethostname
1088
+ rescue StandardError
1089
+ ""
1090
+ end
1091
+ Digest::MD5.hexdigest(parts.join(" "))
1092
+ rescue StandardError
1093
+ ""
1094
+ end
1095
+
1096
+ AI_AGENTS = [
1097
+ # aiAgents: The beginning of the section generated from our OpenAPI spec
1098
+ %w[ANTIGRAVITY_CLI_ALIAS antigravity],
1099
+ %w[CLAUDECODE claude_code],
1100
+ %w[CLINE_ACTIVE cline],
1101
+ %w[CODEX_SANDBOX codex_cli],
1102
+ %w[CODEX_THREAD_ID codex_cli],
1103
+ %w[CODEX_SANDBOX_NETWORK_DISABLED codex_cli],
1104
+ %w[CODEX_CI codex_cli],
1105
+ %w[CURSOR_AGENT cursor],
1106
+ %w[GEMINI_CLI gemini_cli],
1107
+ %w[OPENCLAW_SHELL openclaw],
1108
+ %w[OPENCODE open_code],
1109
+ # aiAgents: The end of the section generated from our OpenAPI spec
1110
+ ].freeze
1111
+
1112
+ def self.detect_ai_agent(env = ENV)
1113
+ AI_AGENTS.each do |env_var, agent_name|
1114
+ return agent_name if env[env_var] && !env[env_var].empty?
1115
+ end
1116
+ ""
1117
+ end
1118
+
1119
+ def self.user_agent
1120
+ lang_version = "#{RUBY_VERSION} p#{RUBY_PATCHLEVEL} " \
1121
+ "(#{RUBY_RELEASE_DATE})"
1122
+
1123
+ ua = {
1124
+ application: Stripe.app_info,
1125
+ bindings_version: Stripe::VERSION,
1126
+ lang: "ruby",
1127
+ lang_version: lang_version,
1128
+ engine: defined?(RUBY_ENGINE) ? RUBY_ENGINE : "",
1129
+ }.delete_if { |_k, v| v.nil? }
1130
+
1131
+ if Stripe.enable_telemetry?
1132
+ ua[:platform] = RUBY_PLATFORM
1133
+ ua[:source] = UNAME_HASH unless UNAME_HASH.empty?
1134
+ end
1135
+
1136
+ ai_agent = detect_ai_agent
1137
+ ua[:ai_agent] = ai_agent unless ai_agent.empty?
1138
+
1139
+ ua
1140
+ end
1141
+ end
1142
+
1143
+ # StripeRequestMetrics tracks metadata to be reported to stripe for metrics
1144
+ # collection
1145
+ class StripeRequestMetrics
1146
+ # The Stripe request ID of the response.
1147
+ attr_accessor :request_id
1148
+
1149
+ # Request duration in milliseconds
1150
+ attr_accessor :request_duration_ms
1151
+
1152
+ # list of names of tracked behaviors associated with this request
1153
+ attr_accessor :usage
1154
+
1155
+ def initialize(request_id, request_duration_ms, usage: [])
1156
+ self.request_id = request_id
1157
+ self.request_duration_ms = request_duration_ms
1158
+ self.usage = usage
1159
+ end
1160
+
1161
+ def payload
1162
+ ret = { request_id: request_id, request_duration_ms: request_duration_ms }
1163
+ ret[:usage] = usage if !usage.nil? && !usage.empty?
1164
+ ret
1165
+ end
1166
+ end
1167
+ end
1168
+ end