paypal-server-sdk 0.6.1 → 0.7.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 (291) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +34 -34
  3. data/README.md +19 -30
  4. data/lib/paypal_server_sdk/controllers/base_controller.rb +1 -1
  5. data/lib/paypal_server_sdk/controllers/orders_controller.rb +103 -148
  6. data/lib/paypal_server_sdk/controllers/payments_controller.rb +94 -73
  7. data/lib/paypal_server_sdk/controllers/vault_controller.rb +12 -12
  8. data/lib/paypal_server_sdk/exceptions/api_exception.rb +11 -0
  9. data/lib/paypal_server_sdk/exceptions/error_exception.rb +14 -0
  10. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +14 -0
  11. data/lib/paypal_server_sdk/models/activity_timestamps.rb +17 -6
  12. data/lib/paypal_server_sdk/models/address.rb +24 -9
  13. data/lib/paypal_server_sdk/models/amount_breakdown.rb +17 -0
  14. data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +22 -9
  15. data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +12 -0
  16. data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +12 -0
  17. data/lib/paypal_server_sdk/models/apple_pay_card.rb +14 -0
  18. data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +48 -6
  19. data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +16 -0
  20. data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +14 -0
  21. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +6 -2
  22. data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +43 -7
  23. data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +12 -0
  24. data/lib/paypal_server_sdk/models/apple_pay_request.rb +27 -13
  25. data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +15 -0
  26. data/lib/paypal_server_sdk/models/assurance_details.rb +14 -0
  27. data/lib/paypal_server_sdk/models/authentication_response.rb +13 -0
  28. data/lib/paypal_server_sdk/models/authorization.rb +28 -9
  29. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +2 -2
  30. data/lib/paypal_server_sdk/models/authorization_status.rb +12 -6
  31. data/lib/paypal_server_sdk/models/authorization_status_details.rb +12 -0
  32. data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +12 -0
  33. data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +29 -9
  34. data/lib/paypal_server_sdk/models/avs_code.rb +102 -71
  35. data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +19 -5
  36. data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +18 -5
  37. data/lib/paypal_server_sdk/models/base_model.rb +76 -28
  38. data/lib/paypal_server_sdk/models/billing_cycle.rb +129 -0
  39. data/lib/paypal_server_sdk/models/bin_details.rb +18 -5
  40. data/lib/paypal_server_sdk/models/blik_experience_context.rb +17 -0
  41. data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +12 -0
  42. data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +12 -0
  43. data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +15 -0
  44. data/lib/paypal_server_sdk/models/blik_payment_object.rb +22 -10
  45. data/lib/paypal_server_sdk/models/blik_payment_request.rb +24 -10
  46. data/lib/paypal_server_sdk/models/callback_configuration.rb +75 -0
  47. data/lib/paypal_server_sdk/models/callback_events.rb +27 -0
  48. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +22 -14
  49. data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +15 -0
  50. data/lib/paypal_server_sdk/models/capture_request.rb +17 -0
  51. data/lib/paypal_server_sdk/models/capture_status.rb +10 -6
  52. data/lib/paypal_server_sdk/models/capture_status_details.rb +12 -0
  53. data/lib/paypal_server_sdk/models/capture_status_with_details.rb +12 -0
  54. data/lib/paypal_server_sdk/models/captured_payment.rb +36 -10
  55. data/lib/paypal_server_sdk/models/card_attributes.rb +13 -0
  56. data/lib/paypal_server_sdk/models/card_attributes_response.rb +12 -0
  57. data/lib/paypal_server_sdk/models/card_authentication_response.rb +14 -2
  58. data/lib/paypal_server_sdk/models/card_brand.rb +29 -25
  59. data/lib/paypal_server_sdk/models/card_customer_information.rb +18 -5
  60. data/lib/paypal_server_sdk/models/card_experience_context.rb +12 -0
  61. data/lib/paypal_server_sdk/models/card_from_request.rb +12 -0
  62. data/lib/paypal_server_sdk/models/{card_response_entity.rb → card_payment_token_entity.rb} +37 -15
  63. data/lib/paypal_server_sdk/models/card_request.rb +32 -17
  64. data/lib/paypal_server_sdk/models/card_response.rb +43 -2
  65. data/lib/paypal_server_sdk/models/{portable_postal_address_medium_grained.rb → card_response_address.rb} +43 -23
  66. data/lib/paypal_server_sdk/models/card_stored_credential.rb +23 -7
  67. data/lib/paypal_server_sdk/models/card_supplementary_data.rb +13 -5
  68. data/lib/paypal_server_sdk/models/card_type.rb +5 -5
  69. data/lib/paypal_server_sdk/models/card_vault_response.rb +13 -0
  70. data/lib/paypal_server_sdk/models/card_verification.rb +16 -3
  71. data/lib/paypal_server_sdk/models/card_verification_details.rb +27 -11
  72. data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +12 -0
  73. data/lib/paypal_server_sdk/models/card_verification_status.rb +23 -0
  74. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +10 -2
  75. data/lib/paypal_server_sdk/models/cobranded_card.rb +13 -0
  76. data/lib/paypal_server_sdk/models/confirm_order_request.rb +15 -12
  77. data/lib/paypal_server_sdk/models/{customer_request.rb → customer.rb} +18 -4
  78. data/lib/paypal_server_sdk/models/customer_information.rb +17 -5
  79. data/lib/paypal_server_sdk/models/customer_response.rb +76 -0
  80. data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +21 -4
  81. data/lib/paypal_server_sdk/models/cvv_code.rb +35 -27
  82. data/lib/paypal_server_sdk/models/disbursement_mode.rb +5 -2
  83. data/lib/paypal_server_sdk/models/dispute_category.rb +2 -2
  84. data/lib/paypal_server_sdk/models/eci_flag.rb +6 -8
  85. data/lib/paypal_server_sdk/models/enrollment_status.rb +11 -8
  86. data/lib/paypal_server_sdk/models/eps_payment_object.rb +17 -5
  87. data/lib/paypal_server_sdk/models/eps_payment_request.rb +18 -5
  88. data/lib/paypal_server_sdk/models/error_details.rb +15 -0
  89. data/lib/paypal_server_sdk/models/exchange_rate.rb +14 -0
  90. data/lib/paypal_server_sdk/models/experience_context.rb +15 -0
  91. data/lib/paypal_server_sdk/models/fulfillment_type.rb +9 -4
  92. data/lib/paypal_server_sdk/models/giropay_payment_object.rb +17 -5
  93. data/lib/paypal_server_sdk/models/giropay_payment_request.rb +18 -5
  94. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +8 -2
  95. data/lib/paypal_server_sdk/models/google_pay_card.rb +17 -3
  96. data/lib/paypal_server_sdk/models/google_pay_card_response.rb +16 -0
  97. data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +17 -0
  98. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +1 -1
  99. data/lib/paypal_server_sdk/models/google_pay_request.rb +22 -17
  100. data/lib/paypal_server_sdk/models/google_pay_request_card.rb +14 -0
  101. data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +18 -5
  102. data/lib/paypal_server_sdk/models/ideal_payment_object.rb +18 -5
  103. data/lib/paypal_server_sdk/models/ideal_payment_request.rb +18 -5
  104. data/lib/paypal_server_sdk/models/item.rb +17 -0
  105. data/lib/paypal_server_sdk/models/item_category.rb +6 -3
  106. data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +12 -0
  107. data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +17 -0
  108. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +3 -3
  109. data/lib/paypal_server_sdk/models/line_item.rb +21 -0
  110. data/lib/paypal_server_sdk/models/link_description.rb +12 -0
  111. data/lib/paypal_server_sdk/models/money.rb +16 -4
  112. data/lib/paypal_server_sdk/models/mybank_payment_object.rb +18 -5
  113. data/lib/paypal_server_sdk/models/mybank_payment_request.rb +18 -5
  114. data/lib/paypal_server_sdk/models/name.rb +12 -0
  115. data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +14 -0
  116. data/lib/paypal_server_sdk/models/network_token.rb +15 -0
  117. data/lib/paypal_server_sdk/models/network_transaction_reference.rb +14 -0
  118. data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +15 -3
  119. data/lib/paypal_server_sdk/models/one_time_charge.rb +118 -0
  120. data/lib/paypal_server_sdk/models/order.rb +22 -19
  121. data/lib/paypal_server_sdk/models/order_application_context.rb +40 -25
  122. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +10 -3
  123. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +14 -10
  124. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +11 -6
  125. data/lib/paypal_server_sdk/models/order_authorize_request.rb +12 -0
  126. data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +20 -9
  127. data/lib/paypal_server_sdk/models/order_authorize_response.rb +22 -19
  128. data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +14 -0
  129. data/lib/paypal_server_sdk/models/order_capture_request.rb +12 -0
  130. data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +20 -9
  131. data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +21 -8
  132. data/lib/paypal_server_sdk/models/order_request.rb +18 -4
  133. data/lib/paypal_server_sdk/models/order_status.rb +19 -6
  134. data/lib/paypal_server_sdk/models/order_tracker_item.rb +15 -0
  135. data/lib/paypal_server_sdk/models/order_tracker_request.rb +22 -5
  136. data/lib/paypal_server_sdk/models/order_tracker_response.rb +19 -6
  137. data/lib/paypal_server_sdk/models/order_tracker_status.rb +5 -2
  138. data/lib/paypal_server_sdk/models/order_update_callback_error_response.rb +89 -0
  139. data/lib/paypal_server_sdk/models/order_update_callback_error_response_details.rb +81 -0
  140. data/lib/paypal_server_sdk/models/order_update_callback_request.rb +111 -0
  141. data/lib/paypal_server_sdk/models/order_update_callback_response.rb +72 -0
  142. data/lib/paypal_server_sdk/models/order_update_callback_shipping_address.rb +107 -0
  143. data/lib/paypal_server_sdk/models/order_update_callback_shipping_option.rb +93 -0
  144. data/lib/paypal_server_sdk/models/{capture.rb → orders_capture.rb} +46 -22
  145. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +51 -0
  146. data/lib/paypal_server_sdk/models/p24_payment_object.rb +24 -10
  147. data/lib/paypal_server_sdk/models/p24_payment_request.rb +22 -10
  148. data/lib/paypal_server_sdk/models/pa_res_status.rb +16 -16
  149. data/lib/paypal_server_sdk/models/participant_metadata.rb +64 -0
  150. data/lib/paypal_server_sdk/models/patch.rb +20 -10
  151. data/lib/paypal_server_sdk/models/patch_op.rb +43 -6
  152. data/lib/paypal_server_sdk/models/payee_base.rb +17 -5
  153. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +4 -2
  154. data/lib/paypal_server_sdk/models/payer.rb +20 -5
  155. data/lib/paypal_server_sdk/models/payer_base.rb +16 -5
  156. data/lib/paypal_server_sdk/models/payment_advice_code.rb +53 -8
  157. data/lib/paypal_server_sdk/models/payment_authorization.rb +32 -11
  158. data/lib/paypal_server_sdk/models/payment_collection.rb +16 -2
  159. data/lib/paypal_server_sdk/models/payment_initiator.rb +5 -2
  160. data/lib/paypal_server_sdk/models/payment_instruction.rb +16 -0
  161. data/lib/paypal_server_sdk/models/payment_method_preference.rb +14 -0
  162. data/lib/paypal_server_sdk/models/payment_source.rb +25 -9
  163. data/lib/paypal_server_sdk/models/payment_source_response.rb +19 -0
  164. data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +12 -0
  165. data/lib/paypal_server_sdk/models/payment_token_request.rb +17 -3
  166. data/lib/paypal_server_sdk/models/payment_token_request_card.rb +17 -22
  167. data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +12 -0
  168. data/lib/paypal_server_sdk/models/payment_token_response.rb +18 -3
  169. data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +18 -14
  170. data/lib/paypal_server_sdk/models/payment_token_status.rb +36 -0
  171. data/lib/paypal_server_sdk/models/payments_capture.rb +252 -0
  172. data/lib/paypal_server_sdk/models/payments_payment_advice_code.rb +42 -0
  173. data/lib/paypal_server_sdk/models/payments_processor_response.rb +98 -0
  174. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +11 -3
  175. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +9 -4
  176. data/lib/paypal_server_sdk/models/paypal_payment_token.rb +38 -8
  177. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +7 -3
  178. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +7 -3
  179. data/lib/paypal_server_sdk/models/paypal_wallet.rb +41 -11
  180. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +6 -2
  181. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +12 -0
  182. data/lib/paypal_server_sdk/models/paypal_wallet_attributes_response.rb +12 -0
  183. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +31 -0
  184. data/lib/paypal_server_sdk/models/paypal_wallet_customer.rb +18 -5
  185. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +18 -5
  186. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +45 -12
  187. data/lib/paypal_server_sdk/models/paypal_wallet_response.rb +39 -7
  188. data/lib/paypal_server_sdk/models/paypal_wallet_stored_credential.rb +98 -0
  189. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +18 -1
  190. data/lib/paypal_server_sdk/models/paypal_wallet_vault_response.rb +13 -0
  191. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +8 -3
  192. data/lib/paypal_server_sdk/models/phone.rb +14 -0
  193. data/lib/paypal_server_sdk/models/phone_number.rb +12 -0
  194. data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +15 -0
  195. data/lib/paypal_server_sdk/models/phone_with_type.rb +13 -0
  196. data/lib/paypal_server_sdk/models/plan.rb +102 -0
  197. data/lib/paypal_server_sdk/models/platform_fee.rb +12 -0
  198. data/lib/paypal_server_sdk/models/pricing_model.rb +28 -0
  199. data/lib/paypal_server_sdk/models/pricing_scheme.rb +84 -0
  200. data/lib/paypal_server_sdk/models/processor_response.rb +15 -0
  201. data/lib/paypal_server_sdk/models/processor_response_code.rb +312 -308
  202. data/lib/paypal_server_sdk/models/purchase_unit.rb +43 -25
  203. data/lib/paypal_server_sdk/models/purchase_unit_request.rb +36 -20
  204. data/lib/paypal_server_sdk/models/reauthorize_request.rb +19 -8
  205. data/lib/paypal_server_sdk/models/refund.rb +25 -6
  206. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +2 -1
  207. data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +12 -0
  208. data/lib/paypal_server_sdk/models/refund_platform_fee.rb +12 -0
  209. data/lib/paypal_server_sdk/models/refund_request.rb +17 -2
  210. data/lib/paypal_server_sdk/models/refund_status.rb +4 -4
  211. data/lib/paypal_server_sdk/models/refund_status_details.rb +12 -0
  212. data/lib/paypal_server_sdk/models/refund_status_with_details.rb +12 -0
  213. data/lib/paypal_server_sdk/models/related_identifiers.rb +14 -0
  214. data/lib/paypal_server_sdk/models/risk_supplementary_data.rb +63 -0
  215. data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +21 -0
  216. data/lib/paypal_server_sdk/models/seller_protection.rb +13 -0
  217. data/lib/paypal_server_sdk/models/seller_protection_status.rb +6 -3
  218. data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +18 -0
  219. data/lib/paypal_server_sdk/models/setup_token_card_experience_context.rb +21 -5
  220. data/lib/paypal_server_sdk/models/setup_token_request.rb +17 -3
  221. data/lib/paypal_server_sdk/models/setup_token_request_card.rb +20 -18
  222. data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +13 -0
  223. data/lib/paypal_server_sdk/models/setup_token_response.rb +23 -16
  224. data/lib/paypal_server_sdk/models/setup_token_response_card.rb +25 -3
  225. data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +13 -0
  226. data/lib/paypal_server_sdk/models/shipment_carrier.rb +1377 -1402
  227. data/lib/paypal_server_sdk/models/shipping_details.rb +29 -2
  228. data/lib/paypal_server_sdk/models/shipping_name.rb +12 -0
  229. data/lib/paypal_server_sdk/models/shipping_option.rb +14 -0
  230. data/lib/paypal_server_sdk/models/shipping_options_purchase_unit.rb +102 -0
  231. data/lib/paypal_server_sdk/models/shipping_preference.rb +6 -3
  232. data/lib/paypal_server_sdk/models/shipping_type.rb +12 -4
  233. data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +30 -2
  234. data/lib/paypal_server_sdk/models/sofort_payment_object.rb +18 -5
  235. data/lib/paypal_server_sdk/models/sofort_payment_request.rb +18 -5
  236. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +12 -4
  237. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +2 -1
  238. data/lib/paypal_server_sdk/models/stored_payment_source.rb +23 -7
  239. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +6 -3
  240. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +6 -3
  241. data/lib/paypal_server_sdk/models/supplementary_data.rb +25 -7
  242. data/lib/paypal_server_sdk/models/supplementary_purchase_data.rb +13 -0
  243. data/lib/paypal_server_sdk/models/tax_id_type.rb +2 -2
  244. data/lib/paypal_server_sdk/models/tax_info.rb +12 -0
  245. data/lib/paypal_server_sdk/models/tenure_type.rb +28 -0
  246. data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +14 -0
  247. data/lib/paypal_server_sdk/models/three_d_secure_card_authentication_response.rb +89 -0
  248. data/lib/paypal_server_sdk/models/token.rb +12 -0
  249. data/lib/paypal_server_sdk/models/token_type.rb +2 -1
  250. data/lib/paypal_server_sdk/models/trustly_payment_object.rb +31 -6
  251. data/lib/paypal_server_sdk/models/trustly_payment_request.rb +30 -6
  252. data/lib/paypal_server_sdk/models/universal_product_code.rb +12 -0
  253. data/lib/paypal_server_sdk/models/upc_type.rb +14 -14
  254. data/lib/paypal_server_sdk/models/usage_pattern.rb +72 -0
  255. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +39 -0
  256. data/lib/paypal_server_sdk/models/vault_customer.rb +12 -0
  257. data/lib/paypal_server_sdk/models/vault_experience_context.rb +26 -7
  258. data/lib/paypal_server_sdk/models/vault_instruction.rb +12 -0
  259. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +26 -0
  260. data/lib/paypal_server_sdk/models/vault_instruction_base.rb +12 -0
  261. data/lib/paypal_server_sdk/models/vault_paypal_wallet_request.rb +43 -4
  262. data/lib/paypal_server_sdk/models/vault_response.rb +13 -0
  263. data/lib/paypal_server_sdk/models/vault_response_customer.rb +86 -0
  264. data/lib/paypal_server_sdk/models/vault_status.rb +8 -3
  265. data/lib/paypal_server_sdk/models/vault_token_request.rb +13 -1
  266. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +20 -0
  267. data/lib/paypal_server_sdk/models/vault_venmo_experience_context.rb +24 -6
  268. data/lib/paypal_server_sdk/models/vault_venmo_request.rb +31 -3
  269. data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +29 -3
  270. data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +26 -1
  271. data/lib/paypal_server_sdk/models/venmo_payment_token.rb +37 -8
  272. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +4 -2
  273. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +12 -6
  274. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +5 -2
  275. data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +12 -0
  276. data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +12 -0
  277. data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +16 -5
  278. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +34 -5
  279. data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +21 -8
  280. data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +21 -5
  281. data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +17 -0
  282. data/lib/paypal_server_sdk/utilities/file_wrapper.rb +14 -2
  283. data/lib/paypal_server_sdk.rb +43 -14
  284. metadata +40 -15
  285. data/lib/paypal_server_sdk/models/address_details.rb +0 -160
  286. data/lib/paypal_server_sdk/models/card_payment_token.rb +0 -166
  287. data/lib/paypal_server_sdk/models/card_verification_method.rb +0 -29
  288. data/lib/paypal_server_sdk/models/google_pay_card_attributes.rb +0 -51
  289. data/lib/paypal_server_sdk/models/payee.rb +0 -65
  290. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_pattern.rb +0 -35
  291. data/lib/paypal_server_sdk/models/token_request_type.rb +0 -23
@@ -15,6 +15,10 @@ module PaypalServerSdk
15
15
  # @return [String]
16
16
  attr_accessor :description
17
17
 
18
+ # Expected business/charge model for the billing agreement.
19
+ # @return [UsagePattern]
20
+ attr_accessor :usage_pattern
21
+
18
22
  # The shipping details.
19
23
  # @return [VaultedDigitalWalletShippingDetails]
20
24
  attr_accessor :shipping
@@ -31,20 +35,19 @@ module PaypalServerSdk
31
35
  attr_accessor :permit_multiple_payment_tokens
32
36
 
33
37
  # The usage type associated with a digital wallet payment token.
34
- # @return [String]
38
+ # @return [PaypalPaymentTokenUsageType]
35
39
  attr_accessor :usage_type
36
40
 
37
41
  # The customer type associated with a digital wallet payment token. This is
38
42
  # to indicate whether the customer acting on the merchant / platform is
39
43
  # either a business or a consumer.
40
- # @return [String]
44
+ # @return [PaypalPaymentTokenCustomerType]
41
45
  attr_accessor :customer_type
42
46
 
43
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
44
- # to 64 characters are allowed before and 255 characters are allowed after
45
- # the <code>@</code> sign. However, the generally accepted maximum length
46
- # for an email address is 254 characters. The pattern verifies that an
47
- # unquoted <code>@</code> sign exists.</blockquote>
47
+ # The internationalized email address. Note: Up to 64 characters are allowed
48
+ # before and 255 characters are allowed after the @ sign. However, the
49
+ # generally accepted maximum length for an email address is 254 characters.
50
+ # The pattern verifies that an unquoted @ sign exists.
48
51
  # @return [String]
49
52
  attr_accessor :email_address
50
53
 
@@ -77,6 +80,7 @@ module PaypalServerSdk
77
80
  def self.names
78
81
  @_hash = {} if @_hash.nil?
79
82
  @_hash['description'] = 'description'
83
+ @_hash['usage_pattern'] = 'usage_pattern'
80
84
  @_hash['shipping'] = 'shipping'
81
85
  @_hash['permit_multiple_payment_tokens'] =
82
86
  'permit_multiple_payment_tokens'
@@ -95,6 +99,7 @@ module PaypalServerSdk
95
99
  def self.optionals
96
100
  %w[
97
101
  description
102
+ usage_pattern
98
103
  shipping
99
104
  permit_multiple_payment_tokens
100
105
  usage_type
@@ -113,11 +118,12 @@ module PaypalServerSdk
113
118
  []
114
119
  end
115
120
 
116
- def initialize(description: SKIP, shipping: SKIP,
121
+ def initialize(description: SKIP, usage_pattern: SKIP, shipping: SKIP,
117
122
  permit_multiple_payment_tokens: false, usage_type: SKIP,
118
123
  customer_type: SKIP, email_address: SKIP, payer_id: SKIP,
119
124
  name: SKIP, phone: SKIP, address: SKIP, user_name: SKIP)
120
125
  @description = description unless description == SKIP
126
+ @usage_pattern = usage_pattern unless usage_pattern == SKIP
121
127
  @shipping = shipping unless shipping == SKIP
122
128
  unless permit_multiple_payment_tokens == SKIP
123
129
  @permit_multiple_payment_tokens =
@@ -139,6 +145,7 @@ module PaypalServerSdk
139
145
 
140
146
  # Extract variables from the hash.
141
147
  description = hash.key?('description') ? hash['description'] : SKIP
148
+ usage_pattern = hash.key?('usage_pattern') ? hash['usage_pattern'] : SKIP
142
149
  shipping = VaultedDigitalWalletShippingDetails.from_hash(hash['shipping']) if
143
150
  hash['shipping']
144
151
  permit_multiple_payment_tokens =
@@ -154,6 +161,7 @@ module PaypalServerSdk
154
161
 
155
162
  # Create object from extracted values.
156
163
  VenmoPaymentToken.new(description: description,
164
+ usage_pattern: usage_pattern,
157
165
  shipping: shipping,
158
166
  permit_multiple_payment_tokens: permit_multiple_payment_tokens,
159
167
  usage_type: usage_type,
@@ -165,5 +173,26 @@ module PaypalServerSdk
165
173
  address: address,
166
174
  user_name: user_name)
167
175
  end
176
+
177
+ # Provides a human-readable string representation of the object.
178
+ def to_s
179
+ class_name = self.class.name.split('::').last
180
+ "<#{class_name} description: #{@description}, usage_pattern: #{@usage_pattern}, shipping:"\
181
+ " #{@shipping}, permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens},"\
182
+ " usage_type: #{@usage_type}, customer_type: #{@customer_type}, email_address:"\
183
+ " #{@email_address}, payer_id: #{@payer_id}, name: #{@name}, phone: #{@phone}, address:"\
184
+ " #{@address}, user_name: #{@user_name}>"
185
+ end
186
+
187
+ # Provides a debugging-friendly string with detailed object information.
188
+ def inspect
189
+ class_name = self.class.name.split('::').last
190
+ "<#{class_name} description: #{@description.inspect}, usage_pattern:"\
191
+ " #{@usage_pattern.inspect}, shipping: #{@shipping.inspect}, permit_multiple_payment_tokens:"\
192
+ " #{@permit_multiple_payment_tokens.inspect}, usage_type: #{@usage_type.inspect},"\
193
+ " customer_type: #{@customer_type.inspect}, email_address: #{@email_address.inspect},"\
194
+ " payer_id: #{@payer_id.inspect}, name: #{@name.inspect}, phone: #{@phone.inspect}, address:"\
195
+ " #{@address.inspect}, user_name: #{@user_name.inspect}>"
196
+ end
168
197
  end
169
198
  end
@@ -9,10 +9,12 @@ module PaypalServerSdk
9
9
  # business or a consumer.
10
10
  class VenmoPaymentTokenCustomerType
11
11
  VENMO_PAYMENT_TOKEN_CUSTOMER_TYPE = [
12
- # TODO: Write general description for CONSUMER
12
+ # The customer vaulting the Venmo payment token is a consumer on the
13
+ # merchant / platform.
13
14
  CONSUMER = 'CONSUMER'.freeze,
14
15
 
15
- # TODO: Write general description for BUSINESS
16
+ # The customer vaulting the Venmo payment token is a business on merchant
17
+ # / platform.
16
18
  BUSINESS = 'BUSINESS'.freeze
17
19
  ].freeze
18
20
 
@@ -7,22 +7,28 @@ module PaypalServerSdk
7
7
  # Expected business/pricing model for the billing agreement.
8
8
  class VenmoPaymentTokenUsagePattern
9
9
  VENMO_PAYMENT_TOKEN_USAGE_PATTERN = [
10
- # TODO: Write general description for IMMEDIATE
10
+ # On-demand instant payments non-recurring, pre-paid, variable amount,
11
+ # variable frequency.
11
12
  IMMEDIATE = 'IMMEDIATE'.freeze,
12
13
 
13
- # TODO: Write general description for DEFERRED
14
+ # Pay after use, non-recurring post-paid, variable amount, irregular
15
+ # frequency.
14
16
  DEFERRED = 'DEFERRED'.freeze,
15
17
 
16
- # TODO: Write general description for RECURRING_PREPAID
18
+ # Pay upfront fixed or variable amount on a fixed date before the
19
+ # goods/service is delivered.
17
20
  RECURRING_PREPAID = 'RECURRING_PREPAID'.freeze,
18
21
 
19
- # TODO: Write general description for RECURRING_POSTPAID
22
+ # Pay on a fixed date based on usage or consumption after the
23
+ # goods/service is delivered.
20
24
  RECURRING_POSTPAID = 'RECURRING_POSTPAID'.freeze,
21
25
 
22
- # TODO: Write general description for THRESHOLD_PREPAID
26
+ # Charge payer when the set amount is reached or monthly billing cycle,
27
+ # whichever comes first, before the goods/service is delivered.
23
28
  THRESHOLD_PREPAID = 'THRESHOLD_PREPAID'.freeze,
24
29
 
25
- # TODO: Write general description for THRESHOLD_POSTPAID
30
+ # Charge payer when the set amount is reached or monthly billing cycle,
31
+ # whichever comes first, after the goods/service is delivered.
26
32
  THRESHOLD_POSTPAID = 'THRESHOLD_POSTPAID'.freeze
27
33
  ].freeze
28
34
 
@@ -7,10 +7,13 @@ module PaypalServerSdk
7
7
  # The usage type associated with the Venmo payment token.
8
8
  class VenmoPaymentTokenUsageType
9
9
  VENMO_PAYMENT_TOKEN_USAGE_TYPE = [
10
- # TODO: Write general description for MERCHANT
10
+ # The Venmo Payment Token will be used for future transaction directly
11
+ # with a merchant.
11
12
  MERCHANT = 'MERCHANT'.freeze,
12
13
 
13
- # TODO: Write general description for PLATFORM
14
+ # The Venmo Payment Token will be used for future transaction on a
15
+ # platform. A platform is typically a marketplace or a channel that a
16
+ # payer can purchase goods and services from multiple merchants.
14
17
  PLATFORM = 'PLATFORM'.freeze
15
18
  ].freeze
16
19
 
@@ -56,5 +56,17 @@ module PaypalServerSdk
56
56
  VenmoWalletAdditionalAttributes.new(customer: customer,
57
57
  vault: vault)
58
58
  end
59
+
60
+ # Provides a human-readable string representation of the object.
61
+ def to_s
62
+ class_name = self.class.name.split('::').last
63
+ "<#{class_name} customer: #{@customer}, vault: #{@vault}>"
64
+ end
65
+
66
+ # Provides a debugging-friendly string with detailed object information.
67
+ def inspect
68
+ class_name = self.class.name.split('::').last
69
+ "<#{class_name} customer: #{@customer.inspect}, vault: #{@vault.inspect}>"
70
+ end
59
71
  end
60
72
  end
@@ -46,5 +46,17 @@ module PaypalServerSdk
46
46
  # Create object from extracted values.
47
47
  VenmoWalletAttributesResponse.new(vault: vault)
48
48
  end
49
+
50
+ # Provides a human-readable string representation of the object.
51
+ def to_s
52
+ class_name = self.class.name.split('::').last
53
+ "<#{class_name} vault: #{@vault}>"
54
+ end
55
+
56
+ # Provides a debugging-friendly string with detailed object information.
57
+ def inspect
58
+ class_name = self.class.name.split('::').last
59
+ "<#{class_name} vault: #{@vault.inspect}>"
60
+ end
49
61
  end
50
62
  end
@@ -13,11 +13,10 @@ module PaypalServerSdk
13
13
  # @return [String]
14
14
  attr_accessor :id
15
15
 
16
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
17
- # to 64 characters are allowed before and 255 characters are allowed after
18
- # the <code>@</code> sign. However, the generally accepted maximum length
19
- # for an email address is 254 characters. The pattern verifies that an
20
- # unquoted <code>@</code> sign exists.</blockquote>
16
+ # The internationalized email address. Note: Up to 64 characters are allowed
17
+ # before and 255 characters are allowed after the @ sign. However, the
18
+ # generally accepted maximum length for an email address is 254 characters.
19
+ # The pattern verifies that an unquoted @ sign exists.
21
20
  # @return [String]
22
21
  attr_accessor :email_address
23
22
 
@@ -59,5 +58,17 @@ module PaypalServerSdk
59
58
  VenmoWalletCustomerInformation.new(id: id,
60
59
  email_address: email_address)
61
60
  end
61
+
62
+ # Provides a human-readable string representation of the object.
63
+ def to_s
64
+ class_name = self.class.name.split('::').last
65
+ "<#{class_name} id: #{@id}, email_address: #{@email_address}>"
66
+ end
67
+
68
+ # Provides a debugging-friendly string with detailed object information.
69
+ def inspect
70
+ class_name = self.class.name.split('::').last
71
+ "<#{class_name} id: #{@id.inspect}, email_address: #{@email_address.inspect}>"
72
+ end
62
73
  end
63
74
  end
@@ -5,9 +5,8 @@
5
5
 
6
6
  module PaypalServerSdk
7
7
  # Customizes the buyer experience during the approval process for payment with
8
- # Venmo.<blockquote><strong>Note:</strong> Partners and Marketplaces might
9
- # configure <code>shipping_preference</code> during partner account setup,
10
- # which overrides the request values.</blockquote>
8
+ # Venmo. Note: Partners and Marketplaces might configure shipping_preference
9
+ # during partner account setup, which overrides the request values.
11
10
  class VenmoWalletExperienceContext < BaseModel
12
11
  SKIP = Object.new
13
12
  private_constant :SKIP
@@ -21,11 +20,16 @@ module PaypalServerSdk
21
20
  # @return [ShippingPreference]
22
21
  attr_accessor :shipping_preference
23
22
 
23
+ # CallBack Configuration that the merchant can provide to PayPal/Venmo.
24
+ # @return [CallbackConfiguration]
25
+ attr_accessor :order_update_callback_config
26
+
24
27
  # A mapping from model property names to API property names.
25
28
  def self.names
26
29
  @_hash = {} if @_hash.nil?
27
30
  @_hash['brand_name'] = 'brand_name'
28
31
  @_hash['shipping_preference'] = 'shipping_preference'
32
+ @_hash['order_update_callback_config'] = 'order_update_callback_config'
29
33
  @_hash
30
34
  end
31
35
 
@@ -34,6 +38,7 @@ module PaypalServerSdk
34
38
  %w[
35
39
  brand_name
36
40
  shipping_preference
41
+ order_update_callback_config
37
42
  ]
38
43
  end
39
44
 
@@ -43,9 +48,14 @@ module PaypalServerSdk
43
48
  end
44
49
 
45
50
  def initialize(brand_name: SKIP,
46
- shipping_preference: ShippingPreference::GET_FROM_FILE)
51
+ shipping_preference: ShippingPreference::GET_FROM_FILE,
52
+ order_update_callback_config: SKIP)
47
53
  @brand_name = brand_name unless brand_name == SKIP
48
54
  @shipping_preference = shipping_preference unless shipping_preference == SKIP
55
+ unless order_update_callback_config == SKIP
56
+ @order_update_callback_config =
57
+ order_update_callback_config
58
+ end
49
59
  end
50
60
 
51
61
  # Creates an instance of the object from a hash.
@@ -56,10 +66,29 @@ module PaypalServerSdk
56
66
  brand_name = hash.key?('brand_name') ? hash['brand_name'] : SKIP
57
67
  shipping_preference =
58
68
  hash['shipping_preference'] ||= ShippingPreference::GET_FROM_FILE
69
+ if hash['order_update_callback_config']
70
+ order_update_callback_config = CallbackConfiguration.from_hash(hash['order_update_callback_config'])
71
+ end
59
72
 
60
73
  # Create object from extracted values.
61
74
  VenmoWalletExperienceContext.new(brand_name: brand_name,
62
- shipping_preference: shipping_preference)
75
+ shipping_preference: shipping_preference,
76
+ order_update_callback_config: order_update_callback_config)
77
+ end
78
+
79
+ # Provides a human-readable string representation of the object.
80
+ def to_s
81
+ class_name = self.class.name.split('::').last
82
+ "<#{class_name} brand_name: #{@brand_name}, shipping_preference: #{@shipping_preference},"\
83
+ " order_update_callback_config: #{@order_update_callback_config}>"
84
+ end
85
+
86
+ # Provides a debugging-friendly string with detailed object information.
87
+ def inspect
88
+ class_name = self.class.name.split('::').last
89
+ "<#{class_name} brand_name: #{@brand_name.inspect}, shipping_preference:"\
90
+ " #{@shipping_preference.inspect}, order_update_callback_config:"\
91
+ " #{@order_update_callback_config.inspect}>"
63
92
  end
64
93
  end
65
94
  end
@@ -15,18 +15,17 @@ module PaypalServerSdk
15
15
  # @return [String]
16
16
  attr_accessor :vault_id
17
17
 
18
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
19
- # to 64 characters are allowed before and 255 characters are allowed after
20
- # the <code>@</code> sign. However, the generally accepted maximum length
21
- # for an email address is 254 characters. The pattern verifies that an
22
- # unquoted <code>@</code> sign exists.</blockquote>
18
+ # The internationalized email address. Note: Up to 64 characters are allowed
19
+ # before and 255 characters are allowed after the @ sign. However, the
20
+ # generally accepted maximum length for an email address is 254 characters.
21
+ # The pattern verifies that an unquoted @ sign exists.
23
22
  # @return [String]
24
23
  attr_accessor :email_address
25
24
 
26
25
  # Customizes the buyer experience during the approval process for payment
27
- # with Venmo.<blockquote><strong>Note:</strong> Partners and Marketplaces
28
- # might configure <code>shipping_preference</code> during partner account
29
- # setup, which overrides the request values.</blockquote>
26
+ # with Venmo. Note: Partners and Marketplaces might configure
27
+ # shipping_preference during partner account setup, which overrides the
28
+ # request values.
30
29
  # @return [VenmoWalletExperienceContext]
31
30
  attr_accessor :experience_context
32
31
 
@@ -85,5 +84,19 @@ module PaypalServerSdk
85
84
  experience_context: experience_context,
86
85
  attributes: attributes)
87
86
  end
87
+
88
+ # Provides a human-readable string representation of the object.
89
+ def to_s
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} vault_id: #{@vault_id}, email_address: #{@email_address},"\
92
+ " experience_context: #{@experience_context}, attributes: #{@attributes}>"
93
+ end
94
+
95
+ # Provides a debugging-friendly string with detailed object information.
96
+ def inspect
97
+ class_name = self.class.name.split('::').last
98
+ "<#{class_name} vault_id: #{@vault_id.inspect}, email_address: #{@email_address.inspect},"\
99
+ " experience_context: #{@experience_context.inspect}, attributes: #{@attributes.inspect}>"
100
+ end
88
101
  end
89
102
  end
@@ -9,11 +9,10 @@ module PaypalServerSdk
9
9
  SKIP = Object.new
10
10
  private_constant :SKIP
11
11
 
12
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
13
- # to 64 characters are allowed before and 255 characters are allowed after
14
- # the <code>@</code> sign. However, the generally accepted maximum length
15
- # for an email address is 254 characters. The pattern verifies that an
16
- # unquoted <code>@</code> sign exists.</blockquote>
12
+ # The internationalized email address. Note: Up to 64 characters are allowed
13
+ # before and 255 characters are allowed after the @ sign. However, the
14
+ # generally accepted maximum length for an email address is 254 characters.
15
+ # The pattern verifies that an unquoted @ sign exists.
17
16
  # @return [String]
18
17
  attr_accessor :email_address
19
18
 
@@ -116,5 +115,22 @@ module PaypalServerSdk
116
115
  address: address,
117
116
  attributes: attributes)
118
117
  end
118
+
119
+ # Provides a human-readable string representation of the object.
120
+ def to_s
121
+ class_name = self.class.name.split('::').last
122
+ "<#{class_name} email_address: #{@email_address}, account_id: #{@account_id}, user_name:"\
123
+ " #{@user_name}, name: #{@name}, phone_number: #{@phone_number}, address: #{@address},"\
124
+ " attributes: #{@attributes}>"
125
+ end
126
+
127
+ # Provides a debugging-friendly string with detailed object information.
128
+ def inspect
129
+ class_name = self.class.name.split('::').last
130
+ "<#{class_name} email_address: #{@email_address.inspect}, account_id:"\
131
+ " #{@account_id.inspect}, user_name: #{@user_name.inspect}, name: #{@name.inspect},"\
132
+ " phone_number: #{@phone_number.inspect}, address: #{@address.inspect}, attributes:"\
133
+ " #{@attributes.inspect}>"
134
+ end
119
135
  end
120
136
  end
@@ -110,5 +110,22 @@ module PaypalServerSdk
110
110
  customer_type: customer_type,
111
111
  permit_multiple_payment_tokens: permit_multiple_payment_tokens)
112
112
  end
113
+
114
+ # Provides a human-readable string representation of the object.
115
+ def to_s
116
+ class_name = self.class.name.split('::').last
117
+ "<#{class_name} store_in_vault: #{@store_in_vault}, description: #{@description},"\
118
+ " usage_pattern: #{@usage_pattern}, usage_type: #{@usage_type}, customer_type:"\
119
+ " #{@customer_type}, permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens}>"
120
+ end
121
+
122
+ # Provides a debugging-friendly string with detailed object information.
123
+ def inspect
124
+ class_name = self.class.name.split('::').last
125
+ "<#{class_name} store_in_vault: #{@store_in_vault.inspect}, description:"\
126
+ " #{@description.inspect}, usage_pattern: #{@usage_pattern.inspect}, usage_type:"\
127
+ " #{@usage_type.inspect}, customer_type: #{@customer_type.inspect},"\
128
+ " permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens.inspect}>"
129
+ end
113
130
  end
114
131
  end
@@ -12,5 +12,17 @@ module PaypalServerSdk
12
12
  def initialize(file, content_type: 'application/octet-stream')
13
13
  super
14
14
  end
15
- end
16
- end
15
+
16
+ # Provides a human-readable string representation of the object.
17
+ def to_s
18
+ class_name = self.class.name.split('::').last
19
+ "<#{class_name} file: #{@file}, content_type: #{@content_type}>"
20
+ end
21
+
22
+ # Provides a debugging-friendly string with detailed object information.
23
+ def to_inspect
24
+ class_name = self.class.name.split('::').last
25
+ "<#{class_name} file: #{@file.inspect}, content_type: #{@content_type.inspect}>"
26
+ end
27
+ end
28
+ end