paypal-apimatic-sdk 1.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 (395) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +35 -0
  3. data/README.md +176 -0
  4. data/bin/console +15 -0
  5. data/lib/paypal_server_sdk/api_helper.rb +10 -0
  6. data/lib/paypal_server_sdk/client.rb +109 -0
  7. data/lib/paypal_server_sdk/configuration.rb +164 -0
  8. data/lib/paypal_server_sdk/controllers/base_controller.rb +65 -0
  9. data/lib/paypal_server_sdk/controllers/o_auth_authorization_controller.rb +42 -0
  10. data/lib/paypal_server_sdk/controllers/orders_controller.rb +551 -0
  11. data/lib/paypal_server_sdk/controllers/payments_controller.rb +462 -0
  12. data/lib/paypal_server_sdk/controllers/subscriptions_controller.rb +843 -0
  13. data/lib/paypal_server_sdk/controllers/transaction_search_controller.rb +178 -0
  14. data/lib/paypal_server_sdk/controllers/vault_controller.rb +224 -0
  15. data/lib/paypal_server_sdk/exceptions/api_exception.rb +21 -0
  16. data/lib/paypal_server_sdk/exceptions/default_error_exception.rb +95 -0
  17. data/lib/paypal_server_sdk/exceptions/error_exception.rb +87 -0
  18. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +64 -0
  19. data/lib/paypal_server_sdk/exceptions/search_error_exception.rb +107 -0
  20. data/lib/paypal_server_sdk/exceptions/subscription_error_exception.rb +95 -0
  21. data/lib/paypal_server_sdk/http/api_response.rb +19 -0
  22. data/lib/paypal_server_sdk/http/auth/o_auth2.rb +151 -0
  23. data/lib/paypal_server_sdk/http/http_call_back.rb +10 -0
  24. data/lib/paypal_server_sdk/http/http_method_enum.rb +10 -0
  25. data/lib/paypal_server_sdk/http/http_request.rb +10 -0
  26. data/lib/paypal_server_sdk/http/http_response.rb +10 -0
  27. data/lib/paypal_server_sdk/http/proxy_settings.rb +22 -0
  28. data/lib/paypal_server_sdk/logging/configuration/api_logging_configuration.rb +186 -0
  29. data/lib/paypal_server_sdk/logging/sdk_logger.rb +17 -0
  30. data/lib/paypal_server_sdk/models/activate_subscription_request.rb +63 -0
  31. data/lib/paypal_server_sdk/models/activity_timestamps.rb +79 -0
  32. data/lib/paypal_server_sdk/models/address.rb +131 -0
  33. data/lib/paypal_server_sdk/models/amount_breakdown.rb +132 -0
  34. data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +93 -0
  35. data/lib/paypal_server_sdk/models/app_switch_context.rb +74 -0
  36. data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +73 -0
  37. data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +62 -0
  38. data/lib/paypal_server_sdk/models/apple_pay_card.rb +108 -0
  39. data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +209 -0
  40. data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +111 -0
  41. data/lib/paypal_server_sdk/models/apple_pay_experience_context.rb +68 -0
  42. data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +97 -0
  43. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +41 -0
  44. data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +150 -0
  45. data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +63 -0
  46. data/lib/paypal_server_sdk/models/apple_pay_request.rb +165 -0
  47. data/lib/paypal_server_sdk/models/apple_pay_request_card.rb +88 -0
  48. data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +127 -0
  49. data/lib/paypal_server_sdk/models/application_context_user_action.rb +42 -0
  50. data/lib/paypal_server_sdk/models/assurance_details.rb +82 -0
  51. data/lib/paypal_server_sdk/models/auction_information.rb +100 -0
  52. data/lib/paypal_server_sdk/models/authentication_response.rb +74 -0
  53. data/lib/paypal_server_sdk/models/authorization.rb +211 -0
  54. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +36 -0
  55. data/lib/paypal_server_sdk/models/authorization_status.rb +58 -0
  56. data/lib/paypal_server_sdk/models/authorization_status_details.rb +62 -0
  57. data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +72 -0
  58. data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +225 -0
  59. data/lib/paypal_server_sdk/models/avs_code.rb +156 -0
  60. data/lib/paypal_server_sdk/models/balance_information.rb +106 -0
  61. data/lib/paypal_server_sdk/models/balances_response.rb +111 -0
  62. data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +109 -0
  63. data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +86 -0
  64. data/lib/paypal_server_sdk/models/bank_request.rb +71 -0
  65. data/lib/paypal_server_sdk/models/base_model.rb +110 -0
  66. data/lib/paypal_server_sdk/models/billing_cycle.rb +118 -0
  67. data/lib/paypal_server_sdk/models/billing_cycle_override.rb +91 -0
  68. data/lib/paypal_server_sdk/models/billing_plan.rb +212 -0
  69. data/lib/paypal_server_sdk/models/bin_details.rb +101 -0
  70. data/lib/paypal_server_sdk/models/blik_experience_context.rb +141 -0
  71. data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +60 -0
  72. data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +64 -0
  73. data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +97 -0
  74. data/lib/paypal_server_sdk/models/blik_payment_object.rb +98 -0
  75. data/lib/paypal_server_sdk/models/blik_payment_request.rb +119 -0
  76. data/lib/paypal_server_sdk/models/callback_configuration.rb +74 -0
  77. data/lib/paypal_server_sdk/models/callback_events.rb +40 -0
  78. data/lib/paypal_server_sdk/models/cancel_subscription_request.rb +60 -0
  79. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +86 -0
  80. data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +104 -0
  81. data/lib/paypal_server_sdk/models/capture_request.rb +126 -0
  82. data/lib/paypal_server_sdk/models/capture_status.rb +56 -0
  83. data/lib/paypal_server_sdk/models/capture_status_details.rb +62 -0
  84. data/lib/paypal_server_sdk/models/capture_status_with_details.rb +72 -0
  85. data/lib/paypal_server_sdk/models/capture_subscription_request.rb +78 -0
  86. data/lib/paypal_server_sdk/models/capture_type.rb +26 -0
  87. data/lib/paypal_server_sdk/models/captured_payment.rb +274 -0
  88. data/lib/paypal_server_sdk/models/card_attributes.rb +83 -0
  89. data/lib/paypal_server_sdk/models/card_attributes_response.rb +62 -0
  90. data/lib/paypal_server_sdk/models/card_authentication_response.rb +63 -0
  91. data/lib/paypal_server_sdk/models/card_brand.rb +153 -0
  92. data/lib/paypal_server_sdk/models/card_customer.rb +98 -0
  93. data/lib/paypal_server_sdk/models/card_customer_information.rb +108 -0
  94. data/lib/paypal_server_sdk/models/card_experience_context.rb +71 -0
  95. data/lib/paypal_server_sdk/models/card_from_request.rb +72 -0
  96. data/lib/paypal_server_sdk/models/card_payment_token_entity.rb +178 -0
  97. data/lib/paypal_server_sdk/models/card_request.rb +191 -0
  98. data/lib/paypal_server_sdk/models/card_response.rb +180 -0
  99. data/lib/paypal_server_sdk/models/card_response_address.rb +136 -0
  100. data/lib/paypal_server_sdk/models/card_response_with_billing_address.rb +100 -0
  101. data/lib/paypal_server_sdk/models/card_stored_credential.rb +111 -0
  102. data/lib/paypal_server_sdk/models/card_supplementary_data.rb +79 -0
  103. data/lib/paypal_server_sdk/models/card_type.rb +48 -0
  104. data/lib/paypal_server_sdk/models/card_vault_response.rb +99 -0
  105. data/lib/paypal_server_sdk/models/card_verification.rb +64 -0
  106. data/lib/paypal_server_sdk/models/card_verification_details.rb +140 -0
  107. data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +74 -0
  108. data/lib/paypal_server_sdk/models/card_verification_status.rb +36 -0
  109. data/lib/paypal_server_sdk/models/cart_information.rb +94 -0
  110. data/lib/paypal_server_sdk/models/checkout_option.rb +77 -0
  111. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +45 -0
  112. data/lib/paypal_server_sdk/models/cobranded_card.rb +83 -0
  113. data/lib/paypal_server_sdk/models/confirm_order_request.rb +74 -0
  114. data/lib/paypal_server_sdk/models/create_subscription_request.rb +151 -0
  115. data/lib/paypal_server_sdk/models/customer.rb +76 -0
  116. data/lib/paypal_server_sdk/models/customer_information.rb +95 -0
  117. data/lib/paypal_server_sdk/models/customer_response.rb +75 -0
  118. data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +122 -0
  119. data/lib/paypal_server_sdk/models/cvv_code.rb +93 -0
  120. data/lib/paypal_server_sdk/models/cycle_execution.rb +124 -0
  121. data/lib/paypal_server_sdk/models/disbursement_mode.rb +39 -0
  122. data/lib/paypal_server_sdk/models/dispute_category.rb +36 -0
  123. data/lib/paypal_server_sdk/models/eci_flag.rb +54 -0
  124. data/lib/paypal_server_sdk/models/enrollment_status.rb +47 -0
  125. data/lib/paypal_server_sdk/models/eps_payment_object.rb +86 -0
  126. data/lib/paypal_server_sdk/models/eps_payment_request.rb +86 -0
  127. data/lib/paypal_server_sdk/models/error_details.rb +125 -0
  128. data/lib/paypal_server_sdk/models/exchange_rate.rb +89 -0
  129. data/lib/paypal_server_sdk/models/experience_context.rb +115 -0
  130. data/lib/paypal_server_sdk/models/experience_context_shipping_preference.rb +46 -0
  131. data/lib/paypal_server_sdk/models/experience_status.rb +48 -0
  132. data/lib/paypal_server_sdk/models/failed_payment_details.rb +98 -0
  133. data/lib/paypal_server_sdk/models/frequency.rb +75 -0
  134. data/lib/paypal_server_sdk/models/fulfillment_type.rb +51 -0
  135. data/lib/paypal_server_sdk/models/giropay_payment_object.rb +86 -0
  136. data/lib/paypal_server_sdk/models/giropay_payment_request.rb +86 -0
  137. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +42 -0
  138. data/lib/paypal_server_sdk/models/google_pay_card.rb +128 -0
  139. data/lib/paypal_server_sdk/models/google_pay_card_response.rb +120 -0
  140. data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +131 -0
  141. data/lib/paypal_server_sdk/models/google_pay_experience_context.rb +68 -0
  142. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +26 -0
  143. data/lib/paypal_server_sdk/models/google_pay_request.rb +136 -0
  144. data/lib/paypal_server_sdk/models/google_pay_request_card.rb +98 -0
  145. data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +98 -0
  146. data/lib/paypal_server_sdk/models/ideal_payment_object.rb +98 -0
  147. data/lib/paypal_server_sdk/models/ideal_payment_request.rb +96 -0
  148. data/lib/paypal_server_sdk/models/incentive_details.rb +99 -0
  149. data/lib/paypal_server_sdk/models/incentive_information.rb +71 -0
  150. data/lib/paypal_server_sdk/models/interval_unit.rb +44 -0
  151. data/lib/paypal_server_sdk/models/item.rb +161 -0
  152. data/lib/paypal_server_sdk/models/item_category.rb +43 -0
  153. data/lib/paypal_server_sdk/models/item_details.rb +287 -0
  154. data/lib/paypal_server_sdk/models/item_request.rb +163 -0
  155. data/lib/paypal_server_sdk/models/last_payment_details.rb +75 -0
  156. data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +78 -0
  157. data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +137 -0
  158. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +40 -0
  159. data/lib/paypal_server_sdk/models/line_item.rb +209 -0
  160. data/lib/paypal_server_sdk/models/link_description.rb +87 -0
  161. data/lib/paypal_server_sdk/models/link_http_method.rb +60 -0
  162. data/lib/paypal_server_sdk/models/merchant_preferences.rb +73 -0
  163. data/lib/paypal_server_sdk/models/mobile_return_flow.rb +41 -0
  164. data/lib/paypal_server_sdk/models/mobile_web_context.rb +76 -0
  165. data/lib/paypal_server_sdk/models/modify_subscription_request.rb +124 -0
  166. data/lib/paypal_server_sdk/models/modify_subscription_response.rb +141 -0
  167. data/lib/paypal_server_sdk/models/money.rb +74 -0
  168. data/lib/paypal_server_sdk/models/mybank_payment_object.rb +98 -0
  169. data/lib/paypal_server_sdk/models/mybank_payment_request.rb +86 -0
  170. data/lib/paypal_server_sdk/models/name.rb +73 -0
  171. data/lib/paypal_server_sdk/models/native_app_context.rb +72 -0
  172. data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +87 -0
  173. data/lib/paypal_server_sdk/models/network_token.rb +110 -0
  174. data/lib/paypal_server_sdk/models/network_transaction.rb +107 -0
  175. data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +100 -0
  176. data/lib/paypal_server_sdk/models/o_auth_provider_error.rb +62 -0
  177. data/lib/paypal_server_sdk/models/o_auth_token.rb +106 -0
  178. data/lib/paypal_server_sdk/models/one_time_charge.rb +118 -0
  179. data/lib/paypal_server_sdk/models/order.rb +184 -0
  180. data/lib/paypal_server_sdk/models/order_application_context.rb +219 -0
  181. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +53 -0
  182. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +50 -0
  183. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +47 -0
  184. data/lib/paypal_server_sdk/models/order_authorize_request.rb +63 -0
  185. data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +115 -0
  186. data/lib/paypal_server_sdk/models/order_authorize_response.rb +181 -0
  187. data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +102 -0
  188. data/lib/paypal_server_sdk/models/order_billing_plan.rb +93 -0
  189. data/lib/paypal_server_sdk/models/order_capture_request.rb +63 -0
  190. data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +115 -0
  191. data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +122 -0
  192. data/lib/paypal_server_sdk/models/order_request.rb +120 -0
  193. data/lib/paypal_server_sdk/models/order_status.rb +65 -0
  194. data/lib/paypal_server_sdk/models/order_tracker_item.rb +114 -0
  195. data/lib/paypal_server_sdk/models/order_tracker_request.rb +133 -0
  196. data/lib/paypal_server_sdk/models/order_tracker_response.rb +135 -0
  197. data/lib/paypal_server_sdk/models/order_tracker_status.rb +39 -0
  198. data/lib/paypal_server_sdk/models/orders_capture.rb +252 -0
  199. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +66 -0
  200. data/lib/paypal_server_sdk/models/os_type.rb +40 -0
  201. data/lib/paypal_server_sdk/models/p24_payment_object.rb +122 -0
  202. data/lib/paypal_server_sdk/models/p24_payment_request.rb +97 -0
  203. data/lib/paypal_server_sdk/models/pa_res_status.rb +61 -0
  204. data/lib/paypal_server_sdk/models/participant_metadata.rb +64 -0
  205. data/lib/paypal_server_sdk/models/patch.rb +93 -0
  206. data/lib/paypal_server_sdk/models/patch_op.rb +89 -0
  207. data/lib/paypal_server_sdk/models/payee_base.rb +76 -0
  208. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +38 -0
  209. data/lib/paypal_server_sdk/models/payer.rb +136 -0
  210. data/lib/paypal_server_sdk/models/payer_base.rb +75 -0
  211. data/lib/paypal_server_sdk/models/payer_information.rb +146 -0
  212. data/lib/paypal_server_sdk/models/payer_name.rb +128 -0
  213. data/lib/paypal_server_sdk/models/payment_advice_code.rb +101 -0
  214. data/lib/paypal_server_sdk/models/payment_authorization.rb +233 -0
  215. data/lib/paypal_server_sdk/models/payment_collection.rb +113 -0
  216. data/lib/paypal_server_sdk/models/payment_initiator.rb +39 -0
  217. data/lib/paypal_server_sdk/models/payment_instruction.rb +121 -0
  218. data/lib/paypal_server_sdk/models/payment_method.rb +63 -0
  219. data/lib/paypal_server_sdk/models/payment_method_preference.rb +86 -0
  220. data/lib/paypal_server_sdk/models/payment_preferences.rb +105 -0
  221. data/lib/paypal_server_sdk/models/payment_preferences_override.rb +107 -0
  222. data/lib/paypal_server_sdk/models/payment_source.rb +203 -0
  223. data/lib/paypal_server_sdk/models/payment_source_response.rb +190 -0
  224. data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +62 -0
  225. data/lib/paypal_server_sdk/models/payment_token_request.rb +74 -0
  226. data/lib/paypal_server_sdk/models/payment_token_request_card.rb +120 -0
  227. data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +71 -0
  228. data/lib/paypal_server_sdk/models/payment_token_response.rb +103 -0
  229. data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +91 -0
  230. data/lib/paypal_server_sdk/models/payment_token_status.rb +52 -0
  231. data/lib/paypal_server_sdk/models/payments_capture.rb +252 -0
  232. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +56 -0
  233. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +42 -0
  234. data/lib/paypal_server_sdk/models/paypal_payment_token.rb +211 -0
  235. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +42 -0
  236. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +40 -0
  237. data/lib/paypal_server_sdk/models/paypal_reference_id_type.rb +44 -0
  238. data/lib/paypal_server_sdk/models/paypal_wallet.rb +188 -0
  239. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +41 -0
  240. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +72 -0
  241. data/lib/paypal_server_sdk/models/paypal_wallet_attributes_response.rb +82 -0
  242. data/lib/paypal_server_sdk/models/paypal_wallet_contact_preference.rb +48 -0
  243. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +45 -0
  244. data/lib/paypal_server_sdk/models/paypal_wallet_customer.rb +108 -0
  245. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +108 -0
  246. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +200 -0
  247. data/lib/paypal_server_sdk/models/paypal_wallet_response.rb +213 -0
  248. data/lib/paypal_server_sdk/models/paypal_wallet_stored_credential.rb +99 -0
  249. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +122 -0
  250. data/lib/paypal_server_sdk/models/paypal_wallet_vault_response.rb +99 -0
  251. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +45 -0
  252. data/lib/paypal_server_sdk/models/phone.rb +91 -0
  253. data/lib/paypal_server_sdk/models/phone_number.rb +68 -0
  254. data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +83 -0
  255. data/lib/paypal_server_sdk/models/phone_number_with_optional_country_code.rb +81 -0
  256. data/lib/paypal_server_sdk/models/phone_type.rb +48 -0
  257. data/lib/paypal_server_sdk/models/phone_with_type.rb +72 -0
  258. data/lib/paypal_server_sdk/models/plan.rb +92 -0
  259. data/lib/paypal_server_sdk/models/plan_collection.rb +111 -0
  260. data/lib/paypal_server_sdk/models/plan_details.rb +147 -0
  261. data/lib/paypal_server_sdk/models/plan_override.rb +96 -0
  262. data/lib/paypal_server_sdk/models/plan_request.rb +154 -0
  263. data/lib/paypal_server_sdk/models/plan_request_status.rb +42 -0
  264. data/lib/paypal_server_sdk/models/platform_fee.rb +75 -0
  265. data/lib/paypal_server_sdk/models/pricing_model.rb +42 -0
  266. data/lib/paypal_server_sdk/models/pricing_scheme.rb +84 -0
  267. data/lib/paypal_server_sdk/models/pricing_tier.rb +83 -0
  268. data/lib/paypal_server_sdk/models/processor_response.rb +98 -0
  269. data/lib/paypal_server_sdk/models/processor_response_code.rb +648 -0
  270. data/lib/paypal_server_sdk/models/purchase_unit.rb +245 -0
  271. data/lib/paypal_server_sdk/models/purchase_unit_request.rb +219 -0
  272. data/lib/paypal_server_sdk/models/reason_code.rb +60 -0
  273. data/lib/paypal_server_sdk/models/reauthorize_request.rb +72 -0
  274. data/lib/paypal_server_sdk/models/refund.rb +214 -0
  275. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +27 -0
  276. data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +80 -0
  277. data/lib/paypal_server_sdk/models/refund_platform_fee.rb +64 -0
  278. data/lib/paypal_server_sdk/models/refund_request.rb +115 -0
  279. data/lib/paypal_server_sdk/models/refund_status.rb +44 -0
  280. data/lib/paypal_server_sdk/models/refund_status_details.rb +62 -0
  281. data/lib/paypal_server_sdk/models/refund_status_with_details.rb +72 -0
  282. data/lib/paypal_server_sdk/models/related_identifiers.rb +83 -0
  283. data/lib/paypal_server_sdk/models/return_flow.rb +41 -0
  284. data/lib/paypal_server_sdk/models/risk_supplementary_data.rb +63 -0
  285. data/lib/paypal_server_sdk/models/search_response.rb +176 -0
  286. data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +177 -0
  287. data/lib/paypal_server_sdk/models/seller_protection.rb +78 -0
  288. data/lib/paypal_server_sdk/models/seller_protection_status.rb +46 -0
  289. data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +147 -0
  290. data/lib/paypal_server_sdk/models/sepa_debit_experience_context.rb +88 -0
  291. data/lib/paypal_server_sdk/models/sepa_debit_request.rb +64 -0
  292. data/lib/paypal_server_sdk/models/setup_fee_failure_action.rb +37 -0
  293. data/lib/paypal_server_sdk/models/setup_token_request.rb +74 -0
  294. data/lib/paypal_server_sdk/models/setup_token_request_card.rb +143 -0
  295. data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +111 -0
  296. data/lib/paypal_server_sdk/models/setup_token_response.rb +115 -0
  297. data/lib/paypal_server_sdk/models/setup_token_response_card.rb +178 -0
  298. data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +81 -0
  299. data/lib/paypal_server_sdk/models/shipment_carrier.rb +5682 -0
  300. data/lib/paypal_server_sdk/models/shipping_details.rb +133 -0
  301. data/lib/paypal_server_sdk/models/shipping_information.rb +101 -0
  302. data/lib/paypal_server_sdk/models/shipping_name.rb +62 -0
  303. data/lib/paypal_server_sdk/models/shipping_option.rb +108 -0
  304. data/lib/paypal_server_sdk/models/shipping_type.rb +52 -0
  305. data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +152 -0
  306. data/lib/paypal_server_sdk/models/simple_postal_address_coarse_grained.rb +130 -0
  307. data/lib/paypal_server_sdk/models/sofort_payment_object.rb +98 -0
  308. data/lib/paypal_server_sdk/models/sofort_payment_request.rb +86 -0
  309. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +59 -0
  310. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +27 -0
  311. data/lib/paypal_server_sdk/models/store_information.rb +71 -0
  312. data/lib/paypal_server_sdk/models/stored_payment_source.rb +111 -0
  313. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +43 -0
  314. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +44 -0
  315. data/lib/paypal_server_sdk/models/subscriber.rb +84 -0
  316. data/lib/paypal_server_sdk/models/subscriber_request.rb +97 -0
  317. data/lib/paypal_server_sdk/models/subscription.rb +205 -0
  318. data/lib/paypal_server_sdk/models/subscription_amount_with_breakdown.rb +119 -0
  319. data/lib/paypal_server_sdk/models/subscription_application_context.rb +134 -0
  320. data/lib/paypal_server_sdk/models/subscription_billing_cycle.rb +108 -0
  321. data/lib/paypal_server_sdk/models/subscription_billing_information.rb +148 -0
  322. data/lib/paypal_server_sdk/models/subscription_card_request.rb +141 -0
  323. data/lib/paypal_server_sdk/models/subscription_collection.rb +90 -0
  324. data/lib/paypal_server_sdk/models/subscription_customer_information.rb +84 -0
  325. data/lib/paypal_server_sdk/models/subscription_patch_application_context.rb +122 -0
  326. data/lib/paypal_server_sdk/models/subscription_payer_name.rb +114 -0
  327. data/lib/paypal_server_sdk/models/subscription_payment_source.rb +65 -0
  328. data/lib/paypal_server_sdk/models/subscription_payment_source_response.rb +63 -0
  329. data/lib/paypal_server_sdk/models/subscription_plan_status.rb +42 -0
  330. data/lib/paypal_server_sdk/models/subscription_pricing_model.rb +36 -0
  331. data/lib/paypal_server_sdk/models/subscription_pricing_scheme.rb +129 -0
  332. data/lib/paypal_server_sdk/models/subscription_transaction_details.rb +118 -0
  333. data/lib/paypal_server_sdk/models/subscriptions_card_attributes.rb +83 -0
  334. data/lib/paypal_server_sdk/models/subscriptions_card_brand.rb +133 -0
  335. data/lib/paypal_server_sdk/models/supplementary_data.rb +76 -0
  336. data/lib/paypal_server_sdk/models/suspend_subscription.rb +60 -0
  337. data/lib/paypal_server_sdk/models/tax_amount.rb +63 -0
  338. data/lib/paypal_server_sdk/models/tax_id_type.rb +36 -0
  339. data/lib/paypal_server_sdk/models/tax_info.rb +69 -0
  340. data/lib/paypal_server_sdk/models/taxes.rb +71 -0
  341. data/lib/paypal_server_sdk/models/taxes_override.rb +72 -0
  342. data/lib/paypal_server_sdk/models/tenure_type.rb +43 -0
  343. data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +76 -0
  344. data/lib/paypal_server_sdk/models/three_d_secure_card_authentication_response.rb +89 -0
  345. data/lib/paypal_server_sdk/models/token.rb +68 -0
  346. data/lib/paypal_server_sdk/models/token_type.rb +27 -0
  347. data/lib/paypal_server_sdk/models/transaction_details.rb +126 -0
  348. data/lib/paypal_server_sdk/models/transaction_information.rb +494 -0
  349. data/lib/paypal_server_sdk/models/transaction_search_error_details.rb +103 -0
  350. data/lib/paypal_server_sdk/models/transactions_list.rb +111 -0
  351. data/lib/paypal_server_sdk/models/trustly_payment_object.rb +110 -0
  352. data/lib/paypal_server_sdk/models/trustly_payment_request.rb +97 -0
  353. data/lib/paypal_server_sdk/models/universal_product_code.rb +68 -0
  354. data/lib/paypal_server_sdk/models/upc_type.rb +56 -0
  355. data/lib/paypal_server_sdk/models/update_pricing_scheme.rb +72 -0
  356. data/lib/paypal_server_sdk/models/update_pricing_schemes_request.rb +69 -0
  357. data/lib/paypal_server_sdk/models/usage_pattern.rb +95 -0
  358. data/lib/paypal_server_sdk/models/vault_apple_pay_request.rb +73 -0
  359. data/lib/paypal_server_sdk/models/vault_card_experience_context.rb +128 -0
  360. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +52 -0
  361. data/lib/paypal_server_sdk/models/vault_customer.rb +72 -0
  362. data/lib/paypal_server_sdk/models/vault_experience_context.rb +154 -0
  363. data/lib/paypal_server_sdk/models/vault_instruction.rb +62 -0
  364. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +39 -0
  365. data/lib/paypal_server_sdk/models/vault_instruction_base.rb +64 -0
  366. data/lib/paypal_server_sdk/models/vault_paypal_wallet_request.rb +154 -0
  367. data/lib/paypal_server_sdk/models/vault_response.rb +100 -0
  368. data/lib/paypal_server_sdk/models/vault_response_customer.rb +86 -0
  369. data/lib/paypal_server_sdk/models/vault_status.rb +45 -0
  370. data/lib/paypal_server_sdk/models/vault_token_request.rb +68 -0
  371. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +26 -0
  372. data/lib/paypal_server_sdk/models/vault_user_action.rb +42 -0
  373. data/lib/paypal_server_sdk/models/vault_venmo_request.rb +143 -0
  374. data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +132 -0
  375. data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +114 -0
  376. data/lib/paypal_server_sdk/models/venmo_experience_context.rb +101 -0
  377. data/lib/paypal_server_sdk/models/venmo_payment_token.rb +199 -0
  378. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +40 -0
  379. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +58 -0
  380. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +39 -0
  381. data/lib/paypal_server_sdk/models/venmo_vault_response.rb +100 -0
  382. data/lib/paypal_server_sdk/models/venmo_vault_response_status.rb +45 -0
  383. data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +72 -0
  384. data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +62 -0
  385. data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +94 -0
  386. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +108 -0
  387. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_shipping_preference.rb +43 -0
  388. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_user_action.rb +42 -0
  389. data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +102 -0
  390. data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +146 -0
  391. data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +131 -0
  392. data/lib/paypal_server_sdk/utilities/date_time_helper.rb +11 -0
  393. data/lib/paypal_server_sdk/utilities/file_wrapper.rb +28 -0
  394. data/lib/paypal_server_sdk.rb +433 -0
  395. metadata +478 -0
@@ -0,0 +1,551 @@
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
+ # OrdersController
8
+ class OrdersController < BaseController
9
+ # Creates an order. Merchants and partners can add Level 2 and 3 data to
10
+ # payments to reduce risk and payment processing costs. For more information
11
+ # about processing payments, see checkout or multiparty checkout. Note: For
12
+ # error handling and troubleshooting, see Orders v2 errors.
13
+ # @param [OrderRequest] body Required parameter: TODO: type description
14
+ # here
15
+ # @param [String] paypal_mock_response Optional parameter: PayPal's REST API
16
+ # uses a request header to invoke negative testing in the sandbox. This
17
+ # header configures the sandbox into a negative testing state for
18
+ # transactions that include the merchant.
19
+ # @param [String] paypal_request_id Optional parameter: The server stores
20
+ # keys for 6 hours. The API callers can request the times to up to 72 hours
21
+ # by speaking to their Account Manager. It is mandatory for all single-step
22
+ # create order calls (E.g. Create Order Request with payment source
23
+ # information like Card, PayPal.vault_id, PayPal.billing_agreement_id,
24
+ # etc).
25
+ # @param [String] paypal_partner_attribution_id Optional parameter: TODO:
26
+ # type description here
27
+ # @param [String] paypal_client_metadata_id Optional parameter: TODO: type
28
+ # description here
29
+ # @param [String] prefer Optional parameter: The preferred server response
30
+ # upon successful completion of the request. Value is: return=minimal. The
31
+ # server returns a minimal response to optimize communication between the
32
+ # API caller and the server. A minimal response includes the id, status and
33
+ # HATEOAS links. return=representation. The server returns a complete
34
+ # resource representation, including the current state of the resource.
35
+ # @param [String] paypal_auth_assertion Optional parameter: An
36
+ # API-caller-provided JSON Web Token (JWT) assertion that identifies the
37
+ # merchant. For details, see PayPal-Auth-Assertion.
38
+ # @return [ApiResponse] Complete http response with raw body and status code.
39
+ def create_order(options = {})
40
+ @api_call
41
+ .request(new_request_builder(HttpMethodEnum::POST,
42
+ '/v2/checkout/orders',
43
+ Server::DEFAULT)
44
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
45
+ .body_param(new_parameter(options['body']))
46
+ .header_param(new_parameter(options['paypal_mock_response'], key: 'PayPal-Mock-Response'))
47
+ .header_param(new_parameter(options['paypal_request_id'], key: 'PayPal-Request-Id'))
48
+ .header_param(new_parameter(options['paypal_partner_attribution_id'], key: 'PayPal-Partner-Attribution-Id'))
49
+ .header_param(new_parameter(options['paypal_client_metadata_id'], key: 'PayPal-Client-Metadata-Id'))
50
+ .header_param(new_parameter(options['prefer'], key: 'Prefer'))
51
+ .header_param(new_parameter(options['paypal_auth_assertion'], key: 'PayPal-Auth-Assertion'))
52
+ .header_param(new_parameter('application/json', key: 'accept'))
53
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
54
+ .auth(Single.new('Oauth2')))
55
+ .response(new_response_handler
56
+ .deserializer(APIHelper.method(:custom_type_deserializer))
57
+ .deserialize_into(Order.method(:from_hash))
58
+ .is_api_response(true)
59
+ .local_error('400',
60
+ 'Request is not well-formed, syntactically incorrect, or'\
61
+ ' violates schema.',
62
+ ErrorException)
63
+ .local_error('401',
64
+ 'Authentication failed due to missing authorization header, or'\
65
+ ' invalid authentication credentials.',
66
+ ErrorException)
67
+ .local_error('422',
68
+ 'The requested action could not be performed, semantically'\
69
+ ' incorrect, or failed business validation.',
70
+ ErrorException)
71
+ .local_error('default',
72
+ 'The error response.',
73
+ ErrorException))
74
+ .execute
75
+ end
76
+
77
+ # Shows details for an order, by ID. Note: For error handling and
78
+ # troubleshooting, see Orders v2 errors.
79
+ # @param [String] id Required parameter: The ID of the order for which to
80
+ # show details.
81
+ # @param [String] paypal_mock_response Optional parameter: PayPal's REST API
82
+ # uses a request header to invoke negative testing in the sandbox. This
83
+ # header configures the sandbox into a negative testing state for
84
+ # transactions that include the merchant.
85
+ # @param [String] paypal_auth_assertion Optional parameter: An
86
+ # API-caller-provided JSON Web Token (JWT) assertion that identifies the
87
+ # merchant. For details, see PayPal-Auth-Assertion.
88
+ # @param [String] fields Optional parameter: A comma-separated list of
89
+ # fields that should be returned for the order. Valid filter field is
90
+ # `payment_source`.
91
+ # @return [ApiResponse] Complete http response with raw body and status code.
92
+ def get_order(options = {})
93
+ @api_call
94
+ .request(new_request_builder(HttpMethodEnum::GET,
95
+ '/v2/checkout/orders/{id}',
96
+ Server::DEFAULT)
97
+ .template_param(new_parameter(options['id'], key: 'id')
98
+ .should_encode(true))
99
+ .header_param(new_parameter(options['paypal_mock_response'], key: 'PayPal-Mock-Response'))
100
+ .header_param(new_parameter(options['paypal_auth_assertion'], key: 'PayPal-Auth-Assertion'))
101
+ .query_param(new_parameter(options['fields'], key: 'fields'))
102
+ .header_param(new_parameter('application/json', key: 'accept'))
103
+ .auth(Single.new('Oauth2')))
104
+ .response(new_response_handler
105
+ .deserializer(APIHelper.method(:custom_type_deserializer))
106
+ .deserialize_into(Order.method(:from_hash))
107
+ .is_api_response(true)
108
+ .local_error('401',
109
+ 'Authentication failed due to missing authorization header, or'\
110
+ ' invalid authentication credentials.',
111
+ ErrorException)
112
+ .local_error('404',
113
+ 'The specified resource does not exist.',
114
+ ErrorException)
115
+ .local_error('default',
116
+ 'The error response.',
117
+ ErrorException))
118
+ .execute
119
+ end
120
+
121
+ # Updates an order with a `CREATED` or `APPROVED` status. You cannot update
122
+ # an order with the `COMPLETED` status.<br/><br/>To make an update, you must
123
+ # provide a `reference_id`. If you omit this value with an order that
124
+ # contains only one purchase unit, PayPal sets the value to `default` which
125
+ # enables you to use the path:
126
+ # <code>\"/purchase_units/@reference_id=='default'/{attribute-or-object}\"</
127
+ # code>. Merchants and partners can add Level 2 and 3 data to payments to
128
+ # reduce risk and payment processing costs. For more information about
129
+ # processing payments, see <a
130
+ # href="https://developer.paypal.com/docs/checkout/advanced/processing/">che
131
+ # ckout</a> or <a
132
+ # href="https://developer.paypal.com/docs/multiparty/checkout/advanced/proce
133
+ # ssing/">multiparty checkout</a>.<blockquote><strong>Note:</strong> For
134
+ # error handling and troubleshooting, see <a
135
+ # href="https://developer.paypal.com/api/rest/reference/orders/v2/errors/#pa
136
+ # tch-order">Orders v2 errors</a>.</blockquote>Patchable attributes or
137
+ # objects:<br/><br/><table><thead><th>Attribute</th><th>Op</th><th>Notes</th
138
+ # ></thead><tbody><tr><td><code>intent</code></td><td>replace</td><td></td><
139
+ # /tr><tr><td><code>payer</code></td><td>replace, add</td><td>Using replace
140
+ # op for <code>payer</code> will replace the whole <code>payer</code> object
141
+ # with the value sent in
142
+ # request.</td></tr><tr><td><code>purchase_units</code></td><td>replace,
143
+ # add</td><td></td></tr><tr><td><code>purchase_units[].custom_id</code></td>
144
+ # <td>replace, add,
145
+ # remove</td><td></td></tr><tr><td><code>purchase_units[].description</code>
146
+ # </td><td>replace, add,
147
+ # remove</td><td></td></tr><tr><td><code>purchase_units[].payee.email</code>
148
+ # </td><td>replace</td><td></td></tr><tr><td><code>purchase_units[].shipping
149
+ # .name</code></td><td>replace,
150
+ # add</td><td></td></tr><tr><td><code>purchase_units[].shipping.email_addres
151
+ # s</code></td><td>replace,
152
+ # add</td><td></td></tr><tr><td><code>purchase_units[].shipping.phone_number
153
+ # </code></td><td>replace,
154
+ # add</td><td></td></tr><tr><td><code>purchase_units[].shipping.options</cod
155
+ # e></td><td>replace,
156
+ # add</td><td></td></tr><tr><td><code>purchase_units[].shipping.address</cod
157
+ # e></td><td>replace,
158
+ # add</td><td></td></tr><tr><td><code>purchase_units[].shipping.type</code><
159
+ # /td><td>replace,
160
+ # add</td><td></td></tr><tr><td><code>purchase_units[].soft_descriptor</code
161
+ # ></td><td>replace,
162
+ # remove</td><td></td></tr><tr><td><code>purchase_units[].amount</code></td>
163
+ # <td>replace</td><td></td></tr><tr><td><code>purchase_units[].items</code><
164
+ # /td><td>replace, add,
165
+ # remove</td><td></td></tr><tr><td><code>purchase_units[].invoice_id</code><
166
+ # /td><td>replace, add,
167
+ # remove</td><td></td></tr><tr><td><code>purchase_units[].payment_instructio
168
+ # n</code></td><td>replace</td><td></td></tr><tr><td><code>purchase_units[].
169
+ # payment_instruction.disbursement_mode</code></td><td>replace</td><td>By
170
+ # default, <code>disbursement_mode</code> is
171
+ # <code>INSTANT</code>.</td></tr><tr><td><code>purchase_units[].payment_inst
172
+ # ruction.payee_receivable_fx_rate_id</code></td><td>replace, add,
173
+ # remove</td><td></td></tr><tr><td><code>purchase_units[].payment_instructio
174
+ # n.platform_fees</code></td><td>replace, add,
175
+ # remove</td><td></td></tr><tr><td><code>purchase_units[].supplementary_data
176
+ # .airline</code></td><td>replace, add,
177
+ # remove</td><td></td></tr><tr><td><code>purchase_units[].supplementary_data
178
+ # .card</code></td><td>replace, add,
179
+ # remove</td><td></td></tr><tr><td><code>application_context.client_configur
180
+ # ation</code></td><td>replace, add</td><td></td></tr></tbody></table>
181
+ # @param [String] id Required parameter: The ID of the order to update.
182
+ # @param [String] paypal_mock_response Optional parameter: PayPal's REST API
183
+ # uses a request header to invoke negative testing in the sandbox. This
184
+ # header configures the sandbox into a negative testing state for
185
+ # transactions that include the merchant.
186
+ # @param [String] paypal_auth_assertion Optional parameter: An
187
+ # API-caller-provided JSON Web Token (JWT) assertion that identifies the
188
+ # merchant. For details, see PayPal-Auth-Assertion.
189
+ # @param [Array[Patch]] body Optional parameter: TODO: type description
190
+ # here
191
+ # @return [ApiResponse] Complete http response with raw body and status code.
192
+ def patch_order(options = {})
193
+ @api_call
194
+ .request(new_request_builder(HttpMethodEnum::PATCH,
195
+ '/v2/checkout/orders/{id}',
196
+ Server::DEFAULT)
197
+ .template_param(new_parameter(options['id'], key: 'id')
198
+ .should_encode(true))
199
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
200
+ .header_param(new_parameter(options['paypal_mock_response'], key: 'PayPal-Mock-Response'))
201
+ .header_param(new_parameter(options['paypal_auth_assertion'], key: 'PayPal-Auth-Assertion'))
202
+ .body_param(new_parameter(options['body']))
203
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
204
+ .auth(Single.new('Oauth2')))
205
+ .response(new_response_handler
206
+ .is_response_void(true)
207
+ .is_api_response(true)
208
+ .local_error('400',
209
+ 'Request is not well-formed, syntactically incorrect, or'\
210
+ ' violates schema.',
211
+ ErrorException)
212
+ .local_error('401',
213
+ 'Authentication failed due to missing authorization header, or'\
214
+ ' invalid authentication credentials.',
215
+ ErrorException)
216
+ .local_error('404',
217
+ 'The specified resource does not exist.',
218
+ ErrorException)
219
+ .local_error('422',
220
+ 'The requested action could not be performed, semantically'\
221
+ ' incorrect, or failed business validation.',
222
+ ErrorException)
223
+ .local_error('default',
224
+ 'The error response.',
225
+ ErrorException))
226
+ .execute
227
+ end
228
+
229
+ # Payer confirms their intent to pay for the the Order with the given
230
+ # payment source.
231
+ # @param [String] id Required parameter: The ID of the order for which the
232
+ # payer confirms their intent to pay.
233
+ # @param [String] paypal_client_metadata_id Optional parameter: TODO: type
234
+ # description here
235
+ # @param [String] paypal_auth_assertion Optional parameter: An
236
+ # API-caller-provided JSON Web Token (JWT) assertion that identifies the
237
+ # merchant. For details, see PayPal-Auth-Assertion.
238
+ # @param [String] prefer Optional parameter: The preferred server response
239
+ # upon successful completion of the request. Value is: return=minimal. The
240
+ # server returns a minimal response to optimize communication between the
241
+ # API caller and the server. A minimal response includes the id, status and
242
+ # HATEOAS links. return=representation. The server returns a complete
243
+ # resource representation, including the current state of the resource.
244
+ # @param [ConfirmOrderRequest] body Optional parameter: TODO: type
245
+ # description here
246
+ # @return [ApiResponse] Complete http response with raw body and status code.
247
+ def confirm_order(options = {})
248
+ @api_call
249
+ .request(new_request_builder(HttpMethodEnum::POST,
250
+ '/v2/checkout/orders/{id}/confirm-payment-source',
251
+ Server::DEFAULT)
252
+ .template_param(new_parameter(options['id'], key: 'id')
253
+ .should_encode(true))
254
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
255
+ .header_param(new_parameter(options['paypal_client_metadata_id'], key: 'PayPal-Client-Metadata-Id'))
256
+ .header_param(new_parameter(options['paypal_auth_assertion'], key: 'PayPal-Auth-Assertion'))
257
+ .header_param(new_parameter(options['prefer'], key: 'Prefer'))
258
+ .body_param(new_parameter(options['body']))
259
+ .header_param(new_parameter('application/json', key: 'accept'))
260
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
261
+ .auth(Single.new('Oauth2')))
262
+ .response(new_response_handler
263
+ .deserializer(APIHelper.method(:custom_type_deserializer))
264
+ .deserialize_into(Order.method(:from_hash))
265
+ .is_api_response(true)
266
+ .local_error('400',
267
+ 'Request is not well-formed, syntactically incorrect, or'\
268
+ ' violates schema.',
269
+ ErrorException)
270
+ .local_error('403',
271
+ 'Authorization failed due to insufficient permissions.',
272
+ ErrorException)
273
+ .local_error('422',
274
+ 'The requested action could not be performed, semantically'\
275
+ ' incorrect, or failed business validation.',
276
+ ErrorException)
277
+ .local_error('500',
278
+ 'An internal server error has occurred.',
279
+ ErrorException)
280
+ .local_error('default',
281
+ 'The error response.',
282
+ ErrorException))
283
+ .execute
284
+ end
285
+
286
+ # Authorizes payment for an order. To successfully authorize payment for an
287
+ # order, the buyer must first approve the order or a valid payment_source
288
+ # must be provided in the request. A buyer can approve the order upon being
289
+ # redirected to the rel:approve URL that was returned in the HATEOAS links
290
+ # in the create order response. Note: For error handling and
291
+ # troubleshooting, see Orders v2 errors.
292
+ # @param [String] id Required parameter: The ID of the order for which to
293
+ # authorize.
294
+ # @param [String] paypal_mock_response Optional parameter: PayPal's REST API
295
+ # uses a request header to invoke negative testing in the sandbox. This
296
+ # header configures the sandbox into a negative testing state for
297
+ # transactions that include the merchant.
298
+ # @param [String] paypal_request_id Optional parameter: The server stores
299
+ # keys for 6 hours. The API callers can request the times to up to 72 hours
300
+ # by speaking to their Account Manager. It is mandatory for all single-step
301
+ # create order calls (E.g. Create Order Request with payment source
302
+ # information like Card, PayPal.vault_id, PayPal.billing_agreement_id,
303
+ # etc).
304
+ # @param [String] prefer Optional parameter: The preferred server response
305
+ # upon successful completion of the request. Value is: return=minimal. The
306
+ # server returns a minimal response to optimize communication between the
307
+ # API caller and the server. A minimal response includes the id, status and
308
+ # HATEOAS links. return=representation. The server returns a complete
309
+ # resource representation, including the current state of the resource.
310
+ # @param [String] paypal_client_metadata_id Optional parameter: TODO: type
311
+ # description here
312
+ # @param [String] paypal_auth_assertion Optional parameter: An
313
+ # API-caller-provided JSON Web Token (JWT) assertion that identifies the
314
+ # merchant. For details, see PayPal-Auth-Assertion.
315
+ # @param [OrderAuthorizeRequest] body Optional parameter: TODO: type
316
+ # description here
317
+ # @return [ApiResponse] Complete http response with raw body and status code.
318
+ def authorize_order(options = {})
319
+ @api_call
320
+ .request(new_request_builder(HttpMethodEnum::POST,
321
+ '/v2/checkout/orders/{id}/authorize',
322
+ Server::DEFAULT)
323
+ .template_param(new_parameter(options['id'], key: 'id')
324
+ .should_encode(true))
325
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
326
+ .header_param(new_parameter(options['paypal_mock_response'], key: 'PayPal-Mock-Response'))
327
+ .header_param(new_parameter(options['paypal_request_id'], key: 'PayPal-Request-Id'))
328
+ .header_param(new_parameter(options['prefer'], key: 'Prefer'))
329
+ .header_param(new_parameter(options['paypal_client_metadata_id'], key: 'PayPal-Client-Metadata-Id'))
330
+ .header_param(new_parameter(options['paypal_auth_assertion'], key: 'PayPal-Auth-Assertion'))
331
+ .body_param(new_parameter(options['body']))
332
+ .header_param(new_parameter('application/json', key: 'accept'))
333
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
334
+ .auth(Single.new('Oauth2')))
335
+ .response(new_response_handler
336
+ .deserializer(APIHelper.method(:custom_type_deserializer))
337
+ .deserialize_into(OrderAuthorizeResponse.method(:from_hash))
338
+ .is_api_response(true)
339
+ .local_error('400',
340
+ 'Request is not well-formed, syntactically incorrect, or'\
341
+ ' violates schema.',
342
+ ErrorException)
343
+ .local_error('401',
344
+ 'Authentication failed due to missing authorization header, or'\
345
+ ' invalid authentication credentials.',
346
+ ErrorException)
347
+ .local_error('403',
348
+ 'The authorized payment failed due to insufficient permissions'\
349
+ '.',
350
+ ErrorException)
351
+ .local_error('404',
352
+ 'The specified resource does not exist.',
353
+ ErrorException)
354
+ .local_error('422',
355
+ 'The requested action could not be performed, semantically'\
356
+ ' incorrect, or failed business validation.',
357
+ ErrorException)
358
+ .local_error('500',
359
+ 'An internal server error has occurred.',
360
+ ErrorException)
361
+ .local_error('default',
362
+ 'The error response.',
363
+ ErrorException))
364
+ .execute
365
+ end
366
+
367
+ # Captures payment for an order. To successfully capture payment for an
368
+ # order, the buyer must first approve the order or a valid payment_source
369
+ # must be provided in the request. A buyer can approve the order upon being
370
+ # redirected to the rel:approve URL that was returned in the HATEOAS links
371
+ # in the create order response. Note: For error handling and
372
+ # troubleshooting, see Orders v2 errors.
373
+ # @param [String] id Required parameter: The ID of the order for which to
374
+ # capture a payment.
375
+ # @param [String] paypal_mock_response Optional parameter: PayPal's REST API
376
+ # uses a request header to invoke negative testing in the sandbox. This
377
+ # header configures the sandbox into a negative testing state for
378
+ # transactions that include the merchant.
379
+ # @param [String] paypal_request_id Optional parameter: The server stores
380
+ # keys for 6 hours. The API callers can request the times to up to 72 hours
381
+ # by speaking to their Account Manager. It is mandatory for all single-step
382
+ # create order calls (E.g. Create Order Request with payment source
383
+ # information like Card, PayPal.vault_id, PayPal.billing_agreement_id,
384
+ # etc).
385
+ # @param [String] prefer Optional parameter: The preferred server response
386
+ # upon successful completion of the request. Value is: return=minimal. The
387
+ # server returns a minimal response to optimize communication between the
388
+ # API caller and the server. A minimal response includes the id, status and
389
+ # HATEOAS links. return=representation. The server returns a complete
390
+ # resource representation, including the current state of the resource.
391
+ # @param [String] paypal_client_metadata_id Optional parameter: TODO: type
392
+ # description here
393
+ # @param [String] paypal_auth_assertion Optional parameter: An
394
+ # API-caller-provided JSON Web Token (JWT) assertion that identifies the
395
+ # merchant. For details, see PayPal-Auth-Assertion.
396
+ # @param [OrderCaptureRequest] body Optional parameter: TODO: type
397
+ # description here
398
+ # @return [ApiResponse] Complete http response with raw body and status code.
399
+ def capture_order(options = {})
400
+ @api_call
401
+ .request(new_request_builder(HttpMethodEnum::POST,
402
+ '/v2/checkout/orders/{id}/capture',
403
+ Server::DEFAULT)
404
+ .template_param(new_parameter(options['id'], key: 'id')
405
+ .should_encode(true))
406
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
407
+ .header_param(new_parameter(options['paypal_mock_response'], key: 'PayPal-Mock-Response'))
408
+ .header_param(new_parameter(options['paypal_request_id'], key: 'PayPal-Request-Id'))
409
+ .header_param(new_parameter(options['prefer'], key: 'Prefer'))
410
+ .header_param(new_parameter(options['paypal_client_metadata_id'], key: 'PayPal-Client-Metadata-Id'))
411
+ .header_param(new_parameter(options['paypal_auth_assertion'], key: 'PayPal-Auth-Assertion'))
412
+ .body_param(new_parameter(options['body']))
413
+ .header_param(new_parameter('application/json', key: 'accept'))
414
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
415
+ .auth(Single.new('Oauth2')))
416
+ .response(new_response_handler
417
+ .deserializer(APIHelper.method(:custom_type_deserializer))
418
+ .deserialize_into(Order.method(:from_hash))
419
+ .is_api_response(true)
420
+ .local_error('400',
421
+ 'Request is not well-formed, syntactically incorrect, or'\
422
+ ' violates schema.',
423
+ ErrorException)
424
+ .local_error('401',
425
+ 'Authentication failed due to missing authorization header, or'\
426
+ ' invalid authentication credentials.',
427
+ ErrorException)
428
+ .local_error('403',
429
+ 'The authorized payment failed due to insufficient permissions'\
430
+ '.',
431
+ ErrorException)
432
+ .local_error('404',
433
+ 'The specified resource does not exist.',
434
+ ErrorException)
435
+ .local_error('422',
436
+ 'The requested action could not be performed, semantically'\
437
+ ' incorrect, or failed business validation.',
438
+ ErrorException)
439
+ .local_error('500',
440
+ 'An internal server error has occurred.',
441
+ ErrorException)
442
+ .local_error('default',
443
+ 'The error response.',
444
+ ErrorException))
445
+ .execute
446
+ end
447
+
448
+ # Adds tracking information for an Order.
449
+ # @param [String] id Required parameter: The ID of the order that the
450
+ # tracking information is associated with.
451
+ # @param [OrderTrackerRequest] body Required parameter: TODO: type
452
+ # description here
453
+ # @param [String] paypal_auth_assertion Optional parameter: An
454
+ # API-caller-provided JSON Web Token (JWT) assertion that identifies the
455
+ # merchant. For details, see PayPal-Auth-Assertion.
456
+ # @return [ApiResponse] Complete http response with raw body and status code.
457
+ def create_order_tracking(options = {})
458
+ @api_call
459
+ .request(new_request_builder(HttpMethodEnum::POST,
460
+ '/v2/checkout/orders/{id}/track',
461
+ Server::DEFAULT)
462
+ .template_param(new_parameter(options['id'], key: 'id')
463
+ .should_encode(true))
464
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
465
+ .body_param(new_parameter(options['body']))
466
+ .header_param(new_parameter(options['paypal_auth_assertion'], key: 'PayPal-Auth-Assertion'))
467
+ .header_param(new_parameter('application/json', key: 'accept'))
468
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
469
+ .auth(Single.new('Oauth2')))
470
+ .response(new_response_handler
471
+ .deserializer(APIHelper.method(:custom_type_deserializer))
472
+ .deserialize_into(Order.method(:from_hash))
473
+ .is_api_response(true)
474
+ .local_error('400',
475
+ 'Request is not well-formed, syntactically incorrect, or'\
476
+ ' violates schema.',
477
+ ErrorException)
478
+ .local_error('403',
479
+ 'Authorization failed due to insufficient permissions.',
480
+ ErrorException)
481
+ .local_error('404',
482
+ 'The specified resource does not exist.',
483
+ ErrorException)
484
+ .local_error('422',
485
+ 'The requested action could not be performed, semantically'\
486
+ ' incorrect, or failed business validation.',
487
+ ErrorException)
488
+ .local_error('500',
489
+ 'An internal server error has occurred.',
490
+ ErrorException)
491
+ .local_error('default',
492
+ 'The error response.',
493
+ ErrorException))
494
+ .execute
495
+ end
496
+
497
+ # Updates or cancels the tracking information for a PayPal order, by ID.
498
+ # Updatable attributes or objects: Attribute Op Notes items replace Using
499
+ # replace op for items will replace the entire items object with the value
500
+ # sent in request. notify_payer replace, add status replace Only patching
501
+ # status to CANCELLED is currently supported.
502
+ # @param [String] id Required parameter: The ID of the order that the
503
+ # tracking information is associated with.
504
+ # @param [String] tracker_id Required parameter: The order tracking ID.
505
+ # @param [String] paypal_auth_assertion Optional parameter: An
506
+ # API-caller-provided JSON Web Token (JWT) assertion that identifies the
507
+ # merchant. For details, see PayPal-Auth-Assertion.
508
+ # @param [Array[Patch]] body Optional parameter: TODO: type description
509
+ # here
510
+ # @return [ApiResponse] Complete http response with raw body and status code.
511
+ def update_order_tracking(options = {})
512
+ @api_call
513
+ .request(new_request_builder(HttpMethodEnum::PATCH,
514
+ '/v2/checkout/orders/{id}/trackers/{tracker_id}',
515
+ Server::DEFAULT)
516
+ .template_param(new_parameter(options['id'], key: 'id')
517
+ .should_encode(true))
518
+ .template_param(new_parameter(options['tracker_id'], key: 'tracker_id')
519
+ .should_encode(true))
520
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
521
+ .header_param(new_parameter(options['paypal_auth_assertion'], key: 'PayPal-Auth-Assertion'))
522
+ .body_param(new_parameter(options['body']))
523
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
524
+ .auth(Single.new('Oauth2')))
525
+ .response(new_response_handler
526
+ .is_response_void(true)
527
+ .is_api_response(true)
528
+ .local_error('400',
529
+ 'Request is not well-formed, syntactically incorrect, or'\
530
+ ' violates schema.',
531
+ ErrorException)
532
+ .local_error('403',
533
+ 'Authorization failed due to insufficient permissions.',
534
+ ErrorException)
535
+ .local_error('404',
536
+ 'The specified resource does not exist.',
537
+ ErrorException)
538
+ .local_error('422',
539
+ 'The requested action could not be performed, semantically'\
540
+ ' incorrect, or failed business validation.',
541
+ ErrorException)
542
+ .local_error('500',
543
+ 'An internal server error has occurred.',
544
+ ErrorException)
545
+ .local_error('default',
546
+ 'The error response.',
547
+ ErrorException))
548
+ .execute
549
+ end
550
+ end
551
+ end