paypal-server-sdk 1.0.0 → 2.0.0

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 (402) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -37
  3. data/lib/paypal_server_sdk/api_helper.rb +2 -2
  4. data/lib/paypal_server_sdk/client.rb +16 -3
  5. data/lib/paypal_server_sdk/configuration.rb +10 -8
  6. data/lib/paypal_server_sdk/controllers/base_controller.rb +4 -10
  7. data/lib/paypal_server_sdk/controllers/o_auth_authorization_controller.rb +4 -4
  8. data/lib/paypal_server_sdk/controllers/orders_controller.rb +101 -61
  9. data/lib/paypal_server_sdk/controllers/payments_controller.rb +31 -21
  10. data/lib/paypal_server_sdk/controllers/subscriptions_controller.rb +843 -0
  11. data/lib/paypal_server_sdk/controllers/transaction_search_controller.rb +178 -0
  12. data/lib/paypal_server_sdk/controllers/vault_controller.rb +14 -14
  13. data/lib/paypal_server_sdk/exceptions/api_exception.rb +2 -2
  14. data/lib/paypal_server_sdk/exceptions/default_error_exception.rb +95 -0
  15. data/lib/paypal_server_sdk/exceptions/error_exception.rb +7 -5
  16. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +7 -5
  17. data/lib/paypal_server_sdk/exceptions/search_error_exception.rb +107 -0
  18. data/lib/paypal_server_sdk/exceptions/subscription_error_exception.rb +95 -0
  19. data/lib/paypal_server_sdk/http/api_response.rb +6 -8
  20. data/lib/paypal_server_sdk/http/auth/o_auth2.rb +3 -3
  21. data/lib/paypal_server_sdk/http/http_call_back.rb +2 -2
  22. data/lib/paypal_server_sdk/http/http_method_enum.rb +2 -2
  23. data/lib/paypal_server_sdk/http/http_request.rb +2 -2
  24. data/lib/paypal_server_sdk/http/http_response.rb +2 -2
  25. data/lib/paypal_server_sdk/http/proxy_settings.rb +13 -0
  26. data/lib/paypal_server_sdk/logging/configuration/api_logging_configuration.rb +2 -2
  27. data/lib/paypal_server_sdk/logging/sdk_logger.rb +2 -2
  28. data/lib/paypal_server_sdk/models/activate_subscription_request.rb +63 -0
  29. data/lib/paypal_server_sdk/models/activity_timestamps.rb +2 -2
  30. data/lib/paypal_server_sdk/models/address.rb +2 -2
  31. data/lib/paypal_server_sdk/models/amount_breakdown.rb +4 -4
  32. data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +2 -2
  33. data/lib/paypal_server_sdk/models/app_switch_context.rb +74 -0
  34. data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +4 -3
  35. data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +2 -2
  36. data/lib/paypal_server_sdk/models/apple_pay_card.rb +2 -2
  37. data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +2 -2
  38. data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +2 -2
  39. data/lib/paypal_server_sdk/models/apple_pay_experience_context.rb +68 -0
  40. data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +2 -2
  41. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +2 -2
  42. data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +2 -2
  43. data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +2 -2
  44. data/lib/paypal_server_sdk/models/apple_pay_request.rb +20 -6
  45. data/lib/paypal_server_sdk/models/apple_pay_request_card.rb +88 -0
  46. data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +3 -4
  47. data/lib/paypal_server_sdk/models/application_context_user_action.rb +29 -0
  48. data/lib/paypal_server_sdk/models/assurance_details.rb +2 -2
  49. data/lib/paypal_server_sdk/models/auction_information.rb +100 -0
  50. data/lib/paypal_server_sdk/models/authentication_response.rb +2 -2
  51. data/lib/paypal_server_sdk/models/authorization.rb +4 -4
  52. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +2 -2
  53. data/lib/paypal_server_sdk/models/authorization_status.rb +2 -2
  54. data/lib/paypal_server_sdk/models/authorization_status_details.rb +2 -2
  55. data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +2 -2
  56. data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +4 -4
  57. data/lib/paypal_server_sdk/models/avs_code.rb +2 -2
  58. data/lib/paypal_server_sdk/models/balance_information.rb +106 -0
  59. data/lib/paypal_server_sdk/models/balances_response.rb +111 -0
  60. data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +2 -2
  61. data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +2 -2
  62. data/lib/paypal_server_sdk/models/bank_request.rb +71 -0
  63. data/lib/paypal_server_sdk/models/base_model.rb +2 -2
  64. data/lib/paypal_server_sdk/models/billing_cycle.rb +7 -18
  65. data/lib/paypal_server_sdk/models/billing_cycle_override.rb +91 -0
  66. data/lib/paypal_server_sdk/models/billing_plan.rb +212 -0
  67. data/lib/paypal_server_sdk/models/bin_details.rb +2 -2
  68. data/lib/paypal_server_sdk/models/blik_experience_context.rb +10 -8
  69. data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +2 -2
  70. data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +2 -2
  71. data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +2 -2
  72. data/lib/paypal_server_sdk/models/blik_payment_object.rb +2 -2
  73. data/lib/paypal_server_sdk/models/blik_payment_request.rb +2 -2
  74. data/lib/paypal_server_sdk/models/callback_configuration.rb +3 -4
  75. data/lib/paypal_server_sdk/models/callback_events.rb +2 -2
  76. data/lib/paypal_server_sdk/models/cancel_subscription_request.rb +60 -0
  77. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +2 -2
  78. data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +2 -2
  79. data/lib/paypal_server_sdk/models/capture_request.rb +33 -32
  80. data/lib/paypal_server_sdk/models/capture_status.rb +2 -2
  81. data/lib/paypal_server_sdk/models/capture_status_details.rb +2 -2
  82. data/lib/paypal_server_sdk/models/capture_status_with_details.rb +2 -2
  83. data/lib/paypal_server_sdk/models/capture_subscription_request.rb +78 -0
  84. data/lib/paypal_server_sdk/models/capture_type.rb +20 -0
  85. data/lib/paypal_server_sdk/models/captured_payment.rb +6 -6
  86. data/lib/paypal_server_sdk/models/card_attributes.rb +2 -2
  87. data/lib/paypal_server_sdk/models/card_attributes_response.rb +2 -2
  88. data/lib/paypal_server_sdk/models/card_authentication_response.rb +2 -2
  89. data/lib/paypal_server_sdk/models/card_brand.rb +18 -3
  90. data/lib/paypal_server_sdk/models/card_customer.rb +98 -0
  91. data/lib/paypal_server_sdk/models/card_customer_information.rb +16 -6
  92. data/lib/paypal_server_sdk/models/card_experience_context.rb +2 -2
  93. data/lib/paypal_server_sdk/models/card_from_request.rb +2 -2
  94. data/lib/paypal_server_sdk/models/card_payment_token_entity.rb +2 -2
  95. data/lib/paypal_server_sdk/models/card_request.rb +2 -2
  96. data/lib/paypal_server_sdk/models/card_response.rb +2 -2
  97. data/lib/paypal_server_sdk/models/card_response_address.rb +2 -2
  98. data/lib/paypal_server_sdk/models/card_response_with_billing_address.rb +100 -0
  99. data/lib/paypal_server_sdk/models/card_stored_credential.rb +4 -4
  100. data/lib/paypal_server_sdk/models/card_supplementary_data.rb +2 -2
  101. data/lib/paypal_server_sdk/models/card_type.rb +2 -2
  102. data/lib/paypal_server_sdk/models/card_vault_response.rb +2 -2
  103. data/lib/paypal_server_sdk/models/card_verification.rb +2 -2
  104. data/lib/paypal_server_sdk/models/card_verification_details.rb +8 -8
  105. data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +2 -2
  106. data/lib/paypal_server_sdk/models/card_verification_status.rb +2 -2
  107. data/lib/paypal_server_sdk/models/cart_information.rb +94 -0
  108. data/lib/paypal_server_sdk/models/checkout_option.rb +77 -0
  109. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +2 -2
  110. data/lib/paypal_server_sdk/models/cobranded_card.rb +2 -2
  111. data/lib/paypal_server_sdk/models/confirm_order_request.rb +2 -2
  112. data/lib/paypal_server_sdk/models/create_subscription_request.rb +151 -0
  113. data/lib/paypal_server_sdk/models/customer.rb +2 -2
  114. data/lib/paypal_server_sdk/models/customer_information.rb +18 -7
  115. data/lib/paypal_server_sdk/models/customer_response.rb +3 -4
  116. data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +2 -2
  117. data/lib/paypal_server_sdk/models/cvv_code.rb +2 -2
  118. data/lib/paypal_server_sdk/models/cycle_execution.rb +124 -0
  119. data/lib/paypal_server_sdk/models/disbursement_mode.rb +2 -2
  120. data/lib/paypal_server_sdk/models/dispute_category.rb +2 -2
  121. data/lib/paypal_server_sdk/models/eci_flag.rb +2 -2
  122. data/lib/paypal_server_sdk/models/enrollment_status.rb +2 -2
  123. data/lib/paypal_server_sdk/models/eps_payment_object.rb +2 -2
  124. data/lib/paypal_server_sdk/models/eps_payment_request.rb +2 -2
  125. data/lib/paypal_server_sdk/models/error_details.rb +2 -2
  126. data/lib/paypal_server_sdk/models/exchange_rate.rb +2 -2
  127. data/lib/paypal_server_sdk/models/experience_context.rb +9 -7
  128. data/lib/paypal_server_sdk/models/experience_context_shipping_preference.rb +32 -0
  129. data/lib/paypal_server_sdk/models/experience_status.rb +33 -0
  130. data/lib/paypal_server_sdk/models/failed_payment_details.rb +98 -0
  131. data/lib/paypal_server_sdk/models/frequency.rb +75 -0
  132. data/lib/paypal_server_sdk/models/fulfillment_type.rb +2 -2
  133. data/lib/paypal_server_sdk/models/giropay_payment_object.rb +2 -2
  134. data/lib/paypal_server_sdk/models/giropay_payment_request.rb +2 -2
  135. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +2 -2
  136. data/lib/paypal_server_sdk/models/google_pay_card.rb +2 -2
  137. data/lib/paypal_server_sdk/models/google_pay_card_response.rb +2 -2
  138. data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +2 -2
  139. data/lib/paypal_server_sdk/models/google_pay_experience_context.rb +68 -0
  140. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +2 -2
  141. data/lib/paypal_server_sdk/models/google_pay_request.rb +19 -6
  142. data/lib/paypal_server_sdk/models/google_pay_request_card.rb +2 -2
  143. data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +2 -2
  144. data/lib/paypal_server_sdk/models/ideal_payment_object.rb +2 -2
  145. data/lib/paypal_server_sdk/models/ideal_payment_request.rb +2 -2
  146. data/lib/paypal_server_sdk/models/incentive_details.rb +99 -0
  147. data/lib/paypal_server_sdk/models/incentive_information.rb +71 -0
  148. data/lib/paypal_server_sdk/models/interval_unit.rb +29 -0
  149. data/lib/paypal_server_sdk/models/item.rb +16 -6
  150. data/lib/paypal_server_sdk/models/item_category.rb +2 -2
  151. data/lib/paypal_server_sdk/models/item_details.rb +287 -0
  152. data/lib/paypal_server_sdk/models/item_request.rb +163 -0
  153. data/lib/paypal_server_sdk/models/last_payment_details.rb +75 -0
  154. data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +2 -2
  155. data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +2 -2
  156. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +2 -2
  157. data/lib/paypal_server_sdk/models/line_item.rb +24 -13
  158. data/lib/paypal_server_sdk/models/link_description.rb +2 -2
  159. data/lib/paypal_server_sdk/models/link_http_method.rb +10 -10
  160. data/lib/paypal_server_sdk/models/merchant_preferences.rb +73 -0
  161. data/lib/paypal_server_sdk/models/mobile_return_flow.rb +28 -0
  162. data/lib/paypal_server_sdk/models/mobile_web_context.rb +76 -0
  163. data/lib/paypal_server_sdk/models/modify_subscription_request.rb +124 -0
  164. data/lib/paypal_server_sdk/models/modify_subscription_response.rb +141 -0
  165. data/lib/paypal_server_sdk/models/money.rb +2 -2
  166. data/lib/paypal_server_sdk/models/mybank_payment_object.rb +2 -2
  167. data/lib/paypal_server_sdk/models/mybank_payment_request.rb +2 -2
  168. data/lib/paypal_server_sdk/models/name.rb +2 -2
  169. data/lib/paypal_server_sdk/models/native_app_context.rb +72 -0
  170. data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +2 -2
  171. data/lib/paypal_server_sdk/models/network_token.rb +2 -2
  172. data/lib/paypal_server_sdk/models/{network_transaction_reference.rb → network_transaction.rb} +14 -11
  173. data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +2 -2
  174. data/lib/paypal_server_sdk/models/o_auth_provider_error.rb +2 -2
  175. data/lib/paypal_server_sdk/models/o_auth_token.rb +2 -2
  176. data/lib/paypal_server_sdk/models/one_time_charge.rb +2 -2
  177. data/lib/paypal_server_sdk/models/order.rb +7 -4
  178. data/lib/paypal_server_sdk/models/order_application_context.rb +26 -15
  179. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +2 -2
  180. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +3 -5
  181. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +2 -2
  182. data/lib/paypal_server_sdk/models/order_authorize_request.rb +2 -2
  183. data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +2 -2
  184. data/lib/paypal_server_sdk/models/order_authorize_response.rb +16 -9
  185. data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +2 -2
  186. data/lib/paypal_server_sdk/models/order_billing_plan.rb +93 -0
  187. data/lib/paypal_server_sdk/models/order_capture_request.rb +2 -2
  188. data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +2 -2
  189. data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +2 -2
  190. data/lib/paypal_server_sdk/models/order_request.rb +7 -4
  191. data/lib/paypal_server_sdk/models/order_status.rb +7 -7
  192. data/lib/paypal_server_sdk/models/order_tracker_item.rb +2 -2
  193. data/lib/paypal_server_sdk/models/order_tracker_request.rb +2 -2
  194. data/lib/paypal_server_sdk/models/order_tracker_response.rb +2 -2
  195. data/lib/paypal_server_sdk/models/order_tracker_status.rb +2 -2
  196. data/lib/paypal_server_sdk/models/orders_capture.rb +4 -4
  197. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +2 -2
  198. data/lib/paypal_server_sdk/models/os_type.rb +26 -0
  199. data/lib/paypal_server_sdk/models/p24_payment_object.rb +2 -2
  200. data/lib/paypal_server_sdk/models/p24_payment_request.rb +2 -2
  201. data/lib/paypal_server_sdk/models/pa_res_status.rb +2 -2
  202. data/lib/paypal_server_sdk/models/participant_metadata.rb +2 -2
  203. data/lib/paypal_server_sdk/models/patch.rb +2 -2
  204. data/lib/paypal_server_sdk/models/patch_op.rb +2 -2
  205. data/lib/paypal_server_sdk/models/payee_base.rb +2 -2
  206. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +2 -2
  207. data/lib/paypal_server_sdk/models/payer.rb +4 -3
  208. data/lib/paypal_server_sdk/models/payer_base.rb +2 -2
  209. data/lib/paypal_server_sdk/models/payer_information.rb +146 -0
  210. data/lib/paypal_server_sdk/models/payer_name.rb +128 -0
  211. data/lib/paypal_server_sdk/models/payment_advice_code.rb +2 -2
  212. data/lib/paypal_server_sdk/models/payment_authorization.rb +4 -4
  213. data/lib/paypal_server_sdk/models/payment_collection.rb +2 -2
  214. data/lib/paypal_server_sdk/models/payment_initiator.rb +2 -2
  215. data/lib/paypal_server_sdk/models/payment_instruction.rb +2 -2
  216. data/lib/paypal_server_sdk/models/payment_method.rb +63 -0
  217. data/lib/paypal_server_sdk/models/payment_method_preference.rb +2 -2
  218. data/lib/paypal_server_sdk/models/payment_preferences.rb +105 -0
  219. data/lib/paypal_server_sdk/models/payment_preferences_override.rb +107 -0
  220. data/lib/paypal_server_sdk/models/payment_source.rb +2 -2
  221. data/lib/paypal_server_sdk/models/payment_source_response.rb +2 -2
  222. data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +2 -2
  223. data/lib/paypal_server_sdk/models/payment_token_request.rb +2 -2
  224. data/lib/paypal_server_sdk/models/payment_token_request_card.rb +2 -2
  225. data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +2 -2
  226. data/lib/paypal_server_sdk/models/payment_token_response.rb +6 -5
  227. data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +4 -4
  228. data/lib/paypal_server_sdk/models/payment_token_status.rb +4 -4
  229. data/lib/paypal_server_sdk/models/payments_capture.rb +6 -6
  230. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +10 -3
  231. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +2 -2
  232. data/lib/paypal_server_sdk/models/paypal_payment_token.rb +8 -7
  233. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +2 -2
  234. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +2 -2
  235. data/lib/paypal_server_sdk/models/paypal_reference_id_type.rb +29 -0
  236. data/lib/paypal_server_sdk/models/paypal_wallet.rb +2 -2
  237. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +2 -2
  238. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +4 -3
  239. data/lib/paypal_server_sdk/models/paypal_wallet_attributes_response.rb +2 -2
  240. data/lib/paypal_server_sdk/models/paypal_wallet_contact_preference.rb +34 -0
  241. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +2 -2
  242. data/lib/paypal_server_sdk/models/paypal_wallet_customer.rb +16 -6
  243. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +16 -6
  244. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +35 -8
  245. data/lib/paypal_server_sdk/models/paypal_wallet_response.rb +21 -6
  246. data/lib/paypal_server_sdk/models/paypal_wallet_stored_credential.rb +4 -3
  247. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +12 -22
  248. data/lib/paypal_server_sdk/models/paypal_wallet_vault_response.rb +2 -2
  249. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +2 -2
  250. data/lib/paypal_server_sdk/models/phone.rb +2 -2
  251. data/lib/paypal_server_sdk/models/phone_number.rb +4 -2
  252. data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +4 -2
  253. data/lib/paypal_server_sdk/models/phone_number_with_optional_country_code.rb +81 -0
  254. data/lib/paypal_server_sdk/models/phone_type.rb +7 -7
  255. data/lib/paypal_server_sdk/models/phone_with_type.rb +2 -2
  256. data/lib/paypal_server_sdk/models/plan.rb +7 -17
  257. data/lib/paypal_server_sdk/models/plan_collection.rb +111 -0
  258. data/lib/paypal_server_sdk/models/plan_details.rb +147 -0
  259. data/lib/paypal_server_sdk/models/plan_override.rb +96 -0
  260. data/lib/paypal_server_sdk/models/plan_request.rb +154 -0
  261. data/lib/paypal_server_sdk/models/plan_request_status.rb +28 -0
  262. data/lib/paypal_server_sdk/models/platform_fee.rb +2 -2
  263. data/lib/paypal_server_sdk/models/pricing_model.rb +2 -2
  264. data/lib/paypal_server_sdk/models/pricing_scheme.rb +2 -2
  265. data/lib/paypal_server_sdk/models/pricing_tier.rb +83 -0
  266. data/lib/paypal_server_sdk/models/processor_response.rb +2 -2
  267. data/lib/paypal_server_sdk/models/processor_response_code.rb +2 -2
  268. data/lib/paypal_server_sdk/models/purchase_unit.rb +2 -2
  269. data/lib/paypal_server_sdk/models/purchase_unit_request.rb +24 -14
  270. data/lib/paypal_server_sdk/models/reason_code.rb +41 -0
  271. data/lib/paypal_server_sdk/models/reauthorize_request.rb +2 -3
  272. data/lib/paypal_server_sdk/models/refund.rb +2 -2
  273. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +2 -2
  274. data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +2 -2
  275. data/lib/paypal_server_sdk/models/refund_platform_fee.rb +2 -2
  276. data/lib/paypal_server_sdk/models/refund_request.rb +2 -2
  277. data/lib/paypal_server_sdk/models/refund_status.rb +2 -2
  278. data/lib/paypal_server_sdk/models/refund_status_details.rb +2 -2
  279. data/lib/paypal_server_sdk/models/refund_status_with_details.rb +2 -2
  280. data/lib/paypal_server_sdk/models/related_identifiers.rb +2 -2
  281. data/lib/paypal_server_sdk/models/return_flow.rb +28 -0
  282. data/lib/paypal_server_sdk/models/risk_supplementary_data.rb +2 -2
  283. data/lib/paypal_server_sdk/models/search_response.rb +176 -0
  284. data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +2 -2
  285. data/lib/paypal_server_sdk/models/seller_protection.rb +2 -2
  286. data/lib/paypal_server_sdk/models/seller_protection_status.rb +2 -2
  287. data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +2 -2
  288. data/lib/paypal_server_sdk/models/sepa_debit_experience_context.rb +88 -0
  289. data/lib/paypal_server_sdk/models/sepa_debit_request.rb +64 -0
  290. data/lib/paypal_server_sdk/models/setup_fee_failure_action.rb +24 -0
  291. data/lib/paypal_server_sdk/models/setup_token_request.rb +2 -2
  292. data/lib/paypal_server_sdk/models/setup_token_request_card.rb +5 -5
  293. data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +28 -7
  294. data/lib/paypal_server_sdk/models/setup_token_response.rb +5 -3
  295. data/lib/paypal_server_sdk/models/setup_token_response_card.rb +2 -2
  296. data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +4 -4
  297. data/lib/paypal_server_sdk/models/shipment_carrier.rb +111 -3
  298. data/lib/paypal_server_sdk/models/shipping_details.rb +2 -2
  299. data/lib/paypal_server_sdk/models/shipping_information.rb +101 -0
  300. data/lib/paypal_server_sdk/models/shipping_name.rb +2 -2
  301. data/lib/paypal_server_sdk/models/shipping_option.rb +2 -2
  302. data/lib/paypal_server_sdk/models/shipping_type.rb +2 -2
  303. data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +33 -33
  304. data/lib/paypal_server_sdk/models/simple_postal_address_coarse_grained.rb +130 -0
  305. data/lib/paypal_server_sdk/models/sofort_payment_object.rb +2 -2
  306. data/lib/paypal_server_sdk/models/sofort_payment_request.rb +2 -2
  307. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +2 -2
  308. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +2 -2
  309. data/lib/paypal_server_sdk/models/store_information.rb +71 -0
  310. data/lib/paypal_server_sdk/models/stored_payment_source.rb +4 -4
  311. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +2 -2
  312. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +2 -2
  313. data/lib/paypal_server_sdk/models/subscriber.rb +84 -0
  314. data/lib/paypal_server_sdk/models/subscriber_request.rb +97 -0
  315. data/lib/paypal_server_sdk/models/subscription.rb +205 -0
  316. data/lib/paypal_server_sdk/models/subscription_amount_with_breakdown.rb +119 -0
  317. data/lib/paypal_server_sdk/models/subscription_application_context.rb +134 -0
  318. data/lib/paypal_server_sdk/models/subscription_billing_cycle.rb +108 -0
  319. data/lib/paypal_server_sdk/models/subscription_billing_information.rb +148 -0
  320. data/lib/paypal_server_sdk/models/subscription_card_request.rb +141 -0
  321. data/lib/paypal_server_sdk/models/subscription_collection.rb +90 -0
  322. data/lib/paypal_server_sdk/models/subscription_customer_information.rb +84 -0
  323. data/lib/paypal_server_sdk/models/subscription_patch_application_context.rb +122 -0
  324. data/lib/paypal_server_sdk/models/subscription_payer_name.rb +114 -0
  325. data/lib/paypal_server_sdk/models/subscription_payment_source.rb +65 -0
  326. data/lib/paypal_server_sdk/models/subscription_payment_source_response.rb +63 -0
  327. data/lib/paypal_server_sdk/models/subscription_plan_status.rb +28 -0
  328. data/lib/paypal_server_sdk/models/subscription_pricing_model.rb +23 -0
  329. data/lib/paypal_server_sdk/models/subscription_pricing_scheme.rb +129 -0
  330. data/lib/paypal_server_sdk/models/subscription_transaction_details.rb +118 -0
  331. data/lib/paypal_server_sdk/models/subscriptions_card_attributes.rb +83 -0
  332. data/lib/paypal_server_sdk/models/subscriptions_card_brand.rb +97 -0
  333. data/lib/paypal_server_sdk/models/supplementary_data.rb +2 -2
  334. data/lib/paypal_server_sdk/models/suspend_subscription.rb +60 -0
  335. data/lib/paypal_server_sdk/models/tax_amount.rb +63 -0
  336. data/lib/paypal_server_sdk/models/tax_id_type.rb +2 -2
  337. data/lib/paypal_server_sdk/models/tax_info.rb +2 -2
  338. data/lib/paypal_server_sdk/models/taxes.rb +71 -0
  339. data/lib/paypal_server_sdk/models/taxes_override.rb +72 -0
  340. data/lib/paypal_server_sdk/models/tenure_type.rb +5 -3
  341. data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +2 -2
  342. data/lib/paypal_server_sdk/models/three_d_secure_card_authentication_response.rb +2 -2
  343. data/lib/paypal_server_sdk/models/token.rb +2 -2
  344. data/lib/paypal_server_sdk/models/token_type.rb +2 -2
  345. data/lib/paypal_server_sdk/models/transaction_details.rb +126 -0
  346. data/lib/paypal_server_sdk/models/transaction_information.rb +494 -0
  347. data/lib/paypal_server_sdk/models/{order_update_callback_error_response_details.rb → transaction_search_error_details.rb} +32 -10
  348. data/lib/paypal_server_sdk/models/transactions_list.rb +111 -0
  349. data/lib/paypal_server_sdk/models/trustly_payment_object.rb +2 -2
  350. data/lib/paypal_server_sdk/models/trustly_payment_request.rb +2 -2
  351. data/lib/paypal_server_sdk/models/universal_product_code.rb +2 -2
  352. data/lib/paypal_server_sdk/models/upc_type.rb +2 -2
  353. data/lib/paypal_server_sdk/models/update_pricing_scheme.rb +72 -0
  354. data/lib/paypal_server_sdk/models/update_pricing_schemes_request.rb +69 -0
  355. data/lib/paypal_server_sdk/models/usage_pattern.rb +2 -2
  356. data/lib/paypal_server_sdk/models/vault_apple_pay_request.rb +73 -0
  357. data/lib/paypal_server_sdk/models/{setup_token_card_experience_context.rb → vault_card_experience_context.rb} +27 -18
  358. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +2 -2
  359. data/lib/paypal_server_sdk/models/vault_customer.rb +17 -7
  360. data/lib/paypal_server_sdk/models/vault_experience_context.rb +35 -12
  361. data/lib/paypal_server_sdk/models/vault_instruction.rb +2 -2
  362. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +2 -2
  363. data/lib/paypal_server_sdk/models/vault_instruction_base.rb +2 -2
  364. data/lib/paypal_server_sdk/models/vault_paypal_wallet_request.rb +3 -3
  365. data/lib/paypal_server_sdk/models/vault_response.rb +4 -3
  366. data/lib/paypal_server_sdk/models/vault_response_customer.rb +3 -3
  367. data/lib/paypal_server_sdk/models/vault_status.rb +2 -2
  368. data/lib/paypal_server_sdk/models/vault_token_request.rb +2 -2
  369. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +2 -2
  370. data/lib/paypal_server_sdk/models/vault_user_action.rb +29 -0
  371. data/lib/paypal_server_sdk/models/vault_venmo_request.rb +6 -6
  372. data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +2 -2
  373. data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +21 -7
  374. data/lib/paypal_server_sdk/models/{vault_venmo_experience_context.rb → venmo_experience_context.rb} +26 -16
  375. data/lib/paypal_server_sdk/models/venmo_payment_token.rb +8 -7
  376. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +2 -2
  377. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +2 -2
  378. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +2 -2
  379. data/lib/paypal_server_sdk/models/venmo_vault_response.rb +100 -0
  380. data/lib/paypal_server_sdk/models/venmo_vault_response_status.rb +31 -0
  381. data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +2 -2
  382. data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +5 -5
  383. data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +26 -6
  384. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +24 -10
  385. data/lib/paypal_server_sdk/models/{shipping_preference.rb → venmo_wallet_experience_context_shipping_preference.rb} +4 -4
  386. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_user_action.rb +29 -0
  387. data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +2 -2
  388. data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +16 -6
  389. data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +2 -2
  390. data/lib/paypal_server_sdk/utilities/date_time_helper.rb +2 -2
  391. data/lib/paypal_server_sdk/utilities/file_wrapper.rb +2 -2
  392. data/lib/paypal_server_sdk.rb +125 -29
  393. metadata +115 -22
  394. data/lib/paypal_server_sdk/models/order_update_callback_error_response.rb +0 -89
  395. data/lib/paypal_server_sdk/models/order_update_callback_request.rb +0 -111
  396. data/lib/paypal_server_sdk/models/order_update_callback_response.rb +0 -72
  397. data/lib/paypal_server_sdk/models/order_update_callback_shipping_address.rb +0 -107
  398. data/lib/paypal_server_sdk/models/order_update_callback_shipping_option.rb +0 -93
  399. data/lib/paypal_server_sdk/models/payments_payment_advice_code.rb +0 -42
  400. data/lib/paypal_server_sdk/models/payments_processor_response.rb +0 -98
  401. data/lib/paypal_server_sdk/models/shipping_options_purchase_unit.rb +0 -102
  402. data/lib/paypal_server_sdk/models/supplementary_purchase_data.rb +0 -76
@@ -0,0 +1,843 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # SubscriptionsController
8
+ class SubscriptionsController < BaseController
9
+ # Creates a plan that defines pricing and billing cycle details for
10
+ # subscriptions.
11
+ # @param [String] prefer Optional parameter: The preferred server response
12
+ # upon successful completion of the request. Value is: return=minimal. The
13
+ # server returns a minimal response to optimize communication between the
14
+ # API caller and the server. A minimal response includes the id, status and
15
+ # HATEOAS links. return=representation. The server returns a complete
16
+ # resource representation, including the current state of the resource.
17
+ # @param [String] paypal_request_id Optional parameter: The server stores
18
+ # keys for 72 hours.
19
+ # @param [PlanRequest] body Optional parameter: TODO: type description
20
+ # here
21
+ # @return [ApiResponse] Complete http response with raw body and status code.
22
+ def create_billing_plan(options = {})
23
+ @api_call
24
+ .request(new_request_builder(HttpMethodEnum::POST,
25
+ '/v1/billing/plans',
26
+ Server::DEFAULT)
27
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
28
+ .header_param(new_parameter(options['prefer'], key: 'Prefer'))
29
+ .header_param(new_parameter(options['paypal_request_id'], key: 'PayPal-Request-Id'))
30
+ .body_param(new_parameter(options['body']))
31
+ .header_param(new_parameter('application/json', key: 'accept'))
32
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
33
+ .auth(Single.new('Oauth2')))
34
+ .response(new_response_handler
35
+ .deserializer(APIHelper.method(:custom_type_deserializer))
36
+ .deserialize_into(BillingPlan.method(:from_hash))
37
+ .is_api_response(true)
38
+ .local_error('400',
39
+ 'Bad Request. Request is not well-formed, syntactically'\
40
+ ' incorrect, or violates schema.',
41
+ SubscriptionErrorException)
42
+ .local_error('401',
43
+ 'Authentication failed due to missing authorization header, or'\
44
+ ' invalid authentication credentials.',
45
+ SubscriptionErrorException)
46
+ .local_error('403',
47
+ 'Authorization failed due to insufficient permissions.',
48
+ SubscriptionErrorException)
49
+ .local_error('422',
50
+ 'The requested action could not be performed, semantically'\
51
+ ' incorrect, or failed business validation.',
52
+ SubscriptionErrorException)
53
+ .local_error('500',
54
+ 'An internal server error has occurred.',
55
+ SubscriptionErrorException)
56
+ .local_error('default',
57
+ 'The error response.',
58
+ SubscriptionErrorException))
59
+ .execute
60
+ end
61
+
62
+ # Lists billing plans.
63
+ # @param [String] prefer Optional parameter: The preferred server response
64
+ # upon successful completion of the request. Value is: return=minimal. The
65
+ # server returns a minimal response to optimize communication between the
66
+ # API caller and the server. A minimal response includes the id, name,
67
+ # description and HATEOAS links. return=representation. The server returns a
68
+ # complete resource representation, including the current state of the
69
+ # resource.
70
+ # @param [String] product_id Optional parameter: Filters the response by a
71
+ # Product ID.
72
+ # @param [Integer] page_size Optional parameter: The number of items to
73
+ # return in the response.
74
+ # @param [Integer] page Optional parameter: A non-zero integer which is the
75
+ # start index of the entire list of items to return in the response. The
76
+ # combination of `page=1` and `page_size=20` returns the first 20 items. The
77
+ # combination of `page=2` and `page_size=20` returns the next 20 items.
78
+ # @param [TrueClass | FalseClass] total_required Optional parameter:
79
+ # Indicates whether to show the total count in the response.
80
+ # @return [ApiResponse] Complete http response with raw body and status code.
81
+ def list_billing_plans(options = {})
82
+ @api_call
83
+ .request(new_request_builder(HttpMethodEnum::GET,
84
+ '/v1/billing/plans',
85
+ Server::DEFAULT)
86
+ .header_param(new_parameter(options['prefer'], key: 'Prefer'))
87
+ .query_param(new_parameter(options['product_id'], key: 'product_id'))
88
+ .query_param(new_parameter(options['page_size'], key: 'page_size'))
89
+ .query_param(new_parameter(options['page'], key: 'page'))
90
+ .query_param(new_parameter(options['total_required'], key: 'total_required'))
91
+ .header_param(new_parameter('application/json', key: 'accept'))
92
+ .auth(Single.new('Oauth2')))
93
+ .response(new_response_handler
94
+ .deserializer(APIHelper.method(:custom_type_deserializer))
95
+ .deserialize_into(PlanCollection.method(:from_hash))
96
+ .is_api_response(true)
97
+ .local_error('400',
98
+ 'Request is not well-formed, syntactically incorrect, or'\
99
+ ' violates schema.',
100
+ SubscriptionErrorException)
101
+ .local_error('401',
102
+ 'Authentication failed due to missing authorization header, or'\
103
+ ' invalid authentication credentials.',
104
+ SubscriptionErrorException)
105
+ .local_error('403',
106
+ 'Authorization failed due to insufficient permissions.',
107
+ SubscriptionErrorException)
108
+ .local_error('404',
109
+ 'The specified resource does not exist.',
110
+ SubscriptionErrorException)
111
+ .local_error('500',
112
+ 'An internal server error has occurred.',
113
+ SubscriptionErrorException)
114
+ .local_error('default',
115
+ 'The error response.',
116
+ SubscriptionErrorException))
117
+ .execute
118
+ end
119
+
120
+ # Shows details for a plan, by ID.
121
+ # @param [String] id Required parameter: The ID of the plan.
122
+ # @return [ApiResponse] Complete http response with raw body and status code.
123
+ def get_billing_plan(id)
124
+ @api_call
125
+ .request(new_request_builder(HttpMethodEnum::GET,
126
+ '/v1/billing/plans/{id}',
127
+ Server::DEFAULT)
128
+ .template_param(new_parameter(id, key: 'id')
129
+ .should_encode(true))
130
+ .header_param(new_parameter('application/json', key: 'accept'))
131
+ .auth(Single.new('Oauth2')))
132
+ .response(new_response_handler
133
+ .deserializer(APIHelper.method(:custom_type_deserializer))
134
+ .deserialize_into(BillingPlan.method(:from_hash))
135
+ .is_api_response(true)
136
+ .local_error('401',
137
+ 'Authentication failed due to missing authorization header, or'\
138
+ ' invalid authentication credentials.',
139
+ SubscriptionErrorException)
140
+ .local_error('403',
141
+ 'Authorization failed due to insufficient permissions.',
142
+ SubscriptionErrorException)
143
+ .local_error('404',
144
+ 'The specified resource does not exist.',
145
+ SubscriptionErrorException)
146
+ .local_error('500',
147
+ 'An internal server error has occurred.',
148
+ SubscriptionErrorException)
149
+ .local_error('default',
150
+ 'The error response.',
151
+ SubscriptionErrorException))
152
+ .execute
153
+ end
154
+
155
+ # Updates a plan with the `CREATED` or `ACTIVE` status. For an `INACTIVE`
156
+ # plan, you can make only status updates. You can patch these attributes and
157
+ # objects: Attribute or object Operations description replace
158
+ # payment_preferences.auto_bill_outstanding replace taxes.percentage replace
159
+ # payment_preferences.payment_failure_threshold replace
160
+ # payment_preferences.setup_fee replace
161
+ # payment_preferences.setup_fee_failure_action replace name replace
162
+ # @param [String] id Required parameter: The ID of the plan.
163
+ # @param [Array[Patch]] body Optional parameter: TODO: type description
164
+ # here
165
+ # @return [ApiResponse] Complete http response with raw body and status code.
166
+ def patch_billing_plan(options = {})
167
+ @api_call
168
+ .request(new_request_builder(HttpMethodEnum::PATCH,
169
+ '/v1/billing/plans/{id}',
170
+ Server::DEFAULT)
171
+ .template_param(new_parameter(options['id'], key: 'id')
172
+ .should_encode(true))
173
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
174
+ .body_param(new_parameter(options['body']))
175
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
176
+ .auth(Single.new('Oauth2')))
177
+ .response(new_response_handler
178
+ .is_response_void(true)
179
+ .is_api_response(true)
180
+ .local_error('400',
181
+ 'Request is not well-formed, syntactically incorrect, or'\
182
+ ' violates schema.',
183
+ SubscriptionErrorException)
184
+ .local_error('401',
185
+ 'Authentication failed due to missing authorization header, or'\
186
+ ' invalid authentication credentials.',
187
+ SubscriptionErrorException)
188
+ .local_error('403',
189
+ 'Authorization failed due to insufficient permissions.',
190
+ SubscriptionErrorException)
191
+ .local_error('404',
192
+ 'The specified resource does not exist.',
193
+ SubscriptionErrorException)
194
+ .local_error('422',
195
+ 'The requested action could not be performed, semantically'\
196
+ ' incorrect, or failed business validation.',
197
+ SubscriptionErrorException)
198
+ .local_error('500',
199
+ 'An internal server error has occurred.',
200
+ SubscriptionErrorException)
201
+ .local_error('default',
202
+ 'The error response.',
203
+ SubscriptionErrorException))
204
+ .execute
205
+ end
206
+
207
+ # Activates a plan, by ID.
208
+ # @param [String] id Required parameter: The ID of the plan.
209
+ # @return [ApiResponse] Complete http response with raw body and status code.
210
+ def activate_billing_plan(id)
211
+ @api_call
212
+ .request(new_request_builder(HttpMethodEnum::POST,
213
+ '/v1/billing/plans/{id}/activate',
214
+ Server::DEFAULT)
215
+ .template_param(new_parameter(id, key: 'id')
216
+ .should_encode(true))
217
+ .auth(Single.new('Oauth2')))
218
+ .response(new_response_handler
219
+ .is_response_void(true)
220
+ .is_api_response(true)
221
+ .local_error('401',
222
+ 'Authentication failed due to missing authorization header, or'\
223
+ ' invalid authentication credentials.',
224
+ SubscriptionErrorException)
225
+ .local_error('403',
226
+ 'Authorization failed due to insufficient permissions.',
227
+ SubscriptionErrorException)
228
+ .local_error('404',
229
+ 'The specified resource does not exist.',
230
+ SubscriptionErrorException)
231
+ .local_error('422',
232
+ 'The requested action could not be performed, semantically'\
233
+ ' incorrect, or failed business validation.',
234
+ SubscriptionErrorException)
235
+ .local_error('500',
236
+ 'An internal server error has occurred.',
237
+ SubscriptionErrorException)
238
+ .local_error('default',
239
+ 'The error response.',
240
+ SubscriptionErrorException))
241
+ .execute
242
+ end
243
+
244
+ # Deactivates a plan, by ID.
245
+ # @param [String] id Required parameter: The ID of the plan.
246
+ # @return [ApiResponse] Complete http response with raw body and status code.
247
+ def deactivate_billing_plan(id)
248
+ @api_call
249
+ .request(new_request_builder(HttpMethodEnum::POST,
250
+ '/v1/billing/plans/{id}/deactivate',
251
+ Server::DEFAULT)
252
+ .template_param(new_parameter(id, key: 'id')
253
+ .should_encode(true))
254
+ .auth(Single.new('Oauth2')))
255
+ .response(new_response_handler
256
+ .is_response_void(true)
257
+ .is_api_response(true)
258
+ .local_error('401',
259
+ 'Authentication failed due to missing authorization header, or'\
260
+ ' invalid authentication credentials.',
261
+ SubscriptionErrorException)
262
+ .local_error('403',
263
+ 'Authorization failed due to insufficient permissions.',
264
+ SubscriptionErrorException)
265
+ .local_error('404',
266
+ 'The specified resource does not exist.',
267
+ SubscriptionErrorException)
268
+ .local_error('422',
269
+ 'The requested action could not be performed, semantically'\
270
+ ' incorrect, or failed business validation.',
271
+ SubscriptionErrorException)
272
+ .local_error('500',
273
+ 'An internal server error has occurred.',
274
+ SubscriptionErrorException)
275
+ .local_error('default',
276
+ 'The error response.',
277
+ SubscriptionErrorException))
278
+ .execute
279
+ end
280
+
281
+ # Updates pricing for a plan. For example, you can update a regular billing
282
+ # cycle from $5 per month to $7 per month.
283
+ # @param [String] id Required parameter: The ID for the plan.
284
+ # @param [UpdatePricingSchemesRequest] body Optional parameter: TODO: type
285
+ # description here
286
+ # @return [ApiResponse] Complete http response with raw body and status code.
287
+ def update_billing_plan_pricing_schemes(options = {})
288
+ @api_call
289
+ .request(new_request_builder(HttpMethodEnum::POST,
290
+ '/v1/billing/plans/{id}/update-pricing-schemes',
291
+ Server::DEFAULT)
292
+ .template_param(new_parameter(options['id'], key: 'id')
293
+ .should_encode(true))
294
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
295
+ .body_param(new_parameter(options['body']))
296
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
297
+ .auth(Single.new('Oauth2')))
298
+ .response(new_response_handler
299
+ .is_response_void(true)
300
+ .is_api_response(true)
301
+ .local_error('400',
302
+ 'Bad Request. Request is not well-formed, syntactically'\
303
+ ' incorrect, or violates schema.',
304
+ SubscriptionErrorException)
305
+ .local_error('401',
306
+ 'Authentication failed due to missing authorization header, or'\
307
+ ' invalid authentication credentials.',
308
+ SubscriptionErrorException)
309
+ .local_error('403',
310
+ 'Authorization failed due to insufficient permissions.',
311
+ SubscriptionErrorException)
312
+ .local_error('404',
313
+ 'The specified resource does not exist.',
314
+ SubscriptionErrorException)
315
+ .local_error('422',
316
+ 'The requested action could not be performed, semantically'\
317
+ ' incorrect, or failed business validation.',
318
+ SubscriptionErrorException)
319
+ .local_error('500',
320
+ 'An internal server error has occurred.',
321
+ SubscriptionErrorException)
322
+ .local_error('default',
323
+ 'The error response.',
324
+ SubscriptionErrorException))
325
+ .execute
326
+ end
327
+
328
+ # Creates a subscription.
329
+ # @param [String] prefer Optional parameter: The preferred server response
330
+ # upon successful completion of the request. Value is: return=minimal. The
331
+ # server returns a minimal response to optimize communication between the
332
+ # API caller and the server. A minimal response includes the id, status and
333
+ # HATEOAS links. return=representation. The server returns a complete
334
+ # resource representation, including the current state of the resource.
335
+ # @param [String] paypal_request_id Optional parameter: The server stores
336
+ # keys for 72 hours.
337
+ # @param [String] paypal_client_metadata_id Optional parameter: The PayPal
338
+ # Client Metadata Id(CMID) is used to provide device-specific information to
339
+ # PayPal's risk engine. This is crucial for transactions that require
340
+ # device-specific risk assessments. Merchants typically use the Paypal SDK
341
+ # that automatically submits the CMID or they use tools like Fraudnet JS for
342
+ # web or Magnes JS for mobile to generate the CMID on the frontend and then
343
+ # pass it to the API as part of the request headers.
344
+ # @param [CreateSubscriptionRequest] body Optional parameter: TODO: type
345
+ # description here
346
+ # @return [ApiResponse] Complete http response with raw body and status code.
347
+ def create_subscription(options = {})
348
+ @api_call
349
+ .request(new_request_builder(HttpMethodEnum::POST,
350
+ '/v1/billing/subscriptions',
351
+ Server::DEFAULT)
352
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
353
+ .header_param(new_parameter(options['prefer'], key: 'Prefer'))
354
+ .header_param(new_parameter(options['paypal_request_id'], key: 'PayPal-Request-Id'))
355
+ .header_param(new_parameter(options['paypal_client_metadata_id'], key: 'PayPal-Client-Metadata-Id'))
356
+ .body_param(new_parameter(options['body']))
357
+ .header_param(new_parameter('application/json', key: 'accept'))
358
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
359
+ .auth(Single.new('Oauth2')))
360
+ .response(new_response_handler
361
+ .deserializer(APIHelper.method(:custom_type_deserializer))
362
+ .deserialize_into(Subscription.method(:from_hash))
363
+ .is_api_response(true)
364
+ .local_error('400',
365
+ 'Bad Request. Request is not well-formed, syntactically'\
366
+ ' incorrect, or violates schema.',
367
+ SubscriptionErrorException)
368
+ .local_error('401',
369
+ 'Authentication failed due to missing authorization header, or'\
370
+ ' invalid authentication credentials.',
371
+ SubscriptionErrorException)
372
+ .local_error('403',
373
+ 'Authorization failed due to insufficient permissions.',
374
+ SubscriptionErrorException)
375
+ .local_error('422',
376
+ 'The requested action could not be performed, semantically'\
377
+ ' incorrect, or failed business validation.',
378
+ SubscriptionErrorException)
379
+ .local_error('500',
380
+ 'An internal server error has occurred.',
381
+ SubscriptionErrorException)
382
+ .local_error('default',
383
+ 'The error response.',
384
+ SubscriptionErrorException))
385
+ .execute
386
+ end
387
+
388
+ # List all subscriptions for merchant account.
389
+ # @param [String] plan_ids Optional parameter: Filters the response by list
390
+ # of plan IDs. Filter supports upto 70 plan IDs. URLs should not exceed a
391
+ # length of 2000 characters.
392
+ # @param [String] statuses Optional parameter: Filters the response by list
393
+ # of subscription statuses.
394
+ # @param [String] created_after Optional parameter: Filters the response by
395
+ # subscription creation start time for a range of subscriptions.
396
+ # @param [String] created_before Optional parameter: Filters the response by
397
+ # subscription creation end time for a range of subscriptions.
398
+ # @param [String] status_updated_before Optional parameter: Filters the
399
+ # response by status update start time for a range of subscriptions.
400
+ # @param [String] status_updated_after Optional parameter: Filters the
401
+ # response by status update end time for a range of subscriptions.
402
+ # @param [String] filter Optional parameter: Filter the response using
403
+ # complex expressions that could use comparison operators like ge, gt, le,
404
+ # lt and logical operators such as 'and' and 'or'.
405
+ # @param [Integer] page_size Optional parameter: The number of items to
406
+ # return in the response.
407
+ # @param [Integer] page Optional parameter: A non-zero integer which is the
408
+ # start index of the entire list of items to return in the response. The
409
+ # combination of `page=1` and `page_size=20` returns the first 20 items. The
410
+ # combination of `page=2` and `page_size=20` returns the next 20 items.
411
+ # @param [Array[String]] customer_ids Optional parameter: Filters the
412
+ # response by comma separated vault customer IDs (FSS subscriptions only).
413
+ # @return [ApiResponse] Complete http response with raw body and status code.
414
+ def list_subscriptions(options = {})
415
+ @api_call
416
+ .request(new_request_builder(HttpMethodEnum::GET,
417
+ '/v1/billing/subscriptions',
418
+ Server::DEFAULT)
419
+ .query_param(new_parameter(options['plan_ids'], key: 'plan_ids'))
420
+ .query_param(new_parameter(options['statuses'], key: 'statuses'))
421
+ .query_param(new_parameter(options['created_after'], key: 'created_after'))
422
+ .query_param(new_parameter(options['created_before'], key: 'created_before'))
423
+ .query_param(new_parameter(options['status_updated_before'], key: 'status_updated_before'))
424
+ .query_param(new_parameter(options['status_updated_after'], key: 'status_updated_after'))
425
+ .query_param(new_parameter(options['filter'], key: 'filter'))
426
+ .query_param(new_parameter(options['page_size'], key: 'page_size'))
427
+ .query_param(new_parameter(options['page'], key: 'page'))
428
+ .query_param(new_parameter(options['customer_ids'], key: 'customer_ids'))
429
+ .header_param(new_parameter('application/json', key: 'accept'))
430
+ .auth(Single.new('Oauth2')))
431
+ .response(new_response_handler
432
+ .deserializer(APIHelper.method(:custom_type_deserializer))
433
+ .deserialize_into(SubscriptionCollection.method(:from_hash))
434
+ .is_api_response(true)
435
+ .local_error('400',
436
+ 'Request is not well-formed, syntactically incorrect, or'\
437
+ ' violates schema.',
438
+ SubscriptionErrorException)
439
+ .local_error('401',
440
+ 'Authentication failed due to missing authorization header, or'\
441
+ ' invalid authentication credentials.',
442
+ SubscriptionErrorException)
443
+ .local_error('403',
444
+ 'Authorization failed due to insufficient permissions.',
445
+ SubscriptionErrorException)
446
+ .local_error('500',
447
+ 'An internal server error has occurred.',
448
+ SubscriptionErrorException)
449
+ .local_error('default',
450
+ 'The error response.',
451
+ SubscriptionErrorException))
452
+ .execute
453
+ end
454
+
455
+ # Shows details for a subscription, by ID.
456
+ # @param [String] id Required parameter: The ID of the subscription.
457
+ # @param [String] fields Optional parameter: List of fields that are to be
458
+ # returned in the response. Possible value for fields are
459
+ # last_failed_payment and plan.
460
+ # @return [ApiResponse] Complete http response with raw body and status code.
461
+ def get_subscription(options = {})
462
+ @api_call
463
+ .request(new_request_builder(HttpMethodEnum::GET,
464
+ '/v1/billing/subscriptions/{id}',
465
+ Server::DEFAULT)
466
+ .template_param(new_parameter(options['id'], key: 'id')
467
+ .should_encode(true))
468
+ .query_param(new_parameter(options['fields'], key: 'fields'))
469
+ .header_param(new_parameter('application/json', key: 'accept'))
470
+ .auth(Single.new('Oauth2')))
471
+ .response(new_response_handler
472
+ .deserializer(APIHelper.method(:custom_type_deserializer))
473
+ .deserialize_into(Subscription.method(:from_hash))
474
+ .is_api_response(true)
475
+ .local_error('401',
476
+ 'Authentication failed due to missing authorization header, or'\
477
+ ' invalid authentication credentials.',
478
+ SubscriptionErrorException)
479
+ .local_error('403',
480
+ 'Authorization failed due to insufficient permissions.',
481
+ SubscriptionErrorException)
482
+ .local_error('404',
483
+ 'The specified resource does not exist.',
484
+ SubscriptionErrorException)
485
+ .local_error('500',
486
+ 'An internal server error has occurred.',
487
+ SubscriptionErrorException)
488
+ .local_error('default',
489
+ 'The error response.',
490
+ SubscriptionErrorException))
491
+ .execute
492
+ end
493
+
494
+ # Updates a subscription which could be in ACTIVE or SUSPENDED status. You
495
+ # can override plan level default attributes by providing customised values
496
+ # for plan path in the patch request. You cannot update attributes that have
497
+ # already completed (Example - trial cycles can’t be updated if completed).
498
+ # Once overridden, changes to plan resource will not impact subscription.
499
+ # Any price update will not impact billing cycles within next 10 days
500
+ # (Applicable only for subscriptions funded by PayPal account). Following
501
+ # are the fields eligible for patch. Attribute or object Operations
502
+ # billing_info.outstanding_balance replace custom_id add,replace
503
+ # plan.billing_cycles[@sequence==n]. pricing_scheme.fixed_price add,replace
504
+ # plan.billing_cycles[@sequence==n]. pricing_scheme.tiers replace
505
+ # plan.billing_cycles[@sequence==n]. total_cycles replace
506
+ # plan.payment_preferences. auto_bill_outstanding replace
507
+ # plan.payment_preferences. payment_failure_threshold replace
508
+ # plan.taxes.inclusive add,replace plan.taxes.percentage add,replace
509
+ # shipping_amount add,replace start_time replace subscriber.shipping_address
510
+ # add,replace subscriber.payment_source (for subscriptions funded by card
511
+ # payments) replace
512
+ # @param [String] id Required parameter: The ID for the subscription.
513
+ # @param [Array[Patch]] body Optional parameter: TODO: type description
514
+ # here
515
+ # @return [ApiResponse] Complete http response with raw body and status code.
516
+ def patch_subscription(options = {})
517
+ @api_call
518
+ .request(new_request_builder(HttpMethodEnum::PATCH,
519
+ '/v1/billing/subscriptions/{id}',
520
+ Server::DEFAULT)
521
+ .template_param(new_parameter(options['id'], key: 'id')
522
+ .should_encode(true))
523
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
524
+ .body_param(new_parameter(options['body']))
525
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
526
+ .auth(Single.new('Oauth2')))
527
+ .response(new_response_handler
528
+ .is_response_void(true)
529
+ .is_api_response(true)
530
+ .local_error('400',
531
+ 'Request is not well-formed, syntactically incorrect, or'\
532
+ ' violates schema.',
533
+ SubscriptionErrorException)
534
+ .local_error('401',
535
+ 'Authentication failed due to missing authorization header, or'\
536
+ ' invalid authentication credentials.',
537
+ SubscriptionErrorException)
538
+ .local_error('403',
539
+ 'Authorization failed due to insufficient permissions.',
540
+ SubscriptionErrorException)
541
+ .local_error('404',
542
+ 'The specified resource does not exist.',
543
+ SubscriptionErrorException)
544
+ .local_error('422',
545
+ 'The requested action could not be performed, semantically'\
546
+ ' incorrect, or failed business validation.',
547
+ SubscriptionErrorException)
548
+ .local_error('500',
549
+ 'An internal server error has occurred.',
550
+ SubscriptionErrorException)
551
+ .local_error('default',
552
+ 'The error response.',
553
+ SubscriptionErrorException))
554
+ .execute
555
+ end
556
+
557
+ # Updates the quantity of the product or service in a subscription. You can
558
+ # also use this method to switch the plan and update the `shipping_amount`,
559
+ # `shipping_address` values for the subscription. This type of update
560
+ # requires the buyer's consent.
561
+ # @param [String] id Required parameter: The ID of the subscription.
562
+ # @param [ModifySubscriptionRequest] body Optional parameter: TODO: type
563
+ # description here
564
+ # @return [ApiResponse] Complete http response with raw body and status code.
565
+ def revise_subscription(options = {})
566
+ @api_call
567
+ .request(new_request_builder(HttpMethodEnum::POST,
568
+ '/v1/billing/subscriptions/{id}/revise',
569
+ Server::DEFAULT)
570
+ .template_param(new_parameter(options['id'], key: 'id')
571
+ .should_encode(true))
572
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
573
+ .body_param(new_parameter(options['body']))
574
+ .header_param(new_parameter('application/json', key: 'accept'))
575
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
576
+ .auth(Single.new('Oauth2')))
577
+ .response(new_response_handler
578
+ .deserializer(APIHelper.method(:custom_type_deserializer))
579
+ .deserialize_into(ModifySubscriptionResponse.method(:from_hash))
580
+ .is_api_response(true)
581
+ .local_error('400',
582
+ 'Bad Request. Request is not well-formed, syntactically'\
583
+ ' incorrect, or violates schema.',
584
+ SubscriptionErrorException)
585
+ .local_error('401',
586
+ 'Authentication failed due to missing authorization header, or'\
587
+ ' invalid authentication credentials.',
588
+ SubscriptionErrorException)
589
+ .local_error('403',
590
+ 'Authorization failed due to insufficient permissions.',
591
+ SubscriptionErrorException)
592
+ .local_error('404',
593
+ 'The specified resource does not exist.',
594
+ SubscriptionErrorException)
595
+ .local_error('422',
596
+ 'The requested action could not be performed, semantically'\
597
+ ' incorrect, or failed business validation.',
598
+ SubscriptionErrorException)
599
+ .local_error('500',
600
+ 'An internal server error has occurred.',
601
+ SubscriptionErrorException)
602
+ .local_error('default',
603
+ 'The error response.',
604
+ SubscriptionErrorException))
605
+ .execute
606
+ end
607
+
608
+ # Suspends the subscription.
609
+ # @param [String] id Required parameter: The ID of the subscription.
610
+ # @param [SuspendSubscription] body Optional parameter: TODO: type
611
+ # description here
612
+ # @return [ApiResponse] Complete http response with raw body and status code.
613
+ def suspend_subscription(options = {})
614
+ @api_call
615
+ .request(new_request_builder(HttpMethodEnum::POST,
616
+ '/v1/billing/subscriptions/{id}/suspend',
617
+ Server::DEFAULT)
618
+ .template_param(new_parameter(options['id'], key: 'id')
619
+ .should_encode(true))
620
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
621
+ .body_param(new_parameter(options['body']))
622
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
623
+ .auth(Single.new('Oauth2')))
624
+ .response(new_response_handler
625
+ .is_response_void(true)
626
+ .is_api_response(true)
627
+ .local_error('400',
628
+ 'Bad Request. Request is not well-formed, syntactically'\
629
+ ' incorrect, or violates schema.',
630
+ SubscriptionErrorException)
631
+ .local_error('401',
632
+ 'Authentication failed due to missing authorization header, or'\
633
+ ' invalid authentication credentials.',
634
+ SubscriptionErrorException)
635
+ .local_error('403',
636
+ 'Authorization failed due to insufficient permissions.',
637
+ SubscriptionErrorException)
638
+ .local_error('404',
639
+ 'The specified resource does not exist.',
640
+ SubscriptionErrorException)
641
+ .local_error('422',
642
+ 'The requested action could not be performed, semantically'\
643
+ ' incorrect, or failed business validation.',
644
+ SubscriptionErrorException)
645
+ .local_error('500',
646
+ 'An internal server error has occurred.',
647
+ SubscriptionErrorException)
648
+ .local_error('default',
649
+ 'The error response.',
650
+ SubscriptionErrorException))
651
+ .execute
652
+ end
653
+
654
+ # Cancels the subscription.
655
+ # @param [String] id Required parameter: The ID of the subscription.
656
+ # @param [CancelSubscriptionRequest] body Optional parameter: TODO: type
657
+ # description here
658
+ # @return [ApiResponse] Complete http response with raw body and status code.
659
+ def cancel_subscription(options = {})
660
+ @api_call
661
+ .request(new_request_builder(HttpMethodEnum::POST,
662
+ '/v1/billing/subscriptions/{id}/cancel',
663
+ Server::DEFAULT)
664
+ .template_param(new_parameter(options['id'], key: 'id')
665
+ .should_encode(true))
666
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
667
+ .body_param(new_parameter(options['body']))
668
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
669
+ .auth(Single.new('Oauth2')))
670
+ .response(new_response_handler
671
+ .is_response_void(true)
672
+ .is_api_response(true)
673
+ .local_error('400',
674
+ 'Bad Request. Request is not well-formed, syntactically'\
675
+ ' incorrect, or violates schema.',
676
+ SubscriptionErrorException)
677
+ .local_error('401',
678
+ 'Authentication failed due to missing authorization header, or'\
679
+ ' invalid authentication credentials.',
680
+ SubscriptionErrorException)
681
+ .local_error('403',
682
+ 'Authorization failed due to insufficient permissions.',
683
+ SubscriptionErrorException)
684
+ .local_error('404',
685
+ 'The specified resource does not exist.',
686
+ SubscriptionErrorException)
687
+ .local_error('422',
688
+ 'The requested action could not be performed, semantically'\
689
+ ' incorrect, or failed business validation.',
690
+ SubscriptionErrorException)
691
+ .local_error('500',
692
+ 'An internal server error has occurred.',
693
+ SubscriptionErrorException)
694
+ .local_error('default',
695
+ 'The error response.',
696
+ SubscriptionErrorException))
697
+ .execute
698
+ end
699
+
700
+ # Activates the subscription.
701
+ # @param [String] id Required parameter: The ID of the subscription.
702
+ # @param [ActivateSubscriptionRequest] body Optional parameter: TODO: type
703
+ # description here
704
+ # @return [ApiResponse] Complete http response with raw body and status code.
705
+ def activate_subscription(options = {})
706
+ @api_call
707
+ .request(new_request_builder(HttpMethodEnum::POST,
708
+ '/v1/billing/subscriptions/{id}/activate',
709
+ Server::DEFAULT)
710
+ .template_param(new_parameter(options['id'], key: 'id')
711
+ .should_encode(true))
712
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
713
+ .body_param(new_parameter(options['body']))
714
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
715
+ .auth(Single.new('Oauth2')))
716
+ .response(new_response_handler
717
+ .is_response_void(true)
718
+ .is_api_response(true)
719
+ .local_error('400',
720
+ 'Bad Request. Request is not well-formed, syntactically'\
721
+ ' incorrect, or violates schema.',
722
+ SubscriptionErrorException)
723
+ .local_error('401',
724
+ 'Authentication failed due to missing authorization header, or'\
725
+ ' invalid authentication credentials.',
726
+ SubscriptionErrorException)
727
+ .local_error('403',
728
+ 'Authorization failed due to insufficient permissions.',
729
+ SubscriptionErrorException)
730
+ .local_error('404',
731
+ 'The specified resource does not exist.',
732
+ SubscriptionErrorException)
733
+ .local_error('422',
734
+ 'The requested action could not be performed, semantically'\
735
+ ' incorrect, or failed business validation.',
736
+ SubscriptionErrorException)
737
+ .local_error('500',
738
+ 'An internal server error has occurred.',
739
+ SubscriptionErrorException)
740
+ .local_error('default',
741
+ 'The error response.',
742
+ SubscriptionErrorException))
743
+ .execute
744
+ end
745
+
746
+ # Captures an authorized payment from the subscriber on the subscription.
747
+ # @param [String] id Required parameter: The ID of the subscription.
748
+ # @param [String] paypal_request_id Optional parameter: The server stores
749
+ # keys for 72 hours.
750
+ # @param [CaptureSubscriptionRequest] body Optional parameter: TODO: type
751
+ # description here
752
+ # @return [ApiResponse] Complete http response with raw body and status code.
753
+ def capture_subscription(options = {})
754
+ @api_call
755
+ .request(new_request_builder(HttpMethodEnum::POST,
756
+ '/v1/billing/subscriptions/{id}/capture',
757
+ Server::DEFAULT)
758
+ .template_param(new_parameter(options['id'], key: 'id')
759
+ .should_encode(true))
760
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
761
+ .header_param(new_parameter(options['paypal_request_id'], key: 'PayPal-Request-Id'))
762
+ .body_param(new_parameter(options['body']))
763
+ .header_param(new_parameter('application/json', key: 'accept'))
764
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
765
+ .auth(Single.new('Oauth2')))
766
+ .response(new_response_handler
767
+ .is_nullable_response(true)
768
+ .deserializer(APIHelper.method(:custom_type_deserializer))
769
+ .deserialize_into(SubscriptionTransactionDetails.method(:from_hash))
770
+ .is_api_response(true)
771
+ .local_error('400',
772
+ 'Bad Request. Request is not well-formed, syntactically'\
773
+ ' incorrect, or violates schema.',
774
+ SubscriptionErrorException)
775
+ .local_error('401',
776
+ 'Authentication failed due to missing authorization header, or'\
777
+ ' invalid authentication credentials.',
778
+ SubscriptionErrorException)
779
+ .local_error('403',
780
+ 'Authorization failed due to insufficient permissions.',
781
+ SubscriptionErrorException)
782
+ .local_error('404',
783
+ 'The specified resource does not exist.',
784
+ SubscriptionErrorException)
785
+ .local_error('422',
786
+ 'The requested action could not be performed, semantically'\
787
+ ' incorrect, or failed business validation.',
788
+ SubscriptionErrorException)
789
+ .local_error('500',
790
+ 'An internal server error has occurred.',
791
+ SubscriptionErrorException)
792
+ .local_error('default',
793
+ 'The error response.',
794
+ SubscriptionErrorException))
795
+ .execute
796
+ end
797
+
798
+ # Lists transactions for a subscription.
799
+ # @param [String] id Required parameter: The ID of the subscription.
800
+ # @param [String] start_time Required parameter: The start time of the range
801
+ # of transactions to list.
802
+ # @param [String] end_time Required parameter: The end time of the range of
803
+ # transactions to list.
804
+ # @return [ApiResponse] Complete http response with raw body and status code.
805
+ def list_subscription_transactions(options = {})
806
+ @api_call
807
+ .request(new_request_builder(HttpMethodEnum::GET,
808
+ '/v1/billing/subscriptions/{id}/transactions',
809
+ Server::DEFAULT)
810
+ .template_param(new_parameter(options['id'], key: 'id')
811
+ .should_encode(true))
812
+ .query_param(new_parameter(options['start_time'], key: 'start_time'))
813
+ .query_param(new_parameter(options['end_time'], key: 'end_time'))
814
+ .header_param(new_parameter('application/json', key: 'accept'))
815
+ .auth(Single.new('Oauth2')))
816
+ .response(new_response_handler
817
+ .deserializer(APIHelper.method(:custom_type_deserializer))
818
+ .deserialize_into(TransactionsList.method(:from_hash))
819
+ .is_api_response(true)
820
+ .local_error('400',
821
+ 'Bad Request. Request is not well-formed, syntactically'\
822
+ ' incorrect, or violates schema.',
823
+ SubscriptionErrorException)
824
+ .local_error('401',
825
+ 'Authentication failed due to missing authorization header, or'\
826
+ ' invalid authentication credentials.',
827
+ SubscriptionErrorException)
828
+ .local_error('403',
829
+ 'Authorization failed due to insufficient permissions.',
830
+ SubscriptionErrorException)
831
+ .local_error('404',
832
+ 'The specified resource does not exist.',
833
+ SubscriptionErrorException)
834
+ .local_error('500',
835
+ 'An internal server error has occurred.',
836
+ SubscriptionErrorException)
837
+ .local_error('default',
838
+ 'The error response.',
839
+ SubscriptionErrorException))
840
+ .execute
841
+ end
842
+ end
843
+ end