paypal-server-sdk 1.1.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 +32 -23
  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 +211 -211
  9. data/lib/paypal_server_sdk/controllers/payments_controller.rb +110 -103
  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 +95 -95
  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 +2 -2
  16. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +2 -2
  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 +2 -2
  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 +2 -2
  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 +2 -2
  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 +2 -2
  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 +17 -2
  90. data/lib/paypal_server_sdk/models/card_customer.rb +98 -0
  91. data/lib/paypal_server_sdk/models/card_customer_information.rb +2 -2
  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 +2 -2
  115. data/lib/paypal_server_sdk/models/customer_response.rb +2 -2
  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 +2 -2
  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 +2 -2
  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 +2 -2
  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 +2 -2
  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 +2 -2
  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 +2 -2
  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 +5 -3
  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 +2 -2
  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 +2 -2
  243. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +2 -2
  244. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +22 -9
  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 +2 -2
  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 +2 -2
  366. data/lib/paypal_server_sdk/models/vault_response_customer.rb +2 -2
  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 +2 -2
  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 +252 -160
  393. metadata +111 -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 -121
  402. data/lib/paypal_server_sdk/models/supplementary_purchase_data.rb +0 -76
@@ -0,0 +1,99 @@
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
+ # The incentive details.
8
+ class IncentiveDetails < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The type of incentive, such as a special offer or coupon.
13
+ # @return [String]
14
+ attr_accessor :incentive_type
15
+
16
+ # The code that identifies an incentive, such as a coupon.
17
+ # @return [String]
18
+ attr_accessor :incentive_code
19
+
20
+ # The currency and amount for a financial transaction, such as a balance or
21
+ # payment due.
22
+ # @return [Money]
23
+ attr_accessor :incentive_amount
24
+
25
+ # The incentive program code that identifies a merchant loyalty or incentive
26
+ # program.
27
+ # @return [String]
28
+ attr_accessor :incentive_program_code
29
+
30
+ # A mapping from model property names to API property names.
31
+ def self.names
32
+ @_hash = {} if @_hash.nil?
33
+ @_hash['incentive_type'] = 'incentive_type'
34
+ @_hash['incentive_code'] = 'incentive_code'
35
+ @_hash['incentive_amount'] = 'incentive_amount'
36
+ @_hash['incentive_program_code'] = 'incentive_program_code'
37
+ @_hash
38
+ end
39
+
40
+ # An array for optional fields
41
+ def self.optionals
42
+ %w[
43
+ incentive_type
44
+ incentive_code
45
+ incentive_amount
46
+ incentive_program_code
47
+ ]
48
+ end
49
+
50
+ # An array for nullable fields
51
+ def self.nullables
52
+ []
53
+ end
54
+
55
+ def initialize(incentive_type: SKIP, incentive_code: SKIP,
56
+ incentive_amount: SKIP, incentive_program_code: SKIP)
57
+ @incentive_type = incentive_type unless incentive_type == SKIP
58
+ @incentive_code = incentive_code unless incentive_code == SKIP
59
+ @incentive_amount = incentive_amount unless incentive_amount == SKIP
60
+ @incentive_program_code = incentive_program_code unless incentive_program_code == SKIP
61
+ end
62
+
63
+ # Creates an instance of the object from a hash.
64
+ def self.from_hash(hash)
65
+ return nil unless hash
66
+
67
+ # Extract variables from the hash.
68
+ incentive_type =
69
+ hash.key?('incentive_type') ? hash['incentive_type'] : SKIP
70
+ incentive_code =
71
+ hash.key?('incentive_code') ? hash['incentive_code'] : SKIP
72
+ incentive_amount = Money.from_hash(hash['incentive_amount']) if hash['incentive_amount']
73
+ incentive_program_code =
74
+ hash.key?('incentive_program_code') ? hash['incentive_program_code'] : SKIP
75
+
76
+ # Create object from extracted values.
77
+ IncentiveDetails.new(incentive_type: incentive_type,
78
+ incentive_code: incentive_code,
79
+ incentive_amount: incentive_amount,
80
+ incentive_program_code: incentive_program_code)
81
+ end
82
+
83
+ # Provides a human-readable string representation of the object.
84
+ def to_s
85
+ class_name = self.class.name.split('::').last
86
+ "<#{class_name} incentive_type: #{@incentive_type}, incentive_code: #{@incentive_code},"\
87
+ " incentive_amount: #{@incentive_amount}, incentive_program_code:"\
88
+ " #{@incentive_program_code}>"
89
+ end
90
+
91
+ # Provides a debugging-friendly string with detailed object information.
92
+ def inspect
93
+ class_name = self.class.name.split('::').last
94
+ "<#{class_name} incentive_type: #{@incentive_type.inspect}, incentive_code:"\
95
+ " #{@incentive_code.inspect}, incentive_amount: #{@incentive_amount.inspect},"\
96
+ " incentive_program_code: #{@incentive_program_code.inspect}>"
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,71 @@
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
+ # The incentive details.
8
+ class IncentiveInformation < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # An array of incentive details.
13
+ # @return [Array[IncentiveDetails]]
14
+ attr_accessor :incentive_details
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['incentive_details'] = 'incentive_details'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ %w[
26
+ incentive_details
27
+ ]
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(incentive_details: SKIP)
36
+ @incentive_details = incentive_details unless incentive_details == SKIP
37
+ end
38
+
39
+ # Creates an instance of the object from a hash.
40
+ def self.from_hash(hash)
41
+ return nil unless hash
42
+
43
+ # Extract variables from the hash.
44
+ # Parameter is an array, so we need to iterate through it
45
+ incentive_details = nil
46
+ unless hash['incentive_details'].nil?
47
+ incentive_details = []
48
+ hash['incentive_details'].each do |structure|
49
+ incentive_details << (IncentiveDetails.from_hash(structure) if structure)
50
+ end
51
+ end
52
+
53
+ incentive_details = SKIP unless hash.key?('incentive_details')
54
+
55
+ # Create object from extracted values.
56
+ IncentiveInformation.new(incentive_details: incentive_details)
57
+ end
58
+
59
+ # Provides a human-readable string representation of the object.
60
+ def to_s
61
+ class_name = self.class.name.split('::').last
62
+ "<#{class_name} incentive_details: #{@incentive_details}>"
63
+ end
64
+
65
+ # Provides a debugging-friendly string with detailed object information.
66
+ def inspect
67
+ class_name = self.class.name.split('::').last
68
+ "<#{class_name} incentive_details: #{@incentive_details.inspect}>"
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,29 @@
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
+ # The interval at which the subscription is charged or billed.
8
+ class IntervalUnit
9
+ INTERVAL_UNIT = [
10
+ # A daily billing cycle.
11
+ DAY = 'DAY'.freeze,
12
+
13
+ # A weekly billing cycle.
14
+ WEEK = 'WEEK'.freeze,
15
+
16
+ # A monthly billing cycle.
17
+ MONTH = 'MONTH'.freeze,
18
+
19
+ # A yearly billing cycle.
20
+ YEAR = 'YEAR'.freeze
21
+ ].freeze
22
+
23
+ def self.validate(value)
24
+ return false if value.nil?
25
+
26
+ true
27
+ end
28
+ end
29
+ end
@@ -1,7 +1,7 @@
1
1
  # paypal_server_sdk
2
2
  #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
7
  # The details for the items to be purchased.
@@ -1,7 +1,7 @@
1
1
  # paypal_server_sdk
2
2
  #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
7
  # The item category type.
@@ -0,0 +1,287 @@
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
+ # The item details.
8
+ class ItemDetails < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # An item code that identifies a merchant's goods or service.
13
+ # @return [String]
14
+ attr_accessor :item_code
15
+
16
+ # The item name.
17
+ # @return [String]
18
+ attr_accessor :item_name
19
+
20
+ # The item description.
21
+ # @return [String]
22
+ attr_accessor :item_description
23
+
24
+ # The item options. Describes option choices on the purchase of the item in
25
+ # some detail.
26
+ # @return [String]
27
+ attr_accessor :item_options
28
+
29
+ # The number of purchased units of goods or a service.
30
+ # @return [String]
31
+ attr_accessor :item_quantity
32
+
33
+ # The currency and amount for a financial transaction, such as a balance or
34
+ # payment due.
35
+ # @return [Money]
36
+ attr_accessor :item_unit_price
37
+
38
+ # The currency and amount for a financial transaction, such as a balance or
39
+ # payment due.
40
+ # @return [Money]
41
+ attr_accessor :item_amount
42
+
43
+ # The currency and amount for a financial transaction, such as a balance or
44
+ # payment due.
45
+ # @return [Money]
46
+ attr_accessor :discount_amount
47
+
48
+ # The currency and amount for a financial transaction, such as a balance or
49
+ # payment due.
50
+ # @return [Money]
51
+ attr_accessor :adjustment_amount
52
+
53
+ # The currency and amount for a financial transaction, such as a balance or
54
+ # payment due.
55
+ # @return [Money]
56
+ attr_accessor :gift_wrap_amount
57
+
58
+ # The percentage, as a fixed-point, signed decimal number. For example,
59
+ # define a 19.99% interest rate as `19.99`.
60
+ # @return [String]
61
+ attr_accessor :tax_percentage
62
+
63
+ # An array of tax amounts levied by a government on the purchase of goods or
64
+ # services.
65
+ # @return [Array[TaxAmount]]
66
+ attr_accessor :tax_amounts
67
+
68
+ # The currency and amount for a financial transaction, such as a balance or
69
+ # payment due.
70
+ # @return [Money]
71
+ attr_accessor :basic_shipping_amount
72
+
73
+ # The currency and amount for a financial transaction, such as a balance or
74
+ # payment due.
75
+ # @return [Money]
76
+ attr_accessor :extra_shipping_amount
77
+
78
+ # The currency and amount for a financial transaction, such as a balance or
79
+ # payment due.
80
+ # @return [Money]
81
+ attr_accessor :handling_amount
82
+
83
+ # The currency and amount for a financial transaction, such as a balance or
84
+ # payment due.
85
+ # @return [Money]
86
+ attr_accessor :insurance_amount
87
+
88
+ # The currency and amount for a financial transaction, such as a balance or
89
+ # payment due.
90
+ # @return [Money]
91
+ attr_accessor :total_item_amount
92
+
93
+ # The invoice number. An alphanumeric string that identifies a billing for a
94
+ # merchant.
95
+ # @return [String]
96
+ attr_accessor :invoice_number
97
+
98
+ # An array of checkout options. Each option has a name and value.
99
+ # @return [Array[CheckoutOption]]
100
+ attr_accessor :checkout_options
101
+
102
+ # A mapping from model property names to API property names.
103
+ def self.names
104
+ @_hash = {} if @_hash.nil?
105
+ @_hash['item_code'] = 'item_code'
106
+ @_hash['item_name'] = 'item_name'
107
+ @_hash['item_description'] = 'item_description'
108
+ @_hash['item_options'] = 'item_options'
109
+ @_hash['item_quantity'] = 'item_quantity'
110
+ @_hash['item_unit_price'] = 'item_unit_price'
111
+ @_hash['item_amount'] = 'item_amount'
112
+ @_hash['discount_amount'] = 'discount_amount'
113
+ @_hash['adjustment_amount'] = 'adjustment_amount'
114
+ @_hash['gift_wrap_amount'] = 'gift_wrap_amount'
115
+ @_hash['tax_percentage'] = 'tax_percentage'
116
+ @_hash['tax_amounts'] = 'tax_amounts'
117
+ @_hash['basic_shipping_amount'] = 'basic_shipping_amount'
118
+ @_hash['extra_shipping_amount'] = 'extra_shipping_amount'
119
+ @_hash['handling_amount'] = 'handling_amount'
120
+ @_hash['insurance_amount'] = 'insurance_amount'
121
+ @_hash['total_item_amount'] = 'total_item_amount'
122
+ @_hash['invoice_number'] = 'invoice_number'
123
+ @_hash['checkout_options'] = 'checkout_options'
124
+ @_hash
125
+ end
126
+
127
+ # An array for optional fields
128
+ def self.optionals
129
+ %w[
130
+ item_code
131
+ item_name
132
+ item_description
133
+ item_options
134
+ item_quantity
135
+ item_unit_price
136
+ item_amount
137
+ discount_amount
138
+ adjustment_amount
139
+ gift_wrap_amount
140
+ tax_percentage
141
+ tax_amounts
142
+ basic_shipping_amount
143
+ extra_shipping_amount
144
+ handling_amount
145
+ insurance_amount
146
+ total_item_amount
147
+ invoice_number
148
+ checkout_options
149
+ ]
150
+ end
151
+
152
+ # An array for nullable fields
153
+ def self.nullables
154
+ []
155
+ end
156
+
157
+ def initialize(item_code: SKIP, item_name: SKIP, item_description: SKIP,
158
+ item_options: SKIP, item_quantity: SKIP,
159
+ item_unit_price: SKIP, item_amount: SKIP,
160
+ discount_amount: SKIP, adjustment_amount: SKIP,
161
+ gift_wrap_amount: SKIP, tax_percentage: SKIP,
162
+ tax_amounts: SKIP, basic_shipping_amount: SKIP,
163
+ extra_shipping_amount: SKIP, handling_amount: SKIP,
164
+ insurance_amount: SKIP, total_item_amount: SKIP,
165
+ invoice_number: SKIP, checkout_options: SKIP)
166
+ @item_code = item_code unless item_code == SKIP
167
+ @item_name = item_name unless item_name == SKIP
168
+ @item_description = item_description unless item_description == SKIP
169
+ @item_options = item_options unless item_options == SKIP
170
+ @item_quantity = item_quantity unless item_quantity == SKIP
171
+ @item_unit_price = item_unit_price unless item_unit_price == SKIP
172
+ @item_amount = item_amount unless item_amount == SKIP
173
+ @discount_amount = discount_amount unless discount_amount == SKIP
174
+ @adjustment_amount = adjustment_amount unless adjustment_amount == SKIP
175
+ @gift_wrap_amount = gift_wrap_amount unless gift_wrap_amount == SKIP
176
+ @tax_percentage = tax_percentage unless tax_percentage == SKIP
177
+ @tax_amounts = tax_amounts unless tax_amounts == SKIP
178
+ @basic_shipping_amount = basic_shipping_amount unless basic_shipping_amount == SKIP
179
+ @extra_shipping_amount = extra_shipping_amount unless extra_shipping_amount == SKIP
180
+ @handling_amount = handling_amount unless handling_amount == SKIP
181
+ @insurance_amount = insurance_amount unless insurance_amount == SKIP
182
+ @total_item_amount = total_item_amount unless total_item_amount == SKIP
183
+ @invoice_number = invoice_number unless invoice_number == SKIP
184
+ @checkout_options = checkout_options unless checkout_options == SKIP
185
+ end
186
+
187
+ # Creates an instance of the object from a hash.
188
+ def self.from_hash(hash)
189
+ return nil unless hash
190
+
191
+ # Extract variables from the hash.
192
+ item_code = hash.key?('item_code') ? hash['item_code'] : SKIP
193
+ item_name = hash.key?('item_name') ? hash['item_name'] : SKIP
194
+ item_description =
195
+ hash.key?('item_description') ? hash['item_description'] : SKIP
196
+ item_options = hash.key?('item_options') ? hash['item_options'] : SKIP
197
+ item_quantity = hash.key?('item_quantity') ? hash['item_quantity'] : SKIP
198
+ item_unit_price = Money.from_hash(hash['item_unit_price']) if hash['item_unit_price']
199
+ item_amount = Money.from_hash(hash['item_amount']) if hash['item_amount']
200
+ discount_amount = Money.from_hash(hash['discount_amount']) if hash['discount_amount']
201
+ adjustment_amount = Money.from_hash(hash['adjustment_amount']) if hash['adjustment_amount']
202
+ gift_wrap_amount = Money.from_hash(hash['gift_wrap_amount']) if hash['gift_wrap_amount']
203
+ tax_percentage =
204
+ hash.key?('tax_percentage') ? hash['tax_percentage'] : SKIP
205
+ # Parameter is an array, so we need to iterate through it
206
+ tax_amounts = nil
207
+ unless hash['tax_amounts'].nil?
208
+ tax_amounts = []
209
+ hash['tax_amounts'].each do |structure|
210
+ tax_amounts << (TaxAmount.from_hash(structure) if structure)
211
+ end
212
+ end
213
+
214
+ tax_amounts = SKIP unless hash.key?('tax_amounts')
215
+ basic_shipping_amount = Money.from_hash(hash['basic_shipping_amount']) if
216
+ hash['basic_shipping_amount']
217
+ extra_shipping_amount = Money.from_hash(hash['extra_shipping_amount']) if
218
+ hash['extra_shipping_amount']
219
+ handling_amount = Money.from_hash(hash['handling_amount']) if hash['handling_amount']
220
+ insurance_amount = Money.from_hash(hash['insurance_amount']) if hash['insurance_amount']
221
+ total_item_amount = Money.from_hash(hash['total_item_amount']) if hash['total_item_amount']
222
+ invoice_number =
223
+ hash.key?('invoice_number') ? hash['invoice_number'] : SKIP
224
+ # Parameter is an array, so we need to iterate through it
225
+ checkout_options = nil
226
+ unless hash['checkout_options'].nil?
227
+ checkout_options = []
228
+ hash['checkout_options'].each do |structure|
229
+ checkout_options << (CheckoutOption.from_hash(structure) if structure)
230
+ end
231
+ end
232
+
233
+ checkout_options = SKIP unless hash.key?('checkout_options')
234
+
235
+ # Create object from extracted values.
236
+ ItemDetails.new(item_code: item_code,
237
+ item_name: item_name,
238
+ item_description: item_description,
239
+ item_options: item_options,
240
+ item_quantity: item_quantity,
241
+ item_unit_price: item_unit_price,
242
+ item_amount: item_amount,
243
+ discount_amount: discount_amount,
244
+ adjustment_amount: adjustment_amount,
245
+ gift_wrap_amount: gift_wrap_amount,
246
+ tax_percentage: tax_percentage,
247
+ tax_amounts: tax_amounts,
248
+ basic_shipping_amount: basic_shipping_amount,
249
+ extra_shipping_amount: extra_shipping_amount,
250
+ handling_amount: handling_amount,
251
+ insurance_amount: insurance_amount,
252
+ total_item_amount: total_item_amount,
253
+ invoice_number: invoice_number,
254
+ checkout_options: checkout_options)
255
+ end
256
+
257
+ # Provides a human-readable string representation of the object.
258
+ def to_s
259
+ class_name = self.class.name.split('::').last
260
+ "<#{class_name} item_code: #{@item_code}, item_name: #{@item_name}, item_description:"\
261
+ " #{@item_description}, item_options: #{@item_options}, item_quantity: #{@item_quantity},"\
262
+ " item_unit_price: #{@item_unit_price}, item_amount: #{@item_amount}, discount_amount:"\
263
+ " #{@discount_amount}, adjustment_amount: #{@adjustment_amount}, gift_wrap_amount:"\
264
+ " #{@gift_wrap_amount}, tax_percentage: #{@tax_percentage}, tax_amounts: #{@tax_amounts},"\
265
+ " basic_shipping_amount: #{@basic_shipping_amount}, extra_shipping_amount:"\
266
+ " #{@extra_shipping_amount}, handling_amount: #{@handling_amount}, insurance_amount:"\
267
+ " #{@insurance_amount}, total_item_amount: #{@total_item_amount}, invoice_number:"\
268
+ " #{@invoice_number}, checkout_options: #{@checkout_options}>"
269
+ end
270
+
271
+ # Provides a debugging-friendly string with detailed object information.
272
+ def inspect
273
+ class_name = self.class.name.split('::').last
274
+ "<#{class_name} item_code: #{@item_code.inspect}, item_name: #{@item_name.inspect},"\
275
+ " item_description: #{@item_description.inspect}, item_options: #{@item_options.inspect},"\
276
+ " item_quantity: #{@item_quantity.inspect}, item_unit_price: #{@item_unit_price.inspect},"\
277
+ " item_amount: #{@item_amount.inspect}, discount_amount: #{@discount_amount.inspect},"\
278
+ " adjustment_amount: #{@adjustment_amount.inspect}, gift_wrap_amount:"\
279
+ " #{@gift_wrap_amount.inspect}, tax_percentage: #{@tax_percentage.inspect}, tax_amounts:"\
280
+ " #{@tax_amounts.inspect}, basic_shipping_amount: #{@basic_shipping_amount.inspect},"\
281
+ " extra_shipping_amount: #{@extra_shipping_amount.inspect}, handling_amount:"\
282
+ " #{@handling_amount.inspect}, insurance_amount: #{@insurance_amount.inspect},"\
283
+ " total_item_amount: #{@total_item_amount.inspect}, invoice_number:"\
284
+ " #{@invoice_number.inspect}, checkout_options: #{@checkout_options.inspect}>"
285
+ end
286
+ end
287
+ end
@@ -0,0 +1,163 @@
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
+ # The details for the items to be purchased.
8
+ class ItemRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The item name or title.
13
+ # @return [String]
14
+ attr_accessor :name
15
+
16
+ # The currency and amount for a financial transaction, such as a balance or
17
+ # payment due.
18
+ # @return [Money]
19
+ attr_accessor :unit_amount
20
+
21
+ # The currency and amount for a financial transaction, such as a balance or
22
+ # payment due.
23
+ # @return [Money]
24
+ attr_accessor :tax
25
+
26
+ # The item quantity. Must be a whole number.
27
+ # @return [String]
28
+ attr_accessor :quantity
29
+
30
+ # This field supports up to 4000 characters, but any content beyond 2048
31
+ # characters (including spaces) will be truncated. The 2048 character limit
32
+ # is reflected in the response representation of this field.
33
+ # @return [String]
34
+ attr_accessor :description
35
+
36
+ # The stock keeping unit (SKU) for the item.
37
+ # @return [String]
38
+ attr_accessor :sku
39
+
40
+ # The URL to the item being purchased. Visible to buyer and used in buyer
41
+ # experiences.
42
+ # @return [String]
43
+ attr_accessor :url
44
+
45
+ # The item category type.
46
+ # @return [ItemCategory]
47
+ attr_accessor :category
48
+
49
+ # The URL of the item's image. File type and size restrictions apply. An
50
+ # image that violates these restrictions will not be honored.
51
+ # @return [String]
52
+ attr_accessor :image_url
53
+
54
+ # The Universal Product Code of the item.
55
+ # @return [UniversalProductCode]
56
+ attr_accessor :upc
57
+
58
+ # Metadata for merchant-managed recurring billing plans. Valid only during
59
+ # the saved payment method token or billing agreement creation.
60
+ # @return [OrderBillingPlan]
61
+ attr_accessor :billing_plan
62
+
63
+ # A mapping from model property names to API property names.
64
+ def self.names
65
+ @_hash = {} if @_hash.nil?
66
+ @_hash['name'] = 'name'
67
+ @_hash['unit_amount'] = 'unit_amount'
68
+ @_hash['tax'] = 'tax'
69
+ @_hash['quantity'] = 'quantity'
70
+ @_hash['description'] = 'description'
71
+ @_hash['sku'] = 'sku'
72
+ @_hash['url'] = 'url'
73
+ @_hash['category'] = 'category'
74
+ @_hash['image_url'] = 'image_url'
75
+ @_hash['upc'] = 'upc'
76
+ @_hash['billing_plan'] = 'billing_plan'
77
+ @_hash
78
+ end
79
+
80
+ # An array for optional fields
81
+ def self.optionals
82
+ %w[
83
+ tax
84
+ description
85
+ sku
86
+ url
87
+ category
88
+ image_url
89
+ upc
90
+ billing_plan
91
+ ]
92
+ end
93
+
94
+ # An array for nullable fields
95
+ def self.nullables
96
+ []
97
+ end
98
+
99
+ def initialize(name:, unit_amount:, quantity:, tax: SKIP, description: SKIP,
100
+ sku: SKIP, url: SKIP, category: SKIP, image_url: SKIP,
101
+ upc: SKIP, billing_plan: SKIP)
102
+ @name = name
103
+ @unit_amount = unit_amount
104
+ @tax = tax unless tax == SKIP
105
+ @quantity = quantity
106
+ @description = description unless description == SKIP
107
+ @sku = sku unless sku == SKIP
108
+ @url = url unless url == SKIP
109
+ @category = category unless category == SKIP
110
+ @image_url = image_url unless image_url == SKIP
111
+ @upc = upc unless upc == SKIP
112
+ @billing_plan = billing_plan unless billing_plan == SKIP
113
+ end
114
+
115
+ # Creates an instance of the object from a hash.
116
+ def self.from_hash(hash)
117
+ return nil unless hash
118
+
119
+ # Extract variables from the hash.
120
+ name = hash.key?('name') ? hash['name'] : nil
121
+ unit_amount = Money.from_hash(hash['unit_amount']) if hash['unit_amount']
122
+ quantity = hash.key?('quantity') ? hash['quantity'] : nil
123
+ tax = Money.from_hash(hash['tax']) if hash['tax']
124
+ description = hash.key?('description') ? hash['description'] : SKIP
125
+ sku = hash.key?('sku') ? hash['sku'] : SKIP
126
+ url = hash.key?('url') ? hash['url'] : SKIP
127
+ category = hash.key?('category') ? hash['category'] : SKIP
128
+ image_url = hash.key?('image_url') ? hash['image_url'] : SKIP
129
+ upc = UniversalProductCode.from_hash(hash['upc']) if hash['upc']
130
+ billing_plan = OrderBillingPlan.from_hash(hash['billing_plan']) if hash['billing_plan']
131
+
132
+ # Create object from extracted values.
133
+ ItemRequest.new(name: name,
134
+ unit_amount: unit_amount,
135
+ quantity: quantity,
136
+ tax: tax,
137
+ description: description,
138
+ sku: sku,
139
+ url: url,
140
+ category: category,
141
+ image_url: image_url,
142
+ upc: upc,
143
+ billing_plan: billing_plan)
144
+ end
145
+
146
+ # Provides a human-readable string representation of the object.
147
+ def to_s
148
+ class_name = self.class.name.split('::').last
149
+ "<#{class_name} name: #{@name}, unit_amount: #{@unit_amount}, tax: #{@tax}, quantity:"\
150
+ " #{@quantity}, description: #{@description}, sku: #{@sku}, url: #{@url}, category:"\
151
+ " #{@category}, image_url: #{@image_url}, upc: #{@upc}, billing_plan: #{@billing_plan}>"
152
+ end
153
+
154
+ # Provides a debugging-friendly string with detailed object information.
155
+ def inspect
156
+ class_name = self.class.name.split('::').last
157
+ "<#{class_name} name: #{@name.inspect}, unit_amount: #{@unit_amount.inspect}, tax:"\
158
+ " #{@tax.inspect}, quantity: #{@quantity.inspect}, description: #{@description.inspect},"\
159
+ " sku: #{@sku.inspect}, url: #{@url.inspect}, category: #{@category.inspect}, image_url:"\
160
+ " #{@image_url.inspect}, upc: #{@upc.inspect}, billing_plan: #{@billing_plan.inspect}>"
161
+ end
162
+ end
163
+ end