paypal-server-sdk 2.2.0 → 2.4.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 (400) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +148 -148
  3. data/lib/paypal_server_sdk/api_helper.rb +10 -10
  4. data/lib/paypal_server_sdk/client.rb +102 -102
  5. data/lib/paypal_server_sdk/configuration.rb +135 -135
  6. data/lib/paypal_server_sdk/controllers/base_controller.rb +58 -58
  7. data/lib/paypal_server_sdk/controllers/o_auth_authorization_controller.rb +42 -42
  8. data/lib/paypal_server_sdk/controllers/orders_controller.rb +551 -551
  9. data/lib/paypal_server_sdk/controllers/payments_controller.rb +462 -462
  10. data/lib/paypal_server_sdk/controllers/subscriptions_controller.rb +843 -843
  11. data/lib/paypal_server_sdk/controllers/transaction_search_controller.rb +178 -178
  12. data/lib/paypal_server_sdk/controllers/vault_controller.rb +224 -224
  13. data/lib/paypal_server_sdk/exceptions/api_exception.rb +21 -21
  14. data/lib/paypal_server_sdk/exceptions/default_error_exception.rb +78 -78
  15. data/lib/paypal_server_sdk/exceptions/error_exception.rb +70 -70
  16. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +47 -47
  17. data/lib/paypal_server_sdk/exceptions/search_error_exception.rb +90 -90
  18. data/lib/paypal_server_sdk/exceptions/subscription_error_exception.rb +78 -78
  19. data/lib/paypal_server_sdk/http/api_response.rb +7 -7
  20. data/lib/paypal_server_sdk/http/auth/o_auth2.rb +144 -144
  21. data/lib/paypal_server_sdk/http/http_call_back.rb +10 -10
  22. data/lib/paypal_server_sdk/http/http_method_enum.rb +10 -10
  23. data/lib/paypal_server_sdk/http/http_request.rb +10 -10
  24. data/lib/paypal_server_sdk/http/http_response.rb +10 -10
  25. data/lib/paypal_server_sdk/http/proxy_settings.rb +5 -5
  26. data/lib/paypal_server_sdk/logging/configuration/api_logging_configuration.rb +5 -5
  27. data/lib/paypal_server_sdk/logging/sdk_logger.rb +5 -5
  28. data/lib/paypal_server_sdk/models/activate_subscription_request.rb +63 -63
  29. data/lib/paypal_server_sdk/models/activity_timestamps.rb +79 -79
  30. data/lib/paypal_server_sdk/models/address.rb +132 -131
  31. data/lib/paypal_server_sdk/models/amount_breakdown.rb +132 -132
  32. data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +94 -93
  33. data/lib/paypal_server_sdk/models/app_switch_context.rb +74 -74
  34. data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +73 -73
  35. data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +62 -62
  36. data/lib/paypal_server_sdk/models/apple_pay_card.rb +108 -108
  37. data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +210 -209
  38. data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +111 -111
  39. data/lib/paypal_server_sdk/models/apple_pay_experience_context.rb +68 -68
  40. data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +97 -97
  41. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +36 -36
  42. data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +150 -150
  43. data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +63 -63
  44. data/lib/paypal_server_sdk/models/apple_pay_request.rb +165 -165
  45. data/lib/paypal_server_sdk/models/apple_pay_request_card.rb +88 -88
  46. data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +127 -127
  47. data/lib/paypal_server_sdk/models/application_context_user_action.rb +37 -37
  48. data/lib/paypal_server_sdk/models/assurance_details.rb +82 -82
  49. data/lib/paypal_server_sdk/models/auction_information.rb +100 -100
  50. data/lib/paypal_server_sdk/models/authentication_response.rb +74 -74
  51. data/lib/paypal_server_sdk/models/authorization.rb +211 -211
  52. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +31 -31
  53. data/lib/paypal_server_sdk/models/authorization_status.rb +54 -54
  54. data/lib/paypal_server_sdk/models/authorization_status_details.rb +62 -62
  55. data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +72 -72
  56. data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +225 -225
  57. data/lib/paypal_server_sdk/models/avs_code.rb +152 -152
  58. data/lib/paypal_server_sdk/models/balance_information.rb +106 -106
  59. data/lib/paypal_server_sdk/models/balances_response.rb +111 -111
  60. data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +110 -109
  61. data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +87 -86
  62. data/lib/paypal_server_sdk/models/bank_request.rb +71 -71
  63. data/lib/paypal_server_sdk/models/base_model.rb +110 -110
  64. data/lib/paypal_server_sdk/models/billing_cycle.rb +129 -118
  65. data/lib/paypal_server_sdk/models/billing_cycle_override.rb +91 -91
  66. data/lib/paypal_server_sdk/models/billing_plan.rb +212 -212
  67. data/lib/paypal_server_sdk/models/bin_details.rb +102 -101
  68. data/lib/paypal_server_sdk/models/blik_experience_context.rb +142 -141
  69. data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +60 -60
  70. data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +64 -64
  71. data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +97 -97
  72. data/lib/paypal_server_sdk/models/blik_payment_object.rb +99 -98
  73. data/lib/paypal_server_sdk/models/blik_payment_request.rb +120 -119
  74. data/lib/paypal_server_sdk/models/callback_configuration.rb +74 -74
  75. data/lib/paypal_server_sdk/models/callback_events.rb +35 -35
  76. data/lib/paypal_server_sdk/models/cancel_subscription_request.rb +60 -60
  77. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +82 -82
  78. data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +104 -104
  79. data/lib/paypal_server_sdk/models/capture_request.rb +126 -126
  80. data/lib/paypal_server_sdk/models/capture_status.rb +52 -52
  81. data/lib/paypal_server_sdk/models/capture_status_details.rb +62 -62
  82. data/lib/paypal_server_sdk/models/capture_status_with_details.rb +72 -72
  83. data/lib/paypal_server_sdk/models/capture_subscription_request.rb +78 -78
  84. data/lib/paypal_server_sdk/models/capture_type.rb +24 -24
  85. data/lib/paypal_server_sdk/models/captured_payment.rb +274 -274
  86. data/lib/paypal_server_sdk/models/card_attributes.rb +83 -83
  87. data/lib/paypal_server_sdk/models/card_attributes_response.rb +62 -62
  88. data/lib/paypal_server_sdk/models/card_authentication_response.rb +63 -63
  89. data/lib/paypal_server_sdk/models/card_brand.rb +149 -149
  90. data/lib/paypal_server_sdk/models/card_customer.rb +98 -98
  91. data/lib/paypal_server_sdk/models/card_customer_information.rb +108 -108
  92. data/lib/paypal_server_sdk/models/card_experience_context.rb +71 -71
  93. data/lib/paypal_server_sdk/models/card_from_request.rb +72 -72
  94. data/lib/paypal_server_sdk/models/card_payment_token_entity.rb +178 -178
  95. data/lib/paypal_server_sdk/models/card_request.rb +191 -191
  96. data/lib/paypal_server_sdk/models/card_response.rb +180 -180
  97. data/lib/paypal_server_sdk/models/card_response_address.rb +137 -136
  98. data/lib/paypal_server_sdk/models/card_response_with_billing_address.rb +101 -100
  99. data/lib/paypal_server_sdk/models/card_stored_credential.rb +111 -111
  100. data/lib/paypal_server_sdk/models/card_supplementary_data.rb +79 -79
  101. data/lib/paypal_server_sdk/models/card_type.rb +44 -44
  102. data/lib/paypal_server_sdk/models/card_vault_response.rb +99 -99
  103. data/lib/paypal_server_sdk/models/card_verification.rb +64 -64
  104. data/lib/paypal_server_sdk/models/card_verification_details.rb +140 -140
  105. data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +74 -74
  106. data/lib/paypal_server_sdk/models/card_verification_status.rb +31 -31
  107. data/lib/paypal_server_sdk/models/cart_information.rb +94 -94
  108. data/lib/paypal_server_sdk/models/checkout_option.rb +77 -77
  109. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +40 -40
  110. data/lib/paypal_server_sdk/models/cobranded_card.rb +83 -83
  111. data/lib/paypal_server_sdk/models/confirm_order_request.rb +85 -74
  112. data/lib/paypal_server_sdk/models/create_subscription_request.rb +151 -151
  113. data/lib/paypal_server_sdk/models/customer.rb +76 -76
  114. data/lib/paypal_server_sdk/models/customer_information.rb +95 -95
  115. data/lib/paypal_server_sdk/models/customer_response.rb +75 -75
  116. data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +123 -122
  117. data/lib/paypal_server_sdk/models/cvv_code.rb +89 -89
  118. data/lib/paypal_server_sdk/models/cycle_execution.rb +124 -124
  119. data/lib/paypal_server_sdk/models/cycle_frequency.rb +72 -0
  120. data/lib/paypal_server_sdk/models/disbursement_mode.rb +34 -34
  121. data/lib/paypal_server_sdk/models/dispute_category.rb +31 -31
  122. data/lib/paypal_server_sdk/models/eci_flag.rb +50 -50
  123. data/lib/paypal_server_sdk/models/enrollment_status.rb +43 -43
  124. data/lib/paypal_server_sdk/models/eps_payment_object.rb +87 -86
  125. data/lib/paypal_server_sdk/models/eps_payment_request.rb +87 -86
  126. data/lib/paypal_server_sdk/models/error_details.rb +125 -125
  127. data/lib/paypal_server_sdk/models/exchange_rate.rb +91 -89
  128. data/lib/paypal_server_sdk/models/experience_context.rb +116 -115
  129. data/lib/paypal_server_sdk/models/experience_context_shipping_preference.rb +41 -41
  130. data/lib/paypal_server_sdk/models/experience_status.rb +44 -44
  131. data/lib/paypal_server_sdk/models/failed_payment_details.rb +98 -98
  132. data/lib/paypal_server_sdk/models/frequency.rb +75 -75
  133. data/lib/paypal_server_sdk/models/frequency_interval_unit.rb +48 -0
  134. data/lib/paypal_server_sdk/models/fulfillment_type.rb +47 -47
  135. data/lib/paypal_server_sdk/models/giropay_payment_object.rb +87 -86
  136. data/lib/paypal_server_sdk/models/giropay_payment_request.rb +87 -86
  137. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +37 -37
  138. data/lib/paypal_server_sdk/models/google_pay_card.rb +128 -128
  139. data/lib/paypal_server_sdk/models/google_pay_card_response.rb +120 -120
  140. data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +131 -131
  141. data/lib/paypal_server_sdk/models/google_pay_experience_context.rb +68 -68
  142. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +24 -24
  143. data/lib/paypal_server_sdk/models/google_pay_request.rb +136 -136
  144. data/lib/paypal_server_sdk/models/google_pay_request_card.rb +98 -98
  145. data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +98 -98
  146. data/lib/paypal_server_sdk/models/ideal_payment_object.rb +99 -98
  147. data/lib/paypal_server_sdk/models/ideal_payment_request.rb +97 -96
  148. data/lib/paypal_server_sdk/models/incentive_details.rb +99 -99
  149. data/lib/paypal_server_sdk/models/incentive_information.rb +71 -71
  150. data/lib/paypal_server_sdk/models/interval_unit.rb +40 -40
  151. data/lib/paypal_server_sdk/models/item.rb +161 -161
  152. data/lib/paypal_server_sdk/models/item_category.rb +38 -38
  153. data/lib/paypal_server_sdk/models/item_details.rb +287 -287
  154. data/lib/paypal_server_sdk/models/item_request.rb +163 -163
  155. data/lib/paypal_server_sdk/models/last_payment_details.rb +75 -75
  156. data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +78 -78
  157. data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +137 -137
  158. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +35 -35
  159. data/lib/paypal_server_sdk/models/line_item.rb +209 -209
  160. data/lib/paypal_server_sdk/models/link_description.rb +92 -87
  161. data/lib/paypal_server_sdk/models/link_http_method.rb +56 -56
  162. data/lib/paypal_server_sdk/models/merchant_preferences.rb +73 -73
  163. data/lib/paypal_server_sdk/models/mobile_return_flow.rb +36 -36
  164. data/lib/paypal_server_sdk/models/mobile_web_context.rb +76 -76
  165. data/lib/paypal_server_sdk/models/modify_subscription_request.rb +124 -124
  166. data/lib/paypal_server_sdk/models/modify_subscription_response.rb +141 -141
  167. data/lib/paypal_server_sdk/models/money.rb +75 -74
  168. data/lib/paypal_server_sdk/models/mybank_payment_object.rb +99 -98
  169. data/lib/paypal_server_sdk/models/mybank_payment_request.rb +87 -86
  170. data/lib/paypal_server_sdk/models/name.rb +73 -73
  171. data/lib/paypal_server_sdk/models/native_app_context.rb +72 -72
  172. data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +87 -87
  173. data/lib/paypal_server_sdk/models/network_token.rb +110 -110
  174. data/lib/paypal_server_sdk/models/network_transaction.rb +107 -107
  175. data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +100 -100
  176. data/lib/paypal_server_sdk/models/o_auth_provider_error.rb +58 -58
  177. data/lib/paypal_server_sdk/models/o_auth_token.rb +106 -106
  178. data/lib/paypal_server_sdk/models/one_time_charge.rb +118 -118
  179. data/lib/paypal_server_sdk/models/order.rb +197 -184
  180. data/lib/paypal_server_sdk/models/order_application_context.rb +219 -219
  181. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +48 -48
  182. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +45 -45
  183. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +42 -42
  184. data/lib/paypal_server_sdk/models/order_authorize_request.rb +63 -63
  185. data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +115 -115
  186. data/lib/paypal_server_sdk/models/order_authorize_response.rb +194 -181
  187. data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +102 -102
  188. data/lib/paypal_server_sdk/models/order_billing_plan.rb +93 -93
  189. data/lib/paypal_server_sdk/models/order_capture_request.rb +63 -63
  190. data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +115 -115
  191. data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +123 -122
  192. data/lib/paypal_server_sdk/models/order_request.rb +132 -120
  193. data/lib/paypal_server_sdk/models/order_status.rb +60 -60
  194. data/lib/paypal_server_sdk/models/order_tracker_item.rb +114 -114
  195. data/lib/paypal_server_sdk/models/order_tracker_request.rb +133 -133
  196. data/lib/paypal_server_sdk/models/order_tracker_response.rb +135 -135
  197. data/lib/paypal_server_sdk/models/order_tracker_status.rb +34 -34
  198. data/lib/paypal_server_sdk/models/orders_capture.rb +252 -252
  199. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +61 -61
  200. data/lib/paypal_server_sdk/models/os_type.rb +35 -35
  201. data/lib/paypal_server_sdk/models/p24_payment_object.rb +123 -122
  202. data/lib/paypal_server_sdk/models/p24_payment_request.rb +98 -97
  203. data/lib/paypal_server_sdk/models/pa_res_status.rb +57 -57
  204. data/lib/paypal_server_sdk/models/participant_metadata.rb +64 -64
  205. data/lib/paypal_server_sdk/models/patch.rb +93 -93
  206. data/lib/paypal_server_sdk/models/patch_op.rb +84 -84
  207. data/lib/paypal_server_sdk/models/payee_base.rb +76 -76
  208. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +33 -33
  209. data/lib/paypal_server_sdk/models/payer.rb +136 -136
  210. data/lib/paypal_server_sdk/models/payer_base.rb +75 -75
  211. data/lib/paypal_server_sdk/models/payer_information.rb +146 -146
  212. data/lib/paypal_server_sdk/models/payer_name.rb +128 -128
  213. data/lib/paypal_server_sdk/models/payment_advice_code.rb +97 -97
  214. data/lib/paypal_server_sdk/models/payment_authorization.rb +233 -233
  215. data/lib/paypal_server_sdk/models/payment_collection.rb +113 -113
  216. data/lib/paypal_server_sdk/models/payment_initiator.rb +34 -34
  217. data/lib/paypal_server_sdk/models/payment_instruction.rb +121 -121
  218. data/lib/paypal_server_sdk/models/payment_method.rb +63 -63
  219. data/lib/paypal_server_sdk/models/payment_method_preference.rb +86 -86
  220. data/lib/paypal_server_sdk/models/payment_preferences.rb +105 -105
  221. data/lib/paypal_server_sdk/models/payment_preferences_override.rb +107 -107
  222. data/lib/paypal_server_sdk/models/payment_source.rb +203 -203
  223. data/lib/paypal_server_sdk/models/payment_source_response.rb +190 -190
  224. data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +62 -62
  225. data/lib/paypal_server_sdk/models/payment_token_request.rb +74 -74
  226. data/lib/paypal_server_sdk/models/payment_token_request_card.rb +120 -120
  227. data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +71 -71
  228. data/lib/paypal_server_sdk/models/payment_token_response.rb +104 -103
  229. data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +91 -91
  230. data/lib/paypal_server_sdk/models/payment_token_status.rb +48 -48
  231. data/lib/paypal_server_sdk/models/payments_capture.rb +252 -252
  232. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +52 -52
  233. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +37 -37
  234. data/lib/paypal_server_sdk/models/paypal_payment_token.rb +211 -211
  235. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +37 -37
  236. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +35 -35
  237. data/lib/paypal_server_sdk/models/paypal_reference_id_type.rb +40 -40
  238. data/lib/paypal_server_sdk/models/paypal_wallet.rb +188 -188
  239. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +36 -36
  240. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +71 -71
  241. data/lib/paypal_server_sdk/models/paypal_wallet_attributes_response.rb +82 -82
  242. data/lib/paypal_server_sdk/models/paypal_wallet_contact_preference.rb +43 -43
  243. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +40 -40
  244. data/lib/paypal_server_sdk/models/paypal_wallet_customer.rb +108 -108
  245. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +108 -108
  246. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +201 -200
  247. data/lib/paypal_server_sdk/models/paypal_wallet_response.rb +213 -213
  248. data/lib/paypal_server_sdk/models/paypal_wallet_stored_credential.rb +99 -99
  249. data/lib/paypal_server_sdk/models/paypal_wallet_vault_base.rb +134 -134
  250. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +132 -132
  251. data/lib/paypal_server_sdk/models/paypal_wallet_vault_response.rb +99 -99
  252. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +40 -40
  253. data/lib/paypal_server_sdk/models/phone.rb +91 -91
  254. data/lib/paypal_server_sdk/models/phone_number.rb +68 -68
  255. data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +83 -83
  256. data/lib/paypal_server_sdk/models/phone_number_with_optional_country_code.rb +81 -81
  257. data/lib/paypal_server_sdk/models/phone_type.rb +44 -44
  258. data/lib/paypal_server_sdk/models/phone_with_type.rb +72 -72
  259. data/lib/paypal_server_sdk/models/plan.rb +92 -92
  260. data/lib/paypal_server_sdk/models/plan_collection.rb +111 -111
  261. data/lib/paypal_server_sdk/models/plan_details.rb +147 -147
  262. data/lib/paypal_server_sdk/models/plan_override.rb +96 -96
  263. data/lib/paypal_server_sdk/models/plan_request.rb +154 -154
  264. data/lib/paypal_server_sdk/models/plan_request_status.rb +37 -37
  265. data/lib/paypal_server_sdk/models/platform_fee.rb +75 -75
  266. data/lib/paypal_server_sdk/models/pricing_model.rb +37 -37
  267. data/lib/paypal_server_sdk/models/pricing_scheme.rb +84 -84
  268. data/lib/paypal_server_sdk/models/pricing_tier.rb +83 -83
  269. data/lib/paypal_server_sdk/models/processing_instruction.rb +33 -0
  270. data/lib/paypal_server_sdk/models/processor_response.rb +98 -98
  271. data/lib/paypal_server_sdk/models/processor_response_code.rb +644 -644
  272. data/lib/paypal_server_sdk/models/purchase_unit.rb +245 -245
  273. data/lib/paypal_server_sdk/models/purchase_unit_request.rb +219 -219
  274. data/lib/paypal_server_sdk/models/reason_code.rb +56 -56
  275. data/lib/paypal_server_sdk/models/reauthorize_request.rb +72 -72
  276. data/lib/paypal_server_sdk/models/refund.rb +214 -214
  277. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +25 -25
  278. data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +80 -80
  279. data/lib/paypal_server_sdk/models/refund_platform_fee.rb +64 -64
  280. data/lib/paypal_server_sdk/models/refund_request.rb +115 -115
  281. data/lib/paypal_server_sdk/models/refund_status.rb +40 -40
  282. data/lib/paypal_server_sdk/models/refund_status_details.rb +62 -62
  283. data/lib/paypal_server_sdk/models/refund_status_with_details.rb +72 -72
  284. data/lib/paypal_server_sdk/models/related_identifiers.rb +83 -83
  285. data/lib/paypal_server_sdk/models/return_flow.rb +36 -36
  286. data/lib/paypal_server_sdk/models/risk_supplementary_data.rb +63 -63
  287. data/lib/paypal_server_sdk/models/search_response.rb +176 -176
  288. data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +177 -177
  289. data/lib/paypal_server_sdk/models/seller_protection.rb +78 -78
  290. data/lib/paypal_server_sdk/models/seller_protection_status.rb +41 -41
  291. data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +147 -147
  292. data/lib/paypal_server_sdk/models/sepa_debit_experience_context.rb +89 -88
  293. data/lib/paypal_server_sdk/models/sepa_debit_request.rb +64 -64
  294. data/lib/paypal_server_sdk/models/setup_fee_failure_action.rb +32 -32
  295. data/lib/paypal_server_sdk/models/setup_token_request.rb +74 -74
  296. data/lib/paypal_server_sdk/models/setup_token_request_card.rb +143 -143
  297. data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +111 -111
  298. data/lib/paypal_server_sdk/models/setup_token_response.rb +116 -115
  299. data/lib/paypal_server_sdk/models/setup_token_response_card.rb +178 -178
  300. data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +81 -81
  301. data/lib/paypal_server_sdk/models/shipment_carrier.rb +5682 -5682
  302. data/lib/paypal_server_sdk/models/shipping_details.rb +133 -133
  303. data/lib/paypal_server_sdk/models/shipping_information.rb +101 -101
  304. data/lib/paypal_server_sdk/models/shipping_name.rb +62 -62
  305. data/lib/paypal_server_sdk/models/shipping_option.rb +108 -108
  306. data/lib/paypal_server_sdk/models/shipping_type.rb +48 -48
  307. data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +152 -152
  308. data/lib/paypal_server_sdk/models/simple_postal_address_coarse_grained.rb +130 -130
  309. data/lib/paypal_server_sdk/models/sofort_payment_object.rb +99 -98
  310. data/lib/paypal_server_sdk/models/sofort_payment_request.rb +87 -86
  311. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +55 -55
  312. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +25 -25
  313. data/lib/paypal_server_sdk/models/store_information.rb +71 -71
  314. data/lib/paypal_server_sdk/models/stored_payment_source.rb +111 -111
  315. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +38 -38
  316. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +39 -39
  317. data/lib/paypal_server_sdk/models/subscriber.rb +107 -107
  318. data/lib/paypal_server_sdk/models/subscriber_request.rb +120 -120
  319. data/lib/paypal_server_sdk/models/subscription.rb +241 -205
  320. data/lib/paypal_server_sdk/models/subscription_amount_with_breakdown.rb +119 -119
  321. data/lib/paypal_server_sdk/models/subscription_application_context.rb +134 -134
  322. data/lib/paypal_server_sdk/models/subscription_billing_cycle.rb +108 -108
  323. data/lib/paypal_server_sdk/models/subscription_billing_information.rb +148 -148
  324. data/lib/paypal_server_sdk/models/subscription_card_request.rb +141 -141
  325. data/lib/paypal_server_sdk/models/subscription_collection.rb +90 -90
  326. data/lib/paypal_server_sdk/models/subscription_customer_information.rb +84 -84
  327. data/lib/paypal_server_sdk/models/subscription_patch_application_context.rb +122 -122
  328. data/lib/paypal_server_sdk/models/subscription_payer.rb +85 -85
  329. data/lib/paypal_server_sdk/models/subscription_payer_name.rb +114 -114
  330. data/lib/paypal_server_sdk/models/subscription_payment_source.rb +65 -65
  331. data/lib/paypal_server_sdk/models/subscription_payment_source_response.rb +63 -63
  332. data/lib/paypal_server_sdk/models/subscription_plan_status.rb +37 -37
  333. data/lib/paypal_server_sdk/models/subscription_pricing_model.rb +31 -31
  334. data/lib/paypal_server_sdk/models/subscription_pricing_scheme.rb +129 -129
  335. data/lib/paypal_server_sdk/models/subscription_status.rb +52 -0
  336. data/lib/paypal_server_sdk/models/subscription_transaction_details.rb +118 -118
  337. data/lib/paypal_server_sdk/models/subscriptions_card_attributes.rb +83 -83
  338. data/lib/paypal_server_sdk/models/subscriptions_card_brand.rb +129 -129
  339. data/lib/paypal_server_sdk/models/supplementary_data.rb +76 -76
  340. data/lib/paypal_server_sdk/models/suspend_subscription.rb +60 -60
  341. data/lib/paypal_server_sdk/models/tax_amount.rb +63 -63
  342. data/lib/paypal_server_sdk/models/tax_id_type.rb +31 -31
  343. data/lib/paypal_server_sdk/models/tax_info.rb +69 -69
  344. data/lib/paypal_server_sdk/models/taxes.rb +71 -71
  345. data/lib/paypal_server_sdk/models/taxes_override.rb +72 -72
  346. data/lib/paypal_server_sdk/models/tenure_type.rb +38 -38
  347. data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +76 -76
  348. data/lib/paypal_server_sdk/models/three_d_secure_card_authentication_response.rb +89 -89
  349. data/lib/paypal_server_sdk/models/token.rb +68 -68
  350. data/lib/paypal_server_sdk/models/token_type.rb +25 -25
  351. data/lib/paypal_server_sdk/models/transaction_details.rb +126 -126
  352. data/lib/paypal_server_sdk/models/transaction_information.rb +494 -494
  353. data/lib/paypal_server_sdk/models/transaction_search_error_details.rb +103 -103
  354. data/lib/paypal_server_sdk/models/transactions_list.rb +111 -111
  355. data/lib/paypal_server_sdk/models/trustly_payment_object.rb +111 -110
  356. data/lib/paypal_server_sdk/models/trustly_payment_request.rb +98 -97
  357. data/lib/paypal_server_sdk/models/universal_product_code.rb +68 -68
  358. data/lib/paypal_server_sdk/models/upc_type.rb +52 -52
  359. data/lib/paypal_server_sdk/models/update_pricing_scheme.rb +72 -72
  360. data/lib/paypal_server_sdk/models/update_pricing_schemes_request.rb +69 -69
  361. data/lib/paypal_server_sdk/models/usage_pattern.rb +91 -91
  362. data/lib/paypal_server_sdk/models/usage_type.rb +34 -34
  363. data/lib/paypal_server_sdk/models/vault_apple_pay_request.rb +73 -73
  364. data/lib/paypal_server_sdk/models/vault_card_experience_context.rb +129 -128
  365. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +47 -47
  366. data/lib/paypal_server_sdk/models/vault_customer.rb +72 -72
  367. data/lib/paypal_server_sdk/models/vault_experience_context.rb +155 -154
  368. data/lib/paypal_server_sdk/models/vault_instruction.rb +62 -62
  369. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +34 -34
  370. data/lib/paypal_server_sdk/models/vault_instruction_base.rb +64 -64
  371. data/lib/paypal_server_sdk/models/vault_paypal_wallet_request.rb +154 -154
  372. data/lib/paypal_server_sdk/models/vault_response.rb +100 -100
  373. data/lib/paypal_server_sdk/models/vault_response_customer.rb +86 -86
  374. data/lib/paypal_server_sdk/models/vault_status.rb +40 -40
  375. data/lib/paypal_server_sdk/models/vault_token_request.rb +68 -68
  376. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +24 -24
  377. data/lib/paypal_server_sdk/models/vault_user_action.rb +37 -37
  378. data/lib/paypal_server_sdk/models/vault_venmo_request.rb +143 -143
  379. data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +132 -132
  380. data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +114 -114
  381. data/lib/paypal_server_sdk/models/venmo_experience_context.rb +101 -101
  382. data/lib/paypal_server_sdk/models/venmo_payment_token.rb +199 -199
  383. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +35 -35
  384. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +54 -54
  385. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +34 -34
  386. data/lib/paypal_server_sdk/models/venmo_vault_response.rb +100 -100
  387. data/lib/paypal_server_sdk/models/venmo_vault_response_status.rb +40 -40
  388. data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +72 -72
  389. data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +62 -62
  390. data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +94 -94
  391. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +108 -108
  392. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_shipping_preference.rb +38 -38
  393. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_user_action.rb +37 -37
  394. data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +102 -102
  395. data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +146 -146
  396. data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +131 -131
  397. data/lib/paypal_server_sdk/utilities/date_time_helper.rb +11 -11
  398. data/lib/paypal_server_sdk/utilities/file_wrapper.rb +17 -17
  399. data/lib/paypal_server_sdk.rb +440 -436
  400. metadata +6 -2
@@ -1,245 +1,245 @@
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 purchase unit details. Used to capture required information for the
8
- # payment contract.
9
- class PurchaseUnit < BaseModel
10
- SKIP = Object.new
11
- private_constant :SKIP
12
-
13
- # The API caller-provided external ID for the purchase unit. Required for
14
- # multiple purchase units when you must update the order through `PATCH`. If
15
- # you omit this value and the order contains only one purchase unit, PayPal
16
- # sets this value to `default`. Note: If there are multiple purchase units,
17
- # reference_id is required for each purchase unit.
18
- # @return [String]
19
- attr_accessor :reference_id
20
-
21
- # The total order amount with an optional breakdown that provides details,
22
- # such as the total item amount, total tax amount, shipping, handling,
23
- # insurance, and discounts, if any. If you specify `amount.breakdown`, the
24
- # amount equals `item_total` plus `tax_total` plus `shipping` plus
25
- # `handling` plus `insurance` minus `shipping_discount` minus discount. The
26
- # amount must be a positive number. For listed of supported currencies and
27
- # decimal precision, see the PayPal REST APIs Currency Codes.
28
- # @return [AmountWithBreakdown]
29
- attr_accessor :amount
30
-
31
- # The merchant who receives the funds and fulfills the order. The merchant
32
- # is also known as the payee.
33
- # @return [PayeeBase]
34
- attr_accessor :payee
35
-
36
- # Any additional payment instructions to be consider during payment
37
- # processing. This processing instruction is applicable for Capturing an
38
- # order or Authorizing an Order.
39
- # @return [PaymentInstruction]
40
- attr_accessor :payment_instruction
41
-
42
- # The purchase description.
43
- # @return [String]
44
- attr_accessor :description
45
-
46
- # The API caller-provided external ID. Used to reconcile API
47
- # caller-initiated transactions with PayPal transactions. Appears in
48
- # transaction and settlement reports.
49
- # @return [String]
50
- attr_accessor :custom_id
51
-
52
- # The API caller-provided external invoice ID for this order.
53
- # @return [String]
54
- attr_accessor :invoice_id
55
-
56
- # The PayPal-generated ID for the purchase unit. This ID appears in both the
57
- # payer's transaction history and the emails that the payer receives. In
58
- # addition, this ID is available in transaction and settlement reports that
59
- # merchants and API callers can use to reconcile transactions. This ID is
60
- # only available when an order is saved by calling
61
- # v2/checkout/orders/id/save.
62
- # @return [String]
63
- attr_accessor :id
64
-
65
- # The payment descriptor on account transactions on the customer's credit
66
- # card statement, that PayPal sends to processors. The maximum length of the
67
- # soft descriptor information that you can pass in the API field is 22
68
- # characters, in the following format:22 - len(PAYPAL * (8)) -
69
- # len(Descriptor in Payment Receiving Preferences of Merchant account +
70
- # 1)The PAYPAL prefix uses 8 characters. The soft descriptor supports the
71
- # following ASCII characters: Alphanumeric characters Dashes Asterisks
72
- # Periods (.) Spaces For Wallet payments marketplace integrations: The
73
- # merchant descriptor in the Payment Receiving Preferences must be the
74
- # marketplace name. You can't use the remaining space to show the customer
75
- # service number. The remaining spaces can be a combination of seller name
76
- # and country. For unbranded payments (Direct Card) marketplace
77
- # integrations, use a combination of the seller name and phone number.
78
- # @return [String]
79
- attr_accessor :soft_descriptor
80
-
81
- # An array of items that the customer purchases from the merchant.
82
- # @return [Array[Item]]
83
- attr_accessor :items
84
-
85
- # The order shipping details.
86
- # @return [ShippingWithTrackingDetails]
87
- attr_accessor :shipping
88
-
89
- # Supplementary data about a payment. This object passes information that
90
- # can be used to improve risk assessments and processing costs, for example,
91
- # by providing Level 2 and Level 3 payment data.
92
- # @return [SupplementaryData]
93
- attr_accessor :supplementary_data
94
-
95
- # The collection of payments, or transactions, for a purchase unit in an
96
- # order. For example, authorized payments, captured payments, and refunds.
97
- # @return [PaymentCollection]
98
- attr_accessor :payments
99
-
100
- # The error reason code and description that are the reason for the most
101
- # recent order decline.
102
- # @return [Array[Object]]
103
- attr_accessor :most_recent_errors
104
-
105
- # A mapping from model property names to API property names.
106
- def self.names
107
- @_hash = {} if @_hash.nil?
108
- @_hash['reference_id'] = 'reference_id'
109
- @_hash['amount'] = 'amount'
110
- @_hash['payee'] = 'payee'
111
- @_hash['payment_instruction'] = 'payment_instruction'
112
- @_hash['description'] = 'description'
113
- @_hash['custom_id'] = 'custom_id'
114
- @_hash['invoice_id'] = 'invoice_id'
115
- @_hash['id'] = 'id'
116
- @_hash['soft_descriptor'] = 'soft_descriptor'
117
- @_hash['items'] = 'items'
118
- @_hash['shipping'] = 'shipping'
119
- @_hash['supplementary_data'] = 'supplementary_data'
120
- @_hash['payments'] = 'payments'
121
- @_hash['most_recent_errors'] = 'most_recent_errors'
122
- @_hash
123
- end
124
-
125
- # An array for optional fields
126
- def self.optionals
127
- %w[
128
- reference_id
129
- amount
130
- payee
131
- payment_instruction
132
- description
133
- custom_id
134
- invoice_id
135
- id
136
- soft_descriptor
137
- items
138
- shipping
139
- supplementary_data
140
- payments
141
- most_recent_errors
142
- ]
143
- end
144
-
145
- # An array for nullable fields
146
- def self.nullables
147
- []
148
- end
149
-
150
- def initialize(reference_id: SKIP, amount: SKIP, payee: SKIP,
151
- payment_instruction: SKIP, description: SKIP,
152
- custom_id: SKIP, invoice_id: SKIP, id: SKIP,
153
- soft_descriptor: SKIP, items: SKIP, shipping: SKIP,
154
- supplementary_data: SKIP, payments: SKIP,
155
- most_recent_errors: SKIP)
156
- @reference_id = reference_id unless reference_id == SKIP
157
- @amount = amount unless amount == SKIP
158
- @payee = payee unless payee == SKIP
159
- @payment_instruction = payment_instruction unless payment_instruction == SKIP
160
- @description = description unless description == SKIP
161
- @custom_id = custom_id unless custom_id == SKIP
162
- @invoice_id = invoice_id unless invoice_id == SKIP
163
- @id = id unless id == SKIP
164
- @soft_descriptor = soft_descriptor unless soft_descriptor == SKIP
165
- @items = items unless items == SKIP
166
- @shipping = shipping unless shipping == SKIP
167
- @supplementary_data = supplementary_data unless supplementary_data == SKIP
168
- @payments = payments unless payments == SKIP
169
- @most_recent_errors = most_recent_errors unless most_recent_errors == SKIP
170
- end
171
-
172
- # Creates an instance of the object from a hash.
173
- def self.from_hash(hash)
174
- return nil unless hash
175
-
176
- # Extract variables from the hash.
177
- reference_id = hash.key?('reference_id') ? hash['reference_id'] : SKIP
178
- amount = AmountWithBreakdown.from_hash(hash['amount']) if hash['amount']
179
- payee = PayeeBase.from_hash(hash['payee']) if hash['payee']
180
- payment_instruction = PaymentInstruction.from_hash(hash['payment_instruction']) if
181
- hash['payment_instruction']
182
- description = hash.key?('description') ? hash['description'] : SKIP
183
- custom_id = hash.key?('custom_id') ? hash['custom_id'] : SKIP
184
- invoice_id = hash.key?('invoice_id') ? hash['invoice_id'] : SKIP
185
- id = hash.key?('id') ? hash['id'] : SKIP
186
- soft_descriptor =
187
- hash.key?('soft_descriptor') ? hash['soft_descriptor'] : SKIP
188
- # Parameter is an array, so we need to iterate through it
189
- items = nil
190
- unless hash['items'].nil?
191
- items = []
192
- hash['items'].each do |structure|
193
- items << (Item.from_hash(structure) if structure)
194
- end
195
- end
196
-
197
- items = SKIP unless hash.key?('items')
198
- shipping = ShippingWithTrackingDetails.from_hash(hash['shipping']) if hash['shipping']
199
- supplementary_data = SupplementaryData.from_hash(hash['supplementary_data']) if
200
- hash['supplementary_data']
201
- payments = PaymentCollection.from_hash(hash['payments']) if hash['payments']
202
- most_recent_errors =
203
- hash.key?('most_recent_errors') ? hash['most_recent_errors'] : SKIP
204
-
205
- # Create object from extracted values.
206
- PurchaseUnit.new(reference_id: reference_id,
207
- amount: amount,
208
- payee: payee,
209
- payment_instruction: payment_instruction,
210
- description: description,
211
- custom_id: custom_id,
212
- invoice_id: invoice_id,
213
- id: id,
214
- soft_descriptor: soft_descriptor,
215
- items: items,
216
- shipping: shipping,
217
- supplementary_data: supplementary_data,
218
- payments: payments,
219
- most_recent_errors: most_recent_errors)
220
- end
221
-
222
- # Provides a human-readable string representation of the object.
223
- def to_s
224
- class_name = self.class.name.split('::').last
225
- "<#{class_name} reference_id: #{@reference_id}, amount: #{@amount}, payee: #{@payee},"\
226
- " payment_instruction: #{@payment_instruction}, description: #{@description}, custom_id:"\
227
- " #{@custom_id}, invoice_id: #{@invoice_id}, id: #{@id}, soft_descriptor:"\
228
- " #{@soft_descriptor}, items: #{@items}, shipping: #{@shipping}, supplementary_data:"\
229
- " #{@supplementary_data}, payments: #{@payments}, most_recent_errors:"\
230
- " #{@most_recent_errors}>"
231
- end
232
-
233
- # Provides a debugging-friendly string with detailed object information.
234
- def inspect
235
- class_name = self.class.name.split('::').last
236
- "<#{class_name} reference_id: #{@reference_id.inspect}, amount: #{@amount.inspect}, payee:"\
237
- " #{@payee.inspect}, payment_instruction: #{@payment_instruction.inspect}, description:"\
238
- " #{@description.inspect}, custom_id: #{@custom_id.inspect}, invoice_id:"\
239
- " #{@invoice_id.inspect}, id: #{@id.inspect}, soft_descriptor: #{@soft_descriptor.inspect},"\
240
- " items: #{@items.inspect}, shipping: #{@shipping.inspect}, supplementary_data:"\
241
- " #{@supplementary_data.inspect}, payments: #{@payments.inspect}, most_recent_errors:"\
242
- " #{@most_recent_errors.inspect}>"
243
- end
244
- end
245
- end
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 purchase unit details. Used to capture required information for the
8
+ # payment contract.
9
+ class PurchaseUnit < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # The API caller-provided external ID for the purchase unit. Required for
14
+ # multiple purchase units when you must update the order through `PATCH`. If
15
+ # you omit this value and the order contains only one purchase unit, PayPal
16
+ # sets this value to `default`. Note: If there are multiple purchase units,
17
+ # reference_id is required for each purchase unit.
18
+ # @return [String]
19
+ attr_accessor :reference_id
20
+
21
+ # The total order amount with an optional breakdown that provides details,
22
+ # such as the total item amount, total tax amount, shipping, handling,
23
+ # insurance, and discounts, if any. If you specify `amount.breakdown`, the
24
+ # amount equals `item_total` plus `tax_total` plus `shipping` plus
25
+ # `handling` plus `insurance` minus `shipping_discount` minus discount. The
26
+ # amount must be a positive number. For listed of supported currencies and
27
+ # decimal precision, see the PayPal REST APIs Currency Codes.
28
+ # @return [AmountWithBreakdown]
29
+ attr_accessor :amount
30
+
31
+ # The merchant who receives the funds and fulfills the order. The merchant
32
+ # is also known as the payee.
33
+ # @return [PayeeBase]
34
+ attr_accessor :payee
35
+
36
+ # Any additional payment instructions to be consider during payment
37
+ # processing. This processing instruction is applicable for Capturing an
38
+ # order or Authorizing an Order.
39
+ # @return [PaymentInstruction]
40
+ attr_accessor :payment_instruction
41
+
42
+ # The purchase description.
43
+ # @return [String]
44
+ attr_accessor :description
45
+
46
+ # The API caller-provided external ID. Used to reconcile API
47
+ # caller-initiated transactions with PayPal transactions. Appears in
48
+ # transaction and settlement reports.
49
+ # @return [String]
50
+ attr_accessor :custom_id
51
+
52
+ # The API caller-provided external invoice ID for this order.
53
+ # @return [String]
54
+ attr_accessor :invoice_id
55
+
56
+ # The PayPal-generated ID for the purchase unit. This ID appears in both the
57
+ # payer's transaction history and the emails that the payer receives. In
58
+ # addition, this ID is available in transaction and settlement reports that
59
+ # merchants and API callers can use to reconcile transactions. This ID is
60
+ # only available when an order is saved by calling
61
+ # v2/checkout/orders/id/save.
62
+ # @return [String]
63
+ attr_accessor :id
64
+
65
+ # The payment descriptor on account transactions on the customer's credit
66
+ # card statement, that PayPal sends to processors. The maximum length of the
67
+ # soft descriptor information that you can pass in the API field is 22
68
+ # characters, in the following format:22 - len(PAYPAL * (8)) -
69
+ # len(Descriptor in Payment Receiving Preferences of Merchant account +
70
+ # 1)The PAYPAL prefix uses 8 characters. The soft descriptor supports the
71
+ # following ASCII characters: Alphanumeric characters Dashes Asterisks
72
+ # Periods (.) Spaces For Wallet payments marketplace integrations: The
73
+ # merchant descriptor in the Payment Receiving Preferences must be the
74
+ # marketplace name. You can't use the remaining space to show the customer
75
+ # service number. The remaining spaces can be a combination of seller name
76
+ # and country. For unbranded payments (Direct Card) marketplace
77
+ # integrations, use a combination of the seller name and phone number.
78
+ # @return [String]
79
+ attr_accessor :soft_descriptor
80
+
81
+ # An array of items that the customer purchases from the merchant.
82
+ # @return [Array[Item]]
83
+ attr_accessor :items
84
+
85
+ # The order shipping details.
86
+ # @return [ShippingWithTrackingDetails]
87
+ attr_accessor :shipping
88
+
89
+ # Supplementary data about a payment. This object passes information that
90
+ # can be used to improve risk assessments and processing costs, for example,
91
+ # by providing Level 2 and Level 3 payment data.
92
+ # @return [SupplementaryData]
93
+ attr_accessor :supplementary_data
94
+
95
+ # The collection of payments, or transactions, for a purchase unit in an
96
+ # order. For example, authorized payments, captured payments, and refunds.
97
+ # @return [PaymentCollection]
98
+ attr_accessor :payments
99
+
100
+ # The error reason code and description that are the reason for the most
101
+ # recent order decline.
102
+ # @return [Array[Object]]
103
+ attr_accessor :most_recent_errors
104
+
105
+ # A mapping from model property names to API property names.
106
+ def self.names
107
+ @_hash = {} if @_hash.nil?
108
+ @_hash['reference_id'] = 'reference_id'
109
+ @_hash['amount'] = 'amount'
110
+ @_hash['payee'] = 'payee'
111
+ @_hash['payment_instruction'] = 'payment_instruction'
112
+ @_hash['description'] = 'description'
113
+ @_hash['custom_id'] = 'custom_id'
114
+ @_hash['invoice_id'] = 'invoice_id'
115
+ @_hash['id'] = 'id'
116
+ @_hash['soft_descriptor'] = 'soft_descriptor'
117
+ @_hash['items'] = 'items'
118
+ @_hash['shipping'] = 'shipping'
119
+ @_hash['supplementary_data'] = 'supplementary_data'
120
+ @_hash['payments'] = 'payments'
121
+ @_hash['most_recent_errors'] = 'most_recent_errors'
122
+ @_hash
123
+ end
124
+
125
+ # An array for optional fields
126
+ def self.optionals
127
+ %w[
128
+ reference_id
129
+ amount
130
+ payee
131
+ payment_instruction
132
+ description
133
+ custom_id
134
+ invoice_id
135
+ id
136
+ soft_descriptor
137
+ items
138
+ shipping
139
+ supplementary_data
140
+ payments
141
+ most_recent_errors
142
+ ]
143
+ end
144
+
145
+ # An array for nullable fields
146
+ def self.nullables
147
+ []
148
+ end
149
+
150
+ def initialize(reference_id: SKIP, amount: SKIP, payee: SKIP,
151
+ payment_instruction: SKIP, description: SKIP,
152
+ custom_id: SKIP, invoice_id: SKIP, id: SKIP,
153
+ soft_descriptor: SKIP, items: SKIP, shipping: SKIP,
154
+ supplementary_data: SKIP, payments: SKIP,
155
+ most_recent_errors: SKIP)
156
+ @reference_id = reference_id unless reference_id == SKIP
157
+ @amount = amount unless amount == SKIP
158
+ @payee = payee unless payee == SKIP
159
+ @payment_instruction = payment_instruction unless payment_instruction == SKIP
160
+ @description = description unless description == SKIP
161
+ @custom_id = custom_id unless custom_id == SKIP
162
+ @invoice_id = invoice_id unless invoice_id == SKIP
163
+ @id = id unless id == SKIP
164
+ @soft_descriptor = soft_descriptor unless soft_descriptor == SKIP
165
+ @items = items unless items == SKIP
166
+ @shipping = shipping unless shipping == SKIP
167
+ @supplementary_data = supplementary_data unless supplementary_data == SKIP
168
+ @payments = payments unless payments == SKIP
169
+ @most_recent_errors = most_recent_errors unless most_recent_errors == SKIP
170
+ end
171
+
172
+ # Creates an instance of the object from a hash.
173
+ def self.from_hash(hash)
174
+ return nil unless hash
175
+
176
+ # Extract variables from the hash.
177
+ reference_id = hash.key?('reference_id') ? hash['reference_id'] : SKIP
178
+ amount = AmountWithBreakdown.from_hash(hash['amount']) if hash['amount']
179
+ payee = PayeeBase.from_hash(hash['payee']) if hash['payee']
180
+ payment_instruction = PaymentInstruction.from_hash(hash['payment_instruction']) if
181
+ hash['payment_instruction']
182
+ description = hash.key?('description') ? hash['description'] : SKIP
183
+ custom_id = hash.key?('custom_id') ? hash['custom_id'] : SKIP
184
+ invoice_id = hash.key?('invoice_id') ? hash['invoice_id'] : SKIP
185
+ id = hash.key?('id') ? hash['id'] : SKIP
186
+ soft_descriptor =
187
+ hash.key?('soft_descriptor') ? hash['soft_descriptor'] : SKIP
188
+ # Parameter is an array, so we need to iterate through it
189
+ items = nil
190
+ unless hash['items'].nil?
191
+ items = []
192
+ hash['items'].each do |structure|
193
+ items << (Item.from_hash(structure) if structure)
194
+ end
195
+ end
196
+
197
+ items = SKIP unless hash.key?('items')
198
+ shipping = ShippingWithTrackingDetails.from_hash(hash['shipping']) if hash['shipping']
199
+ supplementary_data = SupplementaryData.from_hash(hash['supplementary_data']) if
200
+ hash['supplementary_data']
201
+ payments = PaymentCollection.from_hash(hash['payments']) if hash['payments']
202
+ most_recent_errors =
203
+ hash.key?('most_recent_errors') ? hash['most_recent_errors'] : SKIP
204
+
205
+ # Create object from extracted values.
206
+ PurchaseUnit.new(reference_id: reference_id,
207
+ amount: amount,
208
+ payee: payee,
209
+ payment_instruction: payment_instruction,
210
+ description: description,
211
+ custom_id: custom_id,
212
+ invoice_id: invoice_id,
213
+ id: id,
214
+ soft_descriptor: soft_descriptor,
215
+ items: items,
216
+ shipping: shipping,
217
+ supplementary_data: supplementary_data,
218
+ payments: payments,
219
+ most_recent_errors: most_recent_errors)
220
+ end
221
+
222
+ # Provides a human-readable string representation of the object.
223
+ def to_s
224
+ class_name = self.class.name.split('::').last
225
+ "<#{class_name} reference_id: #{@reference_id}, amount: #{@amount}, payee: #{@payee},"\
226
+ " payment_instruction: #{@payment_instruction}, description: #{@description}, custom_id:"\
227
+ " #{@custom_id}, invoice_id: #{@invoice_id}, id: #{@id}, soft_descriptor:"\
228
+ " #{@soft_descriptor}, items: #{@items}, shipping: #{@shipping}, supplementary_data:"\
229
+ " #{@supplementary_data}, payments: #{@payments}, most_recent_errors:"\
230
+ " #{@most_recent_errors}>"
231
+ end
232
+
233
+ # Provides a debugging-friendly string with detailed object information.
234
+ def inspect
235
+ class_name = self.class.name.split('::').last
236
+ "<#{class_name} reference_id: #{@reference_id.inspect}, amount: #{@amount.inspect}, payee:"\
237
+ " #{@payee.inspect}, payment_instruction: #{@payment_instruction.inspect}, description:"\
238
+ " #{@description.inspect}, custom_id: #{@custom_id.inspect}, invoice_id:"\
239
+ " #{@invoice_id.inspect}, id: #{@id.inspect}, soft_descriptor: #{@soft_descriptor.inspect},"\
240
+ " items: #{@items.inspect}, shipping: #{@shipping.inspect}, supplementary_data:"\
241
+ " #{@supplementary_data.inspect}, payments: #{@payments.inspect}, most_recent_errors:"\
242
+ " #{@most_recent_errors.inspect}>"
243
+ end
244
+ end
245
+ end