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,15 +35,20 @@ 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
 
47
+ # The merchant level Recurring Billing plan metadata for the Billing
48
+ # Agreement.
49
+ # @return [Plan]
50
+ attr_accessor :billing_plan
51
+
43
52
  # Customizes the Vault creation flow experience for your customers.
44
53
  # @return [VaultExperienceContext]
45
54
  attr_accessor :experience_context
@@ -48,11 +57,13 @@ module PaypalServerSdk
48
57
  def self.names
49
58
  @_hash = {} if @_hash.nil?
50
59
  @_hash['description'] = 'description'
60
+ @_hash['usage_pattern'] = 'usage_pattern'
51
61
  @_hash['shipping'] = 'shipping'
52
62
  @_hash['permit_multiple_payment_tokens'] =
53
63
  'permit_multiple_payment_tokens'
54
64
  @_hash['usage_type'] = 'usage_type'
55
65
  @_hash['customer_type'] = 'customer_type'
66
+ @_hash['billing_plan'] = 'billing_plan'
56
67
  @_hash['experience_context'] = 'experience_context'
57
68
  @_hash
58
69
  end
@@ -61,10 +72,12 @@ module PaypalServerSdk
61
72
  def self.optionals
62
73
  %w[
63
74
  description
75
+ usage_pattern
64
76
  shipping
65
77
  permit_multiple_payment_tokens
66
78
  usage_type
67
79
  customer_type
80
+ billing_plan
68
81
  experience_context
69
82
  ]
70
83
  end
@@ -74,10 +87,12 @@ module PaypalServerSdk
74
87
  []
75
88
  end
76
89
 
77
- def initialize(description: SKIP, shipping: SKIP,
90
+ def initialize(description: SKIP, usage_pattern: SKIP, shipping: SKIP,
78
91
  permit_multiple_payment_tokens: false, usage_type: SKIP,
79
- customer_type: SKIP, experience_context: SKIP)
92
+ customer_type: SKIP, billing_plan: SKIP,
93
+ experience_context: SKIP)
80
94
  @description = description unless description == SKIP
95
+ @usage_pattern = usage_pattern unless usage_pattern == SKIP
81
96
  @shipping = shipping unless shipping == SKIP
82
97
  unless permit_multiple_payment_tokens == SKIP
83
98
  @permit_multiple_payment_tokens =
@@ -85,6 +100,7 @@ module PaypalServerSdk
85
100
  end
86
101
  @usage_type = usage_type unless usage_type == SKIP
87
102
  @customer_type = customer_type unless customer_type == SKIP
103
+ @billing_plan = billing_plan unless billing_plan == SKIP
88
104
  @experience_context = experience_context unless experience_context == SKIP
89
105
  end
90
106
 
@@ -94,22 +110,45 @@ module PaypalServerSdk
94
110
 
95
111
  # Extract variables from the hash.
96
112
  description = hash.key?('description') ? hash['description'] : SKIP
113
+ usage_pattern = hash.key?('usage_pattern') ? hash['usage_pattern'] : SKIP
97
114
  shipping = VaultedDigitalWalletShippingDetails.from_hash(hash['shipping']) if
98
115
  hash['shipping']
99
116
  permit_multiple_payment_tokens =
100
117
  hash['permit_multiple_payment_tokens'] ||= false
101
118
  usage_type = hash.key?('usage_type') ? hash['usage_type'] : SKIP
102
119
  customer_type = hash.key?('customer_type') ? hash['customer_type'] : SKIP
120
+ billing_plan = Plan.from_hash(hash['billing_plan']) if hash['billing_plan']
103
121
  experience_context = VaultExperienceContext.from_hash(hash['experience_context']) if
104
122
  hash['experience_context']
105
123
 
106
124
  # Create object from extracted values.
107
125
  VaultPaypalWalletRequest.new(description: description,
126
+ usage_pattern: usage_pattern,
108
127
  shipping: shipping,
109
128
  permit_multiple_payment_tokens: permit_multiple_payment_tokens,
110
129
  usage_type: usage_type,
111
130
  customer_type: customer_type,
131
+ billing_plan: billing_plan,
112
132
  experience_context: experience_context)
113
133
  end
134
+
135
+ # Provides a human-readable string representation of the object.
136
+ def to_s
137
+ class_name = self.class.name.split('::').last
138
+ "<#{class_name} description: #{@description}, usage_pattern: #{@usage_pattern}, shipping:"\
139
+ " #{@shipping}, permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens},"\
140
+ " usage_type: #{@usage_type}, customer_type: #{@customer_type}, billing_plan:"\
141
+ " #{@billing_plan}, experience_context: #{@experience_context}>"
142
+ end
143
+
144
+ # Provides a debugging-friendly string with detailed object information.
145
+ def inspect
146
+ class_name = self.class.name.split('::').last
147
+ "<#{class_name} description: #{@description.inspect}, usage_pattern:"\
148
+ " #{@usage_pattern.inspect}, shipping: #{@shipping.inspect}, permit_multiple_payment_tokens:"\
149
+ " #{@permit_multiple_payment_tokens.inspect}, usage_type: #{@usage_type.inspect},"\
150
+ " customer_type: #{@customer_type.inspect}, billing_plan: #{@billing_plan.inspect},"\
151
+ " experience_context: #{@experience_context.inspect}>"
152
+ end
114
153
  end
115
154
  end
@@ -82,5 +82,18 @@ module PaypalServerSdk
82
82
  customer: customer,
83
83
  links: links)
84
84
  end
85
+
86
+ # Provides a human-readable string representation of the object.
87
+ def to_s
88
+ class_name = self.class.name.split('::').last
89
+ "<#{class_name} id: #{@id}, status: #{@status}, customer: #{@customer}, links: #{@links}>"
90
+ end
91
+
92
+ # Provides a debugging-friendly string with detailed object information.
93
+ def inspect
94
+ class_name = self.class.name.split('::').last
95
+ "<#{class_name} id: #{@id.inspect}, status: #{@status.inspect}, customer:"\
96
+ " #{@customer.inspect}, links: #{@links.inspect}>"
97
+ end
85
98
  end
86
99
  end
@@ -0,0 +1,86 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # This object defines a customer in your system. Use it to manage customer
8
+ # profiles, save payment methods and contact details.
9
+ class VaultResponseCustomer < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # The unique ID for a customer generated by PayPal.
14
+ # @return [String]
15
+ attr_accessor :id
16
+
17
+ # Merchants and partners may already have a data-store where their customer
18
+ # information is persisted. Use merchant_customer_id to associate the
19
+ # PayPal-generated customer.id to your representation of a customer.
20
+ # @return [String]
21
+ attr_accessor :merchant_customer_id
22
+
23
+ # An array of request-related HATEOAS links.
24
+ # @return [Array[Object]]
25
+ attr_accessor :links
26
+
27
+ # A mapping from model property names to API property names.
28
+ def self.names
29
+ @_hash = {} if @_hash.nil?
30
+ @_hash['id'] = 'id'
31
+ @_hash['merchant_customer_id'] = 'merchant_customer_id'
32
+ @_hash['links'] = 'links'
33
+ @_hash
34
+ end
35
+
36
+ # An array for optional fields
37
+ def self.optionals
38
+ %w[
39
+ id
40
+ merchant_customer_id
41
+ links
42
+ ]
43
+ end
44
+
45
+ # An array for nullable fields
46
+ def self.nullables
47
+ []
48
+ end
49
+
50
+ def initialize(id: SKIP, merchant_customer_id: SKIP, links: SKIP)
51
+ @id = id unless id == SKIP
52
+ @merchant_customer_id = merchant_customer_id unless merchant_customer_id == SKIP
53
+ @links = links unless links == SKIP
54
+ end
55
+
56
+ # Creates an instance of the object from a hash.
57
+ def self.from_hash(hash)
58
+ return nil unless hash
59
+
60
+ # Extract variables from the hash.
61
+ id = hash.key?('id') ? hash['id'] : SKIP
62
+ merchant_customer_id =
63
+ hash.key?('merchant_customer_id') ? hash['merchant_customer_id'] : SKIP
64
+ links = hash.key?('links') ? hash['links'] : SKIP
65
+
66
+ # Create object from extracted values.
67
+ VaultResponseCustomer.new(id: id,
68
+ merchant_customer_id: merchant_customer_id,
69
+ links: links)
70
+ end
71
+
72
+ # Provides a human-readable string representation of the object.
73
+ def to_s
74
+ class_name = self.class.name.split('::').last
75
+ "<#{class_name} id: #{@id}, merchant_customer_id: #{@merchant_customer_id}, links:"\
76
+ " #{@links}>"
77
+ end
78
+
79
+ # Provides a debugging-friendly string with detailed object information.
80
+ def inspect
81
+ class_name = self.class.name.split('::').last
82
+ "<#{class_name} id: #{@id.inspect}, merchant_customer_id: #{@merchant_customer_id.inspect},"\
83
+ " links: #{@links.inspect}>"
84
+ end
85
+ end
86
+ end
@@ -7,13 +7,18 @@ module PaypalServerSdk
7
7
  # The vault status.
8
8
  class VaultStatus
9
9
  VAULT_STATUS = [
10
- # TODO: Write general description for VAULTED
10
+ # The payment source has been saved in your customer's vault. This vault
11
+ # status reflects `/v3/vault` status.
11
12
  VAULTED = 'VAULTED'.freeze,
12
13
 
13
- # TODO: Write general description for CREATED
14
+ # DEPRECATED. The payment source has been saved in your customer's vault.
15
+ # This status applies to deprecated integration patterns and will not be
16
+ # returned for v3/vault integrations.
14
17
  CREATED = 'CREATED'.freeze,
15
18
 
16
- # TODO: Write general description for APPROVED
19
+ # Customer has approved the action of saving the specified payment_source
20
+ # into their vault. Use v3/vault/payment-tokens with given setup_token to
21
+ # save the payment source in the vault
17
22
  APPROVED = 'APPROVED'.freeze
18
23
  ].freeze
19
24
 
@@ -14,7 +14,7 @@ module PaypalServerSdk
14
14
  attr_accessor :id
15
15
 
16
16
  # The tokenization method that generated the ID.
17
- # @return [TokenRequestType]
17
+ # @return [VaultTokenRequestType]
18
18
  attr_accessor :type
19
19
 
20
20
  # A mapping from model property names to API property names.
@@ -52,5 +52,17 @@ module PaypalServerSdk
52
52
  VaultTokenRequest.new(id: id,
53
53
  type: type)
54
54
  end
55
+
56
+ # Provides a human-readable string representation of the object.
57
+ def to_s
58
+ class_name = self.class.name.split('::').last
59
+ "<#{class_name} id: #{@id}, type: #{@type}>"
60
+ end
61
+
62
+ # Provides a debugging-friendly string with detailed object information.
63
+ def inspect
64
+ class_name = self.class.name.split('::').last
65
+ "<#{class_name} id: #{@id.inspect}, type: #{@type.inspect}>"
66
+ end
55
67
  end
56
68
  end
@@ -0,0 +1,20 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # The tokenization method that generated the ID.
8
+ class VaultTokenRequestType
9
+ VAULT_TOKEN_REQUEST_TYPE = [
10
+ # The setup token, which is a temporary reference to payment source.
11
+ SETUP_TOKEN = 'SETUP_TOKEN'.freeze
12
+ ].freeze
13
+
14
+ def self.validate(value)
15
+ return false if value.nil?
16
+
17
+ true
18
+ end
19
+ end
20
+ end
@@ -16,12 +16,12 @@ module PaypalServerSdk
16
16
  attr_accessor :brand_name
17
17
 
18
18
  # The shipping preference. This only applies to PayPal payment source.
19
- # @return [String]
19
+ # @return [OrderApplicationContextShippingPreference]
20
20
  attr_accessor :shipping_preference
21
21
 
22
22
  # Vault Instruction on action to be performed after a successful payer
23
23
  # approval.
24
- # @return [String]
24
+ # @return [VaultInstructionAction]
25
25
  attr_accessor :vault_instruction
26
26
 
27
27
  # A mapping from model property names to API property names.
@@ -47,8 +47,11 @@ module PaypalServerSdk
47
47
  []
48
48
  end
49
49
 
50
- def initialize(brand_name: SKIP, shipping_preference: 'GET_FROM_FILE',
51
- vault_instruction: 'ON_CREATE_PAYMENT_TOKENS')
50
+ def initialize(
51
+ brand_name: SKIP,
52
+ shipping_preference: OrderApplicationContextShippingPreference::GET_FROM_FILE,
53
+ vault_instruction: VaultInstructionAction::ON_CREATE_PAYMENT_TOKENS
54
+ )
52
55
  @brand_name = brand_name unless brand_name == SKIP
53
56
  @shipping_preference = shipping_preference unless shipping_preference == SKIP
54
57
  @vault_instruction = vault_instruction unless vault_instruction == SKIP
@@ -60,14 +63,29 @@ module PaypalServerSdk
60
63
 
61
64
  # Extract variables from the hash.
62
65
  brand_name = hash.key?('brand_name') ? hash['brand_name'] : SKIP
63
- shipping_preference = hash['shipping_preference'] ||= 'GET_FROM_FILE'
66
+ shipping_preference =
67
+ hash['shipping_preference'] ||= OrderApplicationContextShippingPreference::GET_FROM_FILE
64
68
  vault_instruction =
65
- hash['vault_instruction'] ||= 'ON_CREATE_PAYMENT_TOKENS'
69
+ hash['vault_instruction'] ||= VaultInstructionAction::ON_CREATE_PAYMENT_TOKENS
66
70
 
67
71
  # Create object from extracted values.
68
72
  VaultVenmoExperienceContext.new(brand_name: brand_name,
69
73
  shipping_preference: shipping_preference,
70
74
  vault_instruction: vault_instruction)
71
75
  end
76
+
77
+ # Provides a human-readable string representation of the object.
78
+ def to_s
79
+ class_name = self.class.name.split('::').last
80
+ "<#{class_name} brand_name: #{@brand_name}, shipping_preference: #{@shipping_preference},"\
81
+ " vault_instruction: #{@vault_instruction}>"
82
+ end
83
+
84
+ # Provides a debugging-friendly string with detailed object information.
85
+ def inspect
86
+ class_name = self.class.name.split('::').last
87
+ "<#{class_name} brand_name: #{@brand_name.inspect}, shipping_preference:"\
88
+ " #{@shipping_preference.inspect}, vault_instruction: #{@vault_instruction.inspect}>"
89
+ end
72
90
  end
73
91
  end
@@ -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,13 +35,13 @@ 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
47
  # Customizes the Vault creation flow experience for your customers.
@@ -48,6 +52,7 @@ module PaypalServerSdk
48
52
  def self.names
49
53
  @_hash = {} if @_hash.nil?
50
54
  @_hash['description'] = 'description'
55
+ @_hash['usage_pattern'] = 'usage_pattern'
51
56
  @_hash['shipping'] = 'shipping'
52
57
  @_hash['permit_multiple_payment_tokens'] =
53
58
  'permit_multiple_payment_tokens'
@@ -61,6 +66,7 @@ module PaypalServerSdk
61
66
  def self.optionals
62
67
  %w[
63
68
  description
69
+ usage_pattern
64
70
  shipping
65
71
  permit_multiple_payment_tokens
66
72
  usage_type
@@ -74,10 +80,11 @@ module PaypalServerSdk
74
80
  []
75
81
  end
76
82
 
77
- def initialize(description: SKIP, shipping: SKIP,
83
+ def initialize(description: SKIP, usage_pattern: SKIP, shipping: SKIP,
78
84
  permit_multiple_payment_tokens: false, usage_type: SKIP,
79
85
  customer_type: SKIP, experience_context: SKIP)
80
86
  @description = description unless description == SKIP
87
+ @usage_pattern = usage_pattern unless usage_pattern == SKIP
81
88
  @shipping = shipping unless shipping == SKIP
82
89
  unless permit_multiple_payment_tokens == SKIP
83
90
  @permit_multiple_payment_tokens =
@@ -94,6 +101,7 @@ module PaypalServerSdk
94
101
 
95
102
  # Extract variables from the hash.
96
103
  description = hash.key?('description') ? hash['description'] : SKIP
104
+ usage_pattern = hash.key?('usage_pattern') ? hash['usage_pattern'] : SKIP
97
105
  shipping = VaultedDigitalWalletShippingDetails.from_hash(hash['shipping']) if
98
106
  hash['shipping']
99
107
  permit_multiple_payment_tokens =
@@ -105,11 +113,31 @@ module PaypalServerSdk
105
113
 
106
114
  # Create object from extracted values.
107
115
  VaultVenmoRequest.new(description: description,
116
+ usage_pattern: usage_pattern,
108
117
  shipping: shipping,
109
118
  permit_multiple_payment_tokens: permit_multiple_payment_tokens,
110
119
  usage_type: usage_type,
111
120
  customer_type: customer_type,
112
121
  experience_context: experience_context)
113
122
  end
123
+
124
+ # Provides a human-readable string representation of the object.
125
+ def to_s
126
+ class_name = self.class.name.split('::').last
127
+ "<#{class_name} description: #{@description}, usage_pattern: #{@usage_pattern}, shipping:"\
128
+ " #{@shipping}, permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens},"\
129
+ " usage_type: #{@usage_type}, customer_type: #{@customer_type}, experience_context:"\
130
+ " #{@experience_context}>"
131
+ end
132
+
133
+ # Provides a debugging-friendly string with detailed object information.
134
+ def inspect
135
+ class_name = self.class.name.split('::').last
136
+ "<#{class_name} description: #{@description.inspect}, usage_pattern:"\
137
+ " #{@usage_pattern.inspect}, shipping: #{@shipping.inspect}, permit_multiple_payment_tokens:"\
138
+ " #{@permit_multiple_payment_tokens.inspect}, usage_type: #{@usage_type.inspect},"\
139
+ " customer_type: #{@customer_type.inspect}, experience_context:"\
140
+ " #{@experience_context.inspect}>"
141
+ end
114
142
  end
115
143
  end
@@ -16,6 +16,10 @@ module PaypalServerSdk
16
16
  # @return [String]
17
17
  attr_accessor :description
18
18
 
19
+ # Expected business/charge model for the billing agreement.
20
+ # @return [UsagePattern]
21
+ attr_accessor :usage_pattern
22
+
19
23
  # The shipping details.
20
24
  # @return [VaultedDigitalWalletShippingDetails]
21
25
  attr_accessor :shipping
@@ -32,19 +36,20 @@ module PaypalServerSdk
32
36
  attr_accessor :permit_multiple_payment_tokens
33
37
 
34
38
  # The usage type associated with a digital wallet payment token.
35
- # @return [String]
39
+ # @return [PaypalPaymentTokenUsageType]
36
40
  attr_accessor :usage_type
37
41
 
38
42
  # The customer type associated with a digital wallet payment token. This is
39
43
  # to indicate whether the customer acting on the merchant / platform is
40
44
  # either a business or a consumer.
41
- # @return [String]
45
+ # @return [PaypalPaymentTokenCustomerType]
42
46
  attr_accessor :customer_type
43
47
 
44
48
  # A mapping from model property names to API property names.
45
49
  def self.names
46
50
  @_hash = {} if @_hash.nil?
47
51
  @_hash['description'] = 'description'
52
+ @_hash['usage_pattern'] = 'usage_pattern'
48
53
  @_hash['shipping'] = 'shipping'
49
54
  @_hash['permit_multiple_payment_tokens'] =
50
55
  'permit_multiple_payment_tokens'
@@ -57,6 +62,7 @@ module PaypalServerSdk
57
62
  def self.optionals
58
63
  %w[
59
64
  description
65
+ usage_pattern
60
66
  shipping
61
67
  permit_multiple_payment_tokens
62
68
  usage_type
@@ -69,10 +75,11 @@ module PaypalServerSdk
69
75
  []
70
76
  end
71
77
 
72
- def initialize(description: SKIP, shipping: SKIP,
78
+ def initialize(description: SKIP, usage_pattern: SKIP, shipping: SKIP,
73
79
  permit_multiple_payment_tokens: false, usage_type: SKIP,
74
80
  customer_type: SKIP)
75
81
  @description = description unless description == SKIP
82
+ @usage_pattern = usage_pattern unless usage_pattern == SKIP
76
83
  @shipping = shipping unless shipping == SKIP
77
84
  unless permit_multiple_payment_tokens == SKIP
78
85
  @permit_multiple_payment_tokens =
@@ -88,6 +95,7 @@ module PaypalServerSdk
88
95
 
89
96
  # Extract variables from the hash.
90
97
  description = hash.key?('description') ? hash['description'] : SKIP
98
+ usage_pattern = hash.key?('usage_pattern') ? hash['usage_pattern'] : SKIP
91
99
  shipping = VaultedDigitalWalletShippingDetails.from_hash(hash['shipping']) if
92
100
  hash['shipping']
93
101
  permit_multiple_payment_tokens =
@@ -97,10 +105,28 @@ module PaypalServerSdk
97
105
 
98
106
  # Create object from extracted values.
99
107
  VaultedDigitalWallet.new(description: description,
108
+ usage_pattern: usage_pattern,
100
109
  shipping: shipping,
101
110
  permit_multiple_payment_tokens: permit_multiple_payment_tokens,
102
111
  usage_type: usage_type,
103
112
  customer_type: customer_type)
104
113
  end
114
+
115
+ # Provides a human-readable string representation of the object.
116
+ def to_s
117
+ class_name = self.class.name.split('::').last
118
+ "<#{class_name} description: #{@description}, usage_pattern: #{@usage_pattern}, shipping:"\
119
+ " #{@shipping}, permit_multiple_payment_tokens: #{@permit_multiple_payment_tokens},"\
120
+ " usage_type: #{@usage_type}, customer_type: #{@customer_type}>"
121
+ end
122
+
123
+ # Provides a debugging-friendly string with detailed object information.
124
+ def inspect
125
+ class_name = self.class.name.split('::').last
126
+ "<#{class_name} description: #{@description.inspect}, usage_pattern:"\
127
+ " #{@usage_pattern.inspect}, shipping: #{@shipping.inspect}, permit_multiple_payment_tokens:"\
128
+ " #{@permit_multiple_payment_tokens.inspect}, usage_type: #{@usage_type.inspect},"\
129
+ " customer_type: #{@customer_type.inspect}>"
130
+ end
105
131
  end
106
132
  end
@@ -13,6 +13,11 @@ module PaypalServerSdk
13
13
  # @return [ShippingName]
14
14
  attr_accessor :name
15
15
 
16
+ # The phone number, in its canonical international [E.164 numbering plan
17
+ # format](https://www.itu.int/rec/T-REC-E.164/en).
18
+ # @return [PhoneNumberWithCountryCode]
19
+ attr_accessor :phone_number
20
+
16
21
  # A classification for the method of purchase fulfillment (e.g shipping,
17
22
  # in-store pickup, etc). Either `type` or `options` may be present, but not
18
23
  # both.
@@ -32,6 +37,7 @@ module PaypalServerSdk
32
37
  def self.names
33
38
  @_hash = {} if @_hash.nil?
34
39
  @_hash['name'] = 'name'
40
+ @_hash['phone_number'] = 'phone_number'
35
41
  @_hash['type'] = 'type'
36
42
  @_hash['address'] = 'address'
37
43
  @_hash
@@ -41,6 +47,7 @@ module PaypalServerSdk
41
47
  def self.optionals
42
48
  %w[
43
49
  name
50
+ phone_number
44
51
  type
45
52
  address
46
53
  ]
@@ -51,8 +58,9 @@ module PaypalServerSdk
51
58
  []
52
59
  end
53
60
 
54
- def initialize(name: SKIP, type: SKIP, address: SKIP)
61
+ def initialize(name: SKIP, phone_number: SKIP, type: SKIP, address: SKIP)
55
62
  @name = name unless name == SKIP
63
+ @phone_number = phone_number unless phone_number == SKIP
56
64
  @type = type unless type == SKIP
57
65
  @address = address unless address == SKIP
58
66
  end
@@ -63,13 +71,30 @@ module PaypalServerSdk
63
71
 
64
72
  # Extract variables from the hash.
65
73
  name = ShippingName.from_hash(hash['name']) if hash['name']
74
+ phone_number = PhoneNumberWithCountryCode.from_hash(hash['phone_number']) if
75
+ hash['phone_number']
66
76
  type = hash.key?('type') ? hash['type'] : SKIP
67
77
  address = Address.from_hash(hash['address']) if hash['address']
68
78
 
69
79
  # Create object from extracted values.
70
80
  VaultedDigitalWalletShippingDetails.new(name: name,
81
+ phone_number: phone_number,
71
82
  type: type,
72
83
  address: address)
73
84
  end
85
+
86
+ # Provides a human-readable string representation of the object.
87
+ def to_s
88
+ class_name = self.class.name.split('::').last
89
+ "<#{class_name} name: #{@name}, phone_number: #{@phone_number}, type: #{@type}, address:"\
90
+ " #{@address}>"
91
+ end
92
+
93
+ # Provides a debugging-friendly string with detailed object information.
94
+ def inspect
95
+ class_name = self.class.name.split('::').last
96
+ "<#{class_name} name: #{@name.inspect}, phone_number: #{@phone_number.inspect}, type:"\
97
+ " #{@type.inspect}, address: #{@address.inspect}>"
98
+ end
74
99
  end
75
100
  end